about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2012-12-20 nix-store -q --roots: Respect the gc-keep-outputs/gc-keep-derivations settingsEelco Dolstra9-25/+64
So if a path is not garbage solely because it's reachable from a root due to the gc-keep-outputs or gc-keep-derivations settings, ‘nix-store -q --roots’ now shows that root.
2012-12-20 Yet another rewrite of the garbage collectorEelco Dolstra2-131/+138
But this time it's *obviously* correct! No more segfaults due to infinite recursions for sure, etc. Also, move directories to /nix/store/trash instead of renaming them to /nix/store/bla-gc-<pid>. Then we can just delete /nix/store/trash at the end.
2012-12-20 Give a better error message if writeFile fails due to permission issuesEelco Dolstra1-2/+2
2012-12-19 If gc-keep-derivations is set, only keep the actual deriverEelco Dolstra1-1/+1
This prevents zillions of derivations from being kept, and fixes an infinite recursion in the garbage collector (due to an obscure cycle that can occur with fixed-output derivations).
2012-12-19 Kill the build hook rather than shutting it down cleanlyEelco Dolstra1-7/+1
Waiting for the hook to shut down cleanly sometimes seems to lead to hangs.
2012-12-18 Revert brain fartEelco Dolstra1-2/+0
This reverts commit cc511fd65b7b6de9e87e72fb4bed16fc7efeb8b7.
2012-12-18 Check for potential infinite select() loops when buildingEelco Dolstra1-0/+2
2012-12-13 fix use-after-free bug in mkString(Value&, Symbol&)Stuart Pernsteiner1-1/+1
2012-12-12 Allow setting the profile location using $NIX_PROFILEEelco Dolstra2-4/+16
Fixes #69.
2012-12-11 Debian package: Add dependency on libwww-curl-perlEelco Dolstra1-1/+1
Fixes issue #70.
2012-12-11 On SQLITE_BUSY, wait a random amount of timeEelco Dolstra2-1/+7
If all contending processes wait a fixed amount of time (100 ms), there is a good probability that they'll just collide again.
2012-12-07 Bump version numberEelco Dolstra1-1/+1
2012-12-06 Fix manual generationEelco Dolstra1-1/+8
Grmbl.
2012-12-06 Set a long SQLite timeout in the binary cache substituterEelco Dolstra2-1/+3
2012-12-05 Fix RPM buildEelco Dolstra1-1/+1
http://hydra.nixos.org/build/3436627
2012-12-05 Add a dependency on xz-utilsEelco Dolstra1-1/+1
2012-12-05 Add a dependency on xzEelco Dolstra1-0/+1
2012-12-05 TypoEelco Dolstra1-1/+1
2012-12-05 Fix RPM buildEelco Dolstra1-1/+1
http://hydra.nixos.org/build/3436511
2012-12-05 Add release dateEelco Dolstra1-1/+1
2012-12-05 Support xz compression of nixexprs.tar in channelsEelco Dolstra2-2/+9
2012-12-05 Produce an xz-compressed tarballEelco Dolstra1-0/+2
Footnote: doing "make dist-gzip dist-xz" doesn't work with Automake; you have to do "make dist-gzip; dist-xz". That's because the dist-* targets delete the temporary distdir at the end.
2012-12-05 Build Debs for Ubuntu 12.10Eelco Dolstra1-0/+2
2012-12-04 Updated release notesEelco Dolstra1-0/+62
2012-12-04 Tiny optimisation in the filter primopEelco Dolstra1-2/+9
2012-12-04 Document new primopsEelco Dolstra1-54/+96
2012-12-04 nix-channel --update needs bzip2Florian Friesdorf1-1/+1
2012-12-04 Document multiple output supportEelco Dolstra2-56/+108
2012-12-04 Test prioritiesEelco Dolstra3-4/+13
2012-12-04 buildenv.pl: Create symlinks in priority orderEelco Dolstra1-9/+12
This reduces unnecessary symlink/unlink steps.
2012-12-04 Add a test for ‘nix-env --set-flag active ...’Eelco Dolstra3-3/+11
2012-12-04 nix-env: Install all outputs of a derivationEelco Dolstra3-32/+50
If you explicitly install a package, presumably you want all of it. So symlink all outputs in the user environment.
2012-12-03 Test the ‘--prebuilt-only’ flagEelco Dolstra1-0/+3
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 Dolstra5-45/+94
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-11-27 Optionally ignore null-valued derivation attributesEelco Dolstra3-11/+24
This allows adding attributes like attr = if stdenv.system == "bla" then something else null; without changing the resulting derivation on non-<bla> platforms. We once considered adding a special "ignore" value for this purpose, but using null seems more elegant.
2012-11-27 Add builtin constants ‘langVersion’ and ‘nixVersion’Eelco Dolstra6-2/+18
The integer constant ‘langVersion’ denotes the current language version. It gets increased every time a language feature is added/changed/removed. It's currently 1. The string constant ‘nixVersion’ contains the current Nix version, e.g. "1.2pre2980_9de6bc5".
2012-11-26 queryMissing(): Handle partially valid derivationsEelco Dolstra1-5/+6
2012-11-26 Undo accidental debug changeEelco Dolstra1-1/+1
2012-11-26 Fix the multiple-outputs testEelco Dolstra1-1/+4
2012-11-26 nix-instantiate: Fix read-only evaluationEelco Dolstra5-10/+17
2012-11-26 Only substitute wanted outputs of a derivationEelco Dolstra4-21/+77
If a derivation has multiple outputs, then we only want to download those outputs that are actuallty needed. So if we do "nix-build -A openssl.man", then only the "man" output should be downloaded. Likewise if another package depends on ${openssl.man}. The tricky part is that different derivations can depend on different outputs of a given derivation, so we may need to restart the corresponding derivation goal if that happens.
2012-11-26 Make "nix-build -A <derivation>.<output>" do the right thingEelco Dolstra10-20/+106
For example, given a derivation with outputs "out", "man" and "bin": $ nix-build -A pkg produces ./result pointing to the "out" output; $ nix-build -A pkg.man produces ./result-man pointing to the "man" output; $ nix-build -A pkg.all produces ./result, ./result-man and ./result-bin; $ nix-build -A pkg.all -A pkg2 produces ./result, ./result-man, ./result-bin and ./result-2.
2012-11-23 nix-copy-closure: Add flag ‘--use-substitutes’Eelco Dolstra4-17/+48
2012-11-20 nix-store -r: Add ‘--ignore-unknown’ flagEelco Dolstra4-10/+44
This flag causes paths that do not have a known substitute to be quietly ignored. This is mostly useful for Charon, allowing it to speed up deployment by letting a machine use substitutes for all substitutable paths, instead of uploading them. The latter is frequently faster, e.g. if the target machine has a fast Internet connection while the source machine is on a slow ADSL line.
2012-11-19 nix-store -r: Don't quietly ignore missing pathsEelco Dolstra1-0/+1
2012-11-15 Revert "prim_toPath: Actually make the string a path"Eelco Dolstra1-3/+1
This reverts commit 2980d1fba97069805c3649c5d99d0356bce6c303. It causes a regression in NixOS evaluation: string `/nix/store/ya3s5gmj3b28170fpbjhgsk8wzymkpa1-pommed-1.39/etc/pommed.conf' cannot refer to other paths
2012-11-15 Disable use of vfork()Eelco Dolstra2-2/+2
vfork() is just too weird. For instance, in this build: http://hydra.nixos.org/build/3330487 the value fromHook.writeSide becomes corrupted in the parent, even though the child only reads from it. At -O0 the problem goes away. Probably the child is overriding some spilled temporary variable. If I get bored I may implement using posix_spawn() instead.
2012-11-15 Don't use std::cerr in a few placesEelco Dolstra5-30/+34
Slightly scared of using std::cerr in a vforked process...