* Allow conflicting packages to be kept in a user environment, and

allow switching between them (NIX-80).

  Example: two versions of Pan:

    $ nix-env -q pan
    pan-0.128
    pan-0.14.2.91

    $ readlink $(which pan)
    /nix/store/l38jrbilw269drpjkx7kinhrxj6fjh59-pan-0.14.2.91/bin/pan

  At most one of them can be active any given time.  Assuming than
  0.14.2.91 is active, you can active 0.128 as follows:

    $ nix-env --set-flag active false pan-0.14.2.91
    $ nix-env --set-flag active true pan-0.128

    $ readlink $(which pan)
    /nix/store/nziqwnlzy7xl385kglxhg75pfl5i936n-pan-0.128/bin/pan

  More flags to follow.
This commit is contained in:
Eelco Dolstra 2007-04-27 22:40:59 +00:00
parent b7f0f65c19
commit 3d05166086
2 changed files with 11 additions and 3 deletions

View file

@ -6,4 +6,7 @@ derivation {
builder = ./builder.pl;
derivations = derivations;
manifest = manifest;
# !!! grmbl, need structured data for passing this in a clean way.
active = map (x: if x ? meta && x.meta ? active then x.meta.active else "true") derivations;
}