aboutsummaryrefslogtreecommitdiff
path: root/src/nix-env
AgeCommit message (Collapse)Author
2007-02-02* nix-env now maintains meta info (from the `meta' derivationEelco Dolstra
attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4
2007-01-15* Handle multiple indirect symlinks when loading a Nix expression.Eelco Dolstra
2007-01-14* Option --argstr for passing string arguments easily. (NIX-75)Eelco Dolstra
2006-12-12* New operation `nix-env --set' which sets a user environment to aEelco Dolstra
single derivation specified by the argument. This is useful when we want to have a profile for a single derivation, such as a server configuration. Then we can just say (e.g.) $ nix-env -p /.../server-profile -f server.nix --set -A server We can't do queries or upgrades on such a profile, but we can do rollbacks. The advantage over -i is that we don't have to worry about other packages having been installed in the profile previously; --set gets rid of them.
2006-12-07* Doh!Eelco Dolstra
2006-12-07* Rename all those main.cc files.Eelco Dolstra
2006-12-05* Allow unprivileged users to run the garbage collector and to doEelco Dolstra
`nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well.
2006-12-02* Move addTempRoot() to the store API, and add another functionEelco Dolstra
syncWithGC() to allow clients to register GC roots without needing write access to the global roots directory or the GC lock.
2006-12-02* Remove SwitchToOriginalUser, we're not going to need it anymore.Eelco Dolstra
2006-11-30* More remote operations.Eelco Dolstra
* Added new operation hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0.
2006-11-30* Skeleton of remote store implementation.Eelco Dolstra
2006-11-30* Put building in the store API.Eelco Dolstra
2006-11-30* Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra
containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations.
2006-10-17* Backwards compatibility with old user environment manifests.Eelco Dolstra
2006-10-17* Maintain the references for the user environment properly.Eelco Dolstra
2006-10-17* Don't generate an empty drvPath attribute in the manifest.Eelco Dolstra
2006-10-16* Big cleanup of the semantics of paths, strings, contexts, stringEelco Dolstra
concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.)
2006-09-25* Quick hack to let nix-install-package set the package name properlyEelco Dolstra
(e.g., "java-front-0.9pre15899" instead of "java-front"; particularly important when doing upgrades later on).
2006-09-14* Wow, that bug has been there since r764.Eelco Dolstra
2006-09-14* nix-env --switch-generation / --list-generations /Eelco Dolstra
--delete-generations: lock the profile to prevent (extremely unlikely) race conditions.
2006-09-14* Fix a huge gaping hole in nix-env w.r.t. the garbage collector.Eelco Dolstra
Nix-env failed to call addPermRoot(), which is necessary to safely add a new root. So if nix-env started after and finished before the garbage collector, the user environment (plus all other new stuff) it built might be garbage collected, leading to a dangling symlink chain in ~/.nix-profile... * Be more explicit if we block on the GC lock ("waiting for the big garbage collector lock..."). * Don't loop trying to create a new generation. It's not necessary anymore since profiles are locked nowadays.
2006-09-05* Missing #include.Eelco Dolstra
2006-09-04* Use a proper namespace.Eelco Dolstra
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-25* Remove those storePath attribute sets, we don't need 'em.Eelco Dolstra
2006-08-23* Allow --arg in nix-env as well, example:Eelco Dolstra
$ nix-env -qa --system-filter \* --arg system '"powerpc-darwin"' to override the system from the default value (__currentSystem in all-packages.nix).
2006-08-16* `nix-instantiate --{eval|parse}-only --xml': print an XMLEelco Dolstra
representation instead of an ATerm. * Indent XML output.
2006-08-09* Fix the help message wrt --attr.Eelco Dolstra
2006-08-07* Workaround for a bug (?) in GCC 2.95.Eelco Dolstra
2006-08-03* `nix-env -q --xml': show query result in XML format for easierEelco Dolstra
automated processing.
2006-07-28* `nix-instantiate ... --arg NAME VALUE': allow arguments to be passedEelco Dolstra
to functions from the command line. * nix-build: started removing backticks.
2006-07-26* Refactoring: get the selection path stuff out of getDerivations()Eelco Dolstra
and put it into a separate function findAlongAttrPath().
2006-07-25* Applied rbroek's patch from the branch atEelco Dolstra
https://svn.cs.uu.nl:12443/repos/trace/buildfarm-control/trunk/ext/nix/, with some modifications. This allows `nix-env -qa' to show the attribute path that can be used to unambiguously install a package using `nix-env -i -A'. Example: $ nix-env -f top-level/all-packages.nix -qaA subversion xorg-server subversionWithJava subversion-1.2.3 subversion subversion-1.3.2 subversion14 subversion-1.4.0pre-rc1 xorg.xorgserver xorg-server-1.1.0
2006-07-25* Support the --attr / -A flag in nix-env as well. So now we can do,Eelco Dolstra
e.g., $ nix-env -i -A subversion xorg.xorgserver The main advantage over using symbolic names is that using attribute names is unambiguous and much, much faster.
2006-06-27* `nix-env --upgrade --eq': only upgrade if the old version is equalEelco Dolstra
to the new version. This is actually useful.
2006-06-15* In `nix-env -i|-u|-e', lock the profile to prevent races betweenEelco Dolstra
concurrent nix-env operations on the same profile. Fixes NIX-7.
2006-05-12* Support for srcdir != builddir (NIX-41).Eelco Dolstra
2006-05-11* 64-bit compatibility fixes (for problems revealed by building on an AthlonEelco Dolstra
64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully.
2006-05-04* Use the new ATermMap.Eelco Dolstra
2006-05-02* Huge reduction in memory use (2/3 or so on large nix-env -qasEelco Dolstra
operations): share ATermMaps between DrvInfos.
2006-03-10* `nix-env -qa --description' shows human-readable descriptions ofEelco Dolstra
packages (provided that they have a `meta.description' attribute). E.g., $ ./src/nix-env/nix-env -qa --description gcc gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x
2006-03-10* `nix-env -q' now accepts arguments that allow specific derivationsEelco Dolstra
to be queried, e.g., `nix-env -qa firefox'. This does require the argument '*' to be passed if one wants information about all derivations, so the old `nix-env -qa' now is `nix-env -qa "*"'.
2006-03-08* When obtaining derivations from Nix expressions, ignore allEelco Dolstra
expressions that cause an assertion failure (like `assert system == "i686-linux"'). This allows all-packages.nix in Nixpkgs to be used on all platforms, even if some Nix expressions don't work on all platforms. Not sure if this is a good idea; it's a bit hacky. In particular, due to laziness some derivations might appear in `nix-env -qa' but disappear in `nix-env -qas' or `nix-env -i'. Commit 5000!
2006-03-06* `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra
will be built or substituted.
2006-03-06* Regularise help text a bit.Eelco Dolstra
2006-03-01* db.hh shouldn't depend on the Berkeley DB headers.Eelco Dolstra
2006-02-17* In "nix-env -i", print a warning if there are multiple derivationsEelco Dolstra
with the same name *and* version number, and pick the first one (this means that the order in which channels appear in ~/.nix-channels matters). E.g.: $ nix-env ii aterm warning: there are multiple derivations named `aterm-2.4.2'; using the first one installing `aterm-2.4.2'
2006-02-17* Fix for NIX-31: "nix-env -i foo" installing all derivations namedEelco Dolstra
foo. Now it will only install the one with the highest version number.
2006-02-17* Fix the infamous NIX-17: nix-env -i prints misleading messagesEelco Dolstra
("installing `foo'" followed by "uninstalling `foo'").
2006-02-08* Oops, fix breakage.Eelco Dolstra
2006-02-08* Refactoring: move derivation evaluation to libexpr.Eelco Dolstra