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.
This commit is contained in:
Vladimír Čunát
2016-01-28 11:24:18 +01:00
parent a33fcc8731
commit ab8a691d05
6 changed files with 21 additions and 15 deletions
+8 -1
View File
@@ -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;