Merge #254182: merge waf changes

...into staging-next
This is a topologically earlier remerge of PR #252874
This commit is contained in:
Vladimír Čunát 2023-09-09 16:18:04 +02:00
commit 479f1afcb4
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
38 changed files with 128 additions and 112 deletions

View File

@ -1,47 +1,58 @@
# waf.hook {#wafhook} # wafHook {#wafHook}
[Waf](https://waf.io) is a Python-based software building system. [Waf](https://waf.io) is a Python-based software building system.
In Nixpkgs, `waf.hook` overrides the default configure, build, and install phases. In Nixpkgs, `wafHook` overrides the default configure, build, and install phases.
## Variables controlling waf.hook {#variablesControllingWafHook} ## Variables controlling wafHook {#variablesControllingWafHook}
### `wafPath` {#wafPath} ### `wafHook` Exclusive Variables {#wafHookExclusiveVariables}
The variables below are exclusive of `wafHook`.
#### `wafPath` {#wafPath}
Location of the `waf` tool. It defaults to `./waf`, to honor software projects that include it directly inside their source trees. Location of the `waf` tool. It defaults to `./waf`, to honor software projects that include it directly inside their source trees.
If `wafPath` doesn't exist, then `waf.hook` will copy the `waf` provided from Nixpkgs to it. If `wafPath` doesn't exist, then `wafHook` will copy the `waf` provided from Nixpkgs to it.
### `wafFlags` {#wafFlags} #### `wafFlags` {#wafFlags}
Controls the flags passed to waf tool during build and install phases. For settings specific to build or install phases, use `buildFlags` or `installFlags` respectively. Controls the flags passed to waf tool during build and install phases. For settings specific to build or install phases, use `wafBuildFlags` or `wafInstallFlags` respectively.
### `dontAddWafCrossFlags` {#dontAddWafCrossFlags} #### `dontAddWafCrossFlags` {#dontAddWafCrossFlags}
When set to `true`, don't add cross compilation flags during configure phase. When set to `true`, don't add cross compilation flags during configure phase.
### `dontUseWafConfigure` {#dontUseWafConfigure} #### `dontUseWafConfigure` {#dontUseWafConfigure}
When set to true, don't use the predefined `wafConfigurePhase`. When set to true, don't use the predefined `wafConfigurePhase`.
### `dontUseWafBuild` {#dontUseWafBuild} #### `dontUseWafBuild` {#dontUseWafBuild}
When set to true, don't use the predefined `wafBuildPhase`. When set to true, don't use the predefined `wafBuildPhase`.
### `dontUseWafInstall` {#dontUseWafInstall} #### `dontUseWafInstall` {#dontUseWafInstall}
When set to true, don't use the predefined `wafInstallPhase`. When set to true, don't use the predefined `wafInstallPhase`.
### Variables honored by waf.hook {#variablesHonoredByWafHook} ### Similar variables {#similarVariables}
The following variables commonly used by `stdenv.mkDerivation` are also honored by `waf.hook`. The following variables are similar to their `stdenv.mkDerivation` counterparts.
| `wafHook` Variable | `stdenv.mkDerivation` Counterpart |
|-----------------------|-----------------------------------|
| `wafConfigureFlags` | `configureFlags` |
| `wafConfigureTargets` | `configureTargets` |
| `wafBuildFlags` | `buildFlags` |
| `wafBuildTargets` | `buildTargets` |
| `wafInstallFlags` | `installFlags` |
| `wafInstallTargets` | `installTargets` |
### Honored variables {#honoredVariables}
The following variables commonly used by `stdenv.mkDerivation` are honored by `wafHook`.
- `prefixKey` - `prefixKey`
- `configureFlags`
- `configureTargets`
- `enableParallelBuilding` - `enableParallelBuilding`
- `enableParallelInstalling` - `enableParallelInstalling`
- `buildFlags`
- `buildTargets`
- `installFlags`
- `installTargets`

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkg-config { lib, stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkg-config
, waf, python3 }: , wafHook, python3 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ams-lv2"; pname = "ams-lv2";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk"; sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ]; buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ];
meta = with lib; { meta = with lib; {

View File

@ -50,7 +50,7 @@
, suil , suil
, taglib , taglib
, vamp-plugin-sdk , vamp-plugin-sdk
, waf , wafHook
, xjadeo , xjadeo
, videoSupport ? true , videoSupport ? true
}: }:
@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
waf.hook wafHook
]; ];
buildInputs = [ buildInputs = [
@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
vamp-plugin-sdk vamp-plugin-sdk
] ++ lib.optionals videoSupport [ harvid xjadeo ]; ] ++ lib.optionals videoSupport [ harvid xjadeo ];
configureFlags = [ wafConfigureFlags = [
"--cxx11" "--cxx11"
"--docs" "--docs"
"--freedesktop" "--freedesktop"

View File

@ -52,7 +52,7 @@
, suil , suil
, taglib , taglib
, vamp-plugin-sdk , vamp-plugin-sdk
, waf , wafHook
, xjadeo , xjadeo
, videoSupport ? true , videoSupport ? true
}: }:
@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
perl perl
pkg-config pkg-config
python3 python3
waf.hook wafHook
]; ];
buildInputs = [ buildInputs = [
@ -150,7 +150,7 @@ stdenv.mkDerivation rec {
vamp-plugin-sdk vamp-plugin-sdk
] ++ lib.optionals videoSupport [ harvid xjadeo ]; ] ++ lib.optionals videoSupport [ harvid xjadeo ];
configureFlags = [ wafConfigureFlags = [
"--cxx11" "--cxx11"
"--docs" "--docs"
"--freedesktop" "--freedesktop"

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, lv2, pkg-config, python3, waf }: { lib, stdenv, fetchurl, lv2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "fomp"; pname = "fomp";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-xnGijydiO3B7BjSlryFuH1j/OPio9hCYbniq2IXp2W8="; sha256 = "sha256-xnGijydiO3B7BjSlryFuH1j/OPio9hCYbniq2IXp2W8=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ lv2 python3 ]; buildInputs = [ lv2 python3 ];
meta = with lib; { meta = with lib; {

View File

@ -30,7 +30,7 @@
, serd , serd
, sord , sord
, sratom , sratom
, waf , wafHook
, wrapGAppsHook , wrapGAppsHook
, zita-convolver , zita-convolver
, zita-resampler , zita-resampler
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
intltool intltool
pkg-config pkg-config
python3 python3
waf.hook wafHook
wrapGAppsHook wrapGAppsHook
]; ];
@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
zita-resampler zita-resampler
]; ];
configureFlags = [ wafConfigureFlags = [
"--no-font-cache-update" "--no-font-cache-update"
"--shared-lib" "--shared-lib"
"--no-desktop-update" "--no-desktop-update"

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv { lib, stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv
, lv2, pkg-config, python3, raul, serd, sord, sratom , lv2, pkg-config, python3, raul, serd, sord, sratom
, waf , wafHook
, suil , suil
}: }:
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
deepClone = true; deepClone = true;
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 python3.pkgs.wrapPython ]; nativeBuildInputs = [ pkg-config wafHook python3 python3.pkgs.wrapPython ];
buildInputs = [ buildInputs = [
boost ganv glibmm gtkmm2 libjack2 lilv lv2 boost ganv glibmm gtkmm2 libjack2 lilv lv2
python3 raul serd sord sratom suil python3 raul serd sord sratom suil

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3 { lib, stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkg-config, python3
, serd, sord , sratom, suil, waf }: , serd, sord , sratom, suil, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "jalv"; pname = "jalv";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-ktFBeBtmQ3MgfDQ868XpuM7UYfryb9zLld8AB7BjnhY="; sha256 = "sha256-ktFBeBtmQ3MgfDQ868XpuM7UYfryb9zLld8AB7BjnhY=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ buildInputs = [
gtk2 libjack2 lilv lv2 python3 serd sord sratom suil gtk2 libjack2 lilv lv2 python3 serd sord sratom suil
]; ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fftwSinglePrec, lv2, pkg-config, waf, python3 }: { lib, stdenv, fetchurl, fftwSinglePrec, lv2, pkg-config, wafHook, python3 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mda-lv2"; pname = "mda-lv2";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s="; sha256 = "sha256-zWYRcCSuBJzzrKg/npBKcCdyJOI6lp9yqcXQEKSYV9s=";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ fftwSinglePrec lv2 ]; buildInputs = [ fftwSinglePrec lv2 ];
meta = with lib; { meta = with lib; {

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2 { lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2
, libsndfile, ladspaH, liblo, libsigcxx, lrdf, waf , libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
@ -12,7 +12,7 @@ stdenv.mkDerivation {
sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4="; sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile
ladspaH liblo libsigcxx lrdf ladspaH liblo libsigcxx lrdf
]; ];

View File

@ -10,7 +10,7 @@
, libjack2 , libjack2
, pkg-config , pkg-config
, python3 , python3
, waf , wafHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
gtkmm2 gtkmm2
libjack2 libjack2
python3 python3
waf.hook wafHook
]; ];
meta = { meta = {

View File

@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, python3Packages, intltool, glib, itstool, gtk3 { lib, fetchFromGitHub, python3Packages, intltool, glib, itstool, gtk3
, wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, waf }: , wrapGAppsHook, gobject-introspection, pango, gdk-pixbuf, atk, wafHook }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "hamster"; pname = "hamster";
@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
wrapGAppsHook wrapGAppsHook
intltool intltool
itstool itstool
waf.hook wafHook
glib glib
gobject-introspection gobject-introspection
]; ];

