summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-01-28 11:24:18 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-01-28 11:24:18 +0100
commitab8a691d059b364c435a1871ae2ef70a578685d8 (patch)
treea9158496e379970c0cb25b4068488c46fccc3f16 /pkgs
parenta33fcc873110a6ded62f3286d9850ac5a445df89 (diff)
downloadnixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar.gz
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar.bz2
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar.lz
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar.xz
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.tar.zst
nixlib-ab8a691d059b364c435a1871ae2ef70a578685d8.zip
nixos systemPackages: rework default outputs
- Now `pkg.outputUnspecified = true` but this attribute is missing in
  every output, so we can recognize whether the user chose or not.
  If (s)he didn't choose, we put `pkg.bin or pkg.out or pkg` into
  `systemPackages`.
- `outputsToLink` is replaced by `extraOutputsToLink`.
  We add extra outputs *regardless* of whether the user chose anything.
  It's mainly meant for outputs with docs and debug symbols.
- Note that as a result, some libraries will disappear from system path.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/build-support/buildenv/default.nix9
1 files changed, 8 insertions, 1 deletions
diff --git a/pkgs/build-support/buildenv/default.nix b/pkgs/build-support/buildenv/default.nix
index 1a0726d15437..bcfa2dd1c5a8 100644
--- a/pkgs/build-support/buildenv/default.nix
+++ b/pkgs/build-support/buildenv/default.nix
@@ -21,6 +21,10 @@
   # directories in the list is not symlinked.
   pathsToLink ? ["/"]
 
+, # The package outputs to include. By default, only the default
+  # output is included.
+  extraOutputsToLink ? []
+
 , # Root the result in directory "$out${extraPrefix}", e.g. "/share".
   extraPrefix ? ""
 
@@ -37,7 +41,10 @@
 runCommand name
   rec { inherit manifest ignoreCollisions passthru meta pathsToLink extraPrefix postBuild buildInputs;
     pkgs = builtins.toJSON (map (drv: {
-      paths = [ drv ];
+      paths =
+        [ drv ]
+        ++ lib.filter (p: p!=null)
+          (builtins.map (outName: drv.${outName} or null) extraOutputsToLink);
       priority = drv.meta.priority or 5;
     }) paths);
     preferLocalBuild = true;