From 5ad89398d12bf8bc83426036dedc2c601ff8f795 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 4 Dec 2012 14:20:36 +0100 Subject: nix-env: Install all outputs of a derivation If you explicitly install a package, presumably you want all of it. So symlink all outputs in the user environment. --- corepkgs/buildenv.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'corepkgs/buildenv.nix') diff --git a/corepkgs/buildenv.nix b/corepkgs/buildenv.nix index 50c9923af79f..923778379263 100644 --- a/corepkgs/buildenv.nix +++ b/corepkgs/buildenv.nix @@ -2,18 +2,22 @@ with import ; { derivations, manifest }: -derivation { +derivation { name = "user-environment"; system = builtins.currentSystem; builder = perl; args = [ "-w" ./buildenv.pl ]; - + manifest = manifest; # !!! grmbl, need structured data for passing this in a clean way. - paths = derivations; - active = map (x: if x ? meta && x.meta ? active then x.meta.active else "true") derivations; - priority = map (x: if x ? meta && x.meta ? priority then x.meta.priority else "5") derivations; + derivations = + map (d: + [ (if d.meta.active or true then "1" else "0") + (d.meta.priority or 5) + (builtins.length d.outputs) + ] ++ map (output: builtins.getAttr output d) d.outputs) + derivations; # Building user environments remotely just causes huge amounts of # network traffic, so don't do that. -- cgit 1.4.1