View File

@ -10,7 +10,7 @@
, desktop-file-utils , desktop-file-utils
, shared-mime-info , shared-mime-info
, wrapGAppsHook , wrapGAppsHook
, waf , wafHook
, bash , bash
, dbus , dbus
}: }:
@ -31,7 +31,7 @@ buildPythonApplication rec {
nativeBuildInputs = [ nativeBuildInputs = [
wrapGAppsHook intltool wrapGAppsHook intltool
# For setup hook # For setup hook
gobject-introspection waf.hook gobject-introspection wafHook
itstool # for help pages itstool # for help pages
desktop-file-utils # for update-desktop-database desktop-file-utils # for update-desktop-database
shared-mime-info # for update-mime-info shared-mime-info # for update-mime-info

View File

@ -3,7 +3,7 @@
, mkDerivation , mkDerivation
, fetchFromGitLab , fetchFromGitLab
, fetchpatch , fetchpatch
, waf , wafHook
, pkg-config , pkg-config
, cmake , cmake
, qtbase , qtbase
@ -65,7 +65,7 @@ mkDerivation rec {
--replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support" --replace /usr/include/KF5/KDELibs4Support "${lib.getDev kdelibs4support}/include/KF5/KDELibs4Support"
''; '';
nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config waf.hook cmake ]; nativeBuildInputs = [ (lib.getDev qtsvg) (lib.getLib qtsvg) python3 pkg-config wafHook cmake ];
buildInputs = [ buildInputs = [
qtbase qtbase
@ -85,7 +85,7 @@ mkDerivation rec {
kdelibs4support kdelibs4support
]; ];
configureFlags = [ wafConfigureFlags = [
"--qtlibs=${lib.getLib qtbase}/lib" "--qtlibs=${lib.getLib qtbase}/lib"
]; ];

View File

@ -1,5 +1,5 @@
{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala { lib, stdenv, pkg-config, fetchFromGitHub, python3, vala
, gtk3, libwnck, libxfce4util, xfce4-panel, waf, xfce , gtk3, libwnck, libxfce4util, xfce4-panel, wafHook, xfce
, gitUpdater , gitUpdater
}: }:
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA="; sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA=";
}; };
nativeBuildInputs = [ pkg-config vala waf.hook python3 ]; nativeBuildInputs = [ pkg-config vala wafHook python3 ];
buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ]; buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ];
postPatch = '' postPatch = ''

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchurl, alsa-lib, fftw, libjack2, libsamplerate { lib, stdenv, fetchurl, alsa-lib, fftw, libjack2, libsamplerate
, libsndfile, pkg-config, python3, waf , libsndfile, pkg-config, python3, wafHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl"; sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl";
}; };
nativeBuildInputs = [ pkg-config python3 waf.hook ]; nativeBuildInputs = [ pkg-config python3 wafHook ];
buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ]; buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
strictDeps = true; strictDeps = true;

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, waf { lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, wafHook
# test derivations # test derivations
, pipewire , pipewire
@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
patches = [ ./lilv-pkgconfig.patch ]; patches = [ ./lilv-pkgconfig.patch ];
nativeBuildInputs = [ pkg-config python3 waf.hook ]; nativeBuildInputs = [ pkg-config python3 wafHook ];
buildInputs = [ serd sord sratom ]; buildInputs = [ serd sord sratom ];
propagatedBuildInputs = [ lv2 ]; propagatedBuildInputs = [ lv2 ];
dontAddWafCrossFlags = true; dontAddWafCrossFlags = true;

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, boost, gtkmm2, lv2, pkg-config, python3, waf }: { lib, stdenv, fetchFromGitHub, boost, gtkmm2, lv2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "lvtk"; pname = "lvtk";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-6IoyhBig3Nvc4Y8F0w8b1up6sn8O2RmoUVaBQ//+Aaw="; sha256 = "sha256-6IoyhBig3Nvc4Y8F0w8b1up6sn8O2RmoUVaBQ//+Aaw=";
}; };
nativeBuildInputs = [ pkg-config python3 waf.hook ]; nativeBuildInputs = [ pkg-config python3 wafHook ];
buildInputs = [ boost gtkmm2 lv2 ]; buildInputs = [ boost gtkmm2 lv2 ];
enableParallelBuilding = true; enableParallelBuilding = true;
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
sed -e '/print/d' -i wscript sed -e '/print/d' -i wscript
''; '';
configureFlags = [ wafConfigureFlags = [
"--boost-includes=${boost.dev}/include" "--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib" "--boost-libs=${boost.out}/lib"
]; ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python3, waf }: { lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ntk"; pname = "ntk";
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
sha256 = "sha256-NyEdg6e+9CI9V+TIgdpPyH1ei+Vq8pUxD3wPzWY5fEU="; sha256 = "sha256-NyEdg6e+9CI9V+TIgdpPyH1ei+Vq8pUxD3wPzWY5fEU=";
}; };
nativeBuildInputs = [ pkg-config waf.hook ]; nativeBuildInputs = [ pkg-config wafHook ];
buildInputs = [ buildInputs = [
cairo libjpeg libXft python3 cairo libjpeg libXft python3
]; ];

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, waf }: { lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "raul"; pname = "raul";
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l"; sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ boost gtk2 ]; buildInputs = [ boost gtk2 ];
strictDeps = true; strictDeps = true;

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python3, serd, sord, sratom { stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python3, serd, sord, sratom
, waf , wafHook
, withQt5 ? true, qt5 ? null , withQt5 ? true, qt5 ? null
}: }:
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06"; sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 ]; nativeBuildInputs = [ pkg-config wafHook python3 ];
buildInputs = [ gtk2 lv2 serd sord sratom ] buildInputs = [ gtk2 lv2 serd sord sratom ]
++ lib.optionals withQt5 (with qt5; [ qtbase qttools ]); ++ lib.optionals withQt5 (with qt5; [ qtbase qttools ]);

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python3, waf }: { lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "ganv"; pname = "ganv";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "01znnalirbqxpz62fbw2c14c8xn117jc92xv6dhb3hln92k9x37f"; sha256 = "01znnalirbqxpz62fbw2c14c8xn117jc92xv6dhb3hln92k9x37f";
}; };
nativeBuildInputs = [ pkg-config waf.hook python3 gtk2 ]; nativeBuildInputs = [ pkg-config wafHook python3 gtk2 ];
buildInputs = [ graphviz gtkmm2 ]; buildInputs = [ graphviz gtkmm2 ];
strictDeps = true; strictDeps = true;

