about summary refs log tree commit diff
path: root/src/nix-env
AgeCommit message (Collapse)AuthorFilesLines
2013-10-24 Rename "attribute sets" to "sets"Eelco Dolstra1-5/+5
We don't have any other kind of sets so calling them attribute sets is unnecessarily verbose.
2013-09-06 Remove stray debug lineEelco Dolstra1-2/+0
2013-09-03 nix-env -i: Add a flag ‘--remove-all’ / ‘-r’Eelco Dolstra1-17/+25
This is equivalent to running ‘nix-env -e '*'’ first, except that it happens in a single transaction. Thus, ‘nix-env -i pkgs...’ replaces the profile with the specified set of packages. The main motivation is to support declarative package management (similar to environment.systemPackages in NixOS). That is, if you have a specification ‘profile.nix’ like this: with import <nixpkgs> {}; [ thunderbird geeqie ... ] then after any change to ‘profile.nix’, you can run: $ nix-env -f profile.nix -ir to update the profile to match the specification. (Without the ‘-r’ flag, if you remove a package from ‘profile.nix’, it won't be removed from the actual profile.) Suggested by @zefhemel.
2013-09-03 nix-env: Use wildcard match by defaultEelco Dolstra1-8/+4
That is, you don't need to pass '*' anymore, so nix-env -qa is equivalent to nix-env -qa '*'
2013-09-03 nix-env: Load files in ~/.nix-defexpr on demandEelco Dolstra1-3/+6
So if you do "nix-env -qa -A nixos", then other channels won't be parsed/evaluated at all.
2013-09-03 Check for name collisions in the input Nix expressionsEelco Dolstra1-3/+9
2013-09-03 Work on Values instead of ExprsEelco Dolstra1-29/+38
This prevents some duplicate evaluation in nix-env and nix-instantiate. Also, when traversing ~/.nix-defexpr, only read regular files with the extension .nix. Previously it was reading files like .../channels/binary-caches/<name>. The only reason this didn't cause problems is pure luck (namely, <name> shadows an actual Nix expression, the binary-caches files happen to be syntactically valid Nix expressions, and we iterate over the directory contents in just the right order).
2013-09-03 Get rid of the parse tree cacheEelco Dolstra1-2/+2
Since we already cache files in normal form (fileEvalCache), caching parse trees is redundant. Note that getting rid of this cache doesn't actually save much memory at the moment, because parse trees are currently not freed / GC'ed.
2013-08-26 Fix typos, especially those that end up in the Nix manualIvan Kozik1-1/+1
2012-12-12 Allow setting the profile location using $NIX_PROFILEEelco Dolstra1-0/+3
Fixes #69.
2012-12-04 nix-env: Install all outputs of a derivationEelco Dolstra1-10/+25
If you explicitly install a package, presumably you want all of it. So symlink all outputs in the user environment.
2012-12-03 Fix the ‘--prebuilt-only’ flagEelco Dolstra1-8/+11
2012-12-03 WhitespaceEelco Dolstra3-60/+58
2012-11-28 nix-env -q --out-path: Support multiple outputsEelco Dolstra1-33/+46
We now print all output paths of a package, e.g. openssl-1.0.0i bin=/nix/store/gq2mvh0wb9l90djvsagln3aqywqmr6vl-openssl-1.0.0i-bin;man=/nix/store/7zwf5r5hsdarl3n86dasvb4chm2xzw9n-openssl-1.0.0i-man;/nix/store/cj7xvk7fjp9q887359j75pw3pzjfmqf1-openssl-1.0.0i or (in XML mode) <item attrPath="openssl" name="openssl-1.0.0i" system="x86_64-linux"> <output name="bin" path="/nix/store/gq2mvh0wb9l90djvsagln3aqywqmr6vl-openssl-1.0.0i-bin" /> <output name="man" path="/nix/store/7zwf5r5hsdarl3n86dasvb4chm2xzw9n-openssl-1.0.0i-man" /> <output name="out" path="/nix/store/cj7xvk7fjp9q887359j75pw3pzjfmqf1-openssl-1.0.0i" /> </item>
2012-10-04 getDerivation(): Don't always quietly ignore assertion failureEelco Dolstra2-5/+5
Ignoring assertion failures makes some sense for nix-env -qa, but not for nix-instantiate/nix-build or hydra-eval-jobs.
2012-10-03 When ‘--help’ is given, just run ‘man’ to show the manual pageEelco Dolstra3-85/+2
I.e. do what git does. I'm too lazy to keep the builtin help text up to date :-) Also add ‘--help’ to various commands that lacked it (e.g. nix-collect-garbage).
2012-10-03 nix-env: Support ‘--repair’ flagEelco Dolstra2-3/+5
2012-09-13 nix-env --delete-generations: Support --dry-run flagEelco Dolstra1-5/+10
Fixes #43.
2012-08-01 nix-env: Ignore manifest.nix when recursing into ~/.nix-defexprEelco Dolstra1-0/+5
Channels are implemented using a profile now, and profiles contain a manifest.nix file. This should be ignored to prevent bogus packages from showing up in nix-env.
2012-07-30 Refactor settings processingEelco Dolstra1-12/+8
Put all Nix configuration flags in a Settings object.
2012-07-26 Merge branch 'master' into no-manifestsEelco Dolstra2-13/+2
2012-07-18 Use "#pragma once" to prevent repeated header file inclusionEelco Dolstra2-13/+2
2012-07-11 Replace hasSubstitutes() with querySubstitutablePaths()Eelco Dolstra1-4/+6
querySubstitutablePaths() takes a set of paths, so this greatly reduces daemon <-> client latency.
2012-07-11 Add a function queryValidPaths()Eelco Dolstra1-3/+6
queryValidPaths() combines multiple calls to isValidPath() in one. This matters when using the Nix daemon because it reduces latency. For instance, on "nix-env -qas \*" it reduces execution time from 5.7s to 4.7s (which is indistinguishable from the non-daemon case).
2012-07-11 nix-env: Determine which paths have substitutes in parallelEelco Dolstra1-1/+18
2012-06-27 nix-store -r: do substitutions in parallelEelco Dolstra2-3/+3
I.e. when multiple non-derivation arguments are passed to ‘nix-store -r’ to be substituted, do them in parallel.
2012-04-14 Remove unnecessary "system" argumentEelco Dolstra1-1/+0
2012-04-04 Include --keep-going in --helpEelco Dolstra1-0/+2
2012-01-03 * Refactoring: Get rid of a few subdirectories in corepkgs/, and someEelco Dolstra1-1/+1
other simplifications. * Use <nix/...> to locate the corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's pipefail option in the NAR builder so that we don't need to create a temporary file.
2011-12-01 * Allow '<nixexpr>' syntax to be used in nix-instantiate, nix-buildEelco Dolstra1-1/+1
and nix-env, e.g., $ nix-env -f '<nixpkgs>' -i patchelf or $ nix-build '<nixos/tests>' -A login.test
2011-08-31 * Eliminate all uses of the global variable ‘store’ from libstore.Eelco Dolstra2-5/+5
This should also fix: nix-instantiate: ./../boost/shared_ptr.hpp:254: T* boost::shared_ptr<T>::operator->() const [with T = nix::StoreAPI]: Assertion `px != 0' failed. which was caused by hashDerivationModulo() calling the ‘store’ object (during store upgrades) before openStore() assigned it.
2011-08-06 * Add a Nix expression search path feature. Paths between angleEelco Dolstra1-0/+2
brackets, e.g. import <nixpkgs/pkgs/lib> are resolved by looking them up relative to the elements listed in the search path. This allows us to get rid of hacks like import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib" The search path can be specified through the ‘-I’ command-line flag and through the colon-separated ‘NIX_PATH’ environment variable, e.g., $ nix-build -I /etc/nixos ... If a file is not found in the search path, an error message is lazily thrown.
2011-08-06 * Refactoring: move parseExprFromFile() and parseExprFromString() intoEelco Dolstra2-7/+5
the EvalState class.
2011-04-11 * `nix-env -ub' (`--prebuilt-only') didn't really work because itEelco Dolstra1-17/+20
checked too soon whether substitutes are available. That is, it did so for every available package, rather than those matching installed packages. This was very slow and subject to assertion failures. So do the check much later. Idem for `nix-env -qab' and `nix-env -ib'.
2010-11-16 * Sync with the trunk.Eelco Dolstra2-21/+27
2010-10-28 * Handle out of memory condition.Eelco Dolstra1-2/+1
2010-10-24 * When allocating an attribute set, reserve enough space for allEelco Dolstra1-3/+3
elements. This prevents the vector from having to resize itself.
2010-10-24 * Keep attribute sets in sorted order to speed up attribute lookups.Eelco Dolstra2-7/+12
* Simplify the representation of attributes in the AST. * Change the behaviour of listToAttrs() in case of duplicate names.
2010-10-23 * Remove allocValues().Eelco Dolstra1-2/+2
2010-10-22 * Store Value nodes outside of attribute sets. I.e., Attr now storesEelco Dolstra2-13/+14
a pointer to a Value, rather than the Value directly. This improves the effectiveness of garbage collection a lot: if the Value is stored inside the set directly, then any live pointer to the Value causes all other attributes in the set to be live as well.
2010-10-22 * Make building against the Boehm GC a configure option.Eelco Dolstra1-3/+2
2010-10-20 * Use the Boehm garbage collector to reclaim unused memory in the NixEelco Dolstra1-2/+4
expression evaluator.
2010-10-04 * Sync with the trunk.Eelco Dolstra1-1/+0
2010-09-14 * Doh. Remove debug message.Eelco Dolstra1-1/+0
2010-08-04 * Sync with the trunk.Eelco Dolstra1-7/+13
2010-08-04 * Set the default system filter to "*". This ensures that (forEelco Dolstra1-7/+13
instance) "nix-env -i wine" works on x86_64-linux, even though Wine is built on i686-linux. In the event that there are multiple matching derivations, prefer those built for the current system.
2010-06-21 * Sync with the trunk.Eelco Dolstra1-2/+0
2010-05-30 * Remove an accidentally committed debug statement.Eelco Dolstra1-2/+0
2010-05-12 * Sync with the trunk.Eelco Dolstra6-200/+340
2010-05-07 * Keep track of the source positions of attributes.Eelco Dolstra1-10/+10