From ab0a0c004e1076315c8ed910437e6cf9c2f087ff Mon Sep 17 00:00:00 2001 From: Nikolay Amiantov Date: Thu, 14 Apr 2016 18:14:28 +0300 Subject: makeSearchPathOutputs: refactor to makeSearchPathOutput --- lib/strings.nix | 9 ++++----- nixos/modules/services/web-servers/apache-httpd/trac.nix | 2 +- nixos/modules/services/x11/desktop-managers/enlightenment.nix | 2 +- nixos/modules/system/boot/loader/grub/grub.nix | 2 +- nixos/modules/system/boot/systemd-unit-options.nix | 2 +- pkgs/applications/misc/guake/default.nix | 2 +- pkgs/applications/misc/roxterm/default.nix | 2 +- pkgs/applications/networking/browsers/chromium/plugins.nix | 2 +- pkgs/applications/networking/browsers/firefox-bin/default.nix | 2 +- pkgs/applications/networking/browsers/google-chrome/default.nix | 2 +- pkgs/applications/networking/browsers/opera/default.nix | 2 +- pkgs/applications/networking/browsers/vivaldi/default.nix | 2 +- .../networking/mailreaders/thunderbird-bin/default.nix | 2 +- pkgs/applications/science/math/mathematica/9.nix | 2 +- pkgs/applications/science/math/mathematica/default.nix | 2 +- pkgs/applications/version-management/reposurgeon/default.nix | 2 +- pkgs/games/ue4demos/default.nix | 2 +- pkgs/os-specific/linux/pm-utils/default.nix | 2 +- 18 files changed, 21 insertions(+), 22 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index bda96fb32da..0e3137f42ee 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -88,15 +88,14 @@ rec { makeSearchPath = subDir: packages: concatStringsSep ":" (map (path: path + "/" + subDir) packages); - /* Construct a Unix-style search path, given trying outputs in order. + /* Construct a Unix-style search path, using given package output. If no output is found, fallback to `.out` and then to the default. Example: - makeSearchPathOutputs "bin" ["bin"] [ pkgs.openssl pkgs.zlib ] - => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-bin/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin" + makeSearchPathOutput "dev" "bin" [ pkgs.openssl pkgs.zlib ] + => "/nix/store/9rz8gxhzf8sw4kf2j2f1grr49w8zx5vj-openssl-1.0.1r-dev/bin:/nix/store/wwh7mhwh269sfjkm6k5665b5kgp7jrk2-zlib-1.2.8/bin" */ - makeSearchPathOutputs = subDir: outputs: pkgs: - makeSearchPath subDir (map (pkg: if pkg.outputUnspecified or false then lib.tryAttrs (outputs ++ ["out"]) pkg else pkg) pkgs); + makeSearchPathOutput = output: subDir: pkgs: makeSearchPath subDir (map (lib.getOutput output) pkgs); /* Construct a library search path (such as RPATH) containing the libraries for a set of packages diff --git a/nixos/modules/services/web-servers/apache-httpd/trac.nix b/nixos/modules/services/web-servers/apache-httpd/trac.nix index c4aa6b6ad3a..3196edc2838 100644 --- a/nixos/modules/services/web-servers/apache-httpd/trac.nix +++ b/nixos/modules/services/web-servers/apache-httpd/trac.nix @@ -96,7 +96,7 @@ in globalEnvVars = singleton { name = "PYTHONPATH"; value = - makeSearchPathOutputs "lib/${pkgs.python.libPrefix}/site-packages" ["lib"] + makeSearchPathOutput "lib" "lib/${pkgs.python.libPrefix}/site-packages" [ pkgs.mod_python pkgs.pythonPackages.trac pkgs.setuptools diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix index 11df7297833..2e788d86960 100644 --- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix +++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix @@ -7,7 +7,7 @@ let e = pkgs.enlightenment; xcfg = config.services.xserver; cfg = xcfg.desktopManager.enlightenment; - GST_PLUGIN_PATH = lib.makeSearchPathOutputs "lib/gstreamer-1.0" ["lib"] [ + GST_PLUGIN_PATH = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" [ pkgs.gst_all_1.gst-plugins-base pkgs.gst_all_1.gst-plugins-good pkgs.gst_all_1.gst-plugins-bad diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 289405f9319..7fc467b60f7 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -58,7 +58,7 @@ let path = (makeBinPath ([ pkgs.coreutils pkgs.gnused pkgs.gnugrep pkgs.findutils pkgs.diffutils pkgs.btrfs-progs pkgs.utillinux ] ++ (if cfg.efiSupport && (cfg.version == 2) then [pkgs.efibootmgr ] else []) - )) + ":" + (makeSearchPathOutputs "sbin" ["bin"] [ + )) + ":" + (makeSearchPathOutput "bin" "sbin" [ pkgs.mdadm pkgs.utillinux ]); }); diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix index c8c9cda913c..f2a22e4ada8 100644 --- a/nixos/modules/system/boot/systemd-unit-options.nix +++ b/nixos/modules/system/boot/systemd-unit-options.nix @@ -193,7 +193,7 @@ in rec { path = mkOption { default = []; - apply = ps: "${makeBinPath ps}:${makeSearchPathOutputs "sbin" ["bin"] ps}"; + apply = ps: "${makeBinPath ps}:${makeSearchPathOutput "bin" "sbin" ps}"; description = '' Packages added to the service's PATH environment variable. Both the bin diff --git a/pkgs/applications/misc/guake/default.nix b/pkgs/applications/misc/guake/default.nix index 81ac845c5cf..6290f082734 100644 --- a/pkgs/applications/misc/guake/default.nix +++ b/pkgs/applications/misc/guake/default.nix @@ -16,7 +16,7 @@ gconftool-2 --recursive-unset /apps/guake with lib; let inputs = [ dbus gtk2 gconf python2 libutempter vte keybinder gnome3.gnome_common ]; - pyPath = makeSearchPathOutputs python2.sitePackages ["lib"] (attrVals [ "dbus" "notify" "pyGtkGlade" "pyxdg" ] python2Packages ++ [ gnome2.gnome_python ]); + pyPath = makeSearchPathOutput "lib" python2.sitePackages (attrVals [ "dbus" "notify" "pyGtkGlade" "pyxdg" ] python2Packages ++ [ gnome2.gnome_python ]); in stdenv.mkDerivation rec { name = "guake-${version}"; version = "0.8.3"; diff --git a/pkgs/applications/misc/roxterm/default.nix b/pkgs/applications/misc/roxterm/default.nix index ec055f3055f..d8f44ba5cdb 100644 --- a/pkgs/applications/misc/roxterm/default.nix +++ b/pkgs/applications/misc/roxterm/default.nix @@ -29,7 +29,7 @@ in stdenv.mkDerivation rec { "-I${dbus_libs.lib}/lib/dbus-1.0/include" ]; # Fix up python path so the lockfile library is on it. - PYTHONPATH = stdenv.lib.makeSearchPathOutputs pythonFull.sitePackages ["lib"] [ + PYTHONPATH = stdenv.lib.makeSearchPathOutput "lib" pythonFull.sitePackages [ pythonPackages.curses pythonPackages.lockfile ]; diff --git a/pkgs/applications/networking/browsers/chromium/plugins.nix b/pkgs/applications/networking/browsers/chromium/plugins.nix index b7883454b34..ac7f8111212 100644 --- a/pkgs/applications/networking/browsers/chromium/plugins.nix +++ b/pkgs/applications/networking/browsers/chromium/plugins.nix @@ -65,7 +65,7 @@ let patchPhase = let rpaths = [ stdenv.cc.cc ]; - mkrpath = p: "${makeSearchPathOutputs "lib64" ["lib"] p}:${makeLibraryPath p}"; + mkrpath = p: "${makeSearchPathOutput "lib" "lib64" p}:${makeLibraryPath p}"; in '' for sofile in PepperFlash/libpepflashplayer.so \ libwidevinecdm.so libwidevinecdmadapter.so; do diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 152089286b4..d07aec33eb0 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -105,7 +105,7 @@ stdenv.mkDerivation { libheimdal libpulseaudio systemd - ] + ":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] [ + ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix index 77f0d1693da..3042f30e000 100644 --- a/pkgs/applications/networking/browsers/google-chrome/default.nix +++ b/pkgs/applications/networking/browsers/google-chrome/default.nix @@ -65,7 +65,7 @@ in stdenv.mkDerivation rec { tar xf data.tar.xz ''; - rpath = makeLibraryPath deps + ":" + makeSearchPathOutputs "lib64" ["lib"] deps; + rpath = makeLibraryPath deps + ":" + makeSearchPathOutput "lib" "lib64" deps; binpath = makeBinPath deps; installPhase = '' diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix index 325e855ec72..a00905cf937 100644 --- a/pkgs/applications/networking/browsers/opera/default.nix +++ b/pkgs/applications/networking/browsers/opera/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { libPath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") - (":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] buildInputs); + (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs); preFixup = '' diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 7c3c167cf32..c8931811548 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { libPath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") - (":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] buildInputs); + (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs); buildPhase = '' echo "Patching Vivaldi binaries" diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix index bbb51c7c186..f974265aa6e 100644 --- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix +++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix @@ -105,7 +105,7 @@ stdenv.mkDerivation { nspr nss pango - ] + ":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] [ + ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; diff --git a/pkgs/applications/science/math/mathematica/9.nix b/pkgs/applications/science/math/mathematica/9.nix index 2a43cf5677f..07a20b4ebe0 100644 --- a/pkgs/applications/science/math/mathematica/9.nix +++ b/pkgs/applications/science/math/mathematica/9.nix @@ -63,7 +63,7 @@ stdenv.mkDerivation rec { ldpath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") - (":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] buildInputs); + (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs); phases = "unpackPhase installPhase fixupPhase"; diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix index c2988331c4c..4de4a0c261d 100644 --- a/pkgs/applications/science/math/mathematica/default.nix +++ b/pkgs/applications/science/math/mathematica/default.nix @@ -73,7 +73,7 @@ stdenv.mkDerivation rec { ldpath = stdenv.lib.makeLibraryPath buildInputs + stdenv.lib.optionalString (stdenv.system == "x86_64-linux") - (":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] buildInputs); + (":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" buildInputs); phases = "unpackPhase installPhase fixupPhase"; diff --git a/pkgs/applications/version-management/reposurgeon/default.nix b/pkgs/applications/version-management/reposurgeon/default.nix index 669151adbcc..55858034b1c 100644 --- a/pkgs/applications/version-management/reposurgeon/default.nix +++ b/pkgs/applications/version-management/reposurgeon/default.nix @@ -51,7 +51,7 @@ mkDerivation rec { [ out git bazaar cvs darcs fossil mercurial monotone rcs src subversion cvs_fast_export ] ); - pythonpath = makeSearchPathOutputs python27.sitePackages ["lib"] ( + pythonpath = makeSearchPathOutput "lib" python27.sitePackages ( filter (x: x != null) [ python27Packages.readline or null python27Packages.hglib or null ] ); diff --git a/pkgs/games/ue4demos/default.nix b/pkgs/games/ue4demos/default.nix index 963dde91068..4bac1cd1bb3 100644 --- a/pkgs/games/ue4demos/default.nix +++ b/pkgs/games/ue4demos/default.nix @@ -12,7 +12,7 @@ let rtdeps = stdenv.lib.makeLibraryPath [ xorg.libXxf86vm xorg.libXext openal ] - + ":" + stdenv.lib.makeSearchPathOutputs "lib64" ["lib"] [ stdenv.cc.cc ]; + + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; buildCommand = '' diff --git a/pkgs/os-specific/linux/pm-utils/default.nix b/pkgs/os-specific/linux/pm-utils/default.nix index cb74dc204a3..e2257642d0b 100644 --- a/pkgs/os-specific/linux/pm-utils/default.nix +++ b/pkgs/os-specific/linux/pm-utils/default.nix @@ -6,7 +6,7 @@ let binPath = stdenv.lib.makeBinPath [ coreutils gnugrep utillinux kmod procps kbd dbus_tools ]; - sbinPath = stdenv.lib.makeSearchPathOutputs "sbin" ["bin"] + sbinPath = stdenv.lib.makeSearchPathOutput "bin" "sbin" [ procps ]; in -- cgit 1.4.1