forked from mirrors/nixpkgs
buildEnv: respect meta.outputsToInstall
As a result `systemPackages` now also respect it. Only nix-env remains and that has a PR filed: https://github.com/NixOS/nix/pull/815
This commit is contained in:
parent
3342f717da
commit
2995439003
|
@ -122,11 +122,7 @@ in
|
||||||
|
|
||||||
system.path = pkgs.buildEnv {
|
system.path = pkgs.buildEnv {
|
||||||
name = "system-path";
|
name = "system-path";
|
||||||
paths =
|
paths = config.environment.systemPackages;
|
||||||
# The default output probably shouldn't be globally configurable.
|
|
||||||
# Services and users should specify them explicitly unless they want this default.
|
|
||||||
map (p: if p.outputUnspecified or false then p.bin or p.out or p else p)
|
|
||||||
config.environment.systemPackages;
|
|
||||||
inherit (config.environment) pathsToLink extraOutputsToLink;
|
inherit (config.environment) pathsToLink extraOutputsToLink;
|
||||||
ignoreCollisions = true;
|
ignoreCollisions = true;
|
||||||
# !!! Hacky, should modularise.
|
# !!! Hacky, should modularise.
|
||||||
|
|
|
@ -48,7 +48,12 @@ runCommand name
|
||||||
meta pathsToLink extraPrefix postBuild buildInputs;
|
meta pathsToLink extraPrefix postBuild buildInputs;
|
||||||
pkgs = builtins.toJSON (map (drv: {
|
pkgs = builtins.toJSON (map (drv: {
|
||||||
paths =
|
paths =
|
||||||
[ drv ]
|
# First add the usual output(s): respect if user has chosen explicitly,
|
||||||
|
# and otherwise use `meta.outputsToInstall` (guaranteed to exist by stdenv).
|
||||||
|
(if (drv.outputUnspecified or false)
|
||||||
|
then map (outName: drv.${outName}) drv.meta.outputsToInstall
|
||||||
|
else [ drv ])
|
||||||
|
# Add any extra outputs specified by the caller of `buildEnv`.
|
||||||
++ lib.filter (p: p!=null)
|
++ lib.filter (p: p!=null)
|
||||||
(builtins.map (outName: drv.${outName} or null) extraOutputsToLink);
|
(builtins.map (outName: drv.${outName} or null) extraOutputsToLink);
|
||||||
priority = drv.meta.priority or 5;
|
priority = drv.meta.priority or 5;
|
||||||
|
|
|
@ -225,6 +225,9 @@ let
|
||||||
# If the packager hasn't specified `outputsToInstall`, choose a default,
|
# If the packager hasn't specified `outputsToInstall`, choose a default,
|
||||||
# namely `p.bin or p.out or p`;
|
# namely `p.bin or p.out or p`;
|
||||||
# if he has specified it, it will be overridden below in `// meta`.
|
# if he has specified it, it will be overridden below in `// meta`.
|
||||||
|
# Note: This default probably shouldn't be globally configurable.
|
||||||
|
# Services and users should specify outputs explicitly,
|
||||||
|
# unless they are comfortable with this default.
|
||||||
// { outputsToInstall =
|
// { outputsToInstall =
|
||||||
let
|
let
|
||||||
outs = outputs'; # the value passed to derivation primitive
|
outs = outputs'; # the value passed to derivation primitive
|
||||||
|
|
Loading…
Reference in a new issue