Commit graph

36 commits

Author SHA1 Message Date
Eelco Dolstra
f160a30d56 Clean up temp roots in a more C++ way 2015-05-11 17:40:44 +02:00
Eelco Dolstra
a64744477d Fix message 2015-05-11 17:40:28 +02:00
Eelco Dolstra
b73de6e49b Don't use ADDR_LIMIT_3GB
This gives 32-bit builds on x86_64-linux more memory.
2015-05-11 17:39:31 +02:00
Eelco Dolstra
e0825bd36b Make ~DerivationGoal more reliable 2015-05-11 17:39:20 +02:00
Eelco Dolstra
86b9e6d457 nix-store --gc: Don't warn about missing manifests directory 2015-05-11 17:39:01 +02:00
Eelco Dolstra
1129a982c4 Improve error message if the daemon worker fails to start 2015-05-11 17:38:34 +02:00
Eelco Dolstra
ee8601cac4 Improved error message when encountering unsupported file types
Fixes #269.
2015-05-11 17:36:33 +02:00
Eelco Dolstra
c2b65dd197 Remove some duplicate code 2015-05-11 17:36:05 +02:00
Eelco Dolstra
e63c8aaa05 On Linux, disable address space randomization 2015-05-11 17:33:04 +02:00
Eelco Dolstra
55939b1a4b Settings: Add bool get() 2015-05-11 17:32:30 +02:00
Ludovic Courtès
6621195e48 Add an 'optimiseStore' remote procedure call. 2015-05-11 17:31:02 +02:00
Eelco Dolstra
3bb89c3a31 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 ];
2015-05-11 17:30:29 +02:00
Gergely Risko
abd9d61e62 Introduce allowedRequisites feature 2015-05-11 17:29:11 +02:00
Joel Taylor
8c766e48d5 fix disappearing bash arguments 2015-05-11 17:26:37 +02:00
Eelco Dolstra
d4e7c195fa Make hook shutdown more reliable 2015-05-11 17:25:20 +02:00
Eelco Dolstra
ea837e470f Doh 2015-05-11 17:25:16 +02:00
Eelco Dolstra
790271559c Reduce verbosity 2015-05-11 17:25:13 +02:00
Eelco Dolstra
3f6d4f63ec Propagate remote timeouts properly 2015-05-11 17:25:05 +02:00
Eelco Dolstra
aa98ba5067 Use regular file GC roots if possible
This makes hydra-eval-jobs create roots as regular files. See
1c208f2b7ef8ffb5e6d435d703dad83223a67bd6.
2015-05-11 17:23:33 +02:00
Eelco Dolstra
5fe5ff7780 Remove unnecessary call to addTempRoot() 2015-05-11 17:22:39 +02:00
Eelco Dolstra
1820845c44 Doh 2015-05-11 17:22:33 +02:00
Eelco Dolstra
e9070bf422 Move some options out of globals 2015-05-11 17:22:24 +02:00
Eelco Dolstra
3190951563 Refactor 2015-05-11 17:20:17 +02:00
Eelco Dolstra
f530ee6f35 Add option ‘build-extra-chroot-dirs’
This is useful for extending (rather than overriding) the default set
of chroot paths.
2015-05-11 17:20:03 +02:00
Eelco Dolstra
75f746f018 Get rid of "killing <pid>" message for unused build hooks 2015-05-11 17:16:37 +02:00
Eelco Dolstra
42c6246f67 Remove ugly hack for detecting build environment setup errors 2015-05-11 17:16:22 +02:00
Eelco Dolstra
b732ffd28d Call commonChildInit() before doing chroot init
This ensures that daemon clients see error messages from the chroot
setup.
2015-05-11 17:15:44 +02:00
Eelco Dolstra
666c9b7108 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.
2015-05-11 17:15:12 +02:00
Eelco Dolstra
82d463d9ca Make readDirectory() return inode / file type 2015-05-11 17:14:51 +02:00
Eelco Dolstra
a98fa2d9e2 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.
2015-05-11 17:13:24 +02:00
Eelco Dolstra
4ab4b0c109 Remove some dead code 2015-05-11 17:11:38 +02:00
Ludovic Courtès
766481d606 Merge commit 'fdee1ced43fb495d612a29e955141cdf6b9a95ba' into nix 2015-05-11 17:04:26 +02:00
Ludovic Courtès
c69944c511 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
2015-05-06 23:22:04 +02:00
Ludovic Courtès
a1dd396cc0 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
2015-01-04 23:01:14 +01:00
Ludovic Courtès
0a751260ae 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.
2014-12-17 22:57:33 +01:00
Ludovic Courtès
d4e18b05e0 Keep only libstore, nix-daemon, and related stuff. 2014-12-17 22:57:04 +01:00