View File

@ -11,7 +11,7 @@
, docbook-xsl-nons , docbook-xsl-nons
, docbook_xml_dtd_42 , docbook_xml_dtd_42
, cmocka , cmocka
, waf , wafHook
, libxcrypt , libxcrypt
}: }:
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
python3 python3
waf.hook wafHook
libxslt libxslt
docbook-xsl-nons docbook-xsl-nons
docbook_xml_dtd_42 docbook_xml_dtd_42
@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
wafPath = "buildtools/bin/waf"; wafPath = "buildtools/bin/waf";
configureFlags = [ wafConfigureFlags = [
"--bundled-libraries=NONE" "--bundled-libraries=NONE"
"--builtin-libraries=replace" "--builtin-libraries=replace"
"--without-ldb-lmdb" "--without-ldb-lmdb"

View File

@ -5,7 +5,7 @@
, pkg-config , pkg-config
, python3 , python3
, python3Packages , python3Packages
, waf , wafHook
, boost179 , boost179
, openssl , openssl
, sqlite , sqlite
@ -22,11 +22,11 @@ stdenv.mkDerivation rec {
sha256 = "sha256-nnnxlkYVTSRB6ZcuIUDFol999+amGtqegHXK+06ITK8="; sha256 = "sha256-nnnxlkYVTSRB6ZcuIUDFol999+amGtqegHXK+06ITK8=";
}; };
nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx waf.hook ]; nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
buildInputs = [ boost179 openssl sqlite ]; buildInputs = [ boost179 openssl sqlite ];
configureFlags = [ wafConfigureFlags = [
"--with-openssl=${openssl.dev}" "--with-openssl=${openssl.dev}"
"--boost-includes=${boost179.dev}/include" "--boost-includes=${boost179.dev}/include"
"--boost-libs=${boost179.out}/lib" "--boost-libs=${boost179.out}/lib"

View File

@ -8,7 +8,7 @@
, docbook-xsl-nons , docbook-xsl-nons
, docbook_xml_dtd_42 , docbook_xml_dtd_42
, fixDarwinDylibNames , fixDarwinDylibNames
, waf , wafHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
python3 python3
waf.hook wafHook
docbook-xsl-nons docbook-xsl-nons
docbook_xml_dtd_42 docbook_xml_dtd_42
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
wafPath = "buildtools/bin/waf"; wafPath = "buildtools/bin/waf";
configureFlags = [ wafConfigureFlags = [
"--enable-talloc-compat1" "--enable-talloc-compat1"
"--bundled-libraries=NONE" "--bundled-libraries=NONE"
"--builtin-libraries=replace" "--builtin-libraries=replace"

View File

@ -1,7 +1,7 @@
{ lib, stdenv { lib, stdenv
, fetchurl , fetchurl
, pkg-config , pkg-config
, waf , wafHook
, python3 , python3
, readline , readline
, libxslt , libxslt
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
python3 python3
pkg-config pkg-config
waf.hook wafHook
libxslt libxslt
docbook-xsl-nons docbook-xsl-nons
docbook_xml_dtd_45 docbook_xml_dtd_45
@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
wafPath = "buildtools/bin/waf"; wafPath = "buildtools/bin/waf";
configureFlags = [ wafConfigureFlags = [
"--bundled-libraries=NONE" "--bundled-libraries=NONE"
"--builtin-libraries=replace" "--builtin-libraries=replace"
]; ];

View File

@ -9,7 +9,7 @@
, docbook-xsl-nons , docbook-xsl-nons
, docbook_xml_dtd_42 , docbook_xml_dtd_42
, which , which
, waf , wafHook
, libxcrypt , libxcrypt
}: }:
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
libxslt libxslt
docbook-xsl-nons docbook-xsl-nons
docbook_xml_dtd_42 docbook_xml_dtd_42
waf.hook wafHook
]; ];
buildInputs = [ buildInputs = [
@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
wafPath = "buildtools/bin/waf"; wafPath = "buildtools/bin/waf";
configureFlags = [ wafConfigureFlags = [
"--bundled-libraries=NONE" "--bundled-libraries=NONE"
"--builtin-libraries=replace" "--builtin-libraries=replace"
]; ];

View File

@ -13,7 +13,7 @@ makeSetupHook {
# waf is not inserted into propagatedBuildInputs, rather it is inserted # waf is not inserted into propagatedBuildInputs, rather it is inserted
# directly # directly
inherit waf; inherit waf;
crossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system) wafCrossFlags = lib.optionalString (stdenv.hostPlatform.system != stdenv.targetPlatform.system)
''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"''; ''--cross-compile "--cross-execute=${stdenv.targetPlatform.emulator pkgs}"'';
}; };

View File

@ -18,15 +18,15 @@ wafConfigurePhase() {
local flagsArray=( local flagsArray=(
$prefixFlag $prefixFlag
$configureFlags "${configureFlagsArray[@]}" $wafConfigureFlags "${wafConfigureFlagsArray[@]}"
${configureTargets:-configure} ${wafConfigureTargets:-configure}
) )
if [ -z "${dontAddWafCrossFlags:-}" ]; then if [ -z "${dontAddWafCrossFlags:-}" ]; then
flagsArray+=(@crossFlags@) flagsArray+=(@wafCrossFlags@)
fi fi
echoCmd 'configure flags' "${flagsArray[@]}" echoCmd 'waf configure flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}" python "$wafPath" "${flagsArray[@]}"
if ! [[ -v enableParallelBuilding ]]; then if ! [[ -v enableParallelBuilding ]]; then
@ -51,11 +51,11 @@ wafBuildPhase () {
local flagsArray=( local flagsArray=(
${enableParallelBuilding:+-j ${NIX_BUILD_CORES}} ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}}
$wafFlags ${wafFlagsArray[@]} $wafFlags ${wafFlagsArray[@]}
$buildFlags ${buildFlagsArray[@]} $wafBuildFlags ${wafBuildFlagsArray[@]}
${buildTargets:-build} ${wafBuildTargets:-build}
) )
echoCmd 'build flags' "${flagsArray[@]}" echoCmd 'waf build flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}" python "$wafPath" "${flagsArray[@]}"
runHook postBuild runHook postBuild
@ -71,11 +71,11 @@ wafInstallPhase() {
local flagsArray=( local flagsArray=(
${enableParallelInstalling:+-j ${NIX_BUILD_CORES}} ${enableParallelInstalling:+-j ${NIX_BUILD_CORES}}
$wafFlags ${wafFlagsArray[@]} $wafFlags ${wafFlagsArray[@]}
$installFlags ${installFlagsArray[@]} $wafInstallFlags ${wafInstallFlagsArray[@]}
${installTargets:-install} ${wafInstallTargets:-install}
) )
echoCmd 'install flags' "${flagsArray[@]}" echoCmd 'waf install flags' "${flagsArray[@]}"
python "$wafPath" "${flagsArray[@]}" python "$wafPath" "${flagsArray[@]}"
runHook postInstall runHook postInstall

View File

@ -1,6 +1,6 @@
{ lib, stdenv, fetchFromGitHub, pkg-config, python3Packages, makeWrapper { lib, stdenv, fetchFromGitHub, pkg-config, python3Packages, makeWrapper
, libsamplerate, libsndfile, readline, eigen, celt , libsamplerate, libsndfile, readline, eigen, celt
, waf , wafHook
# Darwin Dependencies # Darwin Dependencies
, aften, AudioUnit, CoreAudio, libobjc, Accelerate , aften, AudioUnit, CoreAudio, libobjc, Accelerate
@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config python makeWrapper waf.hook ]; nativeBuildInputs = [ pkg-config python makeWrapper wafHook ];
buildInputs = [ libsamplerate libsndfile readline eigen celt buildInputs = [ libsamplerate libsndfile readline eigen celt
optDbus optPythonDBus optLibffado optAlsaLib optLibopus optDbus optPythonDBus optLibffado optAlsaLib optLibopus
] ++ lib.optionals stdenv.isDarwin [ ] ++ lib.optionals stdenv.isDarwin [
@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
dontAddWafCrossFlags = true; dontAddWafCrossFlags = true;
configureFlags = [ wafConfigureFlags = [
"--classic" "--classic"
"--autostart=${if (optDbus != null) then "dbus" else "classic"}" "--autostart=${if (optDbus != null) then "dbus" else "classic"}"
] ++ lib.optional (optDbus != null) "--dbus" ] ++ lib.optional (optDbus != null) "--dbus"

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, fetchpatch, python3, waf }: { lib, stdenv, fetchFromGitHub, fetchpatch, python3, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pflask"; pname = "pflask";
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
}) })
]; ];
nativeBuildInputs = [ python3 waf.hook ]; nativeBuildInputs = [ python3 wafHook ];
postInstall = '' postInstall = ''
mkdir -p $out/bin mkdir -p $out/bin

