From 92ebfa13833065a23cd3479eefc2624b46ec45dd Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sat, 10 Nov 2018 14:30:48 -0600 Subject: [PATCH 1/6] wafHook: init The waf build system is python-based and hosted locally in each package in the executable file named "waf". Unlike CMake, it cannot generate makefiles so we end up having to override the configure, build, and install phases. I've tried to keep these as close to what's in setup.sh as possible. If there is no waf file in the root directory, then we just copy the one hosted in Nixpkgs. Otherwise the only thing you have to add to a package using Waf is "wafHook" into nativeBuildInputs. wafFlags controls the flags specifically passed to waf while configureFlags, buildFlags, and installFlags are still used as in the generic builder. --- .../tools/build-managers/waf/setup-hook.sh | 62 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 2 files changed, 66 insertions(+) create mode 100644 pkgs/development/tools/build-managers/waf/setup-hook.sh diff --git a/pkgs/development/tools/build-managers/waf/setup-hook.sh b/pkgs/development/tools/build-managers/waf/setup-hook.sh new file mode 100644 index 00000000000..b8a448df8ef --- /dev/null +++ b/pkgs/development/tools/build-managers/waf/setup-hook.sh @@ -0,0 +1,62 @@ +wafConfigurePhase() { + runHook preConfigure + + if ! [ -f ./waf ]; then + cp @waf@ waf + fi + + if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then + configureFlags="${prefixKey:---prefix=}$prefix $configureFlags" + fi + + local flagsArray=( + $configureFlags ${configureFlagsArray[@]} + ${configureTargets:-configure} + ) + echoCmd 'configure flags' "${flagsArray[@]}" + python waf "${flagsArray[@]}" + + runHook postConfigure +} + +wafBuildPhase () { + runHook preBuild + + # set to empty if unset + : ${wafFlags=} + + local flagsArray=( + ${enableParallelBuilding:+-j ${NIX_BUILD_CORES}} + $wafFlags ${wafFlagsArray[@]} + $buildFlags ${buildFlagsArray[@]} + ${buildTargets:-build} + ) + + echoCmd 'build flags' "${flagsArray[@]}" + python waf "${flagsArray[@]}" + + runHook postBuild +} + +wafInstallPhase() { + runHook preInstall + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + local flagsArray=( + $wafFlags ${wafFlagsArray[@]} + $installFlags ${installFlagsArray[@]} + ${installTargets:-install} + ) + + echoCmd 'install flags' "${flagsArray[@]}" + python waf "${flagsArray[@]}" + + runHook postInstall +} + +configurePhase=wafConfigurePhase +buildPhase=wafBuildPhase +installPhase=wafInstallPhase diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ce376669923..638d76af760 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6203,6 +6203,10 @@ with pkgs; volumeicon = callPackage ../tools/audio/volumeicon { }; waf = callPackage ../development/tools/build-managers/waf { python = python3; }; + wafHook = makeSetupHook { + deps = [ python ]; + substitutions = { inherit waf; }; + } ../development/tools/build-managers/waf/setup-hook.sh; wakelan = callPackage ../tools/networking/wakelan { }; From f2a20b6e520989bc2c01d362c31fa94cbf6bee52 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 11 Nov 2018 15:20:41 -0600 Subject: [PATCH 2/6] treewide: use wafHook Replace "waf" phases with wafHook that manages everything automatically. Should make things more modular. Packages affected here are: - a2jmidid - ams-lv2 - ardour - fomp - guitarix - ingen - jalv - mda-lv2 - non - patchage - hamster-time-tracker - kupfer - xiphos - xfce4-dockbarx-plugin - xfce4-namebar-plugin - dropbox - clasp - aubio - liliv - lv2 - lvtk - ntk - raul - sratom - suil - ganv - ndn-cxx - ns3 - serd - sord - termbox - wxmupen64plus - jackaudio - pflask - blockhash - glmark2 - weighttp --- pkgs/applications/audio/a2jmidid/default.nix | 10 ++--- pkgs/applications/audio/ams-lv2/default.nix | 11 ++---- pkgs/applications/audio/ardour/default.nix | 16 ++++---- pkgs/applications/audio/fomp/default.nix | 10 +---- pkgs/applications/audio/guitarix/default.nix | 10 +---- pkgs/applications/audio/ingen/default.nix | 12 ++---- pkgs/applications/audio/jalv/default.nix | 10 +---- pkgs/applications/audio/mda-lv2/default.nix | 10 +---- pkgs/applications/audio/non/default.nix | 7 +--- pkgs/applications/audio/patchage/default.nix | 8 +--- .../misc/hamster-time-tracker/default.nix | 14 +------ pkgs/applications/misc/kupfer/default.nix | 22 ++--------- pkgs/applications/misc/xiphos/default.nix | 17 ++------ .../panel-plugins/xfce4-dockbarx-plugin.nix | 11 ++---- .../panel-plugins/xfce4-namebar-plugin.nix | 11 ++---- .../xfce/thunar-plugins/dropbox/default.nix | 11 +----- pkgs/development/compilers/clasp/default.nix | 39 +++++-------------- pkgs/development/libraries/aubio/default.nix | 10 +---- .../libraries/audio/lilv/default.nix | 10 +---- .../libraries/audio/lv2/default.nix | 10 +---- .../libraries/audio/lv2/unstable.nix | 10 +---- .../libraries/audio/lvtk/default.nix | 17 +++----- .../libraries/audio/ntk/default.nix | 13 +------ .../libraries/audio/raul/default.nix | 10 +---- .../libraries/audio/sratom/default.nix | 10 +---- .../libraries/audio/suil/default.nix | 9 +---- pkgs/development/libraries/ganv/default.nix | 10 +---- .../development/libraries/ndn-cxx/default.nix | 24 ++++-------- .../science/networking/ns3/default.nix | 14 +++---- pkgs/development/libraries/serd/default.nix | 10 +---- pkgs/development/libraries/sord/default.nix | 10 +---- .../development/libraries/termbox/default.nix | 8 +--- pkgs/misc/emulators/wxmupen64plus/default.nix | 12 +++--- pkgs/misc/jackaudio/default.nix | 35 ++++++----------- pkgs/os-specific/linux/pflask/default.nix | 14 +------ pkgs/tools/graphics/blockhash/default.nix | 8 +--- pkgs/tools/graphics/glmark2/default.nix | 13 ++----- pkgs/tools/networking/weighttp/default.nix | 8 +--- 38 files changed, 127 insertions(+), 367 deletions(-) diff --git a/pkgs/applications/audio/a2jmidid/default.nix b/pkgs/applications/audio/a2jmidid/default.nix index d09a10a15b2..630dec57f19 100644 --- a/pkgs/applications/audio/a2jmidid/default.nix +++ b/pkgs/applications/audio/a2jmidid/default.nix @@ -1,4 +1,5 @@ { stdenv, fetchurl, makeWrapper, pkgconfig, alsaLib, dbus, libjack2 +, wafHook , python2Packages}: let @@ -12,15 +13,10 @@ in stdenv.mkDerivation rec { sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ makeWrapper alsaLib dbus libjack2 python dbus-python ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = '' - ${python.interpreter} waf install + postInstall = '' wrapProgram $out/bin/a2j_control --set PYTHONPATH $PYTHONPATH ''; diff --git a/pkgs/applications/audio/ams-lv2/default.nix b/pkgs/applications/audio/ams-lv2/default.nix index 7858631f797..3475f62dcbb 100644 --- a/pkgs/applications/audio/ams-lv2/default.nix +++ b/pkgs/applications/audio/ams-lv2/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkgconfig, python3 }: +{ stdenv, fetchFromGitHub, cairo, fftw, gtkmm2, lv2, lvtk, pkgconfig, python3 +, wafHook }: stdenv.mkDerivation rec { name = "ams-lv2-${version}"; @@ -11,15 +12,9 @@ stdenv.mkDerivation rec { sha256 = "1n1dnqnj24xhiy9323lj52nswr5120cj56fpckg802miss05sr6x"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ cairo fftw gtkmm2 lv2 lvtk ]; - configurePhase = "${python3.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python3.interpreter} waf"; - - installPhase = "${python3.interpreter} waf install"; - meta = with stdenv.lib; { description = "An LV2 port of the internal modules found in Alsa Modular Synth"; homepage = http://objectivewave.wordpress.com/ams-lv2; diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix index 850848abcde..1bb1e404b5c 100644 --- a/pkgs/applications/audio/ardour/default.nix +++ b/pkgs/applications/audio/ardour/default.nix @@ -4,7 +4,8 @@ , librdf_raptor, librdf_rasqal, libsamplerate, libsigcxx, libsndfile , libusb, libuuid, libxml2, libxslt, lilv, lv2, makeWrapper , perl, pkgconfig, python2, rubberband, serd, sord, sratom -, taglib, vampSDK, dbus, fftw, pango, suil, libarchive }: +, taglib, vampSDK, dbus, fftw, pango, suil, libarchive +, wafHook }: let @@ -29,6 +30,7 @@ stdenv.mkDerivation rec { sha256 = "0mla5lm51ryikc2rrk53max2m7a5ds6i1ai921l2h95wrha45nkr"; }; + nativeBuildInputs = [ wafHook ]; buildInputs = [ alsaLib aubio boost cairomm curl doxygen dbus fftw fftwSinglePrec flac glibmm graphviz gtkmm2 libjack2 libgnomecanvas libgnomecanvasmm liblo @@ -47,13 +49,13 @@ stdenv.mkDerivation rec { patchShebangs ./tools/ ''; - configurePhase = "${python2.interpreter} waf configure --optimize --docs --with-backends=jack,alsa,dummy --prefix=$out"; - - buildPhase = "${python2.interpreter} waf"; - - installPhase = '' - ${python2.interpreter} waf install + configureFlags = [ + "--optimize" + "--docs" + "--with-backends=jack,alsa,dummy" + ]; + postInstall = '' # Install desktop file mkdir -p "$out/share/applications" cat > "$out/share/applications/ardour.desktop" << EOF diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix index d7a46143939..680fab4ca64 100644 --- a/pkgs/applications/audio/fomp/default.nix +++ b/pkgs/applications/audio/fomp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, lv2, pkgconfig, python2 }: +{ stdenv, fetchurl, lv2, pkgconfig, python2, wafHook }: stdenv.mkDerivation rec { name = "fomp-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "1hh2xhknanqn3iwp12ihl6bf8p7bqxryms9qk7mh21lixl42b8k5"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ lv2 python2 ]; - installPhase = '' - python waf configure --prefix=$out - python waf - python waf install - ''; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/fomp/; description = "An LV2 port of the MCP, VCO, FIL, and WAH plugins by Fons Adriaensen"; diff --git a/pkgs/applications/audio/guitarix/default.nix b/pkgs/applications/audio/guitarix/default.nix index 041f847585d..bc4c18aab08 100644 --- a/pkgs/applications/audio/guitarix/default.nix +++ b/pkgs/applications/audio/guitarix/default.nix @@ -2,7 +2,7 @@ , avahi, bluez, boost, eigen, fftw, glib, glib-networking , glibmm, gsettings-desktop-schemas, gtkmm2, libjack2 , ladspaH, libav, librdf, libsndfile, lilv, lv2, serd, sord, sratom -, wrapGAppsHook, zita-convolver, zita-resampler, curl +, wrapGAppsHook, zita-convolver, zita-resampler, curl, wafHook , optimizationSupport ? false # Enable support for native CPU extensions }: @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { sha256 = "1wfm8wrwrnqpb4ihy75n7l9i6vml536jlq9pdx2pblbc4ba3paac"; }; - nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 ]; + nativeBuildInputs = [ gettext intltool wrapGAppsHook pkgconfig python2 wafHook ]; buildInputs = [ avahi bluez boost eigen fftw glib glibmm glib-networking.out @@ -38,12 +38,6 @@ stdenv.mkDerivation rec { "--convolver-ffmpeg" ] ++ optional optimizationSupport "--optimization"; - configurePhase = ''python2 waf configure --prefix=$out $configureFlags''; - - buildPhase = ''python2 waf build''; - - installPhase = ''python2 waf install''; - meta = with stdenv.lib; { description = "A virtual guitar amplifier for Linux running with JACK"; longDescription = '' diff --git a/pkgs/applications/audio/ingen/default.nix b/pkgs/applications/audio/ingen/default.nix index d9109dd1c0e..e10a25b8917 100644 --- a/pkgs/applications/audio/ingen/default.nix +++ b/pkgs/applications/audio/ingen/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchgit, boost, ganv, glibmm, gtkmm2, libjack2, lilv , lv2Unstable, makeWrapper, pkgconfig, python, raul, rdflib, serd, sord, sratom - +, wafHook , suil }: @@ -15,23 +15,19 @@ stdenv.mkDerivation rec { deepClone = true; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ boost ganv glibmm gtkmm2 libjack2 lilv lv2Unstable makeWrapper python raul serd sord sratom suil ]; - configurePhase = '' + preConfigure = '' sed -e "s@{PYTHONDIR}/'@out/'@" -i wscript - ${python.interpreter} waf configure --prefix=$out ''; propagatedBuildInputs = [ rdflib ]; - buildPhase = "${python.interpreter} waf"; - - installPhase = '' - ${python.interpreter} waf install + postInstall = '' for program in ingenams ingenish do wrapProgram $out/bin/$program \ diff --git a/pkgs/applications/audio/jalv/default.nix b/pkgs/applications/audio/jalv/default.nix index f78110e8bbb..e2f0c7ea7af 100644 --- a/pkgs/applications/audio/jalv/default.nix +++ b/pkgs/applications/audio/jalv/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkgconfig, python -, serd, sord , sratom, suil }: +, serd, sord , sratom, suil, wafHook }: stdenv.mkDerivation rec { name = "jalv-${version}"; @@ -10,17 +10,11 @@ stdenv.mkDerivation rec { sha256 = "1x2wpzzx2cgvz3dgdcgsj8dr0w3zsasy62mvl199bsdj5fbjaili"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ gtk2 libjack2 lilv lv2 python serd sord sratom suil ]; - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf"; - - installPhase = "python waf install"; - meta = with stdenv.lib; { description = "A simple but fully featured LV2 host for Jack"; homepage = http://drobilla.net/software/jalv; diff --git a/pkgs/applications/audio/mda-lv2/default.nix b/pkgs/applications/audio/mda-lv2/default.nix index e27aab6e898..26290e5bf88 100644 --- a/pkgs/applications/audio/mda-lv2/default.nix +++ b/pkgs/applications/audio/mda-lv2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, python }: +{ stdenv, fetchurl, fftwSinglePrec, lv2, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "mda-lv2-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "0hh40c5d2m0k5gb3vw031l6lqn59dg804an3mkmhkc7qv4gc6xm4"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ fftwSinglePrec lv2 python ]; - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf"; - - installPhase = "python waf install"; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/mda-lv2/; description = "An LV2 port of the MDA plugins by Paul Kellett"; diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix index c28c711d618..44dd0d2d4ec 100644 --- a/pkgs/applications/audio/non/default.nix +++ b/pkgs/applications/audio/non/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, python2, cairo, libjpeg, ntk, libjack2 -, libsndfile, ladspaH, liblrdf, liblo, libsigcxx +, libsndfile, ladspaH, liblrdf, liblo, libsigcxx, wafHook }: stdenv.mkDerivation rec { @@ -12,13 +12,10 @@ stdenv.mkDerivation rec { sha256 = "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile ladspaH liblrdf liblo libsigcxx ]; - configurePhase = "python waf configure --prefix=$out"; - buildPhase = "python waf build"; - installPhase = "python waf install"; meta = { description = "Lightweight and lightning fast modular Digital Audio Workstation"; diff --git a/pkgs/applications/audio/patchage/default.nix b/pkgs/applications/audio/patchage/default.nix index 8425b48166e..7f3940e0ae9 100644 --- a/pkgs/applications/audio/patchage/default.nix +++ b/pkgs/applications/audio/patchage/default.nix @@ -1,5 +1,5 @@ { stdenv, alsaLib, boost, dbus-glib, fetchsvn, ganv, glibmm -, gtkmm2, libjack2, pkgconfig, python2 +, gtkmm2, libjack2, pkgconfig, python2, wafHook }: stdenv.mkDerivation rec { @@ -13,13 +13,9 @@ stdenv.mkDerivation rec { buildInputs = [ alsaLib boost dbus-glib ganv glibmm gtkmm2 libjack2 - pkgconfig python2 + pkgconfig python2 wafHook ]; - configurePhase = "python waf configure --prefix=$out"; - buildPhase = "python waf build"; - installPhase = "python waf install"; - meta = { description = "Modular patch bay for Jack and ALSA systems"; homepage = http://non.tuxfamily.org; diff --git a/pkgs/applications/misc/hamster-time-tracker/default.nix b/pkgs/applications/misc/hamster-time-tracker/default.nix index 2abdce45c95..453d95694eb 100644 --- a/pkgs/applications/misc/hamster-time-tracker/default.nix +++ b/pkgs/applications/misc/hamster-time-tracker/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchzip, pythonPackages, docbook2x, libxslt, gnome-doc-utils , intltool, dbus-glib, gnome_python , hicolor-icon-theme +, wafHook }: # TODO: Add optional dependency 'wnck', for "workspace tracking" support. Fixes @@ -17,28 +18,17 @@ pythonPackages.buildPythonApplication rec { sha256 = "1a85rcg561792kdyv744cgzw7mmpmgv6d6li1sijfdpqa1ninf8g"; }; + nativeBuildInputs = [ wafHook ]; buildInputs = [ docbook2x libxslt gnome-doc-utils intltool dbus-glib hicolor-icon-theme ]; propagatedBuildInputs = with pythonPackages; [ pygobject2 pygtk pyxdg gnome_python dbus-python ]; - configurePhase = '' - python waf configure --prefix="$out" - ''; - - buildPhase = '' - python waf build - ''; - postFixup = '' wrapPythonProgramsIn $out/lib/hamster-time-tracker "$out $pythonPath" ''; - installPhase = '' - python waf install - ''; - # error: invalid command 'test' doCheck = false; diff --git a/pkgs/applications/misc/kupfer/default.nix b/pkgs/applications/misc/kupfer/default.nix index 3072963c43e..0b07767d760 100644 --- a/pkgs/applications/misc/kupfer/default.nix +++ b/pkgs/applications/misc/kupfer/default.nix @@ -8,6 +8,7 @@ , keybinder3 , hicolor-icon-theme , wrapGAppsHook +, wafHook }: with python3Packages; @@ -24,37 +25,20 @@ buildPythonApplication rec { nativeBuildInputs = [ wrapGAppsHook intltool # For setup hook - gobjectIntrospection + gobjectIntrospection wafHook ]; buildInputs = [ hicolor-icon-theme docutils libwnck3 keybinder3 ]; propagatedBuildInputs = [ pygobject3 gtk3 pyxdg dbus-python pycairo ]; - configurePhase = '' - runHook preConfigure - python ./waf configure --prefix=$prefix - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - python ./waf - runHook postBuild - ''; - - installPhase = let + postInstall = let pythonPath = (stdenv.lib.concatMapStringsSep ":" (m: "${m}/lib/${python.libPrefix}/site-packages") propagatedBuildInputs); in '' - runHook preInstall - python ./waf install - gappsWrapperArgs+=( "--prefix" "PYTHONPATH" : "${pythonPath}" "--set" "PYTHONNOUSERSITE" "1" ) - - runHook postInstall ''; doCheck = false; # no tests diff --git a/pkgs/applications/misc/xiphos/default.nix b/pkgs/applications/misc/xiphos/default.nix index bb7b22c40a2..7148caf35d3 100644 --- a/pkgs/applications/misc/xiphos/default.nix +++ b/pkgs/applications/misc/xiphos/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchFromGitHub, pkgconfig +{ stdenv, fetchFromGitHub, pkgconfig , python , intltool , docbook2x, docbook_xml_dtd_412, libxslt @@ -9,6 +9,7 @@ , webkitgtk , dbus-glib, enchant, isocodes, libuuid, icu , wrapGAppsHook +, wafHook }: stdenv.mkDerivation rec { @@ -22,7 +23,7 @@ stdenv.mkDerivation rec { sha256 = "1vwf1ps6nrajxl1qbs6v1cgykmq5wn4j09j10gbcd3b2nvrprf3g"; }; - nativeBuildInputs = [ pkgconfig wrapGAppsHook ]; + nativeBuildInputs = [ pkgconfig wrapGAppsHook wafHook ]; buildInputs = [ python intltool docbook2x docbook_xml_dtd_412 libxslt sword clucene_core biblesync gnome-doc-utils libgsf gconf gtkhtml libglade scrollkeeper webkitgtk dbus-glib enchant isocodes libuuid icu ]; @@ -36,17 +37,7 @@ stdenv.mkDerivation rec { export SWORD_HOME=${sword}; ''; - configurePhase = '' - python waf configure --prefix=$out --enable-webkit2 - ''; - - buildPhase = '' - python waf build - ''; - - installPhase = '' - python waf install - ''; + configureFlags= [ "--enable-webkit2" ]; meta = with stdenv.lib; { description = "A GTK Bible study tool"; diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix index 621b4266d10..b33ba7770be 100644 --- a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin.nix @@ -1,4 +1,5 @@ -{ stdenv, pkgconfig, fetchFromGitHub, python2, bash, vala, dockbarx, gtk2, xfce, pythonPackages }: +{ stdenv, pkgconfig, fetchFromGitHub, python2, bash, vala +, dockbarx, gtk2, xfce, pythonPackages, wafHook }: stdenv.mkDerivation rec { ver = "0.5"; @@ -14,7 +15,7 @@ stdenv.mkDerivation rec { pythonPath = [ dockbarx ]; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ python2 vala gtk2 pythonPackages.wrapPython ] ++ (with xfce; [ libxfce4util xfce4-panel xfconf xfce4-dev-tools ]) ++ pythonPath; @@ -25,12 +26,6 @@ stdenv.mkDerivation rec { substituteInPlace src/dockbarx.vala --replace '/usr/bin/env python2' ${bash}/bin/bash ''; - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf build"; - - installPhase = "python waf install"; - postFixup = '' wrapPythonProgramsIn "$out/share/xfce4/panel/plugins" "$out $pythonPath" ''; diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix index 66179996df6..61035571f53 100644 --- a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix +++ b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin.nix @@ -1,4 +1,5 @@ -{ stdenv, pkgconfig, fetchFromGitHub, python2, vala, gtk2, libwnck, libxfce4util, xfce4-panel }: +{ stdenv, pkgconfig, fetchFromGitHub, python2, vala +, gtk2, libwnck, libxfce4util, xfce4-panel, wafHook }: stdenv.mkDerivation rec { ver = "0.3.1"; @@ -12,7 +13,7 @@ stdenv.mkDerivation rec { sha256 = "1sl4qmjywfvv53ch7hyfysjfd91zl38y7gdw2y3k69vkzd3h18ad"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ python2 vala gtk2 libwnck libxfce4util xfce4-panel ]; postPatch = '' @@ -20,12 +21,6 @@ stdenv.mkDerivation rec { substituteInPlace src/namebar.vala --replace 'Environment.get_system_data_dirs()' "{ \"$out/share\" }" ''; - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf build"; - - installPhase = "python waf install"; - meta = with stdenv.lib; { homepage = https://github.com/TiZ-EX1/xfce4-namebar-plugin; description = "A plugins which integrates titlebar and window controls into the xfce4-panel"; diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix index b86199c5012..217cecf85a8 100644 --- a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix +++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix @@ -1,6 +1,7 @@ { stdenv, fetchurl, pkgconfig , gtk , thunar-bare, python2, hicolor-icon-theme +, wafHook }: stdenv.mkDerivation rec { @@ -14,20 +15,12 @@ stdenv.mkDerivation rec { sha256 = "08vhzzzwshyz371yl7fzfylmhvchhv3s5kml3dva4v39jhvrpnkf"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ gtk thunar-bare python2 hicolor-icon-theme ]; - configurePhase = "python2 waf configure --prefix=$out"; - - buildPhase = "python2 waf"; - - installPhase = '' - python2 waf install - ''; - enableParallelBuilding = true; meta = with stdenv.lib; { diff --git a/pkgs/development/compilers/clasp/default.nix b/pkgs/development/compilers/clasp/default.nix index 2c260e110d6..349482fbde9 100644 --- a/pkgs/development/compilers/clasp/default.nix +++ b/pkgs/development/compilers/clasp/default.nix @@ -1,7 +1,8 @@ -{stdenv, fetchFromGitHub - , llvmPackages - , cmake, boehmgc, gmp, zlib, ncurses, boost - , python, git, sbcl +{ stdenv, fetchFromGitHub +, llvmPackages +, cmake, boehmgc, gmp, zlib, ncurses, boost +, python, git, sbcl +, wafHook }: stdenv.mkDerivation rec { name = "${pname}-${version}"; @@ -16,7 +17,7 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; - nativeBuildInputs = [ cmake python git sbcl ]; + nativeBuildInputs = [ cmake python git sbcl wafHook ]; buildInputs = with llvmPackages; ( builtins.map (x: stdenv.lib.overrideDerivation x @@ -32,36 +33,14 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = " -frtti "; - configurePhase = '' - runHook preConfigure - - export CXX=clang++ - export CC=clang - + postPatch = '' echo " INSTALL_PATH_PREFIX = '$out' " | sed -e 's/^ *//' > wscript.config - - python ./waf configure update_submodules - - runHook postConfigure ''; - buildPhase = '' - runHook preBuild - - python ./waf build_cboehm - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - python ./waf install_cboehm - - runHook postInstall - ''; + buildTargets = "build_cboehm"; + installTargets = "install_cboehm"; meta = { inherit version; diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix index 8c8fe25f500..01ca9a3ec83 100644 --- a/pkgs/development/libraries/aubio/default.nix +++ b/pkgs/development/libraries/aubio/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, alsaLib, fftw, libjack2, libsamplerate -, libsndfile, pkgconfig, python +, libsndfile, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { @@ -10,15 +10,9 @@ stdenv.mkDerivation rec { sha256 = "0hd0kzfmr46am00ygxar8alrldv92c5azqy701iilfmbqpz4mvfb"; }; - nativeBuildInputs = [ pkgconfig python ]; + nativeBuildInputs = [ pkgconfig python wafHook ]; buildInputs = [ alsaLib fftw libjack2 libsamplerate libsndfile ]; - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf"; - - installPhase = "python waf install"; - meta = with stdenv.lib; { description = "Library for audio labelling"; homepage = https://aubio.org/; diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix index f28e374c852..373d50a0a43 100644 --- a/pkgs/development/libraries/audio/lilv/default.nix +++ b/pkgs/development/libraries/audio/lilv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, sratom }: +{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, sratom, wafHook }: stdenv.mkDerivation rec { name = "lilv-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "0f24cd7wkk5l969857g2ydz2kjjrkvvddg1g87xzzs78lsvq8fy3"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ lv2 python serd sord sratom ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/lilv; description = "A C library to make the use of LV2 plugins"; diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix index 3df8f5e3078..5b98a88a8fb 100644 --- a/pkgs/development/libraries/audio/lv2/default.nix +++ b/pkgs/development/libraries/audio/lv2/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gtk2, libsndfile, pkgconfig, python }: +{ stdenv, fetchurl, gtk2, libsndfile, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "lv2-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "0chxwys3vnn3nxc9x2vchm74s9sx0vfra6y893byy12ci61jc1dq"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ gtk2 libsndfile python ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { homepage = http://lv2plug.in; description = "A plugin standard for audio systems"; diff --git a/pkgs/development/libraries/audio/lv2/unstable.nix b/pkgs/development/libraries/audio/lv2/unstable.nix index 4a632d07006..81cc868f52c 100644 --- a/pkgs/development/libraries/audio/lv2/unstable.nix +++ b/pkgs/development/libraries/audio/lv2/unstable.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, gtk2, libsndfile, pkgconfig, python }: +{ stdenv, fetchgit, gtk2, libsndfile, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "lv2-unstable-${version}"; @@ -10,15 +10,9 @@ stdenv.mkDerivation rec { sha256 = "1gp2rd99dfmpibvpixrqn115mrhybzf3if3h8bssf6siyi13f29r"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ gtk2 libsndfile python ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { homepage = http://lv2plug.in; description = "A plugin standard for audio systems"; diff --git a/pkgs/development/libraries/audio/lvtk/default.nix b/pkgs/development/libraries/audio/lvtk/default.nix index c74c8caa23f..b6203a159e6 100644 --- a/pkgs/development/libraries/audio/lvtk/default.nix +++ b/pkgs/development/libraries/audio/lvtk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, boost, gtkmm2, lv2, pkgconfig, python }: +{ stdenv, fetchurl, boost, gtkmm2, lv2, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "lvtk-${version}"; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { sha256 = "03nbj2cqcklqwh50zj2gwm07crh5iwqbpxbpzwbg5hvgl4k4rnjd"; }; - nativeBuildInputs = [ pkgconfig python ]; + nativeBuildInputs = [ pkgconfig python wafHook ]; buildInputs = [ boost gtkmm2 lv2 ]; enableParallelBuilding = true; @@ -19,15 +19,10 @@ stdenv.mkDerivation rec { sed -i '/target[ ]*= "ttl2c"/ ilib=["boost_system"],' tools/wscript_build ''; - configurePhase = '' - python waf configure --prefix=$out \ - --boost-includes="${boost.dev}/include" \ - --boost-libs="${boost.out}/lib" - ''; - - buildPhase = "python waf"; - - installPhase = "python waf install"; + configureFlags = [ + "--boost-includes=${boost.dev}/include" + "--boost-libs=${boost.out}/lib" + ]; meta = with stdenv.lib; { description = "A set C++ wrappers around the LV2 C API"; diff --git a/pkgs/development/libraries/audio/ntk/default.nix b/pkgs/development/libraries/audio/ntk/default.nix index 6e7cb8d020b..ddd3940098a 100644 --- a/pkgs/development/libraries/audio/ntk/default.nix +++ b/pkgs/development/libraries/audio/ntk/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkgconfig, python2 }: +{ stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkgconfig, python2, wafHook }: stdenv.mkDerivation rec { name = "ntk-${version}"; @@ -10,20 +10,11 @@ stdenv.mkDerivation rec { sha256 = "0j38mhnfqy6swcrnc5zxcwlqi8b1pgklyghxk6qs1lf4japv2zc0"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ cairo libjpeg libXft python2 ]; - buildPhase = '' - python waf configure --prefix=$out - python waf - ''; - - installPhase = '' - python waf install - ''; - meta = { description = "Fork of FLTK 1.3.0 with additional functionality"; version = "${version}"; diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix index 63e3ae36028..51234a415fd 100644 --- a/pkgs/development/libraries/audio/raul/default.nix +++ b/pkgs/development/libraries/audio/raul/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, boost, gtk2, pkgconfig, python }: +{ stdenv, fetchgit, boost, gtk2, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "raul-unstable-${rev}"; @@ -10,15 +10,9 @@ stdenv.mkDerivation rec { sha256 = "04fajrass3ymr72flx5js5vxc601ccrmx8ny8scp0rw7j0igyjdr"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ boost gtk2 python ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { description = "A C++ utility library primarily aimed at audio/musical applications"; homepage = http://drobilla.net/software/raul; diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix index acfbced5272..09a6230184a 100644 --- a/pkgs/development/libraries/audio/sratom/default.nix +++ b/pkgs/development/libraries/audio/sratom/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord }: +{ stdenv, fetchurl, lv2, pkgconfig, python, serd, sord, wafHook }: stdenv.mkDerivation rec { name = "sratom-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "0lz883ravxjf7r9wwbx2gx9m8vhyiavxrl9jdxfppjxnsralll8a"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ lv2 python serd sord ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/sratom; description = "A library for serialising LV2 atoms to/from RDF"; diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix index e29c7b5cb12..10d650d6642 100644 --- a/pkgs/development/libraries/audio/suil/default.nix +++ b/pkgs/development/libraries/audio/suil/default.nix @@ -1,4 +1,5 @@ { stdenv, lib, fetchurl, gtk2, lv2, pkgconfig, python, serd, sord, sratom +, wafHook , withQt4 ? true, qt4 ? null , withQt5 ? false, qt5 ? null }: @@ -16,17 +17,11 @@ stdenv.mkDerivation rec { sha256 = "0j489gm3fhnmwmbgw30bvd4byw1vsy4yazdlnji8jzhcz0qwb5cq"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ gtk2 lv2 python serd sord sratom ] ++ (lib.optionals withQt4 [ qt4 ]) ++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ])); - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf"; - - installPhase = "python waf install"; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/suil; description = "A lightweight C library for loading and wrapping LV2 plugin UIs"; diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix index 5a21af6a2b3..58356f0bc67 100644 --- a/pkgs/development/libraries/ganv/default.nix +++ b/pkgs/development/libraries/ganv/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkgconfig, python }: +{ stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "ganv-unstable-${rev}"; @@ -10,15 +10,9 @@ stdenv.mkDerivation rec { sha256 = "0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ graphviz gtk2 gtkmm2 python ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { description = "An interactive Gtk canvas widget for graph-based interfaces"; homepage = http://drobilla.net; diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix index a8d7f654a9f..923bc61f67d 100644 --- a/pkgs/development/libraries/ndn-cxx/default.nix +++ b/pkgs/development/libraries/ndn-cxx/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchFromGitHub, openssl, doxygen, boost, sqlite, pkgconfig, python, pythonPackages }: +{ stdenv, fetchFromGitHub, openssl, doxygen +, boost, sqlite, pkgconfig, python, pythonPackages, wafHook }: let version = "0.6.3"; in @@ -10,22 +11,13 @@ stdenv.mkDerivation { rev = "a3bf4319ed483a4a6fe2c96b79ec4491d7217f00"; sha256 = "076jhrjigisqz5n8dgxwd5fhimg69zhm834m7w9yvf9afgzrr50h"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ openssl doxygen boost sqlite python pythonPackages.sphinx]; - preConfigure = '' - patchShebangs waf - ./waf configure \ - --prefix=$out \ - --with-openssl=${openssl.dev} \ - --boost-includes=${boost.dev}/include \ - --boost-libs=${boost.out}/lib - ''; - buildPhase = '' - ./waf - ''; - installPhase = '' - ./waf install - ''; + configureFlags = [ + "--with-openssl=${openssl.dev}" + "--boost-includes=${boost.dev}/include" + "--boost-libs=${boost.out}/lib" + ]; meta = with stdenv.lib; { homepage = http://named-data.net/; description = "A Named Data Neworking (NDN) or Content Centric Networking (CCN) abstraction"; diff --git a/pkgs/development/libraries/science/networking/ns3/default.nix b/pkgs/development/libraries/science/networking/ns3/default.nix index 632380328db..d5c3ca2457a 100644 --- a/pkgs/development/libraries/science/networking/ns3/default.nix +++ b/pkgs/development/libraries/science/networking/ns3/default.nix @@ -1,6 +1,7 @@ { stdenv , fetchFromGitHub , python +, wafHook # for binding generation , castxml ? null @@ -50,6 +51,7 @@ stdenv.mkDerivation rec { sha256 = "17kzfjpgw2mvyx1c9bxccnvw67jpk09fxmcnlkqx9xisk10qnhng"; }; + nativeBuildInputs = [ wafHook ]; # ncurses is a hidden dependency of waf when checking python buildInputs = lib.optionals generateBindings [ castxml ncurses ] ++ stdenv.lib.optional enableDoxygen [ doxygen graphviz imagemagick ] @@ -58,12 +60,9 @@ stdenv.mkDerivation rec { propagatedBuildInputs = [ gcc6 pythonEnv ]; postPatch = '' - patchShebangs ./waf patchShebangs doc/ns3_html_theme/get_version.sh ''; - configureScript = "${python.interpreter} ./waf configure"; - configureFlags = with stdenv.lib; [ "--enable-modules=${stdenv.lib.concatStringsSep "," modules}" "--with-python=${pythonEnv.interpreter}" @@ -74,12 +73,9 @@ stdenv.mkDerivation rec { ++ optional doCheck " --enable-tests " ; - postBuild = with stdenv.lib; let flags = concatStringsSep ";" ( - optional enableDoxygen "./waf doxygen" - ++ optional withManual "./waf sphinx" - ); - in "${flags}" - ; + buildTargets = "build" + + lib.optionalString enableDoxygen " doxygen" + + lib.optionalString withManual "sphinx"; doCheck = true; diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix index 67e0ff31c8e..533fefa9f19 100644 --- a/pkgs/development/libraries/serd/default.nix +++ b/pkgs/development/libraries/serd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, python }: +{ stdenv, fetchurl, pkgconfig, python, wafHook }: stdenv.mkDerivation rec { name = "serd-${version}"; @@ -9,13 +9,7 @@ stdenv.mkDerivation rec { sha256 = "1yyfyvc6kwagi5w43ljp1bbjdvdpmgpds74lmjxycm91bkx0xyvf"; }; - nativeBuildInputs = [ pkgconfig python ]; - - configurePhase = "python waf configure --prefix=$out"; - - buildPhase = "python waf"; - - installPhase = "python waf install"; + nativeBuildInputs = [ pkgconfig python wafHook ]; meta = with stdenv.lib; { homepage = http://drobilla.net/software/serd; diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix index 465ec5b8fe8..10258e791ba 100644 --- a/pkgs/development/libraries/sord/default.nix +++ b/pkgs/development/libraries/sord/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, python, serd, pcre }: +{ stdenv, fetchurl, pkgconfig, python, serd, pcre, wafHook }: stdenv.mkDerivation rec { name = "sord-${version}"; @@ -9,15 +9,9 @@ stdenv.mkDerivation rec { sha256 = "13fshxwpipjrvsah1m2jw1kf022z2q5vpw24bzcznglgvms13x89"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ python serd pcre ]; - configurePhase = "${python.interpreter} waf configure --prefix=$out"; - - buildPhase = "${python.interpreter} waf"; - - installPhase = "${python.interpreter} waf install"; - meta = with stdenv.lib; { homepage = http://drobilla.net/software/sord; description = "A lightweight C library for storing RDF data in memory"; diff --git a/pkgs/development/libraries/termbox/default.nix b/pkgs/development/libraries/termbox/default.nix index 0898289978a..469a6a4c96f 100644 --- a/pkgs/development/libraries/termbox/default.nix +++ b/pkgs/development/libraries/termbox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python3 }: +{ stdenv, fetchFromGitHub, python3, wafHook }: stdenv.mkDerivation rec { name = "termbox-${version}"; @@ -9,10 +9,7 @@ stdenv.mkDerivation rec { rev = "v${version}"; sha256 = "08yqxzb8fny8806p7x8a6f3phhlbfqdd7dhkv25calswj7w1ssvs"; }; - nativeBuildInputs = [ python3 ]; - configurePhase = "python3 ./waf configure --prefix=$out"; - buildPhase = "python3 ./waf build"; - installPhase = "python3 ./waf install --destdir=$out"; + nativeBuildInputs = [ python3 wafHook ]; meta = with stdenv.lib; { description = "Library for writing text-based user interfaces"; license = licenses.mit; @@ -21,4 +18,3 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ fgaz ]; }; } - diff --git a/pkgs/misc/emulators/wxmupen64plus/default.nix b/pkgs/misc/emulators/wxmupen64plus/default.nix index 7be91176318..7dc374685a3 100644 --- a/pkgs/misc/emulators/wxmupen64plus/default.nix +++ b/pkgs/misc/emulators/wxmupen64plus/default.nix @@ -1,4 +1,5 @@ -{stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU_combined}: +{ stdenv, fetchurl, python, wxGTK29, mupen64plus, SDL, libX11, libGLU_combined +, wafHook }: stdenv.mkDerivation { name = "wxmupen64plus-0.3"; @@ -7,18 +8,17 @@ stdenv.mkDerivation { sha256 = "1mnxi4k011dd300k35li2p6x4wccwi6im21qz8dkznnz397ps67c"; }; + nativeBuildInputs = [ wafHook ]; buildInputs = [ python wxGTK29 SDL libX11 libGLU_combined ]; - configurePhase = '' + preConfigure = '' tar xf ${mupen64plus.src} APIDIR=$(eval echo `pwd`/mupen64plus*/source/mupen64plus-core/src/api) export CXXFLAGS="-I${libX11.dev}/include/X11 -DLIBDIR=\\\"${mupen64plus}/lib/\\\"" export LDFLAGS="-lwx_gtk2u_adv-2.9" - python waf configure --mupenapi=$APIDIR --wxconfig=`type -P wx-config` --prefix=$out - ''; - buildPhase = "python waf"; - installPhase = "python waf install"; + configureFlagsArray+=("--mupenapi=$APIDIR" "--wxconfig=`type -P wx-config`") + ''; meta = { description = "GUI for the Mupen64Plus 2.0 emulator"; diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix index efd5aa4e919..d264b7f3279 100644 --- a/pkgs/misc/jackaudio/default.nix +++ b/pkgs/misc/jackaudio/default.nix @@ -1,5 +1,6 @@ { stdenv, fetchFromGitHub, pkgconfig, python2Packages, makeWrapper , bash, libsamplerate, libsndfile, readline, eigen, celt +, wafHook # Darwin Dependencies , aften, AudioToolbox, CoreAudio, CoreFoundation @@ -35,13 +36,13 @@ stdenv.mkDerivation rec { sha256 = "0ynpyn0l77m94b50g7ysl795nvam3ra65wx5zb46nxspgbf6wnkh"; }; - nativeBuildInputs = [ pkgconfig python makeWrapper ]; + nativeBuildInputs = [ pkgconfig python makeWrapper wafHook ]; buildInputs = [ libsamplerate libsndfile readline eigen celt optDbus optPythonDBus optLibffado optAlsaLib optLibopus - ] ++ stdenv.lib.optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ]; + ] ++ optionals stdenv.isDarwin [ aften AudioToolbox CoreAudio CoreFoundation ]; # CoreFoundation 10.10 doesn't include CFNotificationCenter.h yet. - patches = stdenv.lib.optionals stdenv.isDarwin [ ./darwin-cf.patch ]; + patches = optionals stdenv.isDarwin [ ./darwin-cf.patch ]; prePatch = '' substituteInPlace svnversion_regenerate.sh \ @@ -51,30 +52,18 @@ stdenv.mkDerivation rec { # It looks like one of the frameworks depends on # since frameworks are impure we also have to use the impure CoreFoundation here. # FIXME: remove when CoreFoundation is updated to 10.11 - preConfigure = stdenv.lib.optionalString stdenv.isDarwin '' + preConfigure = optionalString stdenv.isDarwin '' export NIX_CFLAGS_COMPILE="-F${CoreFoundation}/Library/Frameworks $NIX_CFLAGS_COMPILE" ''; - configurePhase = '' - runHook preConfigure + configureFlags = [ + "--classic" + "--autostart=${if (optDbus != null) then "dbus" else "classic"}" + ] ++ optional (optDbus != null) "--dbus" + ++ optional (optLibffado != null) "--firewire" + ++ optional (optAlsaLib != null) "--alsa"; - python waf configure --prefix=$out \ - ${optionalString (optDbus != null) "--dbus"} \ - --classic \ - ${optionalString (optLibffado != null) "--firewire"} \ - ${optionalString (optAlsaLib != null) "--alsa"} \ - --autostart=${if (optDbus != null) then "dbus" else "classic"} \ - - runHook postConfigure - ''; - - buildPhase = '' - python waf build - ''; - - installPhase = '' - python waf install - '' + (if libOnly then '' + postInstall = (if libOnly then '' rm -rf $out/{bin,share} rm -rf $out/lib/{jack,libjacknet*,libjackserver*} '' else '' diff --git a/pkgs/os-specific/linux/pflask/default.nix b/pkgs/os-specific/linux/pflask/default.nix index b4f93e9de3f..1155a793b01 100644 --- a/pkgs/os-specific/linux/pflask/default.nix +++ b/pkgs/os-specific/linux/pflask/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, python, waf }: +{ lib, stdenv, fetchurl, python, wafHook }: stdenv.mkDerivation rec { name = "pflask-${version}"; @@ -10,19 +10,9 @@ stdenv.mkDerivation rec { sha256 = "2545fca37f9da484b46b6fb5e3a9bbba6526a9725189fe4af5227ef6e6fca440"; }; + nativeBuildInputs = [ wafHook ]; buildInputs = [ python ]; - configurePhase = '' - ln -s ${waf} waf - python waf configure --prefix=$out - ''; - buildPhase = '' - python waf build - ''; - installPhase = '' - python waf install - ''; - meta = { description = "Lightweight process containers for Linux"; homepage = "https://ghedo.github.io/pflask/"; diff --git a/pkgs/tools/graphics/blockhash/default.nix b/pkgs/tools/graphics/blockhash/default.nix index 5ddf8185b3c..ad72933cc77 100644 --- a/pkgs/tools/graphics/blockhash/default.nix +++ b/pkgs/tools/graphics/blockhash/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, python, pkgconfig, imagemagick }: +{ stdenv, fetchFromGitHub, python, pkgconfig, imagemagick, wafHook }: stdenv.mkDerivation rec { name = "blockhash-${version}"; @@ -11,13 +11,9 @@ stdenv.mkDerivation rec { sha256 = "0m7ikppl42iicgmwsb7baajmag7v0p1ab06xckifvrr0zm21bq9p"; }; - nativeBuildInputs = [ python pkgconfig ]; + nativeBuildInputs = [ python pkgconfig wafHook ]; buildInputs = [ imagemagick ]; - configurePhase = "python waf configure --prefix=$out"; - buildPhase = "python waf"; - installPhase = "python waf install"; - meta = with stdenv.lib; { homepage = "http://blockhash.io/"; description = '' diff --git a/pkgs/tools/graphics/glmark2/default.nix b/pkgs/tools/graphics/glmark2/default.nix index 14972fc5e56..70821468992 100644 --- a/pkgs/tools/graphics/glmark2/default.nix +++ b/pkgs/tools/graphics/glmark2/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, pkgconfig, libjpeg, libpng, xorg, libX11, libGL, libdrm, - python27, wayland, udev, mesa_noglu }: + python27, wayland, udev, mesa_noglu, wafHook }: stdenv.mkDerivation rec { name = "glmark2-${version}"; @@ -12,19 +12,12 @@ stdenv.mkDerivation rec { sha256 = "076l75rfl6pnp1wgiwlaihy1vg2advg1z8bi0x84kk259kldgvwn"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig wafHook ]; buildInputs = [ libjpeg libpng xorg.libxcb libX11 libGL libdrm python27 wayland udev mesa_noglu ]; - buildPhase = '' - python ./waf configure --prefix=$out --with-flavors x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2 - python2 ./waf - ''; - - installPhase = '' - python2 ./waf install --destdir="$pkgdir/" - ''; + configureFlags = ["--with-flavors=x11-gl,x11-glesv2,drm-gl,drm-glesv2,wayland-gl,wayland-glesv2"]; meta = with stdenv.lib; { description = "OpenGL (ES) 2.0 benchmark"; diff --git a/pkgs/tools/networking/weighttp/default.nix b/pkgs/tools/networking/weighttp/default.nix index 069c040f8ee..1e93948be68 100644 --- a/pkgs/tools/networking/weighttp/default.nix +++ b/pkgs/tools/networking/weighttp/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchgit, python, libev}: +{ stdenv, fetchgit, python, libev, wafHook }: stdenv.mkDerivation rec { name = "weighttp-${version}"; version = "0.4"; @@ -9,12 +9,8 @@ stdenv.mkDerivation rec { sha256 = "14yjmdx9p8g8c3zlrx5qid8k156lsagfwhl3ny54162nxjf7kzgr"; }; + nativeBuildInputs = [ wafHook ]; buildInputs = [ python libev ]; - installPhase = '' - python waf configure --prefix=$out - python waf build - python waf install - ''; meta = { platforms = stdenv.lib.platforms.unix; From 1ba9fd335d90bca03b3868d3bf10c3d9a9de29c6 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 11 Nov 2018 20:49:51 -0600 Subject: [PATCH 3/6] scons: add setup hook The scons build system is python-based and has a binary named scons. Unlike CMake, it cannot generate makefiles so we end up having to override the build, install, and check phases. I have added the setupHook to the scons package so that integration requires no unique steps - just putting scons in nativeBuildInputs should be enough. sconsFlags controls the flags specifically passed to scons while buildFlags, installFlags, and checkFlags should still be usable. Some packages use different names for the prefix flag. In those cases you will have to set "prefixKey" to something like "PREFIX=" as there are multiple names for the "prefix" used in scons. --- .../tools/build-managers/scons/common.nix | 2 + .../tools/build-managers/scons/setup-hook.sh | 84 +++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 pkgs/development/tools/build-managers/scons/setup-hook.sh diff --git a/pkgs/development/tools/build-managers/scons/common.nix b/pkgs/development/tools/build-managers/scons/common.nix index 4b0242a3956..740d04d853f 100644 --- a/pkgs/development/tools/build-managers/scons/common.nix +++ b/pkgs/development/tools/build-managers/scons/common.nix @@ -14,6 +14,8 @@ in python2Packages.buildPythonApplication { # Fix a regression in 3.0.0 (causes build errors for some packages) patches = stdenv.lib.optional (version == "3.0.0") ./print-statements.patch; + setupHook = ./setup-hook.sh; + meta = with stdenv.lib; { homepage = http://scons.org/; description = "An improved, cross-platform substitute for Make"; diff --git a/pkgs/development/tools/build-managers/scons/setup-hook.sh b/pkgs/development/tools/build-managers/scons/setup-hook.sh new file mode 100644 index 00000000000..bb5591c4620 --- /dev/null +++ b/pkgs/development/tools/build-managers/scons/setup-hook.sh @@ -0,0 +1,84 @@ +sconsBuildPhase() { + runHook preBuild + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then + buildFlags="${prefixKey:-prefix=}$prefix $buildFlags" + fi + + local flagsArray=( + ${enableParallelBuilding:+-j${NIX_BUILD_CORES}} + $sconsFlags ${sconsFlagsArray[@]} + $buildFlags ${buildFlagsArray[@]} + ) + + echoCmd 'build flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + + runHook postBuild +} + +sconsInstallPhase() { + runHook preInstall + + if [ -n "$prefix" ]; then + mkdir -p "$prefix" + fi + + if [ -z "${dontAddPrefix:-}" ] && [ -n "$prefix" ]; then + installFlags="${prefixKey:-prefix=}$prefix $installFlags" + fi + + local flagsArray=( + $sconsFlags ${sconsFlagsArray[@]} + $installFlags ${installFlagsArray[@]} + ${installTargets:-install} + ) + + echoCmd 'install flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + + runHook postInstall +} + +sconsCheckPhase() { + runHook preCheck + + if [ -z "${checkTarget:-}" ]; then + if scons -n check >/dev/null 2>&1; then + checkTarget=check + elif scons -n test >/dev/null 2>&1; then + checkTarget=test + fi + fi + + if [ -z "${checkTarget:-}" ]; then + echo "no check/test target found, doing nothing" + else + local flagsArray=( + ${enableParallelChecking:+-j${NIX_BUILD_CORES}} + $sconsFlags ${sconsFlagsArray[@]} + ${checkFlagsArray[@]} + ) + + echoCmd 'check flags' "${flagsArray[@]}" + scons "${flagsArray[@]}" + fi + + runHook postCheck +} + +if [ -z "$buildPhase" ]; then + buildPhase=sconsBuildPhase +fi + +if [ -z "$installPhase" ]; then + installPhase=sconsInstallPhase +fi + +if [ -z "$checkPhase" ]; then + checkPhase=sconsCheckPhase +fi From bfbfe941abba2a0d7061c86d78b1e8facdeb17f8 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 11 Nov 2018 20:52:07 -0600 Subject: [PATCH 4/6] treewide: use scons setup hook Lots of packages can use it. Here is the list: - jackmix - klick - mixx - nova-filters - rhvoice - giv - mypaint - swift-im - bombono - mapnik - serf - nuitka - pyexiv2 - godot - hammer - toluapp - btanks - dxx-rebirth - endless-sky - globulation - the-powder-toy - fceux - gpsd - mongodb - rippled - mariadb - lprof --- pkgs/applications/audio/jackmix/default.nix | 6 +- pkgs/applications/audio/klick/default.nix | 9 +-- pkgs/applications/audio/mixxx/default.nix | 17 +----- .../audio/nova-filters/default.nix | 8 --- pkgs/applications/audio/rhvoice/default.nix | 12 +--- pkgs/applications/graphics/giv/default.nix | 8 +-- .../applications/graphics/mypaint/default.nix | 5 +- .../instant-messengers/swift-im/default.nix | 14 ++--- pkgs/applications/video/bombono/default.nix | 8 +-- pkgs/development/libraries/mapnik/default.nix | 61 +++++++++---------- pkgs/development/libraries/serf/default.nix | 28 ++++----- .../development/libraries/swiften/default.nix | 22 ++++--- .../python-modules/nuitka/default.nix | 5 +- .../python-modules/pyexiv2/default.nix | 7 +-- pkgs/development/tools/godot/default.nix | 7 +-- .../tools/parsing/hammer/default.nix | 4 +- pkgs/development/tools/toluapp/default.nix | 7 +-- pkgs/games/btanks/default.nix | 29 ++++----- pkgs/games/dxx-rebirth/default.nix | 13 +--- pkgs/games/endless-sky/default.nix | 10 +-- pkgs/games/globulation/default.nix | 17 ++---- pkgs/games/the-powder-toy/default.nix | 2 +- pkgs/misc/emulators/fceux/default.nix | 10 +-- pkgs/servers/gpsd/default.nix | 28 ++++----- pkgs/servers/nosql/mongodb/default.nix | 44 ++++++------- pkgs/servers/rippled/default.nix | 8 +-- pkgs/servers/sql/mariadb/default.nix | 8 +-- pkgs/tools/graphics/lprof/default.nix | 12 ++-- 28 files changed, 149 insertions(+), 260 deletions(-) diff --git a/pkgs/applications/audio/jackmix/default.nix b/pkgs/applications/audio/jackmix/default.nix index aa78527d787..83644dd5ea5 100644 --- a/pkgs/applications/audio/jackmix/default.nix +++ b/pkgs/applications/audio/jackmix/default.nix @@ -17,12 +17,8 @@ stdenv.mkDerivation rec { jack ]; - buildPhase = '' - scons - ''; installPhase = '' - mkdir -p $out/bin - cp jackmix/jackmix $out/bin + install -D jackmix/jackmix $out/bin/jackmix ''; meta = { diff --git a/pkgs/applications/audio/klick/default.nix b/pkgs/applications/audio/klick/default.nix index 3a0da876acf..4d1ae8ebd58 100644 --- a/pkgs/applications/audio/klick/default.nix +++ b/pkgs/applications/audio/klick/default.nix @@ -12,15 +12,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ scons libsamplerate libsndfile liblo libjack2 boost ]; + prefixKey = "PREFIX="; NIX_CFLAGS_COMPILE = "-fpermissive"; - buildPhase = '' - mkdir -p $out - scons PREFIX=$out - ''; - - installPhase = "scons install"; - meta = { homepage = http://das.nasophon.de/klick/; description = "Advanced command-line metronome for JACK"; @@ -28,4 +22,3 @@ stdenv.mkDerivation rec { platforms = stdenv.lib.platforms.linux; }; } - diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix index a99683ef994..4c84fb3c3f7 100644 --- a/pkgs/applications/audio/mixxx/default.nix +++ b/pkgs/applications/audio/mixxx/default.nix @@ -32,26 +32,11 @@ stdenv.mkDerivation rec { "opus=1" ]; - buildPhase = '' - runHook preBuild - mkdir -p "$out" - scons \ - -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES \ - $sconsFlags "prefix=$out" - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - scons $sconsFlags "prefix=$out" install - runHook postInstall - ''; - fixupPhase = '' wrapProgram $out/bin/mixxx \ --set LOCALE_ARCHIVE ${glibcLocales}/lib/locale/locale-archive; ''; - + meta = with stdenv.lib; { homepage = https://mixxx.org; description = "Digital DJ mixing software"; diff --git a/pkgs/applications/audio/nova-filters/default.nix b/pkgs/applications/audio/nova-filters/default.nix index e65604e974a..1e52ff2d9e4 100644 --- a/pkgs/applications/audio/nova-filters/default.nix +++ b/pkgs/applications/audio/nova-filters/default.nix @@ -21,14 +21,6 @@ stdenv.mkDerivation rec { sed -i "s/= check/= detail::filter_base::check/" nova/source/dsp/filter.hpp ''; - buildPhase = '' - scons - ''; - - installPhase = '' - scons $sconsFlags "prefix=$out" install - ''; - meta = with stdenv.lib; { description = "LADSPA plugins based on filters of nova"; homepage = http://klingt.org/~tim/nova-filters/; diff --git a/pkgs/applications/audio/rhvoice/default.nix b/pkgs/applications/audio/rhvoice/default.nix index 65cb7dab34a..6516532df33 100644 --- a/pkgs/applications/audio/rhvoice/default.nix +++ b/pkgs/applications/audio/rhvoice/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, pkgconfig, fetchFromGitHub, scons, python, glibmm, libpulseaudio, libao -}: +{ stdenv, lib, pkgconfig, fetchFromGitHub, scons +, python, glibmm, libpulseaudio, libao }: let version = "unstable-2018-02-10"; @@ -30,14 +30,6 @@ in stdenv.mkDerivation rec { patches = [ ./honor_nix_environment.patch ]; - buildPhase = '' - scons prefix=$out - ''; - - installPhase = '' - scons install - ''; - meta = { description = "A free and open source speech synthesizer for Russian language and others"; homepage = https://github.com/Olga-Yakovleva/RHVoice/wiki; diff --git a/pkgs/applications/graphics/giv/default.nix b/pkgs/applications/graphics/giv/default.nix index fbc84521de0..c5eb126cfbf 100644 --- a/pkgs/applications/graphics/giv/default.nix +++ b/pkgs/applications/graphics/giv/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchFromGitHub, gdk_pixbuf, scons, pkgconfig, gtk2, glib, - pcre, cfitsio, perl, gob2, vala, libtiff, json-glib }: +{ stdenv, fetchFromGitHub, gdk_pixbuf, scons, pkgconfig, gtk2, glib +, pcre, cfitsio, perl, gob2, vala, libtiff, json-glib }: stdenv.mkDerivation rec { name = "giv-${version}"; @@ -21,10 +21,6 @@ stdenv.mkDerivation rec { patches = [ ./build.patch ]; - buildPhase = "scons"; - - installPhase = "scons install"; - nativeBuildInputs = [ scons pkgconfig vala perl gob2 ]; buildInputs = [ gdk_pixbuf gtk2 glib pcre cfitsio libtiff json-glib ]; diff --git a/pkgs/applications/graphics/mypaint/default.nix b/pkgs/applications/graphics/mypaint/default.nix index 120fc1174cd..a22f9c7ac1f 100644 --- a/pkgs/applications/graphics/mypaint/default.nix +++ b/pkgs/applications/graphics/mypaint/default.nix @@ -26,10 +26,7 @@ in stdenv.mkDerivation rec { propagatedBuildInputs = [ numpy ]; - buildPhase = "scons prefix=$out"; - - installPhase = '' - scons prefix=$out install + postInstall = '' sed -i -e 's|/usr/bin/env python2.7|${python}/bin/python|' $out/bin/mypaint ''; diff --git a/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/pkgs/applications/networking/instant-messengers/swift-im/default.nix index 8316c560b06..51e7f081d1e 100644 --- a/pkgs/applications/networking/instant-messengers/swift-im/default.nix +++ b/pkgs/applications/networking/instant-messengers/swift-im/default.nix @@ -3,9 +3,7 @@ , lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib }: -let - _scons = "scons -j$NIX_BUILD_CORES"; -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { name = "swift-im-${version}"; version = "4.0.2"; @@ -30,14 +28,12 @@ in stdenv.mkDerivation rec { "-I${miniupnpc}/include/miniupnpc" "-I${qtwebkit.dev}/include/QtWebKit" "-I${qtwebkit.dev}/include/QtWebKitWidgets" + "-fpermissive" ]; - buildPhase = '' - ${_scons} Swift - ''; - - installPhase = '' - ${_scons} SWIFT_INSTALLDIR=$out $out + preInstall = '' + installTargets="$out" + installFlags+=" SWIFT_INSTALLDIR=$out" ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix index e3ba331e437..ad095ddbea5 100644 --- a/pkgs/applications/video/bombono/default.nix +++ b/pkgs/applications/video/bombono/default.nix @@ -35,16 +35,10 @@ stdenv.mkDerivation rec { libxmlxx ffmpeg enca ]; - buildPhase = '' - scons PREFIX=$out -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES - ''; + prefixKey = "PREFIX="; enableParallelBuilding = true; - installPhase = '' - scons install - ''; - meta = { description = "a DVD authoring program for personal computers"; homepage = "http://www.bombono.org/"; diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix index 693260af1c7..5a6a44285ed 100644 --- a/pkgs/development/libraries/mapnik/default.nix +++ b/pkgs/development/libraries/mapnik/default.nix @@ -29,40 +29,35 @@ stdenv.mkDerivation rec { postgresql ]; - configurePhase = '' - scons configure PREFIX="$out" BOOST_INCLUDES="${boost.dev}/include" \ - BOOST_LIBS="${boost.out}/lib" \ - CAIRO_INCLUDES="${cairo.dev}/include" \ - CAIRO_LIBS="${cairo.out}/lib" \ - FREETYPE_INCLUDES="${freetype.dev}/include" \ - FREETYPE_LIBS="${freetype.out}/lib" \ - GDAL_CONFIG="${gdal}/bin/gdal-config" \ - HB_INCLUDES="${harfbuzz.dev}/include" \ - HB_LIBS="${harfbuzz.out}/lib" \ - ICU_INCLUDES="${icu.dev}/include" \ - ICU_LIBS="${icu.out}/lib" \ - JPEG_INCLUDES="${libjpeg.dev}/include" \ - JPEG_LIBS="${libjpeg.out}/lib" \ - PNG_INCLUDES="${libpng.dev}/include" \ - PNG_LIBS="${libpng.out}/lib" \ - PROJ_INCLUDES="${proj}/include" \ - PROJ_LIBS="${proj}/lib" \ - SQLITE_INCLUDES="${sqlite.dev}/include" \ - SQLITE_LIBS="${sqlite.out}/lib" \ - TIFF_INCLUDES="${libtiff.dev}/include" \ - TIFF_LIBS="${libtiff.out}/lib" \ - WEBP_INCLUDES="${libwebp}/include" \ - WEBP_LIBS="${libwebp}/lib" \ - XML2_INCLUDES="${libxml2.dev}/include" \ - XML2_LIBS="${libxml2.out}/lib" - ''; + prefixKey = "PREFIX="; - buildPhase = false; - - installPhase = '' - mkdir -p "$out" - scons install - ''; + sconsFlags = [ + "BOOST_INCLUDES=${boost.dev}/include" + "BOOST_LIBS=${boost.out}/lib" + "CAIRO_INCLUDES=${cairo.dev}/include" + "CAIRO_LIBS=${cairo.out}/lib" + "FREETYPE_INCLUDES=${freetype.dev}/include" + "FREETYPE_LIBS=${freetype.out}/lib" + "GDAL_CONFIG=${gdal}/bin/gdal-config" + "HB_INCLUDES=${harfbuzz.dev}/include" + "HB_LIBS=${harfbuzz.out}/lib" + "ICU_INCLUDES=${icu.dev}/include" + "ICU_LIBS=${icu.out}/lib" + "JPEG_INCLUDES=${libjpeg.dev}/include" + "JPEG_LIBS=${libjpeg.out}/lib" + "PNG_INCLUDES=${libpng.dev}/include" + "PNG_LIBS=${libpng.out}/lib" + "PROJ_INCLUDES=${proj}/include" + "PROJ_LIBS=${proj}/lib" + "SQLITE_INCLUDES=${sqlite.dev}/include" + "SQLITE_LIBS=${sqlite.out}/lib" + "TIFF_INCLUDES=${libtiff.dev}/include" + "TIFF_LIBS=${libtiff.out}/lib" + "WEBP_INCLUDES=${libwebp}/include" + "WEBP_LIBS=${libwebp}/lib" + "XML2_INCLUDES=${libxml2.dev}/include" + "XML2_LIBS=${libxml2.out}/lib" + ]; meta = with stdenv.lib; { description = "An open source toolkit for developing mapping applications"; diff --git a/pkgs/development/libraries/serf/default.nix b/pkgs/development/libraries/serf/default.nix index f794c3841b9..3fd47125bcb 100644 --- a/pkgs/development/libraries/serf/default.nix +++ b/pkgs/development/libraries/serf/default.nix @@ -9,28 +9,22 @@ stdenv.mkDerivation rec { sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ apr scons openssl aprutil zlib libiconv ] + nativeBuildInputs = [ pkgconfig scons ]; + buildInputs = [ apr openssl aprutil zlib libiconv ] ++ stdenv.lib.optional (!stdenv.isCygwin) kerberos; patches = [ ./scons.patch ]; - buildPhase = '' - scons \ - -j $NIX_BUILD_CORES \ - APR="$(echo ${apr.dev}/bin/*-config)" \ - APU="$(echo ${aprutil.dev}/bin/*-config)" \ - CC=$CC \ - OPENSSL=${openssl} \ - PREFIX="$out" \ - ZLIB=${zlib} \ - ${ - if stdenv.isCygwin then "" else "GSSAPI=${kerberos.dev}" - } - ''; + prefixKey = "PREFIX="; - installPhase = '' - scons install + preConfigure = '' + sconsFlags+=" APR=$(echo ${apr.dev}/bin/*-config)" + sconsFlags+=" APU=$(echo ${aprutil.dev}/bin/*-config)" + sconsFlags+=" CC=$CC" + sconsFlags+=" OPENSSL=${openssl}" + sconsFlags+=" ZLIB=${zlib}" + '' + stdenv.lib.optionalString (!stdenv.isCygwin) '' + sconsFlags+=" GSSAPI=${kerberos.dev}" ''; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix index 1759258e666..c83f5b0f5ac 100644 --- a/pkgs/development/libraries/swiften/default.nix +++ b/pkgs/development/libraries/swiften/default.nix @@ -1,8 +1,9 @@ -{ stdenv, python, fetchurl, openssl, boost }: +{ stdenv, python, fetchurl, openssl, boost, scons }: stdenv.mkDerivation rec { name = "swiften-${version}"; version = "4.0.2"; + nativeBuildInputs = [ scons]; buildInputs = [ python ]; propagatedBuildInputs = [ openssl boost ]; @@ -10,16 +11,17 @@ stdenv.mkDerivation rec { url = "https://swift.im/downloads/releases/swift-${version}/swift-${version}.tar.gz"; sha256 = "0w0aiszjd58ynxpacwcgf052zpmbpcym4dhci64vbfgch6wryz0w"; }; - - buildPhase = '' - patchShebangs ./scons - ./scons openssl=${openssl.dev} \ - boost_includedir=${boost.dev}/include \ - boost_libdir=${boost.out}/lib \ - boost_bundled_enable=false \ - SWIFTEN_INSTALLDIR=$out $out + + sconsFlags = [ + "openssl=${openssl.dev}" + "boost_includedir=${boost.dev}/include" + "boost_libdir=${boost.out}/lib" + "boost_bundled_enable=false" + ]; + preInstall = '' + installTargets="$out" + installFlags+=" SWIFT_INSTALLDIR=$out" ''; - installPhase = "true"; meta = with stdenv.lib; { description = "An XMPP library for C++, used by the Swift client"; diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix index 67e2782b53a..5b840d1993c 100644 --- a/pkgs/development/python-modules/nuitka/default.nix +++ b/pkgs/development/python-modules/nuitka/default.nix @@ -22,9 +22,8 @@ in buildPythonPackage rec { sha256 = "01vm8mqhpdrwlxw6rxbg3wz51njq69yn862141mja00mllg3j7pg"; }; - buildInputs = stdenv.lib.optionals doCheck [ vmprof pyqt4 ]; - - propagatedBuildInputs = [ scons ]; + checkInputs = [ vmprof pyqt4 ]; + nativeBuildInputs = [ scons ]; postPatch = '' patchShebangs tests/run-tests diff --git a/pkgs/development/python-modules/pyexiv2/default.nix b/pkgs/development/python-modules/pyexiv2/default.nix index 3384e981ff0..5b98a61735e 100644 --- a/pkgs/development/python-modules/pyexiv2/default.nix +++ b/pkgs/development/python-modules/pyexiv2/default.nix @@ -10,13 +10,12 @@ buildPythonPackage rec { sha256 = "09r1ga6kj5cnmrldpkqzvdhh7xi7aad9g4fbcr1gawgsd9y13g0a"; }; - buildPhase = '' + preBuild = '' sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" src/SConscript - scons ''; - installPhase = '' + + preInstall = '' sed -i -e "s@ python_lib_path = get_python_lib(plat_specific=True)@ python_lib_path = \'/lib/python2.7/site-packages\'@" src/SConscript - scons install DESTDIR=$out ''; buildInputs = [ python exiv2 scons boost ]; diff --git a/pkgs/development/tools/godot/default.nix b/pkgs/development/tools/godot/default.nix index e22b8b25eaa..dd6a413cebf 100644 --- a/pkgs/development/tools/godot/default.nix +++ b/pkgs/development/tools/godot/default.nix @@ -33,10 +33,9 @@ in stdenv.mkDerivation rec { enableParallelBuilding = true; - buildPhase = '' - scons target=release_debug platform=x11 prefix=$out -j $NIX_BUILD_CORES \ - ${lib.concatStringsSep " " - (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)} + sconsFlags = "target=release_debug platform=x11"; + preConfigure = '' + sconsFlags+=" ${lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "${k}=${builtins.toJSON v}") options)}" ''; outputs = [ "out" "dev" "man" ]; diff --git a/pkgs/development/tools/parsing/hammer/default.nix b/pkgs/development/tools/parsing/hammer/default.nix index 86c1f82678a..bf5a2374fde 100644 --- a/pkgs/development/tools/parsing/hammer/default.nix +++ b/pkgs/development/tools/parsing/hammer/default.nix @@ -12,8 +12,6 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig ]; buildInputs = [ glib python scons ]; - buildPhase = "scons prefix=$out"; - installPhase = "scons prefix=$out install"; meta = with stdenv.lib; { description = "A bit-oriented parser combinator library"; @@ -28,5 +26,5 @@ stdenv.mkDerivation rec { homepage = https://github.com/UpstandingHackers/hammer; license = licenses.gpl2; platforms = platforms.linux; - }; + }; } diff --git a/pkgs/development/tools/toluapp/default.nix b/pkgs/development/tools/toluapp/default.nix index 64a2f4346c7..1214058698e 100644 --- a/pkgs/development/tools/toluapp/default.nix +++ b/pkgs/development/tools/toluapp/default.nix @@ -11,7 +11,8 @@ stdenv.mkDerivation rec { sha256 = "0zd55bc8smmgk9j4cf0jpibb03lgsvl0knpwhplxbv93mcdnw7s0"; }; - buildInputs = [ lua scons ]; + nativeBuildInputs = [ scons ]; + buildInputs = [ lua ]; patches = [ ./environ-and-linux-is-kinda-posix.patch ]; @@ -20,10 +21,6 @@ stdenv.mkDerivation rec { --replace /usr/local $out ''; - buildPhase = ''scons''; - - installPhase = ''scons install''; - meta = with stdenv.lib; { description = "A tool to integrate C/Cpp code with Lua"; homepage = http://www.codenix.com/~tolua/; diff --git a/pkgs/games/btanks/default.nix b/pkgs/games/btanks/default.nix index d606662323f..b1c20d72520 100644 --- a/pkgs/games/btanks/default.nix +++ b/pkgs/games/btanks/default.nix @@ -14,24 +14,21 @@ stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-I${SDL_image}/include/SDL"; - patches = [ (fetchpatch { - name = "gcc-4.7.patch"; - url = "https://anonscm.debian.org/viewvc/pkg-games/packages/trunk/btanks/debian/patches/gcc-4.7.patch?revision=13641&view=co&pathrev=15758"; - sha256 = "1dxlk1xh69gj10sqcsyckiakb8an3h41206wby4z44mpmvxc7pi4"; - }) ]; + patches = [ + (fetchpatch { + url = "https://sources.debian.org/data/main/b/btanks/0.9.8083-7/debian/patches/gcc-4.7.patch"; + sha256 = "1dxlk1xh69gj10sqcsyckiakb8an3h41206wby4z44mpmvxc7pi4"; + }) + (fetchpatch { + url = "https://sources.debian.org/data/main/b/btanks/0.9.8083-7/debian/patches/pow10f.patch"; + sha256 = "1h45790v2dpdbccfn6lwfgl8782q54i14cz9gpipkaghcka4y0g9"; + }) + ]; - buildPhase = '' - scons prefix=$out - ''; - - installPhase = '' - scons install - ''; - - meta = { + meta = with stdenv.lib; { homepage = https://sourceforge.net/projects/btanks/; description = "Fast 2d tank arcade game"; - license = stdenv.lib.licenses.gpl2Plus; - broken = true; # 2018-09-13, no successful build since 2018-03-16 + license = licenses.gpl2Plus; + platforms = platforms.unix; }; } diff --git a/pkgs/games/dxx-rebirth/default.nix b/pkgs/games/dxx-rebirth/default.nix index 5334e4cbd12..3e6bc2dc6f5 100644 --- a/pkgs/games/dxx-rebirth/default.nix +++ b/pkgs/games/dxx-rebirth/default.nix @@ -39,18 +39,7 @@ in stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral"; - buildPhase = '' - runHook preBuild - - scons prefix=$out - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - scons prefix=$out install + postInstall = '' install -Dm644 ${music} $out/share/games/dxx-rebirth/d2xr-sc55-music.dxa install -Dm644 -t $out/share/doc/dxx-rebirth *.txt diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix index 8e1bd52eb42..447724a2043 100644 --- a/pkgs/games/endless-sky/default.nix +++ b/pkgs/games/endless-sky/default.nix @@ -22,18 +22,12 @@ stdenv.mkDerivation rec { SDL2 libpng libjpeg glew openal scons libmad ]; + prefixKey = "PREFIX="; + patches = [ ./fixes.patch ]; - buildPhase = '' - scons -j$NIX_BUILD_CORES PREFIX="$out" - ''; - - installPhase = '' - scons -j$NIX_BUILD_CORES install PREFIX="$out" - ''; - meta = with stdenv.lib; { description = "A sandbox-style space exploration game similar to Elite, Escape Velocity, or Star Control"; homepage = https://endless-sky.github.io/; diff --git a/pkgs/games/globulation/default.nix b/pkgs/games/globulation/default.nix index 4bcf6cffa16..0c3b184b495 100644 --- a/pkgs/games/globulation/default.nix +++ b/pkgs/games/globulation/default.nix @@ -32,19 +32,15 @@ stdenv.mkDerivation rec { sed -i -e "s@env = Environment()@env = Environment( ENV = os.environ )@" SConstruct ''; - buildInputs = [ libGLU_combined SDL scons SDL_ttf SDL_image zlib SDL_net speex libvorbis libogg boost fribidi bsdiff ]; + nativeBuildInputs = [ scons ]; + buildInputs = [ libGLU_combined SDL SDL_ttf SDL_image zlib SDL_net speex libvorbis libogg boost fribidi bsdiff ]; - buildPhase = '' - scons + postConfigure = '' + sconsFlags+=" BINDIR=$out/bin" + sconsFlags+=" INSTALLDIR=$out/share/globulation2" + sconsFlags+=" DATADIR=$out/share/globulation2/glob2" ''; - installPhase = '' - scons install \ - BINDIR=$out/bin \ - INSTALLDIR=$out/share/globulation2 \ - DATADIR=$out/share/globulation2/glob2 - ''; - meta = with stdenv.lib; { description = "RTS without micromanagement"; maintainers = with maintainers; [ raskin ]; @@ -53,4 +49,3 @@ stdenv.mkDerivation rec { }; passthru.updateInfo.downloadPage = "http://globulation2.org/wiki/Download_and_Install"; } - diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix index ce5b0b26966..6d10b8e2072 100644 --- a/pkgs/games/the-powder-toy/default.nix +++ b/pkgs/games/the-powder-toy/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { buildInputs = [ SDL lua fftwFloat zlib bzip2 ]; - buildPhase = "scons DESTDIR=$out/bin --tool='' -j$NIX_BUILD_CORES"; + sconsFlags = "--tool="; installPhase = '' install -Dm 755 build/powder* "$out/bin/powder" diff --git a/pkgs/misc/emulators/fceux/default.nix b/pkgs/misc/emulators/fceux/default.nix index 70cf32d54cc..13ebeb1d2a9 100644 --- a/pkgs/misc/emulators/fceux/default.nix +++ b/pkgs/misc/emulators/fceux/default.nix @@ -8,23 +8,23 @@ stdenv.mkDerivation { sha256 = "0gl2i3qdmcm7v9m5kpfz98w05d8m33990jiwka043ya7lflxvrjb"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig scons ]; buildInputs = [ - scons zlib SDL lua5_1 + zlib SDL lua5_1 ]; - phases = "unpackPhase buildPhase"; + sconsFlags = "OPENGL=false GTK=false CREATE_AVI=false LOGO=false"; + prefixKey = "--prefix="; # sed allows scons to find libraries in nix. # mkdir is a hack to make scons succeed. It still doesn't # actually put the files in there due to a bug in the SConstruct file. # OPENGL doesn't work because fceux dlopens the library. - buildPhase = '' + preBuild = '' sed -e 's/env *= *Environment *.*/&; env['"'"'ENV'"'"']=os.environ;/' -i SConstruct export CC="gcc" export CXX="g++" mkdir -p "$out" "$out/share/applications" "$out/share/pixmaps" - scons --prefix="$out" OPENGL=false GTK=false CREATE_AVI=false LOGO=false install ''; meta = { diff --git a/pkgs/servers/gpsd/default.nix b/pkgs/servers/gpsd/default.nix index 6e270192063..f205b600dd9 100644 --- a/pkgs/servers/gpsd/default.nix +++ b/pkgs/servers/gpsd/default.nix @@ -44,30 +44,30 @@ stdenv.mkDerivation rec { # - leapfetch=no disables going online at build time to fetch leap-seconds # info. See /build.txt for more info. - buildPhase = '' + preBuild = '' patchShebangs . sed -e "s|systemd_dir = .*|systemd_dir = '$out/lib/systemd/system'|" -i SConstruct - scons \ - -j $NIX_BUILD_CORES \ - prefix="$out" \ - leapfetch=no \ - gpsd_user=${gpsdUser} \ - gpsd_group=${gpsdGroup} \ - systemd=yes \ - udevdir="$out/lib/udev" \ - python_libdir="$out/lib/${python2Packages.python.libPrefix}/site-packages" + + sconsFlags+=" udevdir=$out/lib/udev" + sconsFlags+=" python_libdir=$out/lib/${python2Packages.python.libPrefix}/site-packages" ''; - checkPhase = '' + sconsFlags = [ + "leapfetch=no" + "gpsd_user=${gpsdUser}" + "gpsd_group=${gpsdGroup}" + "systemd=yes" + ]; + + preCheck = '' export LD_LIBRARY_PATH="$PWD" - scons check ''; # TODO: the udev rules file and the hotplug script need fixes to work on NixOS - installPhase = '' + preInstall = '' mkdir -p "$out/lib/udev/rules.d" - scons install udev-install ''; + installTargets = "install udev-install"; postFixup = '' wrapPythonProgramsIn $out/bin "$out $pythonPath" diff --git a/pkgs/servers/nosql/mongodb/default.nix b/pkgs/servers/nosql/mongodb/default.nix index c62ade1a20b..55b4b641d15 100644 --- a/pkgs/servers/nosql/mongodb/default.nix +++ b/pkgs/servers/nosql/mongodb/default.nix @@ -20,25 +20,6 @@ let version = "3.4.10"; "yaml" ] ++ optionals stdenv.isLinux [ "tcmalloc" ]; - buildInputs = [ - sasl boost gperftools pcre-cpp snappy - zlib libyamlcpp sasl openssl.dev openssl.out libpcap - ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security ]; - - other-args = concatStringsSep " " ([ - "--ssl" - #"--rocksdb" # Don't have this packaged yet - "--wiredtiger=${if stdenv.is64bit then "on" else "off"}" - "--js-engine=mozjs" - "--use-sasl-client" - "--disable-warnings-as-errors" - "VARIANT_DIR=nixos" # Needed so we don't produce argument lists that are too long for gcc / ld - "CC=$CC" - "CXX=$CXX" - "CCFLAGS=\"${concatStringsSep " " (map (input: "-I${input}/include") buildInputs)}\"" - "LINKFLAGS=\"${concatStringsSep " " (map (input: "-L${input}/lib") buildInputs)}\"" - ] ++ map (lib: "--use-system-${lib}") system-libraries); - in stdenv.mkDerivation rec { name = "mongodb-${version}"; @@ -48,7 +29,10 @@ in stdenv.mkDerivation rec { }; nativeBuildInputs = [ scons ]; - inherit buildInputs; + buildInputs = [ + sasl boost gperftools pcre-cpp snappy + zlib libyamlcpp sasl openssl.dev openssl.out libpcap + ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security ]; patches = [ @@ -83,14 +67,26 @@ in stdenv.mkDerivation rec { NIX_CFLAGS_COMPILE = stdenv.lib.optional stdenv.cc.isClang "-Wno-unused-command-line-argument"; - buildPhase = '' - scons -j $NIX_BUILD_CORES core --release ${other-args} + sconsFlags = [ + "--release" + "--ssl" + #"--rocksdb" # Don't have this packaged yet + "--wiredtiger=${if stdenv.is64bit then "on" else "off"}" + "--js-engine=mozjs" + "--use-sasl-client" + "--disable-warnings-as-errors" + "VARIANT_DIR=nixos" # Needed so we don't produce argument lists that are too long for gcc / ld + ] ++ map (lib: "--use-system-${lib}") system-libraries; + + preBuild = '' + sconsFlags+=" CC=$CC" + sconsFlags+=" CXX=$CXX" ''; - installPhase = '' + preInstall = '' mkdir -p $out/lib - scons -j $NIX_BUILD_CORES install --release --prefix=$out ${other-args} ''; + prefixKey = "--prefix="; enableParallelBuilding = true; diff --git a/pkgs/servers/rippled/default.nix b/pkgs/servers/rippled/default.nix index c1d9655ef23..af25da7ae45 100644 --- a/pkgs/servers/rippled/default.nix +++ b/pkgs/servers/rippled/default.nix @@ -15,12 +15,10 @@ stdenv.mkDerivation rec { sed -i -e "s@ENV = dict.*@ENV = os.environ@g" SConstruct ''; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ scons openssl protobuf boost zlib ]; + nativeBuildInputs = [ pkgconfig scons ]; + buildInputs = [ openssl protobuf boost zlib ]; - buildPhase = "scons"; - - installPhase = '' + postInstall = '' mkdir -p $out/bin cp build/rippled $out/bin/ ''; diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix index d2a4406a973..6415fc95437 100644 --- a/pkgs/servers/sql/mariadb/default.nix +++ b/pkgs/servers/sql/mariadb/default.nix @@ -233,7 +233,7 @@ galera = stdenv.mkDerivation rec { buildInputs = [ asio boost check openssl scons ]; - patchPhase = '' + postPatch = '' substituteInPlace SConstruct \ --replace "boost_library_path = '''" "boost_library_path = '${boost}/lib'" ''; @@ -243,11 +243,9 @@ galera = stdenv.mkDerivation rec { export LIBPATH="${galeraLibs}/lib" ''; - buildPhase = '' - scons -j$NIX_BUILD_CORES ssl=1 system_asio=1 strict_build_flags=0 - ''; + sconsFlags = "ssl=1 system_asio=1 strict_build_flags=0"; - installPhase = '' + postInstall = '' # copied with modifications from scripts/packages/freebsd.sh GALERA_LICENSE_DIR="$share/licenses/${name}" install -d $out/{bin,lib/galera,share/doc/galera,$GALERA_LICENSE_DIR} diff --git a/pkgs/tools/graphics/lprof/default.nix b/pkgs/tools/graphics/lprof/default.nix index d3a8d19dfe2..a4a2cfc1a7c 100644 --- a/pkgs/tools/graphics/lprof/default.nix +++ b/pkgs/tools/graphics/lprof/default.nix @@ -5,7 +5,8 @@ */ stdenv.mkDerivation { name = "lprof-1.11.4.1"; - buildInputs = [ scons qt3 lcms1 libtiff vigra ]; + nativeBuildInputs = [ scons ]; + buildInputs = [ qt3 lcms1 libtiff vigra ]; hardeningDisable = [ "format" ]; @@ -19,14 +20,11 @@ stdenv.mkDerivation { sha256 = "0q8x24fm5yyvm151xrl3l03p7hvvciqnkbviprfnvlr0lyg9wsrn"; }; - buildPhase = '' - mkdir -p $out + sconsFlags = "SYSLIBS=1"; + preBuild = '' export CXX=g++ - - scons PREFIX=$out SYSLIBS=1 install ''; - - installPhase = ":"; + prefixKey = "PREFIX="; patches = [ ./lcms-1.17.patch ./keep-environment.patch ]; From 06c403e846dca7c06924a1cf754cfa10b608616f Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Sun, 11 Nov 2018 21:04:26 -0600 Subject: [PATCH 5/6] treewide: remove unstable packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There’s nothing wrong with unstable packages when they are maintained and frequently updated. However, when they become out-of-date, as many do, it is usually best to just get rid of them as the stable version is become newer than the unstable version. This removes any packages called "unstable" that have not been updated in over 1 year. Affected packages include: - isyncUnstable - sxhkd-unstable - dosbox-unstable Revert "treewide: remove unstable packages" This reverts commit df01b0b37a04624cfe6f8d2ccb42b99289841b68. --- .../window-managers/sxhkd/unstable.nix | 23 ----------- pkgs/misc/emulators/dosbox/unstable.nix | 41 ------------------- pkgs/tools/networking/isync/unstable.nix | 31 -------------- pkgs/top-level/all-packages.nix | 6 --- 4 files changed, 101 deletions(-) delete mode 100644 pkgs/applications/window-managers/sxhkd/unstable.nix delete mode 100644 pkgs/misc/emulators/dosbox/unstable.nix delete mode 100644 pkgs/tools/networking/isync/unstable.nix diff --git a/pkgs/applications/window-managers/sxhkd/unstable.nix b/pkgs/applications/window-managers/sxhkd/unstable.nix deleted file mode 100644 index a3379259a8c..00000000000 --- a/pkgs/applications/window-managers/sxhkd/unstable.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ stdenv, fetchFromGitHub, asciidoc, libxcb, xcbutil, xcbutilkeysyms, xcbutilwm }: - -stdenv.mkDerivation rec { - name = "sxhkd-unstable-2016-08-29"; - - src = fetchFromGitHub { - owner = "baskerville"; - repo = "sxhkd"; - rev = "69b6acc7831bd333b39286c37188e5638ad0de27"; - sha256 = "11i451hz0icsbxnvbq2bdl6r5kacxf6ps0yvi9ix3vkpxn4zcanh"; - }; - - buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ]; - - makeFlags = ''PREFIX=$(out)''; - - meta = with stdenv.lib; { - description = "Simple X hotkey daemon (git version)"; - inherit (src.meta) homepage; - license = licenses.bsd2; - platforms = platforms.linux; - }; -} diff --git a/pkgs/misc/emulators/dosbox/unstable.nix b/pkgs/misc/emulators/dosbox/unstable.nix deleted file mode 100644 index e1762d66641..00000000000 --- a/pkgs/misc/emulators/dosbox/unstable.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, fetchsvn, SDL, SDL_net, SDL_sound, libpng, makeDesktopItem, libGLU_combined, autoreconfHook }: - -let revision = "4025"; - revisionDate = "2017-07-02"; - revisionSha = "0hbghdlvm6qibp0df35qxq35km4nza3sm301x380ghamxq2vgy6a"; -in stdenv.mkDerivation rec { - name = "dosbox-unstable-${revisionDate}"; - - src = fetchsvn { - url = "https://dosbox.svn.sourceforge.net/svnroot/dosbox/dosbox/trunk"; - rev = revision; - sha256 = revisionSha; - }; - - hardeningDisable = [ "format" ]; - - nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ SDL SDL_net SDL_sound libpng libGLU_combined ]; - - desktopItem = makeDesktopItem { - name = "dosbox"; - exec = "dosbox"; - comment = "x86 emulator with internal DOS"; - desktopName = "DOSBox (SVN)"; - genericName = "DOS emulator"; - categories = "Application;Emulator;"; - }; - - postInstall = '' - mkdir -p $out/share/applications - cp ${desktopItem}/share/applications/* $out/share/applications - ''; - - meta = { - homepage = http://www.dosbox.com/; - description = "A DOS emulator"; - platforms = stdenv.lib.platforms.unix; - maintainers = with stdenv.lib.maintainers; [ binarin ]; - license = stdenv.lib.licenses.gpl2Plus; - }; -} diff --git a/pkgs/tools/networking/isync/unstable.nix b/pkgs/tools/networking/isync/unstable.nix deleted file mode 100644 index 9d32f91d0e1..00000000000 --- a/pkgs/tools/networking/isync/unstable.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - stdenv, fetchgit, - autoconf, automake, cyrus_sasl, db, openssl, perl, pkgconfig, zlib, -}: - -stdenv.mkDerivation rec { - name = "isync-git-20170514"; - rev = "4b3768806278a70db696ba52645dc1b6eb8de58a"; - - src = fetchgit { - url = "https://git.code.sf.net/p/isync/isync"; - inherit rev; - sha256 = "1cv1isw01cfp7724z6f4pf6k4rx3k1lg0pc1xcq17zpikx9d10fb"; - }; - - nativeBuildInputs = [ autoconf automake perl pkgconfig ]; - buildInputs = [ cyrus_sasl db openssl zlib ]; - - preConfigure = '' - touch ChangeLog - ./autogen.sh - ''; - - meta = with stdenv.lib; { - homepage = http://isync.sourceforge.net/; - description = "Free IMAP and MailDir mailbox synchronizer"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ the-kenny ttuegel ]; - platforms = platforms.unix; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 638d76af760..ff5fa11ad95 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3490,7 +3490,6 @@ with pkgs; ispike = callPackage ../development/libraries/science/robotics/ispike { }; isync = callPackage ../tools/networking/isync { }; - isyncUnstable = callPackage ../tools/networking/isync/unstable.nix { }; jaaa = callPackage ../applications/audio/jaaa { }; @@ -15987,8 +15986,6 @@ with pkgs; bspwm = callPackage ../applications/window-managers/bspwm { }; - bspwm-unstable = callPackage ../applications/window-managers/bspwm/unstable.nix { }; - btops = callPackage ../applications/window-managers/btops { }; bvi = callPackage ../applications/editors/bvi { }; @@ -18231,8 +18228,6 @@ with pkgs; sxhkd = callPackage ../applications/window-managers/sxhkd { }; - sxhkd-unstable = callPackage ../applications/window-managers/sxhkd/unstable.nix { }; - mpop = callPackage ../applications/networking/mpop { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -21987,7 +21982,6 @@ with pkgs; dell-530cdn = callPackage ../misc/drivers/dell-530cdn {}; dosbox = callPackage ../misc/emulators/dosbox { }; - dosbox-unstable = callPackage ../misc/emulators/dosbox/unstable.nix { }; dpkg = callPackage ../tools/package-management/dpkg { }; From 83d02fad5f9e2117309d00eeb3b99f355523c917 Mon Sep 17 00:00:00 2001 From: Matthew Bauer Date: Mon, 12 Nov 2018 20:18:44 -0600 Subject: [PATCH 6/6] wxmupen64plus: fix with fpermissive This flag seems to make things work again. --- pkgs/misc/emulators/wxmupen64plus/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/misc/emulators/wxmupen64plus/default.nix b/pkgs/misc/emulators/wxmupen64plus/default.nix index 7dc374685a3..e63d27ec403 100644 --- a/pkgs/misc/emulators/wxmupen64plus/default.nix +++ b/pkgs/misc/emulators/wxmupen64plus/default.nix @@ -20,10 +20,11 @@ stdenv.mkDerivation { configureFlagsArray+=("--mupenapi=$APIDIR" "--wxconfig=`type -P wx-config`") ''; + NIX_CFLAGS_COMPILE = "-fpermissive"; + meta = { description = "GUI for the Mupen64Plus 2.0 emulator"; license = stdenv.lib.licenses.gpl2Plus; homepage = https://bitbucket.org/auria/wxmupen64plus/wiki/Home; - broken = true; }; }