2015-06-03 | Merge branch 'nix'....* config-daemon.ac: Add check for sys/syscall.h, remove check
tr1/unordered_set.
The nix/ part is a squashed commit of the following:
commit e531520ddcd54903bbea0f3ce08dfbed830f40aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 2 02:21:54 2015 +0200
Don't let unprivileged users repair paths
commit 715478fe09a73cec70f5c6f869cac482f004596f
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon Jun 1 23:20:11 2015 +0200
Add a ‘verifyStore’ RPC
Hello!
The patch below adds a ‘verifyStore’ RPC with the same signature as the
current LocalStore::verifyStore method.
Thanks,
Ludo’.
>From aef46c03ca77eb6344f4892672eb6d9d06432041 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@gnu.org>
Date: Mon, 1 Jun 2015 23:17:10 +0200
Subject: [PATCH] Add a 'verifyStore' remote procedure call.
commit 64a998ebcb6ebf8c11efa0a0332cce3d8f1c538e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 7 13:21:26 2015 +0200
Revert /nix/store permission back to 01775
This broke NixOS VM tests.
Mostly reverts 27b7b94923d2f207781b438bb7a57669bddf7d2b,
5ce50cd99e740d0d0f18c30327ae687be9356553,
afa433e58c3fe6029660a43fdc2073c9d15b4210.
commit 44f1b1851ccf836411ca09f5ebc50fc08d92e7e8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 2 16:59:40 2015 +0200
Chroot builds: Provide world-readable /nix/store
This was causing NixOS VM tests to fail mysteriously since
5ce50cd99e740d0d0f18c30327ae687be9356553. Nscd could (sometimes) no
longer read /etc/hosts:
open("/etc/hosts", O_RDONLY|O_CLOEXEC) = -1 EACCES (Permission denied)
Probably there was some wacky interaction between the guest kernel and
the 9pfs implementation in QEMU.
commit b6ecbd266f614288db3468f9f054abea694105b1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 25 17:06:12 2015 +0100
addToStore(): Take explicit name argument
commit 1f595ba474d8112e73df1ef7578014e59ebfccd0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 24 11:35:53 2015 +0100
Tighten permissions on chroot directories
commit ba5888bccd2c5dfd0de73b91c3a5c18fa8c4866e
Author: Daniel Hahler <git@thequod.de>
Date: Fri Mar 6 16:39:48 2015 +0100
Fix typos: s/the the/the/
commit 67af480244250409c8cf41e66a4995258b8ccc9b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 23 15:41:41 2015 +0100
Use chroots for all derivations
If ‘build-use-chroot’ is set to ‘true’, fixed-output derivations are
now also chrooted. However, unlike normal derivations, they don't get
a private network namespace, so they can still access the
network. Also, the use of the ‘__noChroot’ derivation attribute is
no longer allowed.
Setting ‘build-use-chroot’ to ‘relaxed’ gives the old behaviour.
Note for Guix: unlike Nix commit 99897f6, we keep 'settings.useChroot'.
commit 638f3675e140af1214b82ff162baadd3ef1bb6e6
Author: Harald van Dijk <harald@gigawatt.nl>
Date: Fri Feb 13 16:05:49 2015 +0000
Use pivot_root in addition to chroot when possible
chroot only changes the process root directory, not the mount namespace root
directory, and it is well-known that any process with chroot capability can
break out of a chroot "jail". By using pivot_root as well, and unmounting the
original mount namespace root directory, breaking out becomes impossible.
Non-root processes typically have no ability to use chroot() anyway, but they
can gain that capability through the use of clone() or unshare(). For security
reasons, these syscalls are limited in functionality when used inside a normal
chroot environment. Using pivot_root() this way does allow those syscalls to be
put to their full use.
commit 8ab23f2924b70ac572ad0bcf950b4649361bfae2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 3 18:56:47 2015 +0100
Simplify parseHash32
commit 70c3d2f1767a724db1e66d137a1d6b4cdee00738
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 3 18:35:11 2015 +0100
Simplify printHash32
commit 7a7a15877f8f391a8a8a74f7a6e919a07dc19237
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 8 16:59:22 2015 +0100
Doh^2
commit 8c94a864d806647736410326d496a8d668109f5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 8 16:49:31 2015 +0100
Doh
commit 35605c4407a677752ed51a0f829cc0f42047b115
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 8 16:39:07 2015 +0100
Set /nix/store permission to 1737
I.e., not readable to the nixbld group. This improves purity a bit for
non-chroot builds, because it prevents a builder from enumerating
store paths (i.e. it can only access paths it knows about).
commit 0b9c4a8b80b199ce82ca5bd08ed24b8d5d5c71f5
Author: aszlig <aszlig@redmoonstudios.org>
Date: Fri Jan 2 03:45:47 2015 +0100
libutil: Limit readLink() error to only overflows.
Let's not just improve the error message itself, but also the behaviour
to actually work around the ntfs-3g symlink bug. If the readlink() call
returns a smaller size than the stat() call, this really isn't a problem
even if the symlink target really has changed between the calls.
So if stat() reports the size for the absolute path, it's most likely
that the relative path is smaller and thus it should also work for file
system bugs as mentioned in 93002d69fc58c2b71e2dfad202139230c630c53a.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Tested-by: John Ericson <Ericson2314@Yahoo.com>
commit 0fed5fde65e4a0cd600dc181e5b3c42d1147df51
Author: aszlig <aszlig@redmoonstudios.org>
Date: Fri Jan 2 03:27:39 2015 +0100
libutil: Improve errmsg on readLink size mismatch.
A message like "error: reading symbolic link `...' : Success" really is
quite confusing, so let's not indicate "success" but rather point out
the real issue.
We could also limit the check of this to just check for non-negative
values, but this would introduce a race condition between stat() and
readlink() if the link target changes between those two calls, thus
leading to a buffer overflow vulnerability.
Reported by @Ericson2314 on IRC. Happened due to a possible ntfs-3g bug
where a relative symlink returned the absolute path (st_)size in stat()
while readlink() returned the relative size.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Tested-by: John Ericson <Ericson2314@Yahoo.com>
commit 7dfd3f5c8f1fd1e47a737fdb3be9255000862ddb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Dec 14 01:51:14 2014 +0100
Pedantry
commit 45a145c8b2b60d8500ad9bbb7fed226c46af0d7e
Author: Marko Durkovic <marko@miding.de>
Date: Tue Dec 9 12:16:27 2014 +0100
Explicitly include required C headers
commit 66d086cc26c55bf317184b08dd8e04c9736c9514
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Dec 13 16:54:40 2014 +0100
Better error message
commit b499d2efbfbe83c4683e2c778494541937c816f3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 17:14:28 2014 +0100
Silence some warnings on GCC 4.9
commit 159b7103a7331db16f5db93e146217659e546cd8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 15:10:02 2014 +0100
Shut up a Valgrind warning
commit 7930b2cb76d3d2f9874f99502f10114c9a413b08
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 15:01:16 2014 +0100
Fix some memory leaks
commit 5c84e4950d8504e386fc1f454fb4653993a8fbea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 14:35:44 2014 +0100
Ensure we're writing to stderr in the builder
http://hydra.nixos.org/build/17862041
commit ccade8c120c53d56863aeda27bcd2f1f484779cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 14:01:14 2014 +0100
Get rid of unnecessary "interrupted by the user" message with -vvv
commit 8d9a0be27880d690e8045d27ea2ff5edad967750
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 12 12:39:50 2014 +0100
Remove tabs
commit 1f8456ff13dadb96c8540df240505a2d01a22f6c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Aug 21 15:31:43 2014 +0200
Use PR_SET_PDEATHSIG to ensure child cleanup
commit 909f1260e269e354c86c833ffb4ca27c9fb135f4
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Jun 3 17:45:32 2015 +0200
Rename 'initChild' to 'runChild'.
This is similar to commit b5ed5b6 in upstream Nix.
commit 3bfa70b7963e12be346900e64ae45fa019850675
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 10 13:53:04 2014 +0100
Don't wait for PID -1
The pid field can be -1 if forking the substituter process failed.
commit 5241aec531e9c9a4b2dd5e5b6ee3f07ff049d9a5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 24 16:48:04 2014 +0100
Build derivations in a more predictable order
Derivations are now built in order of derivation name, so a package
named "aardvark" is built before "baboon".
Fixes #399.
commit 9f355738e106f4ca49bba7276e8d520a2fc2955d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 24 16:44:35 2014 +0100
Don't create unnecessary substitution goals for derivations
commit 554eaf5e8c82ddd6a42e4301f6d3dd5419c04060
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Nov 19 18:02:39 2014 +0100
Disable vacuuming the DB after garbage collection
Especially in WAL mode on a highly loaded machine, this is not a good
idea because it results in a WAL file of approximately the same size
ad the database, which apparently cannot be deleted while anybody is
accessing it.
commit 4eb62b5230c29e2f6ab17352439521083846c259
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Nov 19 17:09:27 2014 +0100
nix-daemon: Call exit(), not _exit()
This was preventing destructors from running. In particular, it was
preventing the deletion of the temproot file for each worker
process. It may also have been responsible for the excessive WAL
growth on Hydra (due to the SQLite database not being closed
properly).
Apparently broken by accident in
8e9140cfdef9dbd1eb61e4c75c91d452ab5e4a74.
commit f160a30d5612506de41a8206a57eccee1cd85fb7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Nov 19 17:07:29 2014 +0100
Clean up temp roots in a more C++ way
commit a64744477d95e6932ae0fefc7cc358b56b8c397f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 17 01:00:39 2014 +0100
Fix message
commit b73de6e49b64d01974649a1e67a77113b768c2b1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 14 14:16:20 2014 +0100
Don't use ADDR_LIMIT_3GB
This gives 32-bit builds on x86_64-linux more memory.
commit e0825bd36b43f3c1d408745a9c61f92fdaf7dace
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Nov 12 11:35:53 2014 +0100
Make ~DerivationGoal more reliable
commit 86b9e6d4575e5c93f428b8563ae259f0f4014173
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 4 10:41:29 2014 +0100
nix-store --gc: Don't warn about missing manifests directory
commit 1129a982c4e77ff465fd6102627477900af2f7f4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 31 09:36:09 2014 +0100
Improve error message if the daemon worker fails to start
commit bed17f40fce27e1a31f70957b1d0dd912b58700d
Author: Shea Levy <shea@shealevy.com>
Date: Mon Oct 20 12:15:50 2014 -0400
Fix build on gcc < 4.7
commit ee8601cac4b353e551b238f546a0e7e8fcdcd3be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 14 10:51:19 2014 +0200
Improved error message when encountering unsupported file types
Fixes #269.
commit c2b65dd197a1b2e14d517b0b5ff307b149538917
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 3 22:37:51 2014 +0200
Remove some duplicate code
commit c95742283595cb01b44ddc8e6ff5e9c1d66db444
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 3 16:53:28 2014 +0200
createDirs(): Handle ‘path’ being a symlink
In particular, this fixes "nix-build -o /tmp/result" on Mac OS X
(where /tmp is a symlink).
commit 6092a48603ea7888f8a1f69db87835bc339c973a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 25 18:45:43 2014 +0200
nix-daemon: Close unnecessary fd
commit e74390a16f74233283572661f64ed4f03ae1650d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 19 15:07:22 2014 +0200
Remove bogus comment
commit e63c8aaa0511d1d0a5487c45dec9f8cbd66b4cc6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 17 17:21:13 2014 +0200
On Linux, disable address space randomization
commit 55939b1a4b34b904eedba90ac6c14efc6258f40d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 17 15:18:13 2014 +0200
Settings: Add bool get()
commit 6621195e48f8e0cbbe6e19dbcde30bd8a7da0399
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon Sep 1 22:21:42 2014 +0200
Add an 'optimiseStore' remote procedure call.
commit 3bb89c3a31b9cf6e056f3659389e2d2e7afd17fa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Aug 28 18:57:13 2014 +0200
Add disallowedReferences / disallowedRequisites
For the "stdenv accidentally referring to bootstrap-tools", it seems
easier to specify the path that we don't want to depend on, e.g.
disallowedRequisites = [ bootstrapTools ];
commit abd9d61e6201ddbde3305dd27c286e883e950bec
Author: Gergely Risko <errge@nilcons.com>
Date: Wed Aug 27 16:46:02 2014 +0200
Introduce allowedRequisites feature
commit 8c766e48d5c4741b63a4f24dc91138f587c04a5a
Author: Joel Taylor <me@joelt.io>
Date: Thu Aug 21 14:06:49 2014 -0700
fix disappearing bash arguments
commit d4e7c195fabf0f24c2ffbd4ca8f189489bbbf44d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 19 17:44:59 2014 +0200
Make hook shutdown more reliable
commit ea837e470f70900481d00b0d1cd73e6855c4f70d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 18 11:35:50 2014 +0200
Doh
commit 790271559cb8b36cd8fcdc533f41be88ec15ad08
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 17 19:11:50 2014 +0200
Reduce verbosity
commit 3f6d4f63ec0d1d6cfc3233998b7dd9608b2f6ff3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 17 19:09:03 2014 +0200
Propagate remote timeouts properly
commit aa98ba506739b885b3ce0b392dade5e1e1bb07f7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 13 17:44:41 2014 +0200
Use regular file GC roots if possible
This makes hydra-eval-jobs create roots as regular files. See
1c208f2b7ef8ffb5e6d435d703dad83223a67bd6.
commit 5fe5ff77800c2911c011f582d8dfa90c44d4a3a5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 5 16:41:42 2014 +0200
Remove unnecessary call to addTempRoot()
commit 1820845c44c8cbe1121e78d5f16e7778532477f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 5 10:19:57 2014 +0200
Doh
commit e9070bf4226b225a0b42798b20ea3947abf58a6f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 4 18:13:14 2014 +0200
Move some options out of globals
commit 31909515634d74e4c3d92be6186c5c48244582ae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 4 18:02:29 2014 +0200
Refactor
commit f530ee6f356f4299ca343dde7f4c0742300ffa08
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 4 18:00:00 2014 +0200
Add option ‘build-extra-chroot-dirs’
This is useful for extending (rather than overriding) the default set
of chroot paths.
commit 75f746f018e34868b8057bed87c90d2cbe2c0b6c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 4 17:27:45 2014 +0200
Get rid of "killing <pid>" message for unused build hooks
commit 42c6246f674ca2d5ea166d1ae676b7087ea1b0d8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 19:38:21 2014 +0200
Remove ugly hack for detecting build environment setup errors
commit b732ffd28ddf50d3150e4f276a0e8488e38eaacb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 19:29:03 2014 +0200
Call commonChildInit() before doing chroot init
This ensures that daemon clients see error messages from the chroot
setup.
commit c51374c128cbe1f06acd95ba2d627a118a95aabf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 17:30:51 2014 +0200
Eliminate redundant copy
commit 666c9b7108e460f0d3450015a3379bfeb3e3a497
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 17:20:25 2014 +0200
findRoots(): Prevent a call to lstat()
This means that getting the roots from /nix/var/nix/.../hydra-roots
doesn't need any I/O other than reading the directory.
commit 82d463d9cacbf2a93b95ab5313567d593fd00d02
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 16:37:47 2014 +0200
Make readDirectory() return inode / file type
commit a98fa2d9e2b06e2561330c5ef845ffaf131e95ac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 1 16:46:01 2014 +0200
Allow regular files as GC roots
If a root is a regular file, then its name must denote a store
path. For instance, the existence of the file
/nix/var/nix/gcroots/per-user/eelco/hydra-roots/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7
would cause
/nix/store/wzc3cy1wwwd6d0dgxpa77ijr1yp50s6v-libxml2-2.7.7
to be a root.
This is useful because it involves less I/O (no need for a readlink()
call) and takes up less disk space (the symlink target typically takes
up a full disk block, while directory entries are packed more
efficiently). This is particularly important for hydra.nixos.org,
which has hundreds of thousands of roots, and where reading the roots
can take 25 minutes.
commit 4ab4b0c109734bd6e265ca5f1b6415c31c03ab11
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 24 00:00:53 2014 +0200
Remove some dead code
commit 1cffdf5847b065183c9aac86df3a9578020e6712
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 23 19:43:46 2014 +0200
nix-daemon: Less verbosity
commit bb07dfe96f0d07aa18db385d3ec93b24b5568213
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 23 19:37:40 2014 +0200
nix-daemon: Simplify stderr handling
commit 766481d606e4b1860307692d6a44723983662d45
Merge: c69944c fdee1ce
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon May 11 17:04:26 2015 +0200
Merge commit 'fdee1ced43fb495d612a29e955141cdf6b9a95ba' into nix
commit c69944c511b89d3fdbffe00353e27d1e1c5f670c
Merge: a1dd396 8e9140c
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed May 6 23:22:04 2015 +0200
Merge commit '8e9140cfdef9dbd1eb61e4c75c91d452ab5e4a74' into nix
Conflicts:
Makefile.config.in
configure.ac
dev-shell
doc/manual/builtins.xml
doc/manual/conf-file.xml
doc/manual/local.mk
doc/manual/nix-instantiate.xml
doc/manual/nix-store.xml
doc/manual/writing-nix-expressions.xml
misc/emacs/nix-mode.el
perl/lib/Nix/CopyClosure.pm
release.nix
scripts/nix-build.in
scripts/nix-copy-closure.in
src/download-via-ssh/download-via-ssh.cc
src/libexpr/common-opts.cc
src/libexpr/common-opts.hh
src/libexpr/eval.cc
src/libexpr/eval.hh
src/libexpr/local.mk
src/libexpr/nixexpr.cc
src/libexpr/nixexpr.hh
src/libexpr/parser.y
src/libexpr/primops.cc
src/libexpr/symbol-table.hh
src/libmain/shared.cc
src/libstore/local.mk
src/nix-env/nix-env.cc
src/nix-instantiate/nix-instantiate.cc
src/nix-store/local.mk
src/nix-store/nix-store.cc
src/nix-store/serve-protocol.hh
tests/lang.sh
tests/lang/eval-okay-context.nix
tests/lang/eval-okay-search-path.exp
tests/lang/eval-okay-search-path.nix
tests/local.mk
tests/nix-copy-closure.nix
commit a1dd396cc02922372314c35c8035a38bfeea08df
Merge: 0a75126 8d5f472
Author: Ludovic Courtès <ludo@gnu.org>
Date: Sun Jan 4 23:01:14 2015 +0100
Merge commit '8d5f472f2c49c79a0d3ae2e506f4d4d76224b328' into nix
Conflicts:
.gitignore
Makefile
doc/manual/installation.xml
doc/manual/introduction.xml
doc/manual/local.mk
doc/manual/manual.xml
doc/manual/nix-collect-garbage.xml
doc/manual/nix-env.xml
doc/manual/nix-install-package.xml
doc/manual/nix-store.xml
doc/manual/quick-start.xml
doc/manual/release-notes.xml
local.mk
misc/emacs/nix-mode.el
mk/functions.mk
mk/install.mk
mk/lib.mk
mk/libraries.mk
mk/patterns.mk
mk/programs.mk
nix.spec.in
release.nix
scripts/install-nix-from-closure.sh
scripts/nix-build.in
src/libexpr/eval-inline.hh
src/libexpr/eval.cc
src/libexpr/eval.hh
src/libexpr/get-drvs.cc
src/libexpr/nixexpr.cc
src/libexpr/nixexpr.hh
src/libexpr/parser.y
src/libexpr/primops.cc
src/libstore/local.mk
src/nix-daemon/local.mk
src/nix-env/nix-env.cc
src/nix-env/user-env.cc
src/nix-instantiate/nix-instantiate.cc
src/nix-store/nix-store.cc
tests/init.sh
tests/nix-copy-closure.nix
tests/remote-builds.nix
version
commit 0a751260ae54bb37ae33e0f4fc3bcda2a4ea3ceb
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Dec 17 11:10:25 2014 +0100
nix: Adjust code for Guix.
* nix/libstore/gc.cc (addAdditionalRoots): Refer to 'list-runtime-roots'
instead of 'find-runtime-roots.pl'.
* nix/libutil/hash.cc, nix/libutil/hash.hh: Change 'union Ctx' to
'struct Ctx', like 'nix/sync-with-upstream' did.
* nix/AUTHORS: New file.
* nix/COPYING: New file, from upstream Nix.
* nix/libutil/md32_common.h, nix/libutil/md5.c, nix/libutil/md5.h,
nix/libutil/sha1.c, nix/libutil/sha1.h, nix/libutil/sha256.c,
nix/libutil/sha256.h: Remove.
commit d4e18b05e0ab149265d3d09ae017d7337fc4176f
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Dec 17 10:44:19 2014 +0100
Keep only libstore, nix-daemon, and related stuff.
commit fdee1ced43fb495d612a29e955141cdf6b9a95ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 23 19:11:26 2014 +0200
startProcess: Make writing error messages from the child more robust
commit 5989966ed3bd58cd362aed8cba6cd5c90b380a32
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 23 14:46:28 2014 +0200
Remove dead code
commit ee3c5d7916b48d0c3b1cc08044e27209c14acfdc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jul 19 02:25:47 2014 +0200
Revert old useBuildHook behaviour
commit 2e77bd70faee34cb2518529318a54b39f2d9143e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 18 12:54:30 2014 +0200
Better fix for strcasecmp on Darwin
commit f609eec71a25a9bb8c32dd9620b7deb88633a22a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 18 00:01:06 2014 +0200
Bump
commit 8ddffe7aac414756809f43732effb8951858243b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 17 23:57:17 2014 +0200
Ugly hack to fix building on old Darwin
http://hydra.nixos.org/build/12580878
commit 049c0eb49c621ae50f49c8a06dc6c3a9839ef388
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 17 16:57:07 2014 +0200
nix-daemon: Add trusted-users and allowed-users options
‘trusted-users’ is a list of users and groups that have elevated
rights, such as the ability to specify binary caches. It defaults to
‘root’. A typical value would be ‘@wheel’ to specify all users in the
wheel group.
‘allowed-users’ is a list of users and groups that are allowed to
connect to the daemon. It defaults to ‘*’. A typical value would be
‘@users’ to specify the ‘users’ group.
commit 0c730887c4ec4a03fb854490e422c134a1bf8139
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 17 15:49:33 2014 +0200
nix-daemon: Show name of connecting user
commit 77c972c898b325997fa2f527264a9706f1e414a5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 17 15:41:11 2014 +0200
nix-daemon: Only print connection info if we have SO_PEERCRED
commit 8f72e702a114458e92f644160950344a7bf7166a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 17 15:23:31 2014 +0200
nix-daemon: Fix compat with older clients
commit 2304a7dd21639959dc4bcafa3e17374cc087cd0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 16:32:26 2014 +0200
Get rid of a compiler warning
commit 985f1595fe9f61095c7bc94b49be1179811ec630
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 16:30:50 2014 +0200
Be more strict about file names in NARs
commit 276a40b31f631c188d6dcbdf603a738e1380ff74
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 16:02:05 2014 +0200
Handle case collisions on case-insensitive systems
When running NixOps under Mac OS X, we need to be able to import store
paths built on Linux into the local Nix store. However, HFS+ is
usually case-insensitive, so if there are directories with file names
that differ only in case, then importing will fail.
The solution is to add a suffix ("~nix~case~hack~<integer>") to
colliding files. For instance, if we have a directory containing
xt_CONNMARK.h and xt_connmark.h, then the latter will be renamed to
"xt_connmark.h~nix~case~hack~1". If a store path is dumped as a NAR,
the suffixes are removed. Thus, importing and exporting via a
case-insensitive Nix store is round-tripping. So when NixOps calls
nix-copy-closure to copy the path to a Linux machine, you get the
original file names back.
Closes #119.
commit bb65460feb265be4d938c7dc724a76ef41a8bfaf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 11:19:12 2014 +0200
Make dev-shell script work on Darwin
commit de8be7c3e06b52c313e0b452b641ad5f90dca2fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 11:16:54 2014 +0200
Install systemd and Upstart stuff only on Linux
commit 048be62484537633e2523dd4d200619649ff860d
Author: Shea Levy <shea@shealevy.com>
Date: Wed Jul 16 01:11:24 2014 -0400
Pass *_proxy vars to bootstrap fetchurl
commit a2c85b2ef85a34bf8e5238c315a4ca73606f5ae6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 16 11:09:01 2014 +0200
Manual: Typo
commit 5bcb98271103c6c2ca3b993d8b1b0eb9eadcbc1c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 14 12:39:33 2014 +0200
Remove cruft
commit fa13d3f4f3d8fb6dc3e3fc87ac5a2e26d8b32d84
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 14 12:19:27 2014 +0200
build-remote.pl: Fix building multiple output derivations
We were importing paths without sorting them topologically, leading to
"path is not valid" errors.
See e.g. http://hydra.nixos.org/build/12451761
commit b2e0293f022123b11759dfd498d4eff72233d3f7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jul 12 00:43:28 2014 +0200
build-remote.pl: Don't keep a shell process around
commit a00a98548e994d1ea258e14793c7bcd8ea56cfdf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jul 12 00:09:43 2014 +0200
build-remote.pl: Fix build log
commit 838138c5c4d21a207f3579c4f743698bd6dbb6b1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 11 16:20:12 2014 +0200
Fix test
commit a5c6347ff06ba09530fdf0e01828aaec89f6ceb6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 11 16:02:19 2014 +0200
build-remote.pl: Use ‘nix-store --serve’ on the remote side
This makes things more efficient (we don't need to use an SSH master
connection, and we only start a single remote process) and gets rid of
locking issues (the remote nix-store process will keep inputs and
outputs locked as long as they're needed).
It also makes it more or less secure to connect directly to the root
account on the build machine, using a forced command
(e.g. ‘command="nix-store --serve --write"’). This bypasses the Nix
daemon and is therefore more efficient.
Also, don't call nix-store to import the output paths.
commit b8f24f253527e1cb071785c3b2d677ed2f734ab1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 11 14:27:17 2014 +0200
Fix closure size display
commit e196eecbe6552d5afed89ad480544c90cf959922
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 11 13:55:06 2014 +0200
Allow $NIX_BUILD_HOOK to be relative to Nix libexec directory
commit d0eb970fb4d3b5c347506b77f9657fc5eb6229e2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 21:48:21 2014 +0200
Fix broken Pid constructor
commit edbfe2232e275a9e6c10cd8eb4dc36ca992af084
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 21:30:22 2014 +0200
Replace message "importing path <...>" with "exporting path <...>"
This causes nix-copy-closure to show what it's doing before rather
than after.
commit 42d91b079c5d0b468663511e7b2a8e2f4048c475
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 21:14:34 2014 +0200
Fix use of sysread
commit 7bb632b02464febd8806ef4bd3fa0ac107f52650
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 20:43:04 2014 +0200
nix-copy-closure -s: Do substitutions via ‘nix-store --serve’
This means we no longer need an SSH master connection, since we only
execute a single command on the remote host.
commit 7c3a5090bff4e9cfe70f1d89619563b55af13d89
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 17:44:18 2014 +0200
nix-copy-closure: Fix --dry-run
commit 43b64f503844a66c344780a11289678a001572db
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 17:32:21 2014 +0200
Remove tabs
commit 8e9140cfdef9dbd1eb61e4c75c91d452ab5e4a74
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 16:50:51 2014 +0200
Refactoring: Move all fork handling into a higher-order function
C++11 lambdas ftw.
commit 1114c7bd57bcab16255d5db5e6f66ae8dece7b1e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 14:15:12 2014 +0200
nix-copy-closure: Restore compression and the progress viewer
commit 7911e4c27a0020a61ace13cfdc44de4af02f315e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 23 09:15:35 2014 -0400
Remove maybeVfork
commit 04170d06bf7d17f882c01d3ab98885e0f3e46d2f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 11:51:22 2014 +0200
nix-copy-closure: Fix race condition
There is a long-standing race condition when copying a closure to a
remote machine, particularly affecting build-remote.pl: the client
first asks the remote machine which paths it already has, then copies
over the missing paths. If the garbage collector kicks in on the
remote machine between the first and second step, the already-present
paths may be deleted. The missing paths may then refer to deleted
paths, causing nix-copy-closure to fail. The client now performs both
steps using a single remote Nix call (using ‘nix-store --serve’),
locking all paths in the closure while querying.
I changed the --serve protocol a bit (getting rid of QueryCommand), so
this breaks the SSH substituter from older versions. But it was marked
experimental anyway.
Fixes #141.
commit 2c3a8f787ba9da49feafdec4022534184e0a96a3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 11:46:01 2014 +0200
Fix security hole in ‘nix-store --serve’
Since it didn't check that the path received from the client is a
store path, the client could dump any path in the file system.
commit 66dbc0fdeebf509c5d919e9c12b2645136d6deeb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 10 01:50:29 2014 +0200
Add a test for the SSH substituter
commit 0e5d0c15430cf82861a1ae213cbccff065f71107
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 9 12:14:40 2014 +0200
Fix compilation error on some versions of GCC
src/libexpr/primops.cc:42:8: error: looser throw specifier for 'virtual nix::InvalidPathError::~InvalidPathError()'
src/libexpr/nixexpr.hh:12:1: error: overriding 'virtual nix::EvalError::~EvalError() noexcept (true)'
http://hydra.nixos.org/build/12385750
commit beac05c206a801be6f83b4eaaffe75c30eeb7d37
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 8 20:41:25 2014 +0200
Don't build on Ubuntu 10.10
Its C++ compiler is too old.
http://hydra.nixos.org/build/12385722
commit beaf3e90aff14664b98f2c7ab7387c9fa4354fd1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 4 13:34:15 2014 +0200
Add builtin function ‘fromJSON’
Fixes #294.
commit e82951fe23daa961ef18b0c5cc9ba1f5d8906186
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 3 12:36:58 2014 +0200
Manual: html -> xhtml
commit e477f0e9385d7825f005b7e9a32cd3ad6ee27aab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 27 11:36:23 2014 +0200
Style fix
commit 858b8f9760a81540b0a95068d96dc5c1628673c3
Author: Paul Colomiets <paul@colomiets.name>
Date: Tue Jun 24 00:30:22 2014 +0300
Add `--json` argument to `nix-instantiate`
commit 8504e7d60488cb12dd2597734ebd1d3cadf5d153
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 27 11:20:16 2014 +0200
allow-arbitrary-code-during-evaluation -> allow-unsafe-native-code-during-evaluation
commit d7be6d45d97e89653b77686bdb39b833afbcf6ca
Merge: 9d0709e d62f46e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 27 11:18:54 2014 +0200
Merge branch 'shlevy-import-native'
commit d62f46e500958bc97ae6837911e27c20a47cc181
Author: Shea Levy <shea@shealevy.com>
Date: Tue Jun 24 10:50:03 2014 -0400
Only add the importNative primop if the allow-arbitrary-code-during-evaluation option is true (default false)
commit 5cd022d6c099c583c0494bdacd06f4eb32661135
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jun 1 10:42:56 2014 -0400
Add importNative primop
This can be used to import a dynamic shared object and return an
arbitrary value, including new primops. This can be used both to test
new primops without having to recompile nix every time, and to build
specialized primops that probably don't belong upstream (e.g. a function
that calls out to gpg to decrypt a nixops secret as-needed).
The imported function should initialize the Value & as needed. A single
import can define multiple values by creating an attrset or list, of
course.
An example initialization function might look like:
extern "C" void initialize(nix::EvalState & state, nix::Value & v)
{
v.type = nix::tPrimOp;
v.primOp = NEW nix::PrimOp(myFun, 1, state.symbols.create("myFun"));
}
Then `builtins.importNative ./example.so "initialize"` will evaluate to
the primop defined in the myFun function.
commit 9d0709e8c47082cec35d6412053eacfadae23bcd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 12 17:30:37 2014 +0200
Don't use member initialisers
They're a little bit too recent (only supported since GCC 4.7).
http://hydra.nixos.org/build/11851475
commit 48495f67ed893c4ee056099ae0ca5a2afacde93c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 12 13:15:35 2014 +0200
Fix bogus warnings about dumping large paths
Also, yay for C++11 non-static initialisers.
commit 0960d674d48808eaaa3475899f45cfd6c7c3e51d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 12 13:00:54 2014 +0200
Drop ImportError and FindError
We're not catching these anywhere.
commit 718f20da6d79466f91c49849bcf91a688aaa871e
Author: Shea Levy <shea@shealevy.com>
Date: Fri May 30 15:43:31 2014 -0400
findFile: Realise the context of the path attributes
commit a8fb575c98726f195d0cf5c7e6b7e51c75a0a9b3
Author: Shea Levy <shea@shealevy.com>
Date: Fri May 30 15:04:17 2014 -0400
Share code between scopedImport and import
In addition to reducing duplication, this fixes both import from
derivation and import of derivation for scopedImport
commit 61c464f252271d3d6343e1bfa1e3b39d2c8473cd
Author: Steve Purcell <steve@sanityinc.com>
Date: Thu Jun 5 11:04:48 2014 +0100
Add autoloads, make code more concise & idiomatic
- Use define-derived-mode to declare nix-mode
- Use autoloads to ensure nix-mode is usable (and enabled) without needing `require`
- Use set + make-local-variable instead of longer 2-step equivalent
commit ee7fe64c0ac00f2be11604a2a6509eb86dc19f0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 10 14:02:56 2014 +0200
== operator: Ignore string context
There really is no case I can think of where taking the context into
account is useful. Mostly it's just very inconvenient.
commit b1beed97a0670befbfd5e105a81132e87e58ac37
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 10 13:45:50 2014 +0200
Report daemon OOM better
When copying a large path causes the daemon to run out of memory, you
now get:
error: Nix daemon out of memory
instead of:
error: writing to file: Broken pipe
commit 829af22759b8a99c3b44697365390a945f3acc04
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 10 13:30:09 2014 +0200
Print a warning when loading a large path into memory
I.e. if you have a derivation with
src = ./huge-directory;
you'll get a warning that this is not a good idea.
commit 3c6b8a521561f5341652ffe37b869d5ab457227b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 2 17:58:43 2014 +0200
nix-env -qa --json: Generate valid JSON even if there are invalid meta attrs
commit ceed8192848760430c9c23659f9cb979aad1f9c3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 29 19:04:27 2014 +0200
Fix test
commit becc2b01678c5742b3fe6c379430606a5ef8e34d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 29 19:02:14 2014 +0200
Sort nixPath attributes
commit 54a34119f349d531557af9e90d21d04d689ee817
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 17:53:17 2014 +0200
Use std::unordered_set
commit a457d5ad4d7f6cd4f817581de1b4f70cdad9c617
Author: Aristid Breitkreuz <aristidb@gmail.com>
Date: Sun May 4 14:26:41 2014 +0200
nix-build: --add-root also takes 1 parameter
commit b1d39d476544644b2de8addb5ad3289fede2f95a
Author: Sönke Hahn <soenkehahn@gmail.com>
Date: Fri May 23 11:41:09 2014 +0800
dev-shell is a bash script, not sh
'type -p' does not work in e.g. dash
commit 8ea9fd7aa6b2152f95724e504ac61c57d90b113c
Author: Adam Szkoda <adaszko@gmail.com>
Date: Sun May 25 10:54:54 2014 +0200
Rephrase @ operator description
commit d8c061e044a07f7516d76df12bc6920f4f04e5ff
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 17:14:28 2014 +0200
Remove ExprBuiltin
It's slower than ExprVar since it doesn't compute a static
displacement. Since we're not using the throw primop in the
implementation of <...> anymore, it's also not really needed.
commit 62a6eeb1f3da0a5954ad2da54c454eb7fc1c6e5d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 17:02:22 2014 +0200
Make the Nix search path declarative
Nix search path lookups like <nixpkgs> are now desugared to ‘findFile
nixPath <nixpkgs>’, where ‘findFile’ is a new primop. Thus you can
override the search path simply by saying
let
nixPath = [ { prefix = "nixpkgs"; path = "/my-nixpkgs"; } ];
in ... <nixpkgs> ...
In conjunction with ‘scopedImport’ (commit
c273c15cb13bb86420dda1e5341a4e19517532b5), the Nix search path can be
propagated across imports, e.g.
let
overrides = {
nixPath = [ ... ] ++ builtins.nixPath;
import = fn: scopedImport overrides fn;
scopedImport = attrs: fn: scopedImport (overrides // attrs) fn;
builtins = builtins // overrides;
};
in scopedImport overrides ./nixos
commit 39d72640c2459dc2fa689bfe8b756ee193f7b98a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 16:50:36 2014 +0200
Ensure that -I flags get included in nixPath
Also fixes #261.
commit a8edf185a9e1677088c8c30acc9d281c8350bca7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 14:55:47 2014 +0200
Add constant ‘nixPath’
It contains the Nix expression search path as a list of { prefix, path
} sets, e.g.
[ { path = "/nix/var/nix/profiles/per-user/root/channels/nixos"; prefix = ""; }
{ path = "/etc/nixos/configuration.nix"; prefix = "nixos-config"; }
{ path = "/home/eelco/Dev/nix/inst/share/nix/corepkgs"; prefix = "nix"; }
]
commit c273c15cb13bb86420dda1e5341a4e19517532b5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 13:46:11 2014 +0200
Add primop ‘scopedImport’
‘scopedImport’ works like ‘import’, except that it takes a set of
attributes to be added to the lexical scope of the expression,
essentially extending or overriding the builtin variables. For
instance, the expression
scopedImport { x = 1; } ./foo.nix
where foo.nix contains ‘x’, will evaluate to 1.
This has a few applications:
* It allows getting rid of function argument specifications in package
expressions. For instance, a package expression like:
{ stdenv, fetchurl, libfoo }:
stdenv.mkDerivation { ... buildInputs = [ libfoo ]; }
can now we written as just
stdenv.mkDerivation { ... buildInputs = [ libfoo ]; }
and imported in all-packages.nix as:
bar = scopedImport pkgs ./bar.nix;
So whereas we once had dependencies listed in three places
(buildInputs, the function, and the call site), they now only need
to appear in one place.
* It allows overriding builtin functions. For instance, to trace all
calls to ‘map’:
let
overrides = {
map = f: xs: builtins.trace "map called!" (map f xs);
# Ensure that our override gets propagated by calls to
# import/scopedImport.
import = fn: scopedImport overrides fn;
scopedImport = attrs: fn: scopedImport (overrides // attrs) fn;
# Also update ‘builtins’.
builtins = builtins // overrides;
};
in scopedImport overrides ./bla.nix
* Similarly, it allows extending the set of builtin functions. For
instance, during Nixpkgs/NixOS evaluation, the Nixpkgs library
functions could be added to the default scope.
There is a downside: calls to scopedImport are not memoized, unlike
import. So importing a file multiple times leads to multiple parsings
/ evaluations. It would be possible to construct the AST only once,
but that would require careful handling of variables/environments.
commit f0fdbd0897ce63c138ec663ed89a94709a8441a7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 26 12:34:15 2014 +0200
Shut up some signedness warnings
commit 0321ef9bb261958fe4d63210e9a9d3350737ef18
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 23 14:43:55 2014 +0200
Ugly hack to allow --argstr values starting with a dash
Fixes #265.
commit 3064a8215608eca391fcb9d492735a662f48242e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 22 11:38:50 2014 +0200
Disable parallel.sh test
It breaks randomly: http://hydra.nixos.org/build/11152871
commit 9f9080e2c019f188ba679a7a89284d7eaf629710
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 21 17:19:36 2014 +0200
nix-store -l: Fetch build logs from the Internet
If a build log is not available locally, then ‘nix-store -l’ will now
try to download it from the servers listed in the ‘log-servers’ option
in nix.conf. For instance, if you have:
log-servers = http://hydra.nixos.org/log
then it will try to get logs from http://hydra.nixos.org/log/<base
name of the store path>. So you can do things like:
$ nix-store -l $(which xterm)
and get a log even if xterm wasn't built locally.
commit eac5841970737b799c55ec78f6ace6d80762ff04
Author: Shea Levy <shea@shealevy.com>
Date: Thu May 15 11:30:46 2014 -0400
Provide a more useful error message when a dynamic attr lookup fails
commit 8d5f472f2c49c79a0d3ae2e506f4d4d76224b328
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 15 11:37:44 2014 +0200
lvlInfo -> lvlTalkative
commit 84813af5b938246d9a4a785dfb08b86383ef62ae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 15 11:33:46 2014 +0200
nix-store --optimise: Remove bogus statistics
commit 690adeb03de039551c4d8b5b4e7dda21c9c8f9b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 15 11:19:16 2014 +0200
Remove tab
commit a1b66f316e980b4b7e755de47604bdc30371b67e
Merge: e384e7b 3b9ea84
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 15 11:18:29 2014 +0200
Merge branch 'master' of github.com:wmertens/nix
commit 3b9ea8452f102595874826e349fa38f85c00aa39
Author: Wout Mertens <Wout.Mertens@gmail.com>
Date: Thu May 15 09:02:22 2014 +0200
Shortcut store files before lstat
readdir() already returns the inode numbers, so we don't need to call
lstat to know if a file was already linked or not.
commit d73ffc552f78e0d9048e3bcc1e84452d1e8d2ede
Author: Wout Mertens <Wout.Mertens@gmail.com>
Date: Wed May 14 22:52:10 2014 +0200
Use the inodes given by readdir directly
commit e384e7b387c4745f30032ef431a06aa26cee73a5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 14 22:25:25 2014 +0200
Remove redundant code
commit e974f20c9811c3efe09cfca9bda7816f9091c0d5
Author: Wout Mertens <Wout.Mertens@gmail.com>
Date: Tue May 13 23:10:06 2014 +0200
Preload linked hashes to speed up lookups
By preloading all inodes in the /nix/store/.links directory, we can
quickly determine of a hardlinked file was already linked to the hashed
links.
This is tolerant of removing the .links directory, it will simply
recalculate all hashes in the store.
commit 36662eb5629c31cfd1b8472c9b7eb136b3937a4d
Author: Ricky Elrod <ricky@elrod.me>
Date: Sun May 11 18:57:53 2014 -0400
Prepare nix-mode to be uploaded to marmalade
Signed-off-by: Ricky Elrod <ricky@elrod.me>
commit 95501c4deea1d945022df18475340232bc6980be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 13 12:54:28 2014 +0200
nix-instantiate --eval: Apply auto-arguments if the result is a function
Fixes #254.
commit a55e77ae10a76336728be6fbb0f0d7957422b56a
Author: Charles Strahan <charles.c.strahan@gmail.com>
Date: Mon May 12 14:31:16 2014 -0400
fix typo
commit a84f503d863fd77de9b6ecf149399c2ca7642b75
Author: wmertens <Wout.Mertens@gmail.com>
Date: Sat May 10 15:53:01 2014 +0200
Shortcut already-hardlinked files
If an inode in the Nix store has more than 1 link, it probably means that it was linked into .links/ by us. If so, skip.
There's a possibility that something else hardlinked the file, so it would be nice to be able to override this.
Also, by looking at the number of hardlinks for each of the files in .links/, you can get deduplication numbers and space savings.
commit aa9b1cf48e6482a74dcc19e6aef1d8236b57abe4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 6 10:51:16 2014 +0200
Really fix the RPM builds
http://hydra.nixos.org/build/10840199
commit 2c4affbaa88c8bfbee92093f0355b6e118fd5447
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 5 20:22:35 2014 +0200
Fix RPM build
We don't install a nix.conf anymore.
http://hydra.nixos.org/build/10826143
commit 93506e60d2f86079a6db260d376a92773900d0d3
Author: Rob Vermaas <rob.vermaas@gmail.com>
Date: Sat May 3 17:54:48 2014 +0200
Add ubuntu 14.04
commit 40250f23a0a301bb758e7f0f21fcd09b702e0e1e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 19:04:10 2014 +0200
Don't install Upstart job on Fedora
Also, don't install a nix.conf anymore, it's not needed.
http://hydra.nixos.org/build/10775854
commit 6dd10873961d45fd246b48ad82b7f05ad3d4d077
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 19:02:10 2014 +0200
Fix Debian tests
These actually run as root in a VM, so they get confused.
http://hydra.nixos.org/build/10775854
commit a8c31d501185c42de477a7e833af956d68e095c3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 14:44:44 2014 +0200
Simplify multi-user installation instructions
commit 696f960dee35889433adfa6c08a2dbfb6ea0724f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 14:31:15 2014 +0200
Set up directories and permissions for multi-user install automatically
This automatically creates /nix/var/nix/profiles/per-user and sets the
permissions/ownership on /nix/store to 1775 and root:nixbld.
commit 20668b136329da92be7c63e7f7c4918968ff0015
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 13:14:10 2014 +0200
Install an Upstart service
commit de4cdd0d47adc70a4db12397a42c18ee50b4e662
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 12:51:43 2014 +0200
Set build-max-jobs to the number of available cores by default
More zero configuration.
commit ada3e3fa15bc14aebb2bafd1240c15cf1fd99351
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 2 12:46:03 2014 +0200
When running as root, use build users by default
This removes the need to have a nix.conf, and prevents people from
accidentally running Nix builds as root.
commit eeffdb74dcdbd64bcdc44cff4e587b59c4f807b5
Author: Charles Strahan <charles.c.strahan@gmail.com>
Date: Sun Apr 27 14:07:50 2014 -0400
doc fix: swap 'import' and 'export'
commit 31fe55bb8e599702ac79b24b2109199be50a85a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 25 14:55:13 2014 +0200
trunk -> master
commit 700c678c2eed5e05c3e68d722c41c2b37d0a2f45
Author: Ricardo M. Correia <rcorreia@wizy.org>
Date: Fri Apr 11 17:10:20 2014 +0200
nix-env: Minor change to '--delete-generations Nd' semantics
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!
commit fb5d76b89e8b0084fb147d79af5481e09b889386
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 15 15:32:27 2014 +0200
Fix test evaluation
commit a1917208c025e0a029cb33bbf3cf69e4d4128a39
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 11 15:11:28 2014 +0200
Bump date
commit 742933116fd803afbf8c36dbc1eab51612d4bb55
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 11 11:15:24 2014 +0200
Bump version to 1.8
commit 924e19341a5ee488634bc9ce1ea9758ac496afc3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 10 23:42:48 2014 +0200
Don't barf when installing as root
commit b0a09a6f320d3a0ac186e87edb1c1782d8d168d5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Apr 9 14:52:43 2014 +0200
Add docbook icons to the distribution
Grmbl...
commit dfa2f77d2e1118f32771c2fceefd683435554b9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 19:24:29 2014 +0200
If a .drv cannot be parsed, show its path
Otherwise you just get ‘expected string `Derive(['’ which isn't very helpful.
commit e0a947cde6d11b5182500f024719b04b8997189a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 16:28:39 2014 +0200
Simplify quick start section
commit d23931f3a448fddc43d81f774fa83797729910e7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 16:10:25 2014 +0200
Remove redundant stuff
commit 48460057419ce651c9484a66d83e6b987b261d8c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 16:09:56 2014 +0200
Update installation instructions
commit 2b6c8ef40121fdc418551e9b780bb909477c9a3c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 14:08:57 2014 +0200
nix-shell --pure: Keep the user's $PAGER
commit 76cbf55a6d8953e393ba39896ccbb0948bac96d6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 8 13:51:34 2014 +0200
Ensure that systemd units to into lib, not lib64
http://hydra.nixos.org/build/10170940
commit 89f923281335f695d4199e1fafaaeeb1729ba2d3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 7 12:00:23 2014 +0200
Update release notes
commit 84d6936371037559704337614c65007a8e61b5e1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 7 11:18:54 2014 +0200
Install systemd units
commit 8e5fbf4d730b9fcf39eddf5539a206cf19d2cdce
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 22:52:14 2014 +0200
Show position info in attribute selection errors
commit 4c5faad99408cdfc35a8b0923d1efdf288fd9990
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 22:43:52 2014 +0200
Show position info in Boolean operations
commit bd9b1d97b42f307c8b595bb2de9b15bec1405b23
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 22:19:33 2014 +0200
Show position info in string concatenation / addition errors
commit 8160f794e79a4a2a5269080b408d69fc93d7a305
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 21:53:47 2014 +0200
derivation: Don't require certain function arguments
Turns out that in Nixpkgs, derivation is actually called without a
‘name’ argument in some places :-(
commit a5fe73094016973a50741db0c5d51ca96c14147b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 21:14:11 2014 +0200
forceString: Show position info
commit 27b44b8cf7072b09a1929ee44ba784b1c8d5211a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 19:11:40 2014 +0200
forceAttrs: Show position info
commit 96b695ccab4a4c8c4ef7f14ac261df43dcc00743
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 19:05:36 2014 +0200
forceList: Show position info
commit b62d36963c45ccaebb328fceaf0bb40f9c02a14b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 18:58:15 2014 +0200
forceInt: Show position info
commit c28de6d96e7bfea834a44deac5217d4696fa8d86
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 18:51:01 2014 +0200
Pass position information to primop calls
For example:
error: `tail' called on an empty list, at
/home/eelco/Dev/nixpkgs/pkgs/applications/misc/hello/ex-2/default.nix:13:7
commit 8b31ffd10de44871a3912184fedbeca57d8cf60f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 17:58:23 2014 +0200
Remove unnecessary quotes around file names
commit b72c8d2e5b5bbdc218f7c00694027cdd75b6a584
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 17:53:52 2014 +0200
Include position info in function application
This allows error messages like:
error: the anonymous function at `/etc/nixos/configuration.nix:1:1'
called without required argument `foo', at
`/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/lib/modules.nix:77:59'
commit 3f8e1f56825f3ec2a9d99715609e362fe5e5a218
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 14:51:07 2014 +0200
Update release notes
commit 1f19fdbd45d902a48fd8bacb25ef1a88020a0cc7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 4 13:49:53 2014 +0200
Document that we require a C++11 compiler
commit ae6b631dc48f4b923a6ed17b8d6e59524c4ea883
Author: Danny Wilson <danny@decube.net>
Date: Thu Apr 3 16:59:25 2014 +0200
Fix compile errors on Illumos
commit daa16cca11304a0e91a188176959e2af28be1f57
Merge: f0de863 7191a73
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 3 17:37:14 2014 +0200
Sync with make-rules repo
commit 7191a7394a3091ed2856508674f84f3a87eda5a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 3 17:35:16 2014 +0200
Support Illumos
From https://github.com/NixOS/nix/pull/236
commit f0de86357c18e18eccd814c8bea3bfdaf10f75f5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 3 15:24:02 2014 +0200
Tweak error message
commit e7720aa10a1da63bb15a4587837d649268944943
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Apr 2 23:41:11 2014 +0200
Make sure /dev/pts/ptmx is world-writable
While running Python 3’s test suite, we noticed that on some systems
/dev/pts/ptmx is created with permissions 0 (that’s the case with my
Nixpkgs-originating 3.0.43 kernel, but someone with a Debian-originating
3.10-3 reported not having this problem.)
There’s still the problem that people without
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y are screwed (as noted in build.cc),
but I don’t see how we could work around it.
commit ac6ceea7641d6c19c71079e22b03b4c1519c0c94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 1 17:04:38 2014 +0200
Fix potential segfault
The newEnv variable was accessed (via the dynamicEnv) pointer after it
had gone out of scope.
Fixes #234.
commit 034b6f60626be014d00f68e02d8614ddf7ba44a0
Author: Ricardo M. Correia <rcorreia@wizy.org>
Date: Tue Mar 11 22:16:00 2014 +0100
nix-collect-garbage: Add --delete-older-than option
commit 7ef7597f71b282265a9f79afe4608cd3b1bc4127
Author: Ricardo M. Correia <rcorreia@wizy.org>
Date: Tue Mar 11 21:47:21 2014 +0100
nix-env: Add support for --delete-generations 15d
It will delete all generations older than the specified number of days.
commit 59c90196850b6ac8c110e54c7f03d6417ed9bf61
Author: Maxim Ivanov <ivanov.maxim@gmail.com>
Date: Sat Mar 29 11:43:11 2014 +0000
Fix nix-shell for derivation with multiple outputs
If derivation declares multiple outputs and first (default) output
if not "out", then "nix-instantiate" calls return path with output
names appended after "!". Than suffix must be stripped before
ant path checks are done.
commit 1c2550a2ae826c422cf6d34f1c5c3e687474929d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Mar 30 00:49:23 2014 +0100
boost::shared_ptr -> std::shared_ptr
commit 9becaa041f4a597dc085e58ebe8f66a4f95d018e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Mar 29 22:20:33 2014 +0100
Drop pointless #include
commit acb8facbbc3ae0795987bd03a3dc2c17217d6172
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Mar 29 22:14:11 2014 +0100
Fix potential segfault in waitForInput()
Since the addition of build-max-log-size, a call to
handleChildOutput() can result in cancellation of a goal. This
invalidated the "j" iterator in the waitForInput() loop, even though
it was still used afterwards. Likewise for the maxSilentTime
handling.
Probably fixes #231. At least it gets rid of the valgrind warnings.
commit 90dc50b07c3939dda44fde79f696f64bf8f2f4d7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Mar 29 20:20:14 2014 +0100
restoreSIGPIPE(): Fill in sa_mask
Issue #231.
commit 49009573bc2eacd823d57433daf1f59dfe415065
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 28 16:59:26 2014 +0100
Don't interpret strings as format strings
Ludo reported this error:
unexpected Nix daemon error: boost::too_few_args: format-string refered to more arguments than were passed
coming from this line:
printMsg(lvlError, run.program + ": " + string(err, 0, p));
The problem here is that the string ends up implicitly converted to a
Boost format() object, so % characters are treated specially. I
always assumed (wrongly) that strings are converted to a format object
that outputs the string as-is.
Since this assumption appears in several places that may be hard to
grep for, I've added some C++ type hackery to ensures that the right
thing happens. So you don't have to worry about % in statements like
printMsg(lvlError, "foo: " + s);
or
throw Error("foo: " + s);
commit 24cb65efc3c34e24fc653779a4d42cf4f31c6737
Author: Ludovic Courtès <ludo@gnu.org>
Date: Fri Mar 21 13:54:53 2014 +0100
Make /dev/kvm optional
The daemon now creates /dev deterministically (thanks!). However, it
expects /dev/kvm to be present.
The patch below restricts that requirement (1) to Linux-based systems,
and (2) to systems where /dev/kvm already exists.
I’m not sure about the way to handle (2). We could special-case
/dev/kvm and create it (instead of bind-mounting it) in the chroot, so
it’s always available; however, it wouldn’t help much since most likely,
if /dev/kvm missing, then KVM support is missing.
commit 3fc056927c962ec9778e94528f2f9ae316afca4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 18 23:23:55 2014 +0100
Fix tabs
commit 51800e06dec91282b81fc41e56d1e9325849d2c2
Author: Ludovic Courtès <ludo@gnu.org>
Date: Tue Mar 18 23:17:14 2014 +0100
Allow recovery from isValidPath RPCs with an invalid path
Currently, clients cannot recover from an isValidPath RPC with an
invalid path parameter because the daemon closes the connection when
that happens.
More precisely:
1. in performOp, wopIsValidPath case, ‘readStorePath’ raises an
‘Error’ exception;
2. that exception is caught by the handler in ‘processConnection’;
3. the handler determines errorAllowed == false, and thus exits after
sending the message.
This last part is fixed by calling ‘startWork’ early on, as in the patch
below.
The same reasoning could be applied to all the RPCs that take one or
more store paths as inputs, but isValidPath is, by definition, likely to
be passed invalid paths in the first place, so it’s important for this
one to allow recovery.
commit f93e97517e449cb1b3c7bdf8076812276b4cb2cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 17 17:35:11 2014 +0100
Fix -j and other flags when using the daemon
commit 77e2cc6c8ed1206c029218d3bc22575202a73b4c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 17 17:33:13 2014 +0100
nix-build: Fix --cores flag
commit fb8d8f5428ec37a40656d64d9190fdc32b0c769b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 12 14:42:25 2014 +0100
Remove unnecessary null pointer checks
Fixes #225.
commit 006f24c7faf146d97742c1d7cc270ec107fa2e56
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 12 14:25:48 2014 +0100
Document nix-env -q --json
commit d435e46daa98ffd268b6bb7221b0f3841f3a63ef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 12 14:15:37 2014 +0100
Generate release notes again
commit e9934bb5ada1a974744c61479ca50c75c82e5836
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 12 13:58:06 2014 +0100
Update release notes for 1.7
commit 25386e5edc2d65c84ce824d2c964a5c029f4c30d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 11 17:31:13 2014 +0100
Fix passing meta attribute to buildenv.nix
Since the meta attributes were not sorted, attribute lookup could
fail, leading to package priorities and active flags not working
correctly.
Broken since 0f24400d90daf65cf20142a662f8245008437e2c.
commit 92a848f674f371d675f461d2a7a6810d492dd4ea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 11 13:16:21 2014 +0100
Fix typos
commit 2f2a20ed18535ba819225fabe9a4cf2f37d2edb1
Author: Shea Levy <shea@shealevy.com>
Date: Mon Mar 10 07:09:07 2014 -0400
Document null dynamic attrs
commit 049a379ec6ca755bcc077fd0e8da186ff76b8679
Author: Shea Levy <shea@shealevy.com>
Date: Sun Mar 9 14:41:02 2014 -0400
The expr of AttrNames/DynamicAttrDefs is always an ExprConcatStrings
commit 908e9ce259710037ae9824a3246143e46e27e867
Author: Shea Levy <shea@shealevy.com>
Date: Sun Mar 9 14:24:47 2014 -0400
If a dynamic attribute name evaluates to null, remove it from the set
commit 2caab8166045135bb78fd93dc9778a4d25d9499f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 5 16:18:13 2014 +0100
Revert "Make ifs and asserts tail-recursive"
This reverts commit 273322c7732093a354e86df82cf75d6604b8bce8.
commit f7e077ad275a0f405b750e2b19fedbeadc6f8a15
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Mar 5 11:11:24 2014 +0100
Install missing Boost headers
http://hydra.nixos.org/build/9328376
commit d6a45f6bdbf7c71eda9e4ab1ab78b373be5422b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 3 15:29:58 2014 +0100
Don't set an absolute soname
commit a3767628481eefc956eb9d9d70eda62930549205
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 3 15:19:04 2014 +0100
Add support for making relocatable packages using $ORIGIN
commit 3a86888fd7da44782233adf9fde34b6605e015bd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 28 14:01:26 2014 +0100
Typo
commit 4eac3b2471063a3726790368665df963e809fc4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 28 12:13:20 2014 +0100
Add a variable GLOBAL_CXXFLAGS_PCH for use by precompiled headers
You don't want to use GLOBAL_CXXFLAGS for passing flags like
"-include-pch" (clang), because that means you cannot use
GLOBAL_CXXFLAGS when generating the PCH.
commit 4e7e498ff95b553227a26fc20549bd69995a0b08
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 28 12:01:42 2014 +0100
Add variable GLOBAL_COMMON_DEPS
This is a list of dependencies on which all C/C++ object files depend.
Primarily useful for global precompiled headers.
commit 1017bd68ea9264afe8b9d672653ca8c6271611d5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 27 23:25:03 2014 +0100
Set up a private /dev/pts in the chroot
commit 3fd01b171a74d28dc8e48b9ee5f2d0e9a3915fb8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 27 23:17:53 2014 +0100
Set up a minimal /dev in chroots
Not bind-mounting the /dev from the host also solves the problem with
/dev/shm being a symlink to something not in the chroot.
commit c9f6232304558cbdafb14e13e316e539f5bed72e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 27 21:47:59 2014 +0100
Correctly detect infinite recursion in function application
If we're evaluating some application ‘v = f x’, we can't store ‘f’
temporarily in ‘v’, because if ‘f x’ refers to ‘v’, it will get ‘f’
rather than an infinite recursion error.
Unfortunately, this breaks the tail call optimisation introduced in
c897bac54954373f63511702731fe2cb23c0c98e.
Fixes #217.
commit 29cde917fe6b8f2e669c8bf10b38f640045c83b8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 27 13:31:33 2014 +0100
Fix deadlock in SubstitutionGoal
We were relying on SubstitutionGoal's destructor releasing the lock,
but if a goal is a top-level goal, the destructor won't run in a
timely manner since its reference count won't drop to zero. So
release it explicitly.
Fixes #178.
commit 7c7707638a446f91893cdc21b9e0638d2ebd42d3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 22:41:29 2014 +0100
Doh
commit 788097382743dccc2e6de02c0b0342c9bb693b37
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 19:12:31 2014 +0100
Test trace and addErrorContext
commit 5ad263c26b5b9cc0ba067050e4a09b2491c9d40c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 19:08:44 2014 +0100
Test some more primops
commit 3d0a9ec8258fc2a6ec6a73e249aa38fbd03207d8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:59:01 2014 +0100
Test executables in NARs
commit 91f25f0510db32d627bf5ed7d4067b90e37f2f86
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:55:18 2014 +0100
And another one
commit 432328cc550cea6b6ab23b3eeca69dc2307c5c74
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:49:36 2014 +0100
Remove another unused function
commit 509993e5983e333f5a50ee75d71c742590d304fb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:48:32 2014 +0100
Remove unused function
commit d58ceae022ad887686e55068db7229f931eb96af
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:45:26 2014 +0100
Test nix-env --switch-generation
commit 7bbc68fdff0afe22a517b63f3ca37d9021a5799c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:42:19 2014 +0100
Test nix-env --set
commit a0806389e909203d9c3c1c32a2cc95b50300da59
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:40:08 2014 +0100
Test the -b and -s flags of nix-store -q
commit a9c4a987705b00a6d5e98e0ad7cc44c8bc96ba22
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:33:13 2014 +0100
Test ~/.nix-defexpr
commit 045d3b2ed7aa7678779052a1d0accf53d47988b7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:28:55 2014 +0100
Test nix-store --switch-profile and more daemon actions
commit fac6f8aac0802be4481e7dab53d4875ca8b60ee0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 18:00:46 2014 +0100
Test nix-store -q --roots
commit 84143c4bd80b38a44443e06f1c8c33dc212ccef7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 17:58:53 2014 +0100
Test nix-store -l
commit 19437785ebf515aa0ac63541566d28267f63a333
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 17:53:51 2014 +0100
Test nix-store --optimise
commit fdff3a7eae8a4d2f0e6eae992d3c3cf64e1a3ad3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 17:47:54 2014 +0100
Add a test for nix-store --dump-db / --load-db
commit 506d86394d463d862b212f2f203bdded98a8efab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 17:23:23 2014 +0100
Installer: Handle Darwin
"cp -r" doesn't copy symlinks properly on Darwin, but "cp -R" does.
Fixes #215.
commit 6b9cd59a41f059bed393f512bf495be09c1d22f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 16:32:46 2014 +0100
nix-store -r: Respect --add-root for non-derivations
Fixes #68.
Fixes #117.
commit 7f74513b4e5b632b4099702cf4fe2800de7b67f9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 16:07:43 2014 +0100
Also provide an option for setting the curl connection timeout
commit 00d761016a33ff9aa0ea162402d0d846dd1927cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 15:58:37 2014 +0100
Respect $NIX_CONNECT_TIMEOUT properly
We were 1) using CURLOPT_TIMEOUT instead of CURLOPT_CONNECTTIMEOUT; 2)
not passing it to the curl child process.
Issue #93.
commit d761009e3ccdcdd7b150b26f7f35eecf8f2fb59c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 15:24:48 2014 +0100
Add ~/.nix-profile/sbin to $PATH
Fixes #112.
commit f14ef84a51e211b3924f59333d98d838ab500740
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 15:21:56 2014 +0100
Warn about missing -I paths
Fixes #121. Note that we don't warn about missing $NIX_PATH entries
because it's intended that some may be missing (cf. the default
$NIX_PATH on NixOS, which includes paths like /etc/nixos/nixpkgs for
backward compatibility).
commit 733214144a7a910001c1c82683db780853bac9b1
Author: Shea Levy <shea@shealevy.com>
Date: Wed Jan 22 00:33:18 2014 +0000
Document dynamic attributes
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 42eb4afd7a38f3024a66da037d9f39859f7bd8f3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 13:58:46 2014 +0100
Simplify getting use-ssh-substituter from untrusted users
commit bf4a577a586d99b7bc4298ae662e312eb73815e2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 13:48:23 2014 +0100
Fix broken patch
commit 8a02fdc38ef5d02115d152a2d3e79ebd8a462e3e
Author: Ian-Woo Kim <ianwookim@gmail.com>
Date: Fri Feb 14 14:44:01 2014 -0800
use USER environmental variable if getting user id by getpwuid is failed in perl scripts: download-from-binary-cache.pl and nix-channel
commit dcaea042fc895667bf6f529471ff9f449629774c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 26 13:40:08 2014 +0100
Only start download-via-ssh if it's enabled
commit df5de9dfd72f9dc3d57157d0496443732a517491
Author: Shea Levy <shea@shealevy.com>
Date: Wed Feb 19 07:05:15 2014 -0500
Add use-ssh-substituter setting.
It defaults to false and can be overridden by RemoteStore.
Untested currently, just quickly put this together
commit 36b90e72d7e09b983acfa08f9016e8b3ece5199d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 17:08:01 2014 +0100
nix-shell: Add --packages flag
This allows you to easily set up a build environment containing the
specified packages from Nixpkgs. For example:
$ nix-shell -p sqlite xorg.libX11 hello
will start a shell in which the given packages are present.
commit a897b583733aaf3ee7aa0efe495f9ea046567555
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 16:46:33 2014 +0100
nix-instantiate: Allow --dry-run as a synonym for --readonly-mode
--dry-run is more consistent with nix-env and nix-store.
commit e1cf40fa9537162efe0dc19dcea9ae7d043fde66
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 16:34:24 2014 +0100
nix-instantiate: Rename --eval-only to --eval, --parse-only to --parse
commit c31836008e45460513188a3fbeda4416f9153a05
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 16:30:19 2014 +0100
nix-instantiate: Add a flag --expr / -E to read expressions from the command line
This is basically a shortcut for ‘echo 'expr...' | nix-instantiate -’.
Also supported by nix-build and nix-shell.
commit e707a8a526698de2237e6ac89e2f1ce6dbc63269
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 15:32:19 2014 +0100
Move manpages around
commit 73f74ebba09f8bceed46a11f7348b4c398bde6f3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 19 15:01:04 2014 +0100
nix-shell: Don't leave a temporary directory in /tmp behind
commit a7e70518b8d0cb9a72cb3733b563b49caf922966
Author: Shea Levy <shea@shealevy.com>
Date: Sat Feb 15 11:02:47 2014 -0500
lexer-tab.o and parser-tab.o require each other's headers
commit 70a558e20250f7c865fd36c1c678192fe29d088f
Author: Shea Levy <shea@shealevy.com>
Date: Sat Feb 15 10:56:11 2014 -0500
Update ignores
commit 7bef965d6f191efb9c671f49fd187f4214db6120
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 18 13:35:35 2014 +0100
Make it work on GNU Make > 3.81 again
commit 79f699edca26c035a8bcd68c7d5a13b4fbcbf3be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 18 12:57:32 2014 +0100
More GNU Make 3.81 compatibility
commit 8129cf33d959db44344fbffc34a981cc27b29bfb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 18 10:46:30 2014 +0100
Slight simplification
commit 1aa19b24b27c6bbf4d46cdd7f6d06b534dd67c19
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 18 01:01:14 2014 +0100
Add a flag ‘--check’ to verify build determinism
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.
commit 4ec626a286afd4a9596357fc6d36aaf8bc07442a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 23:24:12 2014 +0100
Test nix-store --verify-path and --repair-path
commit 99f14c25842a897a1a352a3b3be7c0362cb0313f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 23:10:40 2014 +0100
Don't build on Debian 6.0
Its linker is too old to understand --no-copy-dt-needed-entries.
http://hydra.nixos.org/build/9113883
commit b6def5b542d35eaed5e8cbc6eaa9bbf644262686
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 23:09:48 2014 +0100
Make --repair work on Darwin
Mac OS X doesn't allow renaming a read-only directory.
http://hydra.nixos.org/build/9113895
commit dfbcb7c403363c21c1eab8082ffaade29bba9036
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 23:04:52 2014 +0100
Refactoring
commit 71adb090f05532b2116e952b617048abd0a6081d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 22:58:21 2014 +0100
When using a build hook, only copy missing paths
commit 69fe6c58faa91c3b8f844e1aafca26354ea14425
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 22:25:15 2014 +0100
Move some code around
In particular, do replacing of valid paths during repair later. This
prevents us from replacing a valid path after the build fails.
commit 1da6ae4f9904f7e09166085a2cfed8887e0e86d4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 14:48:50 2014 +0100
nix-store --gc --max-freed: Support a unit specifier
E.g. "--max-freed 10G" means "free ten gigabytes".
commit 00d30496ca32145f55891364ddcf3d4af87f05d5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 14:15:56 2014 +0100
Heuristically detect if a build may have failed due to a full disk
This will allow Hydra to detect that a build should not be marked as
"permanently failed", allowing it to be retried later.
commit e81d38c02b267eea93a91de3e8a00b185355d681
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 13:34:24 2014 +0100
nix-shell: Execute shellHook if it exists
Since normal builds don't execute shellHook, this allows nix-shell
specific customisation. Suggested by Domen.
commit 832377bbd6ccd43895ac346131cafe4901f7996b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 17 12:22:50 2014 +0100
Add a test for repairing paths
commit 581a160c11dd3de66d9cd1a6e01c0641909546ef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 14 20:12:04 2014 +0100
Add a function for looking up programs in $PATH
commit a9d99ab55fdaa1c9dde87eaa8d289ecdb8cf9068
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 14 12:31:10 2014 +0100
download-via-ssh: Use readStorePath
commit 4db572062ccf318a6524abb8da046592a570eb94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 14 12:20:12 2014 +0100
download-via-ssh: Show where we're downloading from
commit dba33d4018c07699b59f024ca61442c896579c64
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 14 11:48:42 2014 +0100
Minor style fixes
commit 61fd494d760d667649fa48665f9aa75ba88a1eb6
Merge: f9fc6ac f67f527
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 14 11:42:47 2014 +0100
Merge remote-tracking branch 'shlevy/ssh-substituter'
commit f67f52751f21b2fe70b5a7352053f130eb6f0f59
Author: Shea Levy <shea@shealevy.com>
Date: Wed Feb 12 07:33:07 2014 -0500
Indendation fix
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 62eb9eb76ddacc1aa97400bef9f25b6ca4c50c8c
Author: Shea Levy <shea@shealevy.com>
Date: Wed Feb 12 07:27:45 2014 -0500
Remove relic of old code
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 7438f0bc2bc4b92bddf7159744ab2923e34b7457
Author: Shea Levy <shea@shealevy.com>
Date: Wed Feb 12 07:26:35 2014 -0500
error messages start in lowercase
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 2246aa77d291e07141f6a508e46730e2c28e1d84
Author: Shea Levy <shea@shealevy.com>
Date: Wed Feb 12 07:22:36 2014 -0500
Remove using declarations from download-via-ssh
Signed-off-by: Shea Levy <shea@shealevy.com>
commit f9fc6acbf4eadd2d9018d3da14394fdfbddde5f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 12 10:53:22 2014 +0100
Document current meaning of preferLocalBuild
Closes #208.
commit a35c6eb4a2209716fe1d40cebad2b3adb5d05e0f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 11 14:15:57 2014 +0100
Support setting CFLAGS and CXXFLAGS for libraries/programs
commit 1f841c9d50a100a3d40fec6260d36ec9ee309af3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 10 17:42:36 2014 +0100
Force use of Bash
"echo -n" doesn't work with /bin/sh on Darwin.
commit 57386c9baee78e50eb0c4a901ca9e1c147dc9777
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 10 16:35:59 2014 +0100
Binary tarball: Automatically create /nix
The tarball can now be unpacked anywhere. The installation script
uses "sudo" to create /nix if it doesn't exist. It also fetches the
nixpkgs-unstable channel.
commit c89d6b9b63b629ff936a56855be5689523910c58
Author: Shea Levy <shea@shealevy.com>
Date: Mon Feb 10 07:43:13 2014 -0500
nix-store --serve: Use a versioned protocol
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 38c3beac1a8ac9ddf4fdbbcafd400dabcf195076
Author: Shea Levy <shea@shealevy.com>
Date: Mon Feb 10 06:52:48 2014 -0500
Move StoreApi::serve into opServe
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 16146031659eae475cd5933b8553b13d725ca436
Author: Shea Levy <shea@shealevy.com>
Date: Mon Feb 10 06:49:37 2014 -0500
Pass in params by const ref
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 78d979567fa304fa4445fe7403932d9d97183ebd
Author: Shea Levy <shea@shealevy.com>
Date: Mon Feb 10 06:43:29 2014 -0500
Clarify comment
Signed-off-by: Shea Levy <shea@shealevy.com>
commit c5839752b9d5099d4b5e7bcfc853581673e779f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 10 10:50:29 2014 +0100
Binary tarball: Automatically fetch the Nixpkgs channel
commit b632153ebd1bf8d773872eb36f9ad335d2c89fab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 10 10:25:13 2014 +0100
nix-shell: Use shell.nix as the default expression if it exists
commit 64e23d0a38f316a07cef0960d0ed74a450214283
Author: Shea Levy <shea@shealevy.com>
Date: Sat Feb 8 00:05:46 2014 -0500
Add download-via-ssh substituter
This substituter connects to a remote host, runs nix-store --serve
there, and then forwards substituter commands on to the remote host and
sends their results to the calling program. The ssh-substituter-hosts
option can be specified as a list of hosts to try.
This is an initial implementation and, while it works, it has some
limitations:
* Only the first host is used
* There is no caching of query results (all queries are sent to the
remote machine)
* There is no informative output (such as progress bars)
* Some failure modes may cause unhelpful error messages
* There is no concept of trusted-ssh-substituter-hosts
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 5671188eb2822b7392a6affa5ebe2f1eb8f521a0
Author: Shea Levy <shea@shealevy.com>
Date: Fri Feb 7 16:56:00 2014 -0500
nix-store --serve: Flush out after every loop
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 73874629ef59dc3b237a2c316179e722f971bb5e
Author: Shea Levy <shea@shealevy.com>
Date: Fri Feb 7 16:17:52 2014 -0500
nix-store --serve: Use dump instead of export
Also remove signing support
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 188f96500bc16891b22c684ad96122635667a8ff
Author: Shea Levy <shea@shealevy.com>
Date: Fri Feb 7 15:29:32 2014 -0500
nix-store --serve: Don't fail if asked for info about non-valid path
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 94884475947ca8c44dda51d83f3c1fbfeff5ccc0
Author: Shea Levy <shea@shealevy.com>
Date: Fri Feb 7 14:07:31 2014 -0500
nix-store --serve: Don't loop forever
nix-store --export takes a tmproot, which can only release by exiting.
Substituters don't currently work in a way that could take advantage of
the looping, anyway.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 3a38d0f3565a02c034c29b264aceb0eb78dac005
Author: Shea Levy <shea@shealevy.com>
Date: Thu Feb 6 11:52:03 2014 -0500
Add the nix-store --serve command
This is essentially the substituter API operating on the local store,
which will be used by the ssh substituter. It runs in a loop rather than
just taking one command so that in the future nix will be able to keep
one connection open for multiple instances of the substituter.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 84a8b5e9af2df4ed7f7860a6768daf83f72724ca
Author: Shea Levy <shea@shealevy.com>
Date: Tue Feb 4 10:37:10 2014 -0500
nix-instantiate --eval-only --read-write-mode: Don't depend on ordering
Signed-off-by: Shea Levy <shea@shealevy.com>
commit e4058fab64d82ddb7723142c7c595e80eeba0f3e
Author: Shea Levy <shea@shealevy.com>
Date: Tue Feb 4 10:35:30 2014 -0500
Rename --no-readonly-mode --read-write-mode
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 0c3e8a616e8e243ee45c78491fe86f50230d82b9
Author: Shea Levy <shea@shealevy.com>
Date: Tue Feb 4 09:17:59 2014 -0500
nix-instantiate: Add a --no-readonly-mode flag
This allows running nix-instantiate --eval-only without performing the
evaluation in readonly mode, letting features like import from
derivation and automatic substitution of builtins.storePath paths work.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 0432bc52ea21bb7b60477965054362f7414c569f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 7 17:34:39 2014 +0100
Fix the RPM build
commit 7fab23e237b36a7ca2df6f34eb5febe4c851db42
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 7 17:15:00 2014 +0100
Install header files
commit 764d90597a2ef9f5f5a5041993b728e020fb08b0
Merge: 2a469ad a210c99
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 7 16:27:34 2014 +0100
Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097'
commit a210c995cdd9279ed4137ec5d2e4cc928cb36097
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 7 15:06:21 2014 +0100
Support DESTDIR
commit 97f8e9bc76b08ac6d63c6419490f8fcc9670a58b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 6 19:06:08 2014 +0100
Remove dead code
commit 2a469ad31da7cac5c4ecab6838c364956319821f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 6 14:21:14 2014 +0100
Set a maintainer address
Issue #202.
commit 1f94ec3924f132ae6d92b29631a59f9818ba4e31
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 6 13:54:44 2014 +0100
Clean up a test warning
commit 20d059892819d2f06f4da8c1150c91e16df1f8cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 6 13:51:57 2014 +0100
Drop dependency on ‘expr’
http://hydra.nixos.org/build/8715639
Not sure why this causes a failure now.
commit 4161fce472a8875427e73776d0e8665ca49c1835
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 6 10:59:58 2014 +0100
Create the target directory of libraries and programs
commit 80b691316c4b15e69c63c285b8ed6cc72fb95e93
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 4 11:08:41 2014 +0100
Fix version in nix.spec
http://hydra.nixos.org/build/8715502
commit 4ee6001f95908578a1693c0fbf7b7fdc309b86c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 4 11:02:49 2014 +0100
GNU Make 3.81 compatibility
3.81 doesn't understand the ‘define foo =’ syntax, which was added in
3.82. So use ‘define foo’ instead.
commit 0da82efa5d67ab1eb8b8cc066704d7f863451d5b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 4 11:02:49 2014 +0100
GNU Make 3.81 compatibility
3.81 doesn't understand the ‘define foo =’ syntax, which was added in
3.82. So use ‘define foo’ instead.
commit 143224f7cd6f6667047a1683c1ede4e1f7816843
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 4 10:09:45 2014 +0100
Add nix.spec to the distribution
commit d210cdc4355bb48786b474e41a8ed7f1a152626f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 3 22:36:07 2014 +0100
Fix assertion failure in ‘nix-store --load-db’
Namely:
nix-store: derivations.cc:242: nix::Hash nix::hashDerivationModulo(nix::StoreAPI&, nix::Derivation): Assertion `store.isValidPath(i->first)' failed.
This happened because of the derivation output correctness check being
applied before the references of a derivation are valid.
commit 73a775f3b757d105a9987c5e469d6a3e8f32024f
Merge: d6582c0 8468806
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 3 19:57:02 2014 +0100
Merge commit '8468806552d6730abec6431c42b5b0e897c0222c'
commit 8468806552d6730abec6431c42b5b0e897c0222c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Feb 3 17:05:55 2014 +0100
Add a basic README
commit d6582c04c169d7ac32820d855de92ca4e4969de3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 16:57:38 2014 +0100
Give a friendly error message if the DB directory is not writable
Previously we would say "error: setting synchronous mode: unable to
open database file" which isn't very helpful.
commit 2f9bb5c7e744ddca3fbe5576e520a3e80c106c55
Merge: c5ba081 6dca720
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 16:41:52 2014 +0100
Merge branch 'make'
commit 6dca72006aa9b1cf2f226bb5b538e744fcab976f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 16:30:24 2014 +0100
Only run "git ls-files" when doing "make check"
commit 2a97f7b039be4cd290076707e1b02d04d3b257b6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 16:08:59 2014 +0100
Fix logging test
commit 965218a62a195632fe754307e09d4d4abd286c82
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 16:08:51 2014 +0100
Remove obsolete file
commit b6465ae5d3efb057b82f31e10112cc359b9afdfd
Merge: 762ef46 28dc488
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 15:37:59 2014 +0100
Merge commit '28dc4883356a50f2805a3e3c819a541c44a4ff0a' into make
commit 762ef464f843a0fe50e25ba07d11296b1540080e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 15:37:50 2014 +0100
Fix the nix-profile test
commit 28dc4883356a50f2805a3e3c819a541c44a4ff0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 15:33:27 2014 +0100
installcheck: Don't depend on install
This is a hack to prevent "installcheck" from clobbering files fixed
up by Nixpkgs' fixupPhase.
commit 844d83352c23db4a3131ac2b11b9ed2af03cdfd6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 15:18:48 2014 +0100
More "make dist" fixes
commit 74ca70da3a6d2f110a9dccf15c46422b1b078e3f
Merge: 6ef32bd 1eff3ad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 14:38:28 2014 +0100
Add 'mk/' from commit '1eff3ad37fdb9dcf9f8528fdacea0ebf0e79d545'
git-subtree-dir: mk
git-subtree-mainline: 6ef32bddc1f10034322966b3a5b85af7b9cdc4d8
git-subtree-split: 1eff3ad37fdb9dcf9f8528fdacea0ebf0e79d545
commit 6ef32bddc1f10034322966b3a5b85af7b9cdc4d8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 14:28:31 2014 +0100
Fix "make dist"
commit 1eff3ad37fdb9dcf9f8528fdacea0ebf0e79d545
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 14:36:44 2014 +0100
Add missing file
commit 6f8aa145d43d0453d74e70d1d33cfa6e21fddf89
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 14:22:08 2014 +0100
Improve "make dist"
commit 0c6d62cf27b3b22fa60bddad16ea8e8d062e4a99
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 12:26:38 2014 +0100
Remove Automakefiles
commit 16e7d692092449263880ee795ec419cecbe22d24
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 12:23:14 2014 +0100
Update Makefile variable names
commit ec1738589a3aa1dd59e476de09ae2721d51b3e6e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 12:20:06 2014 +0100
Make variable names more regular
commit 35107038f7c726f5ef8d7ab014ad45c73970e65d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 11:47:34 2014 +0100
Support adding "make help" text
commit f324b49ea19e606f84b89ecb499f0e961646cd50
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 11:31:25 2014 +0100
Change dependency file names from foo.dep to .foo.o.dep
commit ac8c2ef1aa30c50b568883d2051335a66437694f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Feb 1 11:30:21 2014 +0100
Build/install manual
commit 4271927c5be2c5b87ca83682d1f2bd71d5ce4a66
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jan 31 15:33:12 2014 +0100
Add support for installing man-pages
commit e0234dfddc8343a6bca80ba6e6e93d083ce51a85
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 30 12:11:06 2014 +0100
Rename Makefile -> local.mk
commit 4a2ec9c6598aafb98e5495c2cf3a24e166668790
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 30 12:08:26 2014 +0100
Install nix-worker symlink
commit c5ba08133370f98de722c978bda3b446721985de
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 23 13:33:00 2014 +0100
nix-shell: Add --impure flag
This is currently the default, but I might change that to --pure in
the future.
commit 79dee4283de798da8728dd8504cdc4ab5c9b9fe0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 23 13:31:29 2014 +0100
nix-shell: Preserve the TZ variable of the user
commit 7fdee6e13695a1e85b0b3f476a33a9e934af3f0b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 23 13:27:22 2014 +0100
nix-build: Refactor
commit 5311b2b25084e53ff132df96d66ab06efead0853
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 23 10:49:53 2014 +0100
Clang doesn't know the "-z defs" flag
commit 94f9c14d526abfe9b18045fc638e8f5a3a670210
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 18:29:55 2014 +0100
Fix some clang warnings
commit a26307b28192e61bc06b5f5ef42f0fb51858d822
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 17:39:19 2014 +0100
Fix build
commit 625ffd441d8c98331ee357f4900fa50dd9be05bc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 16:38:03 2014 +0100
Ugly hack to fix building with clang
commit 68cde53c47e5447d2c91f5fe4521b5209af7b73e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 15:34:04 2014 +0100
Fix building against Bison 3.0.2
commit 81628a6ccc6ce496735b22492bee15c9ad46f072
Merge: b1db599 5ef8508
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 15:30:01 2014 +0100
Merge branch 'master' into make
Conflicts:
src/libexpr/eval.cc
commit 5ef8508a92997dbd7f8aa501b64fd283fb1c7bb8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 15:11:57 2014 +0100
Remove unused type
commit c8fff6a77fb63dc8043a7a468feea37b41bfec06
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 21 15:09:59 2014 +0100
Fix evaluation
commit 0e2ca268187e0a1c17f2ba58ce53f59682df2fc4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 20 14:23:07 2014 +0100
nix.spec: Remove "make check" since it's a no-op
commit 0f2f44bb0ff8aafc160d8b236201ce510ca0b876
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 20 14:22:59 2014 +0100
Build Fedora 20 RPMs
commit bf0ad8aabca67b4faabe3a1ac3c57884ae9924f4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 15 14:34:49 2014 +0100
nix-profile.sh: Add the Nixpkgs channel to $NIX_PATH
commit f5e5793cd2f32bc0f0d072b38cda742830f40f25
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jan 6 13:53:57 2014 -0500
Bare dynamic attrs: Match interpolation semantics
Signed-off-by: Shea Levy <shea@shealevy.com>
commit f9913f4422d1317af3c6b5aff37ad18b78083eb5
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jan 6 10:27:26 2014 -0500
Allow "bare" dynamic attrs
Now, in addition to a."${b}".c, you can write a.${b}.c (applicable
wherever dynamic attributes are valid).
Signed-off-by: Shea Levy <shea@shealevy.com>
commit e640d671443e291b3ca5cc0575919d6fcf14a157
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 13 13:50:12 2014 +0100
Document nulls
commit f1357059a441a588b9a2b78d3500d7068238b478
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 13 13:46:44 2014 +0100
nix-shell: Don't set NIX_INDENT_MAKE
It generally is not useful in interactive environments (and messes up
some non-ANSI-compliant terminals).
commit ea59f39326c8e9dc42dfed4bcbf597fbce58797c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 13 13:42:29 2014 +0100
nix-shell: Set $IN_NIX_SHELL before evaluating
commit ca73c0102fc68ece171d7cc062e464b4d418d07c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jan 10 22:31:38 2014 +0100
Nicer Make output
E.g.
CXX src/nix-log2xml/log2xml.o
CC src/bsdiff-4.3/bsdiff.o
GEN scripts/nix-channel
LD src/libmain/libnixmain.so
commit e991ab942b6ed1bc50a63afafe55ffe5cae8cbad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 22:14:34 2014 +0100
Add support for building shared libraries on Mac OS X
commit b1db599dd05e86f65e73dc40584913e6e78c2bac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 22:10:35 2014 +0100
Generate schema.sql.hh
commit cf918b889b2ff30d1532a62d00c21007d0cb25cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 17:33:55 2014 +0100
Handle systems where "echo -n" doesn't work
commit 70d8e8fdded9e21995fecc3ecc68e14cf4f53be7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 16:57:38 2014 +0100
Declare template_files as a simply expanded variable
commit 814a73227f9571d8fbd831fedced5e87cd9c926b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 16:54:01 2014 +0100
Remove duplicate elements from *_SOURCES
This is useful when you do:
foo_SOURCES := $(wildcard *.cc) foo.cc
where foo.cc is a generated file. In this case, if foo.cc already
exists, you get foo.cc twice in foo_SOURCES, leading to a link error.
commit b4c684e0f9c6890e13f9a5cc90b5e379b3d1f75d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 16:53:47 2014 +0100
Update Makefiles
commit 568b1b0a8a65cb255d6a7a33dfe2c15df3212103
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 16:15:16 2014 +0100
Remove mk subdirectory in preparation for "git subtree"
commit 55c9a40613fefda6622aa9acd22cce4006fd1077
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 9 16:12:02 2014 +0100
Move stuff to top-level
This makes it easier to use with "git subtree".
commit f4013b6189af731af42f99684ed7721076a54a0d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 8 17:56:58 2014 +0100
Fix signed-binary-caches test
commit ea38e39a203a96451b1d0469103b737de5a85105
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 8 17:56:30 2014 +0100
Test whether Nix correctly checks the hash of downloaded NARs
commit 11cb4bfb257f18c906ef1d6f14ed450be8fa49fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 8 17:32:40 2014 +0100
Fix checking of NAR hashes
*headdesk*
*headdesk*
*headdesk*
So since commit 22144afa8d9f8968da351618a1347072a93bd8aa, Nix hasn't
actually checked whether the content of a downloaded NAR matches the
hash specified in the manifest / NAR info file. Urghhh...
commit 0fdf4da0e979f992db75cc17376e455ddc5a96d8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 8 15:23:41 2014 +0100
Support cryptographically signed binary caches
NAR info files in binary caches can now have a cryptographic signature
that Nix will verify before using the corresponding NAR file.
To create a private/public key pair for signing and verifying a binary
cache, do:
$ openssl genrsa -out ./cache-key.sec 2048
$ openssl rsa -in ./cache-key.sec -pubout > ./cache-key.pub
You should also come up with a symbolic name for the key, such as
"cache.example.org-1". This will be used by clients to look up the
public key. (It's a good idea to number keys, in case you ever need
to revoke/replace one.)
To create a binary cache signed with the private key:
$ nix-push --dest /path/to/binary-cache --key ./cache-key.sec --key-name cache.example.org-1
The public key (cache-key.pub) should be distributed to the clients.
They should have a nix.conf should contain something like:
signed-binary-caches = *
binary-cache-public-key-cache.example.org-1 = /path/to/cache-key.pub
If all works well, then if Nix fetches something from the signed
binary cache, you will see a message like:
*** Downloading ‘http://cache.example.org/nar/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’ (signed by ‘cache.example.org-1’) to ‘/nix/store/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’...
On the other hand, if the signature is wrong, you get a message like
NAR info file `http://cache.example.org/7dppcj5sc1nda7l54rjc0g5l1hamj09j.narinfo' has an invalid signature; ignoring
Signatures are implemented as a single line appended to the NAR info
file, which looks like this:
Signature: 1;cache.example.org-1;HQ9Xzyanq9iV...muQ==
Thus the signature has 3 fields: a version (currently "1"), the ID of
key, and the base64-encoded signature of the SHA-256 hash of the
contents of the NAR info file up to but not including the Signature
line.
Issue #75.
commit 405434e084fa994cc957249db7787731e9311fa8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 6 17:38:04 2014 +0100
Revert "nix-shell: Set $IN_NIX_SHELL before evaluation"
This reverts commit 0c1198cf08576f16633b2344dc6513cefb567cfc.
commit 7a61c88dbb517453f73c5b4ede4a4468e38cae32
Merge: 485f474 cd49fe4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 6 15:46:18 2014 +0100
Merge branch 'dynamic-attrs-no-sugar' of github.com:shlevy/nix
commit 485f4740ee3ba4228ba3345873eb530466a8f42d
Author: Domen Kožar <domen@dev.si>
Date: Wed Jan 1 18:10:48 2014 +0100
wording
commit fe23e28f12f5eedf387c974c73813f6de8320b21
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 6 11:34:05 2014 +0100
Disable FreeBSD tests for now
The FreeBSD machines in the build farm are currently unreachable.
commit 4252b5a645138e84fa8916dfc3f8d6af8e74fc28
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 6 11:32:22 2014 +0100
Disable the tail call test
On i686-linux, GCC stubbornly refuses to do tail-call optimisation.
Don't know why.
http://hydra.nixos.org/build/7300170
commit cd49fe4f9b338242e1e404fd4dbb0a3ebc1c3a12
Author: Shea Levy <shea@shealevy.com>
Date: Tue Dec 31 23:56:26 2013 +0000
Don't use any syntactic sugar for dynamic attrs
This doesn't change any functionality but moves some behavior out of the
parser and into the evaluator in order to simplify the code.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 6f3a51809a2603574a16573bd46b95e4ff5233bd
Author: Shea Levy <shea@shealevy.com>
Date: Tue Dec 31 17:57:10 2013 -0500
Fold dynamic binds handling into addAttr
Since addAttr has to iterate through the AttrPath we pass it, it makes
more sense to just iterate through the AttrNames in addAttr instead. As
an added bonus, this allows attrsets where two dynamic attribute paths
have the same static leading part (see added test case for an example
that failed previously).
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 18fefacf7df570444b332a8a0c2dc4f9d98d4344
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 20 23:25:30 2013 -0400
Dynamic attrs
This adds new syntax for attribute names:
* attrs."${name}" => getAttr name attrs
* attrs ? "${name}" => isAttrs attrs && hasAttr attrs name
* attrs."${name}" or def => if attrs ? "${name}" then attrs."${name}" else def
* { "${name}" = value; } => listToAttrs [{ inherit name value; }]
Of course, it's a bit more complicated than that. The attribute chains
can be arbitrarily long and contain combinations of static and dynamic
parts (e.g. attrs."${foo}".bar."${baz}" or qux), which is relatively
straightforward for the getAttrs/hasAttrs cases but is more complex for
the listToAttrs case due to rules about duplicate attribute definitions.
For attribute sets with dynamic attribute names, duplicate static
attributes are detected at parse time while duplicate dynamic attributes
are detected when the attribute set is forced. So, for example, { a =
null; a.b = null; "${"c"}" = true; } will be a parse-time error, while
{ a = {}; "${"a"}".b = null; c = true; } will be an eval-time error
(technically that case could theoretically be detected at parse time,
but the general case would require full evaluation). Moreover, duplicate
dynamic attributes are not allowed even in cases where they would be
with static attributes ({ a.b.d = true; a.b.c = false; } is legal, but {
a."${"b"}".d = true; a."${"b"}".c = false; } is not). This restriction
might be relaxed in the future in cases where the static variant would
not be an error, but it is not obvious that that is desirable.
Finally, recursive attribute sets with dynamic attributes have the
static attributes in scope but not the dynamic ones. So rec { a = true;
"${"b"}" = a; } is equivalent to { a = true; b = true; } but rec {
"${"a"}" = true; b = a; } would be an error or use a from the
surrounding scope if it exists.
Note that the getAttr, getAttr or default, and hasAttr are all
implemented purely in the parser as syntactic sugar, while attribute
sets with dynamic attribute names required changes to the AST to be
implemented cleanly.
This is an alternative solution to and closes #167
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 136f2f7046dfed18fde0b5f9933ddfafc1518ef5
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 13 16:55:33 2013 -0400
Add the ExprBuiltin Expr type to the AST
Certain desugaring schemes may require the parser to use some builtin
function to do some of the work (e.g. currently `throw` is used to
lazily cause an error if a `<>`-style path is not in the search path)
Unfortunately, these names are not reserved keywords, so an expression
that uses such a syntactic sugar will not see the expected behavior
(see tests/lang/eval-okay-redefine-builtin.nix for an example).
This adds the ExprBuiltin AST type, which when evaluated uses the value
from the rootmost variable scope (which of course is initialized
internally and can't shadow any of the builtins).
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 5ba5993470a6ad532fc8e842084a574a88876b0a
Author: Shea Levy <shea@shealevy.com>
Date: Mon Dec 30 07:58:14 2013 -0500
nix-shell --pure: Don't clear IN_NIX_SHELL
Signed-off-by: Shea Levy <shea@shealevy.com>
commit b352fe2775d09993add893ebff8c0c4c8369182a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 14:18:24 2013 +0100
Revert "Scan /proc/<pid>/cmdline for GC roots"
This reverts commit 194e3374b89b8b2dec6296923877304bdb5c6ae2.
Checking the command line for GC roots means that
$ nix-store --delete $path
will fail because $path is now a root because it's mentioned on the
command line.
commit 8931bf7168cbbc6a078bed6486b8081652663836
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 13:09:12 2013 +0000
Doh
commit f1e5dedb611d39ecc600fccb4eba4b0de730c5fc
Author: Petr Rockai <me@mornfall.net>
Date: Sun Nov 24 21:22:23 2013 +0100
perl: Call loadConfFile() in doInit to avoid screwing sqlite journal mode.
If the database is opened through perl bindings (and even though nix.conf has
use-sqlite-wal set to false), the database is automatically converted into WAL
mode. This makes the next nix process to access the database convert it back to
"truncate". If the database is still open at the time in wal mode by the perl
program, this fails and crashes the nix doing the wal -> truncate conversion.
commit 7d203faff6d74d839324cd082236381d20444d8e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 13:56:42 2013 +0100
nix-env --set-flag: Barf if a selector doesn't match any installed package
Fixes #184.
commit 194e3374b89b8b2dec6296923877304bdb5c6ae2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 13:31:31 2013 +0100
Scan /proc/<pid>/cmdline for GC roots
commit 769f66216504cd882ac7b6bdfa0dd1ff26f3efe5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 12:19:10 2013 +0000
nix-shell: Don't warn about the lack of a GC root
commit 0c1198cf08576f16633b2344dc6513cefb567cfc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 13:11:41 2013 +0100
nix-shell: Set $IN_NIX_SHELL before evaluation
This has some hacky applications.
commit 65a64522403f353880a501b02aca10fb96ea1c26
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 20 13:10:14 2013 +0100
nix-shell: Handle --option correctly
Fixes #181.
commit 259086de841d155f7951c2cc50f799a4631aa512
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 18 16:40:48 2013 +0100
Add support for building JARs from Java sources
commit 99ed25accfd968003d3b0d294720828a1348ce47
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 18 15:01:14 2013 +0100
Add a function for doing recursive wildcard searches
Source: http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
commit 7b0d8fb23d9c71f1efb119c1f267124349c82742
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 17 18:16:04 2013 +0100
nix-shell --pure: Keep $TERM
commit 088552b319d8f5896e6cfd6a8e449b4239696ea2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 17 12:13:48 2013 +0100
Set default installation paths
commit e81b82a2cf0c7e460d02c554c597a6cf9a144e8e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 16 16:51:05 2013 +0100
make dryclean: Sort names
commit a630635d7f0e63a865ddd3b0a3cf2d44c603c0e5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 16 16:49:41 2013 +0100
No longer interpret $(..._SOURCES) relative to $(..._DIR)
commit 4da804651378b612313c8fb71688f71a4717a26e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:39:58 2013 +0100
Don't include all *.dep files
commit 034bbcafafdbec0b2c4d29b1d5018bec20120e77
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:27:47 2013 +0100
Add 'make help'
commit 45131da736f21975e5b6d03f508b49f10621a30e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:24:03 2013 +0100
Get rid of whitespace in $(d)
commit c34f3c5ba4f353d67ec4a88a32c3aa688347aa4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:22:57 2013 +0100
Handle *.cpp extension
commit dfcc64f556295481bfea0b68cab11604ec131189
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:22:25 2013 +0100
Only provide 'make dist' if PACKAGE_NAME is set
commit 3560f52cc427a4eb368815ae7dd9badffba84f3f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 12 11:22:08 2013 +0100
dryclean: Show what actual files would be deleted
commit 49a385096e08b42277b7105d5d8d1e0e62b6b7a4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 10 15:54:34 2013 +0100
Initial commit (imported from the Nix repo)
commit e36229d27f9ab508e0abf1892f3e8c263d2f8c58
Author: Shea Levy <shea@shealevy.com>
Date: Thu Dec 5 12:07:05 2013 -0500
Bump language version for new storePath feature
This will allow e.g. channel expressions to use builtins.storePath IFF
it is safe to do so without knowing if the path is valid yet.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 22d665019a3770148929b7504c73bcdbe025ec12
Author: Shea Levy <shea@shealevy.com>
Date: Thu Dec 5 11:51:54 2013 -0500
builtins.storePath: Try to substitute the path if it is not yet valid
Signed-off-by: Shea Levy <shea@shealevy.com>
commit a6add93d734279db8503951ac6466c275b3c8e4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 10 13:13:59 2013 +0100
Garbage collector: Release locks on temporary root files
This allows processes waiting for such locks to proceed during the
trash deletion phase of the garbage collector.
commit c5b8fe315162440c1d808bc0a684a412d78bfa76
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 5 14:31:57 2013 -0500
Print a trace message if a build fails due to the platform being unknown
commit bf8b66adcfdc04f2f0f0a482c66dd419a355cad6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 4 13:41:32 2013 -0500
Add missing file
commit f3cf0436b520918e061bf91efef3bb19b99bf726
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 2 20:21:31 2013 +0000
Install bsdiff and bspatch in $(libexecdir)/nix
commit 0202ce6b94f287f70a6723473c73a4c7f135dae4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 18:47:03 2013 +0100
Add support for ‘make installcheck’
commit 9285f0aa2b44427afef7c50f0efae8f74307a7a5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 16:38:33 2013 +0000
Add a Makefile for the Perl stuff
commit 8f08046606c147004642a7569f78bc61ab450419
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 15:51:22 2013 +0000
Expand configure variables before writing config.status
This way, we can use config.status for generating scripts/* (without
ending up with lines like "#! /usr/bin/perl -I${libexecdir}/...").
commit 7ce0e05ad875657a0fec10e192454b837146e190
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 15:25:13 2013 +0000
Rename Makefile.new -> Makefile
commit 962551a071da87589a97a2f40d72b87d6e6ba9e2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 15:05:56 2013 +0000
Add a Makefile for the scripts directory
commit 1a1d8b073a1d770c8de4f8eb274387b209b32782
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 11:39:21 2013 +0000
Add a Makefile for bsdiff
commit 784feb68392ec4a0bdd45bf0d37f08c3eb1b61ac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 11:29:13 2013 +0000
Let ‘make clean’ delete instantiated template files
commit cac06ed0a4b63bab62ba7629584db602222131f2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 11:26:51 2013 +0000
Remove obsolete setting of $CC_FOR_BUILD
commit b225ccb65455b24141cffd6706b6fba8a4838525
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 11:26:02 2013 +0000
Add config.guess, config.sub and install-sh
Autoreconf doesn't install these if you're not using Automake.
commit 0c504a756cbcf58f0fc4b1a9083d372e1dbb50ac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 11:18:41 2013 +0000
Don't install Libtool
commit 2cc591c7b55a1d3e8f667871b0ddf216d81d6b47
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 10:56:14 2013 +0000
Don't instantiate Automake makefiles
commit 79b7c596a994dd426807281c3c34d8cb6bc12e5f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 10:17:37 2013 +0000
Use create-dir for installing dynamic libraries
commit ed0a8dd71ad58d16c24d714ab2b9419285d1ffc0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 10:16:07 2013 +0000
Add a function for instantiating Autoconf *.in files
commit f980755766e7cd74c0c959eaa2a6d4655980e2ea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 09:50:35 2013 +0000
Split Makefile.lib into several *.mk files
commit e9b6397d2f902eb4f5bf0fd513013d92af074cfc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 09:17:02 2013 +0000
Add a rule for creating directories
The tricky thing here is that if you have a directory as a
prerequisite, you need to declare it as a "order-only prerequisite"
("dir/prog: stuff | dir"), otherwise the target will be rebuilt every
time because the timestamp on the directory keeps changing.
commit 4315acb8c0a40703b17f837ab82e9a691b5c14ab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 25 08:55:19 2013 +0000
Add a generic rule for installing files
commit c7547cff1951aec5e36580a8497dd13020dfc8d3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 23:56:23 2013 +0000
Install into $(libdir) instead of $(pkglibdir)
We don't need $(pkglibdir) anymore, since the libraries themselves
have a "nix" prefix now.
commit 2bd0fcc9663211cc480f61dc9e05f43ac9ecca69
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 23:53:41 2013 +0000
Use libnix as a prefix for all Nix libraries
In particular "libutil" was always a problem because it collides with
Glibc's libutil. Even if we install into $(libdir)/nix, the linker
sometimes got confused (e.g. if a program links against libstore but
not libutil, then ld would report undefined symbols in libstore
because it was looking at Glibc's libutil).
commit f267ff16b4527ca6c083014b93b4568d89221f49
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 23:49:34 2013 +0000
Allow libraries to set an actual name different from the symbolic name
commit abb5bd66dee7afe9560b3a132da42b71d4801274
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 23:42:50 2013 +0000
Add Makefile for nix-log2xml
commit 07c87a8e9ef7bd42995230700169c6a18cf26313
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Nov 24 00:15:25 2013 +0100
Consistent naming
commit c1f3a1a89b717e73c2a8c2315067c495e246457c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Nov 24 00:10:00 2013 +0100
Disallow undefined symbols in dynamic libraries by default
This encourages that each library declares its own dependencies
properly.
commit 5a1114ecdbbd115ec8aeb1a98326d793ff3e8058
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 20:19:36 2013 +0000
Drop the dependency on libgc in libmain
Instead, libexpr now depends on libgc. This means commands like
nix-store that don't do any evaluation no longer require libgc.
commit 06a8ac96e79547c092debfe3b93d78bcb862edc2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 20:15:57 2013 +0000
Initialise Boehm GC only once
commit 90dfb37f147941e5edf262c27e269cdfd1e8dcfb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 20:11:02 2013 +0000
Allow (dynamic) libraries to depend on other libraries
commit 14772783e66a6e67726872926834c0e9f7210e6d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 20:32:20 2013 +0100
Support installation of dynamically linked programs
Here we need to re-link programs so that their RPATH refers to the
installed libraries.
commit 611868a90904ac233d8476682a4618fdd8c78c50
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 17:04:27 2013 +0000
Implement basic ‘make install’
commit d1b3ca0b4a57f48f94a555c97f6a555c3a1f3639
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Nov 23 17:20:15 2013 +0100
Improve building dynamic libraries
They now get a correct RPATH.
commit 6dd74b48f8d587fcc215e9f4721eacace7f8f462
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 20:56:58 2013 +0000
Support building dynamic libraries
commit 9b11a8bfbcfd9e6f40ae8b573d4de492a23b91b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 20:05:00 2013 +0000
Fix building without Boehm GC
commit 812b5a30ecc9d8f78b54644b37c5c2c4375555bc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 19:51:18 2013 +0000
Add a Makefile variable for enabling debug info
commit ea2f7df5fac0b319b82a4a33ba8b992737fa8c56
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 20:38:30 2013 +0100
Introduce variables GLOBAL_CFLAGS and GLOBAL_CXXFLAGS
There are flags that must be set, so they shouldn't be overriden by
the user's CFLAGS or CXXFLAGS.
commit 6b5f89f2cf954cae1623a6cd3a8f7eb78e19e85b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 19:30:24 2013 +0000
Drop the dependency on Automake
commit 754c05ed6c3b88f8180ae8686e030b5b02b23d43
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 16:45:52 2013 +0000
Rename $(here) to $(d) for brevity, and remove trailing slash
commit 9a14d5e2f3a0b6ab626b9d22256df8bcc1c585a3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 16:59:09 2013 +0100
Automatically regenerate Makefile.config
And move some stuff around.
commit ffdc85fc8afba0828bd1f300fdb4f68de99d7000
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 15:47:47 2013 +0000
Respect configure flags
commit 62e35cc3a893e3bc4ed1fe2a37ba67af9859b4cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 16:42:25 2013 +0100
Add ‘make dist’ support
commit eff6c4b791ad0a8b9a8499fcbcc2add7154d4dca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 15:41:48 2013 +0000
Add missing #include
commit e0a108b203b40f81df4cb0f1e433476cd8a37491
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 15:25:10 2013 +0000
Remove unnecessary line
commit eaf903f993094af27958b9935635710ffbf42bf6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 16:24:41 2013 +0100
Clean more aggressively
commit 1474ecfe426ef69bbb376df82fd0c48e7dedf606
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 16:22:31 2013 +0100
Generate the parser and the lexer
commit bc96c4518e4430f0cd996b2c77fe8e08d7694efa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 15:10:33 2013 +0000
Automatically emit make rules for header files
commit b8e9efc476abc248a17c9e9cd117f3d53e4a7f63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 15:54:18 2013 +0100
New non-recursive, plain Make-based build system
commit 709cbe4e76e7b0f1b8abddbeb7714e194f6f8a02
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 22 10:00:43 2013 +0000
Include <cstring> for memset
This should fix building on Illumos.
commit d4a76ff0e45a609b3a878bc0ccf4ff95ff3e9ecb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 14:45:19 2013 +0100
Bump version number
commit 30b986908eed5d8fd6a2b21da98878f2a0bf19c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 14:29:39 2013 +0100
Check meta values and warn about bad ones
commit 0f24400d90daf65cf20142a662f8245008437e2c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 14:09:03 2013 +0100
Generalise meta attributes
commit 990126cde03428509191bed132f38050034d342e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 12:08:03 2013 +0000
Shorter error message
commit af94a70ba6bb9ba2eac328133b2a97d405867f68
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 11:18:13 2013 +0100
Drop support for user environment manifests in ATerm format
commit 245e26408fc0954974a1b30991af6d97c1d1e2ce
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 00:41:45 2013 +0100
nix-env -q: Add a --json flag
commit 5fea98111b3cd9b94ed1ebe89953a7757d6d3a69
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 00:33:06 2013 +0100
Refactor JSON output
commit 77c13cdf566ffedc70d8860571afae8a6d43b552
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 19 00:03:11 2013 +0100
Add a toJSON primop
commit 285df765b91588e39d6f35a32e30b84c3cb5be75
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 18 22:22:35 2013 +0100
Add a primop unsafeGetAttrPos to return the position of an attribute
commit fc33fd86b7727365caab44c05a90d5b52209131b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 18 20:14:54 2013 +0100
Add a symbol __curPos that expands to the current source location
I.e. an attribute set { file = <string>; line = <int>; column = <int>; }.
commit 90b5e692846d9b7a951155c5ed4fc7cf72b08e31
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 18 10:21:12 2013 +0000
Support quoted attribute names in -A
This is requires if you have attribute names with dots in them. So
you can now say:
$ nix-instantiate '<nixos>' -A 'config.systemd.units."postgresql.service".text' --eval-only
Fixes #151.
commit a478e8a7bb8c24da0ac91b7100bd0e422035c62f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 14 11:57:37 2013 +0100
Remove nix-setuid-helper
AFAIK, nobody uses it, it's not maintained, and it has no tests.
commit 89e6781cc5885cbf6284a51c0403dded62ce8bc0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 12 12:51:59 2013 +0100
Make function calls show up in stack traces again
Note that adding --show-trace prevents functions calls from being
tail-recursive, so an expression that evaluates without --show-trace
may fail with a stack overflow if --show-trace is given.
commit 2bcb384e95500ff197fd4888c659ccf0034cf214
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 12 11:31:50 2013 +0000
Add a test to check that tail calls run in bounded stack space
commit c897bac54954373f63511702731fe2cb23c0c98e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 7 17:04:36 2013 +0000
Make function calls tail-recursive
commit 273322c7732093a354e86df82cf75d6604b8bce8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 7 14:33:35 2013 +0100
Make ifs and asserts tail-recursive
The local Value object prevented g++ from making a tail call. Not
clear why. In any case, not using a temporary makes g++ do the tail
call.
commit 4badd7ed17b4628d3a8d96e21c900aa91004daaf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 7 12:44:14 2013 +0000
Get rid of an intermediary on the stack
commit 8d6418d46e5f8a2f31417ba363efd2785c49b2eb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 28 22:51:12 2013 +0100
Fix building without a garbage collector
http://hydra.nixos.org/build/6695350
commit dec2f195022bcc14f217aa20c1e05e4b7fe9e917
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 28 18:50:58 2013 +0100
Fix a segfault in genericClosure
It kept temporary data in STL containers that were not scanned by
Boehm GC, so Nix programs using genericClosure could randomly crash if
the garbage collector kicked in at a bad time.
Also make it a bit more efficient by copying points to values rather
than values.
commit 61231449332154170eafc2b80c10328ba736f31e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 28 11:56:37 2013 +0000
Drop Cygwin and Solaris builds
commit 1dacd427cd2d149fe46e0cb43ca45bb9344de2f7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 28 11:56:21 2013 +0000
Update release notes, set version for 1.6.1 release
commit ea6bf0c21fc08ea269514fa9788f8f05fcc54fb5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 28 07:34:44 2013 +0100
Slightly optimize listToAttrs
commit 36e67ff16bc6a4cb96466f58616a95a25250274d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 22:06:39 2013 +0200
Undocument obsolete form of "let"
commit fba17a9043527aad89dbf53d3458ca14a86a421c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 22:05:58 2013 +0200
Doc fix
commit 2d9bb56e554b17488c0f8984f34c026a66cdce67
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 19:10:38 2013 +0200
Fix segfault on Darwin
Ever since SQLite in Nixpkgs was updated to 3.8.0.2, Nix has randomly
segfaulted on Darwin:
http://hydra.nixos.org/build/6175515
http://hydra.nixos.org/build/6611038
It turns out that this is because the binary cache substituter somehow
ends up loading two versions of SQLite: the one in Nixpkgs and the
other from /usr/lib/libsqlite3.dylib. It's not exactly clear why the
latter is loaded, but it appears to be because WWW::Curl indirectly loads
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation,
which in turn seems to load /usr/lib/libsqlite3.dylib. This leads to
a segfault when Perl exits:
#0 0x00000001010375f4 in sqlite3_finalize ()
#1 0x000000010125806e in sqlite_st_destroy ()
#2 0x000000010124bc30 in XS_DBD__SQLite__st_DESTROY ()
#3 0x00000001001c8155 in XS_DBI_dispatch ()
...
#14 0x0000000100023224 in perl_destruct ()
#15 0x0000000100000d6a in main ()
...
The workaround is to explicitly load DBD::SQLite before WWW::Curl.
commit 5bc41d78ffcd2952eaddb20ef129f48e94d60cb0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 16:41:04 2013 +0200
Rename "attribute sets" to "sets"
We don't have any other kind of sets so calling them attribute sets is
unnecessarily verbose.
commit 9e4bb2045548e2166102f4a8eedf43741e1a6a98
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 16:02:08 2013 +0200
Manual: Fix broken URLs
Fixes #172.
commit dc341811d6bfb2a33601fe22f11db0a97956f97e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 15:54:23 2013 +0200
Add rpm_fedora19i386 to the release-critical builds
commit 69befd33a9e3600c125803694fbac96053f943b0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 03:08:34 2013 +0200
Remove unnecessary call to forceStringNoCtx
commit a5684e09d34deb5c380c736ce520c030eb14bfc6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 02:56:00 2013 +0200
Document typeOf
commit 411a3461dca6b26f1a1a6b0c7f1f322f1d8df506
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 02:51:28 2013 +0200
Add a test of the type primops
commit 05d02f798f65bf18e8ca71f3d23bfdf9df63fb7c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 02:49:13 2013 +0200
Add a typeOf primop
We already have some primops for determining the type of a value, such
as isString, but they're incomplete: for instance, there is no isPath.
Rather than adding more isBla functions, the generic typeOf function
returns a string representing the type of the argument (e.g. "int").
commit 6da92d96aec29ab09cf909ac6a270bc2753cd34a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 02:22:24 2013 +0200
Document NIX_SHOW_STATS and NIX_COUNT_CALLS
commit 543d8a5942f503f5e49eecbf7e4e7a039472e9ea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 24 02:20:54 2013 +0200
Don't require NIX_SHOW_STATS for NIX_COUNT_CALLS
commit fe95650487d189bae2be198fe2cbbb0cb6c3788f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 23 11:16:46 2013 +0000
Memoize evalFile() lookups under both the original and resolved name
Previously we only used the resolved name, causing repeated resolution
(e.g. /dir to /dir/default.nix).
commit 3139481822b770a5ad1f81f447ef31ed5446bc72
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 23 11:52:25 2013 +0200
Add an aggregate job
Also, build for Ubuntu 13.10 and Fedora 19.
commit c0861838432ea9d8e5ea5750aadfbc59ebd6f3b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 22 11:39:10 2013 +0200
For auto roots, show the intermediate link
I.e. "nix-store -q --roots" will now show (for example)
/home/eelco/Dev/nixpkgs/result
rather than
/nix/var/nix/gcroots/auto/53222qsppi12s2hkap8dm2lg8xhhyk6v
commit 4f4a14453ae8dbfc24a1e580aa695165e9d81f0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 18 14:51:25 2013 +0200
Don't set $PS1 in non-interactive shells
Shouldn't really matter, but you never know.
commit 4ea034a5c56a60ae0ceedf18a066c428a963c836
Author: Shea Levy <shea@shealevy.com>
Date: Thu Oct 17 11:07:34 2013 -0400
nix-shell: Play nicely with non-interactive shells
nix-shell with the --command flag might be used non-interactively, but
if bash starts non-interactively (i.e. with stdin or stderr not a
terminal), it won't source the script given in --rcfile. However, in
that case it *will* source the script found in $BASH_ENV, so we can use
that instead.
Also, don't source ~/.bashrc in a non-interactive shell (detectable by
checking the PS1 env var)
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 792fd51f41212b0bf1d8a121a4f228a92fec3906
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 11:53:40 2013 +0200
Fold two stack trace messages in derivations
Combined with the previous changes, stack traces involving derivations
are now much less verbose, since something like
while evaluating the builtin function `getAttr':
while evaluating the builtin function `derivationStrict':
while instantiating the derivation named `gtk+-2.24.20' at `/home/eelco/Dev/nixpkgs/pkgs/development/libraries/gtk+/2.x.nix:11:3':
while evaluating the derivation attribute `propagatedNativeBuildInputs' at `/home/eelco/Dev/nixpkgs/pkgs/stdenv/generic/default.nix:78:17':
while evaluating the attribute `outPath' at `/nix/store/212ngf4ph63mp6p1np2bapkfikpakfv7-nix-1.6/share/nix/corepkgs/derivation.nix:18:9':
...
now reads
while evaluating the attribute `propagatedNativeBuildInputs' of the derivation `gtk+-2.24.20' at `/home/eelco/Dev/nixpkgs/pkgs/development/libraries/gtk+/2.x.nix:11:3':
...
commit f440558acc76c2939cf5f0744c6669279b6351a0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 11:47:38 2013 +0200
Don't show <nix/derivation.nix> in stack traces
Messages like
while evaluating the attribute `outPath' at `/nix/store/212ngf4ph63mp6p1np2bapkfikpakfv7-nix-1.6/share/nix/corepkgs/derivation.nix:18:9':
are redundant, because Nix already shows that it's evaluating a derivation:
while instantiating the derivation named `firefox-24.0' at `/home/eelco/Dev/nixpkgs/pkgs/applications/networking/browsers/firefox/default.nix:131:5':
while evaluating the derivation attribute `nativeBuildInputs' at `/home/eelco/Dev/nixpkgs/pkgs/stdenv/generic/default.nix:76:17':
commit bb659bad8116d380271e5103e3bb5c8a6056ee58
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 11:40:20 2013 +0200
Nix 1.6.1 release notes
commit f6a8e7f4c2897c131afe0beed199dc406b0f052a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 11:18:37 2013 +0200
Fix test
commit b08f4b0da98d0a2534626c01cbb0c3c3eb4713a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 01:12:43 2013 +0200
Test string semantics a bit more
commit d7625b5c2d6d9fd23708057957172c0446ffdabc
Author: goblin <github@uukgoblin.net>
Date: Sun Sep 22 13:36:23 2013 +0100
two typos
commit b8034e5581ef40cc043da35ed01280b166da81ca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 00:57:24 2013 +0200
Ensure proper type checking/coercion of "${expr}"
Now we only rewrite "${expr}" to expr if expr is a string literal.
commit 9d8a80375d2d0581b53d270eb4d543fa0d3f0190
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 00:45:16 2013 +0200
Add a test for type correctness of antiquotes
Antiquotes should evaluate to strings or paths. This is usually
checked, except in the case where the antiquote makes up the entire
string, as in "${expr}". This is optimised to expr, which discards
the runtime type checks / coercions.
commit d6a7aa8f4827f97856ed55226426c355e1d1b4d1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 17 00:39:59 2013 +0200
Revert the behaviour of antiquoted paths to pre-Nix 1.6
Commit 159e621d1a9c4391b53f3d822109c36931934698 accidentally changed
the behaviour of antiquoted paths, e.g.
"${/foo}/bar"
used to evaluate to "/nix/store/<hash>-foo/bar" (where /foo gets
copied to the store), but in Nix 1.6 it evaluates to "/foo/bar". This
is inconsistent, since
" ${/foo}/bar"
evaluates to " /nix/store/<hash>-foo/bar". So revert to the old
behaviour.
commit b8571d68c4f2c0b4b0b8f3d7c7ef09668aab140f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 23:28:10 2013 +0200
Add a regression test for correct path antiquotation behavior
This broke in Nix 1.6.
commit a737f51fd96be2866a33eb67732e034bcc65a659
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 15:58:20 2013 +0200
Retry all SQLite operations
To deal with SQLITE_PROTOCOL, we also need to retry read-only
operations.
commit ff02f5336cd0cff0e97fbcf3c54b5b23827702d6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 14:51:20 2013 +0200
Fix a race in registerFailedPath()
Registering the path as failed can fail if another process does the
same thing after the call to hasPathFailed(). This is extremely
unlikely though.
commit 4bd52825734face53df2ab00052d2457d31c3c68
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 14:46:35 2013 +0200
Convenience macros for retrying a SQLite transaction
commit bce14d0f61801f0f1c3080970619e2ca11683a4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 14:36:53 2013 +0200
Don't wrap read-only queries in a transaction
There is no risk of getting an inconsistent result here: if the ID
returned by queryValidPathId() is deleted from the database
concurrently, subsequent queries involving that ID will simply fail
(since IDs are never reused).
commit 7cdefdbe732c209e13f234eb71022791909a5518
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 14:27:36 2013 +0200
Print a distinct warning for SQLITE_PROTOCOL
commit d05bf044441dbf8e000036d545df9689bdec0b72
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 16 14:03:22 2013 +0200
Treat SQLITE_PROTOCOL as SQLITE_BUSY
In the Hydra build farm we fairly regularly get SQLITE_PROTOCOL errors
(e.g., "querying path in database: locking protocol"). The docs for
this error code say that it "is returned if some other process is
messing with file locks and has violated the file locking protocol
that SQLite uses on its rollback journal files." However, the SQLite
source code reveals that this error can also occur under high load:
if( cnt>5 ){
int nDelay = 1; /* Pause time in microseconds */
if( cnt>100 ){
VVA_ONLY( pWal->lockError = 1; )
return SQLITE_PROTOCOL;
}
if( cnt>=10 ) nDelay = (cnt-9)*238; /* Max delay 21ms. Total delay 996ms */
sqlite3OsSleep(pWal->pVfs, nDelay);
}
i.e. if certain locks cannot be not acquired, SQLite will retry a
number of times before giving up and returing SQLITE_PROTOCOL. The
comments say:
Circumstances that cause a RETRY should only last for the briefest
instances of time. No I/O or other system calls are done while the
locks are held, so the locks should not be held for very long. But
if we are unlucky, another process that is holding a lock might get
paged out or take a page-fault that is time-consuming to resolve,
during the few nanoseconds that it is holding the lock. In that case,
it might take longer than normal for the lock to free.
...
The total delay time before giving up is less than 1 second.
On a heavily loaded machine like lucifer (the main Hydra server),
which often has dozens of processes waiting for I/O, it seems to me
that a page fault could easily take more than a second to resolve.
So, let's treat SQLITE_PROTOCOL as SQLITE_BUSY and retry the
transaction.
Issue NixOS/hydra#14.
commit c1994fecf9f9ea129f6164db92ad242e392d987c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Oct 14 15:20:45 2013 +0200
nix-shell: Fix bash completion
Nixpkgs's stdenv setup script sets the "nullglob" option, but doing so
breaks Bash completion on NixOS (when ‘programs.bash.enableCompletion’
is set) and on Ubuntu. So clear that flag afterwards. Of course,
this may break stdenv functions in subtle ways...
commit 672c3acc7109a84abeae3d28dc907132f2bad953
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 11 10:57:23 2013 +0200
Adjust to the NixOS/Nixpkgs merge
commit 7bdb85453d16106ebf4d4af106720d917e221ad9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 15:34:57 2013 +0200
printStats(): Print the size of the symbol table in bytes
commit 9deb822180fb80638559fe3c45c6a77a2b56ff40
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 15:19:59 2013 +0200
Deduplicate filenames in Pos
This saves ~4 MiB of RAM for NixOS system instantiation, and ~18 MiB
for "nix-env -qa".
commit b1e3b1a4ac8c276f503713f6002c3b42efef2ae8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 14:45:36 2013 +0200
Treat undefined variable errors consistently
Previously, a undefined variable inside a "with" caused an EvalError
(which can be caught), while outside, it caused a ParseError (which
cannot be caught). Now both cause an UndefinedVarError (which cannot
be caught).
commit 6b47de580ffe6101863a1054d9d47f9cbe691214
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 14:40:51 2013 +0200
Show the exact position of undefined variables
In particular, undefined variable errors in a "with" previously didn't
show *any* position information, so this should help a lot in those
cases.
commit a5e0f64db3f7355e320ecda478b84f238bf8869c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 12:30:23 2013 +0000
Remove some unused functions
commit 221a2daf34234c426fec8058f24b1093b2a61ba8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 8 14:24:53 2013 +0200
Merge VarRef into ExprVar
commit 176c666f36afee12f5cbd1f9615cf21d781fdbde
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Oct 5 21:29:48 2013 +0000
Don't show calls to primops in stack traces
Since they don't have location information, they just give you crap
like:
while evaluating the builtin function `getAttr':
while evaluating the builtin function `derivationStrict':
...
commit c945f015de2149233c1e4fa1628f05567f3657ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 2 15:24:45 2013 +0200
Fix segfault in nix-repl / hydra-eval-jobs
If a "with" attribute set fails to evaluate, we have to make sure its
Env record remains unchanged. Otherwise, repeated evaluation gives a
segfault:
nix-repl> :a with 0; { a = x; b = x; }
Added 2 variables.
nix-repl> a
error: value is an integer while an attribute set was expected
nix-repl> b
Segmentation fault
commit 28e0742966e962f2672f5731ea3612f223bf3283
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 2 14:34:36 2013 +0200
Report OOM errors better
commit a5fb4b5b7c1688c9b095bc1c278c17c20844302a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 2 14:22:49 2013 +0200
Fix typo
commit faaae44f2e8bc5f8863de80a2585fec8f51d144d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 18 14:04:03 2013 +0200
build-remote.pl: Don't use substituters on the remote
It's kinda pointless to check substituters on the remote side, since
we just checked them locally.
commit f53574ebd60e5a22dbaae7e2bec97f5993670c20
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 17 12:06:59 2013 +0000
RestoreSink: Slightly reduce the number of concurrent FDs
commit d5529f5b85d4f093c6c051c060eb6feef9f8f76f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 10 17:47:39 2013 +0200
Version was called 1.6, not 1.6.0
commit b072fc04a79c181af04fb1a07e221cb73f97cf48
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 10 17:41:49 2013 +0200
Bump version number
commit fecad91b67ee3523a6d8c0ea16ab71925ab6ab6e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 10 11:21:30 2013 +0200
Update release notes
commit 0220da3e10e76fd1ef46915493c0f5ed65482fa8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 6 17:20:19 2013 +0200
Remove stray debug line
commit 936f9d45baf474358346666ed9ad7f56960bb455
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 6 16:36:56 2013 +0200
Don't apply the CPU affinity hack to nix-shell (and other Perl programs)
As discovered by Todd Veldhuizen, the shell started by nix-shell has
its affinity set to a single CPU. This is because nix-shell connects
to the Nix daemon, which causes the affinity hack to be applied. So
we turn this off for Perl programs.
commit 4b83830d0c742b69b59c698a42948eaa6d214c1d
Author: Domen Kožar <domen@dev.si>
Date: Tue Sep 3 11:42:55 2013 +0200
typo
commit 5904262640199599122fcf563e7d1c7c3f3f3128
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 6 14:58:05 2013 +0200
nix-shell: Support a .drv as argument
Fixes #161.
commit 2c1ecf8e81f8ea5a9fa228aa22a57a6ba0a0e4df
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 21:15:47 2013 +0200
nix-env -i: Add a flag ‘--remove-all’ / ‘-r’
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.
commit 88c07341a6bf99f923cb3d6487b72afc025b7746
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 15:56:33 2013 +0200
nix-env: Use wildcard match by default
That is, you don't need to pass '*' anymore, so
nix-env -qa
is equivalent to
nix-env -qa '*'
commit 07a08bddf001271b4b7eff2a119c395f40119966
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 15:45:32 2013 +0200
nix-env: Load files in ~/.nix-defexpr on demand
So if you do "nix-env -qa -A nixos", then other channels won't be
parsed/evaluated at all.
commit c57ed84e286047a9f3c103cf689ae04381c23dad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 15:25:51 2013 +0200
Check for name collisions in the input Nix expressions
commit ef4f5ba85e487f567115d60e3cb4b53d81af6ea1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 13:17:51 2013 +0000
Work on Values instead of Exprs
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).
commit 06bb2d95b4d8232ef0cd0059d2609d2211d0e3e6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 11:04:21 2013 +0000
Reformat
commit 6f809194d7448c4ad50174bed9ba2419e2114352
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 3 12:56:33 2013 +0200
Get rid of the parse tree cache
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.
commit 57d18df7d0005cf822368d9f1d0c33396c6b9f9f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 18:34:04 2013 +0200
Add some support code for nix-repl
commit 92077b4547b473bb4ea7b38077299e8fba75ca62
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 16:39:17 2013 +0200
Get rid of a signedness warning
commit 33972629d76b1b1059de5b89ce68ef37dce45cbd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 16:29:15 2013 +0200
Fix whitespace
commit ac1b75413821c9ebaf317fb3fe1c695599e93818
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 13:32:51 2013 +0200
Lower xz compression level
Fixes #84.
commit c28dfc030587cb5a4ccdc71e5f55e708a9aa901d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 13:23:07 2013 +0200
Manual: Make '' a bit clearer
Issue #162.
commit e9b92169a5a9d187e32d0ce15ca785eb9f8dce56
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 13:19:34 2013 +0200
Fix manual error
Reported by Matija Šuklje.
Fixes #163.
commit ecd830b3b9e189d0b41cfeadc993c17d5858a79b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 13:11:36 2013 +0200
Update the release notes
commit 6ec8dab06abd08f3239c10b98d34a268cd0657cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 12:44:30 2013 +0200
Adda test for build-max-log-size
commit b29d3f4aee9fa91f4ea1019d09bf63bc81b9f830
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 12:01:04 2013 +0200
Only show trace messages when tracing is enabled
commit efe428946431c6c670151c949884fa8c1fa31794
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Sep 2 11:58:18 2013 +0200
Add an option to limit the log output of builders
This is mostly useful for Hydra to deal with builders that get stuck
in an infinite loop writing data to stdout/stderr.
commit afc6c1bad63e27d68adf49e673f8aafd36495a8a
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jul 15 17:10:18 2013 -0400
Simplify inherited attribute handling
This reduces the difference between inherited and non-inherited
attribute handling to the choice of which env to use (in recs and lets)
by setting the AttrDef::e to a new ExprVar in the parser rather than
carrying a separate AttrDef::v VarRef member.
As an added bonus, this allows inherited attributes that inherit from a
with to delay forcing evaluation of the with's attributes.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 6cd6ce56083d0077485896a761520812d039bf10
Author: Ivan Kozik <ivan@ludios.org>
Date: Fri Aug 16 20:18:38 2013 +0000
Fix nix-shell command
commit 34bb806f747d5edc16119e38e2ac44e6b236ac12
Author: Ivan Kozik <ivan@ludios.org>
Date: Sat Aug 10 21:36:16 2013 +0000
Fix typos, especially those that end up in the Nix manual
commit c6c024ca6f587dab991589ad6fdf010b9f0e6d62
Author: Gergely Risko <gergely@risko.hu>
Date: Thu Aug 22 17:57:39 2013 +0200
Fix personality switching from x86_64 to i686
On Linux, Nix can build i686 packages even on x86_64 systems. It's not
enough to recognize this situation by settings.thisSystem, we also have
to consult uname(). E.g. we can be running on a i686 Debian with an
amd64 kernel. In that situation settings.thisSystem is i686-linux, but
we still need to change personality to i686 to make builds consistent.
commit 03eaef3d7a614872af309d1bfa5133845123720f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 23 10:12:20 2013 +0200
Manual: Don't use actual hashes of Nix dependencies
These cause an unnecessary runtime dependency :-)
commit b3110a15e9ab898e14721655030e7f0f7e2ea6c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 21 12:52:44 2013 +0200
Fix corrupt PNG
Libpng used to accept this, but no longer does.
commit 25a108bb9c5eb1999e1699d4e0727de1cbce30c7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 19 13:22:56 2013 +0200
Hack to clean up tests/test-tmp
commit d308aeaf53b7324af98dfa949a747526c241ef30
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 19 12:35:03 2013 +0200
Store Nix integers as longs
So on 64-bit systems, integers are now 64-bit.
Fixes #158.
commit 297b762513ad416582c0850095506f802ff5b1bb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 19 11:41:15 2013 +0200
Turn on -Wall
commit 46222bbc43fa4d7b44a466bf7be435ea1a4d6fc0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 14 22:32:49 2013 +0200
Typo
commit 58204a3c39614297e71a21a7633ea8293e8304ee
Author: Shea Levy <shea@shealevy.com>
Date: Wed Aug 14 15:35:13 2013 -0400
corepkgs/nar.nix: Prefer local builds
nar.nix's builder depends on coreutils and nix itself being in $PATH.
Unfortunately, there's no good way to ensure that these packages exist
in the same place on the remote machine: The local machine may have nix
installed in /usr, and the remote machine in /usr/local, but the
generated nar.sh builder will refer to /usr and thus fail on the remote
machine. This ensures that nar.sh is run on the same machine that
instantiates it.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 3fb7ae0586958a2404db41b8cf6ec4fe88f2f674
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 7 15:44:19 2013 +0000
Respect MINSIGSTKSZ when allocating an alternative stack
http://hydra.nixos.org/build/5663577
commit 161a2ccf7af60acf8d04ba5d92f0116f6be19fba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 7 17:26:41 2013 +0200
Fix build on non-Linux
http://hydra.nixos.org/build/5662914
commit a583a2bc59a4ee2b067e5520f6c5bc0c61852c32
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 7 11:51:55 2013 +0000
Run the daemon worker on the same CPU as the client
On a system with multiple CPUs, running Nix operations through the
daemon is significantly slower than "direct" mode:
$ NIX_REMOTE= nix-instantiate '<nixos>' -A system
real 0m0.974s
user 0m0.875s
sys 0m0.088s
$ NIX_REMOTE=daemon nix-instantiate '<nixos>' -A system
real 0m2.118s
user 0m1.463s
sys 0m0.218s
The main reason seems to be that the client and the worker get moved
to a different CPU after every call to the worker. This patch adds a
hack to lock them to the same CPU. With this, the overhead of going
through the daemon is very small:
$ NIX_REMOTE=daemon nix-instantiate '<nixos>' -A system
real 0m1.074s
user 0m0.809s
sys 0m0.098s
commit 263d6682224f516aed74286453c5e2e097a38aa6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 6 14:21:46 2013 +0200
Set the default GCC optimisation level to -O3
commit fd7d979c79759e5db68e4b62b3550a3906f67d40
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 6 14:15:11 2013 +0200
Remove obsolete reference to ATerms
commit 46ffcce0c355ee16075b4ba216bc0aea054143aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 18:29:23 2013 +0000
In the profiler output, show function names (if available)
commit 8e74c0bfd1b61b175f04a7e0a8f0a3d9db809f1a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 18:53:02 2013 +0200
Let the ordering operators also work on strings
E.g. ‘"foo" < "bar"’ now works.
commit 3d77b28eacc940356e94c36017fb2d9f1a1b7ec2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 18:39:40 2013 +0200
Add comparison operators ‘<’, ‘<=’, ‘>’ and ‘>=’
commit 47701677e88230abf7d9106c55f46aa660643ce7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 16:03:02 2013 +0000
Add integer ‘-’, ‘*’ and ‘/’ operators
commit 5d147e125cea69e9a3b12f0ef64c64f42985c65e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 17:35:59 2013 +0200
Add a unary integer negation operator
This allows saying "-1" instead of "builtins.sub 0 1".
commit 159e621d1a9c4391b53f3d822109c36931934698
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 2 15:21:17 2013 +0000
Overload the ‘+’ operator to support integer addition
commit 511455965e1a17db3653147a4ac0d284a37915be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 31 13:17:50 2013 +0200
nix-shell: Don't disable Automake dependency tracking
Nixpkgs' stdenv disables dependency tracking by default. That makes
sense for one-time builds, but in an interactive environment we expect
repeated "make" invocations to do the right thing.
commit 7df4ef983e96f604fa84abe4aeb54dcb00a72add
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 31 13:12:35 2013 +0200
Test the delayed with a bit more
commit 0a470fc3453f56a0a242d8f467b8079fe0040ff7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 31 12:44:21 2013 +0200
Make Env smaller
Commit 20866a7031ca823055a221653b77986faa167329 added a ‘withAttrs’
field to Env, which is annoying because it makes every Env structure
bigger and we allocate millions of them. E.g. NixOS evaluation took
18 MiB more. So this commit squeezes ‘withAttrs’ into values[0].
Probably should use a union...
commit 8ae6d55db15bb0777e3d707afb994f6fcbcc6a65
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 31 12:11:14 2013 +0200
Don't use NULL
commit e068f49f7dc59788cf356acfc77db614db6b28f0
Author: Shea Levy <shea@shealevy.com>
Date: Tue Jul 16 08:43:54 2013 -0400
Avoid thunks when a fromWith var can be looked up without evaluation
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 20866a7031ca823055a221653b77986faa167329
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jul 15 15:53:14 2013 -0400
Delay evaulation of `with` attrs until a variable lookup needs them
Evaluation of attribute sets is strict in the attribute names, which
means immediate evaluation of `with` attribute sets rules out some
potentially interesting use cases (e.g. where the attribute names of one
set depend in some way on another but we want to bring those names into
scope for some values in the second set).
The major example of this is overridable self-referential package sets
(e.g. all-packages.nix). With immediate `with` evaluation, the only
options for such sets are to either make them non-recursive and
explicitly use the name of the overridden set in non-overridden one
every time you want to reference another package, or make the set
recursive and use the `__overrides` hack. As shown in the test case that
comes with this commit, though, delayed `with` evaluation allows a nicer
third alternative.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 70e68e0ec604124bb248ea4d064307bbf96e7932
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 30 23:25:37 2013 +0200
Detect stack overflows
Previously, if the Nix evaluator gets a stack overflow due to a deep
or infinite recursion in the Nix expression, the user gets an
unhelpful message ("Segmentation fault") that doesn't indicate that
the problem is in the user's code rather than Nix itself. Now it
prints:
error: stack overflow (possible infinite recursion)
This only works on x86_64-linux and i686-linux.
Fixes #35.
commit e87d1a63bdef0ae08f2d94d67fd8daa8fbb63fb4
Author: Shea Levy <shea@shealevy.com>
Date: Mon Mar 18 11:13:53 2013 -0400
killUser: Don't let the child kill itself on Apple
The kill(2) in Apple's libc follows POSIX semantics, which means that
kill(-1, SIGKILL) will kill the calling process too. Since nix has no
way to distinguish between the process successfully killing everything
and the process being killed by a rogue builder in that case, it can't
safely conclude that killUser was successful.
Luckily, the actual kill syscall takes a parameter that determines
whether POSIX semantics are followed, so we can call that syscall
directly and avoid the issue on Apple.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit 7cf539c728b8f2a4478c0384d3174842e1e0cced
Author: Florian Friesdorf <flo@chaoflow.net>
Date: Mon Feb 20 04:09:46 2012 +0100
buildenv: remove special treatment of python files
buildPythonPackage does not leave easy_install.pth and site.py
anymore. A python package that leaves these files is broken. An
exception to this is setuptoolsSite which packages setuptools'
site.py. To include it into a buildenv, this patch is even needed, not
just cosmetic.
commit 7b09e9f2c49aba7ced0e7fbac3994f6686b6a303
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 19 16:51:31 2013 +0200
Add hacking notes plus a script for running nix-shell
commit 15e5ac80393f3b0a1be264e8cdaa8f048375b27d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 19 14:32:05 2013 +0200
nix-shell: Set $IN_NIX_SHELL
This allows scripts to distinguish between a real build and a Nix
shell.
commit 48858ad5cabd03976330dff3d7aaa3d949ca09d6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 19 14:06:58 2013 +0200
nix-shell: Set some environment variables also set by build.cc
Setting $NIX_STORE causes the purity checks in gcc/ld-wrapper to kick
in, so that's why we unset $NIX_ENFORCE_PURITY.
commit 2bc5de86357fddcc52e2ce0c1b432a9509dea27e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 19 12:02:44 2013 +0200
Rename ‘nix-build --run-env’ to ‘nix-shell’
commit dc5f2e7da607bdf50bf710cbe0b5f6ff32980e19
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 19 11:23:32 2013 +0200
nix-build --run-env: Add a ‘--pure’ flag
This causes the environment to be (almost) cleared, thus giving a
shell that more closely resembled the actual Nix derivation.
commit a4921b8ceb5bde3fbd1ae25ea4b367199796eded
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 18 12:52:16 2013 +0200
Revert "build-remote.pl: Enforce timeouts locally"
This reverts commit 69b8f9980f39c14a59365a188b300a34d625a2cd.
The timeout should be enforced remotely. Otherwise, if the garbage
collector is running either locally or remotely, if will block the
build or closure copying for some time. If the garbage collector
takes too long, the build may time out, which is not what we want.
Also, on heavily loaded systems, copying large paths to and from the
remote machine can take a long time, also potentially resulting in a
timeout.
commit 16591eb3cccf86da8cd3f20c56e2dd847576ff5e
Author: Shea Levy <shea@shealevy.com>
Date: Fri Jul 12 09:35:33 2013 -0400
Allow bind-mounting regular files into the chroot
mount(2) with MS_BIND allows mounting a regular file on top of a regular
file, so there's no reason to only bind directories. This allows finer
control over just which files are and aren't included in the chroot
without having to build symlink trees or the like.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit c3f5413e806a22d3e664416649687e331b14f8b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 12 14:06:05 2013 +0200
Fix syntax error in unpack-channel
commit aeb810b01e17d040f9592681ee271f15874dce50
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 12 14:01:25 2013 +0200
Garbage collector: Don't follow symlinks arbitrarily
Only indirect roots (symlinks to symlinks to the Nix store) are now
supported.
commit 25a00cae5bf702b9e844b05923a9c59de9df6788
Author: Gergely Risko <gergely@risko.hu>
Date: Tue May 14 15:10:14 2013 +0200
Add gzip support for channel unpacking
commit 620d57f036be5a8b8fa04ee1a2aa2329e652e0f0
Author: Domen Kožar <domen@dev.si>
Date: Sat Jun 29 15:18:05 2013 +0200
doc: typo
commit 6fcc2906194cbbc49a1e8d1862465e891b67d573
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 11 17:16:45 2013 +0200
build-remote.pl: Move "building ..." message to a better place
commit ed09d0c0a436a412893ffe817c842827abbec6ed
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 11 14:40:29 2013 +0200
nix-build --run-env: Always use Bash
Fixes #113.
Fixes #131.
commit 656390062a9b612df3238f9e6a0d5ce89c3de21c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 11 14:32:22 2013 +0200
nix-build --run-env: Source $stdenv/setup in the interactive shell
This ensures that not just environment variables are set, but also
shell functions such as unpackPhase, configurePhase and so on.
commit 212e96f39c5120ef33b363647a58ebfd61fb3f5e
Author: Ludovic Courtès <ludo@gnu.org>
Date: Fri Jul 5 22:21:04 2013 +0200
Leave `HAVE_HUP_NOTIFICATION' undefined on GNU/Hurd.
commit b584a42e3db8302095e786b4a12894d073fd75cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 3 18:35:59 2013 +0200
Manual: auto-optimise-store is disabled by default
commit 5116214343ecce70a3cb7037f223313314a0a614
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 1 21:02:36 2013 +0200
Add support for uncompressed NARs in binary caches
Issue NixOS/hydra#102.
commit 798671163254d9766f711f4e8101bc72bcf4bd5c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 1 13:30:28 2013 +0200
copy-from-other-stores.pl: Respect $NIX_BIN_DIR
commit 1917d750a0363f678a93c80c5a4e48e7493b1786
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 1 13:29:59 2013 +0200
copy-from-other-stores.pl: Report downloaded size as 0
commit 7ccd9464077180f633e65c15906bdda707077e8c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 20 20:05:03 2013 +0200
Don't set $preferLocalBuild and $requiredSystemFeatures in builders
With C++ std::map, doing a comparison like ‘map["foo"] == ...’ has the
side-effect of adding a mapping from "foo" to the empty string if
"foo" doesn't exist in the map. So we ended up setting some
environment variables by accident.
commit 5558652709f27e8a887580b77b93c705659d7a4b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 20 19:26:31 2013 +0200
Don't substitute derivations that have preferLocalBuild set
In particular this means that "trivial" derivations such as writeText
are not substituted, reducing the number of GET requests to the binary
cache by about 200 on a typical NixOS configuration.
commit 1906cce6fcea88d07b55c0b9734da39675e17a4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 20 14:01:33 2013 +0000
Increase SQLite's auto-checkpoint interval
Common operations like instantiating a NixOS system config no longer
fitted in 8192 pages, leading to more fsyncs. So increase this limit.
commit 9b11165aec8639b021527978603423826b6b9cc3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 20 12:01:33 2013 +0200
Disable the copy-from-other-stores substituter
This substituter basically cannot work reliably since we switched to
SQLite, since SQLite databases may need write access to open them even
just for reading (and in WAL mode they always do).
commit 22144afa8d9f8968da351618a1347072a93bd8aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 20 11:55:15 2013 +0200
Don't keep "disabled" substituters running
For instance, it's pointless to keep copy-from-other-stores running if
there are no other stores, or download-using-manifests if there are no
manifests. This also speeds things up because we don't send queries
to those substituters.
commit 2b29e4b8529ec9f4d6904a5142266c02d1b24c99
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 17 15:39:45 2013 +0200
Bump version
commit 6016bcd30ec32e2dfb92e197319ddbdbc4f520be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 17 11:47:38 2013 +0200
Update release notes for Nix 1.5.3
commit 1b6ee8f4c7e74f75e1f49b43cf22be7730b30649
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 17:29:56 2013 +0200
Allow hard links between the outputs of a derivation
commit cd49ee08970f0fa44053fb12cdf29668e8131a51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 17:12:24 2013 +0200
Fix a security bug in hash rewriting
Before calling dumpPath(), we have to make sure the files are owned by
the build user. Otherwise, the build could contain a hard link to
(say) /etc/shadow, which would then be read by the daemon and
rewritten as a world-readable file.
This only affects systems that don't have hard link restrictions
enabled.
commit 1e2c7c04b1125fb63fae733fc27abb86743b8224
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 17:12:06 2013 +0200
Fix assertion failure in canonicalisePathMetaData() after hash rewriting
The assertion in canonicalisePathMetaData() failed because the
ownership of the path already changed due to the hash rewriting. The
solution is not to check the ownership of rewritten paths.
Issue #122.
commit 6cc2a8f8ed7cb53e49bfbd08f462af062da18ce7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 16:43:20 2013 +0200
computeFSClosure: Only process the missing/corrupt paths
Issue #122.
commit bfee9a25815d6f3b90e48ccf5aa4fc055005450a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 14:51:11 2013 +0200
Typo
commit f9ff67e9487a0085ad6536016791242364ce70d9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 13 14:46:07 2013 +0200
In repair mode, update the hash of rebuilt paths
Otherwise subsequent invocations of "--repair" will keep rebuilding
the path. This only happens if the path content differs between
builds (e.g. due to timestamps).
commit 6b05f688ee6849b89e7fb0d3fb7b678f316039e7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 12 12:10:26 2013 +0200
nix-daemon: Trust options like binary-caches when the client is root
Fixes #127.
commit 5c06e5297d3e8660abfa238b7244d958237e54e8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 16:21:48 2013 +0200
download-from-binary-cache.pl: Respect $NIX_CONNECT_TIMEOUT
commit 24a356bf71e8c75bc7dbf9b4a619552b4ebe873c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 15:35:54 2013 +0200
Replace $NIX_DEBUG_SUBST with an option ‘debug-subst’
Thus passing ‘--option debug-subst 1’ allows daemon users to turn on
debug info and see what the substituter is doing.
commit 24e063efdcdc42e6ea4ad0c49595ce60e834f3ab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 15:33:44 2013 +0200
download-from-binary-cache.pl: Show if we're waiting for a URL
Previously, if a binary cache is hanging/unreachable/slow,
download-from-binary-cache.pl would also hang without any indication
to the user. Now, if fetching a URL takes more than 5 seconds, it
will print a message to that effect.
commit ca70fba0bff82465a14ca0d29266b609851a6547
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 15:10:23 2013 +0200
Remove obsolete EOF checks
commit 5959c591a0a6000b6de14eaec37e8139e36dfe0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 15:02:14 2013 +0200
Process stderr from substituters while doing have/info queries
commit c5f9d0d08058bca4af0d22e8d46a7d84627c0aae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 7 14:00:23 2013 +0200
Buffer reads from the substituter
This greatly reduces the number of system calls.
commit 75e12b8e666aa0b689f6b654d37c84be912ff6d4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 5 16:17:06 2013 +0200
download-from-binary-cache.pl: Fix race condition
Fixes the error "DBD::SQLite::db do failed: column url is not unique".
commit f0576d67756fedca0010d20aaed2e9cffd24a108
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 5 13:36:43 2013 +0200
Update the default binary cache URL to cache.nixos.org
commit ff08306746e88e708612cdc6d2dac84bd76f1106
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jun 4 15:20:37 2013 +0200
download-from-binary-cache.pl: Treat a 403 error as a 404
Amazon S3 returns HTTP status code 403 if a file doesn't exist and the
user has no permission to list the contents of the bucket. So treat
it as 404 (meaning it's cached in the NARExistence table).
commit bc2e43f3c826eea5b92a4f255eee59c3bb253cbc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 29 18:18:59 2013 +0200
build-remote.pl: Remove meaningless signing when importing the output paths
The "$UID != 0" makes no sense: if the local side has write access to
the Nix store (which is always the case) then it doesn't matter if
we're root - we can import unsigned paths either way.
commit 039d5a023f2fd0d28438ca1a9493237c95cc05e1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 29 12:36:56 2013 +0200
.bashrc -> .profile
commit b09b87321c058f691fcf64babe56620277b68e63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 23 14:55:36 2013 -0400
nix-store --export: Export paths in topologically sorted order
Fixes #118.
commit 107505e13ac83850fe01ef3e1a35e5bb2ab1ef52
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 23 14:39:58 2013 -0400
build-remote.pl: Copy all outputs in one operation
commit 72d8209548f2ba16e41a2faa850ab9af3616453d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 23 14:04:46 2013 -0400
build-remote.pl: Indicate if remote machine is refusing builds
Fixes #120.
commit 18a48d80a0686ba81959057e8becc6272acd6c46
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 16 19:08:02 2013 +0200
Show function names in error messages
Functions in Nix are anonymous, but if they're assigned to a
variable/attribute, we can use the variable/attribute name in error
messages, e.g.
while evaluating `concatMapStrings' at `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/strings.nix:18:25':
...
commit 1b3a03f1610b714adca41637ccd85a8157e236ab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 16 17:56:14 2013 +0200
Show which function argument was unexpected
Fixes #116.
commit 229567293c4e0f31bc8c79f69b2ff25f8f6e5147
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 16 17:48:19 2013 +0200
Shut up a compiler warning
commit a4cb62ac25931b269a9827beb1d1274b48c44f7c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 15 15:47:05 2013 +0200
download-from-binary-cache.pl: Get rid of an uninitialized value warning
Reported by Pablo Costa.
commit 31a551a60fb8c8cc8f1887f764d88c121ac1a3cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 13 23:50:31 2013 +0200
Bump version
commit 6e85d1b5ba824d5a9eeb7ea3d065d1b8cc07e465
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 13 16:52:08 2013 +0200
Bump release date
commit 3a0cc43ac89ae8f778764c9f5e27b361e4986913
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 10 02:38:05 2013 +0200
build-remote.pl: Properly close the SSH connection between attempts
commit be0b9dda31ab42bb2e077751fc75abbc945e407f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 10 02:32:13 2013 +0200
build-remote.pl: Pass /dev/null as SSH's stdin
Otherwise it will set the parent's stdin to non-blocking mode, causing
the subsequent read of the set of inputs/outputs to fail randomly.
That's insane.
commit 78206f06ecb2f5d6dba85b5f709251030e966f1c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 10 01:09:46 2013 +0200
build-remote.pl: Allow a machine to refuse a build
Before selecting a machine, build-remote.pl will try to run the
command "nix-builds-inhibited" on the machine. If this command exists
and returns a 0 exit code, then the machine won't be used. It's up to
the user to provide this command, but it would typically be a script
that checks whether there is enough disk space and whether the load is
not too high.
commit 2ee9da9e22ecaad1cc5ad0f940e7b079a9e62cfa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 10 00:24:33 2013 +0200
In trace messages, don't print the output path
This doesn't work if there is no output named "out". Hydra didn't use
it anyway.
commit 6eba05613a2b794fead0cc9ef45eea036c5c5ea9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 9 18:39:04 2013 +0200
Communicate build timeouts to Hydra
commit 7a03cbf09dc5ecf16a1036fc83ace0e0ccec5626
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 9 17:30:07 2013 +0200
build-remote.pl: Create one process fewer on the remote side
commit 69b8f9980f39c14a59365a188b300a34d625a2cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 9 17:17:17 2013 +0200
build-remote.pl: Enforce timeouts locally
Don't pass --timeout / --max-silent-time to the remote builder.
Instead, let the local Nix process terminate the build if it exceeds a
timeout. The remote builder will be killed as a side-effect. This
gives better error reporting (since the timeout message from the
remote side wasn't properly propagated) and handles non-Nix problems
like SSH hangs.
commit e93acab85298cf3433d1938828e7772e8faa55dc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 8 14:41:35 2013 +0200
Build Fedora 18 RPMs
commit 806970349b494e03ecf531383874ee472810c07b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 7 15:46:25 2013 +0200
Update release date
commit ea019e9a269ae35fdf8861485fe16e622f8293f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 7 15:37:28 2013 +0200
Add option ‘extra-binary-caches’
This allows providing additional binary caches, useful in scripts like
Hydra's build reproduction scripts, in particular because untrusted
caches are ignored.
commit cc837e24586eec62d07e0cb078e02caa6ee42171
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 7 11:21:30 2013 +0200
Build Debian 7.0 debs
commit 28034bfa49b258089d5e8d36e89677836acb8eab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 3 14:14:46 2013 +0200
Build Ubuntu 13.04 debs
commit 93f4fa8a15ce6d4ff6b14843a712990ca0f23dc5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 3 11:28:32 2013 +0200
Update release notes
commit c51b6a893ca6fcce86b40c4852cfa7f0ce3065fd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 3 11:12:11 2013 +0200
nix-copy-closure: Show a proper error message if no host name is given
commit e6c44d166a63abe95a02382386246acea8757951
Author: Lluís Batlle i Rossell <viric@viric.name>
Date: Wed May 1 22:44:37 2013 +0400
Fixing the pv position regarding compression
Problem noticed by niksnut.
commit 7391533ea57268a7f0aab433dad41b905e156be6
Author: Lluís Batlle i Rossell <viric@viric.name>
Date: Thu Apr 11 19:54:38 2013 +0200
Fixing the pv reference; I didn't mean to change it
commit 5cc2fc46ecd4ad38a42591943fc29d412ad5cfc4
Author: Lluís Batlle i Rossell <viric@viric.name>
Date: Thu Apr 11 19:52:21 2013 +0200
Adding ETA support to the --show-progress in nix-copy-closure
Based on https://github.com/NixOS/nix/pull/6 from shlevy
commit 3628b61ce0aaff43daf37d086697c7c3f9c8ef13
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 1 13:31:33 2013 +0200
Nix 1.5.2 release notes
commit 470553bd0572c4010407acb4e410b45a521e5f11
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 1 13:21:39 2013 +0200
Don't let stderr writes in substituters cause a deadlock
commit 4ddd077bfa9ad497e795a7f60d7734daf62117c1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 26 12:15:54 2013 +0200
find-runtime-roots.pl: Don't hardcode /nix/store
commit 0374d9443732c184ab054a926058b9c5b973198f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 26 12:07:25 2013 +0200
addAdditionalRoots(): Check each path only once
commit 00f698eb8b93c9de50ebbadb946c5bf188e8fa98
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 26 12:06:39 2013 +0200
find-runtime-roots.pl: Search process environments for roots
For instance, this prevents paths from being deleted that are in use
by a "nix-build --run-env" session.
commit 938092a21341b69604e9da6294fe76c13d6a1c07
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 26 11:44:19 2013 +0200
find-runtime-roots.pl: Use Nix::Utils::readFile
commit 772b70952f7583cfbd6363b30f926d7ad164175c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 18:04:59 2013 +0200
Fix --timeout
I'm not sure if it has ever worked correctly. The line "lastWait =
after;" seems to mean that the timer was reset every time a build
produced log output.
Note that the timeout is now per build, as documented ("the maximum
number of seconds that a builder can run").
commit f9974f856ec8aff848b157da7dbe0415ec50ab8f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 17:16:29 2013 +0200
Show that --timeout doesn't work if the build produces log output
commit 6955d41f2be32c3bb857703c3e006e24d787d540
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 17:16:01 2013 +0200
nix-build: Respect --timeout
commit 934cf2d1f4c46ecd6afd30cfb14aa55a6bf3d790
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 16:59:06 2013 +0200
Nix daemon: respect build timeout from the client
commit 08d96ffad094f4b686a2ad8f2a41a6b046b0f81b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 12:45:01 2013 +0200
Fix --fallback with the binary cache substituter
Reported by Peter Simons.
commit a9b4e26b5c3ce6259526fe038c771b9325d3e99e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 12:44:01 2013 +0200
Test whether --fallback works if NARS have disappeared from the binary cache
commit c642441beb504278819e43914516b5eda30f2c15
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 23 12:43:28 2013 +0200
Test NAR info caching
commit 05420e788315f04212fe936313b3ff7b580a206c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 9 17:57:48 2013 +0200
Manual: Add a missing step to the build instructions
Reported by Johan Grande.
commit 258897c265a6d6575f1669a896ab6f5ab92337c3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 4 11:16:26 2013 +0200
Complain if /homeless-shelter exists
commit 239841787bfbf499256c0bb9358f058a8243d60a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 25 21:59:11 2013 +0100
Fix evaluation of the VM tests
commit cc63db1dd5c37aead3e3d2e20e2d2f548cc24830
Author: Shea Levy <shea@shealevy.com>
Date: Thu Mar 7 22:53:49 2013 -0500
makeStoreWritable: Ask forgiveness, not permission
It is surprisingly impossible to check if a mountpoint is a bind mount
on Linux, and in my previous commit I forgot to check if /nix/store was
even a mountpoint at all. statvfs.f_flag is not populated with MS_BIND
(and even if it were, my check was wrong in the previous commit).
Luckily, the semantics of mount with MS_REMOUNT | MS_BIND make both
checks unnecessary: if /nix/store is not a mountpoint, then mount will
fail with EINVAL, and if /nix/store is not a bind-mount, then it will
not be made writable. Thus, if /nix/store is not a mountpoint, we fail
immediately (since we don't know how to make it writable), and if
/nix/store IS a mountpoint but not a bind-mount, we fail at first write
(see below for why we can't check and fail immediately).
Note that, due to what is IMO buggy behavior in Linux, calling mount
with MS_REMOUNT | MS_BIND on a non-bind readonly mount makes the
mountpoint appear writable in two places: In the sixth (but not the
10th!) column of mountinfo, and in the f_flags member of struct statfs.
All other syscalls behave as if the mount point were still readonly (at
least for Linux 3.9-rc1, but I don't think this has changed recently or
is expected to soon). My preferred semantics would be for MS_REMOUNT |
MS_BIND to fail on a non-bind mount, as it doesn't make sense to remount
a non bind-mount as a bind mount.
commit 2c9cf5074642459b37f19a2d4c6bc0233248d3a4
Author: Shea Levy <shea@shealevy.com>
Date: Thu Mar 7 19:39:55 2013 -0500
makeStoreWritable: Use statvfs instead of /proc/self/mountinfo to find out if /nix/store is a read-only bind mount
/nix/store could be a read-only bind mount even if it is / in its own filesystem, so checking the 4th field in mountinfo is insufficient.
Signed-off-by: Shea Levy <shea@shealevy.com>
commit c3fc60d9369fc802b33f75d2d9cd6ef22b916112
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 18 21:49:42 2013 +0100
Fix evaluation
commit f72ed360250fd04138358463b5d1965d81160e0d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 15 14:21:05 2013 +0100
Bump version number
commit 78d777ca15a5212bef7d6674adf0ed1abadce883
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 15 13:18:49 2013 +0100
Remove the "system" jobset input
commit a68ebf8e376a2f712cb7b00442e66c0c416026b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Mar 14 18:33:15 2013 +0100
Require Bison 2.6
commit 804709706c56c207f1eb9033f98b213216672269
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Mar 14 18:31:08 2013 +0100
Fix building against Bison 2.6
commit c56bc3d81cdcc09daf331b253a42cd155a9bd5f2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Mar 14 17:21:13 2013 +0100
Make sure that thunks are restored properly if an exception occurs
Fixes Hydra bug #67.
commit 4b07476848f7738c07a5b0894ad7a848ee2e9c9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 8 01:27:04 2013 +0100
Prevent config.h from being clobbered
commit bdd4646338da296fdf3a8f9dc3cf5aff1dafa163
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 8 01:24:59 2013 +0100
Revert "Prevent config.h from being clobbered"
This reverts commit 28bba8c44f484eae38e8a15dcec73cfa999156f6.
commit e73d9e948887621906363a35c980538294898a02
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Mar 8 00:27:32 2013 +0100
Fix annoying Perl 5.16 warnings
I.e.
Subroutine Nix::Store::isValidPath redefined at /nix/store/clfzsf6gi7qh5i9c0vks1ifjam47rijn-perl-5.16.2/lib/perl5/5.16.2/XSLoader.pm line 92.
and so on.
commit 28bba8c44f484eae38e8a15dcec73cfa999156f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Mar 7 23:55:55 2013 +0100
Prevent config.h from being clobbered
commit 8057a192e3254c936fa0bcb5715e09600a28e8f8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 28 19:55:09 2013 +0100
Handle systems without lutimes() or lchown()
commit 9fa1bee575886b76c3a23af37f9f3ce2ce52733c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 28 19:36:02 2013 +0100
Update release notes
Also use a point release version number as suggested by several
people.
commit f45c731cd7740cfd479d8704de16ee49e51fe06e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 28 14:51:08 2013 +0100
Handle symlinks properly
Now it's really brown paper bag time...
commit 88936411bcdd344d04e3a9ae0cd5389650551784
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Feb 28 13:03:53 2013 +0100
Bump version number
commit 0111ba98ea0a91965ebb215b408ee1c10286a245
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 27 17:18:41 2013 +0100
Handle hard links to other files in the output
commit b008674e4616cd2596d8b02273deb52f8bcb7d6c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Feb 27 16:35:46 2013 +0100
Refactoring: Split off the non-recursive canonicalisePathMetaData()
Also, change the file mode before changing the owner. This prevents a
slight time window in which a setuid binary would be setuid root.
commit 826dc0d07d3b1ea6669f4ba42f73d1d29fe49642
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 26 14:32:48 2013 +0100
Remove outdated file
commit 97c6009c47d687fecbc0e49df421546b64a4c94b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 26 14:32:14 2013 +0100
Bump version number
commit ca9c02dff1449ff4c05ce86200ef73c2ff2883ab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 26 13:23:09 2013 +0100
Update release notes
commit 5526a282b5b44e9296e61e07d7d2626a79141ac4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 26 02:30:19 2013 +0100
Security: Don't allow builders to change permissions on files they don't own
It turns out that in multi-user Nix, a builder may be able to do
ln /etc/shadow $out/foo
Afterwards, canonicalisePathMetaData() will be applied to $out/foo,
causing /etc/shadow's mode to be set to 444 (readable by everybody but
writable by nobody). That's obviously Very Bad.
Fortunately, this fails in NixOS's default configuration because
/nix/store is a bind mount, so "ln" will fail with "Invalid
cross-device link". It also fails if hard-link restrictions are
enabled, so a workaround is:
echo 1 > /proc/sys/fs/protected_hardlinks
The solution is to check that all files in $out are owned by the build
user. This means that innocuous operations like "ln
${pkgs.foo}/some-file $out/" are now rejected, but that already failed
in chroot builds anyway.
commit dadf7a5b46f08b59c7e15a40937a9039ef273d63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 19 16:56:31 2013 +0100
build-remote: Use the --quiet flag
‘--option verbosity 0’ doesn't actually do anything.
commit 3e067ac11c1621f989011432f619652a9c20e6f4
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon Feb 18 23:05:40 2013 +0100
Add `Settings::nixDaemonSocketFile'.
commit 5ea138dc4b9822095723b75bc2962e3d899f5437
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon Feb 18 23:05:39 2013 +0100
Enable chroot support on old glibc versions.
commit 79a3ba7fa3cd23b31ea43007899ed79f181d4faf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 8 20:02:58 2013 +0100
Document ‘hashString’
commit 5f18cd2e84bb4d7405f7dbcc8b6554365556a3a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 8 19:49:24 2013 +0100
Make "${./path} ..." evaluate to a string, not a path
Wacky string coercion semantics caused expressions like
exec = "${./my-script} params...";
to evaluate to a path (‘/path/my-script params’), because
anti-quotations are desuged to string concatenation:
exec = ./my-script + " params...";
By constrast, adding a space at the start would yield a string as
expected:
exec = " ${./my-script} params...";
Now the first example also evaluates to a string.
commit 52172607cfc33867c0cdb526bef99c315e98baa2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Feb 8 19:36:23 2013 +0100
Rename "hash" to "hashString" and handle SHA-1
commit 01a5ea9914b3933e63a88184861900615be76e12
Author: Marc Weber <marco-oweber@gmx.de>
Date: Thu Feb 7 00:03:46 2013 +0100
experimental/hash
adding primop function calculating hash of a string
Signed-off-by: Marc Weber <marco-oweber@gmx.de>
commit 8add116acd050bdcca84b8a092420566a6e6692c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Feb 5 16:02:57 2013 +0100
Nix::Store::derivationFromPath: Return derivation outputs
commit d6143801fdba7354180d8a56ae86f7825178dff2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 30 18:49:19 2013 +0100
Support the colonies
commit 9842077cb2bd968e0b14502609cf41741e170d33
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 24 13:00:44 2013 +0100
Improve -I description
Issue #88.
commit 5e9c3da41282970d5a496d1327de69cc1274d353
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 23 16:45:10 2013 +0100
Only warn about SQLite being busy once
No need to get annoying.
commit 99ed558a93216288e50b11132f2a00a74cc6bb7f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jan 22 22:07:25 2013 +0100
Correctly handle missing logs
commit 1943b60ad820730a74d1dffcdddac396d0c1cb00
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 21 22:36:23 2013 +0100
Fix the VM tests
commit 96fbbbde55d6f226fc49299ed753761edfb6ad77
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 21 22:26:25 2013 +0100
build-remote.pl: Don't keep build logs on the build slave
commit d6fd6d8aff06740f6c2595d13482d9183c11d243
Author: Shea Levy <shea@shealevy.com>
Date: Fri Jan 18 19:59:23 2013 -0500
corepkgs/fetchurl: Enable making the downloaded file executable
commit 536c85ea49c16a2ecd5a1ba169975b296cd6158c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 17 15:37:52 2013 +0100
Store build logs in /nix/var/log/nix/drvs/<XX>
...where <XX> is the first two characters of the derivation.
Otherwise /nix/var/log/nix/drvs may become so large that we run into
all sorts of weird filesystem limits/inefficiences. For instance,
ext3/ext4 filesystems will barf with "ext4_dx_add_entry:1551:
Directory index full!" once you hit a few million files.
commit 66fa9e6a4d7cf4c0a32d33adfc464f84c492f6d1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jan 7 14:48:44 2013 +0100
Bump version number to 1.4
commit e42df686f309c5cd08a8653207e79e9caae37b67
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jan 5 00:13:29 2013 +0100
Delete a left-over trash directory before doing a GC
commit 92926be2fe15b25759e8e3e129a093798f8c37b6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jan 4 15:17:19 2013 +0100
Fix "0 store paths deleted" message
commit b424d29d1b2fb99c654f1cffe6cd57b298c0ab33
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 3 13:29:17 2013 +0100
Open the database after removing immutable bits
commit 3007f5737734856b58768f83edefe8574f373333
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 3 13:00:46 2013 +0100
Remove tabs
commit def5160b614a59a0aa96fe2252e3daa00146e061
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jan 3 12:59:23 2013 +0100
Clear any immutable bits in the Nix store
Doing this once makes subsequent operations like garbage collecting
more efficient since we don't have to call makeMutable() first.
commit 0a4e90395c3286a246b816575351b9f2016976ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 23:52:15 2013 +0100
Urgggh
http://hydra.nixos.org/build/3661100
commit f12492c66dc5c71c22ce2eb1788dacd86b1dfb1f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 22:36:08 2013 +0100
Manual: Fix "nix-store --export" example
commit aebea2e489a21af260e7a654b0313efe042fbf9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 22:16:37 2013 +0100
Reinstate the http://nixos.org/binary-cache default for the binary-caches setting
commit 649bb60617e5413a87625a0c23e5ebd4f6229703
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 22:12:19 2013 +0100
Use sysconfdir=/etc
commit 42d6f640c13e292593d4141b8bae0a2da4ee6ef8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 12:59:49 2013 +0100
Update release notes
commit 299141ecbd08bae17013226dbeae71e842b4fdd7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 12:38:28 2013 +0100
If a substitute closure is incomplete, build dependencies, then retry the substituter
Issue #77.
commit 1b3a78a4597c6c1d94fc51aa0520252aab21a2c8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 12:00:26 2013 +0100
Automatically fall back if the references of a substitute are not substitutable
Fixes #77.
commit 82248abd8f2967f72b965c0ba7774815068c4962
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jan 2 11:45:23 2013 +0100
Add a test for incomplete closures in the binary cache
Issue #77.
commit 12f9129f60651793e319171236e006aecfdc34be
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Dec 29 23:21:46 2012 +0100
nix-build: Support talking to old daemons
Fixes #76.
commit b7629778efcfeb9ea876616feb869457cd2bf071
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Dec 29 23:04:02 2012 +0100
Allow mounting a path in a different location in the chroot
Fixes #24.
commit 68dcbb187e540034e85b5b77d1b37cec1759a587
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 21 15:00:07 2012 +0100
download-from-binary-cache: Use the channels of the calling user rather than root
This should make live easier for single-user (non-daemon)
installations. Note that when the daemon is used, the "calling user"
is root so we're not using any untrusted caches.
commit 5ee7d8fbab71b9eef94f1eecd38de511d00f6149
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 21 00:18:59 2012 +0100
Typo fix
commit 2754a07eadfa3fe263f83830c701748bbd4c0420
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 20 18:41:44 2012 +0100
nix-store -q --roots: Respect the gc-keep-outputs/gc-keep-derivations settings
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.
commit 06f62defe640517267a6a16dd222076c822f3123
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 20 17:32:15 2012 +0100
Yet another rewrite of the garbage collector
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.
commit 9c29a2ed35d884cda182cea74aee2a7ee614de93
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 20 12:22:13 2012 +0100
Give a better error message if writeFile fails due to permission issues
commit e775d4d84fe4b90464b00d560ceb79665301d79b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 19 15:33:09 2012 +0100
If gc-keep-derivations is set, only keep the actual deriver
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).
commit fbf0b2fa45c883f1f5e0c8f5397fcf62a4df9207
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 19 11:47:42 2012 +0100
Kill the build hook rather than shutting it down cleanly
Waiting for the hook to shut down cleanly sometimes seems to lead to
hangs.
commit 228ea7c2f988523d2c168f97975ab0e85f412e78
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 18 20:43:47 2012 +0100
Revert brain fart
This reverts commit cc511fd65b7b6de9e87e72fb4bed16fc7efeb8b7.
commit cc511fd65b7b6de9e87e72fb4bed16fc7efeb8b7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 18 18:50:05 2012 +0100
Check for potential infinite select() loops when building
commit a9045c727fab1cdcc530bc18e651334cf892d62c
Author: Stuart Pernsteiner <stuart@pernsteiner.org>
Date: Wed Dec 12 21:13:26 2012 -0800
fix use-after-free bug in mkString(Value&, Symbol&)
commit 9fa12fc2015c9cbc34bcf9d83e7396ba5dbc81a9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 12 16:01:46 2012 +0100
Allow setting the profile location using $NIX_PROFILE
Fixes #69.
commit 3ad53e43c8ca35cc581ebc3dd880c11892c8e016
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 11 16:50:21 2012 +0100
Debian package: Add dependency on libwww-curl-perl
Fixes issue #70.
commit 772778c0eced8f8d63bfe6b1e9801ad6aada65bf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 11 11:49:42 2012 +0100
On SQLITE_BUSY, wait a random amount of time
If all contending processes wait a fixed amount of time (100 ms),
there is a good probability that they'll just collide again.
commit e087bfef5f36f309b1c8d01bfe297e4cf4decb34
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Dec 7 13:14:04 2012 +0100
Bump version number
commit a6ce6d9e7cc0b95b8fc45ebf011ec10cc8eb0ff4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 6 16:55:57 2012 +0100
Fix manual generation
Grmbl.
commit 8cc19ed0892137a77d95250ffe1e5bc29ff2ebaf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Dec 6 11:43:34 2012 +0100
Set a long SQLite timeout in the binary cache substituter
commit 52edef34950354ecccbe8e1bf3f1aced3872b5c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 23:25:40 2012 +0100
Fix RPM build
http://hydra.nixos.org/build/3436627
commit 8d100dbef1f2aeb90b73d659e0c9691be182d9ac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 12:18:07 2012 +0100
Add a dependency on xz-utils
commit 5c487761c4df2aafd2f7d0f33f15adcc3dd45a82
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 12:17:12 2012 +0100
Add a dependency on xz
commit 3631dc6b2f8424018982f1b8a1c44e3d2f9e356e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 12:15:06 2012 +0100
Typo
commit aa61bc74729e1b96f6f345ff65fa6bd5de03df91
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 12:05:43 2012 +0100
Fix RPM build
http://hydra.nixos.org/build/3436511
commit 0f96966a44d76e0b625c0b17d02cc53b5233245d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 11:03:06 2012 +0100
Add release date
commit 566afa1e9c804dd4a893960f30325a38c81a4c51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 11:02:44 2012 +0100
Support xz compression of nixexprs.tar in channels
commit 444b03a36fc038f030241d3d006d13ba2ae12e6b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 10:23:53 2012 +0100
Produce an xz-compressed tarball
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.
commit d5a01d0f9dfda5a47461ab81e381a7035881b3ef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Dec 5 09:54:41 2012 +0100
Build Debs for Ubuntu 12.10
commit a7b4aaa2c342437b14b82f216613759acc1208d5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 17:41:51 2012 +0100
Updated release notes
commit 3100b29fc51b46c76f6aca1fffc62881ca10de64
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 17:22:20 2012 +0100
Tiny optimisation in the filter primop
commit 094a08f8396c913b6023ae2bf1c6615470e7cc45
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 17:15:32 2012 +0100
Document new primops
commit 4387d19359780a03c8e60bf7b0687668c9ed88ca
Author: Florian Friesdorf <flo@chaoflow.net>
Date: Tue Dec 4 16:32:38 2012 +0100
nix-channel --update needs bzip2
commit 24d5875514ac4344643988077060e792252d135c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 16:03:56 2012 +0100
Document multiple output support
commit b215b23e9ee481dff55f8f0acf1232f608e5babb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 14:47:50 2012 +0100
Test priorities
commit 56d29dcd62ff5ff65b24da335a5119179c191806
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 14:45:32 2012 +0100
buildenv.pl: Create symlinks in priority order
This reduces unnecessary symlink/unlink steps.
commit 2d5e8e267b58f531f00b043c9e3dbaefad62a4a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 14:30:34 2012 +0100
Add a test for ‘nix-env --set-flag active ...’
commit 5ad89398d12bf8bc83426036dedc2c601ff8f795
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Dec 4 14:20:36 2012 +0100
nix-env: Install all outputs of a derivation
If you explicitly install a package, presumably you want all of it.
So symlink all outputs in the user environment.
commit 21c2d8d102add45b8eda61c084aa072f8861a0ff
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 3 21:02:06 2012 +0100
Test the ‘--prebuilt-only’ flag
commit d62fc71b851295b4c5692ec5fa362a06172e66ae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 3 21:01:41 2012 +0100
Fix the ‘--prebuilt-only’ flag
commit 4bb4d5479a8a2c2ed04bd65312ce1bfb6d2c0b13
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Dec 3 18:19:49 2012 +0100
Whitespace
commit 8eed07cda4c193bfcdd6ac4345ac6fb54aee0269
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Nov 28 13:49:44 2012 +0100
nix-env -q --out-path: Support multiple outputs
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>
commit 6c98e6a5dec2bcbc25ddeb2c279aa4a0b274bd6a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 27 15:01:32 2012 +0100
Optionally ignore null-valued derivation attributes
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.
commit 8b8ee53bc73769bb25d967ba259dabc9b23e2e6f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 27 13:29:55 2012 +0100
Add builtin constants ‘langVersion’ and ‘nixVersion’
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".
commit 5943f41b8bd95b8559cb6768bb0a1151f6bee68d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 18:25:12 2012 +0100
queryMissing(): Handle partially valid derivations
commit 08964d7328f09a703467e4045e34023837a4cc01
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 17:57:14 2012 +0100
Undo accidental debug change
commit 69c88f5028b4b2d5d2500dc4f631d77ac1d2c5fd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 17:46:45 2012 +0100
Fix the multiple-outputs test
commit 408a7bfac1f4282ff6647696dfbc7988eed3a2ca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 17:39:09 2012 +0100
nix-instantiate: Fix read-only evaluation
commit 8d8d47abd2a66898aa5d8999fcd75b29991e529d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 17:15:09 2012 +0100
Only substitute wanted outputs of a derivation
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.
commit 46a369ad9558939bc2c6ee588df483ca503bbb5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 26 15:39:10 2012 +0100
Make "nix-build -A <derivation>.<output>" do the right thing
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.
commit a3d6585c5a1006d4f9ebd2163d06f86ab71a4a3e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 23 16:20:16 2012 +0100
nix-copy-closure: Add flag ‘--use-substitutes’
commit 9de6bc5d05027363f968c20e53e8c3d5aa34f8b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 20 00:27:25 2012 +0100
nix-store -r: Add ‘--ignore-unknown’ flag
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.
commit bf3725da2a1e4e91fc34b5faeb55bb3c02f68674
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Nov 19 23:51:56 2012 +0100
nix-store -r: Don't quietly ignore missing paths
commit 17dc306aa32c48dcde6bfc12ad5e4b48f6b88974
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 15 23:04:34 2012 +0100
Revert "prim_toPath: Actually make the string a path"
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
commit f794465ca8bd2a8d41ee3b6928db5fb1479dc96d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 15 19:35:18 2012 +0100
Disable use of vfork()
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.
commit 8541d27fce95f1f6a4a6c89bcbc09503ff7ea092
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 15 15:01:02 2012 +0100
Don't use std::cerr in a few places
Slightly scared of using std::cerr in a vforked process...
commit 3acc8adcad4066329913cf9ad4e1ccc535f73032
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Nov 15 13:55:02 2012 +0100
Add some debug code
commit ea89df2b76811505239b508a570ac9c0ea591038
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 18:00:33 2012 +0100
Use vfork() instead of fork() if available
Hopefully this reduces the chance of hitting ‘unable to fork: Cannot
allocate memory’ errors. vfork() is used for everything except
starting builders.
commit 48c19c4633b1443015531ee3032b16b29b0a92f9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 17:59:41 2012 +0100
Remove definition of non-existant function
commit 198dbe7fa1807f7464ef7c15c3fd0d230f7b844e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 16:58:51 2012 +0100
Remove some redundant close() calls
They are unnecessary because we set the close-on-exec flag.
commit 10dcee99ed62a775c05f34aa70449945d537e1a2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 16:42:10 2012 +0100
Remove the quickExit function
commit 4c9e3fa6412f736ce422f8deb0ba825999b66b0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 16:35:42 2012 +0100
Remove a Darwin hack that should no longer be needed
commit 182e15b66135a83d60d662a9e480831018572073
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 16:30:15 2012 +0100
Manual: Don't use a store path in our closure
http://hydra.nixos.org/build/3313227
commit 88164325fac228e8e27fdea27776416d67a85dd6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 15:09:31 2012 +0100
Fix a segfault when auto-calling a "a@{...}" function
Since the called function can return its argument attribute set
(e.g. "a"), the latter should not be allocated on the stack.
Reported by Shea.
commit f581ce0b0cb86670db2b806f98ac0ec368b8cdc1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 14:58:10 2012 +0100
Don't start copy-from-other-stores if $NIX_OTHER_STORES is unset
Slight optimisation.
commit 91ef4d9a81827177963bcf7708af3a46217fd0e9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 14:43:47 2012 +0100
Remove unnecessary call to closeMostFDs()
We have close-on-exec on all FDs now, and there is no security risk in
passing open FDs to substituters anyway.
commit a9a8baaccbe1c8291d0cfd42fe3c87377b105381
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 13:33:35 2012 +0100
Use a shorter Nixpkgs channel URL
commit c31ebc50aaaf011f020b7314baa9921aae1050a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Nov 9 13:33:24 2012 +0100
Update release notes
commit e28b683324388f33b89ee40d7a7e25dcd8f98109
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 17:55:53 2012 +0100
download-from-binary-cache: Try next cache if downloading a NAR fails
commit bbc107ef1e850d73dbe9a21c567b34f5939570c6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 17:45:20 2012 +0100
Process binary caches in order of priority
Binary caches can now specify a priority in their nix-cache-info file.
The binary cache substituter checks caches in order of priority. This
is to ensure that fast, static caches like nixos.org/binary-cache are
processed before slow, dynamic caches like hydra.nixos.org.
commit 3a95e1a17cd2755f00c26eb16ffd066bc6aa1a8d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 15:49:53 2012 +0100
Update nix-push manpage and document the binary cache format
commit 82951e5582ae7927cb90320accb989214ce07142
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 13:53:53 2012 +0100
nix-push: Handle pushing a symlink
commit 620e92e880f8a011c5f465ea4fee2abf857d4ab2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 13:44:59 2012 +0100
Add an option ‘use-binary-caches’
This allows disabling the use of binary caches, e.g.
$ nix-build ... --option use-binary-caches false
Note that
$ nix-build ... --option binary-caches ''
does not disable all binary caches, since the caches defined by
channels will still be used.
commit df27db712df658dc9b7548b55fd65a15515d4d85
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Nov 6 13:43:46 2012 +0100
Fix "Not an ARRAY reference" error
It's a mystery why this error is not triggered in the build farm
(e.g. http://hydra.nixos.org/build/3265602). Ah well.
commit d0fc615af658cb83e858b3c3c5e0d4c6c539ad66
Author: Shea Levy <shea@shealevy.com>
Date: Mon Nov 5 23:00:21 2012 -0500
canonicalizePathMetaData: Fall-back to utimes if lutimes fails due to ENOSYS
commit 4c34d384e68ce7e2c949a7588d80bbe7d5a96440
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 23 18:05:50 2012 +0200
If hashes do not match, print them in base-32 for SHA-1/SHA-256
Fixes #57.
commit a28b4445a4eb8108dfc028083d3939d5f3a42685
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 23 18:04:00 2012 +0200
nix-prefetch-url: Improve option handling
commit 2980d1fba97069805c3649c5d99d0356bce6c303
Author: Shea Levy <shea@shealevy.com>
Date: Tue Aug 28 22:12:05 2012 -0400
prim_toPath: Actually make the string a path
commit dde6486eabbabf83e2d7aa65cde8eadfee108bdd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 18 10:36:16 2012 -0400
nix-push: Add a flag ‘--manifest-path’ to write the manifest to another directory
commit c8daeba30328c83328b632f8f45920d85d7d1968
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 17 17:01:23 2012 -0400
nix-push: Add ‘--link’ flag
If ‘--link’ is given, nix-push will create hard links to the NAR files
in the store, rather than copying them. This is faster and requires
less disk space. However, it doesn't work if the store is on a
different file system.
commit 167e36a5c3127da63d120d9fdaf5e046b829f287
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 17 16:45:04 2012 -0400
nix-push: Only generate and copy a NAR if it doesn't already exist
This prevents unnecessary and slow rebuilds of NARs that already exist
in the binary cache.
commit ac238d619c2469ea89b8707ae340d3f19c77eadf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Oct 12 10:21:04 2012 -0400
Typo
Reported by Shea.
commit 600daf972f9157d358841f76b3292b667c97666f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 11 14:21:22 2012 -0400
download-from-binary-cache: Remove duplicate entries in trustedURLs
commit e34518205533a90e9664d7ab3888818e669e11cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 11 14:03:06 2012 -0400
Shorten the names of temporary build directories
commit ecedd9c50c50bb42accf27394193bb7ef80c75b0
Author: Mats Erik Andersson <gnu@gisladisker.se>
Date: Wed Oct 10 11:10:28 2012 +0200
Out-of-tree building of perl modules.
commit 70f75be199d8db959d313dc40111893fba56415f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 4 15:22:25 2012 -0400
getDerivation(): Don't always quietly ignore assertion failure
Ignoring assertion failures makes some sense for nix-env -qa, but not
for nix-instantiate/nix-build or hydra-eval-jobs.
commit ad328bea15e2708e5aa784c33ba8bfbc86d02e0d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 4 14:07:36 2012 -0400
XML writer: flush after newlines
This is useful for hydra-eval-jobs.
commit bfaa5635de8ed83085dfeb265227cc25a32ce07c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 4 13:37:30 2012 -0400
Manual: Don't use a store path that actually exists
http://hydra.nixos.org/build/3124130
commit 904f50412cdd0b7d0ef4933e7a5b652a9454d644
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 4 10:20:23 2012 -0400
nix-store --verify: Continue on errors
commit 90b8a34f821610a867b3a60d91c8e86267864be2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Oct 4 09:46:10 2012 -0400
Fix regular expression
http://hydra.nixos.org/build/3123177
commit d1de83693821c0cc46810e835509a89b46311d4a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 21:01:03 2012 -0400
Fix the tarball build
commit f766e146f484a10e0bfd3f29b1ba59cc38007b63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 18:01:35 2012 -0400
Fix the test
commit e35d6f78dc797150451f5134833afa0ecdf4a241
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 17:57:20 2012 -0400
Rename nix-worker to nix-daemon
commit 522ecab9b83902de5a3010b50b9532e376cbba4c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 17:30:45 2012 -0400
Drop support for running nix-worker in "slave" mode
AFAIK nobody uses this, setuid binaries are evil, and there is no good
reason why people can't just run the daemon.
commit 7586095504f238a35937426aa870cb6d2a7b2862
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 16:54:40 2012 -0400
Remove bin2c
commit a562d544d8520a0f113ad1a348e28ea00f27b693
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 16:37:06 2012 -0400
When ‘--help’ is given, just run ‘man’ to show the manual page
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).
commit 9c41c66c5b877dbb529f6147b28384a57a591895
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 15:53:25 2012 -0400
Document ‘--repair’
commit 2bbc4a214ee998816921cefb2d69f30d5f277d12
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 15:35:42 2012 -0400
nix-env: Support ‘--repair’ flag
commit 2e90a5a2a7646f4ab36202d6a149518ccb6f750e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 15:14:02 2012 -0400
nix-build: Support ‘--repair’ flag
commit 0a7084567fc4e7d077863075a7ea1bb82d843341
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 15:09:18 2012 -0400
Add a ‘--repair’ flag to nix-instantiate
This allows repairing corrupted derivations and other source files.
commit a807edfae8428bf426ee6ae849a7a24d74d39202
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 11:20:16 2012 -0400
Handle repairing paths that are in build-chroot-dirs
commit a3f205b24954c7f0983a937b0b9b3d64c22a2fa7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Oct 3 10:38:09 2012 -0400
When repairing a derivation, check and repair the entire output closure
If we find a corrupted path in the output closure, we rebuild the
derivation that produced that particular path.
commit 2001895f3d2668549feb60a182aa624a7b6292eb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 2 17:13:46 2012 -0400
Add a --repair flag to ‘nix-store -r’ to repair derivation outputs
With this flag, if any valid derivation output is missing or corrupt,
it will be recreated by using a substitute if available, or by
rebuilding the derivation. The latter may use hash rewriting if
chroots are not available.
commit cf46f194445c9abc0398dae908295dff794fee98
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 2 16:00:09 2012 -0400
nix-store -r: Get rid of an unnecessary call to buildPaths/ensurePaths
commit 8e3a7bd71253f02eb1a9fbb996166727b1283887
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 2 15:04:59 2012 -0400
nix-store --verify: Add an option ‘--repair’ to repair all missing/corrupt paths
Also, return a non-zero exit code if errors remain after
verifying/repairing.
commit 9958bd6992e2b3e7bacb493a372d17d5a5b95d90
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Oct 2 14:08:59 2012 -0400
Add operation ‘nix-store --repair-path’
This operation allows fixing corrupted or accidentally deleted store
paths by redownloading them using substituters, if available.
Since the corrupted path cannot be replaced atomically, there is a
very small time window (one system call) during which neither the old
(corrupted) nor the new (repaired) contents are available. So
repairing should be used with some care on critical packages like
Glibc.
commit e666e1156fba936dce93ccfa2486f67369a97129
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 28 21:39:30 2012 -0400
Handle octal escapes in /proc/self/mountinfo
commit f406288cc7cf648001a40b0a96cb97c31347cc5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 28 21:26:36 2012 -0400
Print a more descriptive error message if setting up the build environment fails
commit 95c74eae269b2b9e4bc514581b5caa1d80b54acc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 27 15:43:08 2012 -0400
Allow dashes in identifiers
In Nixpkgs, the attribute in all-packages.nix corresponding to a
package is usually equal to the package name. However, this doesn't
work if the package contains a dash, which is fairly common. The
convention is to replace the dash with an underscore (e.g. "dbus-lib"
becomes "dbus_glib"), but that's annoying. So now dashes are valid in
variable / attribute names, allowing you to write:
dbus-glib = callPackage ../development/libraries/dbus-glib { };
and
buildInputs = [ dbus-glib ];
Since we don't have a negation or subtraction operation in Nix, this
is unambiguous.
commit f46612be96a70a188cd48462ac94089d3e95a36b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 16:30:37 2012 -0400
Add "on Linux" qualifier
commit d534f137f0b0bf6b8559731edcfc1e50bd15a427
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 16:30:08 2012 -0400
Make the store writable before creating /nix/store/.links
commit 0f358ca5b6f1357e295020c3ed89fe877e809fd9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 16:11:58 2012 -0400
Document that Nix requires GNU Make
Fixes #44.
commit cb6651e878b3f2d97ac5e2318d679957904105ef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 16:04:50 2012 -0400
Update release notes
commit e464b0247d9dd2c53770a851956dd34f82b7c9a6
Merge: 28bf183 b9c2b4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 15:38:00 2012 -0400
Merge branch 'readonly-store'
commit 28bf183d2d2f775e653efe4cee98d7359ce65455
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 25 13:00:19 2012 -0400
Include <sys/types.h> for off_t
Reported by "gio" on IRC.
commit c1f91570b39caa3cf8a533aa517e3812a8bb8dc3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 21 15:02:33 2012 -0400
Style fix
commit 20582e9ae3c6eb14212a285489c1a573117d046c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 19 17:33:42 2012 -0400
Support xz compression in the download-using-manifests substituter
commit b9c2b4d5b4cd5d52a950e6dd90eb2e2e79891fa0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 19 16:17:54 2012 -0400
Remove setting of the immutable bit
Using the immutable bit is problematic, especially in conjunction with
store optimisation. For instance, if the garbage collector deletes a
file, it has to clear its immutable bit, but if the file has
additional hard links, we can't set the bit afterwards because we
don't know the remaining paths.
So now that we support having the entire Nix store as a read-only
mount, we may as well drop the immutable bit. Unfortunately, we have
to keep the code to clear the immutable bit for backwards
compatibility.
commit b9124a5c336fd231adaa548cf5be311731847848
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 19 15:45:29 2012 -0400
Support having /nix/store as a read-only bind mount
It turns out that the immutable bit doesn't work all that well. A
better way is to make the entire Nix store a read-only bind mount,
i.e. by doing
$ mount --bind /nix/store /nix/store
$ mount -o remount,ro,bind /nix/store
(This would typically done in an early boot script, before anything
from /nix/store is used.)
Since Nix needs to be able to write to the Nix store, it now detects
if /nix/store is a read-only bind mount and then makes it writable in
a private mount namespace.
commit 76e88871b21c47c0216e160a5fb926f763ba64fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 19 15:43:23 2012 -0400
Templatise tokenizeString()
commit 00092b2d356293a7af9d4d8125a689f90c461591
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 18 10:11:42 2012 -0400
Keep build directory if not all expected outputs were produced
Fixes issue #123 in Nixpkgs.
commit b67466576531959ca298fcfce4f0bf379515f8e5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 14 10:18:27 2012 -0400
Test whether GNU tar understands --warning=no-timestamp
http://hydra.nixos.org/build/3031618
commit 09eb23090022fed689c6db6c485d7cc973e2b79e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Sep 14 09:39:48 2012 -0400
Fix test
http://hydra.nixos.org/build/3031382
commit 983220bcd46e89ee4d2ce0417eb514cd6c062f2d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 18:09:20 2012 -0400
nix-collect-garbage: Support --dry-run
commit 9fd9dedf12bb64e02b35e9231173f9ebae5e1492
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 18:05:04 2012 -0400
nix-env --delete-generations: Support --dry-run flag
Fixes #43.
commit 1bda006b748ffec371096af56a8fbf7125658f71
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 17:58:14 2012 -0400
Add a test for nix-profile.sh
commit aac14222f52b15c9f4eea90359e9df09fb301739
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 17:48:19 2012 -0400
nix-profile.sh: Revert to single-user version
Commit 6a214f3e06fa1c5f0a4d40e555f14d87691af297 copied most of the Nix
shell initialisation code from NixOS to nix-profile.sh; however, that
code assumes a multi-user install and is Linux-specific (e.g. it calls
the "stat" command). So go back to the simple single-user version.
Fixes #49.
commit 54fe8e0773870631724b7325553f84637bb3e05a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 17:23:12 2012 -0400
Remove double Fedora release suffix
commit 47ae3ce2ca1dc93e2539a04c690c18f4747c8e8d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 16:39:16 2012 -0400
Put a time-to-live on negative binary cache lookups
Negative lookups are purged from the DB after a day, at most once per
day. However, for non-"have" lookups (e.g. all except "nix-env
-qas"), negative lookups are ignored after one hour. This is to
ensure that you don't have to wait a day for an operation like
"nix-env -i" to start using new binaries in the cache.
Should probably make this configurable.
commit e03a8a1c923365ca24ea63ac43d3e09f7f9fb3d8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 14:58:56 2012 -0400
Doh
commit 8fbe96cb3154d5db11b15728ad037bed28f08aa9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 14:46:37 2012 -0400
RemoteStore::connectToDaemon(): Set close-on-exec flag
This ensures that "nix-build --run-env" doesn't keep a connection to
the worker open, preventing it from exiting.
commit e6e495649cc1f324cd0a66cfaf3c4bdf21522e63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 14:33:41 2012 -0400
Vacuum the SQLite DB after running the garbage collector
commit 2923b55f9d67bda340053a27e08f7bcddc025f7c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 13:08:27 2012 -0400
Delete paths in a component in topologically sorted order
The outputs of a derivation can refer to each other (even though they
cannot have cycles), so they have to be deleted in the right order.
http://hydra.nixos.org/build/3026118
commit 31114ec3a5ce08ccf9526f62316f1cc60c8b399a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 12:54:23 2012 -0400
Fix the store optimisation test
http://hydra.nixos.org/build/3026118
commit c845c0ccad9a835a69c63c2eadd71d7845dca111
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 12:11:40 2012 -0400
nix-channel: Add option to force fetching of manifests
commit b14717ab9003452fda7afe0f9627673b9f331569
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 11:35:46 2012 -0400
Delete manifests in "nix-channel --remove" or when a binary cache is available
commit 6c4ac299173e3b9772c96bef1e6463b22dcd0227
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 10:28:20 2012 -0400
Disable auto store optimisation for now
I've seen operations like "nix-store --import" take much longer on one
system. So default to off until I've investigated this a bit further.
commit e56f71edafce9c60fd5e0c3ed93771b7d911d334
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Sep 13 10:06:24 2012 -0400
In startBuilder(), only print the new paths we're building
commit 4fca02077c4cdea13d32b4665e817460f6502726
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 12 18:49:35 2012 -0400
Handle gc-keep-outputs and gc-keep-derivations both enabled
If the options gc-keep-outputs and gc-keep-derivations are both
enabled, you can get a cycle in the liveness graph. There was a hack
to handle this, but it didn't work with multiple-output derivations,
causing the garbage collector to fail with errors like ‘error: cannot
delete path `...' because it is in use by `...'’. The garbage
collector now handles strongly connected components in the liveness
graph as a unit and decides whether to delete all or none of the paths
in an SCC.
commit 479e9172b3583cedcada90ed193cab156cdc56b5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 12 12:15:47 2012 -0400
Build hook: Pass the timeout to the remote builder
Note that this will only work if the client has a very recent Nix
version (post 15e1b2c223494ecb5efefc3ea0e3b926a6b1d7dc), otherwise the
--option flag will just be ignored.
Fixes #50.
commit 4ba47205c687772cf73a490eac3a489931d4913b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 12 11:29:10 2012 -0400
Fix test failure on Darwin
Apparently our DBD::SQLite links against /usr/lib/libsqlite3.dylib,
which is an old version that doesn't respect foreign key constraints.
So manifests/cache.sqlite doesn't get updated properly when a manifest
disappears. We should fix our DBD::SQLite, but in the meantime this
will fix the test.
http://hydra.nixos.org/build/3017959
commit 6762424e2471e3e4f9ba9b6bb883d08911d352fb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Sep 12 10:41:17 2012 -0400
Compatibility fix for WWW::Curl < 4.14
Older versions of WWW::Curl don't support scalar references for
CURLOPT_WRITEDATA directly.
http://hydra.nixos.org/build/3017188
commit d4c3b6327ff88273462cec57b0e2805d333c386e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 19:14:15 2012 -0400
Don't put results symlinks in the tests directory
commit 1f7901ec3b66fa80203bbac2cd6852eda389ba18
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 19:10:11 2012 -0400
Test hash rewriting
commit 5e2ffd0b8a857da3239015d28f3a8b803566aecc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 19:09:01 2012 -0400
Fix "non-zero padding" error
Probably it's not a good idea to pass a temporary object to
StringSource.
commit 8cf672091eb93fea5496aca2655436413f4d3c66
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 18:39:22 2012 -0400
Support building a derivation if some outputs are already valid (non-chroot case)
This uses scary hash rewriting.
Fixes #21.
commit 9dbda2b3fe98014687ae5cbbf16866ca6cf34f64
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 17:05:35 2012 -0400
Remove debug line
commit a2785b739169832f09285c81695c90a3aac3f731
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 16:59:59 2012 -0400
Support building a derivation if some outputs are already valid
This handles the chroot and build hook cases, which are easy.
Supporting the non-chroot-build case will require more work (hash
rewriting!).
Issue #21.
commit 295027f533bb5a754bfc62f934c88b43e9c100a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 14:45:42 2012 -0400
Include config.h before any other header
"config.h" must be included first, because otherwise the compiler
might not see the right value of _FILE_OFFSET_BITS. We've had this
before; see 705868a8a96a10f70e629433cfffc2d5cd2703eb. In this case,
GCC would compute a different address for ‘settings.useSubstitutes’ in
misc.cc because of the off_t in ‘settings’.
Reverts 3854fc9b42d16b810f62b64194b699033b03aaf1.
http://hydra.nixos.org/build/3016700
commit d3004c78d9816431224f7ac0416c5bfea0cc22cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Sep 11 13:07:22 2012 -0400
Don't use -warning=no-timestamp unless we have GNU tar
http://hydra.nixos.org/build/2998485
commit 360056e174db2171c47e065ae1e5f58ccee0236f
Author: Shea Levy <shea@shealevy.com>
Date: Sun Aug 26 14:48:47 2012 -0400
Document importing from a directory in the import documentation
commit f7b650d234dffd72b2c70ee25d9e333d433feba6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 28 11:47:26 2012 -0400
Make "nix-instantiate -" interruptible
commit 15e1b2c223494ecb5efefc3ea0e3b926a6b1d7dc
Merge: a9e6752 9e2fc69
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 14:34:51 2012 -0400
Merge branch 'no-manifests'
commit 9e2fc6951ca049b15149a2c4b75d2f5bff7f07e1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 14:20:14 2012 -0400
Disable the binary cache substituter by default for now
commit cfd968dd94f35c5ef781be9bda883d8818fc1d6e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 14:17:13 2012 -0400
Fix stupid type error in calling std::max
commit f3077fd88d6ec8f05a5471687f23589e34dfeaeb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 13:45:53 2012 -0400
Add libwww-curl-perl to the Debian/Ubuntu images
commit cc8641815b018315ee444c58dd4bc6bfc38c7d0f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:47:49 2012 -0400
Add WWW::Curl to the RPM dependencies
commit 2688fb73f1e0bd96003a82c89ac8de12eca2b49f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:47:04 2012 -0400
Add perl-WWW-Curl to the RPM image
commit 8207359227740bfb2fe77cf843a81aa878fd39aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:28:48 2012 -0400
Whitespace
commit 8b8fe6139e05f990b9d2a35652fd9bdb79189f90
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:28:34 2012 -0400
Drop dependency on List::MoreUtils
commit babe54bf97091441353f2219e7846afd0e0d9f16
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:11:30 2012 -0400
Add missing file
commit e94806d03098f1d6e654542500bbea1eaa0ec60b
Merge: 9c2deca a9e6752
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 27 11:09:07 2012 -0400
Merge branch 'master' into no-manifests
commit a9e6752bbd888ab8fbc1cda6e4d539b2858c4cef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Aug 24 16:58:11 2012 -0400
Include the output name in the GC root link
Output names are now appended to resulting GC symlinks, e.g. by
nix-build. For backwards compatibility, if the output is named "out",
nothing is appended. E.g. doing "nix-build -A foo" on a derivation
that produces outputs "out", "bin" and "dev" will produce symlinks
"./result", "./result-bin" and "./result-dev", respectively.
commit 4aa1e5c55484ac02d28883292ee5c5806f5e4664
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 22 10:58:24 2012 -0400
Receive reserveSpace before calling startWork()
Otherwise we can get a SIGPOLL. Reported by Ludovic.
commit d950cfe70b2b70e938ece672dbccedfd4413c295
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 20 15:55:49 2012 -0400
Check if MS_PRIVATE is defined
http://hydra.nixos.org/build/2955671
commit 56e30e161cd309addb5aa95ba02a8d3371846228
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 20 15:27:30 2012 -0400
In the chroot, make all mounted filesystems private
This is required on systemd, which mounts filesystems as "shared"
subtrees. Changes to shared trees in a private mount namespace are
propagated to the outside world, which is bad.
commit f0eab0636b73a4f16b7639d30956d9072d5573cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 20 15:27:00 2012 -0400
Don't bind-mount /proc since we mount our own
commit 862c4c5ec509e05815d99fb4b80558974148b8c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 19 16:32:42 2012 -0400
Fix 1755 permission on temporary directories left behind by ‘-K’
commit 767101824af1fe41b6e50791b21112c6a8d7457f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 15:10:29 2012 -0400
Avoid concatenating lists of one string
commit e5c589d271c62f57cd2e7eb7d9841f67d8845ff4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 15:02:09 2012 -0400
Don't allocate empty lists
This saves about 4 MB when evaluating a NixOS system configuration.
commit 3e89ef597ce00dbf82a937aad9efab3c9c7b6dcf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 14:58:54 2012 -0400
Optimise concatenating a list to an empty list
More precisely, in concatLists, if all lists except one are empty,
then just return the non-empty list. This reduces the number of list
element allocations by 32% when evaluating a NixOS system
configuration.
commit 9c2d63084bd4f6a04210cd52b4fce054d248bc6b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 13:46:42 2012 -0400
Add a primop ‘elemAt’ to get an element from a list
commit 198d0338be7c105b6dbd707f98e0c223a8358240
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 01:53:10 2012 -0400
Add a primop ‘concatLists’
This can serve as a generic efficient list builder. For instance, the
function ‘catAttrs’ in Nixpkgs can be rewritten from
attr: l: fold (s: l: if hasAttr attr s then [(getAttr attr s)] ++ l else l) [] l
to
attr: l: builtins.concatLists (map (s: if hasAttr attr s then [(getAttr attr s)] else []) l)
Statistics before:
time elapsed: 1.08683
size of a value: 24
environments allocated: 1384376 (35809568 bytes)
list elements: 6946783 (55574264 bytes)
list concatenations: 37434
values allocated: 1760440 (42250560 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18273
number of thunks: 1297673
number of thunks avoided: 1380759
number of attr lookups: 430802
number of primop calls: 628912
number of function calls: 1333544
Statistics after (including new catAttrs):
time elapsed: 0.959854
size of a value: 24
environments allocated: 1010198 (26829296 bytes)
list elements: 1984878 (15879024 bytes)
list concatenations: 30488
values allocated: 1589760 (38154240 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18274
number of thunks: 1040925
number of thunks avoided: 1038428
number of attr lookups: 438419
number of primop calls: 474844
number of function calls: 959366
commit b9e5b908ed29bfb6cd82837f9f57293c1f63e999
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 01:05:35 2012 -0400
Provide an efficient implementation of ‘elem’
The one in Nixpkgs is O(n^2), this one is O(n). Big reduction in the
number of list allocations.
Statistics before (on a NixOS system config):
time elapsed: 1.17982
size of a value: 24
environments allocated: 1543334 (39624560 bytes)
list elements: 9612638 (76901104 bytes)
list concatenations: 37434
values allocated: 1854933 (44518392 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18272
number of thunks: 1392467
number of thunks avoided: 1507311
number of attr lookups: 430801
number of primop calls: 691600
number of function calls: 1492502
Statistics after:
time elapsed: 1.08683
size of a value: 24
environments allocated: 1384376 (35809568 bytes)
list elements: 6946783 (55574264 bytes)
list concatenations: 37434
values allocated: 1760440 (42250560 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18273
number of thunks: 1297673
number of thunks avoided: 1380759
number of attr lookups: 430802
number of primop calls: 628912
number of function calls: 1333544
commit 4ccd48ce2478cbe1263605838969f89d5b745f0a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Aug 13 00:28:08 2012 -0400
Add a "filter" primop
Evaluation of a NixOS configuration spends quite a lot of time in the
"filter" function in Nixpkgs. As implemented in Nixpkgs, this is a
O(n^2) operation, so it's a good candidate for providing a more
efficient (i.e. primop) implementation. Using it gives a ~10% speed
increase and a significant reduction in the number of evaluations.
Statistics before (on a NixOS system config):
time elapsed: 1.3258
size of a value: 24
environments allocated: 1980939 (50127080 bytes)
list elements: 14679308 (117434464 bytes)
list concatenations: 50828
values allocated: 2098938 (50374512 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18271
number of thunks: 1645752
number of thunks avoided: 1921196
number of attr lookups: 430798
number of primop calls: 838807
number of function calls: 1930107
Statistics after:
time elapsed: 1.17982
size of a value: 24
environments allocated: 1543334 (39624560 bytes)
list elements: 9612638 (76901104 bytes)
list concatenations: 37434
values allocated: 1854933 (44518392 bytes)
attribute sets allocated: 392040
right-biased unions: 186334
values copied in right-biased unions: 591137
symbols in symbol table: 18272
number of thunks: 1392467
number of thunks avoided: 1507311
number of attr lookups: 430801
number of primop calls: 691600
number of function calls: 1492502
commit 62f72eb9e1a4421a9d4ea3e06f467e49869c0e51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 12 23:41:48 2012 -0400
Add some more evaluations stats
commit e82767910c649f160d6701e47f606f3b8dde4b29
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 12 23:29:28 2012 -0400
Add some basic profiling support to the evaluator
Setting the environment variable NIX_COUNT_CALLS to 1 enables some
basic profiling in the evaluator. It will count calls to functions
and primops as well as evaluations of attributes.
For example, to see where evaluation of a NixOS configuration spends
its time:
$ NIX_SHOW_STATS=1 NIX_COUNT_CALLS=1 ./src/nix-instantiate/nix-instantiate '<nixos>' -A system --readonly-mode
...
calls to 39 primops:
239532 head
233962 tail
191252 hasAttr
...
calls to 1595 functions:
224157 `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/lists.nix:17:19'
221767 `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/lists.nix:17:14'
221767 `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/lists.nix:17:10'
...
evaluations of 7088 attributes:
167377 undefined position
132459 `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/attrsets.nix:119:41'
47322 `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/attrsets.nix:13:21'
...
commit 325d1cfebf6c8ad391dc318f984feb3e5731aa5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Aug 7 16:22:54 2012 -0400
Don't warn about maximum link count exceeded on 0-byte files
commit d025142f529731f05868f5397f5617011963c8b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 5 21:45:27 2012 -0400
Handle amount of disk space saved by hard linking being negative
Fixes bogus messages like "currently hard linking saves
17592186044416.00 MiB".
commit b6c989b80198badf5f694340c07abc282365aaec
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 5 21:41:44 2012 -0400
Fix race condition when two processes create a hard link to a file in .links
This is a problem because one process may set the immutable bit before
the second process has created its link.
Addressed random Hydra failures such as:
error: cannot rename `/nix/store/.tmp-link-17397-1804289383' to
`/nix/store/rsvzm574rlfip3830ac7kmaa028bzl6h-nixos-0.1pre-git/upstart-interface-version':
Operation not permitted
commit 108e14bb189fd0fb291d3494f9f3915070a7052e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Aug 5 18:17:55 2012 -0400
Fix race condition when two processes create the same link in /nix/store/.links
commit 6763084ae53fc0228d50ab94bbbced89c1b14f1c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 22:43:03 2012 -0400
Count bytes freed deleting unused links
commit 01d56c1eeca497de247413a64a544605c53d9d41
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 22:34:46 2012 -0400
Drop the block count in the garbage collector
commit 967d066d8e452e59507ebae7585d6f34a4edf687
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 19:14:30 2012 -0400
nix-store --gc: Make ‘--max-freed 0’ do the right thing
That is, delete almost nothing (it will still remove unused links from
/nix/store/.links).
commit 1df702d34733e69599a6ae21cb366348a2534b7d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 19:01:50 2012 -0400
removeUnusedLinks(): Print stats on disk space saved by hard linking
commit 9c2decaa1935ae4bf99a9b723d4eab188f8f88ef
Merge: 5170c56 234ce61
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 18:03:49 2012 -0400
Merge branch 'master' into no-manifests
commit 5170c5691aac1bd6abc69be65cf880316e11fe24
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 17:56:11 2012 -0400
nix-channel: Use binary caches advertised by channels
Channels can now advertise a binary cache by creating a file
<channel-url>/binary-cache-url. The channel unpacker puts these in
its "binary-caches" subdirectory. Thus, the URLS of the binary caches
for the channels added by root appear in
/nix/var/nix/profiles/per-user/eelco/channels/binary-caches/*. The
binary cache substituter reads these and adds them to the list of
binary caches.
commit 79bba3782c275f03954cc9fc03f92aff487db953
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 17:21:47 2012 -0400
Doh
commit ca94b383718f2dc5f4f14ed6eddd8d04ac9d3fc2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 16:43:36 2012 -0400
nix-env: Ignore manifest.nix when recursing into ~/.nix-defexpr
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.
commit 46f852cda013b818f113c7905f020131a44f2340
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 16:42:51 2012 -0400
Use a GNU tar flag to shut up warnings about implausibly old timestamp
commit afa7e0187815d89c8af93fa9c1081bf67ab0f10e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 16:34:17 2012 -0400
Inline unpack-channel.sh
commit 234ce610e0671410cb8a9ce4d8725e55472e8d47
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 16:09:47 2012 -0400
Doh
commit 7b10562370919947c9df748a165587ec5fc6c2ea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 16:06:49 2012 -0400
Make ‘nix-store --optimise’ interruptible
commit 8a25d787d7f05d612521bd489510aa23d4ef2177
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 11:33:15 2012 -0400
download-from-binary-cache: Remove duplicate URLs
commit c770a2422a47526d5eb336af6af4292df68dad2b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Aug 1 11:19:24 2012 -0400
Report substituter errors to clients of the Nix daemon
commit 4d1b64f118cf6ebcbf530bea4a3c531704d7d6ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 31 18:56:22 2012 -0400
Allow daemon users to override ‘binary-caches’
For security reasons, daemon users can only specify caches that appear
in the ‘binary-caches’ and ‘trusted-binary-caches’ options in
nix.conf.
commit eb7849e3a281511a59abf72ae5c3133f903bbaab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 31 18:50:32 2012 -0400
Prevent an injection attack in passing untrusted options to substituters
commit 90d9c58d4dabb370849cd523fb9ee471e8140b76
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 31 18:19:44 2012 -0400
Pass all --option flags to the daemon
commit 89a8207029e7f6d5cfe3ab972c49ea46f5b9a784
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 31 17:56:02 2012 -0400
Add an option ‘build-fallback’ (equivalent to the --fallback flag)
commit 157170059df39933d358d087d88f8b5bc4d5fde6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 22:29:42 2012 -0400
Manual: Remove reference to non-existent -I option
commit 97421eb5ecde86b75441094fda017b12b5eca2a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 19:55:41 2012 -0400
Refactor settings processing
Put all Nix configuration flags in a Settings object.
commit d50d7a287416da2086b0b24f9d998eabb24c1734
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 17:13:25 2012 -0400
Whitespace
commit 9cd63d224468af87baf74228acc162873c649493
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 17:09:36 2012 -0400
Do some validation of URLs
commit f3eb29c6530e990b18e9f04390f6fa7bfbc58078
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 17:09:13 2012 -0400
Fix the test
commit 9de6d10d112665ba1c6d807dd3950ed4c43a4404
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 16:39:31 2012 -0400
Get rid of $NIX_BINARY_CACHES
You can use ‘--option binary-caches URLs’ instead.
commit ab42bf1dab026d10b74e857a76feff475ae8a162
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 16:11:02 2012 -0400
nix-install-package: Support binary caches
The .nixpkg file format is extended to optionally include the URL of a
binary cache, which will be used in preference to the manifest URL
(which can be set to a non-existent value).
commit d059bf48e4bd4d1f50593dbe60953de8b2d395c7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 16:09:54 2012 -0400
Pass configuration settings to the substituters
Previously substituters could read nix.conf themselves, but this
didn't take --option flags into account.
commit f9613da18033d0a9835bc57ac2142aca754983cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 15:43:37 2012 -0400
Remove unused variables
commit 6183cf2f197edd079a0134ccb8d320bab083a624
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 30 15:42:18 2012 -0400
Fix whitespace
commit f15083c10afaebb8f2a0e7fbc95dd4cc5208c992
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 29 14:37:40 2012 -0400
Document the --option flag
Pointed out by Daniel Santa Cruz on IRC.
commit 66a3ac6a56cfa70e2ffeb911c1286ba84c2fa048
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 18:16:05 2012 -0400
Allow a binary cache to declare that it doesn't support "nix-env -qas"
Querying all substitutable paths via "nix-env -qas" is potentially
hard on a server, since it involves sending thousands of HEAD
requests. So a binary cache must now have a meta-info file named
"nix-cache-info" that specifies whether the server wants this. It
also specifies the store prefix so that we don't send useless queries
to a binary cache for a different store prefix.
commit 6ecf4f13f6a71701f77018a852db2bd4bde0bb67
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 14:33:01 2012 -0400
Use "set -x" in the tests to see where a test fails
commit e6ab52cdd1df207c7a007a9cba665ee8a031d94a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 14:15:03 2012 -0400
Test "nix-env -qas" with the binary cache substituter
commit 73acb8b836affe5dfade9dd6e3339ad2f9191add
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 12:16:02 2012 -0400
Let build.cc verify the expected hash of a substituter's output
Since SubstitutionGoal::finished() in build.cc computes the hash
anyway, we can prevent the inefficiency of computing the hash twice by
letting the substituter tell Nix about the expected hash, which can
then verify it.
commit fbf59d95f66012349fdcd2b60f34b9efb32e6319
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 10:56:33 2012 -0400
Remove more tabs
commit 3a8f841612f08b9be11cc5346fa3c025413282d6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 10:47:36 2012 -0400
download-using-manifests: Don't use nix-prefetch-url
Instead call curl directly and pipe it into ‘nix-store --restore’.
This saves I/O and prevents creating garbage in the Nix store.
commit b4ea83249b40dd910daa6a8ee32f13e023e9c858
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 09:59:18 2012 -0400
Remove trailing whitespace / tabs
commit 7f8e805c8ef2d7728648553de6b762964730a09a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 27 09:57:42 2012 -0400
download-from-binary-cache: Only use the default cache for /nix/store
commit 67c6f3eded7dcb7c79243ed41f177c960f2b6aad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 18:28:12 2012 -0400
nix-push: Support generating a manifest again
This makes all the tests succeed. Woohoo!
commit 50395b71a90314abfcc39d8343dbaa8e9aa199a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:36:07 2012 -0400
Fix the substituter tests
commit e3ce54cceedb9a3144c4eccfbafd63ed765d8913
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:13:38 2012 -0400
nix-push: Remove the upload feature
commit 609586a16de90f8964b9c494aad3c1526feb514f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:13:14 2012 -0400
Add a test for the binary cache substituter
commit 7861260a5ff33689b1b8f7a89489f5d5e5e4dfcb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:12:42 2012 -0400
Clear NIX_STORE when running the tests
commit 7892ad15ab4b6db0eee619a1fdd14fed129db252
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:11:11 2012 -0400
download-from-binary-cache: Support file://
The file:// URI schema requires checking for errors in a more general
way. Also, don't cache file:// lookups.
commit dbce685e91c513341dedf8c1a916ef4c62f5650a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 17:10:28 2012 -0400
Add some .gitignore entries
commit 8c7910083976e255300efa797030448f5a1cb864
Merge: aa115e2 3a4623a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 15:14:33 2012 -0400
Merge branch 'master' into no-manifests
commit 3a4623afbbc1bff85bde33167d36e8c5a4a3df0d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 26 15:04:40 2012 -0400
Set permissions on temporary build directories to 0700
Fixes #39.
commit 2605f4f4e6a367df67bf8b33b252c350313699c9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 25 17:06:09 2012 -0400
nix-profile.sh: Don't set NIX_REMOTE on single user installations
Commit 6a214f3e06fa1c5f0a4d40e555f14d87691af297 reused the NixOS
environment initialisation for nix-profile.sh, but this is
inappropriate on systems that don't have multi-user support enabled.
commit 477b0fbeca62bf1957bc0aad26f1a844ebd22231
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 25 16:56:56 2012 -0400
Subscribe to the Nixpkgs rather than NixOS channel
commit f5954e2d940c3a41a6ed0cad45660e254eb381a3
Author: Shea Levy <shea@shealevy.com>
Date: Tue Jul 24 12:05:27 2012 -0400
prim_import: When importing .drvs, allocate the intermediate attrset on the heap just in case it escapes the stack frame.
commit 1ef2d5765be35c3d3c13a2aea8748166f576ec8b
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jul 23 13:45:51 2012 -0400
Turn tests back on
commit b1112bbef195bc8397c4e88aa8544537a6d84731
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jul 23 13:41:28 2012 -0400
import: If the path is a valid .drv file, parse it and generate a derivation attrset.
The generated attrset has drvPath and outPath with the right string context, type 'derivation', outputName with
the right name, all with a list of outputs, and an attribute for each output.
I see three uses for this (though certainly there may be more):
* Using derivations generated by something besides nix-instantiate (e.g. guix)
* Allowing packages provided by channels to be used in nix expressions. If a channel installed a valid deriver
for each package it provides into the store, then those could be imported and used as dependencies or installed
in environment.systemPackages, for example.
* Enable hydra to be consistent in how it treats inputs that are outputs of another build. Right now, if an
input is passed as an argument to the job, it is passed as a derivation, but if it is accessed via NIX_PATH
(i.e. through the <> syntax), then it is a path that can be imported. This is problematic because the build
being depended upon may have been built with non-obvious arguments passed to its jobset file. With this
feature, hydra can just set the name of that input to the path to its drv file in NIX_PATH
commit 566a30c0072690900d4d55679a2981758d6fb888
Author: Shea Levy <shea@shealevy.com>
Date: Mon Jul 23 12:51:04 2012 -0400
Disable tests temporarily
commit e98c029717016dfa3e5c618c9fc46da9b2142dcc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 18:42:18 2012 -0400
Handle platforms that don't support linking to a symlink
E.g. Darwin doesn't allow this.
commit fd63c8bfcd75624e7fbba8899365095400534e01
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 18:06:37 2012 -0400
Unlink the right file
commit 0f65793f94bd89c973482ac949be1e96e876762b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 17:40:23 2012 -0400
Add a test for Nix store optimisation
commit 680ab6f83def2b636200204542ca352631a46f85
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 15:48:30 2012 -0400
Garbage collect unused links in /nix/store/.links
Incremental optimisation requires creating links in /nix/store/.links
to all files in the store. However, this means that if we delete a
store path, no files are actually deleted because links in
/nix/store/.links still exists. So we need to check /nix/store/.links
for files with a link count of 1 and delete them.
commit 619310571002fc74e428824bd603604d1055b61b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 15:02:52 2012 -0400
Automatically optimise the Nix store when a new path is added
Auto-optimisation is enabled by default. It can be turned off by
setting auto-optimise-store to false in nix.conf.
commit 564fb7d9fa80d06397a88d69f26439727cb922c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 12:08:34 2012 -0400
optimiseStore(): Use a content-addressed file store in /nix/store/.links
optimiseStore() now creates persistent, content-addressed hard links
in /nix/store/.links. For instance, if it encounters a file P with
hash H, it will create a hard link
P' = /nix/store/.link/<H>
to P if P' doesn't already exist; if P' exist, then P is replaced by a
hard link to P'. This is better than the previous in-memory map,
because it had the tendency to unnecessarily replace hard links with a
hard link to whatever happened to be the first file with a given hash
it encountered. It also allows on-the-fly, incremental optimisation.
commit ed59bf7a181bb382dea7dd72da52bf91f60deb8d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 17:11:12 2012 -0400
nix-build: Support the ‘-’ argument to build an expression from stdin
commit 6852289c46cdfceb07b459cd1028722ffb124ca6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 23 16:52:25 2012 -0400
Use lutimes() if available to canonicalise the timestamp of symlinks
Also use utimes() instead of utime() if lutimes() is not available.
commit 1832ab71dbb6b24965eb5a873a56a7231da7af4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 17:17:23 2012 -0400
Bump version
commit 98193bb440561875d2829f9dd542e38972dbcf63
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 16:50:56 2012 -0400
Remove RPM builds that don't evaluate
commit b7fd2c28224a69476434d69b5d9da3d150c07226
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 14:59:03 2012 -0400
Use "#pragma once" to prevent repeated header file inclusion
commit 58337e0e6122a97061dcf803954f72469f67afca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 11:51:27 2012 -0400
Set release date
commit aa115e22df1c80e8878237a9e704d7d70783a243
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 11:01:17 2012 -0400
download-from-binary-cache: Print correct URL
commit fe241ece2932492866693d268d02a7912e766ac7
Merge: a6f3485 ccc52ad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 18 10:47:59 2012 -0400
Merge branch 'master' into no-manifests
commit ccc52adfb2121ade510d35dc9b91193af9fa731e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 18:55:39 2012 -0400
Add function queryPathFromHashPart()
To implement binary caches efficiently, Hydra needs to be able to map
the hash part of a store path (e.g. "gbg...zr7") to the full store
path (e.g. "/nix/store/gbg...kzr7-subversion-1.7.5"). (The binary
cache mechanism uses hash parts as a key for looking up store paths to
ensure privacy.) However, doing a search in the Nix store for
/nix/store/<hash>* is expensive since it requires reading the entire
directory. queryPathFromHashPart() prevents this by doing a cheap
database lookup.
commit 220818f758d2facc194f567f35ca677ef79393bd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 16:55:45 2012 -0400
queryPathInfo(): return hash in base-32 if desired
Cherry-picked from the no-manifests branch.
commit a6f348599c94d8a5f7b41c7d8e43658dc6407be7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 16:19:40 2012 -0400
Print some debug output
commit 3a9fdf2747bc7436fc3c1fd5f9accd5675d4295e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 15:55:30 2012 -0400
Return an exit code of 100 for cached failed builds
Exit code 100 should be returned for all permanent failures. This
includes cached failures.
Fixes #34.
commit 1217204c81b0b6f02df99adfc8414a181299535c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 14:07:52 2012 -0400
Remove dead code
commit 51d71ad3d7527596dc22d6dd9e9e70f2cd9faea9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 11:49:47 2012 -0400
Manual: Don't claim we support Cygwin
commit 6c01fb4d68a80f63c692492bb91c1aa2e17b5a8f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 10:06:20 2012 -0400
Update Nix 1.1 release notes
commit 53b24f351852498c52377c2f011617af04bc76fa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 17 09:40:12 2012 -0400
Allow disabling log compression
commit a7a43adb79393084a27589bc929e5a22877ba944
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jul 12 18:25:01 2012 -0400
builtins.storePath: resolve symlinks
Needed for Charon/Hydra interaction.
commit 04559a0d45ad02fc760b09132cca0d875af035e5
Merge: e4d6bcb eae8024
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 18:53:27 2012 -0400
Merge branch 'master' of github.com:NixOS/nix into no-manifests
commit e4d6bcb6cdc34d204ccf49e137dd5070f664c523
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 18:52:23 2012 -0400
Update release notes
commit f2bdc87595376efb2d05a8555b0686922a298929
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 18:52:09 2012 -0400
Update the other substituters
commit 15c15da482eb30f95f4dab04b582a45edc10815b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 18:07:41 2012 -0400
Add some missing --version switches
commit d287b62b6432ce3155e963c6471edf79ec70439a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 18:05:30 2012 -0400
Set the User-Agent header to "Nix/<version>"
commit b74d92755d1ca6a1538f292dcb5a906f66af7b51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 17:53:20 2012 -0400
download-from-binary-cache: Use HEAD requests if possible
In "nix-env -qas", we don't need the substitute info, we just need to
know if it exists. This can be done using a HTTP HEAD request, which
saves bandwidth.
Note however that curl currently has a bug that prevents it from
reusing HTTP connections if HEAD requests return a 404:
https://sourceforge.net/tracker/?func=detail&aid=3542731&group_id=976&atid=100976
Without the patch attached to the issue, using HEAD is actually quite
a bit slower than GET.
commit 09a6321aeb7393cdb4b5af62d2e4106d83124fdf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 17:52:18 2012 -0400
Replace hasSubstitutes() with querySubstitutablePaths()
querySubstitutablePaths() takes a set of paths, so this greatly
reduces daemon <-> client latency.
commit 58ef4d9a95584fb89ebcf6222fbac6e698aa6b0b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 11:08:47 2012 -0400
Add a function queryValidPaths()
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).
commit 667d5f1936616dc829f9f92f8e5d5141ba5285a7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 10:49:04 2012 -0400
Rename queryValidPaths() to queryAllValidPaths()
commit eb3036da87659fe7cf384c2362e7f7b8b67189a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 10:43:24 2012 -0400
Implement querySubstitutablePathInfos() in the daemon
Also removed querySubstitutablePathInfo().
commit 6586414bc70c8373faefd49afc5172881f3aad53
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 10:14:06 2012 -0400
nix-env: Determine which paths have substitutes in parallel
commit 5ee8944155f21a0ab5a100a184163d7bd0e72679
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jul 11 10:13:16 2012 -0400
Cleanup
commit eae802459d7639a69baec555264f394adad043c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 15:49:20 2012 -0400
Pass --insecure to curl so that https works
commit 2dd3117c2723ff08c6226b71d569bcea50d58ad1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 15:48:55 2012 -0400
Inline fetchurl.sh
commit 51f9f9924bcd0c30b45e370fc69dc43e6621ef61
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 15:41:43 2012 -0400
Add a test for the fetchurl function
commit 035aa114037857b51968e62a1176f4086e2477ec
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 11:14:57 2012 -0400
Remove obsolete comment
commit a2865f6b3d2af5593a100cba5c86ba62a1330bdb
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 11:11:02 2012 -0400
corepkgs/fetchurl: Build locally and outside of the chroot
commit 53f52c2111bcf339bdaab703a263fd2c001da51c
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 11:04:11 2012 -0400
corepkgs/fetchurl: the 'system' argument can be optional
commit 543bf742c9391bc49f59c52adb042bbd3c5e2364
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:55:35 2012 -0400
corepkgs: distribute fetchurl files
commit f863673a903d17566be8a03bcf8655d9912428bd
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:33:40 2012 -0400
corepkgs/fetchurl: Call the shell directly instead of using the shebang
commit a994eb92a4e0d8744b244cd421c855d76831bdc0
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:32:12 2012 -0400
corepkgs/fetchurl.sh: Use config.nix's curl
commit 9d94a28bed39d0e9bcb3532cdac1a254a44efa97
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:29:18 2012 -0400
The fetchurl builder is now fetchurl.sh
commit fd2630e1f739c12b4a1f01159e1230d9fb7fb997
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:26:50 2012 -0400
Remove old fetchurl makefile
commit 6450f5699fa824934b92ca7ba1d345c36e9c009a
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:25:58 2012 -0400
Move fetchurl files out of their subdirectory
commit 40c01ec4671c09a6ceb61ef201dad48156000075
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:22:26 2012 -0400
corepkgs/config.nix.in: We'll need curl
commit c4df7472676cac9bf5243ee8bc7cd0017f91a28d
Author: Shea Levy <shea@shealevy.com>
Date: Sun Jul 8 10:19:17 2012 -0400
Resurrect old corepkgs fetchurl
commit 27f0c34390d6680a843e2d4fad527dc672ed35c6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 13:16:09 2012 -0400
Really fix RPM builds
commit ae72be1b8bf65e6b52bc0c9d534e55a79ca6712b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 13:11:37 2012 -0400
Add WWW::Curl as a dependency
commit a560124cdf43a08733d85336f7c8172fea1cfc5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 11:58:12 2012 -0400
Fix RPM builds
http://hydra.nixos.org/build/2784908
commit 087dee6e1b673b1e49f7c49fa0f05eb651bb5e94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 11:56:55 2012 -0400
Get rid of nix.conf.example
No need to duplicate the nix.conf manpage.
commit 5755a5c354c8b622fae14a32b9f8f6f901fb9529
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 11:33:38 2012 -0400
Install a nix.conf manpage
commit 099125435fc5ada63365a94ca153c711e706e225
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 10:57:28 2012 -0400
download-from-binary-cache: add nix.conf options
commit 98a423b75aa9061f0164c316f9d2481ce6d5e2f1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 9 09:59:34 2012 -0400
prim_import(): prefetch substitute info in parallel using queryMissing()
commit 425cc612ad4835d29bce081a67ad161d06063b51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 8 18:39:24 2012 -0400
build.cc: Don't use hasSubstitute()
Instead make a single call to querySubstitutablePathInfo() per
derivation output. This is faster and prevents having to implement
the "have" function in the binary cache substituter.
commit 400e556b34ff0563f34b191de5f632dc4377f0cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 8 18:39:07 2012 -0400
Cleanup
commit 11800e61983677f92fd5a08f51beb9036f947d6e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 6 19:08:20 2012 -0400
download-from-binary-cache: parallelise fetching of NAR info files
Getting substitute information using the binary cache substituter has
non-trivial latency overhead. A package or NixOS system configuration
can have hundreds of dependencies, and in the worst case (when the
local info cache is empty) we have to do a separate HTTP request for
each of these. If the ping time to the server is t, getting N info
files will take tN seconds; e.g., with a ping time of 0.1s to
nixos.org, sequentially downloading 1000 info files (a typical NixOS
config) will take at least 100 seconds.
To fix this problem, the binary cache substituter can now perform
requests in parallel. This required changing the substituter
interface to support a function querySubstitutablePathInfos() that
queries multiple paths at the same time, and rewriting queryMissing()
to take advantage of parallelism. (Due to local caching,
parallelising queryMissing() is sufficient for most use cases, since
it's almost always called before building a derivation and thus fills
the local info cache.)
For example, parallelism speeds up querying all 1056 paths in a
particular NixOS system configuration from 116s to 2.6s. It works so
well because the eccentricity of the top-level derivation in the
dependency graph is only 9. So we only need 10 round-trips (when
using an unlimited number of parallel connections) to get everything.
Currently we do a maximum of 150 parallel connections to the server.
Thus it's important that the binary cache server (e.g. nixos.org) has
a high connection limit. Alternatively we could use HTTP pipelining,
but WWW::Curl doesn't support it and libcurl has a hard-coded limit of
5 requests per pipeline.
commit cd94665f38fbadde38d5d8ae5c9c14dff9aea0ac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jul 6 00:30:40 2012 -0400
download-from-binary-cache: use WWW::Curl
Using WWW::Curl rather than running an external curl process for every
NAR info file halves the time it takes to get info thanks to libcurl's
support for persistent HTTP connections. (We save a roundtrip per
file.) But the real gain will come from using parallel and/or
pipelined requests.
commit ae60643c15a2eab2cf53230aa7c5fbc8af3430d1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 3 18:54:46 2012 -0400
download-from-binary-cache: do negative NAR info caching
I.e. if a NAR info file does *not* exist, we record it in the cache DB
so that we don't retry it later.
commit 89380c03e99dc5ae8a4dcf9edb4f14483bd2f5fc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 3 18:35:39 2012 -0400
download-from-binary-cache: in queries, preferred cached info
commit 2a8e5c8b11d23f3d56cc7548e21f47325a736b79
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 3 17:47:01 2012 -0400
download-from-binary-cache: strip trailing / from URLs
commit d694c599e2b9eee71ade8cc4befb46ed911f4a10
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Jul 3 17:29:33 2012 -0400
download-from-binary-cache: cache binary cache info in a SQLite DB
commit 8319b1ab9f1e79ad32871dae602a59df5874d1a9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 2 18:53:04 2012 -0400
download-from-binary-cache: Verify NAR hashes
commit cf49472d601a3d9d34ba92def1eca9a2d2c7c391
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 2 18:05:57 2012 -0400
nix-push: Always generate base-32 hashes
commit 6ec7460af1103a23e4d331e0c8a56283350175c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jul 2 12:42:58 2012 -0400
Binary caches: use a better key
Use the hash part of the store path as a key rather than a hash of the
store path. This is enough to get the desired privacy property.
commit 6b1e671ac6cc0376474dd8c1403582ae1db01576
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 1 21:57:25 2012 -0400
Fix xz compression
commit 440adfbdd1c99fdf7929db66b64ccf4dcd9097e3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 1 21:55:36 2012 -0400
Add an environment variable $NIX_BINARY_CACHES specifying URLs of binary caches
commit f4190c38bac1efdbfec9b1ff9c524808d23fe1cc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Jul 1 18:46:38 2012 -0400
Allow both bzip2 and xz compression
commit 000132cbd1624a681a8114a117de07a56a7eed4e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 29 18:30:28 2012 -0400
nix-push: Don't pollute the current directory with result symlink
commit 37f70984645b4fc5e6ed9f30a858ba6fbf402441
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 29 18:28:52 2012 -0400
First attempt at the manifest-less substituter
commit 91b8814f0d275bbb6c7de9546e5e8cb784dad10b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 29 17:16:00 2012 -0400
Doh
commit 4911a10a4e51102a21a5d123a852c75d2ec92dbc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Jun 29 14:26:31 2012 -0400
Use XZ compression in binary caches
XZ compresses significantly better than bzip2. Here are the
compression ratios and execution times (using 4 cores in parallel) on
my /var/run/current-system (3.1 GiB):
bzip2: total compressed size 849.56 MiB, 30.8% [2m08]
xz -6: total compressed size 641.84 MiB, 23.4% [6m53]
xz -7: total compressed size 621.82 MiB, 22.6% [7m19]
xz -8: total compressed size 599.33 MiB, 21.8% [7m18]
xz -9: total compressed size 588.18 MiB, 21.4% [7m40]
Note that compression takes much longer. More importantly, however,
decompression is much faster:
bzip2: 1m47.274s
xz -6: 0m55.446s
xz -7: 0m54.119s
xz -8: 0m52.388s
xz -9: 0m51.842s
The only downside to using -9 is that decompression takes a fair
amount (~65 MB) of memory.
commit 49cd7387ad6546571ca31a41f208091b482defaa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Jun 28 17:19:32 2012 -0400
nix-push: create a manifest-less binary cache
Manifests are a huge pain, since users need to run nix-pull directly
or indirectly to obtain them. They tend to be large and lag behind
the available binaries; also, the downloaded manifests in
/nix/var/nix/manifest need to be in sync with the Nixpkgs sources. So
we want to get rid of them.
The idea of manifest-free operation works as follows. Nix is
configured with a set of URIs of binary caches, e.g.
http://nixos.org/binary-cache
Whenever Nix needs a store path X, it checks each binary cache for the
existence of a file <CACHE-URI>/<SHA-256 hash of X>.narinfo, e.g.
http://nixos.org/binary-cache/bi1gh9...ia17.narinfo
The .narinfo file contains the necessary information about the store
path that was formerly kept in the manifest, i.e., (relative) URI of
the compressed NAR, references, size, hash, etc. For example:
StorePath: /nix/store/xqp4l88cr9bxv01jinkz861mnc9p7qfi-neon-0.29.6
URL: 1bjxbg52l32wj8ww47sw9f4qz0r8n5vs71l93lcbgk2506v3cpfd.nar.bz2
CompressedHash: sha256:1bjxbg52l32wj8ww47sw9f4qz0r8n5vs71l93lcbgk2506v3cpfd
CompressedSize: 202542
NarHash: sha256:1af26536781e6134ab84201b33408759fc59b36cc5530f57c0663f67b588e15f
NarSize: 700440
References: 043zrsanirjh8nbc5vqpjn93hhrf107f-bash-4.2-p24 cj7a81wsm1ijwwpkks3725661h3263p5-glibc-2.13 ...
Deriver: 4idz1bgi58h3pazxr3akrw4fsr6zrf3r-neon-0.29.6.drv
System: x86_64-linux
Nix then knows that it needs to download
http://nixos.org/binary-cache/1bjxbg52l32wj8ww47sw9f4qz0r8n5vs71l93lcbgk2506v3cpfd.nar.bz2
to substitute the store path.
Note that the store directory is omitted from the References and
Deriver fields to save space, and that the URL can be relative to the
binary cache prefix.
This patch just makes nix-push create binary caches in this format.
The next step is to make a substituter that supports them.
commit 1aba0bf0fa831ffee628ae50730eade5b19a544f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 27 16:58:15 2012 -0400
nix-store -r: do substitutions in parallel
I.e. when multiple non-derivation arguments are passed to ‘nix-store
-r’ to be substituted, do them in parallel.
commit 42f5a2fc297f841d982f07062c653b27557a3cd5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 27 09:52:27 2012 -0400
Mount an empty /dev/shm tmpfs in the chroot
This ensures that whatever the builder writes in /dev/shm is
automatically cleaned up.
commit 3ee208516fbdd302b178d68a20dd44517a276a96
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Jun 27 09:52:06 2012 -0400
Check the return code of the clone() call
commit 1db38ae81bd91d781ece9c0cfb995e743e68e951
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 25 15:45:16 2012 -0400
When using chroots, use a private PID namespace
In a private PID namespace, processes have PIDs that are separate from
the rest of the system. The initial child gets PID 1. Processes in
the chroot cannot see processes outside of the chroot. This improves
isolation between builds. However, processes on the outside can see
processes in the chroot and send signals to them (if they have
appropriate rights).
Since the builder gets PID 1, it serves as the reaper for zombies in
the chroot. This might turn out to be a problem. In that case we'll
need to have a small PID 1 process that sits in a loop calling wait().
commit 5489086456ca13b2e884edecf7505235d214a594
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 25 14:12:17 2012 -0400
Use a private UTS namespace to provide a deterministic host/domain name to builders
In chroot builds, set the host name to "localhost" and the domain name
to "(none)" (the latter being the kernel's default). This improves
determinism a bit further.
P.S. I have to idea what UTS stands for.
commit 8da6772ed48e2ee7082071b31c7afeb800195cdb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jun 23 14:59:13 2012 -0400
Update release notes
commit 723a68c8262ec337e290e51265820ae90fe3ad18
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jun 23 00:57:14 2012 -0400
Improve error message
commit 7ffa523fd15fcd9ab1a0ad85db860f467869946a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jun 23 00:51:40 2012 -0400
In chroot builds, use a private SysV IPC namespace
This improves isolation a bit further, and it's just one extra flag in
the unshare() call.
P.S. It would be very cool to use CLONE_NEWPID (to put the builder in
a private PID namespace) as well, but that's slightly more risky since
having a builder start as PID 1 may cause problems.
commit df716c98d203ab64cdf05f9c17fdae565b7daa1c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Jun 23 00:28:35 2012 -0400
In chroot builds, use a private network namespace
On Linux it's possible to run a process in its own network namespace,
meaning that it gets its own set of network interfaces, disjunct from
the rest of the system. We use this to completely remove network
access to chroot builds, except that they get a private loopback
interface. This means that:
- Builders cannot connect to the outside network or to other processes
on the same machine, except processes within the same build.
- Vice versa, other processes cannot connect to processes in a chroot
build, and open ports/connections do not show up in "netstat".
- If two concurrent builders try to listen on the same port (e.g. as
part of a test), they no longer conflict with each other.
This was inspired by the "PrivateNetwork" flag in systemd.
commit 2f3f413e91620d2314be59870f4bd67292f7d2de
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Jun 18 23:01:46 2012 -0400
Support socket-based, on-demand activation of the Nix daemon with systemd
Systemd can start the Nix daemon on demand when the Nix daemon socket
is first accessed. This is signalled through the LISTEN_FDS
environment variable, so all we need to do is check for that and then
use file descriptor 3 as the listen socket instead of creating one
ourselves.
commit 02fb6323e06502e410dd5d5f8fe10589a7c938d4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 31 09:50:58 2012 -0400
Add Emacs to the disk image
commit 221626e7155c184d34c1e43ade92462b45c3992f
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Wed May 30 08:31:59 2012 +0700
fixes to nix-worker systemd service descriptor: - remove commented-out lines - register the file for distribution in Makefile.am
commit a7ed1f67ee5dbbdbe45e15e6461b5f7c886747d8
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Sun May 27 17:34:49 2012 +0700
On systems with SystemD, install the service descriptor for nix-worker, and enable and start it
commit 892234630594ea87a1b9bc945077c82c419af6d3
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Sun May 27 17:04:16 2012 +0700
Major spec update: - Fix license field - Split into subpackages - Update build dependencies - Configure users and groups for multi-user mode - Fix installation location of Perl modules
commit 6a214f3e06fa1c5f0a4d40e555f14d87691af297
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Sun May 27 16:34:57 2012 +0700
Update nix profile: - incorporate NixOS's configuration so that nix is usable by normal users - install as a data file, not a program file
commit d0308073c35799cce98bc853eba64f3922fadcfd
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Thu May 17 12:04:56 2012 +0800
- only enable deprecated spec sections when building on systems with older RPM versions - move tests to dedicated %check section - use standard build macros
commit e545a7f9a881d9857360713d0d3b0edc54781875
Author: Michel Alexandre Salim <michel@sylvestre.me>
Date: Thu May 17 11:56:29 2012 +0800
- replace %define with %global
commit f5398d374beac34983bb639891ba3f1f50528c72
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 30 10:12:29 2012 -0400
Compress build logs on the fly using bzip2
commit 881beb170d324f392a53168e6a76e2c5cfd24789
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 30 00:00:02 2012 -0400
"nix-store -l": support compressed logs
commit 4bc4da331aae13be8a39e768524a854597addd8a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 29 22:59:12 2012 -0400
Reserve some disk space for the garbage collector
We can't open a SQLite database if the disk is full. Since this
prevents the garbage collector from running when it's most needed, we
reserve some dummy space that we can free just before doing a garbage
collection. This actually revives some old code from the Berkeley DB
days.
Fixes #27.
commit 2c26985835cf82ed5d2979c3a400f72f6aeba32f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 29 16:42:05 2012 -0400
Add option ‘build-keep-log’ to enable/disable writing of build logs
Fixes #26.
commit 8058dab26e90db54708d4c698db843dd703ecbb2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 24 12:04:07 2012 -0400
Clean up the installation section; document the generic binary tarballs
commit 0301525e6cc7443b5cba2ccf4ef3f18b2b4beedb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 22 19:40:40 2012 -0400
Fix owner/group in tar invocation
commit 6814b1dfa1efee2b801f13ec428c72b7245880ee
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 22 18:36:54 2012 -0400
Generate binary tarballs for installing Nix
For several platforms we don't currently have "native" Nix packages
(e.g. Mac OS X and FreeBSD). This provides the next best thing: a
tarball containing the closure of Nix, plus a simple script
"nix-finish-install" that initialises the Nix database, registers the
paths in the closure as valid, and runs "nix-env -i /path/to/nix" to
initialise the user profile.
The tarball must be unpacked in the root directory. It creates
/nix/store/... and /usr/bin/nix-finish-install. Typical installation
is as follows:
$ cd /
$ tar xvf /path/to/nix-1.1pre1234_abcdef-x86_64-linux.tar.bz2
$ nix-finish-install
(if necessary add ~/.nix-profile/etc/profile.d/nix.sh to the shell
login scripts)
After this, /usr/bin/nix-finish-install can be deleted, if desired.
The downside to the binary tarball is that it's pretty big (~55 MiB
for x86_64-linux).
commit 591aab7e2166f1c7208cccdda7ce50c3c362f12b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 22 14:00:08 2012 -0400
Remove $FONTCONFIG_FILE hack from nix-profile.sh
It's no longer needed because Nixpkgs' fontconfig uses
/etc/fonts/fonts.conf as a default, just like other distributions.
commit e071f87dc5476983c557cf6185fbdeab0c4c67c5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 21 09:37:49 2012 -0400
Add an experimental nix-make file
To use it, just do (e.g.) "nix-build build.nix -A nix_env".
commit cac9eb39fe36ab28519f0b59d880fbcdc705ba95
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat May 12 00:07:08 2012 -0400
Bump version number
commit dfc6a43b72e9f38dc58866c5a9e5900d0d0b66b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 11 23:30:47 2012 -0400
Fix the install check
commit 587b408210ee3707df78c78cca9d6082e44e0233
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 11 17:40:58 2012 -0400
Set release date
commit 8a08813d6c92e583d9ed6ccaffc80effe0dc9669
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 11 17:39:06 2012 -0400
Manual updates
commit 2b00e6990c7b6f7177bce76126c6c992f3f7a93e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 11 16:21:21 2012 -0400
CSS tweaks
commit 58d1de08d9ec4ce1bfbfb65b0b74700f066af7d0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 11 09:41:39 2012 -0400
Use perl.libPrefix to (hopefully) fix the Cygwin build
http://hydra.nixos.org/build/2602599
commit 37fa47908bff2495755410c96891623d60735464
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 10 22:12:20 2012 -0400
Build Ubuntu 12.04 packages
commit 4d383f57f42af2c9316fa82ea61cb8a109c3f680
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 10 19:29:36 2012 -0400
Document "nix-build --run-env"
commit 4f7bab7db1d0447e41f858633cddba1dcb2c9ea2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 10 19:03:23 2012 -0400
Support building with the Perl XS bindings disabled
Since the Perl bindings require shared libraries, this is required on
platforms such as Cygwin where we do a static build.
commit 6a7b24a3f25548fe2b083555cd2117dd66557ab0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 10 18:09:45 2012 -0400
Document "nix-store --add"
commit cda1fd8ec86553f2a76366ec56c3fa21788fc189
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu May 10 16:56:36 2012 -0400
Remove an obsolete hack
commit 663c06e8cd7d44443b0495b13f2bb08e2cfab889
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 9 22:14:36 2012 -0400
Disable building in chroot for Nix's corepkgs
The dependencies of the corepkgs are not necessarily in the chroot (or
in the Nix store), so don't build them in a chroot.
commit cb1248d2082ff8292e2516f124feea4427cf150a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 9 19:06:39 2012 -0400
Document some nix-store subcommands
commit 7a213ffc6912794d2cc4374bb9bf2c1f59a384a3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 9 19:06:13 2012 -0400
Document $NIX_PATH / -I
commit a58efdb69b0c018322bb773ce14dc33cb252b165
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed May 9 19:05:30 2012 -0400
Update the release notes
commit 0c4c8f7a9d09c497d95771c894a5cc3d4276609b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 8 15:43:54 2012 -0400
Remove obsolete files (moved to release tree)
commit afa7b8a479e48c5642a796563a615314c0261a1a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 7 17:55:56 2012 -0400
nix-channel --update: allow updating only the specified channels
commit 147f10157fef48dcf3e32511e10f5ee00026b757
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon May 7 17:23:26 2012 -0400
Now *really* prevent accumulation of old manifests
commit 464089365e2c72c83e5a8edb5611e537c4898501
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 4 21:40:56 2012 -0400
Fix some 32-bit builds
Perl on some 32-bit systems needs -D_FILE_OFFSET_BITS=64. See also commit
02f1363e19b7df7cccc3523805bbf4fafe429529.
commit c6acb219f9312ee3c8e1ac83d2b490401f8b9a9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 4 18:50:34 2012 -0400
Drop the Perl-specific CFLAGS
This fixes the Darwin build (http://hydra.nixos.org/build/2517380).
Hopefully it doesn't break other builds.
commit 56c82f3d9dec34eeaa124c61b20af4ae67f827a2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 4 17:45:21 2012 -0400
Don't build for old Debian/Ubuntu releases that don't have a sufficiently new SQLite
commit 373e875ac2e403f1f790fbd9d2323e581a8aae21
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 4 17:25:25 2012 -0400
Don't build for old Fedora releases that don't have a sufficiently new SQLite
commit d03a295192f8d7b7ced98d5bbab91a8aa9b0ca4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri May 4 17:21:43 2012 -0400
Require SQLite >= 3.6.19
Nix needs SQLite's foreign key constraint feature, which was
introduced in 3.6.19. Without it, the database won't be cleaned up
correctly when paths are deleted. See
e.g. http://hydra.nixos.org/build/2494142.
commit e060c99447a445bbf1c527b8c712e3bf809ee694
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 1 16:35:18 2012 -0400
Use mkpath instead of make_path
Perl <= 5.10 doesn't have make_path. See
e.g. http://hydra.nixos.org/build/2493981.
commit e19fb7ebedabf5109379b80c5e42e89fa4437276
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 1 16:31:56 2012 -0400
Do "make installcheck" for RPM builds
commit e145ac30e32c3f2d4491c195daccdc15c722a005
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue May 1 15:48:17 2012 -0400
Do "make installcheck" for Debian builds
commit db5b86ef13026d7f034527005ab231ddc2b7d2c1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 30 19:15:34 2012 -0400
* Add an option ‘build-use-substitutes’, which can be set to ‘false’
to disable use of substitutes; i.e., force building from source.
Fixes Nix/221.
commit 59a26360c75f1cf5fe65fce5e3703df0b6645140
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 30 17:22:45 2012 -0400
Support mandatory system features in the build hook
Mandatory features are features that MUST be present in a derivation's
requiredSystemFeatures attribute. One application is performance
testing, where we have a dedicated machine to run performance tests
(and nothing else). Then we would add the label "perf" to the
machine's mandatory features and to the performance testing
derivations.
commit 82ae0e688c21794bea583f9b48bb3639f7e2601a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 30 16:49:00 2012 -0400
Update the documentation of build-remote.pl
commit 46cdc6ad51376e2f31ce806ee38e697d00a6e5cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 30 10:58:04 2012 -0400
Handle EPERM when creating a hard link for the chroot
There is a race condition when doing parallel builds with chroots and
the immutable bit enabled. One process may call makeImmutable()
before the other has called link(), in which case link() will fail
with EPERM. We could retry or wrap the operation in a lock, but since
this condition is rare and I'm lazy, we just use the existing copy
fallback.
Fixes #9.
commit c722193a91cb32f2696d655cf6301cf5ccfae6ce
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 26 16:52:08 2012 +0200
Don't use the build hook for unpacking channels
commit 6de5d534164d95b0c004cd4b2ed9bf97f9903029
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 24 12:56:30 2012 +0200
Fix a warning in the build hook about $progressViewer
commit 6387830c3b12722e5962a99aa81f225ea0830076
Merge: 259c6d3 85799bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 23 03:29:03 2012 -0700
Merge pull request #2 from viric/master
Again, adding the sync option
commit 259c6d3fbb1298488cc9d437ae81f313dba585fd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Apr 18 13:40:18 2012 +0200
Fix URL set by nix-channel
commit 9cd3ff1059e9daffe65e24dc826268f1e69e2593
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 17 17:19:43 2012 +0200
nix-instantiate: default to "default.nix" if no arguments are given
commit 8745fade0387b2900a98b95798d9f12be7ef97ca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 17 17:14:14 2012 +0200
Added utility command ‘nix-instantiate --find-file’ to look up a file in Nix's search path
commit 8cf1719e3e02998c0d22ed9e505a4a98e3335627
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 16 19:52:31 2012 +0200
Hack to prevent accumulation of old manifests
commit 1132dd27eaf6b32937f1e0508c84d08f5ae90470
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Apr 16 18:47:01 2012 +0200
Fix obscure race condition in GC root creation
This should fix rare Hydra errors of the form:
error: symlinking `/nix/var/nix/gcroots/per-user/hydra/hydra-roots/7sfhs5fdmjxm8sqgcpd0pgcsmz1kq0l0-nixos-iso-0.1pre33785-33795' to `/nix/store/7sfhs5fdmjxm8sqgcpd0pgcsmz1kq0l0-nixos-iso-0.1pre33785-33795': File exists
commit 154aa7f71ade55fe5ce43503ade85fc2a107a331
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Apr 15 00:42:16 2012 +0200
Set a few more close-on-exec flags
commit 31e34fcf932e86c398a38b39facc268026736f0c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Apr 15 00:20:32 2012 +0200
Close almost all file descriptors in the builder
This regression was accidentally introduced in
35355fc1fcffbe859395e360c0a6a1463f137d63.
commit 0b5107c016080e70d30ccba3afa0f9aa7a90a891
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Apr 14 21:05:28 2012 +0200
If the (redirected) channel URL contains a version number, use it
commit 1d0bafb74d17f14778005a633ee332ad0ad9ba9e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Apr 14 21:04:22 2012 +0200
Follow redirects early to ensure consistency between the manifest and the tarball
Without this change, if the URL is a redirect that changes in between,
we can get a manifest that doesn't match the tarball.
commit ca3d9f8b31378093ecfbce493aab979c97d5ba78
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Apr 14 19:52:58 2012 +0200
Urgh, modified the wrong file...
commit ef902274fd4b1c13732851e6cbfa00d4d4e46821
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Apr 14 18:48:11 2012 +0200
Remove unnecessary "system" argument
commit e855c7e2c9a9a5cbe4406c1f9351181a9ebe6283
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sat Apr 14 18:38:52 2012 +0200
nix-channel improvements
"nix-channel --add" now accepts a second argument: the channel name.
This allows channels to have a nicer name than (say) nixpkgs_unstable.
If no name is given, it defaults to the last component of the URL
(with "-unstable" or "-stable" removed).
Also, channels are now stored in a profile
(/nix/var/nix/profiles/per-user/$USER/channels). One advantage of
this is that it allows rollbacks (e.g. if "nix-channel --update" gives
an undesirable update).
commit 969a14599d2f7bfd02971475b5b2be49fb965117
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 13 14:41:33 2012 +0200
If "pv" is available at compile time, hard-code its path
commit 34a85c5405a228860a7bbe77239fb0204bf6952c
Author: Shea Levy <shea@shealevy.com>
Date: Thu Mar 29 18:58:14 2012 +0200
nix-copy-closure: Move the progressViewer directly adjacent to the ssh call so that network progress is what's measured
commit 055e803851e73bb94d341c3b4f25f52be167fef7
Author: Shea Levy <shea@shealevy.com>
Date: Thu Mar 29 18:20:31 2012 +0200
Add the '--show-progress' flag to nix-copy-closure
commit 00c98a6befb70228c7ba2b7d5dc8684289915baa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 13 14:28:26 2012 +0200
Use Bison 2.5
commit 209927bb2785920eff455adb97ba513080c6e8c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 10 16:40:51 2012 +0200
Unconfuse Rob
commit 1fb30e6d50c29adcc3a3d73381cd90f5f5989c31
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Apr 10 13:52:37 2012 +0200
Handle the case where $SHELL is not set
commit 8f6146a7bc7c5a2e8c03b127366eff7d82552eef
Merge: 533250a 242a99c
Author: Rob Vermaas <rob.vermaas@gmail.com>
Date: Mon Apr 9 00:24:08 2012 -0700
Merge pull request #5 from shlevy/doc-fix
Nix is on github now
commit 242a99c95ae9a0e829c5b34b51d29614ff2cb788
Author: Shea Levy <shea@shealevy.com>
Date: Sun Apr 8 23:59:02 2012 -0400
Nix is on github now
commit 533250a4a3f5767fdc647b133134b92e3c804025
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 22:54:15 2012 +0200
Fix building from the tarball
commit 831c7aa4108d56246595cfbcefdb1113f159715c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 22:03:19 2012 +0200
Documentation fix
commit 5863987bba9bc4c90d0d71204933ac90ac7a710b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 21:56:20 2012 +0200
Include environment variables in the manpages
commit 998b977ede9948f78a6a913ecedf3361eb14f769
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 21:45:00 2012 +0200
Include common options in the manpages using some XInclude hackery
commit d49ef039dd61dba160cb0b78c6b00152ff9e680e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 21:43:56 2012 +0200
Update affiliation
commit 5a6d50998dffcf60b45fd35b858dbe37cf33d649
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Fri Apr 6 20:26:30 2012 +0200
Add a missing DocBook source file to the tarball
Reported on IRC by Adrian Siekierka.
commit f2467eb6a0070176a5b1cd76aa330b84431f8258
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Thu Apr 5 13:03:19 2012 +0200
On Linux, pretend we're building on Linux 2.6
Setting the UNAME26 personality causes "uname" to return "2.6.x",
regardless of the kernel version. This improves determinism in
a few misbehaved packages.
commit 3b859ead376cb0aa6c7b27774c2d82ed3ecb370a
Author: Hydra mirror <hydra-mirror@lucifer.(none)>
Date: Wed Apr 4 20:46:18 2012 +0000
nix-generate-patches: Optionally write new patches to $NIX_ALL_PATCHES
commit 34ea91b25919d795b6d322059de274ddcf778763
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Apr 4 16:22:32 2012 +0200
Include --keep-going in --help
commit 0837348049bbdd24378ad9376caad932712d5acd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Wed Apr 4 15:41:35 2012 +0200
Follow redirects when checking for the existence of MANIFEST.bz2
If we don't follow redirects, we might think that MANIFEST.bz2 exists
just because the HEAD request succeeds on the redirector URI.
commit b8fb0ce5634456ba987231fc755c32af6f4ada30
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 27 11:59:36 2012 +0200
Update "nix-build --help"
commit 5144abe5b67628d6968d0ab829aa52a6428a77a6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 27 11:40:47 2012 +0200
Add an option "--exclude" to filter dependencies in "nix-build --run-env"
Sometimes when doing "nix-build --run-env" you don't want all
dependencies to be built. For instance, if we want to do "--run-env"
on the "build" attribute in Hydra's release.nix (to get Hydra's build
environment), we don't want its "tarball" dependency to be built. So
we can do:
$ nix-build --run-env release.nix -A build --exclude 'hydra-tarball'
This will skip the dependency whose name matches the "hydra-tarball"
regular expression. The "--exclude" option can be repeated any number
of times.
commit 3e94ffffd61573624883c02744f20ac3544ff9cb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 27 11:16:43 2012 +0200
Allow the command executed by "nix-build --run-env" to be overriden with --command
commit 446b827baedde7ba3ca44f9ef51940e28e13fb87
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 26 23:18:36 2012 +0200
Mac OS X fix
commit 480dda0e42e69be47434be5bce95be950bdb59b5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 26 20:56:30 2012 +0200
Delete non-directory valid paths right away
It's unlikely that rename() is faster than unlink() on a regular file
or symlink, so don't bother.
commit 117670be570d775a18e4e35db3dae00abc24f729
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 26 20:43:33 2012 +0200
Make the garbage collector more concurrent
Make the garbage collector more concurrent by deleting valid paths
outside the region where we're holding the global GC lock. This
should greatly reduce the time during which new builds are blocked,
since the deletion accounts for the vast majority of the time spent in
the GC.
To ensure that this is safe, the valid paths are invalidated and
renamed to some arbitrary path while we're holding the lock. This
ensures that we when we finally delete the path, it's not a (newly)
valid or locked path.
commit 8be1979f1ae4b85c36988f7b3cf8240c9682dc54
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 26 20:00:02 2012 +0200
Remove the --max-links GC option
We don't need this anymore now that current filesystems support more
than 32,000 files in a directory.
commit 85799bf89ed2649d7f3e2298de0478c50a71776d
Author: Lluís Batlle i Rossell <viric@viric.name>
Date: Thu Mar 22 20:05:54 2012 +0100
Fixing the default of sync-before-registering
Setting 'false' as default, as suggested by Eelco.
I also added a comment about the setting in the code.
commit 25de80e2b61208850c4a39d8ee44967ada8f040e
Author: Lluís Batlle i Rossell <viric@viric.name>
Date: Thu Mar 22 19:57:42 2012 +0100
Adding a nix option to sync before registering a path, for non-ext*
filesystems.
commit 19d9762ad5fc8d8db3e9a545a89309f08572cc9f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Tue Mar 20 18:23:26 2012 +0100
nix-store --clear-failed-paths: Clear derivation outputs
If the argument to ‘nix-store --clear-failed-paths’ is a derivation,
then clear the failed state of its outputs.
commit cb79e91ec3f63ac46d8f4361cb4db75e76a79981
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 17:05:42 2012 +0100
Fix the coverage build
commit 457dd55962837fc3026686b58ad89721106356cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 15:11:22 2012 +0100
Fix the Deb builds
commit 4b83483142c7442663ffee488789ffe572ceaea1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 14:30:59 2012 +0100
Fix the RPM
commit 7f38087f35e6f74a73bfdb28da8acd8930565d51
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 04:14:21 2012 +0100
Add a command "nix-build --run-env" to reproduce the environment of a derivation
This command builds or fetches all dependencies of the given
derivation, then starts a shell with the environment variables from
the derivation. This shell also sources $stdenv/setup to initialise
the environment further.
The current directory is not changed. Thus this is a convenient way
to reproduce a build environment in an existing working tree.
Existing environment variables are left untouched (unless the
derivation overrides them). As a special hack, the original value of
$PATH is appended to the $PATH produced by $stdenv/setup.
Example session:
$ nix-build --run-env '<nixpkgs>' -A xterm
(the dependencies of xterm are built/fetched...)
$ tar xf $src
$ ./configure
$ make
$ emacs
(... hack source ...)
$ make
$ ./xterm
commit ea402a255f9c03a644d256b0d1443a986a2bbebb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 01:20:02 2012 +0100
Replace "make check" with "make installcheck"
Ensuring that the tests work from the build tree requires a growing
number of nasty hacks. The tests also don't verify that the installed
Nix actually works. Thus, the tests now require "make install" to
have been run.
commit 4b23900ff1568270c9a03ccadc1cbd0b872e4ef7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Mon Mar 19 01:06:13 2012 +0100
Fix the optional dependency on OpenSSL
http://hydra.nixos.org/build/2306540
commit b006a31d52b8f1cb01f3d722a6e3411dc8b98d64
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Mar 18 23:54:57 2012 +0100
Drop the externals directory
Nix now requires SQLite and bzip2 to be pre-installed. SQLite is
detected using pkg-config. We required DBD::SQLite anyway, so
depending on SQLite is not a big problem.
The --with-bzip2, --with-openssl and --with-sqlite flags are gone.
commit 2e0322efd14df7a1658201fb443c8e90687dcfda
Author: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun Mar 18 22:10:59 2012 +0100
Clean up when building from a working tree
commit bd50c01972718167cf86d20dcd9c928b4c3cfbd8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Mar 13 17:07:49 2012 +0100
Ensure that Perl processes delete their entry in the temproots directory
By moving the destructor object to libstore.so, it's also run when
download-using-manifests and nix-prefetch-url exit. This prevents
them from cluttering /nix/var/nix/temproots with stale files.
commit b461721f17d7104c7ef08a0840d80685b9ae853e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 12 21:41:45 2012 +0100
Fix tests
commit 005d1e4ccb7917d1438dd8f14ddaeeff8eab0b30
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Mar 6 20:03:20 2012 +0100
Update bzip2 dependency
commit 605b16cd7bd9b29482d9029740c3a4595a483f21
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 22:04:40 2012 +0100
Fix compilation on FreeBSD
http://hydra.nixos.org/build/2213576
Not sure why compilation doesn't fail on other platforms...
commit d645633643ff806bff8fcd1677d6ac87509f40e9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 20:52:24 2012 +0100
nix-copy-closure: don't print copied path on stdout
We're already printing progress on stderr, so printing them on stdout
afterwards is kind of useless.
commit 35355fc1fcffbe859395e360c0a6a1463f137d63
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 20:29:00 2012 +0100
Set the close-on-exec flag on file descriptors
commit 7b22bec252a155514d811a8e2acc21562ac02bd4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 20:28:09 2012 +0100
Don't leak a file descriptor in commonChildInit()
commit 1d487dc6a682468ae00402b3720ff412b6bfb6fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 19:19:29 2012 +0100
nix-worker: put the pid of the caller in argv[1]
This is useful for debugging.
commit 2b4964f31979b5227a7a51b646d2e4bbb5ef6579
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 18:13:44 2012 +0100
Restore progress indication during nix-copy-closure
commit 56042a120a3149ec7ddfb36c6f7d7b841ba6dfeb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Mar 5 17:58:09 2012 +0100
build-remote.pl: don't wait forever for the upload lock
In the build hook, don't wait forever to get the upload lock. This
ensures progress if another process gets stuck while holding the
upload lock.
commit 8afd28a922c8d3a0113abad2b8071465c2d77fe9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Mar 1 16:04:12 2012 +0100
Remove dependency on sqlite3_table_column_metadata
Not all SQLite builds have the function sqlite3_table_column_metadata.
We were only using it in a schema upgrade check for compatibility with
databases that were probably never seen in the wild. So remove it.
commit 1c94524458fda335739b163a76aedeb7bcc5f43a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Feb 24 20:57:54 2012 +0100
Fix an uninitialised variable
The variable ‘useChroot’ was not initialised properly. This caused
random failures if using the build hook. Seen on Mac OS X 10.7 with Clang.
Thanks to KolibriFX for finding this :-)
commit 6fe13e6aba771452e2637d9a8102569c1007d919
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Feb 18 01:23:52 2012 +0100
Fix chroots builds
Chroots are initialised by hard-linking inputs from the Nix store to
the chroot. This doesn't work if the input has its immutable bit set,
because it's forbidden to create hard links to immutable files. So
temporarily clear the immutable bit when creating and destroying the
chroot.
Note that making regular files in the Nix store immutable isn't very
reliable, since the bit can easily become cleared: for instance, if we
run the garbage collector after running ‘nix-store --optimise’. So
maybe we should only make directories immutable.
commit bd013b6f987c23c3b99b639ba7cdbc7b694a13f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 15 01:31:56 2012 +0100
On Linux, make the Nix store really read-only by using the immutable bit
I was bitten one time too many by Python modifying the Nix store by
creating *.pyc files when run as root. On Linux, we can prevent this
by setting the immutable bit on files and directories (as in ‘chattr
+i’). This isn't supported by all filesystems, so it's not an error
if setting the bit fails. The immutable bit is cleared by the garbage
collector before deleting a path. The only tricky aspect is in
optimiseStore(), since it's forbidden to create hard links to an
immutable file. Thus optimiseStore() temporarily clears the immutable
bit before creating the link.
commit 5e57047d874e0f01dcb3bbc8b809fcc1aa82755b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 15 01:00:30 2012 +0100
Fix a broken guard around utime()
Because of an outdated check for a timestamp of 0, we were calling
utime() even when it wasn't necessary.
commit 58ac7a17a43587001331e4a0379d38c369b99057
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 15 00:28:01 2012 +0100
Don't use deletePath() to delete a single file
commit e9fc91df45c28376960a6e38c8c5f04bf9312623
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 9 18:56:48 2012 +0100
Fix error message
This fixes the error message
error: file `' was not found in the Nix search path (add it using $NIX_PATH or -I)
commit d5a5a83ad4fb8aba3b334039f567267a0463ee5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 9 18:27:45 2012 +0100
Use data() instead of c_str() where appropriate
commit ec2827f5fc4fc8081daacb197d40d22a5e429df4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 8 19:25:43 2012 +0100
Update .gitignore
commit 4055a3b19c826dbf487599ee24116a042e37275e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 8 13:22:08 2012 +0100
Remove empty ChangeLog file
commit fb95455c02c8c48d98a94fde62d666ab13b53edf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 8 12:31:14 2012 +0100
Set the versionSuffix to include the Git shortrev
commit 67444f5e54163702e6c5f0dd7d85c1158291fe99
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Feb 7 13:18:20 2012 +0000
* Build Nix for the latest Fedora and Ubuntu releases (and drop some
old ones).
commit f491ae97d472bfd6305a8f3e8c58fac1fdc443a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Feb 4 13:50:25 2012 +0000
* Inline some functions and get rid of the indirection through
EvalState::eval(). This gives a 12% speedup on ‘nix-instantiate
/etc/nixos/nixos/ -A system --readonly-mode’ (from 1.01s to 0.89s).
commit 2bda12ef3b2b1d9a0fc59324d723e3fa883ab223
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Feb 4 13:27:11 2012 +0000
* Print elapsed evaluation time.
commit ce86a9a0ae928f8cdbe26021b6b757bf5b9d7693
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 2 12:25:56 2012 +0000
* nix-channel: fail if we don't have write permission to the manifests
directory. Previously in this situation we did add the Nix
expressions from the channel to allow installation from source, but
this doesn't work for binary-only channels and leads to confusing
error messages.
commit baa0501cc120619ac3b76eaa53fff10cffd02449
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 26 13:13:00 2012 +0000
* Fix importing a derivation. This gave a segfault.
commit 4c9fdd2cd63f2f3c4e87790c5cacfdf5cd88591f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 26 13:04:50 2012 +0000
* Add a test for importing derivations.
commit 330df4b4dbb363b69e10fa96d1e22f62088bfc96
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 19 23:08:47 2012 +0000
* Allow comparisons between derivations by comparing the outPath
attributes.
commit 18047d4625b46ae001abc649096ab9ecd4c54560
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 19 23:07:42 2012 +0000
* Add some debug output to print the derivation name once it's known.
This makes it easier to pinpoint the source of a crash.
commit 126c7317bc2384e64e1c6d515061141718e2688f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 19 22:10:24 2012 +0000
* Add a test case for comparing derivations.
commit ddd0ce534ad8ecf9dc57749f354ea6b88b82900f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 18 16:43:48 2012 +0000
* Don't distribute Store.cc, it's generated automatically by xsubpp.
commit 02f1363e19b7df7cccc3523805bbf4fafe429529
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 18 16:39:54 2012 +0000
* Pass the appropriate flags to GCC when building the Perl bindings.
Without these, Nix fails on 32-bit Linux with Perl 5.14, with a
rather unhelpful error message:
Not a CODE reference at /nix/store/n6kpbacn6nn7i3i735v8j3di8aqyl07v-perl-5.14.2/lib/perl5/5.14.2/i686-linux-thread-multi/DynaLoader.pm
This is likely because the lack of -D_FILE_OFFSET_BITS=64 causes
various Perl structures to not match what the Perl interpreter
expects.
commit 4e624849b686894f8a4c23a56098f4d47634a85c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 17 23:07:22 2012 +0000
* Added a command ‘nix-store --print-env $drvpath’ that prints out the
environment of the given derivation in a format that can be sourced
by the shell, e.g.
$ eval "$(nix-store --print-env $(nix-instantiate /etc/nixos/nixpkgs -A pkg))"
$ NIX_BUILD_TOP=/tmp
$ source $stdenv/setup
This is especially useful to reproduce the environment used to build
a package outside of its builder for development purposes.
TODO: add a nix-build option to do the above and fetch the
dependencies of the derivation as well.
commit 2a3f4110c54a10ebee67403a699cb8f951fca858
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Jan 13 23:35:07 2012 +0000
* nix-build: put the temporary derivation symlink in a temporary
directory rather than the current directory.
* nix-build: --drv-link now implies --add-drv-link.
commit 7ae763e16b2a2524f50487ea7422e5412a080004
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 12 14:16:25 2012 +0000
* ‘-module’ causes the generated library to have an .so extension on
Mac OS X instead of .dylib, so don't do that.
commit 6245f0d5298f613c39f999fd68bf21aee8d72945
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Jan 11 16:58:49 2012 +0000
tests: Run `download-using-manifests' via libtool so that dlopening works.
commit c5d9ccd810e3d4c791a912767c4463f4bb44d52e
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Jan 11 16:44:42 2012 +0000
perl: Build libNixStore.la with `-module'.
commit f86fca9b708ea98be0d508db90ec25d537fba246
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 11 15:41:42 2012 +0000
* Figure out the extension of dynamic libraries; don't hard-code .so.
commit 9fe24c5a0d1e694c6338d584a101034cfbff10bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Jan 7 17:26:33 2012 +0000
* Don't create thunks for simple constants (integers, strings, paths)
and allocate them only once.
* Move Value and related functions into value.hh.
commit d4e6b9f2d62ef77ff46397bd130350f03723ce50
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 5 21:07:12 2012 +0000
* Doh!
commit a7366a764aa8d549a16b58e43181fe4ff7e598ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jan 5 20:33:46 2012 +0000
* Add a -I flag to the Perl bindings to nix-build and some other
scripts.
* Include the version and architecture in the -I flag so that there is
at least a chance that a Nix binary built for one Perl version will
run on another version.
commit b52966e821b05e0d2e379ed6bbbf748f22453108
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 21:47:48 2012 +0000
* Remove dead code.
commit 35f2a6ba82419d48ed8ebce7b8c3e74e65ac74f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 21:24:11 2012 +0000
* Don't use dynamic_cast, it's very slow. "nix-instantiate
/etc/nixos/nixos -A system" spent about 10% of its time in
dynamic_cast.
commit adaf64a99b0a882249e35768c3f4fe3de104cbb2
Merge: 63227d4 9936da6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 16:22:25 2012 +0000
* Merge the multiple-outputs-sandbox branch (svn merge --reintegrate
^/nix/branches/multiple-outputs-sandbox). Multiple output support
still isn't complete, but it wasn't complete in the trunk either, so
it doesn't hurt.
commit 9936da6b546d1ce643eca21ac76c6e7d568de1c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 12:45:53 2012 +0000
* Check whether the outputName attribute works.
commit 9d43a0238235cfbe914e2051db89095699a2df95
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 12:45:40 2012 +0000
* Let --disable-gc work.
commit a0477a458fa9fd7fbe090ff8cebcfd162c090b43
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 12:00:39 2012 +0000
* currentOutput -> outputName. "current" implies some temporal
aspect.
commit b79b85ad7668783391538fe2cda2e896f4ea0c8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 11:56:15 2012 +0000
* Export the original input attributes of the derivation in
‘drvAttrs’. This will simplify the implementation of functions such
as ‘overrideDerivation’ in Nixpkgs, which need to filter out any
added attributes such as outPath.
commit 83647f4ef14f1ecf40b9fc6099fc77864b87cf41
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jan 4 11:04:19 2012 +0000
* Simplify the implementation of "derivation" a bit: lift out the
common attribution so that they're evaluated only once, etc. Note
that the default output is now the first element of the "outputs"
attribute, rather than the first element of the sorted list of
outputs. This seems more user-friendly.
commit 71f3c46cf65c0638946c9bb57c36a2b5f177a672
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 15:27:18 2012 +0000
* Drop the inefficient "Path" suffix in output attribute names.
commit 921111d1972388a0aa1841c545c753cb996c9257
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 14:01:47 2012 +0000
* Move the implementation of the ‘derivation’ primop into a separate
file.
commit 6c31232e1494d1d68a31fb8433dbf593f831dff2
Merge: 502d940 63227d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 12:59:31 2012 +0000
* Sync with the trunk.
commit 502d94048ae848eda1fcda2d1e72b339eaa653aa
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 12:59:00 2012 +0000
* Ignore missing manifest symlinks.
commit 63227d434cefaa9faeb14afe28ebeb9b2d449ee2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 12:18:41 2012 +0000
* FreeBSD tar defaults to the tape device instead of stdout.
commit 9b7df1ef007d9209b17f7aa40a03be0250ea30d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 09:19:40 2012 +0000
* Forgot to add.
commit 39d45a6b090b5105423b22b8ef39c2a4a000a4a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 01:51:38 2012 +0000
* Add a test for nix-channel.
* Refactor the nix-channel unpacker a bit.
commit dadbb51d969517c1f2512015ab201dc99088d9a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 00:47:27 2012 +0000
* Use Nix::Config.
commit 48cea0d01ef48733ab38a73a20611f63aeb1b5cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jan 3 00:16:29 2012 +0000
* Refactoring: Get rid of a few subdirectories in corepkgs/, and some
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.
commit 93e71e6ab68d9662441289a02448c47069beeb2a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 17:39:03 2011 +0000
* Follow our own coding conventions.
commit f2d65c9c80821616c4f5587d2bbfdec9e18bdbfd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 17:31:58 2011 +0000
* Remove a redundant dot (Nicolas Pierron).
commit 93b56acb2dd90e106413f201c8025d2ffeba98e0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 17:25:19 2011 +0000
* Support multiple outputs in nix-store (specifically the ‘--query’
and ‘--realise’ actions).
commit a71d02440b03cdb5dad6e43f786c0cc86cbb87b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 17:13:25 2011 +0000
* Oops.
commit 6f5e3326cef2a2049c8f4ea757accafe4fc9d53f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 15:02:50 2011 +0000
* Move topoSortPaths() out of gc.cc.
commit b1004f40f7e4dd02feec2d0cb26bd6c95dd66dde
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 14:47:14 2011 +0000
* Reject a build if there is a cycle among the outputs. This is
necessary because existing code assumes that the references graph is
acyclic.
commit ed11b17b2e0e10b759ac051b53c29cc9f79574dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 13:43:29 2011 +0000
* Fix doc error.
commit 254b3399ba3d7cf161fa54f9cf6cdc65c17164fb
Merge: 5679041 8c42a8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 30 13:08:14 2011 +0000
* Sync with the trunk.
commit 8c42a8c8ff2986940a41d46b0bdaa1c2ff0f15ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Dec 25 16:38:37 2011 +0000
* Make sure that lock files are cleaned up properly when building
through the build hook.
commit 524fa8a4f11826fdf22005f3304366856f72ffa5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 22 16:27:03 2011 +0000
* Oops.
commit b33da599c5c1b06a32a3eeac58f95481d10f821d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 22 15:55:53 2011 +0000
* In the garbage collector, delete invalid paths before deleting
unreachable paths. This matters when using --max-freed etc.:
unreachable paths could become reachable again, so it's nicer to
keep them if there is "real" garbage to be deleted. Also, don't use
readDirectory() but read the Nix store and delete invalid paths in
parallel. This reduces GC latency on very large Nix stores.
commit 58d974336c733416756e5b396928602ea8ed8df2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 22 14:33:34 2011 +0000
* Drop unnecessary call to canonPath() (nixStore is already canonical).
commit 66c99b0cf50bb1d6290f55c209e9541b50ce41e8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 22 10:58:27 2011 +0000
* ‘--disable-shared’ is no longer supported. Fortunately it's not
needed for the coverage analysis.
commit 2aac7cd0217ce3417b12574ca7f9930090da6c4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 19:17:45 2011 +0000
* Another case of lock file permissions being too liberal.
commit 4d728bc3e60a6d07858f7a881221688ccdebb7fe
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 19:11:58 2011 +0000
* Security: make sure the lock files used by build-remote.pl are not
readable to other users. Otherwise, any user can open the lock file
for reading and lock it, thus DoSing the remote build mechanism.
commit 69d6f0936a59da5cc35040407f4b667437d61add
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 18:59:25 2011 +0000
* Use a lock to ensure that only one build-remote instance can copy a
closure to a given machine at the same time. This prevents the case
where multiple instances try to copy the same missing store path to
the target machine, which is very wasteful.
commit 56790411323eada03bacf37fe6fd328a7c84d32a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 18:19:05 2011 +0000
* The ‘foo.drvPath’ feature was already broken in read-only mode.
Since it's rarely used and fixing it is too much work right now,
just document it.
commit f8e54b7874b73891e39aff11dac2a5ceabef2f02
Author: Shea Levy <shea@shealevy.com>
Date: Wed Dec 21 17:34:44 2011 +0000
Make the reference cycle in the cyclic outputs test indirect
commit b4cee3f816ad53f9762f38c28b51a78732b249f2
Author: Shea Levy <shea@shealevy.com>
Date: Wed Dec 21 17:31:34 2011 +0000
Revert previous commit
It doesn't detect indirect references
commit f3c88f297d837f73d8123cb12564d237d7d0df87
Author: Shea Levy <shea@shealevy.com>
Date: Wed Dec 21 17:14:28 2011 +0000
Detect and reject mutually-referential outputs
There is probably a more efficient way to do this.
commit b19a0f63dbb0c4910f4d9dcb391ca424ff3faeaa
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 15:33:30 2011 +0000
* Simplify the context handling logic.
commit 4be5a2c096083234e62117ce6016c4c9aa573aff
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 14:42:06 2011 +0000
* Add a test for unsafeDiscardOutputDependency. Not really related to
multiple outputs, but good to have anyway.
commit 179409b9112ee9d9f858a124e0b109a46fe835c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 13:47:21 2011 +0000
* Add a test for referring to another derivation's ‘drvPath’. This
currently fails in read-only mode.
commit 38776198880d06dc6af0fbdfa7cb2c053000112a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 21 11:47:52 2011 +0000
* Add some accidentally committed files.
commit edd9359bebe012ae40e9e1538dab8f91e2d58d3e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 20 17:10:39 2011 +0000
* Doing a GC after building a derivation with cyclic outputs currently
segfaults.
commit 1f3b0ede7d9b6292e054f8e5ecc52a83cbba1f09
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 20 17:08:43 2011 +0000
* Add a (currently failing) test that checks whether mutually
recursive outputs are properly rejected.
* Add a (also failing) test for "nix-build -A <output-name>".
commit 46e42c92c1444e1dd3aec871b3750bcd7391f60e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 20 17:01:02 2011 +0000
* Refactor a bit so that more tests can be added.
commit b5363810bbeea37df34a5cb0051e05161630a510
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 20 16:37:01 2011 +0000
* Fix the build.
commit 194d21f9f63ceb034f3e8294f89aa6bf6a217bc9
Merge: 3c3107d 273b288
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 16 23:33:01 2011 +0000
* Sync with the trunk.
commit 273b288a7e862ac1918064537ff130cc751fa9fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 16 22:31:25 2011 +0000
* importPath() -> importPaths(). Because of buffering of the input
stream it's now necessary for the daemon to process the entire
sequence of exported paths, rather than letting the client do it.
commit 8d3dfa2c1782e955d2b7796d19dc0d0381596b98
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 16 21:29:46 2011 +0000
* Avoid expensive conversions from char arrays to STL strings.
commit e0bd307802d13476055f8ba99ab7808de0fd71e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 16 19:44:13 2011 +0000
* Make the import operation through the daemon much more efficient
(way fewer roundtrips) by allowing the client to send data in bigger
chunks.
* Some refactoring.
commit 78598d06f0240a15b74720d8f987daeb702318d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 16 15:45:42 2011 +0000
* Clean up exception handling.
commit 5a1b9ed0aa3a0c240b667dbe504b61b2b68e4d16
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 15 16:19:53 2011 +0000
* Refactoring: move sink/source buffering into separate classes.
* Buffer the HashSink. This speeds up hashing a bit because it
prevents lots of calls to the hash update functions (e.g. nix-hash
went from 9.3s to 8.7s of user time on the closure of my
/var/run/current-system).
commit a67b8ae22450a0fe10698042b452f5f2f322e008
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 15 14:04:35 2011 +0000
* Typo.
commit a3e0656cbbfadba28518e0a29c324edaabb9874a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 15 12:32:08 2011 +0000
* Buffer reads in FdSource. Together with write buffering, this
significantly cuts down the number of syscalls (e.g., for "nix-store
-qR /var/run/current-system" via the daemon, it reduced the number
of syscalls in the client from 29134 to 4766 and in the daemon from
44266 to 20666).
commit 3a48282b0681d68147e18f7464eaddf1d188c3be
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 14 23:30:06 2011 +0000
* Buffer writes in FdSink. This significantly reduces the number of
system calls / context switches when dumping a NAR and in the worker
protocol.
commit 893cac140232478e3ce9640ccf31dbfbfc2434c0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 14 22:41:10 2011 +0000
* Remove the terminate handler, which was only really needed because
of Berkeley DB (see r8632).
commit 23bf700196b4fa05a2da55798644f8adc2e1d7b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 14 22:31:31 2011 +0000
* Oops, the daemon test wasn't actually using the daemon.
commit c8c0380744afd107611bba17127a182ecebd4e0b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 5 21:04:20 2011 +0000
* Remove unnecessary quotes. showPaths() already adds quotes.
commit 000160f5b915ce784e740c139f81e0cbeda751c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 2 17:52:18 2011 +0000
* In ‘nix-store --verify --check-contents’, repair missing hashes
rather than complain about them.
commit 3964d95abff8af2dc88effcebf6d935805ee6265
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 2 12:09:50 2011 +0000
* nix-prefetch-url: rewritten in Perl.
commit 92d6a5ed73e043aebe5029c1ed75449873d327ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 2 12:09:24 2011 +0000
* Add some more functions to the Perl bindings.
commit 49f59dceca37636353cf2f5f60135d7705ea154e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 2 11:47:06 2011 +0000
* Move parseHash16or32 into libutil, and use in nix-hash.
commit b12b21825c949ef9b9327c6a0c9e2d5601aaf0b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 1 16:41:43 2011 +0000
* Allow '<nixexpr>' syntax to be used in nix-instantiate, nix-build
and nix-env, e.g.,
$ nix-env -f '<nixpkgs>' -i patchelf
or
$ nix-build '<nixos/tests>' -A login.test
commit 23c38a04ccba4469b9aa98167532c236beeee0a0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 1 13:51:05 2011 +0000
* Slight improvement.
commit 24f863d86b0316c736fe9e89998cd442b8a400dd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Dec 1 13:48:48 2011 +0000
* When doing "nix-store --add-fixed" without "--recursive" via the Nix
daemon (which is an error), print a nicer error message than
"Connection reset by peer" or "broken pipe".
* In the daemon, log errors that occur during request parameter
processing.
commit be9be4c1476a46e9d0996d89613ce44d9aaa6da4
Author: Peter Simons <simons@cryp.to>
Date: Thu Dec 1 08:03:30 2011 +0000
doc/manual/nix-env.xml: fixed "nix-env -qaA" typo
commit 3c7ec8fc1b1fe3c3bf48b957c2aafa6c3ea6d846
Author: Peter Simons <simons@cryp.to>
Date: Thu Dec 1 08:02:37 2011 +0000
doc/manual/nix-env.xml: stripped trailing whitespace
commit f35c4351e5f99f1960a6ca7a3fd6dae76dcca163
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 22:15:07 2011 +0000
* Don't require a specific Perl version.
commit 4d0407ba087f8bc3a21865309291996084fd80eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 13:38:52 2011 +0000
* Fix make check.
commit 1749a7b0ae943f6a208ffc3fd0f6e9506872c5b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 13:01:24 2011 +0000
* download-using-manifests: use the Perl bindings.
commit b1eb8f4249dbf666afa046c45e903566e9eb2df9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 13:00:41 2011 +0000
* Get rid of some superfluous error messages if a substituter fails.
* Say "fetch" instead of "substitute".
commit 216440b3ff1431beca7784c7ae76cb5e75446953
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 12:32:55 2011 +0000
* For consistency with "nix-store -q --hash", produce hashes in
base-32. (This affects Hydra manifests.)
commit 1df120cb05121124379676d805b8f1fb090d7e22
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 29 10:51:22 2011 +0000
* Get rid of the shell in ssh calls.
commit 784083176a6c2bbda84095de97cb59126fe7c7a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Nov 25 17:04:26 2011 +0000
* Fix race.
commit f3bc98b0015fe333f7b1ef342143c23d0d6a2aa5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 23 15:39:54 2011 +0000
commit 10e2b2b79e77fffed95d55a4c0b8150d4a852ec4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 23 15:39:02 2011 +0000
* Document the --include-outputs option.
commit d5ac78e0d6f21dc60bd4f4f3990a18dc2bc12c4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 23 15:29:58 2011 +0000
* Add bzip2 and xz support to nix-copy-closure.
commit 5bbd693caedd5d50994938555b3a4b535875347e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 23 15:13:37 2011 +0000
* Add an API function exportPaths() that provides the functionality of
‘nix-store --export’.
* Add a Perl module that provides the functionality of
‘nix-copy-closure --to’. This is used by build-remote.pl so it no
longer needs to start a separate nix-copy-closure process. Also, it
uses the Perl API to do the export, so it doesn't need to start a
separate nix-store process either. As a result, nix-copy-closure
and build-remote.pl should no longer fail on very large closures due
to an "Argument list too long" error. (Note that having very many
dependencies in a single derivation can still fail because the
environment can become too large. Can't be helped though.)
commit ab20af3e6f83f320232d0e5f6bcfcb279c0047c0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 23 12:21:35 2011 +0000
* build-remote.pl: drop a hard-coded reference to /nix/etc/nix.
commit 993fa94fb489f46e127ef760bea8c65ef281ef7f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 22 17:28:41 2011 +0000
* Move initialisation of variables like nixConfDir from libmain to
libstore so that the Perl bindings can use it as well. It's vital
that the Perl bindings use the configuration file, because otherwise
nix-copy-closure will fail with a ‘database locked’ message if the
value of ‘use-sqlite-wal’ is changed from the default.
commit 4e1ea17052b4cc2445bc2ece2136f248112b4e45
Author: Rob Vermaas <rob.vermaas@gmail.com>
Date: Mon Nov 21 15:19:51 2011 +0000
nix: add /etc/hosts with localhost entry to chroot builds.
commit 4de3e2a0db8d043324e9799ada181f7e73356908
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 21 13:22:34 2011 +0000
* Doh.
commit 23e933b3b3e881515993538ab774c8c7b54f8370
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 21 12:23:48 2011 +0000
* Put back the "sys_name" variable which got removed somewhere. This
broke building on Cygwin and Solaris.
commit a6abade8e832217c27fade5ab8b7c28003c2ac46
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 21 12:18:26 2011 +0000
* Escape the [ and ] characters in the sed call, otherwise autoconf
will eat them.
commit 964399c079f312312f75c41d6f58d323822b6cf0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Nov 20 19:23:50 2011 +0000
* "sed" on FreeBSD doesn't know the "+" operator.
commit b92f76374f34068e3a41130cdba88ac2c5924804
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Nov 18 17:25:40 2011 +0000
* In the platform, canonicalise "amd64" to "x86_64". FreeBSD 8.2's
uname reports amd64.
* Drop the FreeBSD version number, e.g. "i686-freebsd" instead of
"i686-freebsd8.2".
commit 42164d6de493fa2e0acbf1ebaf9ee0d7502b4f0b
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Nov 16 20:58:21 2011 +0000
configure: Change i*86 to i686 as has always been done.
commit 45ec69cbdf7e5e7ff19d28c8f25c7f650105b253
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Nov 16 20:39:59 2011 +0000
configure: Rely on `AC_CANONICAL_HOST' to determine the Nix system name.
This should be more robust and also plays better with
cross-compilation---it uses the host name, instead of using the build
name.
commit f8e609c3413e38d403d986020079f24a2b82c063
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 16 16:41:48 2011 +0000
* nix-pull: update the Nix manifest cache if necessary. Also, don't
read the manifest just to check the version and print the number of
paths. This makes nix-pull very fast for the cached cache (speeding
up nixos-rebuild without the ‘--no-pull’ or ‘--fast’ options).
commit d7d7910ba48d898bda2db92a4f16a6179c855f7d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 16 16:25:38 2011 +0000
* Don't decompress the manifests in /nix/var/nix/manifest. This saves
disk space, and, since they're typically only decompressed once (to
fill the manifest cache), doesn't make things slower.
commit 63ee5e4d2a46c3619c59307d7dbb08f25d32c3e8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 16 11:56:19 2011 +0000
* Remove obsolete line.
commit a5952405d2803ae0d29955fe6725cd9195327a07
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 16 11:37:40 2011 +0000
* Re-use prepared statements across insertions into the manifest cache
DB. This speeds up creating the cache from 16.1s to 7.9s on my
system.
commit c0b706213dad330bd51607ff73059c87f0ec5b93
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 7 21:11:59 2011 +0000
* Boldly make SQLite WAL mode the default again. Hopefully the
intermittent problems are gone by now. WAL mode is preferrable
because it does way fewer fsyncs.
commit 3c3107da86ff71a08ce44027ee5899acf486796a
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 07:18:19 2011 +0000
There's no need to mess with drvPath at all
commit 2ab29be70c99483dbd8cf12eece4d553c7f953f3
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 07:03:14 2011 +0000
Fix faulty reversion of my changes to unsafeDiscardOutputDependency
commit ca0d47a70c37999f8cc9c2e82c76661826cfd50a
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:54:05 2011 +0000
Respect all outputs passed to the derivation, not just the last one
commit 24b65937e103c5cb1232c3cbcbffc12322cb8ae3
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:34 2011 +0000
Remove the unused sCurrentOutput symbol
commit 3522730316dbb3a9ee5a690188f02435e7260406
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:30 2011 +0000
Embed output name into the context of the *OutPath attributes and extract it for input derivations
Multiple outputs test passes!
commit 46876ff2037541613dc17c986f9b68b8f257cb3b
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:25 2011 +0000
Fix stupid typo in multiple outputs test
commit af2e53fd481994cca46b9c003a6a8eae50cf951c
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:20 2011 +0000
Include all outputs of derivations in the closure of explicitly-passed derivation paths
This required adding a queryOutputDerivationNames function in the store API
commit 981edeab7b6b415c71d3421da6967ec7fc232e54
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:14 2011 +0000
The 'insert output between = signs' approach was not helpful
commit f883afa1a1bc6c48bbb3d9c150e357c35e40c921
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 06:28:08 2011 +0000
The nixinstantiate and nixstore env vars are no longer set in common.sh
commit 2721e9f56f92f5bd630dcbb0104fc56159cb28d4
Merge: bffe35a a6a3f3a
Author: Shea Levy <shea@shealevy.com>
Date: Sun Nov 6 00:13:09 2011 +0000
Merge from trunk
commit a6a3f3a8c26fdd6900880c13e924e6879d6c714c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Nov 5 21:23:01 2011 +0000
* Fix race condition in the test.
commit fa69ff57269dfd24ff04810c04d130e3e5d94154
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Nov 5 21:06:24 2011 +0000
* Fix the broken reference to bunzip2 in the channel unpack script.
commit daed9aeac557af4ec8d3d8f00b4f3f2b8f90408a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Nov 3 19:22:24 2011 +0000
commit d7b87bebe3ac8f47e387c79e03ceb5915e71d249
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Nov 3 18:47:10 2011 +0000
* The Nix configuration file is usually /etc/nix/nix.conf.
commit 325b5a8aee89a12c30fbfcf74503f5105be0b230
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 2 19:14:54 2011 +0000
* Fix permission on /nix/store in the manual for multi-user installs
(reported by Silvio Frischknecht).
commit a12095d3be095ba9d88631e21ef6d43f1ddb5cee
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Oct 27 19:06:23 2011 +0000
* In printValueAsXML, handle the case where a "type" attribute is not
a string. This happens in the NixOS option system.
* Remove a bogus comparison of a unsigned integer with -1.
commit 00b41e46ed02d16aeea1375c14a84df02a91efba
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Oct 19 21:34:13 2011 +0000
* Print a consistent message.
commit f186a9141efd20b1236b9df29de1bf4b1f2098ce
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 18 21:21:22 2011 +0000
* nix-copy-closure: support ‘--dry-run’ and ‘--include-outputs’.
commit 67617574280a5db534e5b5c643a3b880d1b9336c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 15:41:13 2011 +0000
* Use the Store API bindings in nix-copy-closure.
commit d43a148204a983bf676750f50640969f8edf7350
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 13:58:47 2011 +0000
* Add a test for nix-copy-closure.
commit 2492914fbcd1d616c89b83fda0ee08551486273e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 13:06:59 2011 +0000
* Move the remote building test from the NixOS tree to the Nix tree.
commit c362e4d718cb31e532a4e2d708d07a57bc3bdf55
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 11:45:36 2011 +0000
* Move SSH.pm.
commit 7d314b8c959ca5c3dda8aea9c74079f4be63e19e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 11:14:30 2011 +0000
* Work around a race condition starting the Nix daemon.
commit 5193db048e06578191ddd3085d76aab1d2e15ad3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 09:32:34 2011 +0000
* Set svn:ignore.
commit a2a317eb0bc418577461105790c70b363a10cc34
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 11 09:31:55 2011 +0000
* Distribute GeneratePatches.pm.
commit 5090c34ee1251dd8f0a57332feff0c99489f7faa
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 22:40:17 2011 +0000
* Set the executable bit on scripts.
commit 8af7d766f0244d5b15d89ab2d2d66b0d63e8f576
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 21:32:34 2011 +0000
* Refactoring: remove unnecessary variables from the tests.
commit cd6d02c366af43bccdd2ef345193e4fdeca78a13
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 21:30:59 2011 +0000
commit 6fcdbcac202e40e5de7147ff64b34d6aaad16249
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 21:11:08 2011 +0000
* Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm under
the Nix:: namespace.
commit 659c427caa39e44e5861ff1345425e4c34c9ced3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 18:58:49 2011 +0000
* Hopefully perl-devel contains the required headers (untested).
commit 73fe6871c479f7670f8c93b0cc9ef7bb1a851777
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 10 18:12:40 2011 +0000
* Include the Nix Perl bindings in Nix itself. This will allow the
bindings to be used in Nix's own Perl scripts.
The only downside is that Perl XS and Automake/libtool don't really
like each other, so building is a bit tricky.
commit bffe35acedafcd7c7237cb1415798362bff8a180
Author: Shea Levy <shea@shealevy.com>
Date: Mon Sep 19 04:36:49 2011 +0000
Update gitignore
commit 6c38cc9025591655b893bbd2437bfd1453c0c2fa
Author: Shea Levy <shea@shealevy.com>
Date: Mon Sep 19 04:15:26 2011 +0000
Ignore everything created during build
commit 55481c44d4767ffde561c02b039717916e0536f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Sep 17 09:53:31 2011 +0000
* Don't assume that we want a shared Nix store.
commit e81c09edbf6b352ec96668be35a68037df2f6342
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 16 11:31:00 2011 +0000
Remove the current output metadata from the string for unsaveDiscardOutputDependency
commit bf50d6ad3271aaa6ac93b68e99f5acb1d9a158c7
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 16 11:30:52 2011 +0000
Add information about which output is active to drvPath's context
This will break things that depend on being able to just strip away an equals sign, so those have to be updated next
commit ffa038f66dc0dfcfaf16c523830490bb606af04c
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 16 11:30:44 2011 +0000
Add an sCurrentOutput member to EvalState
commit f3e410d4bffc109718d8a108258710a543ecfca6
Author: Shea Levy <shea@shealevy.com>
Date: Fri Sep 16 11:30:03 2011 +0000
Add a currentOutput attribute to derivations keep track of which output is active
commit 8f28a3ba25dd0dad6411a039bc01ad87c61a6e59
Author: Shea Levy <shea@shealevy.com>
Date: Wed Sep 14 05:59:29 2011 +0000
Add a test for multiple outputs
This currently fails. Yay test-driven development!
commit c172d16b00dd2126eb7c4f12c26f1e30e4356f07
Author: Shea Levy <shea@shealevy.com>
Date: Wed Sep 14 05:59:17 2011 +0000
First attempt at the output-as-derivation semantics
For each output, this adds a corresponding attribute to the derivation that is
the same as the derivation except for outPath, which is set to the path specific
to that output. Additionally, an "all" attribute is added that is a list of all
of the output derivations. This has to be done outside of derivationStrict as
each output is itself a derivation that contains itself (and all other outputs)
as an attribute. The derivation itself is equivalent to the first output in the
outputs list (or "out" if that list isn't set).
commit 0b34e57eb80dbadd8f24426c4486af97cbfe40bf
Author: Shea Levy <shea@shealevy.com>
Date: Wed Sep 14 00:41:02 2011 +0000
Create a branch for me to play around with finishing off the multiple outputs implementation
commit 13114daa3e38abc5c84987830d9276b93251592f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Sep 12 09:07:43 2011 +0000
* Ouch. A store upgrade could cause a substituter to be triggered,
causing a deadlock.
commit 281e3ed0590f253ef717a1f82123dfc569a110a1
Author: Ludovic Courtès <ludo@gnu.org>
Date: Tue Sep 6 12:11:05 2011 +0000
bootstrap: Simplify & make more robust.
commit e6cb3d0a0dcfe13e9b493afdc4e2107668ec99ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Sep 6 12:06:30 2011 +0000
* Added a command ‘nix-store --verify-paths PATHS’ to check whether
the contents of any of the given store paths have been modified.
E.g.
$ nix-store --verify-path $(nix-store -qR /var/run/current-system)
path `/nix/store/m2smyiwbxidlprfxfz4rjlvz2c3mg58y-etc' was modified! expected hash `fc87e271c5fdf179b47939b08ad13440493805584b35e3014109d04d8436e7b8', got `20f1a47281b3c0cbe299ce47ad5ca7340b20ab34246426915fce0ee9116483aa'
All paths are checked; the exit code is 1 if any path has been
modified, 0 otherwise.
commit 82710f96f7ea72bc0f6fcc6d736e3ad4434c1988
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Sep 6 12:00:11 2011 +0000
* Add some -f flags, never hurts.
commit 93227ff65c73e726c4ceef0cdd9439e7a4301417
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 31 21:11:50 2011 +0000
* Eliminate all uses of the global variable ‘store’ from libstore.
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.
commit 5bcdc7e3517e6d679cad1aaba41e4deb76d5a6e7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 27 16:59:32 2011 +0000
* Update the cleanup script.
commit a95ba4cdd9aa9f9c98928732dd26fba2757ade26
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 17 14:17:19 2011 +0000
* Use last_insert_id instead of sqlite_last_insert_rowid, which you're
not really supposed to use according to the DBD::SQLite docs, and
fails on some systems (e.g. http://hydra.nixos.org/build/1246662).
commit da18b11b05b6196376d5387b879d28b8da20f734
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 8 14:08:38 2011 +0000
* On FreeBSD, ‘touch’ is not in the test $PATH, so don't use it.
commit 76e0029f7ae03f30a2fa534e1eaf141437877398
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 8 14:06:10 2011 +0000
* Add perl-DBD-SQLite as a dependency of the RPM builds.
commit d374be551df964f000a04061e6ad9c81a7a8341c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 8 13:19:00 2011 +0000
* Add DBD-SQLite as a dependency to the Debian/Ubuntu builds.
* Drop some old Fedora/Debian/Ubuntu releases.
commit 2d663b502da16d6dc480bff7f58297d176d04246
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 19:45:43 2011 +0000
* Cache the result of file evaluation (i.e, memoize evalFile()). This
prevents files from being evaluated and stored as values multiple
times. For instance, evaluation of the ‘system’ attribute in NixOS
causes ‘nixpkgs/pkgs/lib/lists.nix’ to be evaluated 2019 times.
Caching gives a modest speedup and a decent memory footprint
reduction (e.g., from 1.44s to 1.28s, and from 81 MiB to 59 MiB with
GC_INITIAL_HEAP_SIZE=100000 on my system).
commit 510033e78376987ca358cebfa020754e61733543
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 18:54:29 2011 +0000
* Handle <path> syntax.
commit 9d091ee99a9b962c72b3cb9485a89ba028dd1155
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 18:45:28 2011 +0000
* Handle the case where the search path element is a regular file.
commit 00a724ebc6f049009ce0810b0ac44dd11199d88b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 18:24:43 2011 +0000
* Remove a debug statement.
commit 07340b8be742e08f1a000475eb1f389d5525d6c8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 18:23:38 2011 +0000
* Add the Nix corepkgs to the end of the search path. This makes it
possible for other Nix expressions to use corepkgs (mostly useful
for the buildenv function).
commit c7101dac0bd2631e50846194fc841ef5ef77461f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 17:48:57 2011 +0000
* Allow redirections in search path entries. E.g. if you have a
directory
/home/eelco/src/stdenv-updates
that you want to use as the directory for import such as
with (import <nixpkgs> { });
then you can say
$ nix-build -I nixpkgs=/home/eelco/src/stdenv-updates
commit 1578b2261d28003c8c1459041302e1f3c1921c43
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 16:18:54 2011 +0000
* Add lang/dir* to the distribution.
commit 1ecc97b6bdb27e56d832ca48cdafd3dbb5185a04
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 16:05:24 2011 +0000
* Add a Nix expression search path feature. Paths between angle
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.
commit 54945a2950174ded83d58336061b4a9990cdbbfd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Aug 6 13:02:55 2011 +0000
* Refactoring: move parseExprFromFile() and parseExprFromString() into
the EvalState class.
commit c8606664abe952f74985503c831d31ae7a7369bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 20 18:26:00 2011 +0000
* Don't allow derivations with fixed and non-fixed outputs.
commit b2027f70d992bd2d088e71ee5cea7637445766f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 20 18:10:47 2011 +0000
* Fix a huuuuge security hole in the Nix daemon. It didn't check that
derivations added to the store by clients have "correct" output
paths (meaning that the output paths are computed by hashing the
derivation according to a certain algorithm). This means that a
malicious user could craft a special .drv file to build *any*
desired path in the store with any desired contents (so long as the
path doesn't already exist). Then the attacker just needs to wait
for a victim to come along and install the compromised path.
For instance, if Alice (the attacker) knows that the latest Firefox
derivation in Nixpkgs produces the path
/nix/store/1a5nyfd4ajxbyy97r1fslhgrv70gj8a7-firefox-5.0.1
then (provided this path doesn't already exist) she can craft a .drv
file that creates that path (i.e., has it as one of its outputs),
add it to the store using "nix-store --add", and build it with
"nix-store -r". So the fake .drv could write a Trojan to the
Firefox path. Then, if user Bob (the victim) comes along and does
$ nix-env -i firefox
$ firefox
he executes the Trojan injected by Alice.
The fix is to have the Nix daemon verify that derivation outputs are
correct (in addValidPath()). This required some refactoring to move
the hash computation code to libstore.
commit d2bfe1b071d0d71bb981535a53e9c5de43aaac81
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 20 12:15:40 2011 +0000
* Added a test that make sure that users cannot register
specially-crafted derivations that produce output paths belonging to
other derivations. This could be used to inject malware into the
store.
commit 4bdb51e621e2690e561b7581d5670af08e7b3170
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 20 11:50:13 2011 +0000
* Refactoring.
commit 0243eea4b92ca1598353e31b7e3c0d195c903221
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 20 11:47:00 2011 +0000
* Create a symlink to /nix/var/nix/manifests in /nix/var/nix/gcroots
if it doesn't exist.
commit d329c3ea9dde17a665b32a1716d02eb13627826d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jul 18 23:31:03 2011 +0000
* Support multiple outputs. A derivation can declare multiple outputs
by setting the ‘outputs’ attribute. For example:
stdenv.mkDerivation {
name = "aterm-2.5";
src = ...;
outputs = [ "out" "tools" "dev" ];
configureFlags = "--bindir=$(tools)/bin --includedir=$(dev)/include";
}
This derivation creates three outputs, named like this:
/nix/store/gcnqgllbh01p3d448q8q6pzn2nc2gpyl-aterm-2.5
/nix/store/gjf1sgirwfnrlr0bdxyrwzpw2r304j02-aterm-2.5-tools
/nix/store/hp6108bqfgxvza25nnxfs7kj88xi2vdx-aterm-2.5-dev
That is, the symbolic name of the output is suffixed to the store
path (except for the ‘out’ output). Each path is passed to the
builder through the corresponding environment variable, e.g.,
${tools}.
The main reason for multiple outputs is to allow parts of a package
to be distributed and garbage-collected separately. For instance,
most packages depend on Glibc for its libraries, but don't need its
header files. If these are separated into different store paths,
then a package that depends on the Glibc libraries only causes the
libraries and not the headers to be downloaded.
The main problem with multiple outputs is that if one output exists
while the others have been garbage-collected (or never downloaded in
the first place), and we want to rebuild the other outputs, then
this isn't possible because we can't clobber a valid output (it
might be in active use). This currently gives an error message
like:
error: derivation `/nix/store/1s9zw4c8qydpjyrayxamx2z7zzp5pcgh-aterm-2.5.drv' is blocked by its output paths
There are two solutions: 1) Do the build in a chroot. Then we don't
need to overwrite the existing path. 2) Use hash rewriting (see the
ASE-2005 paper). Scary but it should work.
This is not finished yet. There is not yet an easy way to refer to
non-default outputs in Nix expressions. Also, mutually recursive
outputs aren't detected yet and cause the garbage collector to
crash.
commit d9a5959139302781d1f4ac740b1af97c18a5fd08
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 13 15:57:44 2011 +0000
* Show the default for --with-store-dir (Nix/211).
commit d5d4dcd4c988363beb2bb408ac31750e4c027176
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 13 15:53:24 2011 +0000
* Allow attribute names to be strings. Based on the
allow-arbitrary-strinsg-in-names patch by Marc Weber.
commit e649f3168bb03053c8201489ca52f9077c0d8b17
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 13 14:05:54 2011 +0000
* Fix concurrency issues in download-using-manifests' handling of the
SQLite manifest cache. The DBI AutoCommit feature caused every
process to have an active transaction at all times, which could
indefinitely block processes wanting to update the manifest cache.
* Disable fsync() in the manifest cache because we don't need
integrity (the cache can always be recreated if it gets corrupted).
commit 0a623a10c7e89a80b6dc74445a0ae6240f65723e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 13 12:19:57 2011 +0000
* Allow a default value in attribute selection by writing
x.y.z or default
(as originally proposed in
https://mail.cs.uu.nl/pipermail/nix-dev/2009-September/002989.html).
For instance, an expression like
stdenv.lib.attrByPath ["features" "ckSched"] false args
can now be written as
args.features.ckSched or false
commit 2b9e29b1c8b6b8e4884a46a3ba71ee795f1f97cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 6 12:28:57 2011 +0000
* Change the right-hand side of the ‘.’ operator from an attribute to
an attribute path. This is a refactoring to support default values.
commit 5580f3817c37135dcc633d84d1360a17a8878a58
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 6 10:58:53 2011 +0000
* Test case.
commit 56370378023fc84eb0153b991f4138f6acd011e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 6 10:58:17 2011 +0000
* In the ‘?’ operator, allow attribute paths. For instance, you can
write ‘attrs ? a.b’ to test whether ‘attrs’ has an attribute ‘a’
containing an attribute ‘b’. This is more convenient than ‘attrs ?
a && attrs.a ? b’.
Slight change in the semantics: it's no longer an error if the
left-hand side of ‘?’ is not an attribute set. In that case it just
returns false. So, ‘null ? foo’ no longer throws an error.
commit 34f4b91820796381d04c6e00ea5e805cf53d25da
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jul 4 14:44:53 2011 +0000
commit 1ea6e064454d10b722c2fd9361f00e6cf3561f08
Author: Ludovic Courtès <ludo@gnu.org>
Date: Thu Jun 30 15:48:40 2011 +0000
doc: Fix typo.
commit 5c9e9f732df6d95d712f25de9880b7461c53d6ca
Author: Ludovic Courtès <ludo@gnu.org>
Date: Thu Jun 30 15:19:13 2011 +0000
Add support for the `build-timeout' and `--timeout' options.
commit 9c99aa2620b8f86c0e7f99ebfe868e8ccb306f71
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jun 27 09:01:09 2011 +0000
commit e4d814858559f10900eff26bb7a87fb986a87c48
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jun 27 08:04:54 2011 +0000
commit 4891b21f34548a362df842e5d88914f6a70b5a39
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue May 3 16:17:24 2011 +0000
* Use SQLite 3.7.6.2.
commit d94cb02bfe4119a91948d31b1b9082328955dae1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 19 10:52:35 2011 +0000
* nix-install-package: unset NIX_REMOTE because $NIX_MANIFESTS_DIR
doesn't work when building through the Nix daemon. This also
ensures an error message when the user doesn't have sufficient
privileges to do nix-pull.
commit 8c69dac8a1d25c043ddb27d5c8dde5b072030667
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 19 10:44:44 2011 +0000
* Handle error messages from the Nix worker containing the `%'
character. (Nix/216)
commit 4ba6afaf48db8d4cece83a6e22de26829907834f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 16:27:05 2011 +0000
* `nix-env -ub' (`--prebuilt-only') didn't really work because it
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'.
commit 412914d004462977e869e610172305d33fb4d335
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 13:16:54 2011 +0000
* Read manifests directly into the database, rather than first reading
them into memory. This brings memory use down to (more or less)
O(1). For instance, on my test case, the maximum resident size of
download-using-manifests while filling the DB went from 142 MiB to
11 MiB.
commit 08c89714984ca64b9ddfe53c99254c70a784e81c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 12:40:13 2011 +0000
* Lock the database during updates.
commit b2c11b9ed05d33bb938d83fbcb367256427450f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 10:23:15 2011 +0000
commit 3cbf680f5d2bfb2ed4592dd24ff8ce2b7e5765bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 10:13:53 2011 +0000
* configure: detect whether DBD::SQLite is present. If necessary the
location to DBI and DBD::SQLite can be passed with --with-dbi and
--with-dbd-sqlite.
commit 83252b4ca9cb9de45bf4a069b20d1c2d1412396e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 08:21:30 2011 +0000
* Subtle bug: if you import File::stat in one module, it affects other
modules as well. So use symbolic field names everywhere (which is
nicer anyway).
commit b1882c3ef75afdaa7b0926cd146aa2857ba0d40a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 11 08:06:14 2011 +0000
* Create $manifestDir if it doesn't exist.
commit 5591fcc5292616e99d9d2478ffeb4f1b51f1899e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Apr 10 23:22:46 2011 +0000
* Cache the manifests in /nix/var/nix/manifests in a SQLite database.
This significantly speeds up the download-using-manifests
substituter, especially if manifests are very large. For instance,
one "nix-build -A geeqie" operation that updated four packages using
binary patches went from 18.5s to 1.6s. It also significantly
reduces memory use.
The cache is kept in /nix/var/nix/manifests/cache.sqlite. It's
updated automatically when manifests are added to or removed from
/nix/var/nix/manifests. It might be interesting to have nix-pull
store manifests directly in the DB, rather than storing them as
separate flat files, but then we would need a command line interface
to delete manifests from the DB.
commit 1e7e4f21ba910bcf9da89b14cf2424a4b0955bed
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 6 09:16:22 2011 +0000
* Remove the localPaths feature in manifests since it's no longer used
and redundant anyway.
commit 0423d0692abebf16a19b65b37d4926de2539bf1c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 16 15:55:57 2011 +0000
* Print a better error message.
commit 48bdbbf07042f130996c0d9116893cc9f8ed2488
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Mar 15 13:12:59 2011 +0000
* Fix a bug in the documentation (reported by Olexiy Buyanskyy,
Nix/215).
commit 802c2651c84b73a54b2a89484aa463f1f0df3b94
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 17 15:08:33 2011 +0000
commit e945b52a31ab339b253df40e35828582eff77e54
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 17 13:26:33 2011 +0000
* nix-push: handle the case where the hash is not set in the DB.
commit c3cee5395bec0dd9db3fb60662a170ebb7453ee1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Feb 14 14:56:02 2011 +0000
* Build for Ubuntu 10.04.
commit 8fcaf3e9c6d820175d124be0af06c481104222a1
Author: Florian Friesdorf <flo@chaoflow.net>
Date: Mon Feb 14 03:11:56 2011 +0000
make nix-mode provide 'nix-mode
this enables (require 'nix-mode)
commit 538b7caab013e6ec78bed2b65a7c5d345f1c737e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Feb 10 14:31:04 2011 +0000
* Don't allocate a big initial GC address space on machines with
little RAM. Even if the memory isn't actually used, it can cause
problems with the overcommit heuristics in the kernel. So use a VM
space of 25% of RAM, up to 384 MB.
commit 5a6b0398026a8a24b206a4b4d43894f9c683792c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 22:59:50 2011 +0000
* Don't call GC_expand_hp unless we're actually using the garbage
collector.
commit f1462c208ba5d4efda864875f814c268366f4803
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed Feb 9 21:23:13 2011 +0000
Use $BDW_GC_LIBS instead of a custom variable.
commit 1876ab764f5b6e42fce67bdb46a8b03131653900
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 14:13:09 2011 +0000
* A better fix. $boehmgc isn't set anywhere, we should use the flags
returned by pkg-config.
commit dfc4117e901f27276ea1ce81c852bf4d52959961
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 14:08:32 2011 +0000
* The GC library can't be found on Solaris
(http://hydra.nixos.org/build/890714), so don't build with GC
support for now.
commit d159ea1b7ec007fa5e4d4bef540453c9c09c3984
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 14:03:16 2011 +0000
* Urgh, FreeBSD doesn't have a "seq" command.
commit 3087b3f7513ce713e0b759f63b9a4e9142e46f82
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 12:48:54 2011 +0000
* Obsolete.
commit eb94581d399b8d0945b883b14c4a892fdab95dfc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 12:43:44 2011 +0000
* Remove obsolete directory.
commit 7bba67c4013c1eb17c3f2f0a7015dbb57aae8ac8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 12:42:15 2011 +0000
* Remove obsolete file.
commit d0eda1f3e9b2030e373038fd8997f033f2d7aedd
Merge: 3854fc9 5439885
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 12:41:54 2011 +0000
* Merged the SQLite branch.
commit 543988572e2abc85767da315b2acc1f971c5d07f
Merge: c0340ee 3854fc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Feb 9 12:25:53 2011 +0000
* Sync with the trunk.
commit c0340eec5ac175f7b757d883aca71d1a4382c641
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Feb 8 12:30:28 2011 +0000
commit 0304fda3cfdbd1e0cbc939b667cbe833eb726be1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Feb 5 16:40:15 2011 +0000
* Propagate the CC setting.
commit aeae0beba49e98655861c5c50e573bd7d9cfb5c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Feb 5 16:29:10 2011 +0000
* Clang compatibility fix. Clang actually checks template definitions
when they are defined
commit 3854fc9b42d16b810f62b64194b699033b03aaf1
Author: Ludovic Courtès <ludo@gnu.org>
Date: Fri Jan 14 13:55:58 2011 +0000
Remove useless <config.h> inclusion from public header.
commit 9db190eb31d4adc412d50bc03574951f9a1f9dae
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Jan 14 12:47:10 2011 +0000
* builtins.substring: if "start" is beyond the end of the string,
return the empty string.
commit d6c8b995c5c08a6c6a6b18f0b2cf5b4b95cfc1b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 22 10:32:32 2010 +0000
* In Hydra manifests the Size field is missing, so don't rely on it.
This caused a lot of "Use of uninitialized value" warnings from
Perl.
commit c931a7aec5ccb2209d3c4bcf4452c807fe894d94
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 17 17:23:15 2010 +0000
* Do a short sleep after SQLITE_BUSY.
commit b1eb25217217087cb70a730da5311bd0890cf6ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 17 11:28:26 2010 +0000
* Propagate the "100" exit status for failed builds through the Nix
daemon.
commit eac93d6efeba68d9da95f01e10cd859eef6d85dd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 17 09:28:51 2010 +0000
* Use the right `make'.
commit a0be433fec792216ac5d9af68ec1fea6c21c7c1d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 15 14:25:54 2010 +0000
* Disable X11 forwarding, it's not needed.
commit f1a6b97639474dbb13a1f96b4adf77c987a97d07
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 15 08:39:37 2010 +0000
* nix-copy-closure: make sure that the shell doesn't do globbing of
`+' and `?' in filenames. This is very slow if /nix/store is very
large. (This is a quick hack - a cleaner solution would be to
bypass the shell entirely.)
commit 3dd02580e324d04ebfe999779978b4aa0f999ccd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 14 13:25:20 2010 +0000
* I forgot to catch SQLiteBusy in registerValidPaths(). So
registerValidPaths() now handles busy errors and registerValidPath()
is simply a wrapper around it.
commit d787285af997a607bb678f39f340e663fafd3122
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 13 16:53:23 2010 +0000
* nix-instantiate: return exit status 100 to denote a permanent build
failure. The build hook can use this to distinguish between
transient and permanent failures on the remote side.
commit 5833243c92f28759ff0fc1ff9266535a3230e2d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 13 13:42:34 2010 +0000
* Create /nix/var/nix/db if it's missing.
commit 100becf8d1b95055c73a024f1a2b318690de72f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 13 13:32:58 2010 +0000
* createDirs(path): if path already exists, make sure it's a
directory.
* Provide a C++ wrapper around lstat().
commit d7ca6f44eb506ec315db2ba59216de59de2758b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 13 13:19:46 2010 +0000
* Update some comments.
commit 542fc6906297fcb72cbcb01d688c2f27819e0cf7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 13 08:39:10 2010 +0000
* When doing a query (e.g. `nix-store -r --dry-run'), don't make a lot
of expensive calls to `nix-store --check-validity'.
commit 4d5777681309947041ecc297074f4ce537547553
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Dec 10 11:45:56 2010 +0000
* Use SQLite 3.7.4.
commit e4720b1a79f549b3bcb0e33fe999d02d12e3ed23
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Dec 8 18:19:15 2010 +0000
* Ignore the result of sqlite3_reset().
commit 7d0444e2446c71e79e49f46f371c62f6d20488d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Dec 7 12:33:42 2010 +0000
* Bad things happen when a filehandle has the same name as a module.
commit 8062d3af30b27eb4d617c14856d4f3a173f8012e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Dec 6 15:29:38 2010 +0000
* `nix-store --verify --check-contents': don't hold the global GC lock
while checking the contents, since this operation can take a very
long time to finish. Also, fill in missing narSize fields in the DB
while doing this.
commit de79d23f76c13da820f7167cd980264b2de28bd2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Dec 5 18:23:19 2010 +0000
* Retry a transaction if SQLite returns SQLITE_BUSY. This can happen
even with a very long busy timeout, because SQLITE_BUSY is also
returned to resolve deadlocks. This should get rid of random
"database is locked" errors. This is kind of hard to test though.
* Fix a horrible bug in deleteFromStore(): deletePathWrapped() should
be called after committing the transaction, not before, because the
commit might not succeed.
commit 365f3028ddfb5487f35ebbb9adc42ddf9459113d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Dec 5 17:50:29 2010 +0000
* Use CamelCase for the Perl modules.
commit f42a505ab71ba421797ac511e1221ccbefef8ab9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Dec 5 17:36:02 2010 +0000
* Add a script `nix-generate-patches'.
* Fix the binary patching test.
commit 77f7a6d591e32a4a475552f3e67e3e67b7f71a10
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 29 17:07:04 2010 +0000
* Quick hack around one of the pathological cases in bsdiff
(namely, when there is a long region of 0s). On one 86 MiB
case, this cut patch generation time from 44m to 2m.
commit d3bba0c2d8b879950d55d508ef3fc8dec3559f8f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 29 15:26:28 2010 +0000
* Move the patch generator into a module.
commit 9737a7eba0844e317591f16092879696c4f3feae
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 29 09:26:05 2010 +0000
* Don't generate patches if the system type differs.
commit bd48fd97f646f068ae2725b5b2f048d45866119b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Nov 29 09:15:45 2010 +0000
* Impose a configurable time limit on patch generation. This is
necessary because bsdiff has some pathological worst-case behaviour,
e.g. O(n^2) on files consisting only of 0s.
commit 703e5a2ce2f111c5329a8448ba47a7fbe11ad6cd
Merge: d92ccbf 812fae4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Nov 25 14:09:13 2010 +0000
* Sync with the trunk.
commit 812fae424ee7139cf9bc0d17815ee68aa3cab517
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Nov 25 13:47:34 2010 +0000
* DrvInfo contains pointers to expressions, so DrvInfos should be
traced by the garbage collector. Otherwise "nix-env -u" can crash
randomly.
commit d92ccbf1ac5ab68937a0e411f4daee7e427865bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 18:01:37 2010 +0000
* Test whether sequences of patches work.
commit 1a211d812f1808a5a9128cbfd74bb59d07487b1c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 17:54:49 2010 +0000
* Oops.
commit a4f0365b2dfc95b60c42a702937fc801dcc8d81b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 17:41:59 2010 +0000
* When checking whether a patch is applicable, for efficiency, use
`nix-store -q --hash' to get the hash of the base path rather than
`nix-hash'. However, only do this for estimating the size of a
download, not for the actual substitution, because sometimes the
contents of store paths are modified (which they shouldn't, of
course).
commit 3d38a498404bf842ca479d42d18def1f472a6fb0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 17:32:25 2010 +0000
* In the download size indication, take binary patches into account.
Hopefully this doesn't slow things down too much.
commit f69626ed3eb9314bbdf9b0fe5497a0c3a3465d31
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 15:45:09 2010 +0000
commit a07c68f05edd754e389e0757ed2deefd70aad364
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 15:30:07 2010 +0000
* Finally, a test for the binary patch functionality.
commit bf658f016ff16af79535358c8e609a933b86e6d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 14:39:02 2010 +0000
* Test that download sizes are shown correctly.
commit 1e24cbaba3a7b553569c72afddeb825001ae1dd7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 14:35:14 2010 +0000
* Fix the test.
commit bdf089f46362b8c9defefa0a14e3198582e12818
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 14:31:42 2010 +0000
* Before a build, show the disk space that the downloaded store paths
will approximately require.
commit 06699d4219019182d9e45ebc613ae1a1df23f257
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 12:57:52 2010 +0000
* Store the NAR size in the manifest.
commit 5693b8a7e246af352c26c258e2af6402601839ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 12:51:54 2010 +0000
* nix-push: no need to compute the NAR hash, since the Nix database
already has it (`nix-store -q --hash').
commit e60c962fb8dd3d8be37c1f4ae08d5247901fa129
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 12:40:52 2010 +0000
* Add an operation `nix-store -q --size'.
commit 1db6259076b1b8f667451da8d2e44a55ece19056
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Nov 17 12:08:01 2010 +0000
* Implement RemoteStore::queryPathInfo().
commit a3883cbd28057a3dd2573f77dcda9a26faaac555
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 16 17:11:46 2010 +0000
* Store the size of a store path in the database (to be precise, the
size of the NAR serialisation of the path, i.e., `nix-store --dump
PATH'). This is useful for Hydra.
commit fb9368b5a0b2457b28f19d4902bc0790123338a2
Merge: 64fd298 4aced7f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Nov 16 12:49:47 2010 +0000
* Sync with the trunk.
commit 4aced7f8d0d5d2c1057b0f46a70a37a577f81fa5
Merge: 8dadced 26def53
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 29 15:04:39 2010 +0000
* Merge the GC branch.
commit 26def5392f6f6364aa0939a2d4fc7705e786d38d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 29 14:44:02 2010 +0000
* Document Boehm GC support.
commit 3d71c8013efa5d347b9767af54160b3d0fd9127b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 29 14:00:47 2010 +0000
* Use pkgconfig to locate the Boehm GC (as suggested by Ludo), if
--enable-gc is given.
commit 14fbf85380b23efcc19c8479b65336fc7275d90b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 29 13:11:50 2010 +0000
* Set libgc's initial heap size to 384 MiB to prevent garbage
collection in most cases (and therefore its performance overhead).
commit 0c4828ea05798b9e070e233884739736115a830d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Oct 28 12:50:01 2010 +0000
* new(UseGC) is inexplicably slower than GC_MALLOC, so prefer the
latter.
commit e11e6fb1c6709ca3f0e596a7b1fb988df2fbd9b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Oct 28 12:29:40 2010 +0000
* Handle out of memory condition.
commit 8a788e38ac7efc785ffe4fcf49a4e031c7784216
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Oct 26 10:47:02 2010 +0000
* Install config.h.
commit 11ccd44e95c16b9f7fcf51e75b511b1b6587397b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Oct 24 21:48:59 2010 +0000
* We need Bison 2.4 now.
commit 43535499f38acc04367eeb4dd0d9938e9f8666f8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Oct 24 20:09:37 2010 +0000
* When allocating an attribute set, reserve enough space for all
elements. This prevents the vector from having to resize itself.
commit e0b7fb8f2710ec3012afe6b9d2096f770429a389
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Oct 24 19:52:33 2010 +0000
* Keep attribute sets in sorted order to speed up attribute lookups.
* Simplify the representation of attributes in the AST.
* Change the behaviour of listToAttrs() in case of duplicate names.
commit 2dc6d5094183edee523a48d449eab1a376e839a2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Oct 24 14:20:02 2010 +0000
* Don't create thunks for variable lookups (if possible). This
significantly reduces the number of values allocated (e.g. from 8.7m
to 4.9m for the Bittorrent test).
commit 0b305c534f989dbc3645ff03e070b0e4665fdeb7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun Oct 24 00:41:29 2010 +0000
* Store attribute sets as a vector instead of a map (i.e. a red-black
tree). This saves a lot of memory. The vector should be sorted so
that names can be looked up using binary search, but this is not the
case yet. (Surprisingly, looking up attributes using linear search
doesn't have a big impact on performance.)
Memory consumption for
$ nix-instantiate /etc/nixos/nixos/tests -A bittorrent.test --readonly-mode
on x86_64-linux with GC enabled is now 185 MiB (compared to 946
MiB on the trunk).
commit a247d20604a97ff6e84b87f66e3338714e7964f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Oct 23 22:58:24 2010 +0000
* Fix compiling without Boehm.
* Fix the stats.
commit 02934b12000d5a837ef4cac78025cb531330c2b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Oct 23 22:55:30 2010 +0000
* Regression test for listToAttr's behaviour if an attribute name
occurs multiple times.
commit b2ba62170cc8359d2f8bbbd9dbacf331b98151fe
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Oct 23 21:11:59 2010 +0000
* Optimise string constants by putting them in the symbol table.
commit 8ac06726b92fff66714ceee8af89068ac876875a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Oct 23 20:07:47 2010 +0000
* Make Value smaller by not storing redundant PrimOp info.
* Clear pointers in Values after overwriting them to make sure that no
objects are kept alive unnecessarily.
commit 3f66cfb96b6f4bbddc8bf3b15e364fd522e028bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat Oct 23 18:18:07 2010 +0000
* Remove allocValues().
commit 4dee289550d11950d6d17482484061a4792b2eef
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 22 15:51:52 2010 +0000
* In environments, store pointers to values rather than values. This
improves GC effectiveness a bit more (because a live value doesn't
keep other values in the environment plus the parent environments
alive), and removes the need for copy nodes.
commit cf7e645a48a31e04428778a8d39924a3da8a30f8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 22 15:15:12 2010 +0000
* Regression test for __overrides.
commit 41c45a9b319a5578e2731505ca3de2b9c50b4988
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 22 14:47:42 2010 +0000
* Store Value nodes outside of attribute sets. I.e., Attr now stores
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.
commit 64c3325b0bef8c0234bf797033e129323b36ad1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Oct 22 13:39:15 2010 +0000
* Make building against the Boehm GC a configure option.
commit 76feaf016a7e9a9b019148df5ff84a63e48dbda7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Oct 20 15:48:00 2010 +0000
* Keep some more stats.
commit e879a0371ba7ef99da2d82547823c3f96b445fdb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Oct 20 11:38:30 2010 +0000
* Use the Boehm garbage collector to reclaim unused memory in the Nix
expression evaluator.
commit b0c11cda7ef9eaef46f9868e3f3736aa72fa641c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Oct 20 09:08:39 2010 +0000
* Evaluator garbage collection branch.
commit 64fd29855a8ae49cacdaff424679821b4fd3bf57
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Oct 14 15:55:51 2010 +0000
* Wrap deleteFromStore() in a transaction. Otherwise there might be a
race with other processes that add new referrers to a path,
resulting in the garbage collector crashing with "foreign key
constraint failed". (Nix/4)
* Make --gc --print-dead etc. interruptible.
commit 8dadcede65c75488da4cc5e5d8266c4b176cb7e5
Author: Rob Vermaas <rob.vermaas@gmail.com>
Date: Wed Oct 6 19:04:04 2010 +0000
nix manual: fix 'install' -> 'uninstall' in garbage collection section of introduction
commit 7119d38287659ec665a1a542c23edd1758ad3a1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 22:26:38 2010 +0000
* In the referrers test, lower the nesting depth from 2500 to 1000 to
prevent hitting a stack overflow bug in the garbage collector.
commit 705868a8a96a10f70e629433cfffc2d5cd2703eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 17:55:38 2010 +0000
* Make sure that config.h is included before the system headers,
because it defines _FILE_OFFSET_BITS. Without this, on
OpenSolaris the system headers define it to be 32, and then
the 32-bit stat() ends up being called with a 64-bit "struct
stat", or vice versa.
This also ensures that we get 64-bit file sizes everywhere.
* Remove the redundant call to stat() in parseExprFromFile().
The file cannot be a symlink because that's the exit condition
of the loop before.
commit 95f4f2cf6102f95abf6948d74907c44c3540eddd
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 16:16:19 2010 +0000
* If std::tr1::unordered_set is unavailable, use std::set.
commit 36a23e86b6ab1265bbf883dd71bc844f7c9183f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 15:50:08 2010 +0000
* "type -P" isn't portable.
commit bfa6ee7d919b84a105f6376116e82240e44b990d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 12:30:46 2010 +0000
* Don't use SSH's `-tt' flag because it doesn't seem to work
on OpenSolaris when using connection sharing. Instead have
the remote side check for disconnection and kill the process
group when that happens.
commit 71dfe4b90bec29075f01cfbc45f8f521535bf460
Merge: e490741 450837b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 11:44:47 2010 +0000
* Sync with the trunk.
commit 450837bcc887a47260817611d01c22e35aba92b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 11:23:07 2010 +0000
* In printMsg(), ignore failing writes to stderr if we're in an
exception handler, otherwise throw an exception. We need to ignore
write errors in exception handlers to ensure that cleanup code runs
to completion if the other side of stderr has been closed
unexpectedly.
commit 4aa92450832e87018513a2453e39858fab00833a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Oct 4 10:51:16 2010 +0000
* Hack needed for GCC 4.3.2 on OpenSolaris.
commit 923736df38c1415150afbe62983daf3fee8726b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Sep 14 12:47:19 2010 +0000
* Doh. Remove debug message.
commit e4907411c2d902215d1a18456ce8b0c653650461
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Sep 1 11:36:22 2010 +0000
* Only do "pragma journal_mode = ..." if the current journal mode
differs from the desired mode. There is an open SQLite ticket
`Executing "PRAGMA journal_mode" may delete journal file while it is
in use.'
commit bf0dde959771661c6893001a7e0779b65d7be490
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 31 12:36:24 2010 +0000
* Always print hook output on stderr, even if --no-build-output is
set.
* In the build hook, print a trace message to allow Hydra to pick up
the name of the remote machine used for the build.
commit e2e168f7c27f5239badf6e8705264bd907d6b82c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 31 11:47:31 2010 +0000
`nix-store --verify' improvements:
* If a path has disappeared, check its referrers first, and don't try
to invalidate paths that have valid referrers. Otherwise we get a
foreign key constraint violation.
* Read the whole Nix store directory instead of statting each valid
path, which is slower.
* Acquire the global GC lock.
commit 80e722278ca03bf303961e2f27487dc98d042803
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 30 14:53:03 2010 +0000
* When using the build hook, distinguish between the stderr of the
hook script proper, and the stdout/stderr of the builder. Only the
latter should be saved in /nix/var/log/nix/drvs.
* Allow the verbosity to be set through an option.
* Added a flag --quiet to lower the verbosity level.
commit 20acd43c25a388f5c31c2ee601f1cac88cf12f7b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 30 14:11:57 2010 +0000
* Disable the GC reachability check for now (when creating new roots),
as it's hopelessly inefficient.
commit 766f7084188d8c0dd0595bbbfc50fbc4f9d67a50
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Aug 27 13:18:13 2010 +0000
* Experimental feature: allow a derivation to tell the build hook that
it requires a certain feature on the build machine, e.g.
requiredSystemFeatures = [ "kvm" ];
We need this in Hydra to make sure that builds that require KVM
support are forwarded to machines that have KVM support. Probably
this should also be enforced for local builds.
commit df50916e46d80e640a36076f1c38c355b89999d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Aug 27 12:10:56 2010 +0000
* Oops - "null" was displayed as "true".
commit e41ecbf7303a181fd37026edb72f2f23dde7e73b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Aug 27 11:09:04 2010 +0000
commit e437b0825018b1935f9a849382c12b1df0aeae06
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 25 20:44:28 2010 +0000
* Made the build hook mechanism more efficient. Rather than starting
the hook every time we want to ask whether we can run a remote build
(which can be very often), we now reuse a hook process for answering
those queries until it accepts a build. So if there are N
derivations to be built, at most N hooks will be started.
commit 1a396f3789feefc20bdcd8a355939eb1ec5126c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 25 12:19:30 2010 +0000
* Don't call "cat".
commit 95deba581dc3a93874b13406fb5c4dfb6747bbc3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 25 11:54:11 2010 +0000
* In the build hook, temporarily register the derivation and its
output as GC roots. This prevents a race if the garbage collector
is running during the build.
commit 1e5f5ea2e9f522397c05e710ae32ff7c0b0f1611
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 24 14:27:07 2010 +0000
* Correctly handle SSH failing to establish a connection. Because
this didn't work right, the build hook wouldn't fall back to using
other machines of the desired type.
commit 034f608e004c3206ff99c55c107139c38bfe9408
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 24 14:25:33 2010 +0000
* Don't complain if the stored hash of a path is zero (unknown).
commit f58f51f38007f8bfb1089c3b4c88b6e66da15f39
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 24 11:45:44 2010 +0000
* Handle the unlikely case where a derivation has no dependencies at
all.
commit 955d11aae738f7f9c56c51e8ab2eabdf8732aab1
Merge: 5c5ab2b c67eccc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 24 09:56:28 2010 +0000
* Sync with the trunk.
commit c67eccc26d42bce9496024ac77eaa7e4ff725d01
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 24 09:21:59 2010 +0000
* nix-build: pass --cores.
commit 2c8e070e5d75e1d1f610c8493b359a194c30e3b8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 17 15:39:35 2010 +0000
* Bump the version number.
commit ed133e6e6443646a21d87cf9a8eb0263f7c3f3fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 17 14:08:44 2010 +0000
* rpmBuild already includes the disk image in the output name.
commit 2de17f4edcd7ee66b1094d777cdb62ec4a786a8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 17 10:06:26 2010 +0000
* Update date.
commit 86f65edf4e519224eaa35ebc6bcf98bffe04b3d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Aug 17 07:22:05 2010 +0000
* Document --cores in the manual.
commit b75e1043a3a4bd72086e4007a53f0a1c3211c9fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 16 13:23:45 2010 +0000
* Typo.
commit 8ec6594d6d77d73c7f961881f6575a56d81ca77f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 16 13:01:31 2010 +0000
* Remove the "tarball" jobset argument.
commit 12721a3a9a5b6f64b9150833a2e682daf9c03e4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 16 12:38:32 2010 +0000
* Nix 0.16 release notes.
commit 5fb824e896630741b6ca2c1c27d5f293f7d1f84e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Aug 12 13:36:56 2010 +0000
* Urgh, this was supposed to go in the trunk...
commit 5c5ab2bc12472f63a33cc841dcdc57f1ed8ddea5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Aug 12 13:34:34 2010 +0000
* Don't link against pthreads. This was added way back in r211
because Berkeley DB needed it on some platforms, but we don't use
BDB anymore.
On FreeBSD, if you link against pthreads, then the main thread gets
a 2 MB stack which cannot be overriden (it ignores "ulimit -s"):
http://www.mail-archive.com/freebsd-hackers@freebsd.org/msg62445.html
This is not enough for Nix. For instance, the garbage collector can
fail if there is a pathologically deep chain of references
(http://hydra.nixos.org/build/556199). 2 MB is also not enough for
many Nix expressions.
Arguably the garbage collector shouldn't use recursion, because in
NixOS unprivileged users can DOS the garbage collector by creating a
sufficiently deeply nested chain of references. But getting rid of
recursion is a bit harder.
commit 6846ed8b442c20430b816a6b2ec926c841e38e0d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Aug 12 09:21:50 2010 +0000
* Make --cores work when building through the Nix daemon.
commit 5f9aad44caff5b2a2fb22fcf93d6ca129656984d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 11 15:28:02 2010 +0000
* nix-build: recognise --cores.
commit d7875d164884b1a42d9b5ed0d92b55beeeb89a99
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Aug 6 07:51:27 2010 +0000
* Use SQLite 3.7.0.1.
commit 587dc8aa003cc5f676cc7d01b4fea984f5033107
Merge: fd9c77d 750be19
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 4 17:48:29 2010 +0000
* Sync with the trunk.
commit fd9c77dfc7b90d447e6bfdb4f0d5b521184aeddb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 4 17:35:59 2010 +0000
* Use SQLite 3.7.0's write-ahead logging (WAL mode). This is a lot
faster than the old mode when fsyncs are enabled, because it only
performs an fsync() when doing a checkpoint, rather than at every
commit. Some timings for doing a "nix-instantiate /etc/nixos/nixos
-A system" after modifying the stdenv setup script:
42.5s - SQLite 3.6.23 with truncate mode and fsync
3.4s - SQLite 3.6.23 with truncate mode and no fsync
32.1s - SQLite 3.7.0 with truncate mode and fsync
16.8s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint
every 1000 pages
8.3s - SQLite 3.7.0 with WAL mode and fsync, auto-checkpoint
every 8192 pages
1.7s - SQLite 3.7.0 with WAL mode and no fsync
The default is now to use WAL mode with fsyncs. Because WAL doesn't
work on remote filesystems such as NFS (as it uses shared memory),
truncate mode can be re-enabled by setting the "use-sqlite-wal"
option to false.
commit 750be19ae865da3ee03c132a287148f2402ad72b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 4 12:23:59 2010 +0000
* Remove "auto" and "guess" as synonyms for 0 in the handling of
build-cores and --cores. They're superfluous and just complicate
the parsing.
commit 7f893b7a43fdca728fd1f7a72e51d31d2a6e7147
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 4 12:13:58 2010 +0000
* Allow derivations to hint that they should not be built remotely
using the build hook mechanism, by setting the derivation attribute
"preferLocalBuild" to true. This has a few use cases:
- The user environment builder. Since it just creates a bunch of
symlinks without much computation, there is no reason to do it
remotely. In fact, doing it remotely requires the entire closure
of the user environment to be copied to the remote machine, which
is extremely wasteful.
- `fetchurl'. Performing the download on a remote machine and then
copying it to the local machine involves twice as much network
traffic as performing the download locally, and doesn't save any
CPU cycles on the local machine.
commit 315d8fbd7570532e008b03d50226f53fa9e460db
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Aug 4 09:32:42 2010 +0000
* Set the default system filter to "*". This ensures that (for
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.
commit 6d6200f37afe10e8da3b08582a926245538af5d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 2 16:31:05 2010 +0000
* Optimisation in the // operator: if one of the sets is empty, return
the other set.
commit 7af6a2fd71e95bdc28e0015b1e89a9b81ef32711
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Aug 2 11:54:44 2010 +0000
* intersectAttrs: optimise for the case where the second set is larger
than the first set. (That's usually the case with callPackage.)
commit 532d766c279daf190728b4815b92f04623e7fb7f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jul 21 11:30:23 2010 +0000
* Don't barf if the source NAR for a patch has disappeared.
commit 7e043d28a64b38e18511140a9a42494977ca6015
Author: Peter Simons <simons@cryp.to>
Date: Thu Jul 15 14:35:20 2010 +0000
src/bsdiff-4.3/Makefile.am: include the 'compat-include' directory in distribution tarballs
commit 60b632b173e633cc5346f8a5491ef637e1f78166
Author: Peter Simons <simons@cryp.to>
Date: Fri Jun 25 14:05:37 2010 +0000
tests/build-hook.hook.sh: prefer more portable `...` syntax over $(...) for running sub-shells
The /bin/sh interpreter on Solaris doesn't understand $(...) syntax for running
sub-shells. Consequently, this test fails on Solaris. To remedy the situation,
the script either needs to be run by /bin/bash -- which is non-standard --, or
it needs to use the ancient but portable `...` syntax.
commit a0d29040f79b365598fe75d01f72d29ab538206b
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 22:22:24 2010 +0000
Revert "configure.ac: make flex and bison required programs"
This reverts commit 22405. Apparently, these programs aren't necessarily
required when building from a release archive.
commit af09fe12ddf356d93855cfe7b84d607e3103103a
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 17:51:31 2010 +0000
Fix build of bsdiff-4.3 on machines that don't have <err.h>, such as Solaris.
commit d63375d52998e91c4d79563727baa29eb0753251
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 17:51:24 2010 +0000
configure.ac: Incredibly enough, tr(1) on Solaris doesn't understand A-Z syntax for ranges.
commit 4c21c016c578ced9d612ea3040ea225e57c477ec
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 17:51:19 2010 +0000
configure.ac: make flex and bison required programs
The build fails if these tools aren't available.
commit bcec46057c0a99be3f0094cddfe0b06f27919f74
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 17:51:13 2010 +0000
src/libutil/util.cc: include <limit.h> to ensure that PATH_MAX is defined
commit a17071fef15115dc0e7052ebe091ffe8457f77d0
Author: Peter Simons <simons@cryp.to>
Date: Thu Jun 24 17:51:04 2010 +0000
Include <cstring> to ensure that strcpy(), strlen(), and memset() are declared.
An "using namespace std" was added locally in those functions that refer to
names from <cstring>. That is not pretty, but it's a very portable solution,
because strcpy() and friends will be found in both the 'std' and in the global
namespace.
commit 560ab22f7db8238672ed3117ef8bf0de8baf9155
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jun 23 21:11:33 2010 +0000
* Ignore packages that don't have a version.
* Work on a manifest instead of a channel directory.
commit 8b7f8b56f11145c1be5188113cbcdbea27e99525
Author: Peter Simons <simons@cryp.to>
Date: Wed Jun 23 14:34:08 2010 +0000
Added support for passing an (impure) NIX_BUILD_CORES variable to build expressions.
This patch adds the configuration file variable "build-cores" and the
command line argument "--cores". These settings specify the number of
CPU cores to utilize for parallel building within a job, i.e. by passing
an appropriate "-j" flag to GNU Make. The default value is 1, which
means that parallel building is *disabled*. If the number of build cores
is specified as 0 (synonymously: "guess" or "auto"), then the actual
value is supposed to be auto-detected by builders at run-time, i.e by
calling the nproc(1) utility from coreutils.
The environment variable $NIX_BUILD_CORES is available to builders, but
the contents of that variable does *not* influence the hash that goes
into the $out store path, i.e. the number of build cores to be utilized
can be changed at will without requiring any re-builds.
commit 87ef5907e97f455bd4064f4d6e5f3c972402a8b9
Merge: 3e5e0fa 819548d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jun 22 14:42:34 2010 +0000
* Sync.
commit 819548d92f45d8aea671ca9a3e938ff928679063
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jun 22 14:41:22 2010 +0000
* Pass `--fallback' to the remote build to ignore failing
substituters.
commit 3e5e0faf9cf93c01fb621774c0c3c50ce51bdd91
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jun 21 11:08:09 2010 +0000
* Okay, putting a lock on the temporary directory used by importPath()
doesn't work because the garbage collector doesn't actually look at
locks. So r22253 was stupid. Use addTempRoot() instead. Also,
locking the temporary directory in exportPath() was silly because it
isn't even in the store.
commit bf87cc44b4484df74388b526c89884fea166ab7f
Merge: d1f6c0c b571891
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jun 21 07:55:38 2010 +0000
* Sync with the trunk.
commit b57189174f6e11c3e9e0f7c65c08a72f689fe194
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Jun 14 08:34:48 2010 +0000
* In importPath() and exportPath(), lock the temporary directory to
prevent it from being deleted by the garbage collector.
commit f16fe2af8d59fef156c29077a240a832d3e60ef2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Jun 10 10:29:50 2010 +0000
* builtins.toXML: propagate the string context. This is a regression
from the old ATerm-based evaluator.
commit d1f6c0cbe39b509545f809f08cbd580859f38e34
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jun 8 13:38:28 2010 +0000
* Replacing ValidPath rows doesn't work because it causes a constraint
violation of the Refs table. So don't do that.
commit 07ca66cf242eef3c7a6396e9353e48037034498b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Jun 4 13:56:11 2010 +0000
* Applied a patch from David Brown to prevent `nix-store --optimise'
from failing on rename() on BtrFS.
commit 1ab67cf437704f51f514e2ab7856e3c87f3c88b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Jun 2 09:43:04 2010 +0000
commit 89865da76d87292e5bc61f324b1ac892d40236e7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jun 1 11:19:32 2010 +0000
* Turn build errors during evaluation into EvalErrors.
commit a443c7573b3d76a6db107e6de974205e605a2738
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Jun 1 10:01:14 2010 +0000
* Hack to allow derivations to disable chroot builds by setting the
attribute "__noChroot = true" (requested by Rob).
commit 8bcdd36f10c5adfd312493c822c95c6fa5fbd110
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon May 31 16:36:24 2010 +0000
Add XML output to `nix-store'.
* src/nix-store/Makefile.am (nix_store_SOURCES): Add `xmlgraph.cc' and
`xmlgraph.hh'.
* src/nix-store/help.txt (Operations): Document `--xml'.
* src/nix-store/nix-store.cc (opQuery): Handle `--xml'.
* src/nix-store/xmlgraph.cc, src/nix-store/xmlgraph.hh: New files.
commit da52f8bea0620cd55e10a8ec90306fa169f2d14f
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon May 31 16:36:20 2010 +0000
Comment out dead code in `nix-store'.
* src/nix-store/dotgraph.cc (pathLabel): Move within #if 0 section.
commit 7343e6c8ae6d18f38f42a0714212ca5deb957c39
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun May 30 20:29:56 2010 +0000
* Remove an accidentally committed debug statement.
commit b92a2e5cc2c4f6a14ceea75dfd3bcf5f64743b2f
Merge: 32539e4 93cd5a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu May 20 12:36:03 2010 +0000
* Sync with the trunk.
commit 93cd5a4a13742b48bb1db0cafe36dd90b7abc10d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue May 18 10:36:37 2010 +0000
* The << operator on values should be const.
commit 32539e41d5aac3daef4a02ad47da785cbaa651e2
Merge: aa45027 b2235d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun May 16 17:16:00 2010 +0000
* Sync with trunk.
commit b2235d81d1b3733a93fdd1397a62d0f49409dcb0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sat May 15 08:10:12 2010 +0000
* Restore the __overrides feature that was lost somewhere in the
fast-eval branch.
commit aa45027818af8976dc73e6a299d5d918e5c51df1
Merge: a0e3b84 8032f26
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed May 12 22:13:09 2010 +0000
* Sync with the trunk.
commit 8032f26ca0bd2233de066ce5786ff976bbd641ae
Merge: 4750065 bd25ac2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed May 12 13:59:36 2010 +0000
* Merged the `fast-eval' branch.
commit bd25ac2260267abd2181324e1650820da70e5e60
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed May 12 12:15:49 2010 +0000
* Print attributes in sorted order.
commit 81a4b4e49bf82f17eef20d78c4f505874cf5532e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed May 12 11:23:44 2010 +0000
* Implemented tryEval, the last missing primop in the fast-eval
branch. Also added a test for tryEval.
commit 1a8eb6e3ec9329ee7b61ac2345c6e1d994905813
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri May 7 15:26:33 2010 +0000
commit 83dfa898706e1faa491b3a50ea20baf60abda387
Merge: 01e58ad 4750065
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri May 7 14:46:47 2010 +0000
* Sync with the trunk.
commit 01e58adce0767f1a484d80fcbcf67c7945cbc146
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri May 7 12:43:57 2010 +0000
* Store position info for inherited attributes.
commit 83d7b89660ebb942ad844b9be260492b2ea9fb24
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri May 7 12:33:14 2010 +0000
* Updated addErrorContext.
commit e2d5e40f4fdd98e5d2ad7b77c00fb97caa3aa259
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri May 7 12:11:05 2010 +0000
* Keep track of the source positions of attributes.
commit 84ce7ac76feab6e9a5c074bd1b9550ae543d1db8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu May 6 16:46:48 2010 +0000
* Store attribute positions in the AST and report duplicate attribute
errors with position info.
* For all positions, use the position of the first character of the
first token, rather than the last character of the first token plus
one.
commit 4750065ada362bd46e85879975a3148e18df5b0c
Author: Ludovic Courtès <ludo@gnu.org>
Date: Wed May 5 20:46:41 2010 +0000
buildenv: Special-case Python's `site.py' and `site.pyc'.
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `site.py' and
`site.pyc' files.
commit a0e3b84fac56cad6377ecd1462058a6b29bb1ea8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue May 4 12:42:58 2010 +0000
* Revert r15436. This was a workaround for a bug in btrfs which seems
to have been fixed now.
commit f92c9a0ac585d30e245c6667cbce4b035659cb11
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue May 4 10:45:10 2010 +0000
* Allow unprivileged users to do `nix-store --clear-failed-paths' and
`nix-store --query-failed-paths'.
commit 4bab25a28d32f0551ac20b8b9b33e79af5decf0a
Author: Ludovic Courtès <ludo@gnu.org>
Date: Mon May 3 13:13:38 2010 +0000
buildenv: Special-case Python's `easy-install.pth' files.
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `easy-install.pth'
files. Comment the hack.
commit 7fa338f4bac16f83b65b95fb0397b534d5ba5d5b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Sun May 2 21:27:50 2010 +0000
* Don't use smart quotes where normal ASCII quotes are intended.
Actually, don't use quotes at all. (Reported by Howard B. Golden.)
commit c82782f9a5190c7489fb8e9bd6876b247b0de0bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 27 09:05:11 2010 +0000
commit c778ed17687a506c46c107a7adb1f3173d8136da
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 26 13:39:55 2010 +0000
* Fix the copy-from-other-stores substituter.
commit ef337f7089e484929be92114dac5455d00cebb45
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 26 12:58:12 2010 +0000
commit 6199f9b93ee234139906792c8c1b4908a35df146
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 26 12:56:42 2010 +0000
* Added a command `nix-store --clear-failed-paths <PATHS>' to clear
the "failed" status of the given store paths. The special value `*'
clears all failed paths.
commit 2398af13c53217b5de5821bac0f0c44e9081c23d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 26 12:43:42 2010 +0000
* Add an command `nix-store --query-failed-paths' to list the cached
failed paths (when using the `build-cache-failure' option).
commit d77331d32f33cc17398d3e1422d0114309ef62de
Author: Lluís Batlle i Rossell <viric@vicerveza.homeunix.net>
Date: Sun Apr 25 20:52:49 2010 +0000
Fixing a typo in the nix-store manual, that could confuse a bit too much (--delete/--gc)
commit 2be6118f4c7e909f36d5563ad0ea70780f30cc10
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 23 09:09:32 2010 +0000
* Don't need the test program anymore.
commit 0bc468f195e37a8a5f4f8b36ae6c92459e8ca652
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 22 15:08:09 2010 +0000
* Simplify the implementation of `with'. This gives a 7% speedup in
evaluating the NixOS system configuration.
commit ee0384fb966b7a9bd202fa6fb447788be30c4ce4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 22 11:34:15 2010 +0000
commit ebade9ff8b8557bdae7cdaf9f70c12ceeb3dc02c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 22 11:02:24 2010 +0000
* Check for duplicate attribute names / function arguments. `make
check' now succeeds :-)
* An attribute set such as `{ foo = { enable = true; };
foo.port = 23; }' now parses. It was previously rejected, but I'm
too lazy to implement the check. (The only reason to reject it is
that the reverse, `{ foo.port = 23; foo = { enable = true; }; }', is
rejected, which is kind of ugly.)
commit 2d7636529f782b552b634497fd8ac876aae72fcc
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 22 09:54:11 2010 +0000
* String equality tests should take the context into account. All the
evaluation test cases now succeed.
commit 6bbfe95e3012effa0df79066ae129ce9828a8ff2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 19:25:50 2010 +0000
* Don't use an ostringstream in unparseDerivation(), because it's
slow. A `nix-env -qa --drv-path \*' on Nixpkgs was spending 40% of
its time in unparseDerivation() because of this (now 11%).
commit 7148df797174ff742fdd8cee3c2d92e6340ee930
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 16:22:03 2010 +0000
* Update the expected test output (no longer an ATerm).
commit 6f0f16497a8ce671c2aa9ff3cd9a27eb1f931cf2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 16:18:27 2010 +0000
* Fix the interpretation of ''\<character> in indented strings.
commit cae4efdca3a207b97244aef96161ad2974ec4e50
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 16:02:12 2010 +0000
* Because --parse-only no longer produces an ATerm, don't check the
output. Whether it parses at all should be enough.
commit 0777448ca68175b6daf3d8f5374cf43523828c47
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 15:57:11 2010 +0000
* Fixed builtins.genericClosure.
commit fe2d869e04372de69719c3989a75247ff44b8fd4
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 21 15:08:58 2010 +0000
* Store user environment manifests as a Nix expression in
$out/manifest.nix rather than as an ATerm.
(Hm, I thought I committed this two days ago...)
commit d66ea83a763a36e7e7b9558b90abcfe09bec1b85
Merge: f71ea9c aac5fcf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 20 09:20:29 2010 +0000
* Sync with the trunk.
commit f3b8833a48472c3545ea8673d687ea9cadcedd61
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 19 14:51:58 2010 +0000
* Drop the dependency on the ATerm library.
commit efc7a579e880ec15ebe9afc0d8766c85c7d53ec2
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 19 13:46:58 2010 +0000
* Don't use the ATerm library for parsing/printing .drv files.
commit 55b5ddd3ca1ff4dfe4cfbfab92a4025d88ef6443
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 19 12:10:04 2010 +0000
* Added parsing of manifests in ATerm format.
commit b7ff69eb7c3f97c33ec18c51ab87b7f3dd967052
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 19 10:47:56 2010 +0000
* Refactoring: move the user environment stuff into its own module.
commit 5c31995bb8adb9189152ebd4f3c41ca9e8049749
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 16 15:13:47 2010 +0000
* Updated some more primops.
commit 8bb0210fea89f2df70b3c10c431b1383e74093df
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 16 14:07:52 2010 +0000
* _combineChannels shouldn't be an integer.
commit 8ca4a001cb9e8ca2556c26a1b559b0322a8fb46a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 16 14:03:26 2010 +0000
* Improve sharing a bit.
commit 497e4ad12650e27ecbaf0e056fe0c54bc12a138b
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 16 13:51:01 2010 +0000
* Remove some redundant tests.
commit 02c1dac90934e1b833c4d6bd9280bda27c146d80
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 16 13:44:02 2010 +0000
* In an nested `with' where the inner with is a variable (`with ...;
with someVar; ...'), the contents of the variable would be
clobbered. (The attributes in the outer `with' were added to the
variable.)
commit 04c4bd3624b094043ff0f2410c1e376a51f457f7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 15 00:37:36 2010 +0000
* Store lists as lists of pointers to values rather than as lists of
values. This improves sharing and gives another speed up.
Evaluation of the NixOS system attribute is now almost 7 times
faster than the old evaluator.
commit e41b5828db0c154e4a3f0ed6299a987fde5bc03f
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 23:48:46 2010 +0000
* Better stats.
commit d39d3c6264707c466b21dfadd4d48653842a9156
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 23:25:05 2010 +0000
* Implemented inherit.
commit 267dc693d2ca8dea13199f92c265fc35fdb047f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 22:59:39 2010 +0000
* Fix builtins.
commit 81de12bc8fa09a89dae958a3ffc93e7a4c245db1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 15:14:23 2010 +0000
* Refactoring: move variable uses to a separate class.
commit 110d1557782fac4f8cafa27e5cbbcdebefb7a4c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 15:01:04 2010 +0000
* Implemented withs.
commit 9985230c00226826949473c3862c0c3afea74aaf
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 14:42:32 2010 +0000
* After parsing, compute level/displacement pairs for each variable
use site, allowing environments to be stores as vectors of values
rather than maps. This should speed up evaluation and reduce the
number of allocations.
commit 816dd3f0612111718c338842283c1ee6577b9f0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 12:49:05 2010 +0000
* Remove more obsolete code.
commit 011b5da0f46e9796fc68bc5daf5fe4dd4b57f933
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 09:39:06 2010 +0000
* Get nix-env to compile again.
commit 85d13c8f93c8b251f5883d9b38051b33bab1ad3e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 14 08:37:08 2010 +0000
* Change the semantics of "with" so that inner "withs" take
precedence, i.e. `with {x=1;}; with {x=2;}; x' evaluates to 2'.
This has a simpler implementation and seems more natural. There
doesn't seem to be any code in Nixpkgs or NixOS that relies on the
old behaviour.
commit 816f9c0f6fae0229961bb573dfa0f75ff42c14eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 13 14:34:11 2010 +0000
* Use std::tr1::unordered_set instead of std::set for the symbol
table. This gives a 10% speed increase on `nix-instantiate
/etc/nixos/nixos -A system --readonly-mode'.
commit 7d47498b5ea1ad4685bad954e5407f628f7f5595
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 13 13:42:25 2010 +0000
* Evaluate lets directly (i.e. without desugaring to `rec { attrs...;
<let-body> = e; }.<let-body>). This prevents the unnecessary
allocation of an attribute set.
commit ac1e8f40d4a5c380d68bb6f1c7cef6f1e7987c1a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 13 12:25:42 2010 +0000
* Use a symbol table to represent identifiers and attribute names
efficiently. The symbol table ensures that there is only one copy
of each symbol, thus allowing symbols to be compared efficiently
using a pointer equality test.
commit 10e8b1fd15d59dc541c15f6da56f8baf58eb3aa3
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 23:33:23 2010 +0000
* Finished the ATerm-less parser.
commit 0d272fca799f7e6da955875b2935c19542cd6b4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 23:31:47 2010 +0000
* Remove some obsolete functions.
commit d4f0b0fc6cdb9ae2fd5fc057d621bc80b36a7b18
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 22:03:27 2010 +0000
* Indented strings.
commit a60317f20fbc8be8e339060d932946f6d99ece6a
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 21:21:24 2010 +0000
* More missing constructs.
commit 4d6ad5be1738c64b1de4274cafbd4b8f23ca287c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 18:30:11 2010 +0000
* Don't use ATerms for the abstract syntax trees anymore. Not
finished yet.
commit ed711f73bce8786b1a37bd718eb97276d0916484
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 10:38:18 2010 +0000
* Don't use ATerms to represent integers in the lexer.
commit db90b88e655a0d8e501beddee966a124b2f097d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 09:50:20 2010 +0000
* Hack to support builderDefs expressions.
commit 4e490025767093e287a8b7b01de52fee7ae36830
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 09:45:00 2010 +0000
* Doh.
commit c3f228f296321991ef54e46fc621a292824b13e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Mon Apr 12 09:14:27 2010 +0000
commit aac5fcfbb54ff64c593d8919f7f52025415ea996
Author: Ludovic Courtès <ludo@gnu.org>
Date: Fri Apr 9 21:30:55 2010 +0000
Re-add `drvPath' and `outPath' attributes to <derivation> XML nodes.
This fixes a regression introduced in r20882 ("Add source location
information to the XML output.").
* src/libexpr/expr-to-xml.cc (nix::printTermAsXML): Dereference the
attribute RHS from "drvPath" and "outPath".
commit f3dc7ab877c736ec1500f6b503ab71a62ce90305
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Fri Apr 9 12:00:49 2010 +0000
* Keep more statistics about stack space usage.
* Reduce stack space usage.
commit b7b3dd55f9e30e2eccb54aca22830852c5c2b514
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 8 11:41:19 2010 +0000
* Remove a lot of dead code.
commit 7e048eddf55637b9e81d704f6b9f1fdeca98a5ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 8 11:25:14 2010 +0000
* Fix blackholing. If evaluation fails due to an assertion failure,
then the blackhole has to be removed to ensure that repeated
evaluation of the same value gives an assertion failure again rather
than an "infinite recursion" error.
commit af2a372bb000d4d5aeec37e43ee0f6245c1bba54
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 7 15:47:06 2010 +0000
* Update autoCallFunction() and findAlongAttrPath().
commit 9a64454faae2ab4ccedeeaad85a0e094726b4765
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 7 13:59:45 2010 +0000
* expr-to-xml -> value-to-xml.
commit fc92244ba81d884e099d467a3b82fbdcbff7fc40
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Apr 7 13:55:46 2010 +0000
* Implemented the primops necessary for generating the NixOS manual.
commit a353aef0b157e7c628fd18640bd6c45215f3e606
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Tue Apr 6 14:15:29 2010 +0000
* In eval(), don't use the target value `v' as a temporary.
Overwriting `v' breaks when the expression evaluation to an
assertion failure or throw.
commit a5ece7d016e72a61ca69a401e833314f538518f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 1 16:59:07 2010 +0000
* Removed the `~' operator.
commit c172274e170a87a30420842ee07ed1f7226d7f2e
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 1 14:35:03 2010 +0000
* Quick hack to make coerceToString work more or less correctly on
nested lists. `nix-instantiate' can now evaluate the NixOS system
derivation attribute correctly (in 2.1s on my laptop vs. 6.2s for
the trunk).
commit 7b851915bfbad1c561191a037a2924d2b3d2d398
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 1 12:04:57 2010 +0000
* Improve sharing.
commit 95cc417d76f7d374ef63e0b49a2f83e7b9202b0c
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 1 10:55:36 2010 +0000
* Functions are incomparable.
commit 71f026292ba1b401237a16ab6e0fb57c36c93df5
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Thu Apr 1 09:55:57 2010 +0000
* Make `derivation' lazy again for performance. It also turns out
that there are some places in Nixpkgs (php_configurable /
composableDerivation, it seems) that call `derivation' with
incorrect arguments (namely, the `name' attribute missing) but get
away with it because of laziness.
commit dc31305b381f69de5ac5fd4776df1a802045ff00
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 31 20:09:20 2010 +0000
* Fixed the trace primop and path comparison.
* Removed exprToString and stringToExpr because there is no ATerm
representation to work on anymore (and exposing the internals of the
evaluator like this is not a good idea anyway).
commit 979f163615745db74f3a94a71818e66c75baf9ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 31 19:52:29 2010 +0000
* Handle string contexts. `nix-instantiate' can now correctly compute
the `firefoxWrapper' attribute in Nixpkgs, and it's about 3 times
faster than the trunk :-)
commit d8cd3115d8e1acc9e866c67265668d5268f2c1ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 31 19:12:08 2010 +0000
* Get nix-env to compile.
commit 55e207b2dc43e426bd0dfbc2065b8853a1fc59b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 31 16:14:32 2010 +0000
* Cache parse trees to prevent repeated parsing of imported Nix
expressions.
commit 3d94be61ea562dea2098b6570f711386179913ef
Author: Eelco Dolstra <e.dolstra@tudelft.nl>
Date: Wed Mar 31 15:38:03 2010 +0000
* Implemented derivations.
commit 51876789131e81dca9807c00773158160c3824c2
Author: Eelco Dolstra < |