about summary refs log tree commit diff
path: root/src/nix-env
AgeCommit message (Collapse)AuthorFilesLines
2015-04-09 Implement caching of fetchurl/fetchTarball resultsEelco Dolstra1-10/+1
ETags are used to prevent redownloading unchanged files.
2015-03-19 Fix Boehm API violationEelco Dolstra1-0/+1
We were calling GC_INIT() after doing an allocation (in the baseEnv construction), which is not allowed.
2015-01-15 Fix assertion failure in nix-envEelco Dolstra1-1/+3
$ nix-env -f ~/Dev/nixops/ -iA foo nix-env: src/libexpr/eval.hh:57: void nix::Bindings::push_back(const nix::Attr&): Assertion `size_ < capacity' failed. Aborted
2014-09-23 Add --force-name support for --set in nix-env, to support ↵Shell Turner1-0/+3
nix-install-package --set
2014-09-19 Store Attrs inside BindingsEelco Dolstra2-8/+8
This prevents a double allocation per attribute set.
2014-08-20 Use pager for more commandsEelco Dolstra1-1/+6
2014-08-20 Use proper quotes everywhereEelco Dolstra3-36/+36
2014-08-20 Add some colorEelco Dolstra1-8/+2
2014-08-18 Fix --attr parsingEelco Dolstra1-1/+3
2014-08-13 Refactor option handlingEelco Dolstra1-153/+139
2014-08-01 Make readDirectory() return inode / file typeEelco Dolstra2-10/+9
2014-06-02 nix-env -qa --json: Generate valid JSON even if there are invalid meta attrsEelco Dolstra1-2/+3
2014-05-26 Ensure that -I flags get included in nixPathEelco Dolstra1-3/+12
Also fixes #261.
2014-04-15 nix-env: Minor change to '--delete-generations Nd' semanticsRicardo M. Correia1-4/+10
The option '--delete-generations Nd' deletes all generations older than N days. However, most likely the user does not want to delete the generation that was active N days ago. For example, say that you have these 3 generations: 1: <30 days ago> 2: <15 days ago> 3: <1 hour ago> If you do --delete-generations 7d (say, as part of a cron job), most likely you still want to keep generation 2, i.e. the generation that was active 7 days ago (and for most of the past 7 days, in fact). This patch fixes this issue. Note that this also affects 'nix-collect-garbage --delete-older-than Nd'. Thanks to @roconnor for noticing the issue!
2014-04-04 Show position info in string concatenation / addition errorsEelco Dolstra1-2/+4
2014-03-30 nix-env: Add support for --delete-generations 15dRicardo M. Correia1-2/+17
It will delete all generations older than the specified number of days.
2014-03-11 Fix passing meta attribute to buildenv.nixEelco Dolstra1-0/+1
Since the meta attributes were not sorted, attribute lookup could fail, leading to package priorities and active flags not working correctly. Broken since 0f24400d90daf65cf20142a662f8245008437e2c.
2014-02-27 Set up a minimal /dev in chrootsEelco Dolstra1-2/+1
Not bind-mounting the /dev from the host also solves the problem with /dev/shm being a symlink to something not in the chroot.
2014-02-18 Add a flag ‘--check’ to verify build determinismEelco Dolstra2-3/+3
The flag ‘--check’ to ‘nix-store -r’ or ‘nix-build’ will cause Nix to redo the build of a derivation whose output paths are already valid. If the new output differs from the original output, an error is printed. This makes it easier to test if a build is deterministic. (Obviously this cannot catch all sources of non-determinism, but it catches the most common one, namely the current time.) For example: $ nix-build '<nixpkgs>' -A patchelf ... $ nix-build '<nixpkgs>' -A patchelf --check error: derivation `/nix/store/1ipvxsdnbhl1rw6siz6x92s7sc8nwkkb-patchelf-0.6' may not be deterministic: hash mismatch in output `/nix/store/4pc1dmw5xkwmc6q3gdc9i5nbjl4dkjpp-patchelf-0.6.drv' The --check build fails if not all outputs are valid. Thus the first call to nix-build is necessary to ensure that all outputs are valid. The current outputs are left untouched: the new outputs are either put in a chroot or diverted to a different location in the store using hash rewriting.
2014-02-01 Remove AutomakefilesEelco Dolstra1-12/+0
2014-02-01 Update Makefile variable namesEelco Dolstra1-1/+1
2014-01-30 Rename Makefile -> local.mkEelco Dolstra1-0/+0
2014-01-21 Merge branch 'master' into makeEelco Dolstra1-6/+13
Conflicts: src/libexpr/eval.cc
2014-01-21 Remove unused typeEelco Dolstra1-1/+0
2014-01-09 Update MakefilesEelco Dolstra1-1/+1
2013-12-20 nix-env --set-flag: Barf if a selector doesn't match any installed packageEelco Dolstra1-5/+13
Fixes #184.
2013-11-25 Rename Makefile.new -> MakefileEelco Dolstra1-0/+0
2013-11-23 Improve building dynamic librariesEelco Dolstra1-1/+1
They now get a correct RPATH.
2013-11-22 Rename $(here) to $(d) for brevity, and remove trailing slashEelco Dolstra1-1/+1
2013-11-22 Add missing #includeEelco Dolstra1-1/+1
2013-11-22 New non-recursive, plain Make-based build systemEelco Dolstra1-0/+7
2013-11-19 Check meta values and warn about bad onesEelco Dolstra2-24/+32
2013-11-19 Generalise meta attributesEelco Dolstra2-115/+84
2013-11-19 Drop support for user environment manifests in ATerm formatEelco Dolstra1-112/+1
2013-11-19 nix-env -q: Add a --json flagEelco Dolstra1-8/+45
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.