View File

@ -8,7 +8,7 @@
, pkg-config , pkg-config
, sphinx , sphinx
, systemd , systemd
, waf , wafHook
, websocketpp , websocketpp
, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
, withWebSocket ? true , withWebSocket ? true
@ -26,10 +26,10 @@ stdenv.mkDerivation rec {
fetchSubmodules = true; fetchSubmodules = true;
}; };
nativeBuildInputs = [ pkg-config sphinx waf.hook ]; nativeBuildInputs = [ pkg-config sphinx wafHook ];
buildInputs = [ libpcap ndn-cxx openssl websocketpp ] ++ lib.optional withSystemd systemd; buildInputs = [ libpcap ndn-cxx openssl websocketpp ] ++ lib.optional withSystemd systemd;
configureFlags = [ wafConfigureFlags = [
"--boost-includes=${boost179.dev}/include" "--boost-includes=${boost179.dev}/include"
"--boost-libs=${boost179.out}/lib" "--boost-libs=${boost179.out}/lib"
"--with-tests" "--with-tests"

View File

@ -1,7 +1,7 @@
{ lib, stdenv { lib, stdenv
, buildPackages , buildPackages
, fetchurl , fetchurl
, waf , wafHook
, pkg-config , pkg-config
, bison , bison
, flex , flex
@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
python3Packages.python python3Packages.python
waf.hook wafHook
pkg-config pkg-config
bison bison
flex flex
@ -135,7 +135,7 @@ stdenv.mkDerivation rec {
export PYTHONHASHSEED=1 export PYTHONHASHSEED=1
''; '';
configureFlags = [ wafConfigureFlags = [
"--with-static-modules=NONE" "--with-static-modules=NONE"
"--with-shared-modules=ALL" "--with-shared-modules=ALL"
"--enable-fhs" "--enable-fhs"

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, waf }: { lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, wafHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "blockhash"; pname = "blockhash";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35"; sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35";
}; };
nativeBuildInputs = [ python3 pkg-config waf.hook ]; nativeBuildInputs = [ python3 pkg-config wafHook ];
buildInputs = [ imagemagick ]; buildInputs = [ imagemagick ];
strictDeps = true; strictDeps = true;

View File

@ -7,7 +7,7 @@
, openssl , openssl
, pkg-config , pkg-config
, sphinx , sphinx
, waf , wafHook
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -32,10 +32,10 @@ stdenv.mkDerivation rec {
EOF EOF
''; '';
nativeBuildInputs = [ pkg-config sphinx waf.hook ]; nativeBuildInputs = [ pkg-config sphinx wafHook ];
buildInputs = [ libpcap ndn-cxx openssl ]; buildInputs = [ libpcap ndn-cxx openssl ];
configureFlags = [ wafConfigureFlags = [
"--boost-includes=${boost.dev}/include" "--boost-includes=${boost.dev}/include"
"--boost-libs=${boost.out}/lib" "--boost-libs=${boost.out}/lib"
"--with-tests" "--with-tests"

View File

@ -1,7 +1,7 @@
{ lib, stdenv { lib, stdenv
, fetchFromGitHub , fetchFromGitHub
, pkg-config , pkg-config
, waf , wafHook
, python3 , python3
, asciidoc , asciidoc
, docbook_xml_dtd_45 , docbook_xml_dtd_45
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
waf.hook wafHook
python3 python3
asciidoc asciidoc
docbook_xml_dtd_45 docbook_xml_dtd_45
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
buildInputs = [ curl libevent ]; buildInputs = [ curl libevent ];
configureFlags = [ "--saldl-version ${version}" "--no-werror" ]; wafConfigureFlags = [ "--saldl-version ${version}" "--no-werror" ];
outputs = [ "out" "man" ]; outputs = [ "out" "man" ];

View File

@ -1866,7 +1866,6 @@ mapAliases ({
inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17 inherit (libsForQt5.mauiPackages) vvave; # added 2022-05-17
### W ### ### W ###
wafHook = waf.hook; # Added 2023-08-23
wavesurfer = throw "wavesurfer has been removed: depended on snack which has been removed"; # Added 2022-04-21 wavesurfer = throw "wavesurfer has been removed: depended on snack which has been removed"; # Added 2022-04-21
waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21 waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
way-cooler = throw "way-cooler is abandoned by its author: https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"; # Added 2020-01-13 way-cooler = throw "way-cooler is abandoned by its author: https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"; # Added 2020-01-13

View File

@ -14858,6 +14858,12 @@ with pkgs;
volumeicon = callPackage ../tools/audio/volumeicon { }; volumeicon = callPackage ../tools/audio/volumeicon { };
waf = callPackage ../development/tools/build-managers/waf { }; waf = callPackage ../development/tools/build-managers/waf { };
# An alias to work around the splicing incidents
# Related:
# https://github.com/NixOS/nixpkgs/issues/204303
# https://github.com/NixOS/nixpkgs/issues/211340
# https://github.com/NixOS/nixpkgs/issues/227327
wafHook = waf.hook;
waf-tester = callPackage ../tools/security/waf-tester { }; waf-tester = callPackage ../tools/security/waf-tester { };