about summary refs log tree commit diff
path: root/src/nix-env
AgeCommit message (Collapse)AuthorFilesLines
2004-06-20 * Re-enable support for substitutes in the normaliser.Eelco Dolstra1-1/+1
* A better substitute mechanism. Instead of generating a store expression for each store path for which we have a substitute, we can have a single store expression that builds a generic program that is invoked to build the desired store path, which is passed as an argument. This means that operations like `nix-pull' only produce O(1) files instead of O(N) files in the store when registering N substitutes. (It consumes O(N) database storage, of course, but that's not a performance problem). * Added a test for the substitute mechanism. * `nix-store --substitute' reads the substitutes from standard input, instead of from the command line. This prevents us from running into the kernel's limit on command line length.
2004-05-12 * An quick and dirty hack to support distributed builds.Eelco Dolstra1-1/+1
2004-04-22 * Don't create $(localstatedir)/nix/profiles if --disable-init-stateEelco Dolstra1-3/+0
is specified.
2004-04-21 * Recurse into attribute sets and lists when getting derivations fromEelco Dolstra1-0/+4
an expression.
2004-04-05 * When something goes wrong in the evaluation of a Nix expression,Eelco Dolstra1-10/+29
print a nice backtrace of the stack, rather than vomiting a gigantic (and useless) aterm on the screen. Example: error: while evaluating file `.../pkgs/system/test.nix': while evaluating attribute `subversion' at `.../pkgs/system/all-packages-generic.nix', line 533: while evaluating function at `.../pkgs/applications/version-management/subversion/default.nix', line 1: assertion failed at `.../pkgs/applications/version-management/subversion/default.nix', line 13 Since the Nix expression language is lazy, the trace may be misleading. The purpose is to provide a hint as to the location of the problem.
2004-02-16 * Allow linking against an external Berkeley DB / ATerm library.Eelco Dolstra1-3/+2
2004-02-11 * When creating a new generation, also make the normal form of theEelco Dolstra3-6/+10
derivation (i.e., the closure store expression) a root of the garbage collector. This ensures that running `nix-collect-garbage --no-successors' is safe.
2004-02-10 * Print what generation we are switching to; honour --dry-run flag.Eelco Dolstra1-0/+5
2004-02-09 * In `--upgrade': added flags `--lt', `--leq', `--always' to specifyEelco Dolstra4-24/+81
whether we want to upgrade if the current version is less than the available version (default), when it is less or equal, or always. * Added a flag `--dry-run' to show what would happen in `--install', `--uninstall', and `--upgrade', without actually performing the operation.
2004-02-08 * A command `--switch-generation' to switch to a specific generationEelco Dolstra3-0/+71
of the current profile, e.g., $ nix-env --list-generations ... 39 2004-02-02 17:53:53 40 2004-02-02 17:55:18 41 2004-02-02 17:55:41 42 2004-02-02 17:55:50 (current) $ nix-env --switch-generation 39 $ ls -l /nix/var/nix/profiles/default ... default -> default-39-link * Also a command `--rollback' which is just a convenience operation to rollback to the oldest generation younger than the current one. Note that generations properly form a tree. E.g., if after switching to generation 39, we perform an installation action, a generation 43 is created which is a descendant of 39, not 42. So a rollback from 43 ought to go back to 39. This is not currently implemented; generations form a linear sequence.
2004-02-06 * In `--list-generations', show what the current generation is.Eelco Dolstra3-13/+30
2004-02-06 * A command `--list-generations' to show all generations for aEelco Dolstra3-9/+80
profile.
2004-02-06 * More refactoring.Eelco Dolstra4-57/+74
2004-02-06 * Refactoring.Eelco Dolstra4-131/+152
2004-02-06 * Use the profile pointed to by ~/.nix-profile if no --profileEelco Dolstra1-6/+11
argument is specified.
2004-02-06 * Improvements to profiles. Generations are now per-profile, e.g.,Eelco Dolstra3-44/+51
default -> default-94-link default-82-link -> /nix/store/cc4480... default-83-link -> /nix/store/caeec8... ... default-94-link -> /nix/store/2896ca... experimental -> experimental-2-link experimental-1-link -> /nix/store/cc4480... experimental-2-link -> /nix/store/a3148f... * `--profile' / `-p' -> `--switch-profile' / `-S' * `--link' / `-l' -> `--profile' / `-p' * The default profile is stored in $prefix/var/nix/profiles. $prefix/var/nix/links is gone. Profiles can be stored anywhere. * The current profile is now referenced from ~/.nix-profile, not ~/.nix-userenv. * The roots to the garbage collector now have extension `.gcroot', not `.id'.
2004-02-04 * Use a map to lookup primops.Eelco Dolstra2-3/+4
* Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.).
2004-02-02 * Sort `nix-env -q' output by derivation name.Eelco Dolstra2-11/+24
* `--version' flag for all commands. * Manual updates.
2004-01-21 * Extra bit `S' in `--query --status' output: show whether there areEelco Dolstra1-1/+3
any substitutes for the derivation.
2004-01-20 * Absolutise the specified path in `--import' and `--profile'.Eelco Dolstra1-2/+2
2004-01-15 * In `nix-env --query --status', determine the `I' bit by looking atEelco Dolstra1-1/+7
the output path of a derivation, not the path of its store expression. This ensures that changes that affect the path of the store expression but not the output path, do not affect the `installed' state of a derivation.
2004-01-05 * Implemented Eelco V.'s `nix-env -I' command to specify the defaultEelco Dolstra2-24/+55
path of the Nix expression to be used with the import, upgrade, and query commands. For instance, $ nix-env -I ~/nixpkgs/pkgs/system/i686-linux.nix $ nix-env --query --available [aka -qa] sylpheed-0.9.7 bison-1.875 pango-1.2.5 subversion-0.35.1 ... $ nix-env -i sylpheed $ nix-env -u subversion There can be only one default at a time. * If the path to a Nix expression is a symlink, follow the symlink prior to resolving relative path references in the expression.
2004-01-05 * Implemented Eelco V.'s `-p' command to switch profiles. It switchesEelco Dolstra2-0/+24
the symlink ~/.nix-userenv to the given argument (which defaults to .../links/current). /etc/profile.d/nix-profile creates this symlink if it doesn't exist yet. Example use: $ nix-env -l my_profile -i foo.nix subversion quake $ nix-env -p my_profile I don't like the term "profile". Let's deprecate it :-)
2003-12-23 * Fixed a bug in the upgrade operation.Eelco Dolstra1-11/+13
2003-12-22 * GCC 2.95 compatibility.Eelco Dolstra1-0/+2
2003-12-22 * Upgrade operation in `nix-env'. For instance, you can sayEelco Dolstra1-23/+163
nix-env -u foo.nix strategoxt to replace the installed `strategoxt' derivation with the one from `foo.nix', if the latter has a higher version number. This is a no-op if `strategoxt' is not installed. Wildcards are also accepted, so nix-env -u foo.nix '*' will replace any installed derivation with newer versions from `foo.nix', if available. The notion of "version number" is somewhat ad hoc, but should be useful in most cases, as evidenced by the following unit tests for the version comparator: TEST("1.0", "2.3", -1); TEST("2.1", "2.3", -1); TEST("2.3", "2.3", 0); TEST("2.5", "2.3", 1); TEST("3.1", "2.3", 1); TEST("2.3.1", "2.3", 1); TEST("2.3.1", "2.3a", 1); TEST("2.3pre1", "2.3", -1); TEST("2.3pre3", "2.3pre12", -1); TEST("2.3a", "2.3c", -1); TEST("2.3pre1", "2.3c", -1); TEST("2.3pre1", "2.3q", -1); (-1 = less, 0 = equal, 1 = greater) * A new verbosity level `lvlInfo', between `lvlError' and `lvlTalkative'. This is the default for `nix-env', so without any `-v' flags users should get useful output, e.g., $ nix-env -u foo.nix strategoxt upgrading `strategoxt-0.9.2' to `strategoxt-0.9.3'
2003-12-21 * Version numbers can be omitted in install/uninstall. E.g.,Eelco Dolstra2-34/+106
nix-env -i foo.nix subversion The version number part of a derivation name is defined as everything following the first dash not followed by a letter.
2003-12-21 * `-u' -> `-e'.Eelco Dolstra2-39/+58
* `--link' / `-l' flag to specify the switch symlink to use (by default, /nix/var/nix/links/current).
2003-12-02 * Add missing files to `make dist'.Eelco Dolstra1-1/+1
2003-12-02 * Regression fix: query flags (e.g., "-qsf") were broken.Eelco Dolstra1-0/+2
2003-12-01 * Help text for all (non-script) programs, so no more:Eelco Dolstra3-4/+43
$ nix-instantiate --help error: unknown flag `--help` Try `nix-instantiate --help' for more information. :-)
2003-11-24 * Allow the top-level expression to be a derivation.Eelco Dolstra1-13/+18
* Hack: `nix-env -i *' installs all available derivations.
2003-11-22 * Don't use a hard-coded path.Eelco Dolstra1-1/+1
2003-11-22 * Fix the garbage collector.Eelco Dolstra1-1/+3
2003-11-21 * Uninstallation.Eelco Dolstra1-3/+8
2003-11-20 * Uninstall command (doesn't work yet).Eelco Dolstra1-36/+81
2003-11-19 * Installation: add the previously installed packages. Switch to the new Eelco Dolstra1-20/+112
configuration. * Status queries.
2003-11-19 * nix-env: a tool to manage user environments.Eelco Dolstra2-0/+281
* Replace all directory reading code by a generic readDirectory() function.