2bb04905f8
* daemon.am (AM_CXXFLAGS): Change -std=c++0x to -std=c++11. (libstore_a_CPPFLAGS): Add -DDEFAULT_CHROOT_DIRS. (parse_opt): Use 'settings.get' instead of 'settings.dirsInChroot'. (main): Likewise. * tests/guix-archive.sh: Don't grep for the "importing ..." message since it is no longer produced. The nix/ part is a squashed commit of the following: commit3bfa70b796
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. commit5241aec531
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. commit9f355738e1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 24 16:44:35 2014 +0100 Don't create unnecessary substitution goals for derivations commit554eaf5e8c
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. commit4eb62b5230
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 in8e9140cfde
. commitf160a30d56
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 commita64744477d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 17 01:00:39 2014 +0100 Fix message commitb73de6e49b
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. commite0825bd36b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Nov 12 11:35:53 2014 +0100 Make ~DerivationGoal more reliable commit86b9e6d457
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 commit1129a982c4
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 commitbed17f40fc
Author: Shea Levy <shea@shealevy.com> Date: Mon Oct 20 12:15:50 2014 -0400 Fix build on gcc < 4.7 commitee8601cac4
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. commitc2b65dd197
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Oct 3 22:37:51 2014 +0200 Remove some duplicate code commitc957422835
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). commit6092a48603
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 25 18:45:43 2014 +0200 nix-daemon: Close unnecessary fd commite74390a16f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Sep 19 15:07:22 2014 +0200 Remove bogus comment commite63c8aaa05
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Sep 17 17:21:13 2014 +0200 On Linux, disable address space randomization commit55939b1a4b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Sep 17 15:18:13 2014 +0200 Settings: Add bool get() commit6621195e48
Author: Ludovic Courtès <ludo@gnu.org> Date: Mon Sep 1 22:21:42 2014 +0200 Add an 'optimiseStore' remote procedure call. commit3bb89c3a31
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 ]; commitabd9d61e62
Author: Gergely Risko <errge@nilcons.com> Date: Wed Aug 27 16:46:02 2014 +0200 Introduce allowedRequisites feature commit8c766e48d5
Author: Joel Taylor <me@joelt.io> Date: Thu Aug 21 14:06:49 2014 -0700 fix disappearing bash arguments commitd4e7c195fa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 19 17:44:59 2014 +0200 Make hook shutdown more reliable commitea837e470f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 18 11:35:50 2014 +0200 Doh commit790271559c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Aug 17 19:11:50 2014 +0200 Reduce verbosity commit3f6d4f63ec
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Aug 17 19:09:03 2014 +0200 Propagate remote timeouts properly commitaa98ba5067
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. commit5fe5ff7780
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 5 16:41:42 2014 +0200 Remove unnecessary call to addTempRoot() commit1820845c44
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 5 10:19:57 2014 +0200 Doh commite9070bf422
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 4 18:13:14 2014 +0200 Move some options out of globals commit3190951563
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 4 18:02:29 2014 +0200 Refactor commitf530ee6f35
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. commit75f746f018
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 commit42c6246f67
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 commitb732ffd28d
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. commitc51374c128
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Aug 1 17:30:51 2014 +0200 Eliminate redundant copy commit666c9b7108
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. commit82d463d9ca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Aug 1 16:37:47 2014 +0200 Make readDirectory() return inode / file type commita98fa2d9e2
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. commit4ab4b0c109
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 24 00:00:53 2014 +0200 Remove some dead code commit1cffdf5847
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 23 19:43:46 2014 +0200 nix-daemon: Less verbosity commitbb07dfe96f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 23 19:37:40 2014 +0200 nix-daemon: Simplify stderr handling commit766481d606
Merge:c69944c
fdee1ce
Author: Ludovic Courtès <ludo@gnu.org> Date: Mon May 11 17:04:26 2015 +0200 Merge commit 'fdee1ced43fb495d612a29e955141cdf6b9a95ba' into nix commitc69944c511
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 commita1dd396cc0
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 commit0a751260ae
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. commitd4e18b05e0
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Dec 17 10:44:19 2014 +0100 Keep only libstore, nix-daemon, and related stuff. commitfdee1ced43
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 commit5989966ed3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 23 14:46:28 2014 +0200 Remove dead code commitee3c5d7916
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Jul 19 02:25:47 2014 +0200 Revert old useBuildHook behaviour commit2e77bd70fa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 18 12:54:30 2014 +0200 Better fix for strcasecmp on Darwin commitf609eec71a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 18 00:01:06 2014 +0200 Bump commit8ddffe7aac
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 commit049c0eb49c
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. commit0c730887c4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 17 15:49:33 2014 +0200 nix-daemon: Show name of connecting user commit77c972c898
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 commit8f72e702a1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 17 15:23:31 2014 +0200 nix-daemon: Fix compat with older clients commit2304a7dd21
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 16 16:32:26 2014 +0200 Get rid of a compiler warning commit985f1595fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 16 16:30:50 2014 +0200 Be more strict about file names in NARs commit276a40b31f
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. commitbb65460feb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 16 11:19:12 2014 +0200 Make dev-shell script work on Darwin commitde8be7c3e0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 16 11:16:54 2014 +0200 Install systemd and Upstart stuff only on Linux commit048be62484
Author: Shea Levy <shea@shealevy.com> Date: Wed Jul 16 01:11:24 2014 -0400 Pass *_proxy vars to bootstrap fetchurl commita2c85b2ef8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 16 11:09:01 2014 +0200 Manual: Typo commit5bcb982711
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 14 12:39:33 2014 +0200 Remove cruft commitfa13d3f4f3
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 commitb2e0293f02
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 commita00a98548e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Jul 12 00:09:43 2014 +0200 build-remote.pl: Fix build log commit838138c5c4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 11 16:20:12 2014 +0200 Fix test commita5c6347ff0
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. commitb8f24f2535
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 11 14:27:17 2014 +0200 Fix closure size display commite196eecbe6
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 commitd0eb970fb4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 10 21:48:21 2014 +0200 Fix broken Pid constructor commitedbfe2232e
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. commit42d91b079c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 10 21:14:34 2014 +0200 Fix use of sysread commit7bb632b024
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. commit7c3a5090bf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 10 17:44:18 2014 +0200 nix-copy-closure: Fix --dry-run commit43b64f5038
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 10 17:32:21 2014 +0200 Remove tabs commit8e9140cfde
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. commit1114c7bd57
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 commit7911e4c27a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jun 23 09:15:35 2014 -0400 Remove maybeVfork commit04170d06bf
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. commit2c3a8f787b
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. commit66dbc0fdee
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 10 01:50:29 2014 +0200 Add a test for the SSH substituter commit0e5d0c1543
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 commitbeac05c206
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 commitbeaf3e90af
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 4 13:34:15 2014 +0200 Add builtin function ‘fromJSON’ Fixes #294. commite82951fe23
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 3 12:36:58 2014 +0200 Manual: html -> xhtml commite477f0e938
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jun 27 11:36:23 2014 +0200 Style fix commit858b8f9760
Author: Paul Colomiets <paul@colomiets.name> Date: Tue Jun 24 00:30:22 2014 +0300 Add `--json` argument to `nix-instantiate` commit8504e7d604
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 commitd7be6d45d9
Merge:9d0709e
d62f46e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jun 27 11:18:54 2014 +0200 Merge branch 'shlevy-import-native' commitd62f46e500
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) commit5cd022d6c0
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. commit9d0709e8c4
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 commit48495f67ed
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. commit0960d674d4
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. commit718f20da6d
Author: Shea Levy <shea@shealevy.com> Date: Fri May 30 15:43:31 2014 -0400 findFile: Realise the context of the path attributes commita8fb575c98
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 commit61c464f252
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 commitee7fe64c0a
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. commitb1beed97a0
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 commit829af22759
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. commit3c6b8a5215
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 commitceed819284
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 29 19:04:27 2014 +0200 Fix test commitbecc2b0167
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 29 19:02:14 2014 +0200 Sort nixPath attributes commit54a34119f3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon May 26 17:53:17 2014 +0200 Use std::unordered_set commita457d5ad4d
Author: Aristid Breitkreuz <aristidb@gmail.com> Date: Sun May 4 14:26:41 2014 +0200 nix-build: --add-root also takes 1 parameter commitb1d39d4765
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 commit8ea9fd7aa6
Author: Adam Szkoda <adaszko@gmail.com> Date: Sun May 25 10:54:54 2014 +0200 Rephrase @ operator description commitd8c061e044
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. commit62a6eeb1f3
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’ (commitc273c15cb1
), 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 commit39d72640c2
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. commita8edf185a9
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"; } ] commitc273c15cb1
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. commitf0fdbd0897
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon May 26 12:34:15 2014 +0200 Shut up some signedness warnings commit0321ef9bb2
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. commit3064a82156
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 commit9f9080e2c0
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. commiteac5841970
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 commit8d5f472f2c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 15 11:37:44 2014 +0200 lvlInfo -> lvlTalkative commit84813af5b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 15 11:33:46 2014 +0200 nix-store --optimise: Remove bogus statistics commit690adeb03d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 15 11:19:16 2014 +0200 Remove tab commita1b66f316e
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 commit3b9ea8452f
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. commitd73ffc552f
Author: Wout Mertens <Wout.Mertens@gmail.com> Date: Wed May 14 22:52:10 2014 +0200 Use the inodes given by readdir directly commite384e7b387
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 14 22:25:25 2014 +0200 Remove redundant code commite974f20c98
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. commit36662eb562
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> commit95501c4dee
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. commita55e77ae10
Author: Charles Strahan <charles.c.strahan@gmail.com> Date: Mon May 12 14:31:16 2014 -0400 fix typo commita84f503d86
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. commitaa9b1cf48e
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 commit2c4affbaa8
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 commit93506e60d2
Author: Rob Vermaas <rob.vermaas@gmail.com> Date: Sat May 3 17:54:48 2014 +0200 Add ubuntu 14.04 commit40250f23a0
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 commit6dd1087396
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 commita8c31d5011
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 2 14:44:44 2014 +0200 Simplify multi-user installation instructions commit696f960dee
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. commit20668b1363
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 2 13:14:10 2014 +0200 Install an Upstart service commitde4cdd0d47
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. commitada3e3fa15
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. commiteeffdb74dc
Author: Charles Strahan <charles.c.strahan@gmail.com> Date: Sun Apr 27 14:07:50 2014 -0400 doc fix: swap 'import' and 'export' commit31fe55bb8e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 25 14:55:13 2014 +0200 trunk -> master commit700c678c2e
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! commitfb5d76b89e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 15 15:32:27 2014 +0200 Fix test evaluation commita1917208c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 11 15:11:28 2014 +0200 Bump date commit742933116f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 11 11:15:24 2014 +0200 Bump version to 1.8 commit924e19341a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Apr 10 23:42:48 2014 +0200 Don't barf when installing as root commitb0a09a6f32
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Apr 9 14:52:43 2014 +0200 Add docbook icons to the distribution Grmbl... commitdfa2f77d2e
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. commite0a947cde6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 8 16:28:39 2014 +0200 Simplify quick start section commitd23931f3a4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 8 16:10:25 2014 +0200 Remove redundant stuff commit4846005741
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 8 16:09:56 2014 +0200 Update installation instructions commit2b6c8ef401
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 8 14:08:57 2014 +0200 nix-shell --pure: Keep the user's $PAGER commit76cbf55a6d
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 commit89f9232813
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Apr 7 12:00:23 2014 +0200 Update release notes commit84d6936371
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Apr 7 11:18:54 2014 +0200 Install systemd units commit8e5fbf4d73
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 22:52:14 2014 +0200 Show position info in attribute selection errors commit4c5faad994
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 22:43:52 2014 +0200 Show position info in Boolean operations commitbd9b1d97b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 22:19:33 2014 +0200 Show position info in string concatenation / addition errors commit8160f794e7
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 :-( commita5fe730940
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 21:14:11 2014 +0200 forceString: Show position info commit27b44b8cf7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 19:11:40 2014 +0200 forceAttrs: Show position info commit96b695ccab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 19:05:36 2014 +0200 forceList: Show position info commitb62d36963c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 18:58:15 2014 +0200 forceInt: Show position info commitc28de6d96e
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 commit8b31ffd10d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 17:58:23 2014 +0200 Remove unnecessary quotes around file names commitb72c8d2e5b
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' commit3f8e1f5682
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 14:51:07 2014 +0200 Update release notes commit1f19fdbd45
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 4 13:49:53 2014 +0200 Document that we require a C++11 compiler commitae6b631dc4
Author: Danny Wilson <danny@decube.net> Date: Thu Apr 3 16:59:25 2014 +0200 Fix compile errors on Illumos commitdaa16cca11
Merge:f0de863
7191a73
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Apr 3 17:37:14 2014 +0200 Sync with make-rules repo commit7191a7394a
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 commitf0de86357c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Apr 3 15:24:02 2014 +0200 Tweak error message commite7720aa10a
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. commitac6ceea764
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. commit034b6f6062
Author: Ricardo M. Correia <rcorreia@wizy.org> Date: Tue Mar 11 22:16:00 2014 +0100 nix-collect-garbage: Add --delete-older-than option commit7ef7597f71
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. commit59c9019685
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. commit1c2550a2ae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Mar 30 00:49:23 2014 +0100 boost::shared_ptr -> std::shared_ptr commit9becaa041f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Mar 29 22:20:33 2014 +0100 Drop pointless #include commitacb8facbbc
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. commit90dc50b07c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Mar 29 20:20:14 2014 +0100 restoreSIGPIPE(): Fill in sa_mask Issue #231. commit49009573bc
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); commit24cb65efc3
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. commit3fc056927c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Mar 18 23:23:55 2014 +0100 Fix tabs commit51800e06de
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. commitf93e97517e
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 commit77e2cc6c8e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 17 17:33:13 2014 +0100 nix-build: Fix --cores flag commitfb8d8f5428
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Mar 12 14:42:25 2014 +0100 Remove unnecessary null pointer checks Fixes #225. commit006f24c7fa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Mar 12 14:25:48 2014 +0100 Document nix-env -q --json commitd435e46daa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Mar 12 14:15:37 2014 +0100 Generate release notes again commite9934bb5ad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Mar 12 13:58:06 2014 +0100 Update release notes for 1.7 commit25386e5edc
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 since0f24400d90
. commit92a848f674
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Mar 11 13:16:21 2014 +0100 Fix typos commit2f2a20ed18
Author: Shea Levy <shea@shealevy.com> Date: Mon Mar 10 07:09:07 2014 -0400 Document null dynamic attrs commit049a379ec6
Author: Shea Levy <shea@shealevy.com> Date: Sun Mar 9 14:41:02 2014 -0400 The expr of AttrNames/DynamicAttrDefs is always an ExprConcatStrings commit908e9ce259
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 commit2caab81660
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 commit273322c773
. commitf7e077ad27
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 commitd6a45f6bdb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 3 15:29:58 2014 +0100 Don't set an absolute soname commita376762848
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 3 15:19:04 2014 +0100 Add support for making relocatable packages using $ORIGIN commit3a86888fd7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 28 14:01:26 2014 +0100 Typo commit4eac3b2471
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. commit4e7e498ff9
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. commit1017bd68ea
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 commit3fd01b171a
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. commitc9f6232304
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 inc897bac549
. Fixes #217. commit29cde917fe
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. commit7c7707638a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 22:41:29 2014 +0100 Doh commit7880973827
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 19:12:31 2014 +0100 Test trace and addErrorContext commit5ad263c26b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 19:08:44 2014 +0100 Test some more primops commit3d0a9ec825
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:59:01 2014 +0100 Test executables in NARs commit91f25f0510
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:55:18 2014 +0100 And another one commit432328cc55
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:49:36 2014 +0100 Remove another unused function commit509993e598
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:48:32 2014 +0100 Remove unused function commitd58ceae022
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:45:26 2014 +0100 Test nix-env --switch-generation commit7bbc68fdff
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:42:19 2014 +0100 Test nix-env --set commita0806389e9
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 commita9c4a98770
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:33:13 2014 +0100 Test ~/.nix-defexpr commit045d3b2ed7
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 commitfac6f8aac0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 18:00:46 2014 +0100 Test nix-store -q --roots commit84143c4bd8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 17:58:53 2014 +0100 Test nix-store -l commit19437785eb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 17:53:51 2014 +0100 Test nix-store --optimise commitfdff3a7eae
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 commit506d86394d
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. commit6b9cd59a41
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. commit7f74513b4e
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 commit00d761016a
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. commitd761009e3c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 15:24:48 2014 +0100 Add ~/.nix-profile/sbin to $PATH Fixes #112. commitf14ef84a51
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). commit733214144a
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> commit42eb4afd7a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 13:58:46 2014 +0100 Simplify getting use-ssh-substituter from untrusted users commitbf4a577a58
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 26 13:48:23 2014 +0100 Fix broken patch commit8a02fdc38e
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 commitdcaea042fc
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 commitdf5de9dfd7
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 commit36b90e72d7
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. commita897b58373
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. commite1cf40fa95
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 commitc31836008e
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. commite707a8a526
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 19 15:32:19 2014 +0100 Move manpages around commit73f74ebba0
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 commita7e70518b8
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 commit70a558e202
Author: Shea Levy <shea@shealevy.com> Date: Sat Feb 15 10:56:11 2014 -0500 Update ignores commit7bef965d6f
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 commit79f699edca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 18 12:57:32 2014 +0100 More GNU Make 3.81 compatibility commit8129cf33d9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 18 10:46:30 2014 +0100 Slight simplification commit1aa19b24b2
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. commit4ec626a286
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 17 23:24:12 2014 +0100 Test nix-store --verify-path and --repair-path commit99f14c2584
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 commitb6def5b542
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 commitdfbcb7c403
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 17 23:04:52 2014 +0100 Refactoring commit71adb090f0
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 commit69fe6c58fa
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. commit1da6ae4f99
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". commit00d30496ca
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. commite81d38c02b
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. commit832377bbd6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 17 12:22:50 2014 +0100 Add a test for repairing paths commit581a160c11
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 commita9d99ab55f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 14 12:31:10 2014 +0100 download-via-ssh: Use readStorePath commit4db572062c
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 commitdba33d4018
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 14 11:48:42 2014 +0100 Minor style fixes commit61fd494d76
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' commitf67f52751f
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> commit62eb9eb76d
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> commit7438f0bc2b
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> commit2246aa77d2
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> commitf9fc6acbf4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Feb 12 10:53:22 2014 +0100 Document current meaning of preferLocalBuild Closes #208. commita35c6eb4a2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 11 14:15:57 2014 +0100 Support setting CFLAGS and CXXFLAGS for libraries/programs commit1f841c9d50
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. commit57386c9bae
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. commitc89d6b9b63
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> commit38c3beac1a
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> commit1614603165
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> commit78d979567f
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> commitc5839752b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 10 10:50:29 2014 +0100 Binary tarball: Automatically fetch the Nixpkgs channel commitb632153ebd
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 commit64e23d0a38
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> commit5671188eb2
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> commit73874629ef
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> commit188f96500b
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> commit9488447594
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> commit3a38d0f356
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> commit84a8b5e9af
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> commite4058fab64
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> commit0c3e8a616e
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> commit0432bc52ea
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 7 17:34:39 2014 +0100 Fix the RPM build commit7fab23e237
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 7 17:15:00 2014 +0100 Install header files commit764d90597a
Merge:2a469ad
a210c99
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 7 16:27:34 2014 +0100 Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097' commita210c995cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 7 15:06:21 2014 +0100 Support DESTDIR commit97f8e9bc76
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 6 19:06:08 2014 +0100 Remove dead code commit2a469ad31d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 6 14:21:14 2014 +0100 Set a maintainer address Issue #202. commit1f94ec3924
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 6 13:54:44 2014 +0100 Clean up a test warning commit20d0598928
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. commit4161fce472
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 6 10:59:58 2014 +0100 Create the target directory of libraries and programs commit80b691316c
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 commit4ee6001f95
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. commit0da82efa5d
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. commit143224f7cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 4 10:09:45 2014 +0100 Add nix.spec to the distribution commitd210cdc435
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. commit73a775f3b7
Merge:d6582c0
8468806
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 3 19:57:02 2014 +0100 Merge commit '8468806552d6730abec6431c42b5b0e897c0222c' commit8468806552
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Feb 3 17:05:55 2014 +0100 Add a basic README commitd6582c04c1
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. commit2f9bb5c7e7
Merge:c5ba081
6dca720
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 16:41:52 2014 +0100 Merge branch 'make' commit6dca72006a
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" commit2a97f7b039
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 16:08:59 2014 +0100 Fix logging test commit965218a62a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 16:08:51 2014 +0100 Remove obsolete file commitb6465ae5d3
Merge:762ef46
28dc488
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 15:37:59 2014 +0100 Merge commit '28dc4883356a50f2805a3e3c819a541c44a4ff0a' into make commit762ef464f8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 15:37:50 2014 +0100 Fix the nix-profile test commit28dc488335
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. commit844d83352c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 15:18:48 2014 +0100 More "make dist" fixes commit74ca70da3a
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:6ef32bddc1
git-subtree-split:1eff3ad37f
commit6ef32bddc1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 14:28:31 2014 +0100 Fix "make dist" commit1eff3ad37f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 14:36:44 2014 +0100 Add missing file commit6f8aa145d4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 14:22:08 2014 +0100 Improve "make dist" commit0c6d62cf27
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 12:26:38 2014 +0100 Remove Automakefiles commit16e7d69209
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 12:23:14 2014 +0100 Update Makefile variable names commitec1738589a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 12:20:06 2014 +0100 Make variable names more regular commit35107038f7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 11:47:34 2014 +0100 Support adding "make help" text commitf324b49ea1
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 commitac8c2ef1aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Feb 1 11:30:21 2014 +0100 Build/install manual commit4271927c5b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jan 31 15:33:12 2014 +0100 Add support for installing man-pages commite0234dfddc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 30 12:11:06 2014 +0100 Rename Makefile -> local.mk commit4a2ec9c659
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 30 12:08:26 2014 +0100 Install nix-worker symlink commitc5ba081333
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. commit79dee4283d
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 commit7fdee6e136
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 23 13:27:22 2014 +0100 nix-build: Refactor commit5311b2b250
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 23 10:49:53 2014 +0100 Clang doesn't know the "-z defs" flag commit94f9c14d52
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 18:29:55 2014 +0100 Fix some clang warnings commita26307b281
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 17:39:19 2014 +0100 Fix build commit625ffd441d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 16:38:03 2014 +0100 Ugly hack to fix building with clang commit68cde53c47
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 15:34:04 2014 +0100 Fix building against Bison 3.0.2 commit81628a6ccc
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 commit5ef8508a92
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 15:11:57 2014 +0100 Remove unused type commitc8fff6a77f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 21 15:09:59 2014 +0100 Fix evaluation commit0e2ca26818
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 commit0f2f44bb0f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jan 20 14:22:59 2014 +0100 Build Fedora 20 RPMs commitbf0ad8aabc
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 commitf5e5793cd2
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> commitf9913f4422
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> commite640d67144
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jan 13 13:50:12 2014 +0100 Document nulls commitf1357059a4
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). commitea59f39326
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jan 13 13:42:29 2014 +0100 nix-shell: Set $IN_NIX_SHELL before evaluating commitca73c0102f
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 commite991ab942b
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 commitb1db599dd0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 9 22:10:35 2014 +0100 Generate schema.sql.hh commitcf918b889b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 9 17:33:55 2014 +0100 Handle systems where "echo -n" doesn't work commit70d8e8fdde
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 9 16:57:38 2014 +0100 Declare template_files as a simply expanded variable commit814a73227f
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. commitb4c684e0f9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 9 16:53:47 2014 +0100 Update Makefiles commit568b1b0a8a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 9 16:15:16 2014 +0100 Remove mk subdirectory in preparation for "git subtree" commit55c9a40613
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". commitf4013b6189
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 8 17:56:58 2014 +0100 Fix signed-binary-caches test commitea38e39a20
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 commit11cb4bfb25
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 commit22144afa8d
, Nix hasn't actually checked whether the content of a downloaded NAR matches the hash specified in the manifest / NAR info file. Urghhh... commit0fdf4da0e9
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. commit405434e084
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 commit0c1198cf08
. commit7a61c88dbb
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 commit485f4740ee
Author: Domen Kožar <domen@dev.si> Date: Wed Jan 1 18:10:48 2014 +0100 wording commitfe23e28f12
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. commit4252b5a645
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 commitcd49fe4f9b
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> commit6f3a51809a
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> commit18fefacf7d
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> commit136f2f7046
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> commit5ba5993470
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> commitb352fe2775
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 commit194e3374b8
. 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. commit8931bf7168
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Dec 20 13:09:12 2013 +0000 Doh commitf1e5dedb61
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. commit7d203faff6
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. commit194e3374b8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Dec 20 13:31:31 2013 +0100 Scan /proc/<pid>/cmdline for GC roots commit769f662165
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 commit0c1198cf08
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. commit65a6452240
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Dec 20 13:10:14 2013 +0100 nix-shell: Handle --option correctly Fixes #181. commit259086de84
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 18 16:40:48 2013 +0100 Add support for building JARs from Java sources commit99ed25accf
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 commit7b0d8fb23d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 17 18:16:04 2013 +0100 nix-shell --pure: Keep $TERM commit088552b319
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 17 12:13:48 2013 +0100 Set default installation paths commite81b82a2cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 16 16:51:05 2013 +0100 make dryclean: Sort names commita630635d7f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 16 16:49:41 2013 +0100 No longer interpret $(..._SOURCES) relative to $(..._DIR) commit4da8046513
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 12 11:39:58 2013 +0100 Don't include all *.dep files commit034bbcafaf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 12 11:27:47 2013 +0100 Add 'make help' commit45131da736
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 12 11:24:03 2013 +0100 Get rid of whitespace in $(d) commitc34f3c5ba4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 12 11:22:57 2013 +0100 Handle *.cpp extension commitdfcc64f556
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 commit3560f52cc4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 12 11:22:08 2013 +0100 dryclean: Show what actual files would be deleted commit49a385096e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 10 15:54:34 2013 +0100 Initial commit (imported from the Nix repo) commite36229d27f
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> commit22d665019a
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> commita6add93d73
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. commitc5b8fe3151
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 commitbf8b66adcf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 4 13:41:32 2013 -0500 Add missing file commitf3cf0436b5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 2 20:21:31 2013 +0000 Install bsdiff and bspatch in $(libexecdir)/nix commit0202ce6b94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 18:47:03 2013 +0100 Add support for ‘make installcheck’ commit9285f0aa2b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 16:38:33 2013 +0000 Add a Makefile for the Perl stuff commit8f08046606
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}/..."). commit7ce0e05ad8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 15:25:13 2013 +0000 Rename Makefile.new -> Makefile commit962551a071
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 15:05:56 2013 +0000 Add a Makefile for the scripts directory commit1a1d8b073a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 11:39:21 2013 +0000 Add a Makefile for bsdiff commit784feb6839
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 11:29:13 2013 +0000 Let ‘make clean’ delete instantiated template files commitcac06ed0a4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 11:26:51 2013 +0000 Remove obsolete setting of $CC_FOR_BUILD commitb225ccb654
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. commit0c504a756c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 11:18:41 2013 +0000 Don't install Libtool commit2cc591c7b5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 10:56:14 2013 +0000 Don't instantiate Automake makefiles commit79b7c596a9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 10:17:37 2013 +0000 Use create-dir for installing dynamic libraries commited0a8dd71a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 10:16:07 2013 +0000 Add a function for instantiating Autoconf *.in files commitf980755766
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 09:50:35 2013 +0000 Split Makefile.lib into several *.mk files commite9b6397d2f
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. commit4315acb8c0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 25 08:55:19 2013 +0000 Add a generic rule for installing files commitc7547cff19
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. commit2bd0fcc966
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). commitf267ff16b4
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 commitabb5bd66de
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Nov 23 23:42:50 2013 +0000 Add Makefile for nix-log2xml commit07c87a8e9e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Nov 24 00:15:25 2013 +0100 Consistent naming commitc1f3a1a89b
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. commit5a1114ecdb
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. commit06a8ac96e7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Nov 23 20:15:57 2013 +0000 Initialise Boehm GC only once commit90dfb37f14
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Nov 23 20:11:02 2013 +0000 Allow (dynamic) libraries to depend on other libraries commit14772783e6
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. commit611868a909
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Nov 23 17:04:27 2013 +0000 Implement basic ‘make install’ commitd1b3ca0b4a
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. commit6dd74b48f8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 20:56:58 2013 +0000 Support building dynamic libraries commit9b11a8bfbc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 20:05:00 2013 +0000 Fix building without Boehm GC commit812b5a30ec
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 19:51:18 2013 +0000 Add a Makefile variable for enabling debug info commitea2f7df5fa
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. commit6b5f89f2cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 19:30:24 2013 +0000 Drop the dependency on Automake commit754c05ed6c
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 commit9a14d5e2f3
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. commitffdc85fc8a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 15:47:47 2013 +0000 Respect configure flags commit62e35cc3a8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 16:42:25 2013 +0100 Add ‘make dist’ support commiteff6c4b791
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 15:41:48 2013 +0000 Add missing #include commite0a108b203
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 15:25:10 2013 +0000 Remove unnecessary line commiteaf903f993
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 16:24:41 2013 +0100 Clean more aggressively commit1474ecfe42
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 16:22:31 2013 +0100 Generate the parser and the lexer commitbc96c4518e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 15:10:33 2013 +0000 Automatically emit make rules for header files commitb8e9efc476
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 22 15:54:18 2013 +0100 New non-recursive, plain Make-based build system commit709cbe4e76
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. commitd4a76ff0e4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 14:45:19 2013 +0100 Bump version number commit30b986908e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 14:29:39 2013 +0100 Check meta values and warn about bad ones commit0f24400d90
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 14:09:03 2013 +0100 Generalise meta attributes commit990126cde0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 12:08:03 2013 +0000 Shorter error message commitaf94a70ba6
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 commit245e26408f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 00:41:45 2013 +0100 nix-env -q: Add a --json flag commit5fea98111b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 00:33:06 2013 +0100 Refactor JSON output commit77c13cdf56
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 19 00:03:11 2013 +0100 Add a toJSON primop commit285df765b9
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 commitfc33fd86b7
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>; }. commit90b5e69284
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. commita478e8a7bb
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. commit89e6781cc5
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. commit2bcb384e95
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 commitc897bac549
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Nov 7 17:04:36 2013 +0000 Make function calls tail-recursive commit273322c773
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. commit4badd7ed17
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Nov 7 12:44:14 2013 +0000 Get rid of an intermediary on the stack commit8d6418d46e
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 commitdec2f19502
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. commit6123144933
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Oct 28 11:56:37 2013 +0000 Drop Cygwin and Solaris builds commit1dacd427cd
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 commitea6bf0c21f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Oct 28 07:34:44 2013 +0100 Slightly optimize listToAttrs commit36e67ff16b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 22:06:39 2013 +0200 Undocument obsolete form of "let" commitfba17a9043
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 22:05:58 2013 +0200 Doc fix commit2d9bb56e55
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. commit5bc41d78ff
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. commit9e4bb20455
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 16:02:08 2013 +0200 Manual: Fix broken URLs Fixes #172. commitdc341811d6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 15:54:23 2013 +0200 Add rpm_fedora19i386 to the release-critical builds commit69befd33a9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 03:08:34 2013 +0200 Remove unnecessary call to forceStringNoCtx commita5684e09d3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 02:56:00 2013 +0200 Document typeOf commit411a3461dc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 02:51:28 2013 +0200 Add a test of the type primops commit05d02f798f
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"). commit6da92d96ae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 24 02:22:24 2013 +0200 Document NIX_SHOW_STATS and NIX_COUNT_CALLS commit543d8a5942
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 commitfe95650487
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). commit3139481822
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. commitc086183843
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 commit4f4a14453a
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. commit4ea034a5c5
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> commit792fd51f41
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': ... commitf440558acc
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': commitbb659bad81
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 17 11:40:20 2013 +0200 Nix 1.6.1 release notes commitf6a8e7f4c2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 17 11:18:37 2013 +0200 Fix test commitb08f4b0da9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 17 01:12:43 2013 +0200 Test string semantics a bit more commitd7625b5c2d
Author: goblin <github@uukgoblin.net> Date: Sun Sep 22 13:36:23 2013 +0100 two typos commitb8034e5581
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. commit9d8a80375d
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. commitd6a7aa8f48
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 Commit159e621d1a
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. commitb8571d68c4
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. commita737f51fd9
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. commitff02f5336c
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. commit4bd5282573
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 16 14:46:35 2013 +0200 Convenience macros for retrying a SQLite transaction commitbce14d0f61
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). commit7cdefdbe73
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 16 14:27:36 2013 +0200 Print a distinct warning for SQLITE_PROTOCOL commitd05bf04444
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. commitc1994fecf9
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... commit672c3acc71
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Oct 11 10:57:23 2013 +0200 Adjust to the NixOS/Nixpkgs merge commit7bdb85453d
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 commit9deb822180
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". commitb1e3b1a4ac
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). commit6b47de580f
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. commita5e0f64db3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Oct 8 12:30:23 2013 +0000 Remove some unused functions commit221a2daf34
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Oct 8 14:24:53 2013 +0200 Merge VarRef into ExprVar commit176c666f36
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': ... commitc945f015de
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 commit28e0742966
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 2 14:34:36 2013 +0200 Report OOM errors better commita5fb4b5b7c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 2 14:22:49 2013 +0200 Fix typo commitfaaae44f2e
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. commitf53574ebd6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 17 12:06:59 2013 +0000 RestoreSink: Slightly reduce the number of concurrent FDs commitd5529f5b85
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 commitb072fc04a7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 10 17:41:49 2013 +0200 Bump version number commitfecad91b67
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 10 11:21:30 2013 +0200 Update release notes commit0220da3e10
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Sep 6 17:20:19 2013 +0200 Remove stray debug line commit936f9d45ba
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. commit4b83830d0c
Author: Domen Kožar <domen@dev.si> Date: Tue Sep 3 11:42:55 2013 +0200 typo commit5904262640
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. commit2c1ecf8e81
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. commit88c07341a6
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 '*' commit07a08bddf0
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. commitc57ed84e28
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 commitef4f5ba85e
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). commit06bb2d95b4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 3 11:04:21 2013 +0000 Reformat commit6f809194d7
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. commit57d18df7d0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 18:34:04 2013 +0200 Add some support code for nix-repl commit92077b4547
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 16:39:17 2013 +0200 Get rid of a signedness warning commit33972629d7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 16:29:15 2013 +0200 Fix whitespace commitac1b754138
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 13:32:51 2013 +0200 Lower xz compression level Fixes #84. commitc28dfc0305
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 13:23:07 2013 +0200 Manual: Make '' a bit clearer Issue #162. commite9b92169a5
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. commitecd830b3b9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 13:11:36 2013 +0200 Update the release notes commit6ec8dab06a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 12:44:30 2013 +0200 Adda test for build-max-log-size commitb29d3f4aee
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Sep 2 12:01:04 2013 +0200 Only show trace messages when tracing is enabled commitefe4289464
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. commitafc6c1bad6
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> commit6cd6ce5608
Author: Ivan Kozik <ivan@ludios.org> Date: Fri Aug 16 20:18:38 2013 +0000 Fix nix-shell command commit34bb806f74
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 commitc6c024ca6f
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. commit03eaef3d7a
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 :-) commitb3110a15e9
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. commit25a108bb9c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 19 13:22:56 2013 +0200 Hack to clean up tests/test-tmp commitd308aeaf53
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. commit297b762513
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 19 11:41:15 2013 +0200 Turn on -Wall commit46222bbc43
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 14 22:32:49 2013 +0200 Typo commit58204a3c39
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> commit3fb7ae0586
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 commit161a2ccf7a
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 commita583a2bc59
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 commit263d668222
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 6 14:21:46 2013 +0200 Set the default GCC optimisation level to -O3 commitfd7d979c79
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 6 14:15:11 2013 +0200 Remove obsolete reference to ATerms commit46ffcce0c3
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) commit8e74c0bfd1
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. commit3d77b28eac
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Aug 2 18:39:40 2013 +0200 Add comparison operators ‘<’, ‘<=’, ‘>’ and ‘>=’ commit47701677e8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Aug 2 16:03:02 2013 +0000 Add integer ‘-’, ‘*’ and ‘/’ operators commit5d147e125c
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". commit159e621d1a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Aug 2 15:21:17 2013 +0000 Overload the ‘+’ operator to support integer addition commit511455965e
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. commit7df4ef983e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 31 13:12:35 2013 +0200 Test the delayed with a bit more commit0a470fc345
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 31 12:44:21 2013 +0200 Make Env smaller Commit20866a7031
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... commit8ae6d55db1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 31 12:11:14 2013 +0200 Don't use NULL commite068f49f7d
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> commit20866a7031
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> commit70e68e0ec6
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. commite87d1a63bd
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> commit7cf539c728
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. commit7b09e9f2c4
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 commit15e5ac8039
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. commit48858ad5ca
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. commit2bc5de8635
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 19 12:02:44 2013 +0200 Rename ‘nix-build --run-env’ to ‘nix-shell’ commitdc5f2e7da6
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. commita4921b8ceb
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 commit69b8f9980f
. 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. commit16591eb3cc
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> commitc3f5413e80
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 12 14:06:05 2013 +0200 Fix syntax error in unpack-channel commitaeb810b01e
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. commit25a00cae5b
Author: Gergely Risko <gergely@risko.hu> Date: Tue May 14 15:10:14 2013 +0200 Add gzip support for channel unpacking commit620d57f036
Author: Domen Kožar <domen@dev.si> Date: Sat Jun 29 15:18:05 2013 +0200 doc: typo commit6fcc290619
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 commited09d0c0a4
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. commit656390062a
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. commit212e96f39c
Author: Ludovic Courtès <ludo@gnu.org> Date: Fri Jul 5 22:21:04 2013 +0200 Leave `HAVE_HUP_NOTIFICATION' undefined on GNU/Hurd. commitb584a42e3d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 3 18:35:59 2013 +0200 Manual: auto-optimise-store is disabled by default commit5116214343
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. commit7986711632
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 commit1917d750a0
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 commit7ccd946407
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. commit5558652709
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. commit1906cce6fc
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. commit9b11165aec
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). commit22144afa8d
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. commit2b29e4b852
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jun 17 15:39:45 2013 +0200 Bump version commit6016bcd30e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jun 17 11:47:38 2013 +0200 Update release notes for Nix 1.5.3 commit1b6ee8f4c7
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 commitcd49ee0897
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. commit1e2c7c04b1
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. commit6cc2a8f8ed
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. commitbfee9a2581
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jun 13 14:51:11 2013 +0200 Typo commitf9ff67e948
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). commit6b05f688ee
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. commit5c06e5297d
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 commit24a356bf71
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. commit24e063efdc
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. commitca70fba0bf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jun 7 15:10:23 2013 +0200 Remove obsolete EOF checks commit5959c591a0
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 commitc5f9d0d080
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. commit75e12b8e66
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". commitf0576d6775
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 commitff08306746
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). commitbc2e43f3c8
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. commit039d5a023f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 29 12:36:56 2013 +0200 .bashrc -> .profile commitb09b87321c
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. commit107505e13a
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 commit72d8209548
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. commit18a48d80a0
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': ... commit1b3a03f161
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 16 17:56:14 2013 +0200 Show which function argument was unexpected Fixes #116. commit229567293c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 16 17:48:19 2013 +0200 Shut up a compiler warning commita4cb62ac25
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. commit31a551a60f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon May 13 23:50:31 2013 +0200 Bump version commit6e85d1b5ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon May 13 16:52:08 2013 +0200 Bump release date commit3a0cc43ac8
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 commitbe0b9dda31
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. commit78206f06ec
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. commit2ee9da9e22
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. commit6eba05613a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 9 18:39:04 2013 +0200 Communicate build timeouts to Hydra commit7a03cbf09d
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 commit69b8f9980f
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. commite93acab852
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 8 14:41:35 2013 +0200 Build Fedora 18 RPMs commit806970349b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 7 15:46:25 2013 +0200 Update release date commitea019e9a26
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. commitcc837e2458
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 7 11:21:30 2013 +0200 Build Debian 7.0 debs commit28034bfa49
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 3 14:14:46 2013 +0200 Build Ubuntu 13.04 debs commit93f4fa8a15
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 3 11:28:32 2013 +0200 Update release notes commitc51b6a893c
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 commite6c44d166a
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. commit7391533ea5
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 commit5cc2fc46ec
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 commit3628b61ce0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 1 13:31:33 2013 +0200 Nix 1.5.2 release notes commit470553bd05
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 commit4ddd077bfa
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 commit0374d94437
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 26 12:07:25 2013 +0200 addAdditionalRoots(): Check each path only once commit00f698eb8b
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. commit938092a213
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 26 11:44:19 2013 +0200 find-runtime-roots.pl: Use Nix::Utils::readFile commit772b70952f
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"). commitf9974f856e
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 commit6955d41f2b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 23 17:16:01 2013 +0200 nix-build: Respect --timeout commit934cf2d1f4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 23 16:59:06 2013 +0200 Nix daemon: respect build timeout from the client commit08d96ffad0
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. commita9b4e26b5c
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 commitc642441beb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 23 12:43:28 2013 +0200 Test NAR info caching commit05420e7883
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. commit258897c265
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Apr 4 11:16:26 2013 +0200 Complain if /homeless-shelter exists commit239841787b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 25 21:59:11 2013 +0100 Fix evaluation of the VM tests commitcc63db1dd5
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. commit2c9cf50746
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> commitc3fc60d936
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 18 21:49:42 2013 +0100 Fix evaluation commitf72ed36025
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Mar 15 14:21:05 2013 +0100 Bump version number commit78d777ca15
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Mar 15 13:18:49 2013 +0100 Remove the "system" jobset input commita68ebf8e37
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Mar 14 18:33:15 2013 +0100 Require Bison 2.6 commit804709706c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Mar 14 18:31:08 2013 +0100 Fix building against Bison 2.6 commitc56bc3d81c
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. commit4b07476848
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Mar 8 01:27:04 2013 +0100 Prevent config.h from being clobbered commitbdd4646338
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 commit28bba8c44f
. commite73d9e9488
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. commit28bba8c44f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Mar 7 23:55:55 2013 +0100 Prevent config.h from being clobbered commit8057a192e3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 28 19:55:09 2013 +0100 Handle systems without lutimes() or lchown() commit9fa1bee575
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. commitf45c731cd7
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... commit88936411bc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Feb 28 13:03:53 2013 +0100 Bump version number commit0111ba98ea
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 commitb008674e46
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. commit826dc0d07d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 26 14:32:48 2013 +0100 Remove outdated file commit97c6009c47
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 26 14:32:14 2013 +0100 Bump version number commitca9c02dff1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 26 13:23:09 2013 +0100 Update release notes commit5526a282b5
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. commitdadf7a5b46
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. commit3e067ac11c
Author: Ludovic Courtès <ludo@gnu.org> Date: Mon Feb 18 23:05:40 2013 +0100 Add `Settings::nixDaemonSocketFile'. commit5ea138dc4b
Author: Ludovic Courtès <ludo@gnu.org> Date: Mon Feb 18 23:05:39 2013 +0100 Enable chroot support on old glibc versions. commit79a3ba7fa3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 8 20:02:58 2013 +0100 Document ‘hashString’ commit5f18cd2e84
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. commit52172607cf
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Feb 8 19:36:23 2013 +0100 Rename "hash" to "hashString" and handle SHA-1 commit01a5ea9914
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> commit8add116acd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Feb 5 16:02:57 2013 +0100 Nix::Store::derivationFromPath: Return derivation outputs commitd6143801fd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 30 18:49:19 2013 +0100 Support the colonies commit9842077cb2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 24 13:00:44 2013 +0100 Improve -I description Issue #88. commit5e9c3da412
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. commit99ed558a93
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jan 22 22:07:25 2013 +0100 Correctly handle missing logs commit1943b60ad8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jan 21 22:36:23 2013 +0100 Fix the VM tests commit96fbbbde55
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 commitd6fd6d8aff
Author: Shea Levy <shea@shealevy.com> Date: Fri Jan 18 19:59:23 2013 -0500 corepkgs/fetchurl: Enable making the downloaded file executable commit536c85ea49
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. commit66fa9e6a4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jan 7 14:48:44 2013 +0100 Bump version number to 1.4 commite42df686f3
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 commit92926be2fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jan 4 15:17:19 2013 +0100 Fix "0 store paths deleted" message commitb424d29d1b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 3 13:29:17 2013 +0100 Open the database after removing immutable bits commit3007f57377
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jan 3 13:00:46 2013 +0100 Remove tabs commitdef5160b61
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. commit0a4e90395c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 2 23:52:15 2013 +0100 Urgggh http://hydra.nixos.org/build/3661100 commitf12492c66d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 2 22:36:08 2013 +0100 Manual: Fix "nix-store --export" example commitaebea2e489
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 commit649bb60617
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 2 22:12:19 2013 +0100 Use sysconfdir=/etc commit42d6f640c1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jan 2 12:59:49 2013 +0100 Update release notes commit299141ecbd
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. commit1b3a78a459
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. commit82248abd8f
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. commit12f9129f60
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. commitb7629778ef
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. commit68dcbb187e
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. commit5ee7d8fbab
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Dec 21 00:18:59 2012 +0100 Typo fix commit2754a07ead
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. commit06f62defe6
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. commit9c29a2ed35
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 commite775d4d84f
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). commitfbf0b2fa45
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. commit228ea7c2f9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 18 20:43:47 2012 +0100 Revert brain fart This reverts commitcc511fd65b
. commitcc511fd65b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 18 18:50:05 2012 +0100 Check for potential infinite select() loops when building commita9045c727f
Author: Stuart Pernsteiner <stuart@pernsteiner.org> Date: Wed Dec 12 21:13:26 2012 -0800 fix use-after-free bug in mkString(Value&, Symbol&) commit9fa12fc201
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. commit3ad53e43c8
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. commit772778c0ec
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. commite087bfef5f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Dec 7 13:14:04 2012 +0100 Bump version number commita6ce6d9e7c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Dec 6 16:55:57 2012 +0100 Fix manual generation Grmbl. commit8cc19ed089
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 commit52edef3495
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 commit8d100dbef1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 12:18:07 2012 +0100 Add a dependency on xz-utils commit5c487761c4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 12:17:12 2012 +0100 Add a dependency on xz commit3631dc6b2f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 12:15:06 2012 +0100 Typo commitaa61bc7472
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 commit0f96966a44
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 11:03:06 2012 +0100 Add release date commit566afa1e9c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 11:02:44 2012 +0100 Support xz compression of nixexprs.tar in channels commit444b03a36f
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. commitd5a01d0f9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Dec 5 09:54:41 2012 +0100 Build Debs for Ubuntu 12.10 commita7b4aaa2c3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 4 17:41:51 2012 +0100 Updated release notes commit3100b29fc5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 4 17:22:20 2012 +0100 Tiny optimisation in the filter primop commit094a08f839
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 4 17:15:32 2012 +0100 Document new primops commit4387d19359
Author: Florian Friesdorf <flo@chaoflow.net> Date: Tue Dec 4 16:32:38 2012 +0100 nix-channel --update needs bzip2 commit24d5875514
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 4 16:03:56 2012 +0100 Document multiple output support commitb215b23e9e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Dec 4 14:47:50 2012 +0100 Test priorities commit56d29dcd62
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. commit2d5e8e267b
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 ...’ commit5ad89398d1
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. commit21c2d8d102
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 3 21:02:06 2012 +0100 Test the ‘--prebuilt-only’ flag commitd62fc71b85
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 3 21:01:41 2012 +0100 Fix the ‘--prebuilt-only’ flag commit4bb4d5479a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Dec 3 18:19:49 2012 +0100 Whitespace commit8eed07cda4
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> commit6c98e6a5de
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. commit8b8ee53bc7
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". commit5943f41b8b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 26 18:25:12 2012 +0100 queryMissing(): Handle partially valid derivations commit08964d7328
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 26 17:57:14 2012 +0100 Undo accidental debug change commit69c88f5028
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 26 17:46:45 2012 +0100 Fix the multiple-outputs test commit408a7bfac1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Nov 26 17:39:09 2012 +0100 nix-instantiate: Fix read-only evaluation commit8d8d47abd2
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. commit46a369ad95
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. commita3d6585c5a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 23 16:20:16 2012 +0100 nix-copy-closure: Add flag ‘--use-substitutes’ commit9de6bc5d05
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. commitbf3725da2a
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 commit17dc306aa3
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 commit2980d1fba9
. It causes a regression in NixOS evaluation: string `/nix/store/ya3s5gmj3b28170fpbjhgsk8wzymkpa1-pommed-1.39/etc/pommed.conf' cannot refer to other paths commitf794465ca8
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. commit8541d27fce
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... commit3acc8adcad
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Nov 15 13:55:02 2012 +0100 Add some debug code commitea89df2b76
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. commit48c19c4633
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 9 17:59:41 2012 +0100 Remove definition of non-existant function commit198dbe7fa1
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. commit10dcee99ed
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 9 16:42:10 2012 +0100 Remove the quickExit function commit4c9e3fa641
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 commit182e15b661
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 commit88164325fa
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. commitf581ce0b0c
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. commit91ef4d9a81
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. commita9a8baaccb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 9 13:33:35 2012 +0100 Use a shorter Nixpkgs channel URL commitc31ebc50aa
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Nov 9 13:33:24 2012 +0100 Update release notes commite28b683324
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 commitbbc107ef1e
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. commit3a95e1a17c
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 commit82951e5582
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Nov 6 13:53:53 2012 +0100 nix-push: Handle pushing a symlink commit620e92e880
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. commitdf27db712d
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. commitd0fc615af6
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 commit4c34d384e6
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. commita28b4445a4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Oct 23 18:04:00 2012 +0200 nix-prefetch-url: Improve option handling commit2980d1fba9
Author: Shea Levy <shea@shealevy.com> Date: Tue Aug 28 22:12:05 2012 -0400 prim_toPath: Actually make the string a path commitdde6486eab
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 commitc8daeba303
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. commit167e36a5c3
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. commitac238d619c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Oct 12 10:21:04 2012 -0400 Typo Reported by Shea. commit600daf972f
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 commite345182055
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 11 14:03:06 2012 -0400 Shorten the names of temporary build directories commitecedd9c50c
Author: Mats Erik Andersson <gnu@gisladisker.se> Date: Wed Oct 10 11:10:28 2012 +0200 Out-of-tree building of perl modules. commit70f75be199
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. commitad328bea15
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. commitbfaa5635de
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 commit904f50412c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Oct 4 10:20:23 2012 -0400 nix-store --verify: Continue on errors commit90b8a34f82
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 commitd1de836938
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 21:01:03 2012 -0400 Fix the tarball build commitf766e146f4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 18:01:35 2012 -0400 Fix the test commite35d6f78dc
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 17:57:20 2012 -0400 Rename nix-worker to nix-daemon commit522ecab9b8
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. commit7586095504
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 16:54:40 2012 -0400 Remove bin2c commita562d544d8
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). commit9c41c66c5b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 15:53:25 2012 -0400 Document ‘--repair’ commit2bbc4a214e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 15:35:42 2012 -0400 nix-env: Support ‘--repair’ flag commit2e90a5a2a7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Oct 3 15:14:02 2012 -0400 nix-build: Support ‘--repair’ flag commit0a7084567f
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. commita807edfae8
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 commita3f205b249
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. commit2001895f3d
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. commitcf46f19444
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 commit8e3a7bd712
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. commit9958bd6992
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. commite666e1156f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Sep 28 21:39:30 2012 -0400 Handle octal escapes in /proc/self/mountinfo commitf406288cc7
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 commit95c74eae26
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. commitf46612be96
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 25 16:30:37 2012 -0400 Add "on Linux" qualifier commitd534f137f0
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 commit0f358ca5b6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 25 16:11:58 2012 -0400 Document that Nix requires GNU Make Fixes #44. commitcb6651e878
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 25 16:04:50 2012 -0400 Update release notes commite464b0247d
Merge:28bf183
b9c2b4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 25 15:38:00 2012 -0400 Merge branch 'readonly-store' commit28bf183d2d
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. commitc1f91570b3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Sep 21 15:02:33 2012 -0400 Style fix commit20582e9ae3
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 commitb9c2b4d5b4
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. commitb9124a5c33
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. commit76e88871b2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Sep 19 15:43:23 2012 -0400 Templatise tokenizeString() commit00092b2d35
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. commitb674665765
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 commit09eb230900
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Sep 14 09:39:48 2012 -0400 Fix test http://hydra.nixos.org/build/3031382 commit983220bcd4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 13 18:09:20 2012 -0400 nix-collect-garbage: Support --dry-run commit9fd9dedf12
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. commit1bda006b74
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 13 17:58:14 2012 -0400 Add a test for nix-profile.sh commitaac14222f5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 13 17:48:19 2012 -0400 nix-profile.sh: Revert to single-user version Commit6a214f3e06
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. commit54fe8e0773
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 13 17:23:12 2012 -0400 Remove double Fedora release suffix commit47ae3ce2ca
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. commite03a8a1c92
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Sep 13 14:58:56 2012 -0400 Doh commit8fbe96cb31
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. commite6e495649c
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 commit2923b55f9d
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 commit31114ec3a5
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 commitc845c0ccad
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 commitb14717ab90
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 commit6c4ac29917
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. commite56f71edaf
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 commit4fca02077c
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. commit479e9172b3
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 (post15e1b2c223
), otherwise the --option flag will just be ignored. Fixes #50. commit4ba47205c6
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 commit6762424e24
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 commitd4c3b6327f
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 commit1f7901ec3b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 11 19:10:11 2012 -0400 Test hash rewriting commit5e2ffd0b8a
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. commit8cf672091e
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. commit9dbda2b3fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Sep 11 17:05:35 2012 -0400 Remove debug line commita2785b7391
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. commit295027f533
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; see705868a8a9
. In this case, GCC would compute a different address for ‘settings.useSubstitutes’ in misc.cc because of the off_t in ‘settings’. Reverts3854fc9b42
. http://hydra.nixos.org/build/3016700 commitd3004c78d9
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 commit360056e174
Author: Shea Levy <shea@shealevy.com> Date: Sun Aug 26 14:48:47 2012 -0400 Document importing from a directory in the import documentation commitf7b650d234
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Aug 28 11:47:26 2012 -0400 Make "nix-instantiate -" interruptible commit15e1b2c223
Merge:a9e6752
9e2fc69
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 14:34:51 2012 -0400 Merge branch 'no-manifests' commit9e2fc6951c
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 commitcfd968dd94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 14:17:13 2012 -0400 Fix stupid type error in calling std::max commitf3077fd88d
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 commitcc8641815b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 11:47:49 2012 -0400 Add WWW::Curl to the RPM dependencies commit2688fb73f1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 11:47:04 2012 -0400 Add perl-WWW-Curl to the RPM image commit8207359227
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 11:28:48 2012 -0400 Whitespace commit8b8fe6139e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 11:28:34 2012 -0400 Drop dependency on List::MoreUtils commitbabe54bf97
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 27 11:11:30 2012 -0400 Add missing file commite94806d030
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 commita9e6752bbd
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. commit4aa1e5c554
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. commitd950cfe70b
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 commit56e30e161c
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. commitf0eab0636b
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 commit862c4c5ec5
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’ commit767101824a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Aug 13 15:10:29 2012 -0400 Avoid concatenating lists of one string commite5c589d271
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. commit3e89ef597c
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. commit9c2d63084b
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 commit198d0338be
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 commitb9e5b908ed
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 commit4ccd48ce24
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 commit62f72eb9e1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Aug 12 23:41:48 2012 -0400 Add some more evaluations stats commite82767910c
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' ... commit325d1cfebf
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 commitd025142f52
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". commitb6c989b801
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 commit108e14bb18
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 commit6763084ae5
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 22:43:03 2012 -0400 Count bytes freed deleting unused links commit01d56c1eec
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 22:34:46 2012 -0400 Drop the block count in the garbage collector commit967d066d8e
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). commit1df702d347
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 commit9c2decaa19
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 commit5170c5691a
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. commit79bba3782c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 17:21:47 2012 -0400 Doh commitca94b38371
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. commit46f852cda0
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 commitafa7e01878
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 16:34:17 2012 -0400 Inline unpack-channel.sh commit234ce610e0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 16:09:47 2012 -0400 Doh commit7b10562370
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 16:06:49 2012 -0400 Make ‘nix-store --optimise’ interruptible commit8a25d787d7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Aug 1 11:33:15 2012 -0400 download-from-binary-cache: Remove duplicate URLs commitc770a2422a
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 commit4d1b64f118
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. commiteb7849e3a2
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 commit90d9c58d4d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 31 18:19:44 2012 -0400 Pass all --option flags to the daemon commit89a8207029
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) commit157170059d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 22:29:42 2012 -0400 Manual: Remove reference to non-existent -I option commit97421eb5ec
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. commitd50d7a2874
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 17:13:25 2012 -0400 Whitespace commit9cd63d2244
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 17:09:36 2012 -0400 Do some validation of URLs commitf3eb29c653
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 17:09:13 2012 -0400 Fix the test commit9de6d10d11
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. commitab42bf1dab
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). commitd059bf48e4
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. commitf9613da180
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 15:43:37 2012 -0400 Remove unused variables commit6183cf2f19
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 30 15:42:18 2012 -0400 Fix whitespace commitf15083c10a
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. commit66a3ac6a56
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. commit6ecf4f13f6
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 commite6ab52cdd1
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 commit73acb8b836
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. commitfbf59d95f6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 27 10:56:33 2012 -0400 Remove more tabs commit3a8f841612
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. commitb4ea83249b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jul 27 09:59:18 2012 -0400 Remove trailing whitespace / tabs commit7f8e805c8e
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 commit67c6f3eded
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! commit50395b71a9
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 26 17:36:07 2012 -0400 Fix the substituter tests commite3ce54ccee
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 26 17:13:38 2012 -0400 nix-push: Remove the upload feature commit609586a16d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 26 17:13:14 2012 -0400 Add a test for the binary cache substituter commit7861260a5f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 26 17:12:42 2012 -0400 Clear NIX_STORE when running the tests commit7892ad15ab
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. commitdbce685e91
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu Jul 26 17:10:28 2012 -0400 Add some .gitignore entries commit8c79100839
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 commit3a4623afbb
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. commit2605f4f4e6
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 Commit6a214f3e06
reused the NixOS environment initialisation for nix-profile.sh, but this is inappropriate on systems that don't have multi-user support enabled. commit477b0fbeca
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 25 16:56:56 2012 -0400 Subscribe to the Nixpkgs rather than NixOS channel commitf5954e2d94
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. commit1ef2d5765b
Author: Shea Levy <shea@shealevy.com> Date: Mon Jul 23 13:45:51 2012 -0400 Turn tests back on commitb1112bbef1
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 commit566a30c007
Author: Shea Levy <shea@shealevy.com> Date: Mon Jul 23 12:51:04 2012 -0400 Disable tests temporarily commite98c029717
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. commitfd63c8bfcd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 23 18:06:37 2012 -0400 Unlink the right file commit0f65793f94
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 23 17:40:23 2012 -0400 Add a test for Nix store optimisation commit680ab6f83d
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. commit6193105710
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. commit564fb7d9fa
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. commited59bf7a18
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 commit6852289c46
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. commit1832ab71db
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 18 17:17:23 2012 -0400 Bump version commit98193bb440
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 18 16:50:56 2012 -0400 Remove RPM builds that don't evaluate commitb7fd2c2822
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 commit58337e0e61
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 18 11:51:27 2012 -0400 Set release date commitaa115e22df
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 18 11:01:17 2012 -0400 download-from-binary-cache: Print correct URL commitfe241ece29
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 commitccc52adfb2
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. commit220818f758
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. commita6f348599c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 17 16:19:40 2012 -0400 Print some debug output commit3a9fdf2747
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. commit1217204c81
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 17 14:07:52 2012 -0400 Remove dead code commit51d71ad3d7
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 17 11:49:47 2012 -0400 Manual: Don't claim we support Cygwin commit6c01fb4d68
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 17 10:06:20 2012 -0400 Update Nix 1.1 release notes commit53b24f3518
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 17 09:40:12 2012 -0400 Allow disabling log compression commita7a43adb79
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. commit04559a0d45
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 commite4d6bcb6cd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 18:52:23 2012 -0400 Update release notes commitf2bdc87595
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 18:52:09 2012 -0400 Update the other substituters commit15c15da482
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 18:07:41 2012 -0400 Add some missing --version switches commitd287b62b64
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 18:05:30 2012 -0400 Set the User-Agent header to "Nix/<version>" commitb74d92755d
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. commit09a6321aeb
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. commit58ef4d9a95
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). commit667d5f1936
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 10:49:04 2012 -0400 Rename queryValidPaths() to queryAllValidPaths() commiteb3036da87
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 10:43:24 2012 -0400 Implement querySubstitutablePathInfos() in the daemon Also removed querySubstitutablePathInfo(). commit6586414bc7
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 commit5ee8944155
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jul 11 10:13:16 2012 -0400 Cleanup commiteae802459d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 15:49:20 2012 -0400 Pass --insecure to curl so that https works commit2dd3117c27
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 15:48:55 2012 -0400 Inline fetchurl.sh commit51f9f9924b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 15:41:43 2012 -0400 Add a test for the fetchurl function commit035aa11403
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 11:14:57 2012 -0400 Remove obsolete comment commita2865f6b3d
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 11:11:02 2012 -0400 corepkgs/fetchurl: Build locally and outside of the chroot commit53f52c2111
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 11:04:11 2012 -0400 corepkgs/fetchurl: the 'system' argument can be optional commit543bf742c9
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:55:35 2012 -0400 corepkgs: distribute fetchurl files commitf863673a90
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 commita994eb92a4
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:32:12 2012 -0400 corepkgs/fetchurl.sh: Use config.nix's curl commit9d94a28bed
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:29:18 2012 -0400 The fetchurl builder is now fetchurl.sh commitfd2630e1f7
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:26:50 2012 -0400 Remove old fetchurl makefile commit6450f5699f
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:25:58 2012 -0400 Move fetchurl files out of their subdirectory commit40c01ec467
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:22:26 2012 -0400 corepkgs/config.nix.in: We'll need curl commitc4df747267
Author: Shea Levy <shea@shealevy.com> Date: Sun Jul 8 10:19:17 2012 -0400 Resurrect old corepkgs fetchurl commit27f0c34390
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 13:16:09 2012 -0400 Really fix RPM builds commitae72be1b8b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 13:11:37 2012 -0400 Add WWW::Curl as a dependency commita560124cdf
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 commit087dee6e1b
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. commit5755a5c354
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 11:33:38 2012 -0400 Install a nix.conf manpage commit099125435f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 9 10:57:28 2012 -0400 download-from-binary-cache: add nix.conf options commit98a423b75a
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() commit425cc612ad
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. commit400e556b34
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Jul 8 18:39:07 2012 -0400 Cleanup commit11800e6198
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. commitcd94665f38
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. commitae60643c15
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. commit89380c03e9
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 commit2a8e5c8b11
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Jul 3 17:47:01 2012 -0400 download-from-binary-cache: strip trailing / from URLs commitd694c599e2
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 commit8319b1ab9f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 2 18:53:04 2012 -0400 download-from-binary-cache: Verify NAR hashes commitcf49472d60
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Jul 2 18:05:57 2012 -0400 nix-push: Always generate base-32 hashes commit6ec7460af1
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. commit6b1e671ac6
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Jul 1 21:57:25 2012 -0400 Fix xz compression commit440adfbdd1
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 commitf4190c38ba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Jul 1 18:46:38 2012 -0400 Allow both bzip2 and xz compression commit000132cbd1
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 commit37f7098464
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jun 29 18:28:52 2012 -0400 First attempt at the manifest-less substituter commit91b8814f0d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Jun 29 17:16:00 2012 -0400 Doh commit4911a10a4e
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. commit49cd7387ad
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. commit1aba0bf0fa
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. commit42f5a2fc29
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. commit3ee208516f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Jun 27 09:52:06 2012 -0400 Check the return code of the clone() call commit1db38ae81b
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(). commit5489086456
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. commit8da6772ed4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Jun 23 14:59:13 2012 -0400 Update release notes commit723a68c826
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Jun 23 00:57:14 2012 -0400 Improve error message commit7ffa523fd1
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. commitdf716c98d2
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. commit2f3f413e91
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. commit02fb6323e0
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 31 09:50:58 2012 -0400 Add Emacs to the disk image commit221626e715
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 commita7ed1f67ee
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 commit8922346305
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 commit6a214f3e06
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 commitd0308073c3
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 commite545a7f9a8
Author: Michel Alexandre Salim <michel@sylvestre.me> Date: Thu May 17 11:56:29 2012 +0800 - replace %define with %global commitf5398d374b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 30 10:12:29 2012 -0400 Compress build logs on the fly using bzip2 commit881beb170d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 30 00:00:02 2012 -0400 "nix-store -l": support compressed logs commit4bc4da331a
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. commit2c26985835
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. commit8058dab26e
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 commit0301525e6c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 22 19:40:40 2012 -0400 Fix owner/group in tar invocation commit6814b1dfa1
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). commit591aab7e21
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. commite071f87dc5
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". commitcac9eb39fe
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat May 12 00:07:08 2012 -0400 Bump version number commitdfc6a43b72
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 11 23:30:47 2012 -0400 Fix the install check commit587b408210
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 11 17:40:58 2012 -0400 Set release date commit8a08813d6c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 11 17:39:06 2012 -0400 Manual updates commit2b00e6990c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri May 11 16:21:21 2012 -0400 CSS tweaks commit58d1de08d9
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 commit37fa47908b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 10 22:12:20 2012 -0400 Build Ubuntu 12.04 packages commit4d383f57f4
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 10 19:29:36 2012 -0400 Document "nix-build --run-env" commit4f7bab7db1
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. commit6a7b24a3f2
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 10 18:09:45 2012 -0400 Document "nix-store --add" commitcda1fd8ec8
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Thu May 10 16:56:36 2012 -0400 Remove an obsolete hack commit663c06e8cd
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. commitcb1248d208
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 9 19:06:39 2012 -0400 Document some nix-store subcommands commit7a213ffc69
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 9 19:06:13 2012 -0400 Document $NIX_PATH / -I commita58efdb69b
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed May 9 19:05:30 2012 -0400 Update the release notes commit0c4c8f7a9d
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 8 15:43:54 2012 -0400 Remove obsolete files (moved to release tree) commitafa7b8a479
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 commit147f10157f
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon May 7 17:23:26 2012 -0400 Now *really* prevent accumulation of old manifests commit464089365e
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 commit02f1363e19
. commitc6acb219f9
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. commit56c82f3d9d
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 commit373e875ac2
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 commitd03a295192
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. commite060c99447
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. commite19fb7ebed
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 1 16:31:56 2012 -0400 Do "make installcheck" for RPM builds commite145ac30e3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue May 1 15:48:17 2012 -0400 Do "make installcheck" for Debian builds commitdb5b86ef13
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. commit59a26360c7
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. commit82ae0e688c
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Apr 30 16:49:00 2012 -0400 Update the documentation of build-remote.pl commit46cdc6ad51
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. commitc722193a91
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 commit6de5d53416
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 commit6387830c3b
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 commit259c6d3fbb
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Apr 18 13:40:18 2012 +0200 Fix URL set by nix-channel commit9cd3ff1059
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 commit8745fade03
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 commit8cf1719e3e
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Apr 16 19:52:31 2012 +0200 Hack to prevent accumulation of old manifests commit1132dd27ea
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 commit154aa7f71a
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Apr 15 00:42:16 2012 +0200 Set a few more close-on-exec flags commit31e34fcf93
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 in35355fc1fc
. commit0b5107c016
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 commit1d0bafb74d
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. commitca3d9f8b31
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Apr 14 19:52:58 2012 +0200 Urgh, modified the wrong file... commitef902274fd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sat Apr 14 18:48:11 2012 +0200 Remove unnecessary "system" argument commite855c7e2c9
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). commit969a14599d
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 commit34a85c5405
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 commit055e803851
Author: Shea Levy <shea@shealevy.com> Date: Thu Mar 29 18:20:31 2012 +0200 Add the '--show-progress' flag to nix-copy-closure commit00c98a6bef
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 13 14:28:26 2012 +0200 Use Bison 2.5 commit209927bb27
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 10 16:40:51 2012 +0200 Unconfuse Rob commit1fb30e6d50
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Apr 10 13:52:37 2012 +0200 Handle the case where $SHELL is not set commit8f6146a7bc
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 commit242a99c95a
Author: Shea Levy <shea@shealevy.com> Date: Sun Apr 8 23:59:02 2012 -0400 Nix is on github now commit533250a4a3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 6 22:54:15 2012 +0200 Fix building from the tarball commit831c7aa410
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 6 22:03:19 2012 +0200 Documentation fix commit5863987bba
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 6 21:56:20 2012 +0200 Include environment variables in the manpages commit998b977ede
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 commitd49ef039dd
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Fri Apr 6 21:43:56 2012 +0200 Update affiliation commit5a6d50998d
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. commitf2467eb6a0
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. commit3b859ead37
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 commit34ea91b259
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Wed Apr 4 16:22:32 2012 +0200 Include --keep-going in --help commit0837348049
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. commitb8fb0ce563
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Tue Mar 27 11:59:36 2012 +0200 Update "nix-build --help" commit5144abe5b6
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. commit3e94ffffd6
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 commit446b827bae
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 26 23:18:36 2012 +0200 Mac OS X fix commit480dda0e42
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. commit117670be57
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. commit8be1979f1a
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. commit85799bf89e
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. commit25de80e2b6
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. commit19d9762ad5
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. commitcb79e91ec3
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 19 17:05:42 2012 +0100 Fix the coverage build commit457dd55962
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 19 15:11:22 2012 +0100 Fix the Deb builds commit4b83483142
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Mon Mar 19 14:30:59 2012 +0100 Fix the RPM commit7f38087f35
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 commitea402a255f
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. commit4b23900ff1
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 commitb006a31d52
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. commit2e0322efd1
Author: Eelco Dolstra <eelco.dolstra@logicblox.com> Date: Sun Mar 18 22:10:59 2012 +0100 Clean up when building from a working tree commitbd50c01972
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. commitb461721f17
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 12 21:41:45 2012 +0100 Fix tests commit005d1e4ccb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 6 20:03:20 2012 +0100 Update bzip2 dependency commit605b16cd7b
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... commitd645633643
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. commit35355fc1fc
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 commit7b22bec252
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 5 20:28:09 2012 +0100 Don't leak a file descriptor in commonChildInit() commit1d487dc6a6
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. commit2b4964f319
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 5 18:13:44 2012 +0100 Restore progress indication during nix-copy-closure commit56042a120a
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. commit8afd28a922
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. commit1c94524458
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 :-) commit6fe13e6aba
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. commitbd013b6f98
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. commit5e57047d87
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. commit58ac7a17a4
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 commite9fc91df45
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) commitd5a5a83ad4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 9 18:27:45 2012 +0100 Use data() instead of c_str() where appropriate commitec2827f5fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 19:25:43 2012 +0100 Update .gitignore commit4055a3b19c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 13:22:08 2012 +0100 Remove empty ChangeLog file commitfb95455c02
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 12:31:14 2012 +0100 Set the versionSuffix to include the Git shortrev commit67444f5e54
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). commitf491ae97d4
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). commit2bda12ef3b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Feb 4 13:27:11 2012 +0000 * Print elapsed evaluation time. commitce86a9a0ae
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. commitbaa0501cc1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 26 13:13:00 2012 +0000 * Fix importing a derivation. This gave a segfault. commit4c9fdd2cd6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 26 13:04:50 2012 +0000 * Add a test for importing derivations. commit330df4b4db
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. commit18047d4625
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. commit126c7317bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 19 22:10:24 2012 +0000 * Add a test case for comparing derivations. commitddd0ce534a
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. commit02f1363e19
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. commit4e624849b6
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. commit2a3f4110c5
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. commit7ae763e16b
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. commit6245f0d529
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. commitc5d9ccd810
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Jan 11 16:44:42 2012 +0000 perl: Build libNixStore.la with `-module'. commitf86fca9b70
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. commit9fe24c5a0d
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. commitd4e6b9f2d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 5 21:07:12 2012 +0000 * Doh! commita7366a764a
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. commitb52966e821
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 4 21:47:48 2012 +0000 * Remove dead code. commit35f2a6ba82
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. commitadaf64a99b
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. commit9936da6b54
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 4 12:45:53 2012 +0000 * Check whether the outputName attribute works. commit9d43a02382
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 4 12:45:40 2012 +0000 * Let --disable-gc work. commita0477a458f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 4 12:00:39 2012 +0000 * currentOutput -> outputName. "current" implies some temporal aspect. commitb79b85ad76
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. commit83647f4ef1
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. commit71f3c46cf6
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. commit921111d197
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. commit6c31232e14
Merge:502d940
63227d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 3 12:59:31 2012 +0000 * Sync with the trunk. commit502d94048a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 3 12:59:00 2012 +0000 * Ignore missing manifest symlinks. commit63227d434c
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. commit9b7df1ef00
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 3 09:19:40 2012 +0000 * Forgot to add. commit39d45a6b09
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. commitdadbb51d96
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 3 00:47:27 2012 +0000 * Use Nix::Config. commit48cea0d01e
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. commit93e71e6ab6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 17:39:03 2011 +0000 * Follow our own coding conventions. commitf2d65c9c80
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 17:31:58 2011 +0000 * Remove a redundant dot (Nicolas Pierron). commit93b56acb2d
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). commita71d02440b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 17:13:25 2011 +0000 * Oops. commit6f5e3326ce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 15:02:50 2011 +0000 * Move topoSortPaths() out of gc.cc. commitb1004f40f7
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. commited11b17b2e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 13:43:29 2011 +0000 * Fix doc error. commit254b3399ba
Merge:5679041
8c42a8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 30 13:08:14 2011 +0000 * Sync with the trunk. commit8c42a8c8ff
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. commit524fa8a4f1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 22 16:27:03 2011 +0000 * Oops. commitb33da599c5
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. commit58d974336c
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). commit66c99b0cf5
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. commit2aac7cd021
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. commit4d728bc3e6
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. commit69d6f0936a
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. commit5679041132
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. commitf8e54b7874
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 commitb4cee3f816
Author: Shea Levy <shea@shealevy.com> Date: Wed Dec 21 17:31:34 2011 +0000 Revert previous commit It doesn't detect indirect references commitf3c88f297d
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. commitb19a0f63db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 21 15:33:30 2011 +0000 * Simplify the context handling logic. commit4be5a2c096
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. commit179409b911
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. commit3877619888
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 21 11:47:52 2011 +0000 * Add some accidentally committed files. commitedd9359beb
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. commit1f3b0ede7d
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>". commit46e42c92c1
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. commitb5363810bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 20 16:37:01 2011 +0000 * Fix the build. commit194d21f9f6
Merge:3c3107d
273b288
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 16 23:33:01 2011 +0000 * Sync with the trunk. commit273b288a7e
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. commit8d3dfa2c17
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. commite0bd307802
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. commit78598d06f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 16 15:45:42 2011 +0000 * Clean up exception handling. commit5a1b9ed0aa
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). commita67b8ae224
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 14:04:35 2011 +0000 * Typo. commita3e0656cbb
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). commit3a48282b06
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. commit893cac1402
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). commit23bf700196
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. commitc8c0380744
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 5 21:04:20 2011 +0000 * Remove unnecessary quotes. showPaths() already adds quotes. commit000160f5b9
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. commit3964d95abf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 2 12:09:50 2011 +0000 * nix-prefetch-url: rewritten in Perl. commit92d6a5ed73
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 2 12:09:24 2011 +0000 * Add some more functions to the Perl bindings. commit49f59dceca
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. commitb12b21825c
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 commit23c38a04cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 1 13:51:05 2011 +0000 * Slight improvement. commit24f863d86b
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. commitbe9be4c147
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 commit3c7ec8fc1b
Author: Peter Simons <simons@cryp.to> Date: Thu Dec 1 08:02:37 2011 +0000 doc/manual/nix-env.xml: stripped trailing whitespace commitf35c4351e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 29 22:15:07 2011 +0000 * Don't require a specific Perl version. commit4d0407ba08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 29 13:38:52 2011 +0000 * Fix make check. commit1749a7b0ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 29 13:01:24 2011 +0000 * download-using-manifests: use the Perl bindings. commitb1eb8f4249
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". commit216440b3ff
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.) commit1df120cb05
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 29 10:51:22 2011 +0000 * Get rid of the shell in ssh calls. commit784083176a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 25 17:04:26 2011 +0000 * Fix race. commitf3bc98b001
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 23 15:39:54 2011 +0000 commit10e2b2b79e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 23 15:39:02 2011 +0000 * Document the --include-outputs option. commitd5ac78e0d6
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. commit5bbd693cae
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.) commitab20af3e6f
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. commit993fa94fb4
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. commit4e1ea17052
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. commit4de3e2a0db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 21 13:22:34 2011 +0000 * Doh. commit23e933b3b3
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. commita6abade8e8
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. commit964399c079
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 20 19:23:50 2011 +0000 * "sed" on FreeBSD doesn't know the "+" operator. commitb92f76374f
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". commit42164d6de4
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. commit45ec69cbdf
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. commitf8e609c341
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). commitd7d7910ba4
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. commit63ee5e4d2a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 16 11:56:19 2011 +0000 * Remove obsolete line. commita5952405d2
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. commitc0b706213d
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. commit3c3107da86
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 commit2ab29be70c
Author: Shea Levy <shea@shealevy.com> Date: Sun Nov 6 07:03:14 2011 +0000 Fix faulty reversion of my changes to unsafeDiscardOutputDependency commitca0d47a70c
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 commit24b65937e1
Author: Shea Levy <shea@shealevy.com> Date: Sun Nov 6 06:28:34 2011 +0000 Remove the unused sCurrentOutput symbol commit3522730316
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! commit46876ff203
Author: Shea Levy <shea@shealevy.com> Date: Sun Nov 6 06:28:25 2011 +0000 Fix stupid typo in multiple outputs test commitaf2e53fd48
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 commit981edeab7b
Author: Shea Levy <shea@shealevy.com> Date: Sun Nov 6 06:28:14 2011 +0000 The 'insert output between = signs' approach was not helpful commitf883afa1a1
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 commit2721e9f56f
Merge:bffe35a
a6a3f3a
Author: Shea Levy <shea@shealevy.com> Date: Sun Nov 6 00:13:09 2011 +0000 Merge from trunk commita6a3f3a8c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 5 21:23:01 2011 +0000 * Fix race condition in the test. commitfa69ff5726
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. commitdaed9aeac5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 3 19:22:24 2011 +0000 commitd7b87bebe3
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. commit325b5a8aee
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). commita12095d3be
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. commit00b41e46ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 19 21:34:13 2011 +0000 * Print a consistent message. commitf186a9141e
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’. commit6761757428
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. commitd43a148204
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 11 13:58:47 2011 +0000 * Add a test for nix-copy-closure. commit2492914fbc
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. commitc362e4d718
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 11 11:45:36 2011 +0000 * Move SSH.pm. commit7d314b8c95
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. commit5193db048e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 11 09:32:34 2011 +0000 * Set svn:ignore. commita2a317eb0b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 11 09:31:55 2011 +0000 * Distribute GeneratePatches.pm. commit5090c34ee1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 10 22:40:17 2011 +0000 * Set the executable bit on scripts. commit8af7d766f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 10 21:32:34 2011 +0000 * Refactoring: remove unnecessary variables from the tests. commitcd6d02c366
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 10 21:30:59 2011 +0000 commit6fcdbcac20
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. commit659c427caa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 10 18:58:49 2011 +0000 * Hopefully perl-devel contains the required headers (untested). commit73fe6871c4
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. commitbffe35aced
Author: Shea Levy <shea@shealevy.com> Date: Mon Sep 19 04:36:49 2011 +0000 Update gitignore commit6c38cc9025
Author: Shea Levy <shea@shealevy.com> Date: Mon Sep 19 04:15:26 2011 +0000 Ignore everything created during build commit55481c44d4
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. commite81c09edbf
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 commitbf50d6ad32
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 commitffa038f66d
Author: Shea Levy <shea@shealevy.com> Date: Fri Sep 16 11:30:44 2011 +0000 Add an sCurrentOutput member to EvalState commitf3e410d4bf
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 commit8f28a3ba25
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! commitc172d16b00
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). commit0b34e57eb8
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 commit13114daa3e
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. commit281e3ed059
Author: Ludovic Courtès <ludo@gnu.org> Date: Tue Sep 6 12:11:05 2011 +0000 bootstrap: Simplify & make more robust. commite6cb3d0a0d
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. commit82710f96f7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 6 12:00:11 2011 +0000 * Add some -f flags, never hurts. commit93227ff65c
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. commit5bcdc7e351
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 27 16:59:32 2011 +0000 * Update the cleanup script. commita95ba4cdd9
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). commitda18b11b05
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. commit76e0029f7a
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. commitd374be551d
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. commit2d663b502d
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). commit510033e783
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 6 18:54:29 2011 +0000 * Handle <path> syntax. commit9d091ee99a
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. commit00a724ebc6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 6 18:24:43 2011 +0000 * Remove a debug statement. commit07340b8be7
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). commitc7101dac0b
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 commit1578b2261d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 6 16:18:54 2011 +0000 * Add lang/dir* to the distribution. commit1ecc97b6bd
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. commit54945a2950
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. commitc8606664ab
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. commitb2027f70d9
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. commitd2bfe1b071
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. commit4bdb51e621
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 20 11:50:13 2011 +0000 * Refactoring. commit0243eea4b9
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. commitd329c3ea9d
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. commitd9a5959139
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). commitd5d4dcd4c9
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. commite649f3168b
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). commit0a623a10c7
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 commit2b9e29b1c8
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. commit5580f3817c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 6 10:58:53 2011 +0000 * Test case. commit5637037802
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. commit34f4b91820
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 4 14:44:53 2011 +0000 commit1ea6e06445
Author: Ludovic Courtès <ludo@gnu.org> Date: Thu Jun 30 15:48:40 2011 +0000 doc: Fix typo. commit5c9e9f732d
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. commit9c99aa2620
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 27 09:01:09 2011 +0000 commite4d8148585
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 27 08:04:54 2011 +0000 commit4891b21f34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 3 16:17:24 2011 +0000 * Use SQLite 3.7.6.2. commitd94cb02bfe
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. commit8c69dac8a1
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) commit4ba6afaf48
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'. commit412914d004
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. commit08c8971498
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 12:40:13 2011 +0000 * Lock the database during updates. commitb2c11b9ed0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 10:23:15 2011 +0000 commit3cbf680f5d
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. commit83252b4ca9
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). commitb1882c3ef7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 08:06:14 2011 +0000 * Create $manifestDir if it doesn't exist. commit5591fcc529
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. commit1e7e4f21ba
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. commit0423d0692a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 16 15:55:57 2011 +0000 * Print a better error message. commit48bdbbf070
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). commit802c2651c8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 15:08:33 2011 +0000 commite945b52a31
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. commitc3cee5395b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 14:56:02 2011 +0000 * Build for Ubuntu 10.04. commit8fcaf3e9c6
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) commit538b7caab0
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. commit5a6b039802
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. commitf1462c208b
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. commit1876ab764f
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. commitdfc4117e90
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. commitd159ea1b7e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 14:03:16 2011 +0000 * Urgh, FreeBSD doesn't have a "seq" command. commit3087b3f751
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:48:54 2011 +0000 * Obsolete. commiteb94581d39
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:43:44 2011 +0000 * Remove obsolete directory. commit7bba67c401
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:42:15 2011 +0000 * Remove obsolete file. commitd0eda1f3e9
Merge:3854fc9
5439885
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:41:54 2011 +0000 * Merged the SQLite branch. commit543988572e
Merge:c0340ee
3854fc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:25:53 2011 +0000 * Sync with the trunk. commitc0340eec5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 8 12:30:28 2011 +0000 commit0304fda3cf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Feb 5 16:40:15 2011 +0000 * Propagate the CC setting. commitaeae0beba4
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 commit3854fc9b42
Author: Ludovic Courtès <ludo@gnu.org> Date: Fri Jan 14 13:55:58 2011 +0000 Remove useless <config.h> inclusion from public header. commit9db190eb31
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. commitd6c8b995c5
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. commitc931a7aec5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 17 17:23:15 2010 +0000 * Do a short sleep after SQLITE_BUSY. commitb1eb252172
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. commiteac93d6efe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 17 09:28:51 2010 +0000 * Use the right `make'. commita0be433fec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 15 14:25:54 2010 +0000 * Disable X11 forwarding, it's not needed. commitf1a6b97639
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.) commit3dd02580e3
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. commitd787285af9
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. commit5833243c92
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. commit100becf8d1
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(). commitd7ca6f44eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 13 13:19:46 2010 +0000 * Update some comments. commit542fc69062
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'. commit4d57776813
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 10 11:45:56 2010 +0000 * Use SQLite 3.7.4. commite4720b1a79
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 8 18:19:15 2010 +0000 * Ignore the result of sqlite3_reset(). commit7d0444e244
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. commit8062d3af30
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. commitde79d23f76
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. commit365f3028dd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 5 17:50:29 2010 +0000 * Use CamelCase for the Perl modules. commitf42a505ab7
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. commit77f7a6d591
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. commitd3bba0c2d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 15:26:28 2010 +0000 * Move the patch generator into a module. commit9737a7eba0
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. commitbd48fd97f6
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. commit703e5a2ce2
Merge:d92ccbf
812fae4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 25 14:09:13 2010 +0000 * Sync with the trunk. commit812fae424e
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. commitd92ccbf1ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 18:01:37 2010 +0000 * Test whether sequences of patches work. commit1a211d812f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 17:54:49 2010 +0000 * Oops. commita4f0365b2d
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). commit3d38a49840
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. commitf69626ed3e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 15:45:09 2010 +0000 commita07c68f05e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 15:30:07 2010 +0000 * Finally, a test for the binary patch functionality. commitbf658f016f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 14:39:02 2010 +0000 * Test that download sizes are shown correctly. commit1e24cbaba3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 14:35:14 2010 +0000 * Fix the test. commitbdf089f463
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. commit06699d4219
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 12:57:52 2010 +0000 * Store the NAR size in the manifest. commit5693b8a7e2
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'). commite60c962fb8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 12:40:52 2010 +0000 * Add an operation `nix-store -q --size'. commit1db6259076
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 17 12:08:01 2010 +0000 * Implement RemoteStore::queryPathInfo(). commita3883cbd28
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. commitfb9368b5a0
Merge:64fd298
4aced7f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 16 12:49:47 2010 +0000 * Sync with the trunk. commit4aced7f8d0
Merge:8dadced
26def53
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 29 15:04:39 2010 +0000 * Merge the GC branch. commit26def5392f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 29 14:44:02 2010 +0000 * Document Boehm GC support. commit3d71c8013e
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. commit14fbf85380
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). commit0c4828ea05
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. commite11e6fb1c6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 28 12:29:40 2010 +0000 * Handle out of memory condition. commit8a788e38ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 10:47:02 2010 +0000 * Install config.h. commit11ccd44e95
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Oct 24 21:48:59 2010 +0000 * We need Bison 2.4 now. commit43535499f3
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. commite0b7fb8f27
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. commit2dc6d50941
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). commit0b305c534f
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). commita247d20604
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 23 22:58:24 2010 +0000 * Fix compiling without Boehm. * Fix the stats. commit02934b1200
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. commitb2ba62170c
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. commit8ac06726b9
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. commit3f66cfb96b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 23 18:18:07 2010 +0000 * Remove allocValues(). commit4dee289550
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. commitcf7e645a48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 22 15:15:12 2010 +0000 * Regression test for __overrides. commit41c45a9b31
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. commit64c3325b0b
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. commit76feaf016a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 20 15:48:00 2010 +0000 * Keep some more stats. commite879a0371b
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. commitb0c11cda7e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 20 09:08:39 2010 +0000 * Evaluator garbage collection branch. commit64fd29855a
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. commit8dadcede65
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 commit7119d38287
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. commit705868a8a9
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. commit95f4f2cf61
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. commit36a23e86b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 4 15:50:08 2010 +0000 * "type -P" isn't portable. commitbfa6ee7d91
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. commit71dfe4b90b
Merge:e490741
450837b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 4 11:44:47 2010 +0000 * Sync with the trunk. commit450837bcc8
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. commit4aa9245083
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. commit923736df38
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 14 12:47:19 2010 +0000 * Doh. Remove debug message. commite4907411c2
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.' commitbf0dde9597
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. commite2e168f7c2
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. commit80e722278c
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. commit20acd43c25
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. commit766f708418
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. commitdf50916e46
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 27 12:10:56 2010 +0000 * Oops - "null" was displayed as "true". commite41ecbf730
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 27 11:09:04 2010 +0000 commite437b08250
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. commit1a396f3789
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 25 12:19:30 2010 +0000 * Don't call "cat". commit95deba581d
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. commit1e5f5ea2e9
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. commit034f608e00
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). commitf58f51f380
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. commit955d11aae7
Merge:5c5ab2b
c67eccc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 24 09:56:28 2010 +0000 * Sync with the trunk. commitc67eccc26d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 24 09:21:59 2010 +0000 * nix-build: pass --cores. commit2c8e070e5d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 17 15:39:35 2010 +0000 * Bump the version number. commited133e6e64
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. commit2de17f4edc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 17 10:06:26 2010 +0000 * Update date. commit86f65edf4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 17 07:22:05 2010 +0000 * Document --cores in the manual. commitb75e1043a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 16 13:23:45 2010 +0000 * Typo. commit8ec6594d6d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 16 13:01:31 2010 +0000 * Remove the "tarball" jobset argument. commit12721a3a9a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 16 12:38:32 2010 +0000 * Nix 0.16 release notes. commit5fb824e896
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... commit5c5ab2bc12
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. commit6846ed8b44
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. commit5f9aad44ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 11 15:28:02 2010 +0000 * nix-build: recognise --cores. commitd7875d1648
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 6 07:51:27 2010 +0000 * Use SQLite 3.7.0.1. commit587dc8aa00
Merge:fd9c77d
750be19
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 4 17:48:29 2010 +0000 * Sync with the trunk. commitfd9c77dfc7
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. commit750be19ae8
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. commit7f893b7a43
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. commit315d8fbd75
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. commit6d6200f37a
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. commit7af6a2fd71
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.) commit532d766c27
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. commit7e043d28a6
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 commit60b632b173
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. commita0d29040f7
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. commitaf09fe12dd
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. commitd63375d529
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. commit4c21c016c5
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. commitbcec46057c
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 commita17071fef1
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. commit560ab22f7d
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. commit8b7f8b56f1
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. commit87ef5907e9
Merge:3e5e0fa
819548d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 14:42:34 2010 +0000 * Sync. commit819548d92f
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. commit3e5e0faf9c
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. commitbf87cc44b4
Merge:d1f6c0c
b571891
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 07:55:38 2010 +0000 * Sync with the trunk. commitb57189174f
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. commitf16fe2af8d
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. commitd1f6c0cbe3
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. commit07ca66cf24
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. commit1ab67cf437
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 2 09:43:04 2010 +0000 commit89865da76d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 1 11:19:32 2010 +0000 * Turn build errors during evaluation into EvalErrors. commita443c7573b
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). commit8bcdd36f10
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. commitda52f8bea0
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. commit7343e6c8ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 30 20:29:56 2010 +0000 * Remove an accidentally committed debug statement. commitb92a2e5cc2
Merge:32539e4
93cd5a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 20 12:36:03 2010 +0000 * Sync with the trunk. commit93cd5a4a13
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 18 10:36:37 2010 +0000 * The << operator on values should be const. commit32539e41d5
Merge:aa45027
b2235d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 16 17:16:00 2010 +0000 * Sync with trunk. commitb2235d81d1
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. commitaa45027818
Merge:a0e3b84
8032f26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 22:13:09 2010 +0000 * Sync with the trunk. commit8032f26ca0
Merge:4750065
bd25ac2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 13:59:36 2010 +0000 * Merged the `fast-eval' branch. commitbd25ac2260
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 12:15:49 2010 +0000 * Print attributes in sorted order. commit81a4b4e49b
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. commit1a8eb6e3ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 7 15:26:33 2010 +0000 commit83dfa89870
Merge:01e58ad
4750065
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 7 14:46:47 2010 +0000 * Sync with the trunk. commit01e58adce0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 7 12:43:57 2010 +0000 * Store position info for inherited attributes. commit83d7b89660
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 7 12:33:14 2010 +0000 * Updated addErrorContext. commite2d5e40f4f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 7 12:11:05 2010 +0000 * Keep track of the source positions of attributes. commit84ce7ac76f
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. commit4750065ada
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. commita0e3b84fac
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. commitf92c9a0ac5
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'. commit4bab25a28d
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. commit7fa338f4ba
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.) commitc82782f9a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 27 09:05:11 2010 +0000 commitc778ed1768
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 26 13:39:55 2010 +0000 * Fix the copy-from-other-stores substituter. commitef337f7089
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 26 12:58:12 2010 +0000 commit6199f9b93e
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. commit2398af13c5
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). commitd77331d32f
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) commit2be6118f4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 23 09:09:32 2010 +0000 * Don't need the test program anymore. commit0bc468f195
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. commitee0384fb96
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 22 11:34:15 2010 +0000 commitebade9ff8b
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.) commit2d7636529f
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. commit6bbfe95e30
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%). commit7148df7971
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). commit6f0f16497a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 16:18:27 2010 +0000 * Fix the interpretation of ''\<character> in indented strings. commitcae4efdca3
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. commit0777448ca6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 15:57:11 2010 +0000 * Fixed builtins.genericClosure. commitfe2d869e04
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...) commitd66ea83a76
Merge:f71ea9c
aac5fcf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 20 09:20:29 2010 +0000 * Sync with the trunk. commitf3b8833a48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 19 14:51:58 2010 +0000 * Drop the dependency on the ATerm library. commitefc7a579e8
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. commit55b5ddd3ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 19 12:10:04 2010 +0000 * Added parsing of manifests in ATerm format. commitb7ff69eb7c
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. commit5c31995bb8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 16 15:13:47 2010 +0000 * Updated some more primops. commit8bb0210fea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 16 14:07:52 2010 +0000 * _combineChannels shouldn't be an integer. commit8ca4a001cb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 16 14:03:26 2010 +0000 * Improve sharing a bit. commit497e4ad126
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 16 13:51:01 2010 +0000 * Remove some redundant tests. commit02c1dac909
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.) commit04c4bd3624
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. commite41b5828db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 23:48:46 2010 +0000 * Better stats. commitd39d3c6264
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 23:25:05 2010 +0000 * Implemented inherit. commit267dc693d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 22:59:39 2010 +0000 * Fix builtins. commit81de12bc8f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 15:14:23 2010 +0000 * Refactoring: move variable uses to a separate class. commit110d155778
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 15:01:04 2010 +0000 * Implemented withs. commit9985230c00
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. commit816dd3f061
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 12:49:05 2010 +0000 * Remove more obsolete code. commit011b5da0f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 09:39:06 2010 +0000 * Get nix-env to compile again. commit85d13c8f93
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. commit816f9c0f6f
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'. commit7d47498b5e
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. commitac1e8f40d4
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. commit10e8b1fd15
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 23:33:23 2010 +0000 * Finished the ATerm-less parser. commit0d272fca79
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 23:31:47 2010 +0000 * Remove some obsolete functions. commitd4f0b0fc6c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 22:03:27 2010 +0000 * Indented strings. commita60317f20f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 21:21:24 2010 +0000 * More missing constructs. commit4d6ad5be17
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. commited711f73bc
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. commitdb90b88e65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 09:50:20 2010 +0000 * Hack to support builderDefs expressions. commit4e49002576
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 09:45:00 2010 +0000 * Doh. commitc3f228f296
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 12 09:14:27 2010 +0000 commitaac5fcfbb5
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". commitf3dc7ab877
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. commitb7b3dd55f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 8 11:41:19 2010 +0000 * Remove a lot of dead code. commit7e048eddf5
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. commitaf2a372bb0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 7 15:47:06 2010 +0000 * Update autoCallFunction() and findAlongAttrPath(). commit9a64454faa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 7 13:59:45 2010 +0000 * expr-to-xml -> value-to-xml. commitfc92244ba8
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. commita353aef0b1
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. commita5ece7d016
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 1 16:59:07 2010 +0000 * Removed the `~' operator. commitc172274e17
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). commit7b851915bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 1 12:04:57 2010 +0000 * Improve sharing. commit95cc417d76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 1 10:55:36 2010 +0000 * Functions are incomparable. commit71f026292b
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. commitdc31305b38
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). commit979f163615
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 :-) commitd8cd3115d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 19:12:08 2010 +0000 * Get nix-env to compile. commit55e207b2dc
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. commit3d94be61ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 15:38:03 2010 +0000 * Implemented derivations. commit5187678913
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 15:14:23 2010 +0000 commitf061086a93
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 13:35:29 2010 +0000 * Fix the broken test for listToAttrs. commit09381cccff
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Mar 31 12:38:31 2010 +0000 Make source location info in the XML output optional. * src/libexpr/expr-to-xml.cc (nix::showAttrs): Add `location' parameter. Provide location XML attributes when it's true. Update callers. (nix::printTermAsXML): Likewise. * src/libexpr/expr-to-xml.hh (nix::printTermAsXML): Update prototype; have `location' default to `false'. * src/nix-instantiate/nix-instantiate.cc (printResult, processExpr): Add `location' parameter; update callers. (run): Add support for `--no-location'. * src/nix-instantiate/help.txt: Update accordingly. * tests/lang.sh: Invoke `nix-instantiate' with `--no-location' for the XML tests. * tests/lang/eval-okay-toxml.exp, tests/lang/eval-okay-to-xml.nix: New files. commit13c2adc897
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 11:05:39 2010 +0000 * Implemented `rec { inherit ...; }'. commit4c53ca2692
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 31 09:54:12 2010 +0000 * Compare nulls. commit471419d1fa
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Mar 31 08:29:05 2010 +0000 Add source location information to the XML output. * src/libexpr/expr-to-xml.cc (nix::showAttrs): Dereference the attribute RHS. Add "path", "line", and "column" XML attributes to the node when source location information is available. (nix::printTermAsXML): Likewise for functions. commiteb07a4f1ee
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Mar 31 08:29:01 2010 +0000 Escape `>' signs in the XML output. * src/libutil/xml-writer.cc (nix::XMLWriter::writeAttrs): Escape `>'. commit7f19e03c65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 22:39:48 2010 +0000 * More primops. commit47df476daa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 18:05:54 2010 +0000 * More operators / primops. commitc9170be2bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 15:18:20 2010 +0000 * More primops. commitc3aa615a5f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 14:39:27 2010 +0000 * More primops. commit5b72d8a749
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 13:47:59 2010 +0000 * Implemented `map'. commitd78a05ab40
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 09:22:33 2010 +0000 * Make `import' work. commit31428c3a06
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 29 14:37:56 2010 +0000 * Started integrating the new evaluator. commit52090d2418
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 29 10:13:51 2010 +0000 commite3f32ac5af
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 29 09:43:55 2010 +0000 commit807a67bc74
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 29 09:43:39 2010 +0000 commit392811eb8f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 18:27:07 2010 +0000 * Strings. commitd96cdcea6b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 16:57:16 2010 +0000 commit3d2b835f30
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 16:37:39 2010 +0000 * Implemented multi-argument primops. commit45d822f29c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 26 15:45:53 2010 +0000 * Primops (not yet finished). commitcad8726b2c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 26 13:27:26 2010 +0000 * Implemented the `==' and `!=' operators. These now use a deep equality test, so they also work for (finite) attribute sets and lists. commit8da118e4d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 16:35:24 2010 +0000 * Measure stack usage. commitc2ba4313fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 15:38:37 2010 +0000 * Implemented lists. commit25eedf085d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 14:51:04 2010 +0000 * Quick and dirty implementation of `with'. `with e1; e2' is basically desugared to `let <with> = e1; e2', and `lookupVar' looks in each <with> in the environment chain for an attribute with the specified name. commit3c9f8fc9b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 13:10:04 2010 +0000 * Don't convert variable names to strings. commitf450384ded
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 12:51:14 2010 +0000 * Implement blackholing. commitef8bd919fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 12:45:23 2010 +0000 * Implement `...' and default function arguments. commit8a10360c91
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 25 12:19:41 2010 +0000 * Simplify @-patterns: only `{attrs}@name' or `name@{attrs}' are now allowed. So `name1@name2', `{attrs1}@{attrs2}' and so on are now no longer legal. This is no big loss because they were not useful anyway. This also changes the output of builtins.toXML for @-patterns slightly. commit7482349fe8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 24 23:40:00 2010 +0000 * Implemented attribute set pattern matches. commit0fd3648d34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 24 12:41:08 2010 +0000 * Store values in environments. commitb70bd8fe56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 24 12:11:38 2010 +0000 * Reduce the number of value allocations in eval() by moving responsibility for allocation of the result to the caller. commitd31c59eb17
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 24 11:06:05 2010 +0000 * Plain lambdas. commite8f7978274
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 19:19:52 2010 +0000 commit0910ae9568
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 17:30:50 2010 +0000 * Start of an evaluator that uses call-by-need (with thunk updating) instead of (memoised) call-by-name. commit90039e0863
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 15:09:29 2010 +0000 * Branch for experimenting with faster / less memory-hungry Nix expression evaluation. commit71be50cc25
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 14:51:32 2010 +0000 * Doh. commit3bfd3a4e95
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 14:26:27 2010 +0000 * Test "with as; with bs;" since nobody knows what its semantics is. commitf71ea9c911
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 23 10:38:59 2010 +0000 * Use SQLite 3.6.23. commit141294ff38
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 19 11:36:34 2010 +0000 * Clean up error messages in killUser(). commit74299c1cfb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 17 12:12:45 2010 +0000 * Bump version number. commitc4cfb392d3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 17 10:08:34 2010 +0000 commit8e3d98eb41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 16 13:12:18 2010 +0000 * Release notes for Nix 0.15. commitf0c473c5f7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 16 13:01:52 2010 +0000 * Fix building on Cygwin (http://hydra.nixos.org/build/325071). commitfe1b8781ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 16 12:58:20 2010 +0000 * Fix a broken link (reported by Peter Koppstein). commit741b7577c1
Author: Nicolas Pierron <nicolas.b.pierron@gmail.com> Date: Sun Mar 14 11:58:07 2010 +0000 Merge r20344 & r20346. commit2fb0df83e9
Author: Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> Date: Thu Mar 11 21:22:52 2010 +0000 Uh. somehow a Makefile tab got in as spaces. Fixing. commit13cce8ec45
Author: Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> Date: Thu Mar 11 20:56:25 2010 +0000 Making 'bin2c' to be built with the compiler for the local system. I copied the configure.ac code about CC_FOR_BUILD from libX11. commite020d80e4e
Merge:070057c
05e1504
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 11 15:45:05 2010 +0000 * Sync with the trunk. commit05e15049a5
Author: Ludovic Courtès <ludo@gnu.org> Date: Thu Mar 11 14:47:04 2010 +0000 Show the build user's group in /etc/group in chroots. * src/libstore/build.cc (nix::DerivationGoal::startBuilder): Create /etc/group showing the build user's group. commit070057c1b9
Merge:03afc34
c752c9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 11 10:52:52 2010 +0000 * Sync with the trunk. commitc752c9f41a
Author: Ludovic Courtès <ludo@gnu.org> Date: Thu Mar 11 10:33:04 2010 +0000 Fix thinko in r20547. * src/libstore/build.cc (nix::DerivationGoal::startBuilder): Fix the GID of the build user in /etc/passwd. commit2e8eaca573
Author: Ludovic Courtès <ludo@gnu.org> Date: Thu Mar 11 10:21:23 2010 +0000 Clear supplementary groups of `nixbld' in /etc/passwd in chroots. * src/libstore/build.cc (nix::DerivationGoal::startBuilder): Don't display any supplementary groups for `nixbld' in /etc/passwd. commit03afc34805
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 10 13:07:37 2010 +0000 * Simplify. commit1a65142ec4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 10 12:46:25 2010 +0000 * Remove a debug statement. commit4c356acd04
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 9 14:32:03 2010 +0000 * In `nix-store --export', abort if the contents of a path has changed. This prevents corrupt paths from spreading to other machines. Note that checking the hash is cheap because we're hashing anyway (because of the --sign feature). commit44f6e6de77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 8 21:31:42 2010 +0000 * Set `gc-keep-outputs' or `gc-keep-derivations' to false with `--delete --ignore-liveness'. commit2e4ef03aa3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 8 10:35:45 2010 +0000 * Increase the sqlite timeout. commit05fbf61f0e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 5 18:26:47 2010 +0000 * nix-prefetch-url depends on sed (see http://hydra.nixos.org/build/311170). commit04791840f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 5 12:54:58 2010 +0000 * Emit warning='1' or error='1' attributes for lines marked as warnings or errors with \e[w or \e[e. commitbc6f7fc139
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 4 13:03:26 2010 +0000 * Remove some unused functions. commitfb6e223ddc
Merge:5ff87c9
84a4dd5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 4 12:15:00 2010 +0000 * Synced with the trunk. commit5ff87c982e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 3 16:17:09 2010 +0000 commite14e2399ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 20:23:42 2010 +0000 * Prevent a potential memory corruption problem if an ATerm garbage collection happens during fixAttrs(). commit158aa89317
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 20:22:46 2010 +0000 * Ensure that `make install' works without a prior `make'. commit56af8e86e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 20:09:12 2010 +0000 * Protect the `true', `false' and `__overrides' constants. Without an ATprotect call, these could be garbage collected, leading to weird crashes or wrong results. commit3f9e647ae8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 19:04:17 2010 +0000 * checkInterrupt() shouldn't be called from a destructor. commitd8c5745c41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 17:12:47 2010 +0000 * Support static builds. commite07d7284a2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 16:55:07 2010 +0000 * Fix DESTDIR builds. commit5414b3b2db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 16:40:40 2010 +0000 * Remove the --enable-static-nix flag. commit594eaddd11
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 2 15:58:13 2010 +0000 * When using the included sqlite/aterm libraries, build with --enable-shared. * In libutil/libstore/libexpr etc., link against sqlite and aterm. * Some more header file hygiene. commit966ffb29a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 26 13:10:57 2010 +0000 * Update the Valgrind suppressions for ATerm 2.5. commit24035b98b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 26 12:05:01 2010 +0000 * Implement RemoteStore::queryValidPaths(). commite42401ee7b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 25 15:52:22 2010 +0000 * Implement RemoteStore::queryDerivationOutputs(). commitaf565c348a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 16:44:43 2010 +0000 * Support read-only access to the database. commite33f67ff0b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 16:30:20 2010 +0000 * Refactor the upgrade / database initialisation logic a bit. commit84a4dd5ff0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 15:46:06 2010 +0000 * Don't use fdatasync since it doesn't work on Snow Leopard. * Don't refer to config.h in util.hh, because config.h is not installed (http://hydra.nixos.org/build/303053). commitcfe742cfc5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 15:07:23 2010 +0000 * A function to query just the database id of a valid path. commit6baa2a2f5e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 14:39:52 2010 +0000 commit9fd85c94de
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 14:22:34 2010 +0000 * Use `truncate' journal mode, which should be a bit faster. commitfefd467539
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 13:24:27 2010 +0000 * `helpText' is now zero-terminated. commit21b134b4e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 13:13:39 2010 +0000 commita3c63d0d6c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 13:12:57 2010 +0000 * Disable fsync() in SQLite if the fsync-metadata option is set to false. * Change the default for `fsync-metadata' to true. * Disable `fsync-metadata' in `make check'. commit90b6352d0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 12:48:00 2010 +0000 * Do registerValidPaths() in one transaction, which is much faster. E.g. it cuts the runtime of the referrers test from 50s to 23s. commitfae0427324
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 12:25:48 2010 +0000 * ADDITIONAL_NETWORK_LIBS -> LIBS. commitfa6a4fcb11
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 12:18:48 2010 +0000 * Add ${sqlite_lib} everywhere. Just adding it in `libstore' doesn't work on x86_64 when sqlite is compiled statically. commit5954eadf67
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 12:16:50 2010 +0000 * Remove the fdatasync check since it's no longer needed. commitbb82310dba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 11:06:17 2010 +0000 * Set the path to sqlite3 properly. commit69d9df7fe6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 11:04:03 2010 +0000 * Don't fork so much. commit462bd50aef
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 10:57:57 2010 +0000 * Use normal (rather than full) synchronous mode, which I gather from the description at http://www.sqlite.org/atomiccommit.html should be safe enough. commit8520de4720
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 24 10:48:57 2010 +0000 * Include the sqlite tarball in the Nix tarball. commitdc6d1ec67e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 23:24:49 2010 +0000 commit63b09c5e41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 22:31:38 2010 +0000 commit0efc986ba1
Merge:b4e6d98
7db2831
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 22:14:33 2010 +0000 * Sync with the trunk. commitb4e6d98fc3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 22:12:46 2010 +0000 * configure: flag --with-sqlite. commit7db2831d3a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 16:17:21 2010 +0000 * Use ATerm 2.5. commit5ccb6f64f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 23 12:26:35 2010 +0000 * Run ATerm's `make check'. commit2b20318b0e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 22 14:24:37 2010 +0000 commit9cda616949
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 22 14:18:55 2010 +0000 * The database needs a trigger to get rid of self-references to prevent a foreign key constraint violation on the Refs table when deleting a path. commitc4d388add4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 22 12:44:36 2010 +0000 * Get derivation outputs from the database instead of the .drv file, which requires more I/O. commit103cfee056
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 22 11:44:17 2010 +0000 * Revert r19650 (implement gc-keep-outputs by looking for derivations with the same name as the output) and instead use the DerivationOutputs table in the database, which is the correct way to to do things. commit299ff64812
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 22 11:15:50 2010 +0000 * Put the derivation outputs in the database. This is useful for the garbage collector. commit1930570ad9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 19 17:15:22 2010 +0000 * Foreign key support in SQLite is not a persistent setting, so enable it at startup. * Implement negative caching. Now `make check' passes. commit9c9a88e9e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 19 16:43:25 2010 +0000 * Implement more stuff. commit762cee72cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 19 16:04:51 2010 +0000 * Implement registerValidPath(). commit268f9aaf28
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 16:51:27 2010 +0000 * Implemented queryValidPaths() and verifyStore(). commit836e5b6f57
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 16:21:59 2010 +0000 * Implemented queryReferrers(). commit77cb9e3fb1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 15:52:57 2010 +0000 * Implement queryPathInfo(). commit885e22b16e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 15:11:08 2010 +0000 * Implement isValidPath(). commitcfb09e0fad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 14:40:07 2010 +0000 * Automatically abort transactions if they go out of scope without committing. commite0305bb7a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 14:30:42 2010 +0000 * Some wrapper objects to ensure that SQLite objects are properly destroyed. commita053d2d8e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 13:48:18 2010 +0000 * Add the deriver to the ValidPaths table. In principle we could now store all the derivers of a path efficiently. But that opens a big can of worms with respect to garbage collector semantics. commitdbddac0fe9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 13:40:46 2010 +0000 * Assign an integer id to every row in the ValidPaths table in order to make the Refs table more space-efficient. For instance, this reduces the size of the database on my laptop from 93 MiB to 18 MiB. (It was 72 MiB with the old schema on an ext3 disk with a 1 KiB block size.) commitc1a07f9445
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 13:16:59 2010 +0000 * Convert the Nix database to SQLite. commiteaaa13ce47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 18 13:14:51 2010 +0000 * Experimental branch for using SQLite to store the Nix database. commit68e55cd9da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 16 00:10:39 2010 +0000 * Since Hydra now escapes `+', `=' and `?' to %NN in URIs, nix-prefetch-url should unescape them, because `%' is not a valid character in store path names. commit3b3e1025c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 12 10:50:30 2010 +0000 * Typo. Reported by Peter Koppstein. commit20186a4079
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Feb 10 15:55:50 2010 +0000 Don't rely on `PATH_MAX' on GNU. commitd0bf4adb1f
Author: Ludovic Courtès <ludo@gnu.org> Date: Wed Feb 10 15:55:46 2010 +0000 Add `.gitignore'. commite08dbff9a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 5 10:17:13 2010 +0000 * Fix a broken link (reported by Bjorn Buckwalter). commite1e91a3731
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 15:46:04 2010 +0000 * Bump. commit817f4f7908
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 14:43:43 2010 +0000 * Grmbl. Timing-sensitive tests are evil. commitf36b7e7579
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 14:00:47 2010 +0000 commit719cebcac2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 09:38:09 2010 +0000 * "Fix" incorrect help message. commit443673620d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 02:38:40 2010 +0000 * Don't use ssh's -f flag since it leads to lots of lingering ssh processes. commit7ec5a65925
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 02:18:29 2010 +0000 * Doh! The scope of $slotLock should extend to the end of the script, because otherwise the lock will be released at the end of the while loop. commitc9b2d80bcd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 02:05:34 2010 +0000 * Typo. commit3cfe65e516
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 02:05:22 2010 +0000 * Doh! Calling `system' in an END block causes the exit status in $? to be changed to 0. commite51a276907
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 01:39:23 2010 +0000 * Remove the `cat' calls when not using --gzip. commit408913bbaf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 4 00:12:57 2010 +0000 * Revert r19796 for now. commit4e17be7981
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 21:38:41 2010 +0000 * Revert r19797, and use a simpler solution: just don't monitor build hooks for silence. It's unnecessary because the remote nix-store command is already monitoring the real build. commitf859a8d3c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 21:22:57 2010 +0000 * While waiting for a lock, print a sign of life every 5 minutes. This prevents remote builders from being killed by the `max-silent-time' inactivity monitor while they are waiting for a long garbage collection to finish. This happens fairly often in the Hydra build farm. commitc45de33c67
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 21:13:37 2010 +0000 * Respect @sysconfdir@. commitd0c32dc135
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 20:35:37 2010 +0000 * In the build hook, if connecting to a machine fails, try the other machines of the right type (if available). This makes the build farm more robust to failures. commitf56a039775
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 20:12:18 2010 +0000 * Use SSH connection sharing in the remote build script. * Removed the Cygwin password hack since the problem is apparently fixed in Visual Studio. commitbc1e478db1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 15:34:52 2010 +0000 * nix-copy-closure: start only one SSH connection to the server, or recycle an already existing connection (using OpenSSH's connection sharing feature). commit4d8a85b8f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 3 11:00:35 2010 +0000 * Updated the release notes. commit3ce5f07793
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 2 17:01:16 2010 +0000 * Ugly hack to make `nix-channel' work on Cygwin. commite839802720
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 2 15:29:18 2010 +0000 * Don't do a chdir to $tmpDir. It's not necessary, and Windows doesn't support deleting the current directory. commit4bbbe25802
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 2 15:28:36 2010 +0000 * Remove most Cygwin-specific code. Cygwin 1.7 implements advisory POSIX locks, and simulates Unix-style file deletion semantics sufficiently. Note that this means that Nix won't work on Cygwin 1.5 anymore. commit2723d9b56e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 2 11:57:49 2010 +0000 * If fdatasync() isn't available, use fsync(). commit07ffdc2862
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 29 12:22:58 2010 +0000 * Added an option "fsync-metadata" to fsync() changes to /nix/var/nix/db. * Removed the function writeStringToFile since it does (almost) the same thing as writeFile. commitad529fb89f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 29 11:53:58 2010 +0000 * Don't consider a store path valid if its info file exists but is zero bytes long. That makes Nix more robust in case of crashes (especially on ext4). commitfdcaf37361
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 25 17:18:44 2010 +0000 * Made `nix-store -qR --include-outputs' much faster if there are multiple paths specified on the command line (from O(n * m) to O(n + m), where n is the number of arguments and m is the size of the closure). commit50e34891f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 25 16:14:45 2010 +0000 * Disable gzip compression in build-remote.pl because it puts too much load on the Hydra build farm (where it's unnecessary anyway because it has a fast connection to the build machines). In any case, compression can be enabled by using the `-C' option to ssh. commit5388944e8d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 25 16:04:32 2010 +0000 * Make the garbage collector do the right thing when `gc-keep-outputs' is enabled by not depending on the deriver. commitf0c0277970
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 12 12:22:38 2010 +0000 * On startup, set the default SIGCHLD handler. This is so that Nix works correctly in weird environments where the SIGCHLD handler is set to "ignore". commitef92a14bfe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 17 14:12:44 2009 +0000 * Include config.h before the C library headers, because it defines _FILE_OFFSET_BITS=64. Without it, functions like stat() fail on large file sizes. This happened with a Nix store on squashfs: $ nix-store --dump /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds > /dev/null error: getting attributes of path `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds': Value too large for defined data type $ stat /tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds File: `/tmp/mnt/46wzqnk4cbdwh1dclhrpqnnz1icak6n7-local-net-cmds' Size: 0 Blocks: 36028797018963968 IO Block: 1024 regular empty file (This is a bug in squashfs or mksquashfs, but it shouldn't cause Nix to fail.) commit945d8218fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 16 15:29:50 2009 +0000 * Build correctly against newer ATerm releases. Fixes "error: 'union' tag used in naming 'struct _ATerm'". commitd8a5dc02fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 10 13:14:22 2009 +0000 * Build on Fedora 12. commit3a78af1e24
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 9 21:02:24 2009 +0000 * Release notes. commit7ca9972636
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 9 19:36:54 2009 +0000 * When doing a nix-pull, remove old manifests downloaded from the same URL. This prevents lots of old cruft accumulating in /nix/var/nix/manifests. commitc4c84d1edb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 9 18:08:28 2009 +0000 * nix-build: be less verbose. commitbcd6cdf0d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 9 17:45:22 2009 +0000 * Give a better error message when trying to build something and readOnlyMode is set. commit13618b191e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 24 13:28:46 2009 +0000 * Grrr. commitaa5a768720
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 24 12:56:26 2009 +0000 * GCC 4.4 is stricter about the EOF macro (http://hydra.nixos.org/build/156340). commit9b8fda796b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 24 12:26:25 2009 +0000 * Templatise getIntArg / string2Int. commit8022015552
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 24 10:51:52 2009 +0000 * In the garbage collector, don't count files with a link count > 1 in the "bytes/blocks freed" statistics. commitf9e766db98
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 24 09:53:18 2009 +0000 * Randomise the order in which we delete entries to make the collector less biased towards deleting paths that come alphabetically first (e.g. /nix/store/000...). This matters when using --max-freed etc. commitca50c83fbb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 23 21:21:29 2009 +0000 commit3d55f1eb57
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 23 18:16:25 2009 +0000 * A command `nix-store --query --roots <paths>' to find the garbage collector roots that point (directly or indirectly) to the given paths. commitae6bf87273
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 23 17:23:12 2009 +0000 * `nix-store --gc --print-roots': also print the path of the actual root symlink, not just its target. E.g.: /nix/var/nix/profiles/system-99-link -> /nix/store/76kwf88657nq7wgk1hx3l1z5q91zb9wd-system commitc364d5d1e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 23 16:34:24 2009 +0000 * Made the garbage collector a lot faster. It no longer computes the complete set of live and dead paths before starting the actual deletion, but determines liveness on demand. I.e. for any path in the store, it first tries to delete all the referrers, and then the path itself. This means that the collector can start deleting paths almost immediately. commit4f7e5f5810
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 23 12:48:54 2009 +0000 * Don't create /nix/var/nix/gcroots/{tmp,channels}, since they don't seem to be used anymore. commit8824d60fe5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 20 17:12:38 2009 +0000 * Remove the --use-atime / --max-atime garbage collector flags. Many (Linux) machines no longer maintain the atime because it's too expensive, and on the machines where --use-atime is useful (like the buildfarm), reading the atimes on the entire Nix store takes way too much time to make it practical. commit997db91e07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 17 16:22:39 2009 +0000 * Don't pass -K. It should really inherit the setting of the calling Nix though. commit3392d32e8b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 13 10:08:31 2009 +0000 * In nix-pull/nix-channel, create the manifests directory if it doesn't exist. The Debian packages don't include the manifests directory, so nix-channel would silently skip doing a nix-pull, resulting in everything being built from source. Thanks to Juan Pedro Bolívar Puente. commit327a232c85
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 6 01:15:44 2009 +0000 * Remove support for old (before Nix 0.12pre12020) databases. commitc60d796f04
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 5 22:23:38 2009 +0000 * Version bump. commite8bad77c7c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 5 15:20:19 2009 +0000 commit7680904839
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 5 14:53:01 2009 +0000 * Build on Karmic. commit58f3338bfa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 5 14:40:42 2009 +0000 * The Nix .deb package depends on curl. commit268d90a03e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 5 09:07:43 2009 +0000 * Various updates. commit1ff8758f76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 4 16:52:35 2009 +0000 * Manual updates. commit8520542071
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 22 08:28:33 2009 +0000 * When building in a chroot, make a copy of a file if hard-linking fails. This is likely to happen after a `nix-store --optimise', because some files may have 32000 links (NIX-111). commit6b9f6b0222
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 22 08:12:38 2009 +0000 * Remove a prototype for a function that no longer exists. commitdeb342fb08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 22 08:10:12 2009 +0000 * builtins.trace: in the common case that the value is a string, then show the string, not the ATerm, so we get `trace: bla' instead of `trace: Str("bla",[])'. commit437077c39d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 21 15:05:30 2009 +0000 * Added a primop unsafeDiscardOutputDependency needed by Disnix to pass derivation paths to a builder without actually building them. commit6f7d7bc1de
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 13 09:30:17 2009 +0000 * Give a useful error message when an evaluation error occurs while trying to upgrade a package. commit53a4981fa2
Author: Sander van der Burg <s.vanderburg@tudelft.nl> Date: Thu Oct 8 14:50:37 2009 +0000 Added optional parameter which adds -lnsl -lsocket to make the Nix package manager work on OpenSolaris commit18f0ff003d
Author: Peter Simons <simons@cryp.to> Date: Tue Oct 6 09:14:06 2009 +0000 configure.ac: use AC_SYS_LARGEFILE to determine how to enable 64-bit file size support Defining -D_FILE_OFFSET_BITS=64 works on most platforms, but not on all (i.e. Solaris). Also, the Autoconf macro offers the user a switch to disable the functionality in case of problems. commit96f1517831
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 30 11:32:04 2009 +0000 * Support platforms that don't have O_ASYNC (e.g. OpenSolaris apparently). commit1a8f8fd86f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 30 09:54:29 2009 +0000 * OpenSolaris compatibility. commit0f79ad47c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 25 12:36:03 2009 +0000 commitc7057fc1f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 24 07:39:55 2009 +0000 * And some more. commit193f59e077
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 24 07:21:29 2009 +0000 * Fix a build failure on Fedora 11. rename() needs <stdio.h>. commit0ae2be5692
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 24 07:05:06 2009 +0000 commit1332dd1ed3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 23 19:19:26 2009 +0000 * tryEval shouldn't catch all exceptions of type Error, since not all of them leave the evaluator in a continuable state. Also, it should be less chatty. commit63a17d4bd5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 23 18:52:18 2009 +0000 * Don't build against BDB on Cygwin, it's been broken for unknown reasons for a while (e.g. http://hydra.nixos.org/build/79164). commit676e07902e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 23 18:04:55 2009 +0000 * Darwin hack. commit64e89980e8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 23 17:05:51 2009 +0000 * Create some state directories automatically as a convenience. commit48b58617e9
Author: Rob Vermaas <rob.vermaas@gmail.com> Date: Wed Sep 23 12:57:15 2009 +0000 * include wait.h for WEXITSTATUS commit51ad64cc07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 18 11:45:56 2009 +0000 * Use xmllint (>= 2.7.4) for RelaxNG validation instead of Jing. commitdf05a759e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 18 11:01:30 2009 +0000 * In "make init-state", ignore errors creating /nix/store. Hack to get the Debian VM builds to work (where /nix/store is a mount point containing the store of the host). commitd3de71efc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 17 17:44:13 2009 +0000 commite1df4ef73c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 17 17:02:14 2009 +0000 commit86408b3f47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 17 15:48:17 2009 +0000 * build-remote.pl: Pick machines in a round-robin order, rather than giving jobs to the first machine until it hits its job limit, then the second machine and so on. This should improve utilisation of the Hydra build farm a lot. Also take an optional speed factor into account to cause fast machines to be preferred over slower machines with a similar load. commit57e0d73c77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 17 13:51:04 2009 +0000 * build-remote.pl: allow the system type to be a comma-separated list of system types. Don't treat the x86_64-linux system type specially. commit0dbd4638e0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 15 13:01:46 2009 +0000 * Two primops: builtins.intersectAttrs and builtins.functionArgs. intersectAttrs returns the (right-biased) intersection between two attribute sets, e.g. every attribute from the second set that also exists in the first. functionArgs returns the set of attributes expected by a function. The main goal of these is to allow the elimination of most of all-packages.nix. Most package instantiations in all-packages.nix have this form: foo = import ./foo.nix { inherit a b c; }; With intersectAttrs and functionArgs, this can be written as: foo = callPackage (import ./foo.nix) { }; where callPackage = f: args: f ((builtins.intersectAttrs (builtins.functionArgs f) pkgs) // args); I.e., foo.nix is called with all attributes from "pkgs" that it actually needs (e.g., pkgs.a, pkgs.b and pkgs.c). (callPackage can do any other generic package-level stuff we might want, such as applying makeOverridable.) Of course, the automatically supplied arguments can be overriden if needed, e.g. foo = callPackage (import ./foo.nix) { c = c_version_2; }; but for the vast majority of packages, this won't be needed. The advantages are to reduce the amount of typing needed to add a dependency (from three sites to two), and to reduce the number of trivial commits to all-packages.nix. For the former, there have been two previous attempts: - Use "args: with args;" in the package's function definition. This however obscures the actual expected arguments of a function, which is very bad. - Use "{ arg1, arg2, ... }:" in the package's function definition (i.e. use the ellipis "..." to allow arbitrary additional arguments), and then call the function with all of "pkgs" as an argument. But this inhibits error detection if you call it with an misspelled (or obsolete) argument. commit3bca8931e8
Author: Michael Raskin <7c6f434c@mail.ru> Date: Tue Aug 25 16:06:46 2009 +0000 Adding tryEval builtin. It allows to catch presence of errors in an expression. commit5e9a4e5101
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 3 13:32:13 2009 +0000 commit9b46d1ae6f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 3 12:24:20 2009 +0000 commit20b6f94b65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 15 09:10:38 2009 +0000 * nix-build: pass the --show-trace flag. commitd413612029
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 14 14:58:12 2009 +0000 * Remove the redundant <sections> around refentries. commit1f169f43b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 10 13:42:12 2009 +0000 * Leave out the collaborators / revision history page. commit5e2e2f10ef
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 10 11:48:49 2009 +0000 commitc6890d6b5c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 2 08:52:12 2009 +0000 * Replace newlines in table output with spaces. commit749dd97a54
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 30 15:53:39 2009 +0000 * Support integers and lists of strings in meta fields. This is useful for fields like meta.maintainers, meta.priority (which can be a proper integer now) and even meta.license (if there are multiple licenses). commitf2c3fc5191
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 30 13:28:29 2009 +0000 * Don't show trace information by default (`--show-trace' to enable). NixOS evaluation errors in particular look intimidating and generally aren't very useful. Ideally the builtins.throw messages should be self-contained. commita2fc3a53ba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 18 10:04:14 2009 +0000 * Highlight URLs containing "=" properly. commitd53603c928
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 18 09:56:50 2009 +0000 * Attributes names in attrsets can contain dots now. commit14bc3ce3d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jun 13 16:30:58 2009 +0000 * Canonicalise timestamps in the Nix store to 1 (1970-01-01 00:00:01 UTC) rather than 0 (00:00:00). 1 is a better choice because some programs use 0 as a special value. For instance, the Template Toolkit uses a timestamp of 0 to denote the non-existence of a file, so it barfs on files in the Nix store (see template-toolkit-nix-store.patch in Nixpkgs). Similarly, Maya 2008 fails to load script directories with a timestamp of 0 and can't be patched because it's closed source. This will also shut up those "implausibly old time stamp" GNU tar warnings. commitf24cf5d303
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 10 11:30:34 2009 +0000 * nix-build: if nix-instantiate or nix-store fails due to a signal (e.g. out of memory or a segfault), print an error message. Otherwise the user doesn't see anything. commitc6cb792d48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 26 16:32:02 2009 +0000 commita64bbe049e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 15 13:46:13 2009 +0000 * Change the scoping of "inherit (e) ..." in recs so that the attributes of the rec are in scope of `e'. This is useful in expressions such as rec { lib = import ./lib; inherit (lib) concatStrings; } It does change the semantics of expressions such as let x = {y = 1;}; in rec { x = {y = 2;}; inherit (x) y; }.y This now returns 2 instead of 1. However, no code in Nixpkgs or NixOS seems to rely on the old behaviour. commitd407d572fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 15 12:35:23 2009 +0000 * Some syntactic sugar for attribute sets: allow {x.y.z = ...;} as a shorthand for {x = {y = {z = ...;};};}. This is especially useful for NixOS configuration files, e.g. { services = { sshd = { enable = true; port = 2022; }; }; } can now be written as { services.sshd.enable = true; services.sshd.port = 2022; } However, it is currently not permitted to write { services.sshd = {enable = true;}; services.sshd.port = 2022; } as this is considered a duplicate definition of `services.sshd'. commite42975490f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 14 14:29:45 2009 +0000 * Check for duplicate attributes in fixAttrs, rather than doing a separate traversal after parsing. Likewise, check for duplicate pattern variables right away. commit50d11b90ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 12 11:06:24 2009 +0000 * Allow unsafe (unspecified) comparisons between attrsets unless NIX_NO_UNSAFE_EQ is set, for now. commitc34e6d71bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 11 15:50:14 2009 +0000 * Disallow equality tests between attribute sets. This was always broken, but now the evaluator checks for it to prevent Nix expressions from relying on undefined behaviour. Equality tests are implemented using a shallow pointer equality test between ATerms. However, because attribute sets are lazy and contain position information, this can give false positives. For instance, previously let y = {x = 1;}; in y == y evaluated to true, while the equivalent expression {x = 1;} == {x = 1;} evaluated to false. So disallow these tests for now. (Eventually we may want to implement deep equality tests for attribute sets, like lib.eqStrict.) * Idem: disallow comparisons between functions. * Implemented deep comparisons of lists. This had the same problem as attribute sets - the elements in the list weren't evaluated. For instance, ["xy"] == [("x" + "y")] evaluated to false. Now it works properly. commit9536ba19d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 13:22:26 2009 +0000 commit83bd320b39
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 13:12:46 2009 +0000 * Build a PDF version of the manual in the tarball job (it's not included in the tarball though). commitf751c2966b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 13:11:58 2009 +0000 * Don't have a bugs section in the manual. Bugs should be kept in the bug tracker. commit404996ca1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 12:57:04 2009 +0000 * Produce the manual in the tarball job. commit7660e2a068
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 11:35:52 2009 +0000 * Remove a right recursion that causes the parser to barf on very long lists. The comment about ATreverse requiring unbounded stack space was unfounded anyway. commit52a9ba96f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 11:34:08 2009 +0000 * Include the version file. commit6a5599fd01
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 7 11:33:57 2009 +0000 * Typo. commit098cb9d233
Author: Michael Raskin <7c6f434c@mail.ru> Date: Mon May 4 08:10:24 2009 +0000 Add an ftruncate call paired with fallocate to play safe with some FSes (namely, BtrFS fallocate sets file size to allocated size, i.e. multiple of block size) commitc710fe540e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 21 12:42:47 2009 +0000 * Machines of type x86_64-linux can do i686-linux builds. commitd5eab2fc82
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 21 11:52:16 2009 +0000 * Use foreach in a lot of places. commit8f1bf28505
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 21 11:06:27 2009 +0000 * nix-store --verify: don't bail out if a referenced path is missing. (It can't fix it though.) commit4e646b0ddb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 16 12:03:17 2009 +0000 * Fix a few "comparison is always false/true due to limited range of data type" warnings on 64-bit platforms. The one in parser.y is likely to be a real bug. commit0460ea4c39
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 16 09:27:33 2009 +0000 * Cleanup. commitdfb863f333
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 15 06:25:02 2009 +0000 * Don't cache transient build hook problems. commit435a93b5d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 14 13:03:27 2009 +0000 * Remove references to __XXX primops. commit8b2a01a8c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 14 12:02:22 2009 +0000 * Release notes. commit50cb6f9782
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 2 08:16:15 2009 +0000 * Debian packages: use /etc, not /usr/etc. commit351bf658f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 31 21:14:07 2009 +0000 * Do a substitution even if --max-jobs == 0. commitcff2b2a13a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 31 15:50:03 2009 +0000 * Doh! commit160a60d663
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 30 19:35:55 2009 +0000 commit805144b705
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 30 11:34:03 2009 +0000 * Make the poll interval configurable. commit096affb55b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 29 18:40:44 2009 +0000 * Update the mtime on the lock file to make it easy to see when a slot was last used. commitcbc1f57b48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 29 18:08:32 2009 +0000 * Undocument the "system" option. No sane person would use it :-) commit7377195297
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 29 18:06:00 2009 +0000 * With `--max-jobs 0', print a nicer error message than "Assertion `!awake.empty()' failed." commit737423a89c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 29 18:00:45 2009 +0000 * Use polling to wait for a remote build slot when using a build hook (that is, call the build hook with a certain interval until it accepts the build). * build-remote.pl was totally broken: for all system types other than the local system type, it would send all builds to the *first* machine of the appropriate type. commit47706e3924
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 21:10:29 2009 +0000 * nix-copy-closure: compute the closure in one call to nix-store, which is much faster. commit6e946c8e72
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 20:51:33 2009 +0000 * Scan for references and compute the SHA-256 hash of the output in one pass. This halves the amount of I/O. commitc7152c8f97
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 19:41:53 2009 +0000 * Don't use the non-standard __gnu_cxx::stdio_filebuf class. commit3a2bbe7f8a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 19:29:55 2009 +0000 * Simplify communication with the hook a bit (don't use file descriptors 3/4, just use stdin/stderr). commit7fb548aa26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 16:12:46 2009 +0000 * Clean up the output a bit. commitf54e800366
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 28 16:12:27 2009 +0000 * The `fixedOutput' variable didn't get initialised when using a build hook, causing negative caching to fail randomly. commit38f98b3282
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 27 22:40:22 2009 +0000 * Argh, stupid timing sensitive tests... commite23a7a8b7b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 27 14:20:03 2009 +0000 * Debian 5.0, Ubuntu 8.10 builds. commitcb85bc396e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 27 14:19:04 2009 +0000 * Create /nix/store if it doesn't exist. commit61686926d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 26 14:12:42 2009 +0000 * A job for creating a fully statically linked binary tarball. commit9856efc7b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 26 12:22:08 2009 +0000 * Support doing a fully static build. Statically linked Nix binaries will be useful as a fallback on platforms for which there are no RPMs/Debs available. commit5dd8fb2069
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 26 11:02:07 2009 +0000 * Don't use ULLONG_MAX in maxFreed - use 0 to mean "no limit". 18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is too large for "long" type'). commit92f525ecf4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 25 21:05:42 2009 +0000 * Negative caching, i.e. caching of build failures. Disabled by default. This is mostly useful for Hydra. commit7024a1ef07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 25 16:43:38 2009 +0000 * Removed the locking.sh test; it's redundant because of the extended parallel.sh test. Also, don't call multiple nix-builds in parallel, since they can race creating .nix-build-tmp-derivation. commit8146a0c731
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 25 16:11:04 2009 +0000 * Use bash in the tests. commita046858a22
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 24 23:40:24 2009 +0000 * Doh. commit12c8c64efa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 24 14:07:37 2009 +0000 commit7aedcf9460
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 23 15:16:36 2009 +0000 * Make this test a bit more robust. It's still timing dependent though. commit3a87163b24
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 23 13:52:52 2009 +0000 * Shut up a GCC warning. commitcacff1be88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 23 01:05:54 2009 +0000 * No longer block while waiting for a lock on a store path. Instead poll for it (i.e. if we can't acquire the lock, then let the main select() loop wait for at most a few seconds and then try again). This improves parallelism: if two nix-store processes are both trying to build a path at the same time, the second one shouldn't block; it should first see if it can build other goals. Also, it prevents the deadlocks that have been occuring in Hydra lately, where a process waits for a lock held by another process that's waiting for a lock held by the first. The downside is that polling isn't really elegant, but POSIX doesn't provide a way to wait for locks in a select() loop. The only solution would be to spawn a thread for each lock to do a blocking fcntl() and then signal the main thread, but that would require pthreads. commit58969fa2bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 22 23:53:05 2009 +0000 * Refactoring. commitd7b2d11255
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 22 23:16:18 2009 +0000 * Test case (currently fails): multiple Nix builds shouldn't block waiting on the same lock when there are other builds that can be done. commit7a57b2920b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 22 17:51:45 2009 +0000 * Better error message when nix-store --import is applied to garbage (previously it would likely say "implementation cannot deal with > 32-bit integers"). commit77d272623f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 22 17:36:43 2009 +0000 * NAR archives: handle files larger than 2^32 bytes. Previously it would just silently store only (fileSize % 2^32) bytes. * Use posix_fallocate if available when unpacking archives. * Provide a better error message when trying to unpack something that isn't a NAR archive. commit7e05b8b75e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 19 10:02:02 2009 +0000 * Future proofing: assume we can read manifests up to version 10 (which should therefore be backwards compatible). commitb88460bcbc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 19 09:47:34 2009 +0000 * Disregard the Hash field in manifests. commit2897286487
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 17:36:42 2009 +0000 * Unify exportReferencesGraph and exportBuildReferencesGraph, and make sure that it works as expected when you pass it a derivation. That is, we have to make sure that all build-time dependencies are built, and that they are all in the input closure (otherwise remote builds might fail, for example). This is ensured at instantiation time by adding all derivations and their sources to inputDrvs and inputSrcs. commite530e0a350
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 16:36:13 2009 +0000 * Improve the test. commit9485ec31ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 16:35:35 2009 +0000 * Better cleanup after tests. commit13df3915ef
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 16:23:29 2009 +0000 * Missing file. commitc183ee5c79
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 14:48:42 2009 +0000 * Acquire the locks on the output paths before trying to run the build hook. This fixes a problem with log files being partially or completely filled with 0's because another nix-store process truncates the log file. It should also be more efficient. commit1dcf208f56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 18 13:15:55 2009 +0000 * Clean up some tests (use nix-build where appropriate). commit93b6926054
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 17 17:38:32 2009 +0000 * Regression test for exportBuildReferencesGraph. It currently fails. commit51e7e32c3b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 17 17:11:55 2009 +0000 * Refactoring: renamed *.nix.in to *.nix. commit2d5114452d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 17 16:33:48 2009 +0000 * Regression test for the `exportReferencesGraph' derivation attribute. commit33ecb42991
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 17 11:42:55 2009 +0000 * Cleanup. commitbe88248add
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 9 15:05:08 2009 +0000 * Make the version available to release.nix. commita96cac0d18
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 6 17:00:58 2009 +0000 commitd4753c944f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 6 11:01:45 2009 +0000 commit0e6f604178
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 5 14:57:50 2009 +0000 * Install some headers in the right location. commit7f254706b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 3 14:47:39 2009 +0000 * Allow the channel to declare a name for itself. commit1273d355ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 14:06:38 2009 +0000 * nix-install-package: don't pollute /nix/var/nix/manifests. commitd4ca5c3952
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 13:55:11 2009 +0000 * Use the regular progress bar; the hash bar isn't very useful when the size of the download isn't known in advance. commitfd2e14b3c8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 12:09:30 2009 +0000 * nix-build: support --option. commit60cb7de336
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 11:04:41 2009 +0000 * Allow options from the Nix config file to be overriden from the command line (e.g. "--option build-use-chroot true"). commit8ab6bc5a49
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 11:01:03 2009 +0000 * nix-channel: use nix-build. commitf052c10eed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 27 09:53:58 2009 +0000 * Check the manifest version. commita7cee528c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 26 21:12:35 2009 +0000 * Handle base-16 hashes in manifests. commit041717eda3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 19 23:46:37 2009 +0000 * download-using-manifests: don't check the cryptographic hash of downloaded files; rather, check the hash of the unpacked store path. When the server produces bzipped NAR archives on demand (like Hydra does), the hash of the file is not known in advance; it's streamed from the server. Thus the manifest doesn't contain a hash for the bzipped NAR archive. However, the server does know the hash of the *uncompressed* NAR archive (the "NarHash" field), since it's stored in the Nix database (nix-store -q --hash /nix/store/bla). So we use that instead for checking the integrity of the download. commit621093cb1c
Author: Michael Raskin <7c6f434c@mail.ru> Date: Thu Feb 19 20:46:45 2009 +0000 Replace wrong (w.r.t. PATH) sed call with in-shell substitution commit824b154ce8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 16 09:24:20 2009 +0000 * Release output locks as soon as possible, not when the destructor of the DerivationGoal runs. Otherwise, if a goal is a top-level goal, then the lock won't be released until nix-store finishes. With --keep-going and lots of top-level goals, it's possible to run out of file descriptors (this happened sometimes in the build farm for Nixpkgs). Also, for failed derivation, it won't be possible to build it again until the lock is released. * Idem for locks on build users: these weren't released in a timely manner for failed top-level derivation goals. So if there were more than (say) 10 such failed builds, you would get an error about having run out of build users. commit2ef579d1aa
Author: Marc Weber <marco-oweber@gmx.de> Date: Thu Feb 5 19:35:44 2009 +0000 documentation for previous commit commit1407a1ec99
Author: Marc Weber <marco-oweber@gmx.de> Date: Thu Feb 5 19:35:40 2009 +0000 added primop functions __isBool, __isString, __isInt commit1bb0f1e84b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 3 10:34:15 2009 +0000 * Build hook: compress the transferred data. commitb682fae9d9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 2 17:24:10 2009 +0000 * Build hooks: use nix-store --import. This prevents a redundant scan for runtime dependencies (i.e. the local machine shouldn't do a scan that the remote machine has already done). Also pipe directly into `nix-store --import': don't use a temporary file. commit6f8c96d123
Author: Marc Weber <marco-oweber@gmx.de> Date: Wed Jan 28 12:14:53 2009 +0000 vim syntax: support for indented strings ('' .. '') commit110606d470
Author: Nicolas Pierron <nicolas.b.pierron@gmail.com> Date: Tue Jan 27 14:36:44 2009 +0000 Add the "addErrorContext" builtin to add more information in the stack trace. commit061141e632
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 27 13:36:59 2009 +0000 * Make it compile on Debian 4.0 (which doesn't define PER_LINUX32_3GB in sys/personality.h). commit019176137f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 11:39:09 2009 +0000 * When using a build hook, distinguish between transient failures (e.g. an SSH connection problem) and permanent failures (i.e. the builder failed). This matters to Hydra (it wants to know whether it makes sense to retry a build). commit4ce692df88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 10:42:13 2009 +0000 commitc504d90c11
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 12 16:30:32 2009 +0000 * Support i686-linux builds directly on x86_64-linux Nix installations. This is implemented using the personality() syscall, which causes uname to return "i686" in child processes. commit8e39d9bdb3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 12 12:51:28 2009 +0000 * Make Nix build with Bison 2.4. commit28355dafcf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 5 12:14:43 2009 +0000 * Removed reference to losser.st-lab.cs.uu.nl, which is RIP after 9 years of loyal service :-) commit8fce03e0ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 16 13:28:18 2008 +0000 * nix-store --verify: repair bad hash fields in the metadata file. commit60ec75048a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 16 12:23:35 2008 +0000 * Pass --use-atime / --max-atime to the daemon. commit6f6bb1fdea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 15 23:55:11 2008 +0000 * Delete the chroot if it already exists (e.g. left over from an interrupted build). commit92cb7c4dfe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 17:14:57 2008 +0000 * Put chroots in the Nix store. This ensures that we can create hard links to the inputs. commit0008b0006d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 17:03:18 2008 +0000 * Simplify deleting .lock files in /nix/store: just don't delete them if they belong a path that's currently being built. This gets rid of some Cygwin-specific code. commitac36c6cd44
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 15:36:18 2008 +0000 * Some hackery to make "make check" succeed on Cygwin. commit2b70a8e7c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 13:41:36 2008 +0000 * Detect whether unshare() is available. commit9122dcecbb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 12:59:27 2008 +0000 * We can't use string objects in signal handlers because they might allocate memory, which is verboten in signal handlers. This caused random failures in the test suite on Mac OS X (triggered by the spurious SIGPOLL signals on Mac OS X, which should also be fixed). commit6776a52bb3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 11:49:42 2008 +0000 * Use a PathSet for the chroot directories so that we don't accidentally bind-mount a directory twice. commitd86bd22d24
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 12 10:20:19 2008 +0000 * Define _GNU_SOURCE. Hopefully this fixes the build on Debian 4.0 (http://hydra.nixos.org/nixlog/384/1). commitac5478eb52
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 11 18:57:10 2008 +0000 * Don't provide the whole Nix store in the chroot, but only the closure of the inputs. This really enforces that there can't be any undeclared dependencies on paths in the store. This is done by creating a fake Nix store and creating bind-mounts or hard-links in the fake store for all paths in the closure. After the build, the build output is moved from the fake store to the real store. TODO: the chroot has to be on the same filesystem as the Nix store for this to work, but this isn't enforced yet. (I.e. it only works currently if /tmp is on the same FS as /nix/store.) commit652817046b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 11 17:52:34 2008 +0000 * Revert r13150: now that we use private namespaces for the chroot, we don't have to put the chroot in /nix/var/nix/chroots anymore. They're back in /tmp now. commit5a569509b4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 11 17:44:02 2008 +0000 * Provide a minimal /etc/passwd in the chroot to keep some builders happy. commit7c54f1603f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 11 17:00:12 2008 +0000 * Do chroot builds in a private namespace. This means that all the bind-mounts we do are only visible to the builder process and its children. So accidentally doing "rm -rf" on the chroot directory won't wipe out /nix/store and other bind-mounted directories anymore. Also, the bind-mounts in the private namespace disappear automatically when the builder exits. commit07cdfb09fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 11 14:30:25 2008 +0000 * Open the connection to the daemon lazily (on demand) so that read-only operations (like nix-env -qa) work properly when the daemon isn't running. commita0766eca27
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 21:07:29 2008 +0000 * Build on Debian 4.0 (GCC 4.1.1). commitcd16d5dc3d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 17:56:12 2008 +0000 * Doh. commit5b949241a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 17:54:14 2008 +0000 * Build some 64-bit RPMs/Debs. commit67958f21df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 16:55:22 2008 +0000 * Be sure to clean up the daemon if the test fails. commitd91dc086bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 16:51:36 2008 +0000 commit9ac3f5df9c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 16:51:16 2008 +0000 * Propagate --max-silent-time to remote machines. commitbcfe98acff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 16:35:47 2008 +0000 * Prefer building on a remote machine over a local machine. This makes more sense for the build farm, otherwise every nix-store invocation will lead to at least one local build. Will come up with a better solution later... commit9850262a72
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 15:25:28 2008 +0000 * Build RPMs, Debs, coverage analysis. commit909fbb9de1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 14:29:41 2008 +0000 * When using build hooks, for any nix-store -r build operation, it is necessary that at least one build hook doesn't return "postpone", otherwise nix-store will barf ("waiting for a build slot, yet there are no running children"). So inform the build hook when this is the case, so that it can start a build even when that would exceed the maximum load on a machine. commit5dfba0b4db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 13:36:52 2008 +0000 * Force allocation of a pseudo-terminal to clean up the remote nix-store process when the connection is interrupted. commit9ccdb80de3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 13:13:31 2008 +0000 * Don't ignore errors from writing to stderr. That way, when nix-store -r (or some other operation) is started via ssh, it will at least have a chance of terminating quickly when the connection is killed. Right now it just runs to completion, because it never notices that stderr is no longer connected to anything. Of course it would be better if sshd would just send a SIGHUP, but it doesn't (https://bugzilla.mindrot.org/show_bug.cgi?id=396). commit9fd9c4c635
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 12:20:06 2008 +0000 * Support multiple system types per remote machine, e.g. a machine list like root@example.org x86_64-linux /root/.ssh/id_buildfarm 1 root@example.org i686-darwin /root/.ssh/id_buildfarm 1 This is possible when the Nix installation on example.org itself has remote builds enabled. commit63b8f09d8d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 10:45:47 2008 +0000 commitf8713e1287
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 4 10:40:41 2008 +0000 * Dirty hack to make nix-push work properly on derivations: the derivation should be a source rather than a derivation dependency of the call to the NAR derivation. Otherwise the derivation (and all its dependencies) will be built as a side-effect, which may not even succeed. commit82ae85de27
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 18:05:14 2008 +0000 * addToStore() in nix-worker: don't write the NAR dump received from the client to a temporary directory, as that is highly inefficient. commit5eaf644c99
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 17:30:32 2008 +0000 * A simple API for parsing NAR archives. commitcdee317419
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 17:02:29 2008 +0000 * Backwards compatibility. commitd95b68fde3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 16:15:38 2008 +0000 commitff762fb499
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 16:10:17 2008 +0000 * Pass HashType values instead of strings. commit1307b22223
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 15:51:17 2008 +0000 * Made addToStore() a lot more efficient: it no longer reads the path being copied 3 times in the worst case. It doesn't run in constant space, but it didn't do that anyway. commit64519cfd65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 15:06:30 2008 +0000 * Unify the treatment of sources copied to the store, and recursive SHA-256 outputs of fixed-output derivations. I.e. they now produce the same store path: $ nix-store --add x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x $ nix-store --add-fixed --recursive sha256 x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x the latter being the same as the path that a derivation derivation { name = "x"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "..."; ... }; produces. This does change the output path for such fixed-output derivations. Fortunately they are quite rare. The most common use is fetchsvn calls with SHA-256 hashes. (There are a handful of those is Nixpkgs, mostly unstable development packages.) * Documented the computation of store paths (in store-api.cc). commit09bc0c502c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 29 00:31:39 2008 +0000 * Install the release notes. commit5d4eb9dd07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 01:13:29 2008 +0000 * Moved the build farm job for building Nix to the Nix tree. commit0c478d2f4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 02:30:35 2008 +0000 * Ignore carriage returns. commit5024bde8f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 01:06:15 2008 +0000 * Handle prematurely ended logfiles, i.e. make sure we emit enough close tags. commit2ab09a55cf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 21:51:58 2008 +0000 * Bump the version number. commit6bbff48079
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 17:22:42 2008 +0000 commitb8eb32f4d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 16:42:52 2008 +0000 * Urgh. commitbba87589cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 16:28:04 2008 +0000 commitf3e2e6076a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 16:10:55 2008 +0000 commit53cca4a445
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 16:06:13 2008 +0000 commit4213b8d8ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 15:44:59 2008 +0000 * Urgh. commiteb86b6f5a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 15:08:39 2008 +0000 commit3d2035ea86
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 15:08:34 2008 +0000 * Blindly doing a replacement of occurences of $bindir (when running the tests) is a bad idea when $bindir = /usr and some programs (like perl) live there. Fortunately it doesn't seem to be needed anymore. commit285d26374a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 14:14:35 2008 +0000 * Don't set the prefix to /nix by default, rather use the Autoconf default of /usr/local. However, localstatedir and storedir are set to /nix/var/nix and /nix/store respectively unless they're explicitly overriden. commita55113411f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 12:25:11 2008 +0000 * Nix daemon: reload the configuration file after forking (NIX-100). commitc202523e53
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 12:01:05 2008 +0000 commitaab530e971
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 23:26:19 2008 +0000 * Primop builtins.storePath for declaring a store path as a dependency. `storePath /nix/store/bla' gives exactly the same result as `toPath /nix/store/bla', except that the former includes /nix/store/bla in the dependency context of the string. Useful in some generated Nix expressions like nix-push, which now finally does the right thing wrt distributed builds. (Previously the path to be packed wasn't an explicit dependency, so it wouldn't be copied to the remote machine.) commit60564410ef
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 17:50:25 2008 +0000 * Patterns. commit2668a43388
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 17:27:52 2008 +0000 commit63ccd72496
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 17:00:32 2008 +0000 * Updated the manual. commite13da525a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 16:27:07 2008 +0000 * Files in the info directory starting with "." are temporary files and don't indicate path validity. commit5d250ad1ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 16:26:34 2008 +0000 * nix-store --dump-db: be more streamy. commit7509d70f9d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 15:20:46 2008 +0000 * Documented some of the sharing mechanisms. commit2369b122d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 13:19:09 2008 +0000 * Install documentation in $(docdir) (i.e. share/doc/nix). commit6c2c771af7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 13:18:46 2008 +0000 * Removed obsolete option. commit07d3a38726
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 11:58:33 2008 +0000 * Remove references to Berkeley DB, including most of the troubleshooting section. W00t. commitf5325d292d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 10:59:36 2008 +0000 * Release notes. commitfa791116a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 14:43:40 2008 +0000 * Get rid of nix-pack-closure / nix-unpack-closure, they're redundant. commit3f4ed681c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 14 16:50:01 2008 +0000 * Prevent zombies. Previous the SIGCHLD handler only reaped one zombie at a time, so if multiple children died before the handler got to run, some of them would not be cleaned up. commit6fedb7aa0f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 14 15:46:45 2008 +0000 * Restore SIGPIPE to SIG_DFL when running the builder. This prevents subtle and often hard-to-reproduce bugs where programs in pipes either barf with a "Broken pipe" message or not, depending on the exact timing conditions. This particularly happened in GNU M4 (and Bison, which uses M4). commita519bb0635
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 12 11:08:27 2008 +0000 * Some somewhat ad hoc mechanism to allow the build farm to monitor build progress. commit96598e7b06
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 11 15:11:10 2008 +0000 * Pass the --no-build-output flag to the daemon. commit4166b11a53
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 11 14:59:20 2008 +0000 * Add /dev/pts to the default nix.conf. commit2b7c839b4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 11 14:58:37 2008 +0000 * Typo. commit709b55ee02
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 29 15:34:48 2008 +0000 * Put the chroots under /nix/var/nix/chroots to reduce the risk of disasters involving `rm -rf' on bind mounts. Will try the definitive fix (per-process mounts, apparently possible via the CLONE_NEWNS flag in clone()) some other time. commitc98ea254dc
Author: Ludovic Courtès <ludo@gnu.org> Date: Thu Oct 16 21:04:32 2008 +0000 libstore: Always mount `/dev/pts' individually. This fixes problems such as Tcl's PTY handling: ERROR: The system has no more ptys. Ask your system administrator to create more. commit9d6d50269b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 14:16:03 2008 +0000 * Bug fix for building on some old installations (contributed by Pjotr). commitfa61ee70ee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 18 09:08:54 2008 +0000 * Fix `--from-profile'. commitf32fef1b07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 17 14:52:35 2008 +0000 * GC option `--max-atime' that specifies an upper limit to the last accessed time of paths that may be deleted. Anything more recently used won't be deleted. The time is specified in time_t, e.g. seconds since 1970-01-01 00:00:00 UTC; use `date +%s' to convert to time_t from the command line. Example: to delete everything that hasn't been used in the last two months: $ nix-store --gc -v --max-atime $(date +%s -d "2 months ago") commit4af2fdba6d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 17 13:00:55 2008 +0000 * Typo. commitc987061aa4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 17 12:54:07 2008 +0000 * Some refactoring. Better output with `-v' for --use-atime. commit77afd97a99
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 17 12:53:33 2008 +0000 * nix-store --gc / --delete: show how many store paths were deleted. commit7ab68961e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 17 10:02:55 2008 +0000 * Garbage collector: added an option `--use-atime' to delete paths in order of ascending last access time. This is useful in conjunction with --max-freed or --max-links to prefer deleting non-recently used garbage, which is good (especially in the build farm) since garbage may become live again. The code could easily be modified to accept other criteria for ordering garbage by changing the comparison operator used by the priority queue in collectGarbage(). commit2b2aa8a820
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 8 11:02:15 2008 +0000 * Doh. commit7933cdc6dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 2 09:21:38 2008 +0000 * When writing the user environment manifest, filter out non-string attributes from the meta attribute. Not doing so caused nix-env to barf on the "psi" package, which has a meta.function attribute, the textual serialisation of which causes a gigantic string to be produced --- so big that it causes nix-env to run out of memory. Note however that "meta" really only should contain strings. meta.function should be passthru.function. commit0f0dbe8c0c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 29 14:38:04 2008 +0000 * Extend the ATerm suppressions to 64-bit. commit311c222f47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 29 13:59:03 2008 +0000 commit2a01d06da6
Author: Michael Raskin <7c6f434c@mail.ru> Date: Fri Aug 29 08:34:38 2008 +0000 Added nix-http-export.cgi to extra distributed scripts; so it can be installed from releases, not only from SVN. commit7718b19389
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 27 17:20:25 2008 +0000 * Explicitly set PWD to prevent problems with chroot builds. In particular, dietlibc cannot figure out the cwd because the inode of the current directory doesn't appear in .. (because getdents returns the inode of the mount point). commit9cc0da8453
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 27 16:03:03 2008 +0000 * Create a /tmp with 1777 permission in the chroot. Some builders need a writable /tmp (they don't respect $TMPDIR). commit99dc3e613a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 26 14:05:59 2008 +0000 * Require that __overrides is defined as a non-recursive attribute (which means it can only be defined via "inherit"), otherwise we get scoping bugs, since __overrides can't be recursive (or at least, it would be hard). commitd06be428f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 15:49:22 2008 +0000 * Disable chroot builds for fixed-output derivations so that we don't need /etc in the chroot (in particular, /etc/resolv.conf for fetchurl). Not having /etc/resolv.conf in the chroot is a good thing, since we don't want normal derivations to download files. commitabec1c0004
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 14:31:29 2008 +0000 * Evaluate attributes in sorted order for better determinism. commitc4f1c2114b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 14:15:56 2008 +0000 * Minor simplification. commit49829da8b4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 13:32:27 2008 +0000 * Doh. commitb428adc267
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 13:31:57 2008 +0000 * Strip off the `.nix' suffix from the attribute name for files in ~/.nix-defexpr, otherwise the attribute cannot be selected with the `-A' option. Useful if you want to stick a Nix expression directly in ~/.nix-defexpr. commitcc826dc03e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 22 14:32:29 2008 +0000 * Simplify the Valgrind suppressions using wildcards. commit51e2dda58c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 19 12:46:43 2008 +0000 * Some more ATerm Valgrind suppressions. commitb7ff182b6e
Author: Michael Raskin <7c6f434c@mail.ru> Date: Thu Aug 14 22:01:43 2008 +0000 Fixing an obvious typo in override code. I do not know whether it works correctly after the change, but at least it ca nbe compiled now. commitca07f3e370
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 16:59:37 2008 +0000 * Another experimental feature: a way to truly override attributes in a rec. This will be very useful to allow end-user customisation of all-packages.nix, for instance globally overriding GCC or some other dependency. The // operator doesn't cut it: you could replace the "gcc" attribute, but all other attributes would continue to reference the original value due to the substitution semantics of rec. The syntax is a bit hacky but this is to allow backwards compatibility. commit9279174dde
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 14:00:44 2008 +0000 * Added an experimental feature suggested by Andres: ellipses ("...") in attribute set pattern matches. This allows defining a function that takes *at least* the listed attributes, while ignoring additional attributes. For instance, {stdenv, fetchurl, fuse, ...}: stdenv.mkDerivation { ... }; defines a function that requires an attribute set that contains the specified attributes but ignores others. The main advantage is that we can then write in all-packages.nix aefs = import ../bla/aefs pkgs; instead of aefs = import ../bla/aefs { inherit stdenv fetchurl fuse; }; This saves a lot of typing (not to mention not having to update all-packages.nix with purely mechanical changes). It saves as much typing as the "args: with args;" style, but has the advantage that the function arguments are properly declared (not implicit in what the body of the "with" uses). commitdb4f4a8425
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 13:02:19 2008 +0000 * Backward compatibility check to prevent nixos-rebuild from barfing when upgrading Nix. commit1b962fc720
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 12:53:29 2008 +0000 * @-patterns as in Haskell. For instance, in a function definition f = args @ {x, y, z}: ...; `args' refers to the argument as a whole, which is further pattern-matched against the attribute set pattern {x, y, z}. commite818838412
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 10:14:34 2008 +0000 * "pattern" non-terminal. commitefe4b690ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 10:04:22 2008 +0000 * Refactoring: combine functions that take an attribute set and functions that take a single argument (plain lambdas) into one AST node (Function) that contains a Pattern node describing the arguments. Current patterns are single lazy arguments (VarPat) and matching against an attribute set (AttrsPat). This refactoring allows other kinds of patterns to be added easily, such as Haskell-style @-patterns, or list pattern matching. commitc03b729319
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 09:26:30 2008 +0000 * Increase the sleep periods a bit to make the test less likely to fail on slow machines. Of course it would be better if this test wasn't timing dependent... commit5664b6d7ba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 11 13:36:40 2008 +0000 * Removed the "valid values" feature. Nobody uses it anyway. commitb455c4c45c
Author: Michael Raskin <7c6f434c@mail.ru> Date: Wed Aug 6 19:43:53 2008 +0000 Updates to nix-reduce-build Common code in local build package sources refactored out in a function; before building the real set of derivations needed is found (slightly slower for only one build strategy, but less garbage on output and better performance for multiple build strategies). Now you have full choice of best-effort build regardless of method (substituters or actual build), using substituters, building only fixed derivations (should get you all the downloads) and local build without even trying substituters. Some minor fix in the help text about behavior with no package sources. commit72f3ea7358
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 11:03:05 2008 +0000 * Moved some stuff to the Nixpkgs manual. * Updated the release notes. commit98b07466fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 10:57:53 2008 +0000 * Better error checking of the data from the substituters. commit339c142009
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 16:21:45 2008 +0000 * Use optimistic profile locking for nix-env operations like `-i' and `-u'. Instead of acquiring an exclusive lock on the profile for the entire duration of the operation, we just perform the operation optimistically (without an exclusive lock), and check at the end whether the profile changed while we were busy (i.e., the symlink target changed). If so, the operation is restarted. Restarting is generally cheap, since the build results are still in the Nix store. Most of the time, only the user environment has to be rebuilt. commita87b5256e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 16:16:49 2008 +0000 * Fix the tests. commit001b3f06ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 14:58:50 2008 +0000 * `nix-env --set': support --dry-run. commit7592f48c83
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 13:46:01 2008 +0000 * nix-build: `--dry-run' flag. commita1d310b6b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 13:44:46 2008 +0000 * `nix-store --realise': print what paths will be built/downloaded, just like nix-env. * `nix-store --realise': --dry-run option. commit42043953c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 13:15:47 2008 +0000 * Doh. commit5adbb0aabe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 13:15:35 2008 +0000 * build.cc: only use a substituter if it returns info for a path. commit5b1052663a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 13:11:09 2008 +0000 * Always show what paths we're going to build/download (as in --dry-run). Maybe there should be an option to turn this on/off? commitc4f98941ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 12:29:04 2008 +0000 * nix-env --dry-run: show the total size of the substituter downloads. commit03427e76f1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 11:44:50 2008 +0000 * querySubstitutablePathInfo: work properly when run via the daemon. * --dry-run: print the paths that we don't know how to build/substitute. commitb3c26180e3
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sat Aug 2 16:43:25 2008 +0000 Updates to nix-reduce-build: only realize fixed derivations if user asks so, or only use substituters. Oh, and add possibility to use : for things like /etc/nixos/nixpkgs:-A:gnused commit3c92ea399d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 2 12:54:35 2008 +0000 * Make nix-env --dry-run print the paths to be substituted correctly again. (After the previous substituter mechanism refactoring I didn't update the code that obtains the references of substitutable paths.) This required some refactoring: the substituter programs are now kept running and receive/respond to info requests via stdin/stdout. commitfc691e1cbd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 14:52:25 2008 +0000 * Print a better error message when a non-derivation attribute set is coerced to a string. commit096198d11f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 23 16:02:58 2008 +0000 * A quick hack to make nix-prefetch-url support mirror:// URLs. It requires that $NIXPKGS_ALL points at a Nixpkgs tree. commit660244f65f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 23 09:38:38 2008 +0000 * Make sure that copy-from-other-stores.pl is built. commite139d7fc68
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 18 20:03:12 2008 +0000 * Fix the tests. commit989176c56e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 18 15:34:46 2008 +0000 * Allow read-only access to the store (e.g., non-root users on NixOS can do operations like "nix-store -qR <path>" even without the Nix daemon). commit8bc591a6f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 18 13:05:10 2008 +0000 * Use the copy-from-other-stores substituter by default. Of course, it only does something if $NIX_OTHER_STORES (not really a good name...) is set. * Do globbing on the elements of $NIX_OTHER_STORES. E.g. you could set it to /mnts/*/nix or something. * Install substituters in libexec/nix/substituters. commit15f39aba8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 12 18:58:24 2008 +0000 * Quick prototype of a substituter that copies paths from other Nix stores (typically remote Nix stores mounted via e.g. NFS, or the Nix store on the NixOS installation CD). Example use: $ sshfs foo@example.org:/ /mnt $ NIX_OTHER_STORES=/mnt/nix \ NIX_SUBSTITUTERS=.../copy-from-other-stores.pl \ nix-env -i foo This will be especially useful for the installation CD since it doesn't require a manifest for the CD contents. commit7cd88b1dec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 11 13:29:04 2008 +0000 * Generalised the dependencyClosure primop to builtins.genericClosure, which is hopefully more useful. * New primops: length, mul, div. commitd567baabbd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 1 10:10:32 2008 +0000 * Export the nix-env derivation name parsing and version comparison logic through the `parseDrvName' and `compareVersions' primops. This will allow expressions to easily check whether some dependency is a specific needed version or falls in some version range. See tests/lang/eval-okay-versions.nix for examples. commitb3b0b2a29e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 23 13:52:28 2008 +0000 * `make ext-clean': remove the bzip2 build. commit6c8641a542
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 19:17:05 2008 +0000 commit5af84139a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 15:20:33 2008 +0000 * --max-freed: support values >= 4 GB. commitd3aa183beb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 14:20:16 2008 +0000 * Garbage collector: option `--max-freed' to stop after at least N bytes have been freed, `--max-links' to stop when the Nix store directory has fewer than N hard links (the latter being important for very large Nix stores on filesystems with a 32000 subdirectories limit). commita8f3b02092
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 14:13:00 2008 +0000 * `nix-store --optimise': handle files with >= 32000 hard links. (There can easily be more than 32000 occurrences of the empty file.) commita72709afd8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 09:34:17 2008 +0000 * Some refactoring: put the GC options / results in separate structs. * The garbage collector now also prints the number of blocks freed. commit934c58aa38
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 17 08:12:12 2008 +0000 * Use bzip2 1.0.5. commitee8f15930d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jun 15 15:10:03 2008 +0000 * Test instrumentation. commitf351834f77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jun 14 16:03:02 2008 +0000 * nix-worker: clean up the temporary root for the worker processes in /nix/var/nix/temproots. commit94fd46fa1c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jun 14 16:02:31 2008 +0000 * Note. commit955b8841cd
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sat Jun 14 08:48:40 2008 +0000 Also trying to build derivers in case we cannot get substituters commit18e27629d3
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sat Jun 14 08:30:35 2008 +0000 Added local best-effort builds (i.e. one failure does not ruin all packages you would like to see built) commit826b271d9a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 13 18:25:24 2008 +0000 * Garbage collector: don't do a complete topological sort of the Nix store under the reference relation, since that means that the garbage collector will need a long time to start deleting paths. Instead just delete the referrers of a path first. commit30c9f909b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 13 17:21:20 2008 +0000 * Print some progress info during the early GC stages. commit194c66eeeb
Author: Michael Raskin <7c6f434c@mail.ru> Date: Fri Jun 13 14:34:19 2008 +0000 Stupid error in script commitf903d86740
Author: Michael Raskin <7c6f434c@mail.ru> Date: Fri Jun 13 13:53:14 2008 +0000 OK, I will believe that fix does no worse.. commitce85b55cf0
Author: Michael Raskin <7c6f434c@mail.ru> Date: Thu Jun 12 17:45:38 2008 +0000 Updated help text commit4532e4b90d
Author: Michael Raskin <7c6f434c@mail.ru> Date: Thu Jun 12 16:26:53 2008 +0000 Added verbosity for nix-reduce-build commit2818b7cee6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 11 15:39:38 2008 +0000 * Updated some URLs. commit997b95a4af
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 10 10:08:15 2008 +0000 * Fixed compatibility with old versions of "wc" that print whitespace before the count. commitb0e92f6d47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 9 13:52:45 2008 +0000 * Merged the no-bdb branch (-r10900:HEAD https://svn.nixos.org/repos/nix/nix/branches/no-bdb). commit4ed01ed791
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 9 13:42:13 2008 +0000 * Updated some URLs (did this a long time ago but forgot to commit...). commitc41a3ec3a9
Author: Sander van der Burg <s.vanderburg@tudelft.nl> Date: Wed Jun 4 14:36:46 2008 +0000 First attempt to update Nix SDF grammar to match the actual bison grammar commitbd955e15e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 21 11:17:31 2008 +0000 * GCC 4.3.0 (Fedora 9) compatibility fixes. Reported by Gour and Armijn Hemel. commit9819bb20da
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sun May 11 15:54:30 2008 +0000 Added support for file:// archive (.nar.gz) repositories to nix-reduce-build. /tmp/nix-export created by nix-http-export.cgi is OK. commitb4bc8b7616
Author: Michael Raskin <7c6f434c@mail.ru> Date: Wed May 7 14:18:28 2008 +0000 --proxy=proxy:3128 commitb1e321d6ce
Author: Michael Raskin <7c6f434c@mail.ru> Date: Tue Apr 29 04:03:54 2008 +0000 Added http alternative transport for nix-reduce-build commit658816ddc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 10 09:54:23 2008 +0000 * Make really sure that we use bash. The line NEED_PROG(shell, bash) actually uses the content of $shell if set, which often points at /bin/sh. commit72034ab35d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 9 05:57:01 2008 +0000 * sockaddr_un doesn't allow path names of more than 108 characters. This isn't usually a problem, except that it causes tests to fail when performed in a directory with a very long path name. So chdir to the socket directory and use a relative path name. commitf8985d195e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 28 17:52:33 2008 +0000 * Fix for NIX-101 (should use an absolute path for call to nix-hash). commit329025253d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 27 13:45:17 2008 +0000 * Use /tmp/nix-build-<drvpath>-<counter> instead of /tmp/nix-<pid>-<counter> for temporary build directories. This increases purity a bit: many packages store the temporary build path in their output, causing (generally unimportant) binary differences. commit5bb08db55b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 14:57:16 2008 +0000 * Updated URL. commit98968fbb63
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 18:15:20 2008 +0000 * Disable the don't-run-as-root sanity check because it breaks RPM builds (which are done as root...). commit2f1e2cf632
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 14:59:33 2008 +0000 * Note that the SDF grammar isn't used. commitf106868110
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 10:16:36 2008 +0000 * Cleanup. commitf789ea1d09
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 1 21:05:33 2008 +0000 * A transaction is unnecessary since the path cannot be garbage-collected (it's a temporary root). commitd7caac3e81
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 28 21:27:47 2008 +0000 * Don't install nix-reduce-build by default yet please, I first want to understand better what it does... commit11d512e7a8
Author: Michael Raskin <7c6f434c@mail.ru> Date: Wed Feb 27 21:26:47 2008 +0000 Added nix-reduce-build. You point it to some path you want to build and it fetches whatever it can from specified computers via nix-copy-closure. NOTE: You do want to set up RSA keys or ssh-agent or something... You really do want it. It will run separate ssh instances insane number of times. commit0a84137c45
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 21 12:01:24 2008 +0000 * checkVarDefs: don't check in closed terms, which don't have undefined variables by definition. This matters for the implementation of "with", which does a call to checkVarDefs to see if the body of the with has no undefined variables. (It can't be checked at parse time because you don't know which variables are in the "with" attribute set.) If we check closed terms, then we check not just the with body but also the substituted terms, which are typically very large. This is the cause of the poor nix-env performance on Nixpkgs lately. It didn't happen earlier because "with" wasn't used very often in the past. This fix improves nix-env performance roughly 60x on current Nixpkgs. nix-env -qa is down from 29.3s to 0.5s on my laptop, and nix-env -qa --out-path is down from 229s to 3.39s. Not bad for a 1-line fix :-) commit0ed89c569f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 5 13:38:07 2008 +0000 * Fix the parsing of '' '${foo}' '' where the antiquote should work as expected, instead of giving the string "'${foo}'". commit4066f450c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 5 13:35:49 2008 +0000 * Doh. commite7bdde981f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 5 13:25:18 2008 +0000 * Regression test. commit66c51dc215
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 29 18:17:36 2008 +0000 * nix-store --dump-db / --load-db to dump/load the Nix DB. * nix-store --register-validity: option to supply the content hash of each path. * Removed compatibility with Nix <= 0.7 stores. commit5b5a3af983
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sun Jan 20 20:44:03 2008 +0000 Probably fixed __exprToString commit5eb5c23447
Author: Michael Raskin <7c6f434c@mail.ru> Date: Tue Jan 15 04:32:08 2008 +0000 Fixed exportBuildReferenceGraph commit7d0f6aed59
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 4 14:22:49 2008 +0000 * New primop `unsafeDiscardStringContext' to get rid of string contexts. Needed to prevent unnecessary dependencies when building the NixOS manual. commit895c953817
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 17:53:59 2007 +0000 * Bumped the version number to 0.12. commitd4117859d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 16:57:12 2007 +0000 commite0ca671491
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 02:52:17 2007 +0000 * More documentation. commit6bdecfacbb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 01:52:57 2007 +0000 * Documented a bunch of nix-store commands. commit454f571f87
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 01:22:09 2007 +0000 commit4c82983010
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 01:17:25 2007 +0000 commitf60aa2aa21
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 00:34:44 2007 +0000 commitdedd62dd0c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 31 00:08:09 2007 +0000 * More release notes. commitb5ddcf58ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 30 23:59:10 2007 +0000 * Fix the hashDerivationModulo test. I should really investigate *why* the test failed... commit59707975a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 30 23:36:09 2007 +0000 * Documented indented string literals. * Release notes. commitde012e76e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 30 23:35:45 2007 +0000 * Don't use "store expression", it's obsolete. commit2196cb67c5
Author: Michael Raskin <7c6f434c@mail.ru> Date: Sun Dec 30 09:30:56 2007 +0000 Added a way to include derivation with its outputs and dependencies - exportBuildReferenceGraph commitdf303666bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 14 14:49:35 2007 +0000 * Use strsignal if available to give better error messages for builders that fail due to a signal. commit1e90b4189d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 14 14:15:30 2007 +0000 * Another insane Mac OS X 10.5 compatibility hack. commit485d71c54a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 14 14:08:09 2007 +0000 * Mac OS X 10.5 compatibility: `echo -n foo' suddenly prints `-n foo' instead of `foo' without a newline (with /bin/sh, not /bin/bash, even though /bin/sh is also bash...). So use printf instead. commit30e4653783
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 13 22:06:19 2007 +0000 * Mac OS X 10.5 compatibility. commit4ff1335b2e
Author: Marc Weber <marco-oweber@gmx.de> Date: Wed Dec 12 02:12:58 2007 +0000 small udpate commit3a2833daff
Author: Michael Raskin <7c6f434c@mail.ru> Date: Mon Dec 10 22:16:47 2007 +0000 corrected --help message for nix-store a bit commit764b0115d5
Author: Marc Weber <marco-oweber@gmx.de> Date: Mon Dec 10 21:17:29 2007 +0000 Very basic nix vim syntax highlighting commitb42ef9c054
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 6 10:20:58 2007 +0000 * Syntax to escape '', ${. commitd4950f207f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 4 11:42:58 2007 +0000 * component -> package. commit6d6c68c0d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 30 16:48:45 2007 +0000 * Added a new kind of multi-line string literal delimited by two single quotes. Example (from NixOS): job = '' start on network-interfaces start script rm -f /var/run/opengl-driver ${if videoDriver == "nvidia" then "ln -sf ${nvidiaDrivers} /var/run/opengl-driver" else if cfg.driSupport then "ln -sf ${mesa} /var/run/opengl-driver" else "" } rm -f /var/log/slim.log end script ''; This style has two big advantages: - \, ' and " aren't special, only '' and ${. So you get a lot less escaping in shell scripts / configuration files in Nixpkgs/NixOS. The delimiter '' is rare in scripts (and can usually be written as ""). ${ is also fairly rare. Other delimiters such as <<...>>, {{...}} and <|...|> were also considered but this one appears to have the fewest drawbacks (thanks Martin). - Indentation is intelligently stripped so that multi-line strings can follow the nesting structure of the containing Nix expression. E.g. in the example above 6 spaces are stripped from the start of each line. This prevents unnecessary indentation in generated files (which sometimes even breaks things). See tests/lang/eval-okay-ind-string.nix for some examples. commit633518628f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 29 16:18:24 2007 +0000 * nix-env -e: support uninstalling by path, so that one can say $ nix-env -e $(which firefox) or $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132 * nix-env -i: if an argument contains a slash anywhere, treat it as a path and follow it through symlinks into the Nix store. This allows things like $ nix-build -A firefox $ nix-env -i ./result * nix-env -q/-i/-e: don't complain when the `*' selector doesn't match anything. In particular, `nix-env -q \*' doesn't fail anymore on an empty profile. commit12d0a1eb75
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 29 14:15:33 2007 +0000 * Troubleshooting entry about running out of locks. commit06f95dd07c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 21 13:49:59 2007 +0000 * New primop `readFile' to get the contents of a file as a string. commitc370755583
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 16 16:15:26 2007 +0000 * Flag `--no-build-hook' to disable distributed builds. * queryDeriver in daemon mode: don't barf if the other side returns an empty string (which means there is no deriver). commitc05783ad67
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 16 16:10:27 2007 +0000 * nix-store --import: add a flag --require-signature. commit6784b14241
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 15 16:52:40 2007 +0000 * nix-build: pass --argstr to nix-instantiate. commitca210d2a58
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 15 15:33:30 2007 +0000 * Doh! commit149e273023
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 15 15:07:27 2007 +0000 * Don't need gc.hh. commitbfec245efa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 15 14:28:08 2007 +0000 * Add build-remote.pl to the Nix distribution. commit6fc60e2060
Author: Michael Raskin <7c6f434c@mail.ru> Date: Thu Nov 15 03:47:12 2007 +0000 Added possibility to specify garbage collection levels for store paths; so packages can share intermediate results of compilation and GC will collect it automatically while never touching tarballs, for example. commit5b74a59570
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 5 18:12:29 2007 +0000 * nix-prefetch-url: don't fail if /tmp/nix-prefetch-url-<pid> exists, instead use a counter just like we do for temporary build directories. commit5f8a203b55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 1 14:42:44 2007 +0000 * A rule to make a PDF version of the manual. commit1511aa11ce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 1 13:28:33 2007 +0000 * Documented some of the more obscure derivation attributes (including fixed-output derivations). commitfa44e401a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 31 18:01:56 2007 +0000 * Documented multi-user Nix. commite007b50eb7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 29 22:16:36 2007 +0000 commitbfea7b1f35
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 29 14:31:45 2007 +0000 * Make the `--prebuilt-only' / `-b' option work not just for queries but installations/upgrades as well. So `nix-env -ub \*' will upgrade only those packages for which a substitute is available (or to be precise, it will upgrade each package to the highest version for which a substitute is available). commit0b95603595
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 29 10:46:45 2007 +0000 * Depend on bash instead of sh (since we use a few bashisms). commit42d80d1170
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 29 10:03:07 2007 +0000 * On FreeBSD, sys/mount.h needs sys/param.h. commitd91cd30563
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 27 16:51:55 2007 +0000 * Detect whether chroot / bind-mount support is available. commitdc6f373842
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 27 16:06:38 2007 +0000 * Delete the chroot directory automatically. * Removed some debug messages. commit9397cd30c8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 27 00:46:59 2007 +0000 * Support for doing builds in a chroot under Linux. The builder is executed in a chroot that contains just the Nix store, the temporary build directory, and a configurable set of additional directories (/dev and /proc by default). This allows a bit more purity enforcement: hidden build-time dependencies on directories such as /usr or /nix/var/nix/profiles are no longer possible. As an added benefit, accidental network downloads (cf. NIXPKGS-52) are prevented as well (because files such as /etc/resolv.conf are not available in the chroot). However the usefulness of chroots is diminished by the fact that many builders depend on /bin/sh, so you need /bin in the list of additional directories. (And then on non-NixOS you need /lib as well...) commit0b4ed64d29
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 26 18:25:50 2007 +0000 * "trace" primop: write the trace to standard error. commitcd08fb3fde
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 24 13:54:06 2007 +0000 commitd423968ba1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 23 16:34:04 2007 +0000 * Improved introduction (actually copied mostly from the homepage). commit612b3e8fa3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 22 15:28:32 2007 +0000 * Document the new primops in Nix 0.11. commit35ac16e75e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 22 12:58:28 2007 +0000 * Move list of built-in functions to a separate file. commit1db187ff69
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 22 12:46:15 2007 +0000 commitf90d85107e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 22 12:05:30 2007 +0000 commitf8ed2e64a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 22 12:05:18 2007 +0000 commitf529a3be8a
Author: Marc Weber <marco-oweber@gmx.de> Date: Mon Oct 22 01:10:19 2007 +0000 Added comment telling about setup-hook and propagatedBuildInputs commit14e47e9c2c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 10 14:58:00 2007 +0000 * Doh. commitd04291cfab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 10 13:52:38 2007 +0000 * Doh! Don't change the permissions on /nix/store. commit315183f194
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 10 13:43:04 2007 +0000 * nix-store --optimise: flag "--dry-run" to just query what the disk savings would be. commita8629de827
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 9 22:14:27 2007 +0000 * New command `nix-store --optimise' to reduce Nix store disk space usage by finding identical files in the store and hard-linking them to each other. It typically reduces the size of the store by something like 25-35%. This is what the optimise-store.pl script did, but the new command is faster and more correct (it's safe wrt garbage collection and concurrent builds). commit27a0662828
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 9 12:51:25 2007 +0000 * listToAttrs: the list now should consist of {name, value} attribute sets instead of {attr, value}. "name" is better than "attr" because the *combination* of the two forms the attribute. commit8a9fe6c11c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 19 14:01:41 2007 +0000 * Manpage for nix-copy-closure. commit27f57c9018
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 18 14:01:14 2007 +0000 * Ignore dangling symlinks in ~/.nix-defexpr. commitf3441e6122
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 18 09:11:20 2007 +0000 * Pass various options to the worker so that flags like -K or -j work in multi-user Nix (NIX-72). * Client/worker: exchange a protocol version number for future compatibility. commit26f981c2e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 18 08:26:55 2007 +0000 * Remove garbage. commitc8ea8a09b8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 17 19:24:07 2007 +0000 * nix-env -qa: make the "-A" flag do the expected thing, namely follow the given attribute path (just as -A does with other option) (NIX-83). So you can now say $ nix-env -qa -A nixpkgs_unstable.gnome \* atk-1.12.4 esound-0.2.36 ... to see the packages in the "gnome" attribute in Nixpkgs. To *print* the attribute path, you should now use "--attr-path" / "-P" (running out of letters...). commit055608227f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 17 16:08:24 2007 +0000 * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then the Nix expressions in that directory are combined into an attribute set {file1 = import file1; file2 = import file2; ...}, i.e. each Nix expression is an attribute with the file name as the attribute name. Also recurses into directories. * nix-env: removed the "--import" (-I) option which set the ~/.nix-defexpr symlink. * nix-channel: don't use "nix-env --import", instead symlink ~/.nix-defexpr/channels. So finally nix-channel --update doesn't override any default Nix expressions but combines with them. This means that you can have (say) a local Nixpkgs SVN tree and use it as a default for nix-env: $ ln -s .../path-to-nixpkgs-tree ~/.nix-defexpr/nixpkgs_svn and be subscribed to channels (including Nixpkgs) at the same time. (If there is any ambiguity, the -A flag can be used to disambiguate, e.g. "nix-env -i -A nixpkgs_svn.pan".) commit3339f85447
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 11 13:32:04 2007 +0000 * Test the impureEnvVars feature. commit9441550acb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 4 15:38:09 2007 +0000 * nix-push / generate-patches: bzip the manifest. commit7b20c0ed4b
Author: Marc Weber <marco-oweber@gmx.de> Date: Sun Sep 2 10:36:59 2007 +0000 explanation what happens when passing true / false and null values to derivation builders added commit0d65fc08e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 30 09:50:44 2007 +0000 * Create the Nix daemon socket in a separate directory (/nix/var/nix/daemon-socket). This allows access to the Nix daemon to be restricted by setting the mode/ownership on that directory as desired, e.g. $ chmod 770 /nix/var/nix/daemon-socket $ chown root.wheel /nix/var/nix/daemon-socket to allow only users in the wheel group to use Nix. Setting the ownership on a socket is much trickier, since the socket must be deleted and recreated every time the daemon is started (which would require additional Nix configuration file directives to specify the mode/ownership, and wouldn't support arbitrary ACLs), some BSD variants appear to ignore permissions on sockets, and it's not clear whether the umask is respected on every platform when creating sockets. commitcb1c1004cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 28 16:22:08 2007 +0000 * When there are multiple substituters, make sure to release the lock on the output path after trying each. Otherwise the pathIsLockedByMe() test gets confused. commitc970b28ba0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 28 11:36:17 2007 +0000 * Fix a race condition with parallel builds where multiple fixed-output derivations or substitutions try to build the same store path at the same time. Locking generally catches this, but not between multiple goals in the same process. This happened especially often (actually, only) in the build farm with fetchurl downloads of the same file being executed on multiple machines and then copied back to the main machine where they would clobber each other (NIXBF-13). Solution: if a goal notices that the output path is already locked, then go to sleep until another goal finishes (hopefully the one locking the path) and try again. commitbc0429b1cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 28 11:31:44 2007 +0000 * Doh! Broken test. commite0d7e47862
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 28 09:39:03 2007 +0000 * PathLocks::lockPaths: don't allow reacquiring a lock we already hold. commit455a7b9577
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 28 09:21:47 2007 +0000 * Test case to show that parallel builds of different fixed-output derivations that produce the same output path don't work properly wrt locking. This happens a lot in the build farm when fetchurl derivations downloading the same file on different platforms are executed in parallel and then copied back to the main machine. commit7d5836b34d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 22 14:52:22 2007 +0000 * nix-channel: supports users who don't have write permission to the manifests directory. In that case, we don't do a nix-pull, so the user gets pure source deployment. The directory /nix/var/nix/gcroots/per-user/$USER should be writable. (It's created automatically if /nix/var/nix/gcroots/per-user is writable, e.g. if it has 1777 permission.) commit2629998e91
Author: Marc Weber <marco-oweber@gmx.de> Date: Sat Aug 18 22:12:00 2007 +0000 primop functions listToAttrs (+test), __isAttrs, __trace added new configuration style proposal in lib/default-unstable.nix commitdbc0170ed9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 15 09:24:06 2007 +0000 * Show errors in nix-prefetch-url. commit5c793ad03e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 14 13:43:51 2007 +0000 * Hopefully this fixes the test on FreeBSD. commitffa1c61cd5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 14 13:15:59 2007 +0000 * Fix the tests. commita7e1a51fdf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 13 14:56:40 2007 +0000 * A test for the nix-worker. commit550ba9ebb4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 13 13:15:02 2007 +0000 * Fix the tests. commit3757ee589f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 13 11:37:39 2007 +0000 * Bump the Nix database schema version number; delete the substitutes table. commit59afc1a15c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 13 11:15:13 2007 +0000 * Backwards compatibility. commit9e975458b4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Aug 12 00:29:28 2007 +0000 * Get rid of the substitutes database table (NIX-47). Instead, if we need any info on substitutable paths, we just call the substituters (such as download-using-manifests.pl) directly. This means that it's no longer necessary for nix-pull to register substitutes or for nix-channel to clear them, which makes those operations much faster (NIX-95). Also, we don't have to worry about keeping nix-pull manifests (in /nix/var/nix/manifests) and the database in sync with each other. The downside is that there is some overhead in calling an external program to get the substitutes info. For instance, "nix-env -qas" takes a bit longer. Abolishing the substitutes table also makes the logic in local-store.cc simpler, as we don't need to store info for invalid paths. On the downside, you cannot do things like "nix-store -qR" on a substitutable but invalid path (but nobody did that anyway). * Never catch interrupts (the Interrupted exception). commit4695f4edd6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 10 01:42:00 2007 +0000 * nix-pull: support bzipped manifests: when doing a nix-pull on $url, try $url.bz2 first. commit911bc01454
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 10 00:28:44 2007 +0000 * Enable nix-prefetch-url caching in nix-channel. commit5e52df18fe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 10 00:22:21 2007 +0000 * Don't rely on /dev/stdin. commitc5e934dcc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 9 23:52:53 2007 +0000 * nix-pull: using nix-prefetch-url (so that we get caching for free), and store the manifests in the Nix store. (So now /nix/var/nix/manifests/ just contains symlinks to the store and is searched for GC roots.) commitf881f7a017
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 9 23:16:44 2007 +0000 * nix-prefetch-url: support caching. If the environment variable NIX_DOWNLOAD_CACHE is set, then nix-prefetch-url will store the hash and timestamp of downloaded files in the directory $NIX_DOWNLOAD_CACHE. This allows it to figure out if the file is still in the Nix store. commitef240bc0d5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 7 23:40:39 2007 +0000 * Use the new patched version of the aterm library. commitd71cc503a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 7 15:00:13 2007 +0000 * Don't allocate input files on the stack. commit4cad125e08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 6 16:08:09 2007 +0000 * Optionally warn about packages that give an assertion failure. commit6da6fbfbe9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 5 20:33:04 2007 +0000 * Properly keep packages during upgrades. commit6d1a1191b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 12 16:53:44 2007 +0000 * Support queryDeriver() in multi-user installations. commit9d9e1c5c41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 11 13:59:07 2007 +0000 * Distribute bzip2 1.0.4. commit9bff7ad728
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 11 11:36:22 2007 +0000 * Check against creation of GC roots in the store. Those roots don't work, because findRoots() stops when it encounters a symlink to the store. And of course the store is supposed to be read-only. commitf3ebd03bb1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 4 12:03:33 2007 +0000 * Remove debug statement. commit40b6f06f09
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Sat Jun 2 15:03:54 2007 +0000 change default NIX_HASH_ALGO commitb47da5ea21
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 16 22:07:39 2007 +0000 commitbddc83a148
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 16 16:17:04 2007 +0000 * New builtin function "isFunction". You're not supposed to use it ;-) * Channels: fix channels that are plain lists of derivations (like strategoxt-unstable) instead of functions (like nixpkgs-unstable). This fixes the error message "error: the left-hand side of the function call is neither a function nor a primop (built-in operation) but a list". commitca00aa1171
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 15 12:14:37 2007 +0000 * Allow empty argument lists in function definitions (e.g., `{}: bla'). Also allow trailing commas (`{x, y,}: ...') as a unintented consequence. Hopefully the reduce/reduce conflict won't cause any problems. commit7046c35843
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 14 12:16:41 2007 +0000 * Typo (reported by Marc Weber). commite5da9c8803
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 7 16:59:19 2007 +0000 * Create the database directory if it doesn't exist. commit30beeb27a9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 2 19:38:02 2007 +0000 * Set the right priorities when recovering from a directory collision. commit34d4c9388b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 2 16:06:04 2007 +0000 commit93aefd9fc0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 1 23:16:38 2007 +0000 * Give unpacked channels more sensible names than 0, 1, ... They now get the basename of the channel URL (e.g., nixpkgs-unstable). The top-level Nix expression of the channel is now an attribute set, the attributes of which are the individual channels (e.g., {nixpkgs_unstable = ...; strategoxt_unstable = ...}). This makes attribute paths ("nix-env -qaA" and "nix-env -iA") more sensible, e.g., "nix-env -iA nixpkgs_unstable.subversion". commita9d15d4f43
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 1 20:33:18 2007 +0000 * nix-env -i: instead of breaking package ties by version, break them by priority and version install. That is, if there are multiple packages with the same name, then pick the package with the highest priority, and only use the version if there are multiple packages with the same priority. This makes it possible to mark specific versions/variant in Nixpkgs more or less desirable than others. A typical example would be a beta version of some package (e.g., "gcc-4.2.0rc1") which should not be installed even though it is the highest version, except when it is explicitly selected (e.g., "nix-env -i gcc-4.2.0rc1"). * Idem for nix-env -u, only the semantics are a bit trickier since we also need to take into account the priority of the currently installed package (we never upgrade to a lower priority, unless --always is given). commitcbfac2fdcc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 1 15:16:17 2007 +0000 * Set a terminate() handler to ensure that we leave the BDB environment cleanly even when an exception is thrown from a destructor. We still crash, but we don't take all other Nix processes with us. commit644946feed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 1 13:21:05 2007 +0000 * Make --verify more interruptable. commitbd1f66453a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 1 11:30:52 2007 +0000 * `nix-env -q --xml --meta' to show all meta attributes. commite20f0da22c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 30 18:41:27 2007 +0000 * Doh. commit89c1d2b202
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 27 23:48:14 2007 +0000 * Package flag "keep" that prevents a package from being removed from a user environment by an install or upgrade action. This is particularly useful if you have a version installed that you don't want to upgrade (e.g., because the newer versions are broken). Example: $ nix-env -u zapping --dry-run (dry run; not doing anything) upgrading `zapping-0.9.6' to `zapping-0.10cvs6' $ nix-env --set-flag keep true zapping $ nix-env -u zapping --dry-run (dry run; not doing anything) However, "-e" will still uninstall the package. (Maybe we should require the keep flag to be explicitly set to false before it can be uninstalled.) commita46db5d013
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 27 23:28:44 2007 +0000 * Package conflict resolution through priority levels. If there is a user environment collission between two packages due to overlapping file names, then a package with a higher priority will overwrite the symlinks of a package with a lower priority. E.g., $ nix-env --set-flag priority 5 gcc $ nix-env --set-flag priority 10 binutils gives gcc a higher priority than binutils (higher number = lower priority). commit3d05166086
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 27 22:40:59 2007 +0000 * Allow conflicting packages to be kept in a user environment, and allow switching between them (NIX-80). Example: two versions of Pan: $ nix-env -q pan pan-0.128 pan-0.14.2.91 $ readlink $(which pan) /nix/store/l38jrbilw269drpjkx7kinhrxj6fjh59-pan-0.14.2.91/bin/pan At most one of them can be active any given time. Assuming than 0.14.2.91 is active, you can active 0.128 as follows: $ nix-env --set-flag active false pan-0.14.2.91 $ nix-env --set-flag active true pan-0.128 $ readlink $(which pan) /nix/store/nziqwnlzy7xl385kglxhg75pfl5i936n-pan-0.128/bin/pan More flags to follow. commitb7f0f65c19
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 26 14:20:31 2007 +0000 * nix-env -q now has a flag --prebuilt-only (-b<) that causes nix-env to show only those derivations whose output is already in the Nix store or that can be substituted (i.e., downloaded from somewhere). In other words, it shows the packages that can be installed “quickly”, i.e., don’t need to be built from source. commit5dc05b76ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 16 16:08:44 2007 +0000 * Updated dependency information. commit5f2492eaec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 16 15:03:19 2007 +0000 * New primop "throw <string>" to throw an error. This is like abort, only thrown errors are caught by the top-level derivation evaluation in nix-env -qa / -i. commit0a8eeea9d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 16 14:45:25 2007 +0000 * Remove a warning. commit2716f9bc5f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 16 12:00:13 2007 +0000 * It seems that svnversion prints a carriage return on Cygwin, so we get a invalid #define VERSION. Use "svnversion -n" to leave out the newline. Fix provided by Marc Weber. commitae7990cc88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 30 13:24:35 2007 +0000 * Work around a bug in Apple's GCC preprocessor. commit4caca58ff7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 30 09:01:05 2007 +0000 * Make the maximum patch size configurable. commit17b506c0c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 28 15:46:21 2007 +0000 * Handle ECONNRESET from the client. Also, don't abort() if there are unexpected conditions in the SIGPOLL handler, since that messes up the Berkeley DB environment (which a client must never be able to trigger). commitefd31139df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 27 09:53:58 2007 +0000 * Forgot a @bindir@. commitd303b389a9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 26 21:05:17 2007 +0000 * `nix-copy-closure --from': copy from a remote machine instead of to a remote machine. commit7edd2e2cd2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 26 20:49:22 2007 +0000 * Refactoring. commitf3584ff535
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 21 12:39:55 2007 +0000 * Fix URL/description. commit803cb6e3b9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 20 22:04:25 2007 +0000 * Override the setuid helper using NIX_SETUID_HELPER. commita8ea4cbcc8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 20 11:13:15 2007 +0000 * Scan /proc/sys/kernel/modprobe for roots to prevent the kernel modules for the running kernel from being garbage-collected. Idem for /proc/sys/kernel/fbsplash. commit8ab229ddf2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 19 12:48:45 2007 +0000 * Terminate build hooks and substitutes with a TERM signal, not a KILL signal. This is necessary because those processes may have joined the BDB environment, so they have to be given a chance to clean up. (NIX-85) commitb2b6cf3fc8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 19 09:16:47 2007 +0000 * Undocumented option `gc-check-reachability' to allow reachability checking to be turned off on machines with way too many roots. commiteb2dd4815c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 13 11:30:57 2007 +0000 * Remove old generations in all directories under /nix/var/nix/profiles, not just in that directory itself. (NixOS puts profiles in /nix/var/nix/profiles/per-user.) commit917e06bf63
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 7 15:53:11 2007 +0000 * Delete the output paths before invoking the build hook. commitdf0283ae86
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 1 13:55:47 2007 +0000 * Get rid of those stupid --login tricks, it's the responsibility of the remote system to make sure that Nix is in the $PATH. commit30394a4f3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 1 13:49:20 2007 +0000 * sh -> bash. commitdb1973d012
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 1 13:30:46 2007 +0000 * Look for the openssl program at compile time. If not found, call openssl through $PATH at runtime. commitb4a040e52b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 1 12:30:24 2007 +0000 * Don't check the signature unless we have to. commit2ea3bebc23
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 27 23:18:57 2007 +0000 * Doh! The deriver can be empty. commit044b6482c1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 27 19:10:45 2007 +0000 * Greatly reduced the amount of stack space used by the Nix expression evaluator. This was important because the NixOS expressions started to hit 2 MB default stack size on Linux. GCC is really dumb about stack space: it just adds up all the local variables and temporaries of every scope into one huge stack frame. This is really bad for deeply recursive functions. For instance, every `throw Error(format("error message"))' causes a format object of a few hundred bytes to be allocated on the stack. As a result, every recursive call to evalExpr2() consumed 4680 bytes. By splitting evalExpr2() and by moving the exception-throwing code out of the main functions, evalExpr2() now only consumes 40 bytes. Similar for evalExpr(). commitadce01a8d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 27 17:28:51 2007 +0000 * When NIX_SHOW_STATS=1, show the amount of stack space consumed by the Nix expression evaluator. commit363e307fd3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 26 23:32:10 2007 +0000 * Error message to stdout. commitddde8e2f32
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 22 18:15:29 2007 +0000 * Handle EINTR in select(). commit27bb0ac7d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 22 17:00:58 2007 +0000 * /man -> /share/man commitfa2be32034
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 22 16:42:01 2007 +0000 * nix-copy-closure: force a login shell on the remote machine to make sure that nix-store is in the PATH. * nix-copy-closure: option --gzip to compress data. commit4c5e6d1a2f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 22 15:48:20 2007 +0000 * nix-copy-closure: option --sign. * nix-copy-closure: set SSH options through NIX_SSHOPTS.. commit024a8ed382
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 23:14:53 2007 +0000 * New command `nix-copy-closure' to copy a closure to a Nix store on another machine through ssh. E.g., $ nix-copy-closure xyzzy $(which svn) copies the closure of Subversion to machine `xyzzy'. This is like `nix-pack-closure $(which svn) | ssh xyzzy', but it's much more efficient since it only copies those paths that are missing on the target machine. commit7f6161ab3a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 23:08:55 2007 +0000 * Flush cout to show progress. commit0db450024d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 23:00:31 2007 +0000 * Export/import many paths in one go. commit9da367b7d5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 22:45:10 2007 +0000 * `nix-store -qR' and friends: print the paths sorted topologically under the references relation. This is useful for commands that want to copy paths to another Nix store in the right order. commit881feb9698
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 17:57:59 2007 +0000 * Flag `--print-invalid' in `nix-store --check-validity' to print out which paths specified on the command line are invalid (i.e., don't barf when encountering an invalid path, just print it). This is useful for build-remote.pl to figure out which paths need to be copied to a remote machine. (Currently we use rsync, but that's rather inefficient.) commit65f195f4c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 17:51:10 2007 +0000 * Check that the file containing the secret key is secret. commitbdadb98de8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 17:34:02 2007 +0000 * `nix-store --import' now also works in remote mode. The worker always requires a signature on the archive. This is to ensure that unprivileged users cannot add Trojan horses to the Nix store. commit0f5da8a83c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 16:34:00 2007 +0000 * Support exportPath() in remote mode. commitdc7d594776
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 16:23:25 2007 +0000 * importPath(): set the deriver. * exportPath(): lock the path, use a transaction. commit43c4d18c6a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 15:45:32 2007 +0000 * `nix-store --import': import an archive created by `nix-store --export' into the Nix store, and optionally check the cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify against a set of public keys.) commit46e0919ced
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 14:31:42 2007 +0000 * `nix-store --export --sign': sign the Nix archive using the RSA key in /nix/etc/nix/signing-key.sec commit6c9fdb17fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 21 14:00:46 2007 +0000 * Don't use $SHELL. commitb824a1daee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 20 23:17:20 2007 +0000 * Start of `nix-store --export' operation for serialising a store path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner. commit3390c1be76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 20 22:57:46 2007 +0000 * Temporary notes on how we're going to use OpenSSL. commit8181a1c3bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 20 22:49:08 2007 +0000 * Close the file - just in case. commit46605fb4f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 6 20:03:53 2007 +0000 * Fix 64-bit compiler warnings. commit52d03276dd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 5 12:10:10 2007 +0000 * Compatibility with docbook5-xsl. commit451dbf687f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 2 01:52:42 2007 +0000 * nix-env now maintains meta info (from the `meta' derivation attribute) about installed packages in user environments. Thus, an operation like `nix-env -q --description' shows useful information not only on available packages but also on installed packages. * nix-env now passes the entire manifest as an argument to the Nix expression of the user environment builder (not just a list of paths), so that in particular the user environment builder has access to the meta attributes. * New operation `--set-flag' in nix-env to change meta info of installed packages. This will be useful to pass per-package policies to the user environment builder (e.g., how to resolve collision or whether to disable a package (NIX-80)) or upgrade policies in nix-env (e.g., that a package should be "masked", that is, left untouched by upgrade actions). Example: $ nix-env --set-flag enabled false ghc-6.4 commitf52de527c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 15:55:49 2007 +0000 * Doh! commitb618fa6eb6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 15:51:37 2007 +0000 * computeStorePathForText: take the references into account when computing the store path (NIX-77). This is an important security property in multi-user Nix stores. Note that this changes the store paths of derivations (since the derivation aterms are added using addTextToStore), but not most outputs (unless they use builtins.toFile). commitc558b1583c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 15:15:37 2007 +0000 * Don't capitalise the primop functions. commit18e6096105
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 15:11:32 2007 +0000 * Organise primops.cc a bit better. commit7349bd0176
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 14:23:09 2007 +0000 New primitives: * `sub' to subtract two numbers. * `stringLength' to get the length of a string. * `substring' to get a substring of a string. These should be enough to allow most string operations to be expressed. commit7dedbd896a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 29 13:32:50 2007 +0000 * filterSource: pass strings to the predicate function instead of paths. Paths can have unexpected semantics. commit84a84afb0e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 24 13:31:20 2007 +0000 * Nasty: Glibc clears the TMPDIR environment variable in setuid programs, so if a builder uses TMPDIR, then it will fail when executed through nix-setuid-helper. In fact Glibc clears a whole bunch of variables (see sysdeps/generic/unsecvars.h in the Glibc sources), but only TMPDIR should matter in practice. As a workaround, we reinitialise TMPDIR from NIX_BUILD_TOP. commitfac63d6416
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 23 16:57:43 2007 +0000 * exportReferencesGraph: work on paths within store paths as well. commitbae75ca5a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 23 16:50:19 2007 +0000 * New kind of manifest object: "localPath", which denotes that a store path can be created by copying it from another location in the file system. This is useful in the NixOS installation. commit36d9258c0d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 23 16:05:59 2007 +0000 * Successors have been gone for ages. commit7bc30e1ca8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 22 09:53:36 2007 +0000 * nix-prefetch-url: change the default hash to SHA-256 (in base-32). commit71ceb1c161
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 15 14:50:25 2007 +0000 * Handle multiple indirect symlinks when loading a Nix expression. commite4b0666f8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 15 08:54:51 2007 +0000 * builtins.filterSource: pass the type of the file ("regular", "directory", "symlink") as the second argument to the filter predicate. commit63f3ce6d9a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 14 17:28:30 2007 +0000 * `nix-store --verify': revive checking the referrers table. This is important to get garbage collection to work if there is any inconsistency in the database (because the referrer table is used to determine whether it is safe to delete a path). * `nix-store --verify': show some progress. commit8f67b35886
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 14 16:24:49 2007 +0000 * Make the garbage collector more resilient to certain consistency errors: in-use paths now cause a warning, not a fatal error. commit8659edc098
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 14 12:33:04 2007 +0000 * Don't forget the .flags files. commite418976107
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 14 12:32:44 2007 +0000 * Option --argstr for passing string arguments easily. (NIX-75) commit4e329f173f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 14 12:16:58 2007 +0000 * Doh. commitafe23b5f38
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 19:50:42 2007 +0000 * nix-pack-closure: store the top-level store paths in the closure. * nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64) commitf25f900045
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 18:25:30 2007 +0000 * Allow multiple --attr / -A arguments in nix-build / nix-instantiate (NIX-74). commit215505bb46
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 17:54:01 2007 +0000 * Removed chroot support. commitf23dcdd603
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 16:17:07 2007 +0000 * Canonicalise ASTs in `nix-instantiate --eval': remove position info, sort attribute sets. commit05879db628
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 15:41:54 2007 +0000 * Memoize strict evaluation. commit5011588459
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 15:11:10 2007 +0000 * printTermAsXML: treat derivations specially; emit an element <derivation outPath=... drvPath=...> attrs </derivation>. Only emit the attributes of any specific derivation only. This prevents exponententially large XML output due to the absense of sharing. commit792878af91
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 14:48:41 2007 +0000 * Make printing an expression as XML interruptible. commit11158028be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jan 13 14:21:49 2007 +0000 * Cleanup. commit1b7840b949
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 11 19:28:28 2007 +0000 commit69c8b5b8a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 11 16:19:45 2007 +0000 * Install generate-patches into libexec. commit1f3722bd4a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 8 15:32:15 2007 +0000 * Reject patches that are larger than a certain fraction of the full archive (currently 60%). Large patches aren't very economical. commit50bdec410a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 8 15:17:18 2007 +0000 * Huge speedup in patch propagation (20 minutes or so to 3 seconds). commit4c63f9fe04
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 29 22:23:51 2006 +0000 * Another great success. commit57969b95b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 29 20:37:55 2006 +0000 * Testing 1 2 3. commitcafaceb707
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 15 21:27:26 2006 +0000 * Handle weird cases when the server redirects us while setting a cookie. commit1073b1780a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 13 14:29:05 2006 +0000 * Remove debug message. commita3e6415ba8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 12 23:05:01 2006 +0000 * New primop builtins.filterSource, which can be used to filter files from a source directory. All files for which a predicate function returns true are copied to the store. Typical example is to leave out the .svn directory: stdenv.mkDerivation { ... src = builtins.filterSource (path: baseNameOf (toString path) != ".svn") ./source-dir; # as opposed to # src = ./source-dir; } This is important because the .svn directory influences the hash in a rather unpredictable and variable way. commitb438d37558
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 12 21:51:02 2006 +0000 * In dumpPath(): pass a function object that allows files to be selectively in/excluded from the dump. commit3130f1f0fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 12 20:17:14 2006 +0000 * Push. commit7ace29dae7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 12 19:06:02 2006 +0000 * New operation `nix-env --set' which sets a user environment to a single derivation specified by the argument. This is useful when we want to have a profile for a single derivation, such as a server configuration. Then we can just say (e.g.) $ nix-env -p /.../server-profile -f server.nix --set -A server We can't do queries or upgrades on such a profile, but we can do rollbacks. The advantage over -i is that we don't have to worry about other packages having been installed in the profile previously; --set gets rid of them. commit1a7e88bbd9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 12 16:14:31 2006 +0000 * New built-in function `builtins.attrNames' that returns the names of the attributes in an attribute set. commit5e6699188f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 9 23:14:55 2006 +0000 commitb17677462c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 9 20:02:27 2006 +0000 * Use lchown() instead of chown() in canonicalisePathMetaData(). This matters when running as root, since then we don't use the setuid helper (which already used lchown()). * Also check for an obscure security problem on platforms that don't have lchown. Then we can't change the ownership of symlinks, which doesn't matter *except* when the containing directory is writable by the owner (which is the case with the top-level Nix store directory). commit5f681988f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 9 00:26:24 2006 +0000 * Use deletePathWrapped() in more places. commitfa33303146
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 8 18:41:48 2006 +0000 * Goal cancellation inside the waitForInput() loop needs to be handled very carefully, since it can invalidate iterators into the `children' map. commit06c4929958
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 8 17:26:21 2006 +0000 * Some refactoring. * Throw more exceptions as BuildErrors instead of Errors. This matters when --keep-going is turned on. (A BuildError is caught and terminates the goal in question, an Error terminates the program.) commit9dbfe242e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 8 15:44:00 2006 +0000 * Kill a build if it has gone for more than a certain number of seconds without producing output on stdout or stderr (NIX-65). This timeout can be specified using the `--max-silent-time' option or the `build-max-silent-time' configuration setting. The default is infinity (0). * Fix a tricky race condition: if we kill the build user before the child has done its setuid() to the build user uid, then it won't be killed, and we'll potentially lock up in pid.wait(). So also send a conventional kill to the child. commitd3fe6ab024
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 8 00:19:50 2006 +0000 * Also for convenience, change the ownership of the build output even in case of failure. commit096194ab29
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 23:58:36 2006 +0000 * Remove ancient terminology. commit6833e8bbe8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 23:27:40 2006 +0000 * When keeping the temporary build directory (-K), change the owner back to the Nix account. commite24d0201c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 22:07:05 2006 +0000 * Doh! commit2819eb36a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 21:43:35 2006 +0000 * Be less verbose. commit4ca01065c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 20:47:30 2006 +0000 * Rename all those main.cc files. commitd03f0d4117
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 18:51:11 2006 +0000 * Check for lchown. commitc3286ec020
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 17:52:58 2006 +0000 * Don't count on the Pid deconstructor to kill the child process, since if we're running a build user in non-root mode, we can't. Let the setuid helper do it. commita82d80ddeb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 16:40:41 2006 +0000 * Move setuidCleanup() to libutil. commitf76fdb6d42
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 16:33:31 2006 +0000 * If not running as root, let the setuid helper kill the build user's processes before and after the build. commitec23ecc64d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 15:54:52 2006 +0000 * In the garbage collector, if deleting a path fails, try to fix its ownership, then try again. commita0a43c3206
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 15:18:14 2006 +0000 * When not running as root, call the setuid helper to change the ownership of the build result after the build. commit6a07ff1ec0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 14:14:35 2006 +0000 * Change the ownership of store paths to the Nix account before deleting them using the setuid helper. commit7d8cf316ee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 11:27:32 2006 +0000 * Pass the actual build user to the setuid helper. commita45c498e4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 00:42:30 2006 +0000 * If Nix is not running as root, call the setuid helper to start the builder under the desired build user. commit813a7c65c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 00:19:27 2006 +0000 * Sanity check. commit6a8e60913a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 7 00:16:07 2006 +0000 * Move killUser() to libutil so that the setuid helper can use it. commit79875c5e42
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 23:52:25 2006 +0000 * Change the ownership of the current directory to the build user. commit62ab131412
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 23:15:26 2006 +0000 * Verify that the desired target user is in the build users group (as specified in the setuid config file). commitf07ac41656
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 22:45:41 2006 +0000 * Check that the caller is allowed to call the setuid helper. The allowed uid is specified in a configuration file in /etc/nix-setuid.conf. commit173d328351
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 20:19:25 2006 +0000 * Urgh. commitef281b93c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 20:18:29 2006 +0000 * Fix the safety check. commita14d491f09
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 20:16:28 2006 +0000 * Oops. commit6e5ec1029a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 20:00:15 2006 +0000 * Get rid of `build-users'. We'll just take all the members of `build-users-group'. This makes configuration easier: you can just add users in /etc/group. commit751f6d2157
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 17:29:10 2006 +0000 * nix-setuid-helper: allow running programs under a different uid. commit9f0efa6611
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 6 01:24:02 2006 +0000 * Start of the setuid helper (the program that performs the operations that have to be done as root: running builders under different uids, changing ownership of build results, and deleting paths in the store with the wrong ownership). commit2b558843a2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 19:01:19 2006 +0000 * Be less chatty. commit44cad9630f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 18:28:15 2006 +0000 * Urgh. Do setgid() before setuid(), because the semantics of setgid() changes completely depending on whether you're root... commit6f0d050324
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 18:21:16 2006 +0000 * Tricky: child processes should not send data to the client since that might mess up the protocol. And besides, the socket file descriptor is probably closed. commit4c1c37d0b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 18:07:46 2006 +0000 * FreeBSD returns ESRCH when there are no processes to kill. commit8d1854c3f1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 17:44:19 2006 +0000 * Oops! In daemon mode, we can't run as root either if build-users is empty. commit99655245ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 17:21:42 2006 +0000 * Use an explicit handler for SIGCHLD, since SIG_IGN doesn't do the right thing on FreeBSD 4 (it leaves zombies). commit62b0497c0f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 16:17:01 2006 +0000 * Better message. commitc808e6252f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 15:36:31 2006 +0000 * Ugly hack to handle spurious SIGPOLLs. commitfd4a9db91f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 14:15:51 2006 +0000 * Some renaming. commitfc1c20d11b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 13:57:35 2006 +0000 * Redundant. commita9c4f66cfb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 02:18:46 2006 +0000 * Allow unprivileged users to run the garbage collector and to do `nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well. commit29cf434a35
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 01:31:45 2006 +0000 * The determination of the root set should be made by the privileged process, so forward the operation. * Spam the user about GC misconfigurations (NIX-71). * findRoots: skip all roots that are unreadable - the warnings with which we spam the user should be enough. commit8623256f48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 00:48:36 2006 +0000 * findRoots: return a map from the symlink (outside of the store) to the store path (inside the store). commitd27a73b1a9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 5 00:34:42 2006 +0000 * In addPermRoot, check that the root that we just registered can be found by the garbage collector. This addresses NIX-71 and is a particular concern in multi-user stores. commit74033a844f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 23:29:16 2006 +0000 * Add indirect root registration to the protocol so that unprivileged processes can register indirect roots. Of course, there is still the problem that the garbage collector can only read the targets of the indirect roots when it's running as root... commit0d40f6d7bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 22:58:44 2006 +0000 * Not every OS knows about SIGPOLL. commit7751160e9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 19:10:23 2006 +0000 * Don't redirect stderr. commit40c3529909
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 17:55:14 2006 +0000 * Handle exceptions and stderr for all protocol functions. * SIGIO -> SIGPOLL (POSIX calls it that). * Use sigaction instead of signal to register the SIGPOLL handler. Sigaction is better defined, and a handler registered with signal appears not to interrupt fcntl(..., F_SETLKW, ...), which is bad. commit0130ef88ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 17:17:13 2006 +0000 * Daemon mode (`nix-worker --daemon'). Clients connect to the server via the Unix domain socket in /nix/var/nix/daemon.socket. The server forks a worker process per connection. * readString(): use the heap, not the stack. * Some protocol fixes. commit4740baf3a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 14:21:39 2006 +0000 * When NIX_REMOTE=daemon, connect to /nix/var/nix/daemon.socket instead of forking a worker. commitf5f0cf423f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 13:28:14 2006 +0000 * Refactoring. commit052b6fb149
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 13:15:29 2006 +0000 * Pass the verbosity level to the worker. commit1e16d20655
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 4 13:09:16 2006 +0000 * Install the worker in bindir, not libexecdir. * Allow the worker path to be overriden through the NIX_WORKER environment variable. commit9322b399f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 20:41:22 2006 +0000 * Doh. commitf4279bcde0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 16:25:19 2006 +0000 * Don't run setuid root when build-users is empty. * Send startup errors to the client. commit35247c4c9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 15:32:38 2006 +0000 * Removed `build-allow-root'. * Added `build-users-group', the group under which builds are to be performed. * Check that /nix/store has 1775 permission and is owner by the build-users-group. commit84d6459bd5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 14:32:22 2006 +0000 * Use setreuid if setresuid is not available. commita9f9241054
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 03:16:27 2006 +0000 * Handle a subtle race condition: the client closing the socket between the last worker read/write and the enabling of the signal handler. commit3ed9e4ad9b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 03:03:36 2006 +0000 * Some hardcore magic to handle asynchronous client disconnects. The problem is that when we kill the client while the worker is building, and the builder is not writing anything to stderr, then the worker never notice that the socket is closed on the other side, so it just continues indefinitely. The solution is to catch SIGIO, which is sent when the far side of the socket closes, and simulate an normal interruption. Of course, SIGIO is also sent every time the client sends data over the socket, so we only enable the signal handler when we're not expecting any data... commit4251f94b32
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 02:36:44 2006 +0000 * Use a Unix domain socket instead of pipes. commit8c76df93e6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 02:22:04 2006 +0000 * Better error message if the worker doesn't start. commit363f40022f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 02:12:26 2006 +0000 * Pid::kill() should be interruptable. commit7951c3c546
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 02:08:13 2006 +0000 * Some hackery to propagate the worker's stderr and exceptions to the client. commit714fa24cfb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 3 00:52:27 2006 +0000 * Run the worker in a separate session to prevent terminal signals from interfering. commite25fad691a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 16:41:36 2006 +0000 * Move addTempRoot() to the store API, and add another function syncWithGC() to allow clients to register GC roots without needing write access to the global roots directory or the GC lock. commit30bf547f4f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 15:46:17 2006 +0000 * Doh. commit536595b072
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 15:45:51 2006 +0000 * Remove most of the old setuid code. * Much simpler setuid code for the worker in slave mode. commit9c9cdb06d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 14:34:14 2006 +0000 * Remove SwitchToOriginalUser, we're not going to need it anymore. commit626f8ee42f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 14:33:39 2006 +0000 * Clear NIX_REMOTE in the tests. commit8ba5d32769
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 2 14:27:24 2006 +0000 * Remove queryPathHash(). * Help for nix-worker. commitfcd9900d74
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 1 21:00:39 2006 +0000 * Replace read-only calls to addTextToStore. commita824d58b56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 1 20:51:18 2006 +0000 * Merge addToStore and addToStoreFixed. * addToStore now adds unconditionally, it doesn't use readOnlyMode. Read-only operation is up to the caller (who can call computeStorePathForPath). commitceb982a1be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 1 18:02:05 2006 +0000 * Right name. commitb0d8e05be1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 1 18:00:01 2006 +0000 * More operations. * addToStore() and friends: don't do a round-trip to the worker if we're only interested in the path (i.e., in read-only mode). commit0565b5f2b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 22:43:55 2006 +0000 * More remote operations. * Added new operation hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0. commitaac547a8b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 21:32:46 2006 +0000 * Doh. commit0263279071
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 20:45:20 2006 +0000 * More operations. commita711689368
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 20:13:59 2006 +0000 * First remote operation: isValidPath(). commit765bdfe542
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 19:54:43 2006 +0000 * When NIX_REMOTE is set to "slave", fork off nix-worker in slave mode. Presumably nix-worker would be setuid to the Nix store user. The worker performs all operations on the Nix store and database, so the caller can be completely unprivileged. This is already much more secure than the old setuid scheme, since the worker doesn't need to do Nix expression evaluation and so on. Most importantly, this means that it doesn't need to access any user files, with all resulting security risks; it only performs pure store operations. Once this works, it is easy to move to a daemon model that forks off a worker for connections established through a Unix domain socket. That would be even more secure. commit40b3f64b55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 19:19:59 2006 +0000 * Skeleton of the privileged worker program. * Some refactoring: put the NAR archive integer/string serialisation code in a separate file so it can be reused by the worker protocol implementation. commit9adc074dc3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 18:35:50 2006 +0000 * Oops. commit9cf1948993
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 18:35:36 2006 +0000 * Skeleton of remote store implementation. commit6ecb840fd1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 18:02:04 2006 +0000 * Put building in the store API. commite2ef5e07fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 17:43:04 2006 +0000 * Refactoring. There is now an abstract interface class StoreAPI containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations. commit5f0b9de6d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 15:06:46 2006 +0000 * Benchmarking Unix domain sockets. commitfe15f991e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 30 11:24:10 2006 +0000 * Troubleshooting information on fixing a b0rked Berkeley DB database. commit80b742dd52
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 29 22:07:49 2006 +0000 * Don't spam. commit92417600a1
Author: Roy van den Broek <rbroek@cs.uu.nl> Date: Wed Nov 29 21:58:09 2006 +0000 * Example script to set permissions for setuid operation. commit71e867c5f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 29 21:06:58 2006 +0000 * Remove --enable-setuid, --with-nix-user and --with-nix-group. Rather, setuid support is now always compiled in (at least on platforms that have the setresuid system call, e.g., Linux and FreeBSD), but it must enabled by chowning/chmodding the Nix binaries. commitc6a97e3b74
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 24 20:24:14 2006 +0000 * Doh! Path sizes need to be computed recursively of course. (NIX-70) commita76efaeb3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 24 20:07:30 2006 +0000 * Dead files. commitd941186289
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 18 19:03:45 2006 +0000 * Show more progress. commit0541ddc7e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 18 18:56:30 2006 +0000 * Turn off synchronisation between C and C++ I/O functions. This gives a huge speedup in operations that read or write from standard input/output. (So libstdc++'s I/O isn't that bad, you just have to call std::ios::sync_with_stdio(false).) For instance, `nix-store --register-substitutes' went from 1.4 seconds to 0.1 seconds on a certain input. Another victory for Valgrind. commit471749ca7e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 14 19:18:52 2006 +0000 * Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr... commit17d18b1a9c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 14 19:11:36 2006 +0000 * Doh! commit0ddaee756e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 14 19:08:46 2006 +0000 * Doh. commitbce9ff7ece
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 14 15:36:27 2006 +0000 * Use the patched ATerm library. commit745e354b19
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 14 10:23:21 2006 +0000 * Push. commitf459a5bb3a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 13 18:19:05 2006 +0000 * Remove the undocumented `noscan' feature. It's no longer necessary now that reference scanning is sufficiently streamy. commite2a70b7ec0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 13 18:18:13 2006 +0000 * Magic attribute `exportReferencesGraph' that allows the references graph to be passed to a builder. This attribute should be a list of pairs [name1 path1 name2 path2 ...]. The references graph of each `pathN' will be stored in a text file `nameN' in the temporary build directory. The text files have the format used by `nix-store --register-validity'. However, the deriver fields are left empty. `exportReferencesGraph' is useful for builders that want to do something with the closure of a store path. Examples: the builders that make initrds and ISO images for NixOS. `exportReferencesGraph' is entirely pure. It's necessary because otherwise the only way for a builder to get this information would be to call `nix-store' directly, which is not allowed (though unfortunately possible). commite40d4a5604
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 13 16:48:27 2006 +0000 * Option `--reregister' in `nix-store --register-validity'. We need this in the NixOS installer (or in the buildfarm) to ensure that the cryptographic hash of the path contents still matches the actual contents. commite790404318
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 13 14:54:18 2006 +0000 * Don't use the result of `uname -p' on x86_64 as it gives wacky results on some machines. (NIX-69) commit983c5e3fce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 7 14:51:28 2006 +0000 * Fix the locking patch for Berkeley DB 4.5. commit7e85a2af5f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 3 16:17:39 2006 +0000 * Fix importing of derivation outputs. commitb3f916995a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 31 18:45:17 2006 +0000 * Oops, `nix-build --no-out-link' was broken. commit005eecfc4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 30 16:29:05 2006 +0000 * Release notes. commit8478cd260f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 30 11:56:09 2006 +0000 * readFile: don't overflow the stack on large files. commit8d17265ac4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 28 22:07:09 2006 +0000 * Don't use EPSV. commitae6fb27f18
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 28 16:33:54 2006 +0000 * `nix-store --read-log / -l PATH' shows the build log of PATH, if available. For instance, $ nix-store -l $(which svn) | less lets you read the build log of the Subversion instance in your profile. * `nix-store -qb': if applied to a non-derivation, take the deriver. commit99b0ea7c67
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 26 23:06:47 2006 +0000 * Typo reported by Arie Middelkoop. * Left out close-quote in example. commitdd300fb48d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 23 16:45:19 2006 +0000 * Some better error messages. commit1d694eef4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 19:20:18 2006 +0000 * Require Perl 5.8.0 or newer. I mean, it *is* more than four years old... commit7a4497d98c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 17:44:51 2006 +0000 * Checks for allowedReferences and some other features. * Use nix-build in a test. commit17f4883bfe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 17:43:58 2006 +0000 * Better message. commit9bd93f7606
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 17:39:02 2006 +0000 * toFile: maintain the references. commitb3d3700e11
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 17:30:09 2006 +0000 * nix-build: check the exit status of `nix-store -r'. commit6a67556f71
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 19 16:09:24 2006 +0000 * Special derivation attribute `allowedReferences' that causes Nix to check that the references of the output of a derivation are in the specified set. For instance, allowedReferences = []; specifies that the output cannot have any references. (This is useful, for instance, for the generation of bootstrap binaries for stdenv-linux, which must not have any references for purity). It could also be used to guard against undesired runtime dependencies, e.g., {gcc, dynlib}: derivation { ... allowedReferences = [dynlib]; } says that the output can refer to the path of `dynlib' but not `gcc'. A `forbiddedReferences' attribute would be more useful for this, though. commitdaa8f85fcd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 14:13:15 2006 +0000 * Backwards compatibility hack for user environments made by Nix <= 0.10. commit24737f279e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 14:01:45 2006 +0000 * Backwards compatibility with old user environment manifests. commit4bd5cdb90b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 14:01:28 2006 +0000 * Print out the offending path. commit58ff6939f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 12:58:42 2006 +0000 * An awful backwards compatibility hack. commit3059df0f1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 12:34:13 2006 +0000 * baseNameOf: paths don't have to be absolute. commit822dba2210
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 12:15:15 2006 +0000 * Maintain the references for the user environment properly. commitdfc042a0c1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 11:16:02 2006 +0000 * Another test. commit9e30694f98
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 11:08:59 2006 +0000 * Fix the tests wrt the AST changes, i.e., Str(s) -> Str(s, []), and the semantic changes. commitbe1961c9f8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 11:07:11 2006 +0000 * toPath: should be the identity on paths. commitcba913c521
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 11:05:34 2006 +0000 * dirOf: return a path if the argument is a path. commitcf705eaf78
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 10:58:12 2006 +0000 * toString: don't copy paths. So toString can be used to pass non-store paths to a builder. commit7de5fe2fc2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 10:57:25 2006 +0000 * Do the path check on the normal form. commit46b631b6c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 17 10:15:42 2006 +0000 * Don't generate an empty drvPath attribute in the manifest. commitd7efd76394
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 16 15:55:34 2006 +0000 * Big cleanup of the semantics of paths, strings, contexts, string concatenation and string coercion. This was a big mess (see e.g. NIX-67). Contexts are now folded into strings, so that they don't cause evaluation errors when they're not expected. The semantics of paths has been clarified (see nixexpr-ast.def). toString() and coerceToString() have been merged. Semantic change: paths are now copied to the store when they're in a concatenation (and in most other situations - that's the formalisation of the meaning of a path). So "foo " + ./bla evaluates to "foo /nix/store/hash...-bla", not "foo /path/to/current-dir/bla". This prevents accidental impurities, and is more consistent with the treatment of derivation outputs, e.g., `"foo " + bla' where `bla' is a derivation. (Here `bla' would be replaced by the output path of `bla'.) commit4c9aa821b9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 13 14:08:14 2006 +0000 * Fix version. commit142863a89d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 13 12:11:30 2006 +0000 * Use Berkeley DB 4.5. commit37c8a664f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 13 11:49:55 2006 +0000 * A helpful message. commite4af398681
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 13 11:15:53 2006 +0000 * Don't crash when upgrading the Berkeley DB environment. commit2a535689fe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 12 20:13:29 2006 +0000 * Reduce the maximum archive size for patch generation to 100 MB to prevent trashing on nix.cs.uu.nl. commit7d4567f2cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 11 21:59:33 2006 +0000 * Removed URIs from the evaluator (NIX-66). They are now just another kind of notation for strings. commitb4e012ab4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 11 13:39:00 2006 +0000 * Merge 0.10.1 release notes. commit0c4c5c2020
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 10 21:23:35 2006 +0000 * Quick hack to fix NIX-67: evaluation result differing if the Nix expression resides in the store. commitbd0c40e1e9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 10 15:07:23 2006 +0000 * `import': unwrap the context. Necessary to make `import (x + y)' work, where x is a store path. commit7bada48b36
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 6 13:45:29 2006 +0000 * Bumped the version number to 0.11. commite1cc84259c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 6 09:59:02 2006 +0000 * Too lazy to document nix-push --copy. commitb3fc016061
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 6 09:03:39 2006 +0000 * Translate Unicode quote characters to ASCII equivalents when generating NEWS.txt. commit3815d2d463
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 6 07:47:56 2006 +0000 * Typos etc. * Set the release date. commitbeee18de88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 23:13:15 2006 +0000 * Document nix-store --delete. commiteff573f563
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 23:01:50 2006 +0000 * Work around a weird bug in the manpage generation. commit9e08f5efe1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 22:57:07 2006 +0000 * Documented nix-store --dump / --restore. commit8791ffbc88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 22:56:52 2006 +0000 * Documented new nix-env options. commit99ef620c8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 20:41:57 2006 +0000 * Documented nix-instantiate --xml, --strict. * Added an example to the nix-build section. commit8396b59286
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 20:07:41 2006 +0000 * Documented --attr / -A. commit5d769de8a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 09:08:52 2006 +0000 * Document --arg. commit6f2bfd92b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 5 08:21:52 2006 +0000 * Manual. commitd98f750fd8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 18:58:11 2006 +0000 * tmpnam() -> File::Temp::tempdir(). commit34427a7b43
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 17:07:58 2006 +0000 * Weird. commita3fd53b9eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 17:07:52 2006 +0000 * Style tweak. commit59ef0aaf3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 16:02:18 2006 +0000 * Strings. commit407c9fd520
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 15:20:19 2006 +0000 * Explanation of toXML example. commit0ef3bd3c37
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 12:20:07 2006 +0000 * Use GIF callouts instead of PNG since the GIFs have transparency. commit4a7ece698b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 08:26:05 2006 +0000 commitbd4f1b4bb8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 4 08:14:35 2006 +0000 * Style tweaks. commit96fa456a0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 3 15:39:34 2006 +0000 * An example of using toXML to pass structured information to a builder and generate a Jetty configuration file with XSLT. commit5fd44654db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 3 15:38:59 2006 +0000 * toXML: propagate the context to allow derivations to be used in the argument. commit3837fb233c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 3 15:19:05 2006 +0000 * Document the built-in functions. commitd20c3011a0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 3 14:55:54 2006 +0000 * toFile: added an additional argument to specify the store path suffix, e.g., `builtins.toFile "builder.sh" "..."'. * toFile: handle references to other files correctly. commit84e6c43e85
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 22:11:44 2006 +0000 * Documented nix-hash. commitcfe35ca0e0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 20:28:52 2006 +0000 * Manual. commit853252ac66
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 16:14:30 2006 +0000 * Document the new let. commitac19b333b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 15:52:44 2006 +0000 * Finally, a real "let" syntax: `let x = ...; ... z = ...; in ...'. commit7581cfdee4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 14:43:15 2006 +0000 * Hack for Bison 2.3 compatability. commitf316b6c1a9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 11:50:55 2006 +0000 * Manual updates (especially how nix-build makes testing packages much easier; no longer need a helper expression). commit91a01e6fcf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 2 09:01:36 2006 +0000 * Manual. commit88d422567e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 29 14:59:10 2006 +0000 * One-click installs. commit0212feeed6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 29 14:16:41 2006 +0000 * Document nix-install-package and the nixpkg file format. commit070e07ed5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 29 11:03:16 2006 +0000 * Manual. commit30c7db85d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 29 10:31:56 2006 +0000 * Manual updates, some style improvements. commite2eed05224
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 28 09:10:53 2006 +0000 * Manual updates. * Documented nix-{pack,unpack}-closure. commit4ad6fb7ea3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 27 21:04:07 2006 +0000 * Fix setuid builds. commit015ac7c7da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 27 13:27:26 2006 +0000 * Release notes. commita9a6356ffc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 27 12:43:00 2006 +0000 * Release notes. commite47d42536f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 26 09:57:27 2006 +0000 * Release notes. commit5ca45d085e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 15:11:59 2006 +0000 * Use "propagated-user-env-packages", not "propagated-build-inputs" for packages that should be propagated to the user environment. commit02f2335712
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 15:07:45 2006 +0000 * Propagated packages now have lower priority; they are symlinked *after* the packages that have been explicitly installed, and collisions are ignored. commit3632019b73
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 14:00:59 2006 +0000 * Quick hack to let nix-install-package set the package name properly (e.g., "java-front-0.9pre15899" instead of "java-front"; particularly important when doing upgrades later on). commitd43565c3e8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 11:11:16 2006 +0000 * In `nix-channel --update', skip manifests that assume a Nix store at a different location than the user's. This makes channels usable as a source deployment mechanism for people who install Nix under non-standard prefixes. (NIX-57) commit68ae953d8a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 10:44:27 2006 +0000 * Clean up calls to system(). commit76c9710091
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 25 10:29:25 2006 +0000 * Use builtins.toPath. commite347033f71
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 24 21:39:57 2006 +0000 * The result of a concatenation with a derivation on the left-hand side should be a path, I guess. * Handle paths that are in the store but not direct children of the store directory. * Ugh, hack to prevent double context wrapping. commit0e705391db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 24 18:23:32 2006 +0000 * Primop `toPath' to convert a string to a path. * Primop `pathExists' to check for path existence. commite47e0c2dbe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 24 17:48:41 2006 +0000 * Builtin function `getEnv' for getting environment variables. commitdf8873e14a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 24 15:21:48 2006 +0000 * lessThan primitive for integer comparison. commit2ab4bc44c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 15:29:21 2006 +0000 * Builtin function `add' to add integers. * Put common test functions in tests/lang/lib.nix. commitd315210612
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 14:55:19 2006 +0000 * Added a builtin function `isList' to test whether a value is a list. With this primitive, a list-flattening function can be implemented (NIX-55, example is in tests/lang/eval-okay-flatten.nix). commitc02a44183f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 14:46:36 2006 +0000 * Builtin functions `head' and `tail' to return the head and tail of list. Useful for lots of things, such as implementing a fold function (see NIX-30, example is in tests/lang/eval-okay-list.nix). commit8a1ab709a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 14:31:55 2006 +0000 * New builtin functions builtins.{hasAttr, getAttr} to check for attribute existence and to return an attribute from an attribute set, respectively. Example: `hasAttr "foo" {foo = 1;}'. They differ from the `?' and `.' operators in that the attribute name is an arbitrary expression. (NIX-61) commit666babbbfa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 13:10:30 2006 +0000 * Use a bounded amount of memory in scanForReferences() by not reading regular files into memory all at once. commit385c6f8737
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 12:07:41 2006 +0000 * Supply the 64-bit ATerm patch, but don't apply it (since that requires rerunning Autoconf/Automake). Interested users should do that themselves. commitd22d7565f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 11:28:23 2006 +0000 * Don't allocate the buffer twice. commitb43aeadbc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 11:13:35 2006 +0000 * Don't allocate more than SIZE_MAX bytes. commit4cab35d1a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 22 11:13:12 2006 +0000 * Build with -D_FILE_OFFSET_BITS=64 to support files >= 2^31 bytes (NIX-22). commit25df501704
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 21 19:06:34 2006 +0000 * GC options in nix-store --help (NIX-15). commit0bd5eb71a0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 21 18:54:08 2006 +0000 * `nix-install-package --url': install from a URL (NIX-12). * `nix-install-package --help' (NIX-9). * `nix-install-package --non-interactive': don't prompt or pause. * Tests for nix-install-package. * Security fixes: filter the values obtained from the nixpkg. commit4e91d8621f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 21 18:52:05 2006 +0000 * Fix comment. commitee5040421f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 21 11:29:14 2006 +0000 * Try konsole and gnome-terminal in addition to xterm. commit1bdc152931
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 16:36:29 2006 +0000 * Shut up a warning. commit1b804f88e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 16:23:14 2006 +0000 * Absolute path to rm (NIX-51). * Don't hardcore /nix/bin and /nix/store. commit0623359fbc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 16:15:32 2006 +0000 * Print a better error message for wrong hashes (NIX-49). commit22d13d6ec2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 15:28:47 2006 +0000 * Check for patch (NIX-59). commit947e645789
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 15:14:19 2006 +0000 * Hide warnings about a missing "lsof" (NIX-54). commita060adf165
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 20 15:04:04 2006 +0000 * Use paths, not strings, when calling the function that generates NARs. Fixes the impurity of nix-push (NIX-21). * Better help. commit7dd342e482
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 19 16:40:22 2006 +0000 * Doh. commitee6cf99660
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 19 16:14:15 2006 +0000 * Doh! Of course we have to take execute permission into account. * Restore the mtime on modified directories. commit6dbed1bf38
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 19 14:58:35 2006 +0000 * `optimise-store.pl' reduces disk space consumption by hard-linking all identitical files in the Nix store to each other. (Previously it only computed the size that would be saved by doing so.) commit07cec27848
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 19 14:27:28 2006 +0000 * Cleanups. commit9488ae7357
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 19 13:53:35 2006 +0000 * `show-duplication.pl', a small utility that shows the amount of package duplication present in (e.g.) a profile. It shows the number of instances of each package in a closure, along with the size in bytes of each instance as well as the "waste" (the difference between the sum of the sizes of all instances and the average size). $ ./show-duplication.pl /nix/var/nix/profiles/default gcc 11 3.3.6 19293318 3.4.4 21425257 ... average 14942970, waste 149429707 coreutils 6 ... average package duplication 1.87628865979381, total size 3486330471, total waste 1335324237, 38.3017114443825% wasted This utility is useful for measuring the cost in terms of disk space of the Nix approach. commite0afaf1857
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 14 22:48:59 2006 +0000 * Wow, that bug has been there since r764. commit86cbd93ec1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 14 22:33:53 2006 +0000 * nix-env --switch-generation / --list-generations / --delete-generations: lock the profile to prevent (extremely unlikely) race conditions. commit5c38c863bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 14 22:30:33 2006 +0000 * Fix a huge gaping hole in nix-env w.r.t. the garbage collector. Nix-env failed to call addPermRoot(), which is necessary to safely add a new root. So if nix-env started after and finished before the garbage collector, the user environment (plus all other new stuff) it built might be garbage collected, leading to a dangling symlink chain in ~/.nix-profile... * Be more explicit if we block on the GC lock ("waiting for the big garbage collector lock..."). * Don't loop trying to create a new generation. It's not necessary anymore since profiles are locked nowadays. commitf00bc4c94c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 12 09:29:28 2006 +0000 * "Too many links" error. commit01d169f817
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 11 13:05:15 2006 +0000 * Support `++'. * More follow restrictions on layout. commitfeb63da431
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 8 09:31:07 2006 +0000 * Remove debug message. commita04a65d7a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 6 14:29:49 2006 +0000 * Release notes. commit2e210b2387
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 6 14:23:04 2006 +0000 * Convenience option `nix-collect-garbage -d' (--delete-old): removes old generations of *all* profiles in /nix/var/nix/profiles, then runs the garbage collector. Quick way to get rid of all old stuff. Of course, one cannot roll back to earlier points in time after this. commit89ac8db74f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 5 11:34:50 2006 +0000 * Package the include directory. commita89a201598
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 5 10:32:47 2006 +0000 * Missing #include. commitfc195519b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 5 08:54:48 2006 +0000 * Sone missing #includes. commitbafc1690fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 22:55:28 2006 +0000 * Move setuid stuff to libutil. * Install libexpr header files. commite5a6c09b12
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 22:41:36 2006 +0000 * Install header files in /nix/include/nix. commit4be5443882
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 22:08:40 2006 +0000 * Remove unnecessary inclusions of aterm2.h. commit2382a729e0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 21:50:39 2006 +0000 * Don't need extern "C". commite3ce954582
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 21:36:15 2006 +0000 * Compile the lexer as C++ code. Remove all the redundant C/C++ marshalling code. commit75068e7d75
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 21:06:23 2006 +0000 * Use a proper namespace. * Optimise header file usage a bit. * Compile the parser as C++. commitaab8812732
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 4 15:12:24 2006 +0000 * Store the Nix libraries in ${libdir}/nix instead of ${libdir}. commit7974aae81c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 1 12:07:31 2006 +0000 * New primop: builtins.toFile, which writes a string into the store and returns its path. This can be used to (for instance) write builders inside a Nix expression, e.g., stdenv.mkDerivation { builder = " source $stdenv/setup ... "; ... } commitde90fdf908
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 1 12:04:06 2006 +0000 * Allow "$" in strings as long as they are not followed by "{". (Too bad flex doesn't have lexical restrictions, the current solution isn't quite right...) commitc9586b6c3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 1 12:02:39 2006 +0000 * Fix race condition in the test. commitc25f688e23
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 31 15:38:43 2006 +0000 * Doh! Doh! Doh! commit354d58b3d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 31 11:40:39 2006 +0000 * Better error checking. commitf93f7b75be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 30 13:10:04 2006 +0000 * Okay, that's a bit harder than expected. commitdce1afdc67
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 30 12:25:27 2006 +0000 * TDD: == should do a deep equality test, i.e., it should strictly evaluate its arguments. commit3151bdea55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 30 12:00:27 2006 +0000 * Uninitialised variable. commit547b119f25
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 29 15:40:49 2006 +0000 * Support singleton values and nested lists again in `args', but print a warning. commit2132d9ddeb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 29 15:29:38 2006 +0000 * Fix the ~ operator. commit1f6616dabf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 29 15:29:19 2006 +0000 * Backwards compatibility test for ~. commit1ec9f55741
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 28 21:47:42 2006 +0000 * In toString, deal with nested lists properly (i.e., flatten them). commit1fca76870b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 28 13:31:06 2006 +0000 * Removed processBinding, instead we now apply toString to all derivation attributes to flatten them into strings. This is possible since string can nowadays be wrapped in contexts that describe the derivations/sources referenced by the evaluation of the string. commit8a6080eb14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Aug 26 16:48:01 2006 +0000 * Refactoring. commit4b66cebe7b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 25 17:09:55 2006 +0000 * Remove those storePath attribute sets, we don't need 'em. commite5678b3435
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 25 16:23:42 2006 +0000 * Map "ppc" to "powerpc" so that Linux on PowerPC will be reported as "powerpc-linux". commite64c4f5742
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 25 13:36:17 2006 +0000 * Doh! (NIX-58) commitbf738f0070
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 25 12:14:57 2006 +0000 * Honour DESTDIR so that bzip2/bunzip2 get installed in the right location when building RPMs (fixes NIX-58). commit3e8dccf6ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 24 15:02:39 2006 +0000 * Escape newlines in XML attributes to prevent them from being normalised away. commit215ec2ddc6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 24 14:34:29 2006 +0000 * New primop __toXML (or builtins.toXML) to convert an expression to an XML representation stored in a string. This should be useful to pass structured information to builders. commitf793caf936
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 24 14:16:55 2006 +0000 * Refactoring. commitda25d80152
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 24 14:03:39 2006 +0000 * Strict evaluation and XML printing of lists. commit943ab38a0d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 24 13:39:22 2006 +0000 * Refactoring: move strictEval to libexpr. commitf41297fdce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 23 16:33:21 2006 +0000 * Allow --arg in nix-env as well, example: $ nix-env -qa --system-filter \* --arg system '"powerpc-darwin"' to override the system from the default value (__currentSystem in all-packages.nix). commit9638f3f393
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 23 16:20:14 2006 +0000 * Pass the autoArgs to findAlongAttrPath so that "nix-instantiate foo.nix -A attr --arg name value" will work if (name, value) is needed in the evaluation leading up to "attr". commitb19cebc513
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 23 15:46:27 2006 +0000 * Quotes. commit38f18aa6d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 23 15:46:00 2006 +0000 * New primop: abort "error message". commit4a053bfdfd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 23 14:39:11 2006 +0000 * A new primop `builtins', which returns an attribute set containing all the primops. This allows Nix expressions to test for new primops and take appropriate action if they're not available. For instance, rather than calling a primop `foo' directly, they could say `if builtins ? foo then builtins.foo ... else ...'. commit68515b5a96
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 22 13:19:06 2006 +0000 * Release notes. commit561a07f51d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 22 13:18:51 2006 +0000 * Revert unintentional commit. commit93d9797eda
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 22 09:34:38 2006 +0000 * Urgh (see NIX-56). commit1a9a1f2768
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 21 16:05:11 2006 +0000 * Convert to DocBook 5. * Use Jing for RelaxNG validation, xmllint seems buggy. commitcc0505f033
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 17 12:21:39 2006 +0000 * Distribute *.exp.xml. commit4874fd2d9a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 17 11:28:29 2006 +0000 * Test for `nix-instantiate --eval-only --xml'. commit24e234a2fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 17 08:53:08 2006 +0000 * Print attributes in sorted order, rather than the arbitrary order produced by ATermMap. Necessary for testing. * `--strict' should also work on stdin. commit22ba63df16
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 16 21:59:53 2006 +0000 * More XML output. `--strict' to strictly evaluate attribute sets and so on. * Removed `--print-args', it's subsumed by `--eval-only --xml'. commit18e4ac0fc6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 16 10:32:30 2006 +0000 * `nix-instantiate --{eval|parse}-only --xml': print an XML representation instead of an ATerm. * Indent XML output. commitfe101fa785
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 16 10:29:43 2006 +0000 * Meh. commit2670642733
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 16 10:28:44 2006 +0000 * Handle carriage returns. Fixes NIX-53. commitbfe19b3c37
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 16 10:23:02 2006 +0000 * A test for NIX-53. commit3e5b68068b
Author: Martin Bravenboer <martin.bravenboer@logicblox.com> Date: Tue Aug 15 21:37:48 2006 +0000 On cygwin, disable the check that the output is not group or world writable. File permissions on Cygwin are rather complex, and in this case this check introduced a problem with build jobs invoke from outside of Cygwin (MSYS). It seemed almost impossible to fix the permissions of the directory, so for now this safety check is disabled on Cygwin. commit7455fd8835
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 14 14:24:18 2006 +0000 * Put the value in an attribute. commit4250b641d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 11 20:26:49 2006 +0000 * `nix-store --gc --print-dead': print the total size of the store objects that would be freed. commit92f7dfa5b7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 11 20:15:20 2006 +0000 * Don't assume that paths returned by the runtime root finder are valid. commitd19b6521fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 10 20:19:13 2006 +0000 * New configuration setting `build-max-jobs' which sets the default for the `-j' flag (i.e., the maximum number of jobs to execute in parallel). Useful on multi-processor machines. commit3e239a37ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 9 19:37:23 2006 +0000 * file:/ -> file:// commitf1aa71a92f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 9 15:12:34 2006 +0000 * Fix the help message wrt --attr. commita18d02e0b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 9 15:08:47 2006 +0000 * Print a warning that the subpath operator (~) is deprecated. commitc0bfcbdd45
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Tue Aug 8 15:42:33 2006 +0000 rework the --target flag. If this flag is used, a URI should be given. Default values are not changed. commita0607be7f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 7 19:48:38 2006 +0000 * Workaround for a bug (?) in GCC 2.95. commit5a6b45e252
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 7 18:22:57 2006 +0000 * In nar.nix, path -> storePath, otherwise we get a collision between environment variable names on Cygwin (where they are case insensitive). commita61129c48c
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Sat Aug 5 00:33:52 2006 +0000 add coreutils to the default PATH for this scripts, so we know for sure we have tools like rm, mkdir, and so on commitf1947cce93
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Sat Aug 5 00:31:04 2006 +0000 prevent doing recursive chroots, by unsetting NIX_ROOT in the scripts. commit1854f84e83
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 4 17:07:13 2006 +0000 * Fix a few warnings. commitdcff8cdb76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 4 16:01:26 2006 +0000 * Weird issue on Cygwin with the include file order. commitf4a502a09a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 4 11:51:46 2006 +0000 * Use old-school pipe opens; the new style is Perl >= 5.8.0. commit981eff065b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 4 11:45:50 2006 +0000 * Remove the dependency on `date', use strftime instead. commit339e6f0e1d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 3 15:52:09 2006 +0000 * `nix-env -q --xml': show query result in XML format for easier automated processing. commit0e267e2625
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 3 14:49:57 2006 +0000 * `nix-instantiate --print-args': produce XML output so that the result can be used more easily by scripts. commit4750f6c5ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 3 13:21:21 2006 +0000 * Simple class for writing XML files. commitfcb784051f
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Thu Aug 3 11:48:09 2006 +0000 urgh...for some weird reason this one-liner was not in svn. PEBKAC! commita29b64a231
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 1 13:50:10 2006 +0000 * Better error checking. commit4fde308ec0
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Tue Aug 1 13:15:55 2006 +0000 add a flag --target, so we can override the URL in the MANIFEST file. This is only for local copies (so file:///) commit601a8eab79
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 1 12:00:37 2006 +0000 * Ugh. Darwin's chmod insists that flags come before the mode specification. commit6ac237e242
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 1 09:43:41 2006 +0000 * Show some progress. commit4661282fde
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 28 16:03:28 2006 +0000 * `nix-instantiate ... --arg NAME VALUE': allow arguments to be passed to functions from the command line. * nix-build: started removing backticks. commitc11839d7b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 28 14:01:29 2006 +0000 * `nix-instantiate --print-args': print out the valid values for functions arguments that have a domain. commitca2238cf81
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 26 15:05:15 2006 +0000 * Refactoring: get the selection path stuff out of getDerivations() and put it into a separate function findAlongAttrPath(). commit2317d8f671
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 25 21:21:50 2006 +0000 * `nix-instantiate --print-args' prints out the arguments of a top-level function. commit0e6dc72a7a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 25 16:40:38 2006 +0000 * Applied rbroek's patch from the branch at https://svn.cs.uu.nl:12443/repos/trace/buildfarm-control/trunk/ext/nix/, with some modifications. This allows `nix-env -qa' to show the attribute path that can be used to unambiguously install a package using `nix-env -i -A'. Example: $ nix-env -f top-level/all-packages.nix -qaA subversion xorg-server subversionWithJava subversion-1.2.3 subversion subversion-1.3.2 subversion14 subversion-1.4.0pre-rc1 xorg.xorgserver xorg-server-1.1.0 commitb11aeb2c4b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 25 13:15:23 2006 +0000 * Doh. commit5744dd5480
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 25 11:53:22 2006 +0000 * Support the --attr / -A flag in nix-env as well. So now we can do, e.g., $ nix-env -i -A subversion xorg.xorgserver The main advantage over using symbolic names is that using attribute names is unambiguous and much, much faster. commit7a3a5d1608
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 24 16:49:28 2006 +0000 * When there is a domain check, we have to evaluate the argument. Can't be lazy! commitf4c5531d92
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 24 16:35:34 2006 +0000 * New language feature: domain checks, which check whether a function argument has a valid value, i.e., is in a certain domain. E.g., { foo : [true false] , bar : ["a" "b" "c"] }: ... This previously could be done using assertions, but domain checks will allow the buildfarm to automatically extract the configuration space from functions. commit88acffa20a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 24 16:19:08 2006 +0000 * `touch' might not be in $PATH. commitb545c669a0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 24 15:50:29 2006 +0000 * Tests for domain checks. commit57751fdb55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 24 15:16:03 2006 +0000 * Refactoring to support domain checks. commit9c3099d328
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 21 13:21:43 2006 +0000 * Purify `make check'. commit7adaa6d446
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 21 12:46:54 2006 +0000 * Test for runtime root finding. commitdcded7da47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 21 12:28:25 2006 +0000 * Don't try to do DNS lookups. commita4273156c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 20 13:21:37 2006 +0000 * Use $(libexecdir) to find find-runtime-roots.pl. commit410760c5ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 20 12:58:51 2006 +0000 * Doh. commitee2cf45d76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 20 12:19:55 2006 +0000 * Use debug(). commiteca30e12e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 20 12:18:10 2006 +0000 * svn:ignore. commitc15f544356
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 20 12:17:25 2006 +0000 * Call find-runtime-roots.pl from the garbage collector to prevent running applications etc. from being garbage collected. commitebcccbd358
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 19 16:49:59 2006 +0000 * Added a tool to find additional roots for the garbage collector, such as open files, current directories, mmaped files, etc. This is inherently unportable, but it's easy to adapt this script to other platforms. Currently we call `lsof' and try to read various bits in /proc/NNN. The goal is to prevent the garbage collector from removing store paths that are no longer reachable from a permanent root but that are still in use (for instance, after the user has done "nix-env -e" on a running program). commit88e54153dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 19 15:49:29 2006 +0000 * Add a precise test for hashDerivatioModulo. commit4f3725b167
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 19 15:36:15 2006 +0000 * Better error messages (especially wrt types). commite10b830251
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 11 10:29:52 2006 +0000 * Doh! Of couse we cannot memoize across scopes. commit2b4b0658fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 10 17:35:00 2006 +0000 * This expression has an undefined variable which isn't detected, so evaluation fails: error: impossible: undefined variable `gcc' commitd51aede4af
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 6 15:30:37 2006 +0000 * Allow the canonical system name to be specified at runtime in the Nix config file. commita945fb7905
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 27 12:17:25 2006 +0000 * `nix-env --upgrade --eq': only upgrade if the old version is equal to the new version. This is actually useful. commitf4a3a280db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 22 13:01:42 2006 +0000 * Apply the ATerm aliasing patch so that Nix works correctly with gcc 4.1.x. commitdbf6d7e783
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 20 17:48:10 2006 +0000 * Concurrent GC on Cygwin. commitcc51f9c539
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 19 16:35:35 2006 +0000 * Oops. commit5bb3444032
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 19 16:24:15 2006 +0000 * _exit() doesn't seem to work right on Cygwin. commitb35735d8b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 19 14:43:13 2006 +0000 * On Windows we cannot delete open (lock) files, so we delete lock files after we've closed them. Since this only succeeds if the lock is no longer opened by any process, the token trick used on Unix is not necessary. commit0e783e5579
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 19 14:37:35 2006 +0000 * Write messages to stderr in a slightly more atomic way. Useful when there are several parallel processes. commitd7f40357e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 16 13:27:36 2006 +0000 * Skip this test on Cygwin, too slow (and doesn't test anything Cygwin-specific). commitc937b73622
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 16 10:13:03 2006 +0000 * Show when we're blocked waiting for a lock. commit588cb0eade
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 15 11:56:49 2006 +0000 * In `nix-env -i|-u|-e', lock the profile to prevent races between concurrent nix-env operations on the same profile. Fixes NIX-7. commit49de87132f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 15 09:16:55 2006 +0000 * Removed. commit48e4a3231b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 14 13:31:23 2006 +0000 commitb454977909
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 14 11:53:55 2006 +0000 * Fix for a problem with BSD's group ownership semantics when the user is not in the "wheel" group. commit3a68622dda
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 14 11:52:22 2006 +0000 * Oops. commit370af25eff
Author: Rob Vermaas <rob.vermaas@gmail.com> Date: Wed Jun 7 15:27:17 2006 +0000 * Fix for a locking bug in Berkeley DB on Cygwin. commit23960e92df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 1 18:13:33 2006 +0000 * Minor cleanup. commit2d456fc35a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 31 11:50:14 2006 +0000 * On Cygwin, set the system type to i686-cygwin, and disable dynamic linking. commitbb84984f3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 31 10:58:47 2006 +0000 * svn:ignore. commit50fe85f016
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 31 09:51:45 2006 +0000 * For fixed-output derivations, pass the environment variables listed in the attribute variable `impureEnvVars' from the caller to the builder. commit04cf72287b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 31 09:24:54 2006 +0000 * This may be useful in the future. commit1390ce4142
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 30 11:37:21 2006 +0000 * Not all platforms have sys/select.h. commitb1c63dc362
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 30 11:31:33 2006 +0000 * Don't use badTerm, it gives awful error messages. commitc7d9397fc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 29 21:53:58 2006 +0000 * Handle $PATHs with spaces. commit58b4198ed8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 29 20:46:51 2006 +0000 * Disable the concurrent garbage collector on Cygwin for now. commitd764409d97
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 24 13:23:20 2006 +0000 * Some Cygwin fixes. commitb5988004d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 12 11:47:45 2006 +0000 * Support for srcdir != builddir (NIX-41). commit9d72bf8835
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 11 02:19:43 2006 +0000 * 64-bit compatibility fixes (for problems revealed by building on an Athlon 64 running 64-bit SUSE). A patched ATerm library is required to run Nix succesfully. commite3c07782d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 8 20:00:28 2006 +0000 * Remove old manifests in `nix-channel --update'. commitc54287eafe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 8 15:15:13 2006 +0000 * GCC 2.95 compatibility. commit8b5aa91aa7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 8 14:00:39 2006 +0000 commit5cabd47394
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 8 12:52:47 2006 +0000 * Allow function argument default values to refer to other arguments of the function. Implements NIX-45. commit310e605995
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 8 10:00:37 2006 +0000 * Show evaluation stats when NIX_SHOW_STATS=1. commit0832956089
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 4 12:21:08 2006 +0000 * Use the new ATermMap. commit9840368cad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 4 09:22:29 2006 +0000 * Iterators. commit6980544467
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 4 08:32:30 2006 +0000 * Keep some statistics about memory allocation. commitb803fb95cb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 3 23:17:42 2006 +0000 * Maintain the count field properly. commitdb0d865ec4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 3 23:07:38 2006 +0000 * New ATermMap, seems more-or-less finished. commit052cefe1bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 3 17:29:48 2006 +0000 * Started hacking on a ATermTable replacement, since ATermTable uses gigantic amounts of memory --- 65536 bytes per table at least --- which makes it unsuitable for representing short-lived substitution tables and attribute sets. commitd300b4383d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 21:58:46 2006 +0000 * Optimise null-ary term builders. Also declare all term builder functions as pure, which might improve performance a bit. commit68174bdc7d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 21:39:02 2006 +0000 * Use a linked list of substitutions. This reduces the amount of copying. commitc791e94aee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 17:51:50 2006 +0000 * Removed a bunch of ATreverses. commitb52e711910
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 17:12:03 2006 +0000 * Huge reduction in memory use (2/3 or so on large nix-env -qas operations): share ATermMaps between DrvInfos. commit11ae2d1e7a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 14:07:28 2006 +0000 * Memory reduction: replaced expensive calls to ATmakeApplList by ATmakeApplArray, and got rid of ATreverse in substitute(). commitdc719e6ba5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 13:39:55 2006 +0000 * Some preliminaries towards NIX-45. commitae55e79541
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 11:20:55 2006 +0000 * More tests. commitdca43ef795
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 2 11:15:04 2006 +0000 * Tests for NIX-45. commit7276e194ee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 1 15:29:46 2006 +0000 * Disallow unescaped $ in string literals. commit0064599a27
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 1 14:01:47 2006 +0000 * String interpolation. Expressions like "--with-freetype2-library=" + freetype + "/lib" can now be written as "--with-freetype2-library=${freetype}/lib" An arbitrary expression can be enclosed within ${...}, not just identifiers. * Escaping in string literals: \n, \r, \t interpreted as in C, any other character following \ is interpreted as-is. * Newlines are now allowed in string literals. commit6cecad2be0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 1 09:56:56 2006 +0000 * Allow string concatenations involving derivations, e.g., configureFlags = "--with-freetype2-library=" + freetype + "/lib"; commitcce31b739c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Apr 29 11:54:45 2006 +0000 * svn:ignore commit6fca1b82ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 25 16:41:06 2006 +0000 * Change this to LGPL to keep the government happy. commitde8f2d061c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 25 11:52:24 2006 +0000 * Install only the header file and libraries from Berkeley DB. commite18c93169c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 25 11:33:27 2006 +0000 * Create libexec. commit0748331b70
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 25 10:57:08 2006 +0000 * Typo. commit03162f8f47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 25 10:45:53 2006 +0000 * Unless --with-bzip2 is specified, use a copy of bzip2 in the externals directory. This is in particular useful because though most systems have bzip2/bunzip2, they don't always have libbz2, which we need for bsdiff/bspatch. commitef2d4a2da9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 24 14:02:44 2006 +0000 * Print a more useful stack trace when an error occurs deep in the derivation dependency graph. commitb69e469328
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 23 16:43:07 2006 +0000 * In `nix-env', look for derivations inside attribute sets that have the `recurseForDerivations' attribute set to `true'. commit49ce8b57dd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 23 16:37:49 2006 +0000 * Hm. commit20675feeab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 15 12:58:22 2006 +0000 * Update copyright. commit05bb644890
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 14 16:35:01 2006 +0000 * Allow the resulting symlink of nix-build to be named, e.g., $ nix-build .../i686-linux.nix -A apacheHttpd -o apache commitfdea084c36
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 22:27:26 2006 +0000 * Allow `make check' to work in directories that have symlink components. commit37d1b1cafd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 16:20:42 2006 +0000 * `nix-env -qa --description' shows human-readable descriptions of packages (provided that they have a `meta.description' attribute). E.g., $ ./src/nix-env/nix-env -qa --description gcc gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux) gcc-4.0.2 GNU Compiler Collection, 4.0.x commita33fb2d287
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 16:14:30 2006 +0000 * Oops. commit2b3b6c9b34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 16:14:13 2006 +0000 * In theory, this should reduce the number of ATermMap re-allocations. commit4ada6db1fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 10:24:46 2006 +0000 * `nix-env -q' now accepts arguments that allow specific derivations to be queried, e.g., `nix-env -qa firefox'. This does require the argument '*' to be passed if one wants information about all derivations, so the old `nix-env -qa' now is `nix-env -qa "*"'. commit9811815429
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 10 09:41:28 2006 +0000 * Write messages to stderr, not stdout. commit18c321308d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 9 17:07:25 2006 +0000 * Ugh, printHash() was very inefficient because it used ostringstreams. Around 11% of execution time was spent here (now it's 0.5%). commitb90c00e63f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 9 15:10:01 2006 +0000 * Regression: semantics of the result of getDerivation() changed. commit922697c8b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 9 15:09:18 2006 +0000 * Big speedup (factor > 2.5) in all nix-env operations that do actual instantiation, e.g. "nix-env -i" and "nix-env -qas" (but not "nix-env -qa"). It turns out that many redundant calls to addToStore(path) were made, which reads and hashes the entire path. For instance, the bash bootstrap binary in Nixpkgs would be read and hashed many times. As a result nix-env would spend around 92% of its time in the function sha256_block (according to callgrind). Some simple memoization fixes this. commit6dca5c9099
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 8 16:03:58 2006 +0000 * When obtaining derivations from Nix expressions, ignore all expressions that cause an assertion failure (like `assert system == "i686-linux"'). This allows all-packages.nix in Nixpkgs to be used on all platforms, even if some Nix expressions don't work on all platforms. Not sure if this is a good idea; it's a bit hacky. In particular, due to laziness some derivations might appear in `nix-env -qa' but disappear in `nix-env -qas' or `nix-env -i'. Commit 5000! commit9088dee9e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 8 14:11:19 2006 +0000 * Some refactoring of the exception handling code so that we can catch Nix expression assertion failures. commitfa72ae1e9c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 6 14:40:10 2006 +0000 * GCC 4.1 compatibility. commitc8bfb11b34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 6 11:21:15 2006 +0000 * `nix-env (-i|-u) --dry-run' now shows exactly which missing paths will be built or substituted. commit7ba1fd2029
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 6 11:04:39 2006 +0000 * Regularise help text a bit. commit120f00c04f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 3 14:25:07 2006 +0000 * More online help. commit2d54312f87
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 3 14:15:02 2006 +0000 * Rewrote nix-build in Perl, since sh is just too limited (turns out that arrays are a bash extension, so it didn't work on FreeBSD). Also fixes NIX-8 (readlink(1) dependency). commit78d84f5631
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 18:26:21 2006 +0000 * Tests for fixed-output derivations (and attribute selection, incidentally). commit2167bf6b72
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 18:11:41 2006 +0000 * Tests to prevent a repeat of the parseHash32 debacle. commit70dee0f8ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 18:05:47 2006 +0000 * Flags `--to-base32' and `--to-base16' to convert between hex and base-32 hashes. commite136532800
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 17:59:08 2006 +0000 * Ouch, parseHash32 was completely broken. All digits >= 4 were parsed as 4. For a moment I worried that printHash32 was broken, and that would have been really, *really* bad ;-) commit74166f2f44
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 17:44:28 2006 +0000 * db.hh shouldn't depend on the Berkeley DB headers. commit1bdceb421f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 16:52:55 2006 +0000 * Doh! commitd822bf32e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 16:36:35 2006 +0000 * Close the database before the destructor runs. commitfa95f4be3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 16:26:13 2006 +0000 * More test coverage. commit80b5c71684
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 16:03:32 2006 +0000 * Doh! commite3daee919d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 15:46:22 2006 +0000 * Test `nix-store -q --binding'. commitea9c35d3cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 15:43:37 2006 +0000 * Test `nix-store --add' and `nix-store -q --hash'. commit30d051ff14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 15:40:01 2006 +0000 * New suppressions. commitb6780b9e10
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 14:39:42 2006 +0000 * Uninitialised variable. Fixes the --delete test. commitb602d2dfdf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 14:39:10 2006 +0000 * Wrong delete. Thanks valgrind. commitb90787290d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 14:26:03 2006 +0000 * TDD! Woohoo! commit089c41a0c2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 14:17:00 2006 +0000 * Oops! commitca0b23c831
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 14:00:27 2006 +0000 * Test the nix-store --gc subflags. commit5cb6c42088
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 13:49:12 2006 +0000 * Test nix-build. This also tests indirect roots. commit8cd646b6af
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 13:33:12 2006 +0000 * Clear the substitutes prior to running the test. commite48bd8c8b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 13:25:08 2006 +0000 * Add a test for nix-log2xml. commit458820df6c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 13:24:47 2006 +0000 * Generate valid HTML. commit6b8bb8d74a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 12:51:39 2006 +0000 * Remove dead code. commit84c4631221
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 12:51:18 2006 +0000 * Simplification. commita4c63c6e8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 1 12:15:33 2006 +0000 * Make it easy to run individual tests from the command line. commit85793fa438
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 24 17:10:38 2006 +0000 * Remove debug statement. commite2f16b9cae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 24 16:05:55 2006 +0000 * A script to remove from a manifest those patches whose base or target no longer applies to any available release. This is a partial fix for NIX-34 (when producing linear patch sequences between releases, the number of patches grows without bound). commit5168f9bb00
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 24 16:02:36 2006 +0000 * Canonicalise manifests a bit by sorting them. commit9d3bee50ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 15:20:11 2006 +0000 * Aha! commit17f39049cf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 15:09:47 2006 +0000 * WTF? commit43fa1c20e7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 14:35:19 2006 +0000 * Separate the cache reading code. commit928cce5922
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 14:13:02 2006 +0000 * Directory for nix.cs.uu.nl manifest / cache maintenance scripts. commitfcec32a2c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 14:10:02 2006 +0000 * Use right directories for NAR files and patches. * Print errors to STDERR. commitf0d6318dd1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 14:02:44 2006 +0000 * More tests. commitddb78dfc3d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 22 13:55:41 2006 +0000 * Check whether "nix-store -q --graph" generates a valid dot graph. * Test "nix-store -q --tree" as well. commit46f0cb0869
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 17 18:11:45 2006 +0000 * In "nix-env -i", print a warning if there are multiple derivations with the same name *and* version number, and pick the first one (this means that the order in which channels appear in ~/.nix-channels matters). E.g.: $ nix-env ii aterm warning: there are multiple derivations named `aterm-2.4.2'; using the first one installing `aterm-2.4.2' commit7a3e715980
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 17 17:47:54 2006 +0000 * Fix for NIX-31: "nix-env -i foo" installing all derivations named foo. Now it will only install the one with the highest version number. commit58fc420b36
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 17 17:05:34 2006 +0000 * And another test. commit4ddd5ff39c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 17 17:03:19 2006 +0000 * Regression test for NIX-31. commit889ef564fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 17 16:26:28 2006 +0000 * Fix the infamous NIX-17: nix-env -i prints misleading messages ("installing `foo'" followed by "uninstalling `foo'"). commit345a95afe9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 16 13:58:10 2006 +0000 * Allow the size of the GC reserved file to be specified in nix.conf through the new `gc-reserved-space' option. commit651ab439cf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 16 13:19:15 2006 +0000 * A simple hack to fix NIX-18: the garbage collector cannot run when the disk is full (because to delete something from the Nix store, we need a Berkeley DB transaction, which takes up disk space). Under normal operation, we make sure that there exists a file /nix/var/nix/db/reserved of 1 MB. When running the garbage collector, we delete that file before we open the Berkeley DB environment. commitd6f586d0ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 13 19:52:43 2006 +0000 * Optional switch "--with-openssl=<PATH>" to use OpenSSL's implementations of MD5, SHA-1 and SHA-256. The main benefit is that we get assembler-optimised implementations of MD5 and SHA-1 (though not SHA-256 (at least on x86), unfortunately). OpenSSL's SHA-1 implementation on Intel is twice as fast as ours. commite8475bbd5b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 13 18:00:08 2006 +0000 * Use a union. commit2d2e28d02c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 13 13:09:23 2006 +0000 * Override YYMALLOC and YYFREE so that we can call AT[un]protectMemory on the Bison parse stack. Otherwise, a garbage collect during parsing could lead to a crash. commit0ca0a4da9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 13 12:48:59 2006 +0000 * Valgrind suppressions for the ATerm library. The ATerm library uses a conservative garbage collector that scans the stack and parts of the heap for pointers to ATerms. This scan can touch uninitialised memory, which is harmless. Use: $ valgrind --suppressions=aterm-gc.supp ... commitda0a6b6499
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Feb 12 21:00:36 2006 +0000 * Doh. commit982399bb14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 10 17:37:35 2006 +0000 * Enable the --attr in nix-build as well (and add -A as an alias). Example: $ nix-build ./all-packages.nix -A xlibs.libX11 So finally it's easy to perform a test build of a Nix expression! commitc6120352b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 10 17:25:59 2006 +0000 * In nix-instantiate, allow us to specify a "path" to the derivation(s) we're interested, e.g., $ nix-instantiate ./all-packages.nix --attr xlibs.libX11 List elements can also be selected: $ nix-instantiate ./build-for-release.nix --attr 0.subversion This allows a non-ambiguous specification of a derivation. Of course, this should also be added to nix-env and nix-build. commitb505f9eaf5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 10 15:29:17 2006 +0000 * Document that nix-instantiate can read from stdin. commit9e51abc7dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 10 15:28:47 2006 +0000 * Make --parse-only work when *not* reading from stdin. commitf848a45739
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 10 15:14:57 2006 +0000 * Cleanup: use the code shared with nix-env. commit4eb637c799
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 16:15:07 2006 +0000 * When querying all derivations, filter out syntactically equal derivations. commit8688e83194
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 15:22:30 2006 +0000 * When evaluating, automatically call functions with default arguments. commitf8aadf14c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 15:21:57 2006 +0000 * Test-driven development, woohoo! nix-env should work on functions, provided that all arguments have defaults. commit287d0ef41c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 14:32:33 2006 +0000 * Oops, fix breakage. commite771e59178
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 14:32:06 2006 +0000 * Tests for nix-env, finally! commit39f50db731
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 8 13:21:16 2006 +0000 * Refactoring: move derivation evaluation to libexpr. commit4db4b61380
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 7 14:47:26 2006 +0000 * Don't install nix.conf (so it won't be overriden when you upgrade an RPM). commit81de538e46
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 3 14:20:59 2006 +0000 * Use setsid instead of setpgrp in child processes. This not only creates a new process group but also a new session. New sessions have no controlling tty, so child processes like ssh cannot open /dev/tty (which is bad). commitb90daaaf6c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 2 16:27:31 2006 +0000 * When killing a build hook, kill the entire process group (as intended). This ensures that any ssh child processes to remote machines are also killed, and thus the Nix process on the remote machine also exits. Without this, the remote Nix process will continue until it exists or until its stdout buffer gets full and it locks up. (Partially fixes NIX-35.) commit6e2eaaec96
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 17:28:13 2006 +0000 * Print a better error message when writing the patched file (e.g., "No space left on device" instead of "Success"). Reported by Karina Olmos. commitd9d6ff9f8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 16:49:52 2006 +0000 * Doh. commit8291f6d968
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 16:48:49 2006 +0000 * bsdiff updated to 4.3. This makes Nix depend on libbz2. commit9e4ffc43a2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 16:47:51 2006 +0000 * The "S" bit should be based on the output path, not the derivation path. commit3eba483692
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 14:52:58 2006 +0000 * Use Berkeley DB 4.4.20. commit151f10dbc7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 1 12:41:54 2006 +0000 * Add @bindir@. commit83424eb71b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 26 23:18:46 2006 +0000 * Don't force a build of derivations. commitdb2275cb99
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 26 23:18:26 2006 +0000 * Oops, the "I" bit in "nix-env -qas" was broken. Reported by Nicolae Vintila. commit1029716a8a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 19 15:35:34 2006 +0000 * Don't show cycles, they're not very useful. commite4d4969ae9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 12 15:17:51 2006 +0000 * New tools nix-pack-closure and nix-unpack-closure. These provide a useful way to transfer the closure of a store path to another machine. These commands provide functionality previously possible through `nix-push --copy'. However, they are much more convenient in many situations (though possibly less efficient). Example: $ nix-pack-closure /nix/store/hj232g1r...-subversion-1.3.0 > svn.closure (on another machine:) $ nix-unpack-closure < svn.closure Note that Subversion is added to the store, but not installed into a user environment. One should do `nix-env -i /nix/store/hj232g1r...-subversion-1.3.0' for that. Another example: copy the application Azureus to the machine `scratchy' through ssh: $ nix-pack-closure $(which azureus) | ssh scratchy nix-unpack-closure commit5b527901ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 9 14:52:46 2006 +0000 * dirOf: return "/", not "", for paths in the root directory. Fixes NIX-26. commit04be39734f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jan 8 17:16:03 2006 +0000 * Resolve all symlink components in the location of the temporary build directory (TMPDIR, i.e., /tmp). Fixes NIX-26. commit0f8d3c871b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 25 11:29:12 2005 +0000 * More GCC 2.95 compatibility. commit52d20ef124
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 25 02:02:29 2005 +0000 * Hack around a GCC 2.95 bug. commit1440419b45
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 24 23:32:59 2005 +0000 * GCC 2.95 compatibility. commit1d2460ee5d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Dec 24 23:22:05 2005 +0000 * Documentation fixes. commitf96d2dea26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 23 21:36:44 2005 +0000 * Added a flag `--ignore-liveness' to `nix-store --delete'. It deletes a path even if it is reachable from a root. However, it won't delete a path that still has referrers (since that would violate store invariants). Don't try this at home. It's a useful hack for recovering from certain situations in a somewhat clean way (e.g., holes in closures due to disk corruption). commit4b9e7f59ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 23 21:08:42 2005 +0000 * Revived the old "nix-store --delete" operation that deletes the specified paths from the Nix store. However, this operation is safe: it refuses to delete anything that the garbage collector wouldn't delete. commit3c5619c7e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 21:11:55 2005 +0000 * Begin release notes. commit530b27df1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 21:11:39 2005 +0000 * `nix-store --gc' prints out the number of bytes freed on stdout (even when it is interrupted by a signal). commit5144f750c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 17:04:02 2005 +0000 * Typo. commitb1eed6b586
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 16:53:21 2005 +0000 * Split the database upgrade into multiple transactions to prevent Berkeley DB from running out of locks. commit11a8dc76d6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 15 13:45:10 2005 +0000 * Doh! commitab5c6bb3a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 13 21:04:48 2005 +0000 * Change `referer' to `referrer' throughout. In particular, the nix-store query options `--referer' and `--referer-closure' have been changed to `--referrer' and `--referrer-closure' (but the old ones are still accepted for compatibility). commitd87549c1c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 12 19:14:38 2005 +0000 * Automatically delete the old referers table. commit8463f27d8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 12 18:24:42 2005 +0000 * Fix NIX-23: quadratic complexity in maintaining the referers mapping. The referer table is replaced by a referrer table (note spelling fix) that stores each referrer separately. That is, instead of having referer[P] = {Q_1, Q_2, Q_3, ...} we store referer[(P, Q_1)] = "" referer[(P, Q_2)] = "" referer[(P, Q_3)] = "" ... To find the referrers of P, we enumerate over the keys with a value lexicographically greater than P. This requires the referrer table to be stored as a B-Tree rather than a hash table. (The tuples (P, Q) are stored as P + null-byte + Q.) Old Nix databases are upgraded automatically to the new schema. commit18bbcb1214
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 11 19:25:48 2005 +0000 * Add a test to demonstrate the quadratic complexity of referrer (de)registration, in particular garbage collection (NIX-23). commita33b561a6b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 9 22:55:07 2005 +0000 * Use Berkeley DB 4.4's process registry feature to recover from crashed Nix instances, and toss out our own recovery code. commiteb268a7f95
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 8 22:14:15 2005 +0000 * Apply the patch. commitdfffd92568
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 8 18:18:20 2005 +0000 * A patch to make the DB_REGISTER feature work when debug info is not on. commit760264bffe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 6 15:00:04 2005 +0000 * Require Berkeley DB 4.4. * Checkpoint after an upgrade. commitdc528128cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 17 13:58:23 2005 +0000 * FreeBSD compatibility fix. commit44409f52c1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 17 11:58:22 2005 +0000 * "Fix" the test, since we cannot feasibly support the intended semantics. commitb7f008fc35
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 16 08:27:06 2005 +0000 * Did something useful while waiting at IAD: reference scanning is now much faster. commit9311ab76a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 4 15:34:09 2005 +0000 * Install signal handlers for SIGTERM and SIGHUP. This ensures that Nix is properly shut down when it receives those signals. In particular this ensures that killing the garbage collector doesn't cause a subsequent database recovery. commit5bf939885a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 4 15:17:05 2005 +0000 * Memoise checkVarDefs since internally produced terms (i.e., not the result of parsing) can have very heavy sharing, causing exponential complexity if we naively recurse into them. ATerms are graphs, not trees! commit1f285cf556
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 4 14:50:33 2005 +0000 * Scoping bug in `with'. commit221c79013f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Oct 29 18:17:45 2005 +0000 * Turn off build hooks in nix-push because of an impurity (NIX-21). commitf0856fd905
Author: Rob Vermaas <rob.vermaas@gmail.com> Date: Sat Oct 29 15:44:02 2005 +0000 * Repair the referers table from the references table. commit92d599c6a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 20 16:58:34 2005 +0000 * Prevent uids from being used for more than one build simultaneously. We do this using exclusive locks on uid files in /nix/var/nix/userpool, e.g., /nix/var/nix/userpool/123 for uid 123. commite932c40f8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 19 14:27:44 2005 +0000 * Oops. Fixed-output derivations were broken. commit1b43fbd8e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 18 14:09:43 2005 +0000 * Oops, that should be Berkeley DB 4.3. Reported by Gerco Ballintijn. commit13b089c890
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 17 17:43:21 2005 +0000 * Also kill all processes of the build user after the build. This is critical to prevent certain kinds of 0wnage. commitf1b3a418fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 17 17:35:37 2005 +0000 * Before starting a build under some uid, kill all current processes running under that uid. commit439823ae80
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 17 16:59:25 2005 +0000 * Check that the build result is owned by the build user, and that nobody else has write permission to the build result. This catches most hack attempts. commit7ef574e5d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 17 16:52:29 2005 +0000 * Don't use FIFOs to make Nix create the output path on behalf of the builder. Instead, require that the Nix store has sticky permission (S_ISVTX); everyone can created files in the Nix store, but they cannot delete, rename or modify files created by others. commit32282abcea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 17 15:33:24 2005 +0000 * Beginning of secure multi-user Nix stores. If Nix is started as root (or setuid root), then builds will be performed under one of the users listed in the `build-users' configuration variables. This is to make it impossible to influence build results externally, allowing locally built derivations to be shared safely between users (see ASE-2005 paper). To do: only one builder should be active per build user. commit15ff877438
Author: Armijn Hemel <armijn@gpl-violations.org> Date: Tue Oct 11 17:30:57 2005 +0000 add @coreutils@ to correctly use coreutils to create a profile. This is needed for NixOS, where we might not know our PATH in advance. commit0f133ae8d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 11 12:41:12 2005 +0000 * Use ATerm 2.4.2. commitdfbf520ec2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 6 15:51:59 2005 +0000 * Swap the system and version comparion columns. commit62412c5874
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 6 15:51:43 2005 +0000 * Document `nix-env --compare-versions'. commitcec2be64f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 6 15:01:46 2005 +0000 * Only colorise if we are attached to a terminal. commitb87b9c0d1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 6 14:44:54 2005 +0000 * New query option: `--compare-versions' or `-c' to compare installed versions to available versions, or vice versa. For example, the following compares installed versions to available versions: $ nix-env -qc autoconf-2.59 = 2.59 automake-1.9.4 < 1.9.6 f-spot-0.0.10 - ? firefox-1.0.4 < 1.0.7 ... I.e., there are newer versions available (in the current default Nix expression) for Automake and Firefox, but not for Autoconf, and F-Spot is missing altogether. Conversely, the available versions can be compared to the installed versions: $ nix-env -qac autoconf-2.59 = 2.59 automake-1.9.6 > 1.9.4 bash-3.0 - ? firefox-1.0.7 > 1.0.4 ... Note that bash is available but no version of it is installed. If multiple versions are available for comparison, then the highest is used. E.g., if Subversion 1.2.0 is installed, and Subversion 1.1.4 and 1.2.3 are available, then `nix-env -qc' will print `< 1.2.3', not `> 1.1.4'. If higher versions are available, the version column is printed in red (using ANSI escape codes). commit0e0041b2b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 5 13:01:45 2005 +0000 * Update NEWS in the root directory properly. commit0e38578433
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 5 09:42:13 2005 +0000 * log2xml -> nix-log2xml. commitd47e03fccd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 5 09:37:58 2005 +0000 * Install the XSL stylesheets for log to html conversion. commited4de220d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 28 09:00:07 2005 +0000 * Use "source" instead of ".". commitebfe57166d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 22 17:23:43 2005 +0000 * Lets not go wild with templates. commit4578a490ce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 22 15:43:22 2005 +0000 * Parse multi-valued options. commitfbedf6056e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 22 12:23:22 2005 +0000 * Merge release notes. commit607a2f01e6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 21 17:14:52 2005 +0000 * Remove other uses of IPC::Open2. commit95304172a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 21 17:06:06 2005 +0000 * Don't use IPC::Open2, it has a subtle race bug on Mac OS X 10.4. If the parent runs before the child, it closes some pipe file descriptors which causes the child to fail due to a bad file descriptor. So we just use the normal open() function instead. This fixes NIX-14 (intermittent nix-pull failures). commita864aca44c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 21 17:02:48 2005 +0000 * This doesn't parse for now. commit8d06842a76
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 21 12:19:39 2005 +0000 * Configuration options for trusted local builds. commit89cd0f57b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 21 11:12:43 2005 +0000 * Use -all_load on Mac OS X. commitef9e2c8e73
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 20 16:14:00 2005 +0000 * Typo. commit25d217684b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 18 20:27:02 2005 +0000 * Use a statically linked ATerm library and build it at -O1, since higher optimisation levels cause statically linked libraries to barf. commitf4fe3bd5b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 13:47:03 2005 +0000 * Bump the version number to 0.10. commitdb1a4227a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 11:28:29 2005 +0000 * Updated release notes. commitc28b8eb699
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 10:35:48 2005 +0000 * svn:ignores. * Add missing file to dist. commit6f044ab39c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 09:05:54 2005 +0000 * svn:ignore. commitd34fa9a6cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 09:05:18 2005 +0000 * Remove dead file. commit846b53bde4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 09:03:24 2005 +0000 * Set the current directory to something well-defined. Might help in setuid installations. commit5c0770ac84
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 16 08:47:34 2005 +0000 * Include the release notes in the manual. commit1b62c2eba3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 15 20:29:08 2005 +0000 * Force release notes in ASCII, not UTF-8. commitd1d0271996
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 15 15:21:57 2005 +0000 * Check for w3m. commit7f384d9c1b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 15 15:21:35 2005 +0000 * Use a proper temporary directory. commit896c0b92f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 15 09:18:21 2005 +0000 * This is not a GNU project :-P commit5818e8eeaf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 14 18:51:02 2005 +0000 * Remove dead code. commit025086edea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 14 18:50:45 2005 +0000 * Release notes in Docbook; ASCII release notes (i.e., the `NEWS' file) is now generated from that using `w3m' and some XSL hackery. commited1db42915
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 14 11:41:59 2005 +0000 * List concatenation must be right-associative for efficiency. commitdeb75bb414
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 13 15:54:36 2005 +0000 * Remove debugging code. commit116e939d57
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 13 14:07:22 2005 +0000 * More debugging. commit55b84357a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 13 13:17:14 2005 +0000 * Debugging. commitcf2bb91ec8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 13 13:17:01 2005 +0000 * Missing #include. commit699073c337
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 13 10:57:24 2005 +0000 * Release notes. commitcb44aa03b8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 1 20:48:18 2005 +0000 * Use aterm 2.4. commit2bcd65ecf6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 1 18:14:04 2005 +0000 * `nix-env -e' corrupts memory due to incorrect use of iterators. Reported by Rob Vermaas. commite1a6fb7870
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Aug 14 14:00:39 2005 +0000 * `dependencyClosure' now allows a search path, e.g., dependencyClosure { ... searchPath = [ ../foo ../bar ]; ... } * Primop `dirOf' to return the directory part of a path (e.g., dirOf /a/b/c == /a/b). * Primop `relativise' (according to Webster that's a real word!) that given paths A and B returns a string representing path B relative path to A; e.g., relativise /a/b/c a/b/x/y => "../x/y". commit08c53923db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Aug 14 12:38:47 2005 +0000 * A primitive operation `dependencyClosure' to do automatic dependency determination (e.g., finding the header files dependencies of a C file) in Nix low-level builds automatically. For instance, in the function `compileC' in make/lib/default.nix, we find the header file dependencies of C file `main' as follows: localIncludes = dependencyClosure { scanner = file: import (findIncludes { inherit file; }); startSet = [main]; }; The function works by "growing" the set of dependencies, starting with the set `startSet', and calling the function `scanner' for each file to get its dependencies (which should yield a list of strings representing relative paths). For instance, when `scanner' is called on a file `foo.c' that includes the line #include "../bar/fnord.h" then `scanner' should yield ["../bar/fnord.h"]. This list of dependencies is absolutised relative to the including file and added to the set of dependencies. The process continues until no more dependencies are found (hence its a closure). `dependencyClosure' yields a list that contains in alternation a dependency, and its relative path to the directory of the start file, e.g., [ /bla/bla/foo.c "foo.c" /bla/bar/fnord.h "../bar/fnord.h" ] These relative paths are necessary for the builder that compiles foo.c to reconstruct the relative directory structure expected by foo.c. The advantage of `dependencyClosure' over the old approach (using the impure `__currentTime') is that it's completely pure, and more efficient because it only rescans for dependencies (i.e., by building the derivations yielded by `scanner') if sources have actually changed. The old approach rescanned every time. commit714b7256cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Aug 14 10:19:55 2005 +0000 * Cleanup; sync with thesis. commit0399365675
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Aug 14 10:09:56 2005 +0000 * nix-hash: option `--truncate' to truncate the hash to 160 bits. Hmm, kind of ad hoc ;-) commit2fd22c6360
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 1 13:39:56 2005 +0000 * Add .libs to svn:ignore. Commit 3500 ;-) commitc680f835c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 1 13:39:19 2005 +0000 * Escape ASCII characters < 32 to Unicode FFFD (REPLACEMENT CHARACTER) so that we don't produce un-wellformed XML. commitf450c8ea2f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 1 13:24:04 2005 +0000 * Oops. XSL stylesheet to mark errors. commit800a6ff845
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 1 13:23:43 2005 +0000 * Mark error lines in red, and expand subtrees containing errors automatically. commit78c72bf10e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 1 07:30:35 2005 +0000 * channels -> channels-v3, catamaran -> nix.cs.uu.nl. commit991a130b1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 25 15:05:34 2005 +0000 * Added a list concatenation operator: [1 2 3] ++ [4 5 6] => [1 2 3 4 5 6] commite6899794ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 25 10:10:24 2005 +0000 * Add $prefix/lib to the RPM. commit33efb52e02
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 25 07:25:18 2005 +0000 * Hack to get around the libtool wrapper script around nix-store not working when PATH is unset. commit3fae65d4cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 22 20:37:39 2005 +0000 * Adhockery. commit4c20a08293
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 22 14:52:45 2005 +0000 * Build dynamic libraries. commit1a67154d41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 19 12:00:38 2005 +0000 * Release notes. commit0f827cc607
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 19 11:48:05 2005 +0000 * Prevent repeated wrapping of closed terms (closed(closed(closed(...)))) since this reduces performance by producing bigger terms and killing caching (which incidentally also prevents useful infinite recursion detection). commit2135e7c041
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 16 23:19:20 2005 +0000 * Wat cleanups. commit6f82a78de7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 16 21:38:15 2005 +0000 * Define paths using regexps, as is done in the Flex definition. commit6f91f02f75
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 16 20:43:58 2005 +0000 * Make the rejects a bit more compact. * Add lexical restrictions for keywords. commit9590009a74
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 16 15:41:27 2005 +0000 * Fix ambiguity. commitf797cb5855
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 16 14:07:35 2005 +0000 * Revive and update the SDF grammar for Nix expressions. commita5ceb5bc0b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 13 17:39:10 2005 +0000 * nix-build: default to `./default.nix' if no paths are specified. So when using Nix as a build tool, you can just say `nix-build' and it will build the top-level derivation defined in `default.nix'. commitd4879b4dfe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 12 16:08:10 2005 +0000 * Add curl to the RPM dependencies. Should fix NIX-11. commit22d3587f3b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 12 16:06:25 2005 +0000 * In nix-instantiate, at top-level, call functions that have arguments with default values automatically. I.e., e -> e {}. This feature makes convenience expressions such as pkgs/system/i686-linux.nix in Nixpkgs obsolete, since we can just do $ nix-instantiate ./pkgs/system/all-packages.nix since all-packages.nix takes a single argument (system) that has a default value (__thisSystem). commit928a7c06dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jun 18 14:20:24 2005 +0000 * Don't create patches for archives >= 150 MB because bsdiff can't handle it. It crashed on the 234 MB tetex archive. Probably we will never be able to handle archives of that size on 32-bit machines (because bsdiff does everything in memory requiring max(17*n,9*n+m)+O(1) bytes, so the address space simply isn't there). commit040140dd1c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 18 17:19:21 2005 +0000 * Added a primop `removeAttrs' to remove attributes from a set, e.g., `removeAttrs attrs ["x", "y"]' returns the set `attrs' with the attributes named `x' and `y' removed. It is not an error for the named attributes to be missing from the input set. commit109cde6706
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 10 14:56:10 2005 +0000 * Ignore (with a warning) invalid garbage collector roots. commitc09e47c68f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 10 14:43:17 2005 +0000 * Some svn:ignores. commit8be1db899e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 10 14:24:48 2005 +0000 * Another typo. commitcbc8d083ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 10 14:22:36 2005 +0000 * Make unpacking of patch sequences much faster by not doing redundant unpacking and repacking of intermediate paths. commit456f3251d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 10 14:21:46 2005 +0000 * Typo. commit9ec7e58aa4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 9 17:55:35 2005 +0000 * Handle store path arguments in `nix-env -i' correctly again. commitbfe4875a5e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 9 15:30:13 2005 +0000 * Use Berkeley DB 4.3.38. commit8f57634c14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 9 15:25:47 2005 +0000 * Automatically upgrade the Berkeley DB environment if necessary. commit88dea78cdf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 9 09:58:00 2005 +0000 * Crazy: don't use real hashes of real components in examples, since they cause Nix builds to have unnecessary retained dependences (e.g., on Subversion). commitedd145d2fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 8 10:32:09 2005 +0000 * Lazily compute the derivation and output paths of derivations. This makes most query and installation operations much faster (e.g., `nix-env -qa' on the current Nixpkgs is about 10 times faster). commit426593162e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 8 10:28:19 2005 +0000 * ATermMap needs an assignment operator, otherwise we are screwed. commit77557a6f06
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat May 7 21:48:49 2005 +0000 Commit 3000! * Make the `derivation' primitive much more lazy. The expression `derivation attrs' now evaluates to (essentially) attrs // { type = "derivation"; outPath = derivation! attrs; drvPath = derivation! attrs; } where `derivation!' is a primop that does the actual derivation instantiation (i.e., it does what `derivation' used to do). The advantage is that it allows commands such as `nix-env -qa' and `nix-env -i' to be much faster since they no longer need to instantiate all derivations, just the `name' attribute. (However, `nix-env' doesn't yet take advantage of this since it still always evaluates the `outPath' and `drvPath' attributes). Also, this allows derivations to cyclically reference each other, for example, webServer = derivation { ... hostName = "svn.cs.uu.nl"; services = [svnService]; }; svnService = derivation { ... hostName = webServer.hostName; }; Previously, this would yield a black hole (infinite recursion). commit6057b51835
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat May 7 21:33:31 2005 +0000 * Don't try to register GC roots in read-only mode. commit6c88d67780
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat May 7 15:45:38 2005 +0000 * Build .tar.bz2 files in `make dist'. commitd8cda7c3dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 6 14:43:14 2005 +0000 * Mac OS X (and POSIX) doesn't have readlink. commit52a2f41320
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:33:20 2005 +0000 * Include some required header files. commit26fd28432d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:32:54 2005 +0000 * FreeBSD 4.x doesn't have stdint.h, use inttypes.h instead (which is also part of ISO C). commit5dea0622d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:31:49 2005 +0000 * Idem (constness fix). * `compare' in GCC 2.95 is broken. commit4a266e35d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:31:24 2005 +0000 * GCC 2.95 compatibility fix in constness; strangely, I think this should not have worked at all. commitd7b3cdbd91
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:30:35 2005 +0000 * GCC 2.95 compatibility. Prevents internal compiler error in member template friends. commitae6d9033a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:29:44 2005 +0000 * The eof() state isn't guaranteed to be set non-lazily. GCC 2.95 compatibility fix. commitd8a31da1ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 4 16:28:39 2005 +0000 * Use `$(MAKE)' instead of `make' for systems where `make' isn't GNU make (such as FreeBSD). commit36fb29f8f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 2 15:25:28 2005 +0000 * Merge remaining stuff from the nix-make branch. * Add support for the creation of shared libraries to `compileC', `link', and `makeLibrary'. * Enable the ATerm library to be made into a shared library. commit02f2da0142
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 2 14:44:58 2005 +0000 * Merging from nix-make branch: - Add __currentTime primitive (dangerous!). - Allow imports of derivations. commit6842bc9ac4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 1 09:36:28 2005 +0000 * Be quiet when untarring a channel file. commitf913283570
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 13 09:20:27 2005 +0000 * Remove redundant message. commit9f3601a36c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 12 10:51:38 2005 +0000 * Argh! The patch downloader was broken due to the renaming of the `--isvalid' flag in nix-store. commitf3660b1c8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 12 10:51:00 2005 +0000 * Garbage collector fix: allow deletion of paths that have invalid (but substitutable) referers. commitd5219a351a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 12 10:07:02 2005 +0000 * Damn. Disable the USE heuristic for now, since the deriver in the database isn't always in the manifest (so the reference graph cannot be reconstructed fully). commit1d86790910
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 13:04:54 2005 +0000 * Bump the version number to 0.9. commitbc5e26dcda
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 11:34:49 2005 +0000 * Mark date. commitcab7816b56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 11 08:07:41 2005 +0000 * Slightly nicer message. commit82d771f6e6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Apr 10 20:54:21 2005 +0000 * Manual updates. commitc9c58dba55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Apr 10 17:38:19 2005 +0000 * Primop `__currentSystem' to return the current platform identifier. commitb4b51c9f93
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Apr 9 19:31:12 2005 +0000 * NEWS. commitfb45b0f548
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Apr 9 17:16:00 2005 +0000 * Document nix-channel. commitc702dfca3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 8 13:48:41 2005 +0000 * nix-store: `--substitute' -> `--register-substitutes'. commit8b70f138e0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 8 13:00:38 2005 +0000 * Lots of manual updates, in particular the new `nix-store --query' options were documented, as well as the Nix configuration file. commit4271385a73
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 8 12:57:16 2005 +0000 * Make `nix-store --query --tree' work on non-derivations (i.e., on any store path). commit90905634ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 8 09:28:50 2005 +0000 * Doh. commitb9d8ecbc6a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 15:51:27 2005 +0000 * More doc updates. commit7d876f8fa7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 14:35:44 2005 +0000 * Get rid of fetchurl, we don't need it anymore. commit10c429c757
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 14:35:01 2005 +0000 * If store paths are specified as sources in Nix expressions, don't copy them, but use them directly. commitf9848d4f31
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 14:33:32 2005 +0000 * Support base-32 hash representations. commitc815aff21b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 14:01:51 2005 +0000 * `nix-store --add-fixed' to preload the outputs of fixed-output derivations. This is mostly to simplify the implementation of nix-prefetch-{url, svn}, which now work properly in setuid installations. * Enforce valid store names in `nix-store --add / --add-fixed'. commit57d023a184
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 10:47:58 2005 +0000 * More manual updates. commitf1ae10b992
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 09:36:35 2005 +0000 * Build hook documentation. * nix-store options. commit806b91f104
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 7 08:17:04 2005 +0000 * GC docs. commit128c174295
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 5 15:28:30 2005 +0000 * Manual updates. commit229252941a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 5 11:30:56 2005 +0000 * Some GC documentation. commit6c8cf567b8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 5 11:29:46 2005 +0000 * Use `--nonet' flag. commit31e140d70b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 4 15:18:19 2005 +0000 * I said it couldn't be done. I was wrong. commit4a83c12c5d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 1 15:34:23 2005 +0000 * Added a glossary to the manual. commit6f788880b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 26 22:06:57 2005 +0000 * Re-enable dot graph generation. commit298dd487bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 25 14:31:12 2005 +0000 * When finding live paths, the deriver need not be valid. commitebe342c9c1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 25 14:30:01 2005 +0000 * Better error checking. commit7eaf038763
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 25 14:21:49 2005 +0000 * `nix-store --verify': repair bad referer mappings. commitc6178f0b03
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 24 17:46:38 2005 +0000 * Create missing log and temproots directories automatically (reported by Rob). commitd1487d9015
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 24 14:07:02 2005 +0000 * This is a better location to keep the blacklist, since it can evolve separately from Nix or Nixpkgs. commit009752ca70
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 24 13:44:47 2005 +0000 * Blacklist Firefox 1.0.1. commitcff6bc06df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 19:18:22 2005 +0000 * Fix endianness bug. commit590e5a0d65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 17:13:42 2005 +0000 * Add a test for base-32 encoding of hashes since it seems to be broken on Mac OS X. commit0df9f08078
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 13:16:36 2005 +0000 * Export the references graph to the build hook. commit3f236f01ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 13:07:28 2005 +0000 * `nix-store --register-validity': allow a path to refer to a path listed later in the list of new valid paths. commita04c62e0c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 12:06:57 2005 +0000 * Canonicalise path meta-data in `nix-store --register-validity'. commitf20f081560
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 23 11:25:20 2005 +0000 * nix-store: `--isvalid' -> `--check-validity', `--validpath' -> `--register-validity'. * `nix-store --register-validity': read arguments from stdin, and allow the references and deriver to be set. commita1e00bf6aa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 21 16:28:58 2005 +0000 * Remove non-POSIX flag. commitab75a50ba4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 21 10:06:11 2005 +0000 * Fink compatibility. commit7272c3f817
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 18 09:43:25 2005 +0000 * Ignore hash conflicts in gc-releases.pl. commit67eff20906
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 17 10:30:53 2005 +0000 * Manual updates. commitad3121a52d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 16 16:45:29 2005 +0000 * Documented common environment variables. commitf982df3cd7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 16 14:40:48 2005 +0000 * Update the user environments figure to show multiple profiles and users. * Change to base-32 hashes. commitafc3a7b79b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 16 10:46:33 2005 +0000 * Automake 1.9 compatibility. commit693ff4f6bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 15:42:11 2005 +0000 * Some more updates. commit62dbfbc45b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 14:38:22 2005 +0000 * Remove Docbook EBNF dependency. commite301334696
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 13:55:41 2005 +0000 * XInclude all the way. commitb376565b86
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 13:21:32 2005 +0000 * Manual updates. commitbacd3a6cfa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 12:03:15 2005 +0000 * Purify all corepkgs builders. commite52ae1c0ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 15 11:12:48 2005 +0000 * Use SHA-256 for nix-push. commit155c91b335
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 18:56:02 2005 +0000 * Upgrade information. commit5675d5f488
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 18:55:46 2005 +0000 * Idem. commit6fb5f7e532
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 18:55:29 2005 +0000 * Pass `--base32' unless using MD5. commitc757d16c8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 18:54:40 2005 +0000 * Bug in clearSubstitutes(). commitbb2e53699f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 17:05:42 2005 +0000 * Parse new hash format properly. commit5863f24722
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 17:05:20 2005 +0000 * Print SHA-1 hashes in base-32 by default. commitbd333b939c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 16:46:19 2005 +0000 * Prefix hash algorithm in patch generator too. commit8eff18cd43
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 15:09:53 2005 +0000 * Set NAR name to content hash; previous nix-push names were not unique. * Drop `hashAlgo' attribute in manifests; prefix hashes with the hash algorithm instead. commit1562dfe9ba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 14 14:03:41 2005 +0000 * Script to garbage collect nix-push directories. It prints out all file names in the directory not included in any of the manifests specified on the command line. commit012b812698
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 11 18:35:58 2005 +0000 * Preliminary NEWS for 0.8. commit536f324177
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 11 15:27:37 2005 +0000 * nix-install-package: install outPath, not drvPath, for now. * nix-prefecth-url: print out in base-16. commit08df443618
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 10 11:33:46 2005 +0000 * Check for duplicate attributes and formal parameters in Nix expressions. commit97c93526da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 7 16:26:05 2005 +0000 * In the checker, do traversals of the dependency graph explicitly. A conditional expression in the blacklist can specify when to continue/stop a traversal. For example, in <condition> <within> <traverse> <not><hasAttr name='outputHash' value='.+' /></not> </traverse> <hasAttr name='outputHash' value='ef1cb003448b4a53517b8f25adb12452' /> </within> </condition> we traverse the dependency graph, not following the dependencies of `fetchurl' derivations (as indicated by the presence of an `outputHash' attribute - this is a bit ugly). The resulting set of paths is scanned for a fetch of a file with the given hash, in this case, the hash of zlib-1.2.1.tar.gz (which has a security bug). The intent is that a dependency on zlib is not a problem if it is in a `fetchurl' derivation, since that's build-time only. (Other build-time uses of zlib *might* be a problem, e.g., static linking.) commitbfbc55cbc6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 7 14:54:52 2005 +0000 * Use XML::LibXML. commit543d7a41dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 7 13:27:56 2005 +0000 * Automatically add propagated build inputs to user environments. Maybe this is a bad idea. commit9a7f95882c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 4 11:12:48 2005 +0000 * Basic blacklist checker. Each element in a user environment is checked against every item in a blacklist. commit4bbdcfbb45
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 3 13:58:02 2005 +0000 * Don't use fork() in copyPath(), but a string buffer. commit9e6bca8765
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 3 13:10:52 2005 +0000 * Channel fix. commit86cb3cc554
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 3 13:10:44 2005 +0000 * Increase Berkeley DB limits a bit more. * Maintain the cleanup invariant in clearSubstitutes(). commit0107fba48e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 2 15:57:35 2005 +0000 * Concept for a simple blacklist. commit07b4399fb6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 2 15:57:06 2005 +0000 * `nix-store -q --hash' to quickly query the hash of the contents of a store path (which is stored in the database). commit9e50e648a4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 1 11:27:38 2005 +0000 * Doh! commit8d364e5baa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 1 11:27:22 2005 +0000 * Add missing file to dist. commitdb322a47ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 1 10:33:55 2005 +0000 * Use a weighted use heuristic to disambiguate between multiple occurances of a component. If the shortest path distance between a component P and Q in the referers graph is D, then the contribution of Q to the use of P is 1 / R^D, where R >= 1, typically 2. This expresses that distant indirect uses are less important than nearby uses. For instance, this can disambiguate between the bootstrap GCC in Nixpkgs and the GCC of the final stdenv (the former has more uses, but they are further away), and between the GCC of the final stdenv and the GCC+G77 build (the latter has very few uses). commit2c4302dd7a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 28 14:12:06 2005 +0000 * Added a disambiguation heuristic: if two components have the same name but differ to much in sice (by more than a factor of 3), then never generate a patch. commit8376fff151
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 25 16:12:52 2005 +0000 * Add a version number to manifests. commit8d3c346559
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 25 15:58:00 2005 +0000 * Pause if errors occur. commit6bafeafb88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 25 15:42:52 2005 +0000 * nix-install-package: Use the new (trivial) package format generated by the build farm. See e.g., http://catamaran.labs.cs.uu.nl/dist/nixpkgs-0.8/nixpkgs-0.7pre2302/; the user can click on packages, and they will be installed (assuming the `application/nix-package' MIME type has been associated with `nix-install-package'). Nix expressions are no longer involved: a "package" is just a pointer to a manifest, and the top-level store derivation to be added to the user environment. This makes these packages independent from Nix expression evolution. Note that we install the store derivation ($drvPath), not the resulting output path ($outPath). This is equivalent, except that installing the derivation maintains the back-link from the output path to the derivation that built it. This is useful for maintenance. * Automatically re-exec in an xterm so that the user sees something when `nix-install-package' is run from a browser. commit3259ae5811
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 24 17:36:42 2005 +0000 * Properly specify the hash algorithm in the manifests, and read it too. * Change the default hash for nix-prefetch-url back to md5, since that's what we use in Nixpkgs (for now; a birthday attack is rather unlikely there). commit95e870a113
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 24 14:06:18 2005 +0000 * (Unnecessary) refactoring. commitbfaf83a0fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 23 11:19:27 2005 +0000 * When multiple derivations are specified in `nix-store -r', don't continue building when one fails unless `--keep-going' is specified. * When `--keep-going' is specified, print out the set of failing derivations at the end (otherwise it can be hard to find out which failed). commit3a2c3f0cf2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 22 21:14:41 2005 +0000 * Support for fixed-output hashes over directory trees (i.e., over the NAR dump of the path). commiteda2c3c253
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 22 15:23:24 2005 +0000 * Compatibility hack so that Nixpkgs can continue to do hash checking in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8. commit3c1630131e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 18 09:50:20 2005 +0000 * Subtle bug in the builder: if a subgoal that is instantiated multiple times is also a top-level goal, then the second and later instantiations would never be created because there would be a stable pointer to the first one that would keep it alive in the WeakGoalMap. * Some tracing code for debugging this kind of problem. commit398463a72a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 18 08:40:52 2005 +0000 * `make check' fix. commite0181f56be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 15:57:46 2005 +0000 * `nix-store -q --tree' shows a tree representing the dependency graph of the given derivation. Useful for getting a quick overview of how something was built. E.g., to find out how the `baffle' program in your user environment was built, you can do $ nix-store -q --tree $(nix-store -qd $(which baffle)) Tree nesting depth is minimised (?) by topologically sorting paths under the relation A < B iff A \in closure(B). commit74ab0695b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 15:48:50 2005 +0000 * Compatibility hack with older user environments. commit8a3a96dd5b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 13:55:18 2005 +0000 * Switch to the calling user context for some more operations in a setuid installation. commit88273f9574
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 13:54:45 2005 +0000 * Put build logs in $prefix/var/nix/log/drvs/. commitfb5dae8694
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 17 10:06:12 2005 +0000 * Fix nix-channel. * Add `--help' flag; fixes NIX-5. * Add `--remove' flag; fixes NIX-6. * Add `--list' flag. commit202d5bbda5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 15 12:05:47 2005 +0000 * Compatibility with older GCCs. commite17910cfb5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 15 10:49:31 2005 +0000 * And yet another installation source: the ability to copy user environment elements from one user environment to another, e.g., $ nix-env -i --from-profile /nix/var/nix/profiles/other-profile aterm copies the `aterm' component installed in the `other-profile' to the user's current profile. commit0083562f75
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 15 09:39:12 2005 +0000 * Fix broken GC test. commit8992fce3da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 17:35:10 2005 +0000 * It is now possible to add store derivations or paths directly to a user environment, e.g., $ nix-env -i /nix/store/z58v41v21xd3ywrqk1vmvdwlagjx7f10-aterm-2.3.1.drv or $ nix-env -i /nix/store/hsyj5pbn0d9iz7q0aj0fga7cpaadvp1l-aterm-2.3.1 This is useful because it allows Nix expressions to be bypassed entirely. For instance, if only a nix-pull manifest is provided, plus the top-level path of some component, it can be installed without having to supply the Nix expression (e.g., for obfuscation, or to be independent of Nix expression language changes or context dependencies). commite446d342b7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 17:07:43 2005 +0000 * Added an installation source `--from-expression' (or `-E') to install derivations from a Nix expression specified on the command line. This is particularly useful for disambiguation if there are multiple derivations with the same name. For instance, in Nixpkgs, to install the Firefox wrapper rather than the plain Firefox component: $ nix-env -f .../i686-linux.nix -i -E 'x: x.firefoxWrapper' The Nix expressions should be functions to which the default Nix expression (in this case, `i686-linux.nix') is passed, hence `x: ...'. This might also be a nice way to deal with high-level (user-level) variability, e.g., $ nix-env -f ./server.nix -i -E 'x: x {port = 8080; ssl = false;}' commit0cb016c209
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 16:16:02 2005 +0000 * Refactoring. Hope this doesn't break the semantics of `-u' ;-) commita04a5de8f7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 14:16:56 2005 +0000 * Implement the `gc-keep-derivations' global configuretion flag. commit6a8ef36fe6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 13:07:09 2005 +0000 * Global configuration option `env-keep-derivations' to store pointer to derivations in user environments. Nice for developers (since it prevents build-time-only dependencies from being GC'ed, in conjunction with `gc-keep-outputs'). Turned off by default. commitb0aba6ec2a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 10:44:57 2005 +0000 * Don't keep the derivation symlink when creating profile generations. commit32429142cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 14 09:53:11 2005 +0000 * Type error in constructor call (caught by GCC 3.3, but not 3.4!). commit20ce2642fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 11 16:56:45 2005 +0000 * Refactoring to support different installation sources in nix-env. * Set the references for the user environment manifest properly. * Don't copy the manifest (this was accidental). * Don't store derivation paths in the manifest (maybe this should be made optional). This cleans up the semantics of nix-env, which were weird. * Hash on the output paths of activated components, not on derivation paths. This is because we don't know the derivation path of already installed components anymore, and it allows the installation of components by store path (skipping Nix expressions entirely). * Query options `--out-path' and `--drv-path' to show the output and derivation paths of components, respectively (the latter replaces the `--expr' query). commit80870d9291
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 11 16:03:47 2005 +0000 * Input sources should be in the set of all referenceable paths too. commit3a99616968
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 14:37:24 2005 +0000 * Commit more often to prevent out-of-memory errors. commit98df735b51
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 12:57:13 2005 +0000 * Propagate the deriver of a path through the substitute mechanism. * Removed some dead code (successor stuff) from nix-push. * Updated terminology in the tests (store expr -> drv path). * Check that the deriver is set properly in the tests. commit582e01c06f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 9 09:50:29 2005 +0000 * Automatically upgrade <= 0.7 Nix stores to the new schema (so that existing user environments continue to work). * `nix-store --verify': detect incomplete closures. commitc547439843
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 8 13:48:53 2005 +0000 * Subflag in `--verify': `nix-store --verify --check-contents' checks that the contents of store paths has not changed by comparing hashes of their current contents to the hashes stored in the database. commit3d74274b37
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 8 13:23:55 2005 +0000 * Updated `nix-store --verify' to the new schema. commit60feff82cf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 8 13:00:39 2005 +0000 * Set umask to prevent permission problems. commit48ebe4527e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 8 11:40:19 2005 +0000 * Better error reporting in readmanifest. * Use force flag in `mv' to prevent silly interactive questions (this happens with shared Nix stores). commitfbc434ee4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 7 14:32:44 2005 +0000 * `nix-store -qb' to query derivation environment bindings. Useful for finding build-time dependencies (possibly after a build). E.g., $ nix-store -qb aterm $(nix-store -qd $(which strc)) /nix/store/jw7c7s65n1gwhxpn35j9rgcci6ilzxym-aterm-2.3.1 * Arguments to nix-store can be files within store objects, e.g., /nix/store/jw7c...-aterm-2.3.1/bin/baffle. * Idem for garbage collector roots. commit450c358e20
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 7 13:40:40 2005 +0000 * Maintain a database table (`derivers') that maps output paths to the derivation that produced them. * `nix-store -qd PATH' prints out the derivation that produced a path. commita37338815d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 22:07:48 2005 +0000 * A GC setting `gc-keep-outputs' to specify whether output paths of derivations should be kept. commit2e6bf723e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 20:53:14 2005 +0000 * Added a global configuration file (/nix/etc/nix/nix.conf). It contains options for the garbage collector right now, but other stuff can be added here later. commit9f6835c282
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 17:52:11 2005 +0000 * Remove debug code. commitc3981d81f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 17:50:48 2005 +0000 * Make check fixes. commit65b6c8ab4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 15:05:32 2005 +0000 * Move root finding from `nix-collect-garbage' to `nix-store --gc'. This was necessary becase root finding must be done after acquisition of the global GC lock. This makes `nix-collect-garbage' obsolete; it is now just a wrapper around `nix-store --gc'. * Automatically remove stale GC roots (i.e., indirect GC roots that point to non-existent paths). commit630ae0c9d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 13:48:46 2005 +0000 * nix-build: use an indirection scheme to make it easier for users to get rid of GC roots. Nix-build places a symlink `result' in the current directory. Previously, removing that symlink would not remove the store path being linked to as a GC root. Now, the GC root created by nix-build is actually a symlink in `/nix/var/nix/gcroots/auto' to `result'. So if that symlink is removed the GC root automatically becomes invalid (since it can no longer be resolved). The root itself is not automatically removed - the garbage collector should delete dangling roots. commitdcc37c236c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 12:36:25 2005 +0000 * nix-store, nix-instantiate: added an option `--add-root' to immediately add the result as a permanent GC root. This is the only way to prevent a race with the garbage collector. For instance, the old style ln -s $(nix-store -r $(nix-instantiate foo.nix)) \ /nix/var/nix/gcroots/result has two time windows in which the garbage collector can interfere (by GC'ing the derivation and the output, respectively). On the other hand, nix-store --add-root /nix/var/nix/gcroots/result -r \ $(nix-instantiate --add-root /nix/var/nix/gcroots/drv \ foo.nix) is safe. * nix-build: use `--add-root' to prevent GC races. commita6b65fd5e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 09:54:56 2005 +0000 * Get rid of hardcoded paths. commit06b4424286
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 1 09:23:38 2005 +0000 * Add missing files to dist. * Fix GC and substitute bugs related to self-references. Add a regression test. commit32fa82a56a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 22:23:49 2005 +0000 * Acquire a global GC lock to prevent new temporary root files from being created after the garbage collector has read the temproots directory. This blocks the creation of new processes, but the garbage collector could periodically release the GC lock to allow them to run. commit89c9bc11ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 22:01:55 2005 +0000 * Add a test for a more subtle race: a process starting after the temporary root files have been read but creating outputs before the store directory has been read. commit207bdcbe86
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 21:20:59 2005 +0000 * Automatically remove temporary root files. commit252c9c91ab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 14:00:43 2005 +0000 * Topologically sort paths under the references relation to ensure that they are deleted in an order that maintains the closure invariant. * Presence of a path in a temporary roots file does not imply that all paths in its closure are also present, so add the closure. commit33c5d23b81
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 12:19:53 2005 +0000 * Don't delete active lock files. commit1328aa3307
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 31 10:27:25 2005 +0000 * Start of concurrent garbage collection. Processes write temporary roots to a per-process temporary file in /nix/var/nix/temproots while holding a write lock on that file. The garbage collector acquires read locks on all those files, thus blocking further progress in other Nix processes, and reads the sets of temporary roots. commita7668411a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 28 20:36:46 2005 +0000 * Add a test to check whether concurrent garbage collection (i.e., running the collector while builds are in progress) works correctly. The test currently fails. commit22cfdfa246
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 28 13:19:16 2005 +0000 * Use NIX_STORE environment variable to locate the store (in addition to NIX_STORE_DIR) so that Nix invocations in builders in `make check' work correctly if the store doesn't exist. commit9ab0bc9395
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 28 11:05:56 2005 +0000 * Another horrible `make check' hack. commit0ea8b6993a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 28 11:05:46 2005 +0000 * Only invalidate paths when they are in fact valid. commitac2f665853
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 19:15:12 2005 +0000 * Set execute permission. commita85d1849af
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 19:00:48 2005 +0000 * Missing dependency; only a problem when building from Subversion. commite5c16c9582
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 17:48:50 2005 +0000 * Add missing substitutes files to dist. * Add a garbage collector test. commit8a3eef22e3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 17:48:14 2005 +0000 * Fix deadlock. commitc60a4943ba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 16:18:39 2005 +0000 * Update referers mappings when updating/clearing the references mapping. * Do things in the right order in invalidatePath(). commit4e37548a1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 15:31:49 2005 +0000 * Remove deleted files from EXTRA_DIST (again). commitc505702265
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 15:21:29 2005 +0000 * Fix and simplify the garbage collector (it's still not concurrent, though). In particular it's now much easier to register a GC root. Just place a symlink to whatever store path it is that you want to keep in /nix/var/nix/gcroots. commit59682e6188
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 27 12:19:25 2005 +0000 * Make lock removal safe by signalling to blocked processes that the lock they are waiting on has become stale (we do this by writing a meaningless token to the unlinked file). commita24b78e9f1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 21:28:25 2005 +0000 * Maintain the references/referers relation also for derivations. This simplifies garbage collection and `nix-store --query --requisites' since we no longer need to treat derivations specially. * Better maintaining of the invariants, e.g., setReferences() can only be called on a valid/substitutable path. commit2a2756b856
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 20:27:40 2005 +0000 * Simplification: registerSubstitutes -> registerSubstitute. We no longer need the former since there we no longer have the substitutes-rev table (which triggered a O(n^2) cost in updating them). commita9340fa672
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 17:25:20 2005 +0000 * Remove removed files from EXTRA_DIST. commit498f4915cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 17:24:14 2005 +0000 * Re-enable all tests. commit066da4ab85
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 17:08:52 2005 +0000 * Really fix the substitute mechanism, i.e., ensure the closure invariant by registering references through the manifest. * Added a test for nix-pull. commitc6290e42bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 13:00:12 2005 +0000 * Fix the `--fallback' switch. * Fix the substitutes tests. commit581fc47783
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 11:55:43 2005 +0000 * Fix the build hook mechanism; pass the pointer graph to the hook. commit52bf9b86bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 11:18:03 2005 +0000 * In nix-store: added query `--referers-closure' that returns the closure of the referers relation rather than the references relation, i.e., the set of all paths that directly or indirectly refer to the given path. Note that contrary to the references closure this set is not fixed; it can change as paths are added to or removed from the store. commit80faa2f98a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 25 10:55:33 2005 +0000 * In nix-store: change `--build' back to `--realise'. Also brought back the query flag `--force-realise'. * Fixed some of the tests. commit6a0a2d5593
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 20 16:01:07 2005 +0000 * Terminology fixes. commit6bb5efadec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 20 15:25:01 2005 +0000 * Ensure that derivation names and sources don't end in `.drv'. commit05f0430de1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 20 14:10:19 2005 +0000 * Another change to low-level derivations. The last one this year, I promise :-) This allows derivations to specify on *what* output paths of input derivations they are dependent. This helps to prevent unnecessary downloads. For instance, a build might be dependent on the `devel' and `lib' outputs of some library component, but not the `docs' output. commit6ff48e77f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 21:55:02 2005 +0000 * Set the Perl search path properly (reported by Roy van den Broek). commite0f4e587c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 16:59:56 2005 +0000 * Nix-store queries `--references' and `referers' to query the pointer graph. That is, `nix-store --query --references PATH' shows the set of paths referenced by PATH, and `nix-store --query --referers PATH' shows the set of paths referencing PATH. commit96de272b48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 16:39:47 2005 +0000 * Renamed `normalise.cc' -> `build.cc', `storeexprs.cc' -> `derivations.cc', etc. * Store the SHA-256 content hash of store paths in the database after they have been built/added. This is so that we can check whether the store has been messed with (a la `rpm --verify'). * When registering path validity, verify that the closure property holds. commitef5f254a55
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 15:02:02 2005 +0000 * `nix-store --build' now builds its arguments in parallel instead of sequentially (within the limits set by `--jobs'). This should greatly improve the utilisation of the build farm when doing Nixpkgs builds. commit06c77bf7a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 14:36:00 2005 +0000 * Change extension `.store' to `.drv'. * Re-enable `nix-store --query --requisites'. commit863dcff6c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 11:16:11 2005 +0000 * Started removing closure store expressions, i.e., the explicit representation of closures as ATerms in the Nix store. Instead, the file system pointer graph is now stored in the Nix database. This has many advantages: - It greatly simplifies the implementation (we can drop the notion of `successors', and so on). - It makes registering roots for the garbage collector much easier. Instead of specifying the closure expression as a root, you can simply specify the store path that must be retained as a root. This could not be done previously, since there was no way to find the closure store expression containing a given store path. - Better traceability: it is now possible to query what paths are referenced by a path, and what paths refer to a path. commite9762e2d10
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 19 11:04:24 2005 +0000 * Support arities > 6. commit6d493751c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 18 11:15:50 2005 +0000 * Get --readonly-mode to work again. commit32aac8748a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 17 19:01:48 2005 +0000 * Actually check that the result of fixed-output derivations matches the specified hash. commitf3dc231250
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 17 16:55:19 2005 +0000 * Removed the `id' attribute hack. * Formalise the notion of fixed-output derivations, i.e., derivations for which a cryptographic hash of the output is known in advance. Changes to such derivations should not propagate upwards through the dependency graph. Previously this was done by specifying the hash component of the output path through the `id' attribute, but this is insecure since you can lie about it (i.e., you can specify any hash and then produce a completely different output). Now the responsibility for checking the output is moved from the builder to Nix itself. A fixed-output derivation can be created by specifying the `outputHash' and `outputHashAlgo' attributes, the latter taking values `md5', `sha1', and `sha256', and the former specifying the actual hash in hexadecimal or in base-32 (auto-detected by looking at the length of the attribute value). MD5 is included for compatibility but should be considered deprecated. * Removed the `drvPath' pseudo-attribute in derivation results. It's no longer necessary. * Cleaned up the support for multiple output paths in derivation store expressions. Each output now has a unique identifier (e.g., `out', `devel', `docs'). Previously there was no way to tell output paths apart at the store expression level. * `nix-hash' now has a flag `--base32' to specify that the hash should be printed in base-32 notation. * `fetchurl' accepts parameters `sha256' and `sha1' in addition to `md5'. * `nix-prefetch-url' now prints out a SHA-1 hash in base-32. (TODO: a flag to specify the hash.) commitd58a11e019
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 16:04:03 2005 +0000 * Shorten SHA-256 hashes used in store path name generation to 160 bits, then encode them in a radix-32 representation (using digits and letters except e, o, u, and t). This produces store paths like /nix/store/4i0zb0z7f88mwghjirkz702a71dcfivn-aterm-2.3.1. The nice thing about this is that the hash part of the file name is still 32 characters, as before with MD5. (Of course, shortening SHA-256 to 160 bits makes it no better than SHA-160 in theory, but hopefully it's a bit more resistant to attacks; it's certainly a lot slower.) commit9530cc3170
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 13:51:38 2005 +0000 * Start move towards SHA-256 hashes instead of MD5. * Start cleaning up unique store path generation (they weren't always unique; in particular the suffix ("-aterm-2.2", "-builder.sh") was not part of the hash, therefore changes to the suffix would cause multiple store objects with the same hash). commita7b94e87d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 13:50:09 2005 +0000 * Missing file. commit9ee88bb2f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 13:50:00 2005 +0000 * Use absolute paths. commit63791eb05b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 12:03:04 2005 +0000 * Add SHA-256. * Tests for the various hashes. commit37b51a9aa6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 14 10:16:33 2005 +0000 * Removed some dead code. commit7e8961f720
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 13 17:39:26 2005 +0000 * Added SHA-1 support. `nix-hash' now has an option `--type sha1' to select SHA-1 hashing. commit73992371a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 13 15:44:44 2005 +0000 * Refactoring to support SHA-1. commitd46b4262dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 12 13:23:12 2005 +0000 * Bump version number to 0.8. commitb17e7cf979
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 12 10:40:59 2005 +0000 * Script to remove patches from manifests. commit0bc41f632b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 12 10:37:18 2005 +0000 * Print out less garbage. commit7d75616f2c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 12 10:27:46 2005 +0000 * NEWS and manual update for release 0.7. commit6af4a5a71f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 5 09:58:12 2005 +0000 * Prototype store optimiser. It searched the Nix store for identical files and hard-links them to each other to save disk space. Currently it doesn't actually do the hard-linking, it just reports the amount of space saved if it did. commita03397be4c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 4 17:38:26 2005 +0000 * Cygwin compatibility. commitf28ea27d83
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 31 11:07:32 2004 +0000 * Remove old stuff. commitc53898cb65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 31 11:07:12 2004 +0000 * If a patch already exists, it must still be included in the manifest. commit35b76a81c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 30 17:19:47 2004 +0000 * More instrumentation (statistics go to /nix/var/log/nix/downloads). commit3745cecc6a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 30 17:09:57 2004 +0000 * Fix handling of chained patches: don't skip patches if intermediate paths are missing, etc. commit581bcb986f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 30 16:34:54 2004 +0000 * Some logging for evaluation. commit6270aa727d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 22:17:26 2004 +0000 * Propagate patches from the source distribution to the destination distribution insofar they are applicable. commit4f07ebc67e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 22:08:48 2004 +0000 * Integrated bsdiff/bspatch 4.2 (from http://www.daemonology.net/bsdiff/bsdiff-4.2.tar.gz) into the source tree. The license is a bit peculiar, but it does allow verbatim copying, which is what we do here (i.e., so don't make any changes to the sources). commit54d8f08588
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 19:32:55 2004 +0000 * Reject patches larger than the full archives they produce. commit2fdb27e7f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 19:04:21 2004 +0000 * Atomic file replacement is good. commite1e9c036f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 18:58:15 2004 +0000 * A utility to generate patches between releases based on their manifests. commit77fc1c6c5c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 29 17:29:24 2004 +0000 * Use aterm 2.3.1. commit9022cf9adf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 28 21:12:00 2004 +0000 * A small utility to add the Size and NarHash fields to old manifests. commit4bf58d5379
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 28 21:11:28 2004 +0000 * Added a function to write manifests. commit3d1b2101cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 20 16:38:50 2004 +0000 * Place manifests in /nix/var/nix/manifests. * Use the new patch downloader. commit7eed57e784
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 20 14:57:03 2004 +0000 * Sync with changed substitute mechanism. * Accept the NarHash line. * Clear substitutes in `nix-channel --update'. commit96c3d8a615
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 20 14:38:04 2004 +0000 * I love test sets. commit8b9697e575
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 20 14:16:55 2004 +0000 * An operation `nix-store --clear-substitutes' to remove all registered substitute mappings. commitfa9259f5f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 20 13:43:32 2004 +0000 * Simplify the substitute mechanism: - Drop the store expression. So now a substitute is just a command-line invocation (a program name + arguments). If you register a substitute you are responsible for registering the expression that built it (if any) as a root of the garbage collector. - Drop the substitutes-rev DB table. commit015beb7cd0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 17 13:46:07 2004 +0000 * Typo: genericBuilder -> genericBuild. commit4d25b0b0bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 16 15:31:50 2004 +0000 * Fix nix-pull. commitf4041cc175
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 16 14:59:05 2004 +0000 * Commit old changed to bdiff.sh - but bdiff.sh is obsolete. commit77970f8daf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Dec 16 14:31:49 2004 +0000 * Remove `prebuilts.conf' file, it's not like anybody was using it. * Add /nix/var/nix/manifests directory. commite3b051aeeb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 13 16:56:18 2004 +0000 * Include the size of the bzipped archive (necessary for computing the cheapest download path), as well as the hash of the contents of the path (necessary for checking patch applicability). commit862f4c154e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 13 13:47:38 2004 +0000 * Patch deployment. `download.pl' (intended to be used in the substitute mechanism) creates a store path by downloading full NAR archives and/or patches specified in the available manifests. Any combination of present paths, full downloads, and patches can be used to construct the target path. In particular, patches can be chained in sequence; and full NAR archives of the target path can be omitted (i.e., patch-only deployment is possible). A shortest path algorithm is used to find the smallest set of files to be downloaded (the edge weights are currently file sizes, but one can imagine taking the network speed to the various source into account). Patches are binary deltas between two store paths. To be precise, they are the output of the `bsdiff' program applied to the NAR archives obtained by dumping (`nix-store --dump') the two store paths. The advantage of diff'ing NAR archives (and not, say, doing file-by-file diffs) is that file renames/moves are handled automatically. The disadvantage is that we cannot optimise creation of unchanged files (by hard-linking). commitdca48aed34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 13 13:35:36 2004 +0000 * Allow an optional hash to be provided. This prevents redundant fetches. commit71926ee188
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 21:04:28 2004 +0000 * Print out statistics comparing our performance to bzip2. commit13f77276d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 19:22:16 2004 +0000 * utime() follows symlinks, so don't change the mtime if the file is a symlink. commiteee6fe478e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 19:12:55 2004 +0000 * Proof-of-concept for binary patch deployment. commitf17553a212
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 15:30:44 2004 +0000 * Remove debug statement. commit4115d8d8ce
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 29 15:09:29 2004 +0000 * Canonicalise metadata of all files in store paths (set the mtime to 0, set the mode to either 444 or 555, set the group to the default). commit5d5318c2ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 14 14:00:45 2004 +0000 * Bump version number to 0.7. commit9f8964a062
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 14 10:42:16 2004 +0000 * More manual fixes. commit0b79a12082
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 14 00:24:57 2004 +0000 * Manual fixes. commit54c7a870d5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 12 23:56:37 2004 +0000 * Document --delete-generations and other nix-env options. commitc2b0d6b02f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 12 23:22:08 2004 +0000 * Document --eval-only and --parse-only options in nix-instantiate. commit32c7326850
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 9 14:06:56 2004 +0000 * Typos. commit92ee003dc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 8 15:20:52 2004 +0000 * Fix broken format string. commitd6db574ec1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 8 11:32:10 2004 +0000 * Check exit status of pipe elements. commitb8aaef5e4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 22:12:16 2004 +0000 * Documented the standard environment, including the generic builder. commit2c3b29c5ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 20:36:45 2004 +0000 * Everything you always wanted to know about functions and derivations but were afraid to ask. commitea6581b691
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 20:36:10 2004 +0000 * Drop the grammar appendix. commit09e7f06818
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 20:30:02 2004 +0000 * Put something in here. commit1bac7a10e6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 18:58:49 2004 +0000 * Operators, comments. commit55b35d6d77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 7 13:53:07 2004 +0000 * Lets, inheritance, assertions. commit0b1ee4802b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 5 21:12:23 2004 +0000 * Typo fix. commit5f0300d18c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 5 21:11:01 2004 +0000 * Generic builders. commit3e9d2038b4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 5 15:39:30 2004 +0000 * Start of language reference. commit6ca9c7f0a9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 5 13:10:08 2004 +0000 * Finished GNU Hello walkthrough. commit8b934694f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 4 20:21:08 2004 +0000 * Manual: writing Nix expressions. commitfeb3ceaee0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 4 20:20:39 2004 +0000 * Better error messages. commitcb7ccb528b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 3 18:12:03 2004 +0000 * string2ATerm -> overloaded toATerm. commit4cbd845aa4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 3 16:51:09 2004 +0000 * Don't propagate our CFLAGS to the ATerm library since it breaks at -O2. commit5f2c5a306c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 2 08:25:29 2004 +0000 * chapter -> appendix. commit0913f5a615
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 1 16:21:37 2004 +0000 * Section about channels. commitee5dcfade2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 1 16:03:35 2004 +0000 * Section about garbage collection. commitcbe8de592d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 1 12:02:44 2004 +0000 * Profiles section. commitb05a596d61
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Oct 31 17:08:48 2004 +0000 * Document setuid Nix installs. commit0d80d237c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Oct 31 16:13:25 2004 +0000 * Add figures to `make install' / `make dist'. commit2aa1f4717b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Oct 31 12:01:16 2004 +0000 * Fix `File exists' errors if the `result' symlink exists but is dangling. commitf8ac8d1ec8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 29 15:26:26 2004 +0000 * Began adding build farm docs. commita69534fc21
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 29 11:22:49 2004 +0000 * Drop ATmake / ATMatcher also in handling store expressions. commited09821859
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 13:12:58 2004 +0000 * Use `atdiff' instead of `cmp' for checking test output. * Don't use local file names in tests since they will produce different parse trees depending on the current directory. commit3277c9432a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 13:00:31 2004 +0000 * Bug fix in parsing of /* ... */ comments; due to longest match regexp there could be only one such comment per file. commit463e2817c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 12:41:53 2004 +0000 * Remove ancient Fix tests. * Add automated Nix expression language tests. commitf09618b63a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 10:24:44 2004 +0000 * Turn on read-only mode in queries. This prevents redundant store I/O. commitc7bea941b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 10:05:51 2004 +0000 * Oops, I did it again. commit210ab0296d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 27 00:02:31 2004 +0000 * Add file to `make dist'. commitc52dda95a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 23:30:18 2004 +0000 * Bug: check that term is an application. commit5fe9222b36
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 22:54:26 2004 +0000 * Don't use ATmake / ATmatch anymore, nor the ATMatcher class. Instead we generate data bindings (build and match functions) for the constructors specified in `constructors.def'. In particular this removes the conversions between AFuns and strings, and Nix expression evaluation now seems 3 to 4 times faster. commiteb8284ddaa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 17:10:09 2004 +0000 * Evaluate argument to `import'. commit033d7c6593
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 17:04:55 2004 +0000 * Doh! commit9fa07b376d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 17:01:35 2004 +0000 * String/path concatenation operator (`+'). commitee401afad8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 26 16:59:36 2004 +0000 * Mode `--parse-only' to parse the input (on stdin, `-'), and print out the AST as an ATerm. * Mode `--eval-only' to parse and evaluate the input, and print the resulting normal form as an ATerm. Neither of these modes require store/DB write permission. commit37d7abd694
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 25 16:54:56 2004 +0000 * New language feature: with expressions. The expression `with E1; E2' evaluates to E2 with all bindings in the attribute set E1 substituted. E.g., with {x = 123;}; x evaluates to 123. That is, the attribute set E1 is in scope in E2. This is particularly useful when importing files containing lots definitions. E.g., instead of let { inherit (import ./foo.nix) a b c d e f; body = ... a ... f ...; } we can now say with import ./foo.nix; ... a ... f ... I.e., we don't have to say what variables should be brought into scope. commitf4d44a0026
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 25 14:38:23 2004 +0000 * Allow certain operations to succeed even if we don't have write permission to the Nix store or database. E.g., `nix-env -qa' will work, but `nix-env -qas' won't (the latter needs DB access). The option `--readonly-mode' forces this mode; otherwise, it's only activated when the database cannot be opened. commit3ade3e7721
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 25 13:51:34 2004 +0000 * Revert r1594 - it didn't solve the problem. Instead add svn-revision to distributions, which should fix it. commit2248becfd3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 25 12:15:50 2004 +0000 * Make sure that the prerelease version is included in `--version'. commit50b9caac14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 21 09:22:16 2004 +0000 * Updated NEWS for the upcoming 0.6 release. commit2155c0a673
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 20 14:42:38 2004 +0000 * Register channels as roots of the garbage collector (in $(localstatedir)/nix/gcroots/channels). * In setuid installations, create gcroots/tmp and gcroots/channels group-writable. commit88888160d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 20 14:40:54 2004 +0000 * Fix nix-prefetch-url in setuid Nix installations. commit99da51d4de
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 20 14:05:48 2004 +0000 * Show error messages from curl. commit2cd590d96c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 18 12:22:14 2004 +0000 * Instead of — use the actual Unicode character. By the way, to edit the manual, you should have something like (modify-coding-system-alist 'file "\\.xml\\>" 'utf-8) in your ~/.emacs. commit692204e0c5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 14 16:43:09 2004 +0000 * Rewrite of package management stuff. commitd830b2c1df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 14 15:09:55 2004 +0000 * In `nix-env -q', sort derivations by name *without* case sensitivity. commitfebd8bed1b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 14 11:55:12 2004 +0000 * Split overview chapter into a chapter on package management and a chapter on writing Nix expressions. commit98c69e5172
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 14 11:54:41 2004 +0000 * Unindent. commit371c57d8a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 13 15:35:47 2004 +0000 * Updated the quick start section. Use channels instead of downloading Nix expressions and calling nix-pull. This is so user-friendly that even a Mac user can do it! :-) commit2b20701f78
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 13 15:08:35 2004 +0000 * Better introduction. * Set notes in a different color than warnings. commit1317242780
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 22 12:15:04 2004 +0000 * Make store objects created by substitutes read-only. commit995d08208e
Author: Niels Janssen <njanssen@cs.uu.nl> Date: Sun Sep 19 15:53:37 2004 +0000 * prevent collision on log directory commitb357284a32
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Sep 12 19:08:57 2004 +0000 * Fallback didn't work for subderivations of an unnormalised the main derivation, since NormalisationGoal would first run a NormalisationGoal on the subderivation (a no-op, since in a situation where we need fallback the successor is known), and then runs a RealisationGoal on the normal form, which then cannot do a fallback because it doesn't know the derivation expression for which it is a normal form. Tossed out the 2-phase normalisation/realisation in NormalisationGoal and SubstitutionGoal since it's no longer needed - a RealisationGoal will run a NormalisationGoal if necessary. commitdcc433de47
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Sep 10 13:32:08 2004 +0000 * Operation `--delete-generations' to delete generations of a profile. Arguments are either generation number, or `old' to delete all non-current generations. Typical use: $ nix-env --delete-generations old $ nix-collect-garbage * istringstream -> string2Int. commitc16be6ac92
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 9 21:19:20 2004 +0000 * Remove write permission from store objects after they have been added to the store. Bug reported by Martin. commit47f87072ad
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 9 21:12:53 2004 +0000 * A very dirty hack to make setuid installations a bit nicer to use. Previously there was the problem that all files read by nix-env etc. should be reachable and readable by the Nix user. So for instance building a Nix expression in your home directory meant that the home directory should have at least g+x or o+x permission so that the Nix user could reach the Nix expression. Now we just switch back to the original user just prior to reading sources and the like. The places where this happens are somewhat arbitrary, however. Any scope that has a live SwitchToOriginalUser object in it is executed as the original user. * Back out r1385. setreuid() sets the saved uid to the new real/effective uid, which prevents us from switching back to the original uid. setresuid() doesn't have this problem (although the manpage has a bug: specifying -1 for the saved uid doesn't leave it unchanged; an explicit value must be specified). commit5396304c73
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 9 15:55:31 2004 +0000 * Use setre[ug]id() instead of setres[ug]id(), since the former is more common than the latter (which exists only on Linux and FreeBSD). We don't really care about dropping the saved IDs since there apparently is no way to quiry them in any case, so it can't influence the build (unlike the effective IDs which are checked by Perl for instance). commite043fc7d0b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 9 14:16:02 2004 +0000 * Set the umask to known value (0022). This is important in a setuid installation, since the calling user may have a more fascist umask (say, 0077), which would cause the store objects built by Nix to be unreadable to anyone other than the Nix user. commit550d960586
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 8 12:07:19 2004 +0000 * Hack for perl(readmanifest) dependency. commit17c8252fc9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 6 10:05:21 2004 +0000 * Spec file options to create the Nix user and group in the RPM pre-install script. By default this is turned off; you should edit the spec file to enable it. commitfb28cfc86d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Sep 6 08:17:55 2004 +0000 * Add some variability to RPM spec files: allow setuid options to be set on the rpmbuild command line. commit5c443b6550
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 31 16:13:10 2004 +0000 * Main the `substitutes-rev' table again, but now in a way that doesn't take \Theta(n^2) space/time complexity. commitc25f2883b1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 31 10:50:08 2004 +0000 * Quadruple the Berkeley DB locking limits to get rid of out of memory errors while running `nix-store --verify'. commitfe122c5a15
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 30 11:51:36 2004 +0000 * Removed nrWaitees field. It was redundant with waitees.size() and could get out of sync if multiple input derivations mapped to the same closure expression (since waitees is a set). commiteb233e728f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 25 16:54:08 2004 +0000 * `--min-age' flag in nix-store and nix-collect-garbage to only delete unreachable paths that haven't been used for N hours. For instance, `nix-collect-garbage --min-age 168' only deletes paths that haven't been accessed in the last week. This is useful for instance in the build farm where many derivations can be shared between consecutive builds, and we wouldn't want a garbage collect to throw them all away. We could of course register them as roots, but then we'd to unregister them at some point, which would be a pain to manage. The `--min-age' flag gives us a sort of MRU caching scheme. BUG: this really shouldn't be in gc.cc since that violates mechanism/policy separation. commitfdec72c6cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 25 15:39:13 2004 +0000 * `nix-collect-garbage' now actually performs a garbage collection, it doesn't just print the set of paths that should be deleted. So there is no more need to pipe the result into `nix-store --delete' (which doesn't even exist anymore). commit818047881e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 25 11:43:49 2004 +0000 * Put the garbage collector in nix-store: operation `--gc', suboperations `--print-live', `--print-dead', and `--delete'. The roots are not determined by nix-store; they are read from standard input. This is to make it easy to customise what the roots are. The collector now no longer fails when store expressions are missing (which legally happens when using substitutes). It never tries to fetch paths through substitutes. TODO: acquire a global lock on the store while garbage collecting. * Removed `nix-store --delete'. commit9994c1dd9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 24 11:46:05 2004 +0000 * Validate derivation names. In particular don't allow spaces. * Drop support for the outPath attribute in derivations. commit8f58733ef1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 20 15:47:58 2004 +0000 * The gid should also match. commit1c90fabccc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 20 15:31:46 2004 +0000 * Unbreak programs that are not setuid (such as nix-hash). commite77fbe0fa2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 20 15:22:33 2004 +0000 * On systems that have the setresuid() and setresgid() system calls to set the real uid and gid to the effective uid and gid, the Nix binaries can be installed as owned by the Nix user and group instead of root, so no root involvement of any kind is necessary. Linux and FreeBSD have these functions. commit2d35116c13
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 20 14:49:05 2004 +0000 * Setuid support for sharing a Nix installation between multiple users. If the configure flag `--enable-setuid' is used, the Nix programs nix-env, nix-store, etc. are installed with the setuid bit turned on so that they are executed as the user and group specified by `--with-nix-user=USER' and `--with-nix-group=GROUP', respectively (with defaults `nix' and `nix'). The setuid programs drop all special privileges if they are executed by a user who is not a member of the Nix group. The setuid feature is a quick hack to enable sharing of a Nix installation between users who trust each other. It is not generally secure, since any user in the Nix group can modify (by building an appropriate derivation) any object in the store, and for instance inject trojans into binaries used by other users. The setuid programs are owned by root, not the Nix user. This is because on Unix normal users cannot change the real uid, only the effective uid. Many programs don't work properly when the real uid differs from the effective uid. For instance, Perl will turn on taint mode. However, the setuid programs drop all root privileges immediately, changing all uids and gids to the Nix user and group. commit8f1dcdfc0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 19 09:09:09 2004 +0000 * Make sure that no build hook is set by default in the tests. * Don't use `seq' - some primitive, obsolete operating systems (Darwin) don't have it. commit1eddee59f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 18 12:19:06 2004 +0000 * The default verbosity level of all Nix commands is now lvlInfo. * Builder output is written to standard error by default. * The option `-B' is gone. * The option `-Q' suppresses builder output. The result of this is that most Nix invocations shouldn't need any flags w.r.t. logging. commit937ce0cd21
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 18 12:11:31 2004 +0000 * Flag `--no-link' suppresses symlinking to the output path. * Handle multiple derivations correctly. commit966bd9d19f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 13 09:57:51 2004 +0000 * WTF? More canonical system name problems ("athlon-linux" instead of "i686-linux"). commit62fe5c4a22
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 11 19:03:13 2004 +0000 * The predecessor of a successor need not be present. This in particular happens on distributed builds or when using push/pull. commitae1a1efa41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 5 14:53:27 2004 +0000 * Clean up the temporary directory for hook communication (and don't print out incorrect "build failed" messages). commitd8989b1fb4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 4 11:27:53 2004 +0000 * Every real language has a `map' function. commitbbfdd64741
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 4 10:59:20 2004 +0000 * Allow primops with more that 1 arguments. commite3a50f7e25
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 4 09:25:21 2004 +0000 * Creating a file nix-support/no-scan in the output path of a derivation disables scanning for dependencies. Use at your own risk. This is a quick hack to speed up UML image generation (image are very big, say 1 GB). It would be better if the scanner were faster, and didn't read the whole file into memory. commit18ebd7b030
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 30 14:18:48 2004 +0000 * Doh! commit5373aed1a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 30 14:17:05 2004 +0000 * Use ATerm 2.2. * Include bootstrap.sh in dist. commit16c8b4c8e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 30 13:45:13 2004 +0000 * A script to generate the Auto* stuff. commite8a95108c0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 28 13:32:45 2004 +0000 * Nix-build places a symlink `result' in the current directory to the store object just built. commit9bf7a5f516
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 18 21:08:24 2004 +0000 * Don't pass `--with-system'. commit39eaecbc98
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 18 21:07:27 2004 +0000 * Slightly better heuristic for picking the canonical system type. Now SuSE and Red Hat should yield the same type (`i686-linux'). Mac OS X should now give `powerpc-darwin' (i.e., the version number is gone). commit064a36cb54
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 9 13:06:12 2004 +0000 * Hardcode the system id to be `i686-linux'. commitc1a18f543e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 6 11:21:34 2004 +0000 * Fixed format string error. commit056cd1d3b7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 16:24:35 2004 +0000 * Don't go into a (sometimes infinite) loop calling the build hook. commit638ce339a5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 14:25:26 2004 +0000 * Nix-instantiate now accepts sets of derivations (just like nix-env). commit292d6468ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 13:56:56 2004 +0000 * Nix-env operations now by default filter out any derivations for system types other than the current system. I.e., `nix-env -i' won't install derivations for other system types, and `nix-env -q' won't show them. The flag `--system-filter SYSTEM' can be used to override the system type used for filtering (but not for building!). The value `*' can be used not to filter anything. commit8f6254e823
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 13:35:10 2004 +0000 * Align the columns in the output of `nix-env -q'. commit593bc23d8b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 13:13:37 2004 +0000 * Allow the system attribute of derivations to be queried in `nix-env -q'. * Queries can now be combined, e.g., `nix-env -q --status --system'. commitb584253af4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 1 11:11:16 2004 +0000 * Include some missing headers. commitf5d5ffe536
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 29 09:41:50 2004 +0000 * Write build logs to disk again. commit00aadf478b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 14:51:42 2004 +0000 * Use ATerm 2.1. commit151e61fa5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 14:40:26 2004 +0000 * By default, `nix-env -i' now deletes previously installed derivations with names matching the derivations being installed. The option `--preserve-installed / -P' overrides this behaviour. commit4d2946c516
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 13:51:24 2004 +0000 * In a realisation goal, check the result of the corresponding normalisation goal. commit24286e15c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 13:37:05 2004 +0000 * `nix-env -u' now allows a specific version to be specified when upgrading. This fixes a bug reported by Martin: $ nix-env -i foo-1.0 $ nix-env -u foo-1.0 upgrading foo-1.0 to foo-1.1 commit2746a879e2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 12:07:07 2004 +0000 * Typo. commit91dc023665
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 28 10:42:57 2004 +0000 * Added a switch `--fallback'. From the manual: Whenever Nix attempts to realise a derivation for which a closure is already known, but this closure cannot be realised, fall back on normalising the derivation. The most common scenario in which this is useful is when we have registered substitutes in order to perform binary distribution from, say, a network repository. If the repository is down, the realisation of the derivation will fail. When this option is specified, Nix will build the derivation instead. Thus, binary installation falls back on a source installation. This option is not the default since it is generally not desirable for a transient failure in obtaining the substitutes to lead to a full build from source (with the related consumption of resources). commitb113edeab7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 25 15:36:09 2004 +0000 * A flag `--keep-going / -k' to keep building goals if one fails, as much as possible. (This is similar to GNU Make's `-k' flag.) * Refactoring to implement this: previously we just bombed out when a build failed, but now we have to clean up. In particular this means that goals must be freed quickly --- they shouldn't hang around until the worker exits. So the worker now maintains weak pointers in order not to prevent garbage collection. * Documented the `-k' and `-j' flags. commite4883211f9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 25 10:21:44 2004 +0000 * Don't throw an exception when a build fails. Just terminate the goal and allow the problem to be handled elsewhere (e.g., at top-level). commit795d9f8b08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 24 14:36:50 2004 +0000 * Obsolete. commita29c8ac51c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 24 14:35:01 2004 +0000 * Add a test to check that when we cannot realise a closure expression, we should invalidate it and go back to the derivation for which it is a successor. commitec32627621
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 24 13:40:38 2004 +0000 * Multiple and/or failing substitutes now work. commit8052aef486
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jun 24 12:56:24 2004 +0000 * A test for multiple and/or failing substitutes. commit66c7f34759
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 17:07:32 2004 +0000 * Arghhhhhh commit05a5362d63
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 17:04:10 2004 +0000 * Some more diagnostics changes. commitd051cd40e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 15:17:04 2004 +0000 * Nix-instantiate can return multiple store expressions. commit3093af58a7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 15:12:34 2004 +0000 * A utility script `nix-build' that builds Nix expressions and prints their output paths (and only that) on standard output. commitb302e5f63b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 15:06:43 2004 +0000 * We don't really need this here. commit83ae1723da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 15:01:01 2004 +0000 * Well, it's better than printf. commit72bc9a522f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 14:48:59 2004 +0000 * Started making Nix's diagnostic messages a bit more useful. commit5e2cf44a4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 11:03:41 2004 +0000 * Put WEXITSTATUS stuff somewhere else. commit84007a0958
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 10:21:44 2004 +0000 * Reduce gratuitous cut & pasting. commitc9fbd2dfd5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 09:51:44 2004 +0000 * Wrapper class around pids. commit155d7c8dfa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 09:00:31 2004 +0000 * Substitutes should occupy a build slot. commitc4cb6ea2bc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 22 08:50:25 2004 +0000 * Refactoring. commit88fb4f6e53
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 12:20:47 2004 +0000 * Missing files added to `make dist'. commit2db9748221
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 10:01:17 2004 +0000 * Remove debug output. commit37ee6cef99
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 09:51:23 2004 +0000 * Adapted nix-pull to use the new substitute mechanism. commit3f3a3ae87b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 09:35:50 2004 +0000 * Acquire a lock on the output path when running a substitute. Also delete obstructing invalid paths. commit72c857f0eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 08:51:55 2004 +0000 * Ugh, nasty Heisenbug due to an uninitialiased variable. The bug only caused a crash if the program was *not* invoked with a high verbosity level. commitbe1a917beb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 07:46:02 2004 +0000 * Remove obstructing invalid store paths add[Text]ToStore(). commitdaf0a923c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 07:38:17 2004 +0000 * Wrap calls to registerSubstitute() in a single transaction to improve throughput. * Don't build the `substitute-rev' table for now, since it caused Theta(N^2) time and log file consumption when adding N substitutes. Maybe we can do without it. commit15c60ca1b6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 21 07:36:01 2004 +0000 * Disable calls to fsync() since Berkeley DB's DB_TXN_WRITE_NOSYNC flag doesn't seem to work as advertised. commit112ee89501
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jun 20 19:17:54 2004 +0000 * Re-enable support for substitutes in the normaliser. * A better substitute mechanism. Instead of generating a store expression for each store path for which we have a substitute, we can have a single store expression that builds a generic program that is invoked to build the desired store path, which is passed as an argument. This means that operations like `nix-pull' only produce O(1) files instead of O(N) files in the store when registering N substitutes. (It consumes O(N) database storage, of course, but that's not a performance problem). * Added a test for the substitute mechanism. * `nix-store --substitute' reads the substitutes from standard input, instead of from the command line. This prevents us from running into the kernel's limit on command line length. commitbafb2357d1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jun 20 19:08:59 2004 +0000 * README for the Emacs mode (written a while ago, but forgot to commit). commit85ae781765
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jun 20 13:37:51 2004 +0000 * Refactoring. commit23bb902d1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jun 19 21:45:04 2004 +0000 * Re-enable build hooks. commit41ec982f31
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 18 18:09:32 2004 +0000 * Big refactoring. Move to a much more explicitly state machine based approach. This makes it much easier to add extra complexity in the normaliser / realiser (e.g., build hooks, substitutes). commit3454c685ee
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 18 16:52:31 2004 +0000 * This is also useful. commit6ba26f27c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 18 09:20:51 2004 +0000 * Shared (garbage collecting) pointers. Copied from Boost. commit0b70231b9d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 15 13:49:42 2004 +0000 * Refactoring. commit1bc6afefac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 8 13:21:03 2004 +0000 * Cleanup. commite8411948ff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 4 14:31:57 2004 +0000 * A Nix mode for Emacs. commit5e4a2272bf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 18 14:52:35 2004 +0000 * Drain the output of the build hook to show error messages. Ugly hack. commit19479899fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 18 12:57:26 2004 +0000 * Don't set the rpath here --- it's not portable. commit1d08093b48
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 18 09:45:46 2004 +0000 * Go back to the old way of generating the system name, and allow it to be specified in configure (using `--with-system=SYSTEM'). commit8e9fd57ef9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 18 09:45:18 2004 +0000 * setpgrp() is not POSIX (and on Mac OS X it's different than on Linux), so use setpgid(). commitace8872706
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 14 12:24:29 2004 +0000 * execl() requires a terminating 0. * When a fast build wakes up a goal, try to start that goal in the same iteration of the startBuild() loop of run(). Otherwise no job might be started until the next job terminates. commit4fc00cbec1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 13 22:52:37 2004 +0000 * Distributed builds and load balancing now seem to work pretty well. (Though the `build-remote.pl' script has a gigantic race condition). commit2fa3304933
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 13 20:28:20 2004 +0000 * Set the executable bit. commit25db622454
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 13 19:35:46 2004 +0000 * Load balancing. `build-remote.pl' will only execute up to a per-machine maximum number of parallel jobs on a remote machine. commit3426d19547
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 13 19:16:48 2004 +0000 * Perform all tests. commita8306cb98f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu May 13 19:14:49 2004 +0000 * The build hooks used to implement distributed builds can now be run in parallel. Hooks are more efficient: locks on output paths are only acquired when the hook says that it is willing to accept a build job. Hooks now work in two phases. First, they should first tell Nix whether they are willing to accept a job. Nix guarantuees that no two hooks will ever be in the first phase at the same time (this simplifies the implementation of hooks, since they don't have to perform locking (?)). Second, if they accept a job, they are then responsible for building it (on the remote system), and copying the result back. These can be run in parallel with other hooks and locally executed jobs. The implementation is a bit messy right now, though. * The directory `distributed' shows a (hacky) example of a hook that distributes build jobs over a set of machines listed in a configuration file. commit5087c8f645
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 14:30:57 2004 +0000 * Use `-j0'. commitefa5fa1a91
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 14:20:32 2004 +0000 * A switch `-j NUMBER' to set the maximum number of parallel jobs (0 = no limit). * Add missing file to distribution. commit1f48aa0be7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 13:49:10 2004 +0000 * Broken test. commitaa5a5084e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 13:32:26 2004 +0000 * Pass to the build hook all sorts of information useful for distributing a build action to another machine. In particular, the paths in the input closures, the output paths, and successor mapping for sub-derivations. commit8c0b42f857
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed May 12 09:35:51 2004 +0000 * An quick and dirty hack to support distributed builds. commitc8d3882cdc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 11 18:05:44 2004 +0000 * True parallel builds. Nix can now run as many build jobs in parallel as possible (similar to GNU Make's `-j' switch). This is useful on SMP systems, but it is especially useful for doing builds on multiple machines. The idea is that a large derivation is initiated on one master machine, which then distributes sub-derivations to any number of slave machines. This should not happen synchronously or in lock-step, so the master must be capable of dealing with multiple parallel build jobs. We now have the infrastructure to support this. TODO: substitutes are currently broken. commitaea436503e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 11 13:48:25 2004 +0000 * Ignore interrupt signals while handling an exception. * Ignore EINTR in reads and writes. commita9858c9f26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 4 17:04:17 2004 +0000 * A test to verify that Nix executes build jobs in parallel, if possible. This test fails right now because this hasn't been implemented right now. Yes, I'm doing Test-Driven Development! ;-) commitf044ccf702
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 4 13:56:30 2004 +0000 * 1000th revision! * A test to verify that locking of output paths (caused by concurrent invocations of Nix) works correctly. commita7bbe73971
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 4 13:22:33 2004 +0000 * Another test. commitef093aac8f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 4 12:45:04 2004 +0000 * Grrr. TESTS are not included in EXTRA_DIST. commit256eeab711
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 4 12:15:30 2004 +0000 * Allow the location of the store etc. to be specified using environment variables. * Started adding some automatic tests. * Do a `make check' when building RPMs. commitfd927c5d25
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 26 13:44:26 2004 +0000 * Bump the version number. commit22371cbd3f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 26 09:54:37 2004 +0000 * Fixed URL. commitbcce9c1ff5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 26 09:52:06 2004 +0000 * Only add `-preRELEASE' to the version if STABLE != 1. * Documented release procedures. commitd4779abc04
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 23 15:16:08 2004 +0000 * Pass SYSTEM through config.h, and allow spaces. commit759c953196
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 22 14:17:57 2004 +0000 * Look for GC roots in @localstatedir@/nix/gcroots. commitd7238bc84e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 22 07:47:41 2004 +0000 * Don't create $(localstatedir)/nix/profiles if --disable-init-state is specified. commitb6df68c942
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 14:57:46 2004 +0000 * Dist error. commit21655a70f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 14:54:05 2004 +0000 * Channels. These allow you to stay current with an evolving set of Nix expressions. To subscribe to a channel (needs to be done only once): nix-channel --add \ http://catamaran.labs.cs.uu.nl/dist/nix/channels/nixpkgs-unstable This just adds the given URL to ~/.nix-channels (which can also be edited manually). To update from all channels: nix-channel --update This fetches the latest expressions and pulls cache manifests. The default Nix expression (~/.nix-defexpr) is made to point to the conjunction of the expressions downloaded from all channels. So to update all installed derivations in the current user environment: nix-channel --update nix-env --upgrade '*' If you are really courageous, you can put this in a cronjob or something. You can subscribe to multiple channels. It is not entirely clear what happens when there are name clashes between derivations from different channels. From nix-env/main.cc it appears that the one with the lowest (highest?) hash will be used, which is pretty meaningless. commitf79e9c2d22
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 10:54:46 2004 +0000 * Do initialise state (the DB etc.) when doing a `make install', unless `--disable-init-state' is passed to configure. commit8e459d919d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 21 09:37:37 2004 +0000 * Recurse into attribute sets and lists when getting derivations from an expression. commit7cce0c34e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 15 15:14:16 2004 +0000 * Allow extra parameters to be passed to Curl through the `CURL_FLAGS' environment variable. This is useful for passing authentication information (it won't show up in `ps'). Hacky - nix-push should abstract over the use of Curl. commit2c5a8bf49f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 10:45:11 2004 +0000 * Use @storedir@, not @prefix@/store. commitb275f2ed3b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 08:09:27 2004 +0000 * `*.gcroot' files can now containing multiple roots. commita4d2b22c8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 14 08:08:55 2004 +0000 * Be stricter in verifying store paths. commit87bf541f23
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 8 15:51:26 2004 +0000 * Documented the primops. commitb0c9baf1b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 8 13:31:57 2004 +0000 * EBNF grammar for the Nix expression language. commit153429520a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 6 15:55:27 2004 +0000 * Distributed the wrong file. commit2be8ac48bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 6 11:42:28 2004 +0000 * Make the creation of user environments much faster and more storage efficient by creating only a single symlink to entire directory trees unless a collission occurs. commitbf3863b546
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 6 08:40:19 2004 +0000 * Fail if prerequisites are missing. commit03f1d1ecb5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 6 08:18:51 2004 +0000 * Switched from wget to curl. * Made the dependencies on bzip2 and the shell explicit. commit59b94ee18a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Apr 5 22:27:41 2004 +0000 * When something goes wrong in the evaluation of a Nix expression, print a nice backtrace of the stack, rather than vomiting a gigantic (and useless) aterm on the screen. Example: error: while evaluating file `.../pkgs/system/test.nix': while evaluating attribute `subversion' at `.../pkgs/system/all-packages-generic.nix', line 533: while evaluating function at `.../pkgs/applications/version-management/subversion/default.nix', line 1: assertion failed at `.../pkgs/applications/version-management/subversion/default.nix', line 13 Since the Nix expression language is lazy, the trace may be misleading. The purpose is to provide a hint as to the location of the problem. commita520b1cbc3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 2 10:49:37 2004 +0000 * Print a more useful error message in case of an invalid derivation binding. commitc4ac2a164a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 30 15:05:35 2004 +0000 * The recent change in nixpkgs of calling `stdenv.mkDerivation' instead of `derivation' triggered a huge slowdown in the Nix expression evaluator. Total execution time of `nix-env -qa' went up by a factor of 60 or so. This scalability problem was caused by expressions such as (x: y: ... x ...) a b where `a' is a large term (say, the one in `all-packages-generic.nix'). Then the first beta-reduction would produce (y: ... a ...) b by substituting `a' for `x'. The second beta-reduction would then substitute `b' for `y' into the body `... a ...', which is a large term due to `a', and thus causes a large traversal to be performed by substitute() in the second reduction. This is however entirely redundant, since `a' cannot contain free variables (since we never substitute below a weak head normal form). The solution is to wrap substituted terms into a `Closed' constructor, i.e., subst(subs, Var(x)) = Closed(e) iff subs[x] = e have substitution not descent into closed terms, subst(subs, Closed(x)) = Closed(x) and otherwise ignore them for evaluation, eval(Closed(x)) = eval(x). * Fix a typo that caused incorrect substitutions to be performed in simple lambdas, e.g., `(x: x: x) a' would reduce to `(x: a)'. commitdf101d6fca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 29 12:10:15 2004 +0000 * Specify Perl as a dependency for the RPM. commitac4d39f9db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 21:15:01 2004 +0000 * Added an operator `?' to test for attribute existence, e.g., `attrs ? x' yields true iff `attrs' has an attribute named `x'. commitf958bcdf1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 20:58:28 2004 +0000 * Added an operator `~' to select paths within a derivation. E.g., {stdenv, bash}: derivation { builder = bash ~ /bin/sh; args = ["-e" "-x" ./builder.sh]; ... } Here the attribute `builder' will evaluate to, e.g., `/nix/store/1234abcd...-bash-2.0.1/bin/sh'. commitdb3e644c1c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 28 20:34:22 2004 +0000 * Added plain lambdas, e.g., `let { id = x: x; const = x: y: x; }'. `bla:' is now no longer parsed as a URL. * Re-enabled support for the `args' attribute in derivations to specify command line arguments to the builder, e.g., ... builder = /usr/bin/python; args = ["-c" ./builder.py]; ... commitf8cd904e05
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 27 17:58:04 2004 +0000 * Disallow the Nix store or any of its parents from being symlinks. This is because the contents of these symlinks are not incorporated into the hashes of derivations, and could therefore cause a mismatch between the build system and the target system. E.g., if `/nix/store' is a symlink to `/data/nix/store', then a builder could expand this path and store the result. If on the target system `/nix/store' is not a symlink, or is a symlink that points somewhere else, we have a dangling pointer. The trigger for this change is that gcc 3.3.3 does exactly that (it applies realpath() to some files, such as libraries, which causes our impurity checker to bail out.) An annoying side-effect of this change is that it makes it harder to move the Nix store to a different file system. On Linux, bind mounts can be used instead of symlink for this purpose (e.g., `mount -o bind /data/nix/store /nix/store'). commitf0f7a9f299
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Mar 27 15:33:19 2004 +0000 * Do not close a nesting level twice after close() has been called explicitly on a Nest object. commit7823db2137
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 22 21:42:28 2004 +0000 * Some more nesting. commit777e13b94b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 22 20:53:49 2004 +0000 * Nix now has three different formats for the log information it writes to stderr: - `pretty': the old nested style (default) - `escapes': uses escape codes to indicate nesting and message level; can be processed using `log2xml' - `flat': just plain text, no nesting These can be set using `--log-type TYPE' or the NIX_LOG_TYPE environment variable. commit79bb0008ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 19 14:45:45 2004 +0000 * `null' is a normal form. commite6253b58cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 18 21:32:15 2004 +0000 * Escape codes to force line breaks to be ignored. commit3f3c4cce5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 18 21:04:14 2004 +0000 * Added an extra escape code to signal "unimportant" messages. If a tree only has unimportant messages, it is collapsed by the default. * Also added an optional integer argument to the escape code for opening a nesting level to indicate lack of importance. If set, the tree is collapsed by default. commit84c617966b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 18 18:26:22 2004 +0000 * Collapsable trees. commitc2fc2c13c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 18 14:58:16 2004 +0000 * Use unordered lists, which is more sensible semantically for representing tree structures. commita784fd5792
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 18 13:04:05 2004 +0000 * Don't use tables. Konqueror likes this much better. commit8ce3dd4887
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 17 16:55:53 2004 +0000 * Display the popup directly over the abbreviation. commit8330c8202a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 17 16:52:48 2004 +0000 * A simpler way of implementing the store reference popups, thanks to Martin and CSS guru Martijn Vermaat. commitb5539e7a30
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 16 12:47:09 2004 +0000 * Store paths are now abbreviated in the generated HTML file. Hovering over the abbreviated path will reveal the full path. This probably only works in Mozilla. commit9d2669d218
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 15 21:51:14 2004 +0000 * Added a utility that can be used to produce nice HTML pages from Nix build logs. The program `log2xml' converts a Nix build log (read from standard input) into XML file that can then be converted to XHTML by the `log2html.xsl' stylesheet. The CSS stylesheet `logfile.css' is necessary to make it look good. This is primarily useful if the log file has a *tree structure*, i.e., that sub-tasks such as the various phases of a build (unpack, configure, make, etc.) or recursive invocations of Make are represented as such. While a log file is in principle an unstructured plain text file, builders can communicate this tree structure to `log2xml' by using escape sequences: - "\e[p" starts a new nesting level; the first line following the escape code is the header; - "\e[q" ends the current nesting level. The generic builder in nixpkgs (not yet committed) uses this. It shouldn't be to hard to patch GNU Make to speak this protocol. Further improvements to the generated HTML pages are to allow collapsing/expanding of subtrees, and to abbreviate store paths (but to show the full path by hovering the mouse over it). commitbeda10f5a2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 15 15:23:53 2004 +0000 * Make perl a dependency of Nix. commita5619f1dff
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 12 10:45:08 2004 +0000 * Set the NIX_STORE and NIX_BUILD_TOP environment variables in builders to point to the store and the temporary build directory, respectively. Useful for purity checking. * Also set TEMPDIR, TMPDIR, TEMP, and TEMP to NIX_BUILD_TOP to make sure that tools in the builder store temporary files in the right location. commit7f0ed370da
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 20 11:32:30 2004 +0000 * Use $(storedir) instead of $(prefix)/store. commitdbf547645d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Feb 19 13:11:12 2004 +0000 * Resolve an ambiguity between ifs and attribute selection, e.g., `if b then x else y.z'. commit86b7efbdbe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 16 16:48:06 2004 +0000 * Don't build ATerm library if we don't need to. commit0dfdafdf6d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 16 16:37:16 2004 +0000 * Allow linking against an external Berkeley DB / ATerm library. commitf34de12140
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 16 15:23:19 2004 +0000 * Allow the location of the store to be specified (--with-store-dir). * Do not create stuff in localstatedir when doing `make install' (since we may not have write access). In general, installation of constant code/data should be separate from the initialisation of mutable state. commitfbc48a469c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 16 09:18:35 2004 +0000 * Inherited attributes in recursive attribute sets are in scope of the non-inherited attributes. commit76c0e85929
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Feb 14 21:44:18 2004 +0000 * The environment variable NIX_ROOT can now be set to execute Nix in a chroot() environment. * A operation `--validpath' to register path validity. Useful for bootstrapping in a pure Nix environment. * Safety checks: ensure that files involved in store operations are in the store. commit6f5a5ea5ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 13 10:45:09 2004 +0000 * Regression fix: realise substitutes and detect cycles. commit1ad9d11247
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 13 10:43:31 2004 +0000 * Only include predecessors that are themselves being pushed. Otherwise the substitute mechanism can break in subtle ways. commit00fe1a506f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 11 10:25:31 2004 +0000 * When creating a new generation, also make the normal form of the derivation (i.e., the closure store expression) a root of the garbage collector. This ensures that running `nix-collect-garbage --no-successors' is safe. commit92e832348d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 10 16:14:47 2004 +0000 * Lots of manual stuff. Reference pages for most Nix commands. * nix-pull now requires the full url to the manifest, i.e., `/MANIFEST/' is no longer automatically appended. * nix-prefetch-url works again. commit6551b36790
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 10 13:42:58 2004 +0000 * Print what generation we are switching to; honour --dry-run flag. commit0616b7feea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 10 11:51:16 2004 +0000 * Documented the most important nix-env flags. commit618aa69b01
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 9 11:59:39 2004 +0000 * In `--upgrade': added flags `--lt', `--leq', `--always' to specify whether we want to upgrade if the current version is less than the available version (default), when it is less or equal, or always. * Added a flag `--dry-run' to show what would happen in `--install', `--uninstall', and `--upgrade', without actually performing the operation. commit06a75a7e0c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Feb 8 14:07:43 2004 +0000 * A command `--switch-generation' to switch to a specific generation of the current profile, e.g., $ nix-env --list-generations ... 39 2004-02-02 17:53:53 40 2004-02-02 17:55:18 41 2004-02-02 17:55:41 42 2004-02-02 17:55:50 (current) $ nix-env --switch-generation 39 $ ls -l /nix/var/nix/profiles/default ... default -> default-39-link * Also a command `--rollback' which is just a convenience operation to rollback to the oldest generation younger than the current one. Note that generations properly form a tree. E.g., if after switching to generation 39, we perform an installation action, a generation 43 is created which is a descendant of 39, not 42. So a rollback from 43 ought to go back to 39. This is not currently implemented; generations form a linear sequence. commitb8675aee54
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 16:16:55 2004 +0000 * In `--list-generations', show what the current generation is. commit73ab2ed4fd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 16:03:27 2004 +0000 * A command `--list-generations' to show all generations for a profile. commit7c0fa4474f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 14:57:10 2004 +0000 * More refactoring. commit7abf9911d9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 14:49:41 2004 +0000 * Refactoring. commit49bafe1faf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 10:59:06 2004 +0000 * Use the profile pointed to by ~/.nix-profile if no --profile argument is specified. commit66e94d3275
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Feb 6 10:30:20 2004 +0000 * Improvements to profiles. Generations are now per-profile, e.g., default -> default-94-link default-82-link -> /nix/store/cc4480... default-83-link -> /nix/store/caeec8... ... default-94-link -> /nix/store/2896ca... experimental -> experimental-2-link experimental-1-link -> /nix/store/cc4480... experimental-2-link -> /nix/store/a3148f... * `--profile' / `-p' -> `--switch-profile' / `-S' * `--link' / `-l' -> `--profile' / `-p' * The default profile is stored in $prefix/var/nix/profiles. $prefix/var/nix/links is gone. Profiles can be stored anywhere. * The current profile is now referenced from ~/.nix-profile, not ~/.nix-userenv. * The roots to the garbage collector now have extension `.gcroot', not `.id'. commitd445da7a7b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 4 17:23:26 2004 +0000 * Extended the `inherit' syntax to optionally select attributes from other attribute sets, rather than the current scope. E.g., {inherit (pkgs) gcc binutils;} is equivalent to {gcc = pkgs.gcc; binutils = pkgs.binutils;} I am not so happy about the syntax. commit9d25466b34
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 4 16:49:51 2004 +0000 * An attribute set update operator (//). E.g., {x=1; y=2; z=3;} // {y=4;} => {x=1; y=4; z=3;} commit6d46e647ba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 4 16:20:51 2004 +0000 * Fixed the old envpkgs filename. commit9b44480612
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Feb 4 16:03:29 2004 +0000 * Use a map to lookup primops. * Various performance improvements in the evaluator. * Do not link against unused (and missing!) libraries (-lsglr, etc.). commitc4f7ae4aa5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Feb 3 14:45:34 2004 +0000 * Verify that all variables in a Nix expression are defined. commit1c9c0a5a46
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 2 21:39:33 2004 +0000 * Added syntactic sugar to the construction of attribute sets to `inherit' variables from the surrounding lexical scope. E.g., {stdenv, libfoo}: derivation { builder = ./bla; inherit stdenv libfoo; xyzzy = 1; } is equivalent to {stdenv, libfoo}: derivation { builder = ./bla; stdenv = stdenv; libfoo = libfoo; xyzzy = 1; } Note that for mutually recursive attribute set definitions (`rec {...}'), this also works, that is, `rec {inherit x;}' is equivalent to `let {fresh = x; body = rec {x = fresh;};}', *not* `rec {x = x}'. commitd9f30fe7c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Feb 2 10:51:54 2004 +0000 * Sort `nix-env -q' output by derivation name. * `--version' flag for all commands. * Manual updates. commit47c003cb59
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 30 17:14:08 2004 +0000 * Doh! commit619f20775d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 30 17:06:03 2004 +0000 * Parser numbers again. * Include missing files in distributions. commitc625718513
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 30 16:32:14 2004 +0000 * Detect flex and bison; updated the manual. commitc5baaafae6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 30 15:21:42 2004 +0000 * Replaced the SDF parser by a substantially faster Bison/Flex parser (roughly 80x faster). The absolutely latest version of Bison (1.875c) is required for reentrant GLR support, as well as a recent version of Flex (say, 2.5.31). Note that most Unix distributions ship with the prehistoric Flex 2.5.4, which doesn't support reentrancy. commitabd1878b26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 29 14:24:53 2004 +0000 * Optimised the SDF grammar. commit3648d1c732
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 22 13:04:57 2004 +0000 * Explicitly compute the release name. commitcdb50886f4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 22 09:35:35 2004 +0000 * Typos. commit3c4bc7276a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 22 09:17:55 2004 +0000 * Added a note about adding /nix/etc/profile.d/nix.sh to the profile. commit4f72b408a5
Author: Martin Bravenboer <martin.bravenboer@logicblox.com> Date: Thu Jan 22 08:47:59 2004 +0000 Typos and url losser -> catamaran commit840551ebdb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 21 16:41:17 2004 +0000 * Extra bit `S' in `--query --status' output: show whether there are any substitutes for the derivation. commit1109ea0680
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 21 14:49:32 2004 +0000 * Fixed a subtle uninitialised variable bug in ATermMaps copied from ATermMaps. Found thanks to Valgrind! commit47f19b6293
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 20 20:36:58 2004 +0000 * Absolutise the specified path in `--import' and `--profile'. commit4db7ef3fcc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 20 17:18:41 2004 +0000 * Fixed URL. commit3778586b2a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 20 15:37:55 2004 +0000 * Nix Quick Start guide. commit8baf50f108
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 20 11:49:32 2004 +0000 * Manual updates. * Updated the README. Now it just refers to the manual. commit699989b216
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 19 09:01:28 2004 +0000 * Ignore exit code from strip. commit3a4a4aaa88
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 19 08:49:25 2004 +0000 * Strip binaries in RPMs. commitf899e8ce4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 16 15:17:36 2004 +0000 * Test whether the symlink, not its target, exists. commitb1c5f3c10d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 16 14:54:39 2004 +0000 * Doh! Edited `readmanifest.pm' instead of `readmanifest.pm.in'. commit291030b900
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 15 20:58:44 2004 +0000 * Remove debug message. commit447089a5f6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 15 20:23:55 2004 +0000 * Catch SIGINT to terminate cleanly when the user tries to interrupt Nix. This is to prevent Berkeley DB from becoming wedged. Unfortunately it is not possible to throw C++ exceptions from a signal handler. In fact, you can't do much of anything except change variables of type `volatile sig_atomic_t'. So we set an interrupt flag in the signal handler and check it at various strategic locations in the code (by calling checkInterrupt()). Since this is unlikely to cover all cases (e.g., (semi-)infinite loops), sometimes SIGTERM may now be required to kill Nix. commit08719c6c97
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 15 20:13:54 2004 +0000 * Obsolete. commit55e11bc0d3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 15 14:43:00 2004 +0000 * In `nix-env --query --status', determine the `I' bit by looking at the output path of a derivation, not the path of its store expression. This ensures that changes that affect the path of the store expression but not the output path, do not affect the `installed' state of a derivation. commit9a404e45c9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 14 14:20:33 2004 +0000 * Synchronous `nix-pull' with `nix-push'. * Use curl instead of wget. commit16f9b133ec
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 14 11:13:08 2004 +0000 * Improved `nix-push': it now uses HTTP PUT (instead of rsync) to copy files. Target location is no longer hard-coded; it accepts a number of URLs on the command line. * `nix-install-package': compatibility fixes. commitff9af107d3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 16:35:43 2004 +0000 * Option `-B' to always show the output of builders, regardless of verbosity level. commit3495d153b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 13:37:25 2004 +0000 * Periodically checkpoint the log. commit698e880c9f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 12:36:43 2004 +0000 * Tricky: make sure that the accessor count is not reset to 0 if recovery fails. commit23fbc72f5d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 13 11:53:12 2004 +0000 * Print error messages, not debug messages. commit4c4fe7a114
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 12 10:44:48 2004 +0000 * Changed the extension for store expressions from ".nix" to ".store" (following the Usenix paper). commit46a71c857c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 9 14:18:28 2004 +0000 * Option `--force-realise' in `nix-store --query'. commit30b31a8f61
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 8 16:56:40 2004 +0000 * Start of nix-env reference. * Some CSS tweaks. commitb594215531
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 8 15:01:37 2004 +0000 * Manual updates. commit5346536b62
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jan 8 10:45:23 2004 +0000 * Include version number in manual. commit7959354379
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 7 15:53:14 2004 +0000 * Upgraded to Berkeley DB 4.2.52. The main advantage of 4.2 is that it automatically removes log files when they are no longer needed. *** IMPORTANT *** If you have an existing Nix installation, you must checkpoint the Nix database to prevent recent transactions from being undone. Do the following: - optional: make a backup of $prefix/var/nix/db. - run `db_checkpoint' from Berkeley DB 4.1: $ db_checkpoint -h $prefix/var/nix/db -1 - optional (?): run `db_recover' from Berkeley DB 4.1: $ db_recover -h $prefix/var/nix/db - remove $prefix/var/nix/db/log* and $prefix/var/nix/db/__db* commitabe8c8c2aa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jan 7 10:59:38 2004 +0000 * Include images/ in distribution. commit1ff986d51a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 6 16:38:32 2004 +0000 * book -> manual commit2f0b93904b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jan 6 16:35:07 2004 +0000 * Install images. commit4a373a3e9a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 5 16:26:43 2004 +0000 * Implemented Eelco V.'s `nix-env -I' command to specify the default path of the Nix expression to be used with the import, upgrade, and query commands. For instance, $ nix-env -I ~/nixpkgs/pkgs/system/i686-linux.nix $ nix-env --query --available [aka -qa] sylpheed-0.9.7 bison-1.875 pango-1.2.5 subversion-0.35.1 ... $ nix-env -i sylpheed $ nix-env -u subversion There can be only one default at a time. * If the path to a Nix expression is a symlink, follow the symlink prior to resolving relative path references in the expression. commitf83c5e3e5f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jan 5 11:18:59 2004 +0000 * Implemented Eelco V.'s `-p' command to switch profiles. It switches the symlink ~/.nix-userenv to the given argument (which defaults to .../links/current). /etc/profile.d/nix-profile creates this symlink if it doesn't exist yet. Example use: $ nix-env -l my_profile -i foo.nix subversion quake $ nix-env -p my_profile I don't like the term "profile". Let's deprecate it :-) commit0e68af0ce3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 2 16:09:59 2004 +0000 * RPM sucks. commit9ff3657095
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 2 16:04:53 2004 +0000 * Generate RPM spec file. commit0e09cc12c0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jan 2 14:58:25 2004 +0000 * Add $prefix/store to the RPM. * Allow extra flags to be passed to RPM. commit94175e978a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 30 20:09:00 2003 +0000 * RPM spec file. * Respect DESTDIR variable. commit68f2fadb78
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 23 22:15:12 2003 +0000 * nix-pull requires libexecdir to be substituted. commit392b7e0f8e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 23 22:13:36 2003 +0000 * Fixed a bug in the upgrade operation. commit833f2fc92d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 22 16:40:46 2003 +0000 * GCC 2.95 compatibility. commitcf0287c09e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 22 16:04:00 2003 +0000 * Upgrade operation in `nix-env'. For instance, you can say nix-env -u foo.nix strategoxt to replace the installed `strategoxt' derivation with the one from `foo.nix', if the latter has a higher version number. This is a no-op if `strategoxt' is not installed. Wildcards are also accepted, so nix-env -u foo.nix '*' will replace any installed derivation with newer versions from `foo.nix', if available. The notion of "version number" is somewhat ad hoc, but should be useful in most cases, as evidenced by the following unit tests for the version comparator: TEST("1.0", "2.3", -1); TEST("2.1", "2.3", -1); TEST("2.3", "2.3", 0); TEST("2.5", "2.3", 1); TEST("3.1", "2.3", 1); TEST("2.3.1", "2.3", 1); TEST("2.3.1", "2.3a", 1); TEST("2.3pre1", "2.3", -1); TEST("2.3pre3", "2.3pre12", -1); TEST("2.3a", "2.3c", -1); TEST("2.3pre1", "2.3c", -1); TEST("2.3pre1", "2.3q", -1); (-1 = less, 0 = equal, 1 = greater) * A new verbosity level `lvlInfo', between `lvlError' and `lvlTalkative'. This is the default for `nix-env', so without any `-v' flags users should get useful output, e.g., $ nix-env -u foo.nix strategoxt upgrading `strategoxt-0.9.2' to `strategoxt-0.9.3' commitf3c9783846
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 23:58:56 2003 +0000 * Version numbers can be omitted in install/uninstall. E.g., nix-env -i foo.nix subversion The version number part of a derivation name is defined as everything following the first dash not followed by a letter. commita81b621202
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 22:34:41 2003 +0000 * `-u' -> `-e'. * `--link' / `-l' flag to specify the switch symlink to use (by default, /nix/var/nix/links/current). commit0a753e182a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 22:02:58 2003 +0000 * Oops. commitdf7a718786
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 21:57:09 2003 +0000 * Man pages in sections. commit397c8ba898
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 21:56:54 2003 +0000 * Missing semicolons. commit528f1d1867
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Dec 21 17:09:16 2003 +0000 * Bug fix: parallel builds of the same derivation failed due to lock file removal. commit06c5a7075d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 5 11:25:38 2003 +0000 * Refactoring: put the manifest-reading code in a separate file. commitcff6fd22eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Dec 5 11:05:19 2003 +0000 * Allow successors that don't exist but have a substitute. * Integrity: check in successor / substitute registration whether the target path exists or has a substitute. commitfeaab52203
Author: Martin Bravenboer <martin.bravenboer@logicblox.com> Date: Thu Dec 4 14:38:31 2003 +0000 * Fix for too long command lines when calling `nix-store --register-[substitutes|successors]. commit00d4f907e1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Dec 3 09:33:03 2003 +0000 * Get rid of the icons in warnings etc. commit31fd72ee17
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 2 16:29:41 2003 +0000 * Epigraph ;-) commit16d971bce7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 2 15:36:49 2003 +0000 * A nice stylesheet for the manual. commit0d3a1a8582
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 2 12:37:37 2003 +0000 * Add missing files to `make dist'. commit0c804c6775
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Dec 2 10:21:40 2003 +0000 * Regression fix: query flags (e.g., "-qsf") were broken. commita3ca74a1c3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 1 16:34:35 2003 +0000 * Bug fix in nix-push. commit078e20885e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 1 15:55:05 2003 +0000 * Help text for all (non-script) programs, so no more: $ nix-instantiate --help error: unknown flag `--help` Try `nix-instantiate --help' for more information. :-) commit905d5b91fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 1 14:52:51 2003 +0000 * Manual fixes (thanks to Merijn). commit83ffd4f282
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 1 14:40:24 2003 +0000 * Fix `make check'. commit5d2b424804
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Dec 1 14:36:50 2003 +0000 * Use a system name that does not include the OS manufacturer (i.e., "i686-linux" instead of "i686-suse-linux"). commitdc05f29cf6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 27 14:58:32 2003 +0000 * Manual updates. commit7b0e29b4dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 16:09:27 2003 +0000 * Overview of nix-env. Recommended reading. :-) commit62d9b31d0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 14:25:39 2003 +0000 * Updates. commitf6a30ab264
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 12:30:16 2003 +0000 * Updates. commit2a4bac5459
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 11:24:13 2003 +0000 * Refactoring. * Convert tabs to spaces. commitbd0ce1a4be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 10:47:54 2003 +0000 * Minor fix. commit80f8c38384
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 10:41:59 2003 +0000 * Typo fix. commitc38ba181ed
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 26 10:41:21 2003 +0000 * Configure flags to specify the location of the DocBook DTD / stylesheets. commit4da9316c8f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 16:49:23 2003 +0000 * Use svn-revision to construct package version. commit6d5877ea12
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 13:43:48 2003 +0000 * Use --nonet flag to prevent fetching of DTD. commit12e805cfb0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 13:06:12 2003 +0000 * Don't hardcode the path to the DocBook DTD/stylesheets. commitba73f94b3b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 13:03:48 2003 +0000 * Another fix. commit66c115ef5f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 13:01:21 2003 +0000 * More `make dist' fixes. commitc3ee8c9166
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 12:35:52 2003 +0000 * `make dist' fix. commit6e8c19714a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 25 12:05:48 2003 +0000 * Allow integer bindings in derivations. commitd1d87badf6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 16:38:46 2003 +0000 * Bug fix. Hmm, I thought I'd fixed this before :-| commit604c45e960
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 12:10:16 2003 +0000 * Autoconf sucks. commite7ea52d3b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 11:11:40 2003 +0000 * One-click installation :-) The script nix-install-package takes a `Nix package file' (which contains one or more derivations, along with URLs of Nix caches), unpacks it, pulls the caches, and installs the derivations in the user's environment. For best results, associate the command `xterm -e /nix/bin/nix-install-package' with the MIME type `application/x-nix-package' and visit http://losser.st-lab.cs.uu.nl/~eelco/test/. commitb857267893
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 11:01:19 2003 +0000 * Allow the top-level expression to be a derivation. * Hack: `nix-env -i *' installs all available derivations. commit496934a99c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 09:25:08 2003 +0000 * Fix nix-pull. commitc9cb1fa21f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 09:24:52 2003 +0000 * Bug fix in path invalidation. * More consistency checks. commit60e86b124f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 24 08:20:49 2003 +0000 * Get rid of tab characters. commitaf7e6fe22e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 22 21:12:36 2003 +0000 * Don't use a hard-coded path. commit9486dda115
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 22 20:39:51 2003 +0000 * Fix nix-push. commitab0bc4999a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 22 18:45:56 2003 +0000 * Maintain integrity of the substitute and successor mappings when deleting a path in the store. * Allow absolute paths in Nix expressions. * Get nix-prefetch-url to work again. * Various other fixes. commit40d9eb14df
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 22 15:58:34 2003 +0000 * Fix the garbage collector. commit7a02d95418
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 21 16:05:19 2003 +0000 * Remove lock files after building. commit06208d1d86
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Nov 21 14:23:18 2003 +0000 * Uninstallation. commit2e9042bd1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 20 13:48:48 2003 +0000 * Uninstall command (doesn't work yet). commite0b5a492f5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 21:32:03 2003 +0000 * Installation: add the previously installed packages. Switch to the new configuration. * Status queries. commit9898746ef3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 17:27:16 2003 +0000 * nix-env: a tool to manage user environments. * Replace all directory reading code by a generic readDirectory() function. commitfd7ac09f10
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 12:03:01 2003 +0000 * Refactoring (step 2). commitac68840e79
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 11:35:41 2003 +0000 * Refactoring: put the Nix expression evaluator in its own library so that it can be used by multiple programs. commit2be8b5917a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 19 10:04:03 2003 +0000 * Use `sdftable -s' to get warnings about the grammar. * Several bug fixes in the grammar. * Allow one-line comments (#... and //...) to end in EOF. commit38946e1378
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 12:07:39 2003 +0000 * Forgot this one. commitdfc9c64ead
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 12:06:07 2003 +0000 * "Fix expression" -> "Nix expression". * More refactoring. commitb1117ef29d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 11:38:25 2003 +0000 * nix -> nix-store, fix -> nix-instantiate. commitce92d1bf14
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 11:22:29 2003 +0000 * "Nix expression" -> "store expression". * More refactoring. commit9f0f020929
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 10:55:27 2003 +0000 * libnix -> libstore. commit8798fae304
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Nov 18 10:47:59 2003 +0000 * Source tree refactoring. commit45610ae675
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 16 18:31:29 2003 +0000 * An forward non-random access input iterator class for ATermLists. commit3e5a019a07
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 16 17:46:31 2003 +0000 * Some utility functions for working with ATerms. commit06ae269c7c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 10 11:00:38 2003 +0000 * Do not filter when parsing. This is much faster. * Add some rejections and lexical restrictions to the grammar to make this work. commit15801c88fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 9 10:35:45 2003 +0000 * Turned the msg() and debug() functions into macros, since they turned out to be a huge performance bottleneck (the text to printed would always be evaluated, even when it was above the verbosity level). This reduces fix-ng execution time by over 50%. gprof(1) is very useful. :-) commitd2e3a132fe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 9 10:31:56 2003 +0000 * Pass CFLAGS to the subpackages. commit90e26d392c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 6 15:24:31 2003 +0000 * Allow null in derivation bindings. commitcfaea07444
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 6 14:41:49 2003 +0000 * `null' is a nullary primop. commit569e7940f8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Nov 6 14:41:29 2003 +0000 * Allow `+' in path names. commitfa18f1f184
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 5 16:27:40 2003 +0000 * Assertions. * Logical operators (!, &&, ||, ->). commite17e95a828
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 5 16:20:57 2003 +0000 * Print a shared textual ATerm if the term if very large. Due to substitutions, Fix terms are very large when printed as trees (in memory, they are quite compact due to sharing). commit80bb477cc4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Nov 5 15:34:12 2003 +0000 * Default function arguments. commit0690c1c9c0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 3 20:30:40 2003 +0000 * Work around problems with the ATerm library. The ATerm library doesn't search the heap for pointers to ATerms when garbage collecting. As a result, C++ containers such as `map<ATerm, ATerm>' will cause pointer to be hidden from the garbage collector, causing crashes. Instead, we now use ATermTables. commitff31324278
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 3 18:21:53 2003 +0000 * Ignore options passed to the aterm library. commite2655aa332
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 3 11:59:35 2003 +0000 * Shorter list syntax ([a b c] instead of [a, b, c]). commitad0976f8d5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Nov 3 10:21:30 2003 +0000 * Grammar changes. Attributes in attribute sets are now delimited with semicolons instead of comma's. Final semicolon in the set is optional. commit40986312bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 2 17:36:15 2003 +0000 * Boolean constants. commitadf9a45469
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Nov 2 16:31:35 2003 +0000 * Primops: baseNameOf, toString. commitc8268ca991
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 1 23:29:02 2003 +0000 * Fast builds. commit7de1b2a698
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 1 21:11:52 2003 +0000 * Print the exit code of the builder. commit1610444671
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 1 19:15:08 2003 +0000 * Conditions, string equality. commit1b4184ccbb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 1 19:10:41 2003 +0000 * Let syntax. commita2a9bacd82
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Nov 1 19:10:19 2003 +0000 * Filter the substitution list when descending into a recursive attribute set. commit449411e511
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 31 19:20:03 2003 +0000 * Typo fix. commit9210d4d530
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 31 17:09:31 2003 +0000 * Working evaluator. * Mutually recursive attribute sets. * Print evaluator efficiency statistics. commitf1c1a3c97f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 31 12:21:01 2003 +0000 * Allow empty attribute (argument) sets. commit7db08cc924
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 31 11:22:56 2003 +0000 * Use SGparseString() instead of SGparseFile() because the latter is buggy. It fails to clear an internal variable (SG_textIndex) between invocations, so it can be called only once during a program execution. commit403cb9327f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 30 16:48:26 2003 +0000 * Factor out evaluation into a separate file. commit9f8f39aa3c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 30 16:18:40 2003 +0000 * Clean up the imploded parse tree. Quotes around strings are removed, paths are absolutised relative to the path containing the expression we just parsed, and integer literals are converted to actual integers. commite537844f4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 30 16:11:24 2003 +0000 * Bottomup rewrite function. commit442b09ea33
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 30 16:10:56 2003 +0000 * Don't use a search path. commit933b3f677d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 30 16:10:20 2003 +0000 * Attribute selection operator. commitb95a3dc45b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 29 16:05:03 2003 +0000 * Basic grammar and parser for the Fix language. We use libsglr and friends to do the parsing. The parse table is embedded in the Fix executable using bin2c, which converts an arbitrary file into a C character array. commit4d728f6a36
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 29 15:05:18 2003 +0000 * Forked new version of Fix. commitf31661a3b5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 29 15:04:50 2003 +0000 * Add sdf2-bundle to externals. commit7102455cba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 27 18:43:09 2003 +0000 * Don't cache the manifest. commit92eea8fc4e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 23 10:51:55 2003 +0000 * Fix a race condition in addTextToStore(). commitc4e7d324b8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 22 13:29:40 2003 +0000 * Use writeFull(). commit9d95aafe8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 22 11:04:57 2003 +0000 * Ad hoc per-package logging. When Nix performs a derivation, it now writes stdout/stderr of the builder to ${prefix}/var/log/nix/x, where x is the file name of the derivation expression, e.g., /nix/var/log/nix/54256391624be04fcb426048ae3ea0a4-d-pan-0.14.2.nix Note that consecutive builds of the same expression overwrite, rather than append to, existing log files. commit143427f90b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 22 10:53:46 2003 +0000 * Dead code removal. commit4a8948b7a6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 22 10:48:22 2003 +0000 * Some wrapper classes to ensure that file descriptors / directory handles are closed when they go out of scope. commitc62433751d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 20 10:05:01 2003 +0000 * Finished refactoring the tree. commit53e376d836
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 20 09:20:11 2003 +0000 * Refactored the source tree. commit0eab306466
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Oct 20 09:08:44 2003 +0000 * NarPath -> NarName. commita0a7a4e087
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 19:24:04 2003 +0000 * Remove some debug output. commit0791282b2f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 16:29:57 2003 +0000 * Substitutes and nix-pull now work again. * Fixed a segfault caused by the buffering of stderr. * Fix now allows the specification of the full output path. This should be used with great care, since it by-passes the normal hash generation. * Incremented the version number to 0.4 (prerelease). commitab5e8767fa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 13:13:39 2003 +0000 * Get nix-push to work again. * Fixed svn:ignore on externals/. commitc78bf11524
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 11:55:37 2003 +0000 * Enable buffering of stderr in C++. commitf7c7aad135
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 08:52:44 2003 +0000 * Upgraded to Berkeley DB 4.1.25 and do not synchronously flush the log on commit. This means that there is a small change that some transactions may be rolled back in case of a system crash, but this should not be a problem (it merely might cause some expression realisations to be rolled back), and it vastly improves performance. * Upgraded to ATerm 2.0.5 (which also includes Armijn's 64-bit patches). commit181aa3dc41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 16 08:06:19 2003 +0000 * Don't sort the result of `--query --list'. commitebff82222c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 15 12:42:39 2003 +0000 * Refactoring: move all database manipulation into store.cc. * Removed `--query --generators'. commit5fc7127643
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 15 10:34:50 2003 +0000 * Keep sources (derivation expression) by default, `--no-source' to override. commitc190f051ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 14 15:33:00 2003 +0000 * Automatically recover the database in case of a crash. commit1d61e473c8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 10 15:25:21 2003 +0000 * New query `nix --query --predecessors' to print the predecessors of a Nix expression. commit0abe185688
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 10 15:14:29 2003 +0000 * `nix --verify': check and repair reverse mapping for successors. commitd3d5e77810
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 10 14:46:28 2003 +0000 * Reverse mappings for the successor and substitute mappings. commit1eb4da156c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Oct 10 13:22:29 2003 +0000 * Performance improvement: don't register already registered terms, thus greatly reducing the number of db transactions. commit08b7319f5b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 9 15:38:31 2003 +0000 * Follow successors by default (use `--no-successors' to override). commit6409c215e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 9 15:37:20 2003 +0000 * Fixed nix-switch. commit6baa2c4420
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Oct 8 15:06:59 2003 +0000 * Get rid of identifiers since they are redundant now. This greatly simplifies stuff. * The format of Nix expressions and the database schema changed because of this, so it's best to delete old Nix installations. commitb9f4942bd2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 7 14:37:41 2003 +0000 * string -> Path. commit5d4171f7fb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Oct 7 12:27:49 2003 +0000 * Synchronise terminology with the ICSE paper (e.g., slice -> closure, fstate -> Nix expression). * Fix src/test.cc. commit563afb7fcc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 2 15:48:47 2003 +0000 * Use passive FTP in wget. commite78f753aa8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 2 12:22:19 2003 +0000 * Include the right files in a distribution. commit4193d62e08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Oct 2 11:55:38 2003 +0000 * Nix now respects $TMPDIR for the creation of temporary build directories. * Retry creation of a temporary directory (with a different name) in the case of EEXIST. commit6d478597c7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 24 08:40:40 2003 +0000 * Argggg... commit9fb94f4f2f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 24 08:39:49 2003 +0000 * Forgot a file. commit9ba2397ea9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 24 08:28:04 2003 +0000 * Added missing files to `make dist'. commit41730f5779
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Sep 23 14:26:58 2003 +0000 * Put the SVN revision number in the version string. commit1c7d6bf5fc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 11 10:23:55 2003 +0000 * Removed references to char_traits so that boost/format also works on GCC 2.95. commitd930a9bc5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Sep 11 08:31:29 2003 +0000 * Added some missing #includes. commit803a924b77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 3 14:49:58 2003 +0000 * Make nicer dot graphs. Also show the inner structure of slices. commitc0bbed0959
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Sep 3 11:20:18 2003 +0000 * Factored out dot graph generation into a separate file. commit0d2bc68681
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 29 13:12:30 2003 +0000 * Do not show the output of the builder unless the verbosity is at least at debug level (-vvv). The output is still appended to the build log in /nix/var/log/nix. commit25304af72e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 28 10:51:52 2003 +0000 * Set a path. commitb018517314
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 28 10:51:14 2003 +0000 * Do not try to remove write permission from symlinks, since chmod() follows symlinks. (Note that the permissions on symlinks are ignored anyway.) commitc4f1f49574
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 28 10:10:12 2003 +0000 * nix-push generated invalid (old-style) slices. * nar.sh needs a path. commit31be53cd0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 14:56:11 2003 +0000 * Fix the atrocious (exponential? factorial?) time complexity in `nix --query --requisites'. commit920193beb1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 25 14:36:04 2003 +0000 * Don't continue when the call to nix fails. commita88144215c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 22 20:12:44 2003 +0000 * Remove write permission from output paths after they have been built. * Point $HOME to a non-existing path when building to prevent certain tools (such as wget) from falling back on /etc/passwd to locate the home directory (which we don't want them to look at since it's not declared as an input). commit56b98c3857
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 22 11:29:20 2003 +0000 * Some work on the introduction. commit956801fcc2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 20 14:11:40 2003 +0000 * Use maps and sets in the FState data type. This ensures normalisation of slices and derivations w.r.t. order of paths, slice elements, etc. commit624c48260f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 20 12:39:56 2003 +0000 * Change the abstract syntax of slices. It used to be that ids were used as keys to reference slice elements, e.g., Slice(["1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["8c99..."]), ...]) This was wrong, since ids represent contents, not locations. Therefore we now have: Slice(["/nix/store/1ef7..."], [("/nix/store/1ef7...-foo", "1ef7", ["/nix/store/8c99-..."]), ...]) * Fix a bug in the computation of slice closures that could cause slice elements to be duplicated. commit710175e6a0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 20 11:31:15 2003 +0000 * Bumped the version number to 0.3. commited0db2e0d8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 20 11:30:45 2003 +0000 * Fixed a serious bug in the computation of slices. Sometimes the slices would not be properly closed under the path reference relation. commit1472cc4825
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 19 13:07:38 2003 +0000 * Pipe /dev/null into stdin. commit2de8504791
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 19 09:04:47 2003 +0000 * Delete the temporary directories of failed builds by default, and an option `--keep-failed' to override this behaviour. commit31e4aa6439
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 18 16:32:55 2003 +0000 * Allow lists in package bindings, e.g., ("srcs", [Relative("foo/bar.c"), Relative("foo/baz.h")]) The result is an environment variable that contains the path names of the inputs separated by spaces (so this is not safe for values containing spaces). commitebbb6ce578
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 18 14:54:54 2003 +0000 * Most shells initialise PATH to some default (/bin:/usr/bin:...) when PATH is not set. We don't want this, so fill it in with some dummy value. commitc32e01eab2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 18 08:52:49 2003 +0000 * Revision 300! * Put `@' in front of echo's in the Makefile. commit08f9cfe267
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 18 08:35:16 2003 +0000 * No longer automatically download Berkeley DB / ATerm. commit96c7b98bf0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 15 13:01:45 2003 +0000 * Argument support in Fix. Arguments can be passed through the builder using the `args' binding: ("args", ["bla", True, IncludeFix("aterm/aterm.fix")]) Note that packages can also be declared as inputs by specifying them in the argument list. commit555347744d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 15 12:32:37 2003 +0000 * Derivation expressions now can specify arguments to be passed to the builder. Note that this unfortunately causes all Fix-computed hashes to change. commite374dbf89b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 15 10:13:41 2003 +0000 * A script `nix-prefetch-url' to fetch a URL, place it in the Nix store, and print its hash. commit01e30360d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 15 09:39:33 2003 +0000 * Don't use a temporary file. commit163db7367f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 15 09:21:19 2003 +0000 * Fix can now read expressions from stdin (by saying `fix -'). commit161aab582b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 18:24:40 2003 +0000 * Use a catalog when calling xsltproc. commita24cb19361
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 18:17:02 2003 +0000 * Use xmllint instead of nsgmls to validate the manual. commit9ee3b7a37a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 12:37:50 2003 +0000 * Function application test cases. commitdc0ef2ca98
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 12:37:31 2003 +0000 * Detect infinite loops using blackholing. commit2e16ff22ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 11:27:02 2003 +0000 * Fix man page. commit5cde23f869
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 09:49:31 2003 +0000 * Function() takes a list of formals. commit0a2de7f543
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 14 09:29:07 2003 +0000 * Lam -> Function. Doh! commit95b49f8044
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 13 15:17:57 2003 +0000 * Manual updates. commit68022552d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 13 15:17:36 2003 +0000 * Put the pre-built manual and man pages in the tar distribution. commitc34a153ae5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 13 10:45:01 2003 +0000 * Documented the `--query' operation. commitb4f88d0ec3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 13 09:13:52 2003 +0000 * Split the book.xml into several xml files. commit469f1eba56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 12 15:06:49 2003 +0000 * Documented some Nix operations. commite405ca506e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 12 13:54:42 2003 +0000 * Generate man pages from the manual. commitc602930e08
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 8 14:55:56 2003 +0000 * deletePath(): some operating systems (e.g., Mac OS X) don't like it when we delete entries from a directory while we are reading it. So read the directory into memory, then delete its contents. commit4b7b0bd12c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 7 15:27:14 2003 +0000 * Started on the introduction. commit74867e72f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Aug 7 14:17:18 2003 +0000 * Start of manual; installation instructions. commitf8035d06f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 14:48:29 2003 +0000 * Allow a name to be given to a system configuration through `--name NAME'. E.g., on the losser Subversion server, I do `nix-switch --name svn $(fix ...)' to atomically upgrade the server (the SVN server uses the Apache and Subversion installations in /nix/var/nix/links/svn). commit9ad39df282
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 10:00:30 2003 +0000 * `==' is not a valid operator. commitd551062ec4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 09:35:05 2003 +0000 * Scan for wget and use the full path in fetchurl.sh. * Use nix-hash (not md5sum) in fetchurl.sh. commit236eb59293
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 09:34:04 2003 +0000 * Allow locks on paths to be acquired recursively (that is, if the process is already holding a lock on a path, it may acquire the lock again without blocking or failing). (This might be dangerous, not sure). Necessary for fast builds to work. commit720f06e3b0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 09:06:32 2003 +0000 * A flag `--flat' to just compute the MD5 checksum of the contents of a regular file. I.e., `nix-hash --flat' is equivalent to the coreutils `md5sum' command (which doesn't exist on all systems). commit37483672d4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Aug 6 09:05:04 2003 +0000 * App -> Call. * Allow booleans in package environment bindings (True maps to "1", False maps to ""). commitd34b4d4f28
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 13:05:30 2003 +0000 * Conditionals. commitb9c9b461ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 12:30:06 2003 +0000 * Made nix-push much faster. commit4ce652640b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 12:29:47 2003 +0000 * Cache result of fstatePaths(). TODO: do this in fstore.cc. commitfd30f52cfc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 11:14:24 2003 +0000 * Made nix-pull much faster by performing all Fix instantiations at the same time. commit17f05dba77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 11:13:38 2003 +0000 * Allow the top-level expression to be a list of expressions that normalise to Nix expression. commitd6b6b2d3a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Aug 5 09:47:20 2003 +0000 * Delete obstructed paths prior to building. commitd2e963f7a3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Aug 4 07:09:36 2003 +0000 * Path locking in addToStore() and expandPath(). commitc95b4ad290
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 1 15:41:47 2003 +0000 * In normaliseFState(), wrap registration of the output paths and the normal form in a single transaction to ensure that if we crash, either everything is registered or nothing is. This is for recoverability: unregistered paths in the store can be deleted arbitrarily, while registered paths can only be deleted by running the garbage collector. commitd99d04e644
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 1 15:06:23 2003 +0000 * Defensive programming against POSIX locking idiocy. * Simplified realiseSlice(). commit545145cd58
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 1 14:11:19 2003 +0000 * normaliseFState() now locks all output paths prior to building, thus ensuring that simultaneous invocations of Nix don't clobber each other's builds. * Fixed a bug in `make install'. commit9df93f30bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Aug 1 09:01:51 2003 +0000 * Don't use substitutes in addToStore(). commit06434072e7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 19:49:11 2003 +0000 * Put the database verifier in a transaction. commit06d3d7355d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 16:05:35 2003 +0000 * Enclose most operations that update the database in transactions. * Open all database tables (Db objects) at initialisation time, not every time they are used. This is necessary because tables have to outlive all transactions that refer to them. commit177a7782ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 14:28:49 2003 +0000 * Use a more reasonable log file size (256 KB instead of 10 MB). * Checkpoint on exit. commit4a013962bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 13:47:13 2003 +0000 * Started using Berkeley DB environments. This is necessary for transaction support (but we don't actually use transactions yet). commit758bd4673a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 13:13:27 2003 +0000 * Set execute bit. commit9f4c19276d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 31 13:13:13 2003 +0000 * Basic makefile. commit26ff1cdf89
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 30 14:40:46 2003 +0000 * A better test case for Nix race conditions. commit64c617e984
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 30 14:40:18 2003 +0000 * Directories for the manual. commit2ac02440dc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 30 13:35:46 2003 +0000 * Test cases for races. commitaaee69cfde
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 30 10:14:58 2003 +0000 * INSTALL_DATA -> INSTALL_PROGRAM to ensure that the execute bit remains set. commit83075304e5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 30 09:49:47 2003 +0000 * Don't make the builder executable. commit1cb030736e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 17:56:39 2003 +0000 * Bug: Fix does not allow empty names, so don't generate them. commita01629894d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 15:19:03 2003 +0000 * Use `--query --requisites' and include successors when pushing. Don't use `--query --generators' anymore. commit40f32ae00a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 14:42:14 2003 +0000 * Typo: if -> elsif. commit8846465934
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 14:28:17 2003 +0000 * Get garbage collection and cache population to work *properly*. Renamed `fstateRefs' to `fstateRequisites'. The semantics of this function is that it returns a list of all paths necessary to realise a given expression. For a derive expression, this is the union of requisites of the inputs; for a slice expression, it is the path of each element in the slice. Also included are the paths of the expressions themselves. Optionally, one can also include the requisites of successor expressions (to recycle intermediate results). * `nix-switch' now distinguishes between an expression and its normal form. Usually, only the normal form is registered as a root of the garbage collector. With the `--source-root' flag, it will also register the original expression as a root. * `nix-collect-garbage' now has a flag `--keep-successors' which causes successors not to be included in the list of garbage paths. * `nix-collect-garbage' now has a flag `--invert' which will print all paths that should *not* be garbage collected. commitdc14a3de46
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 10:53:27 2003 +0000 * Nicer dot graphs. commit79ba0431db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 10:43:12 2003 +0000 * `fstateRefs' now works on derive expressions as well. TODO: make this more efficient. * A flag `-n' in 'nix --query' to normalise the argument. Default is not to normalise. commit5acb45446e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 29 09:45:03 2003 +0000 * Let `nix --install' print out the id of the normal form. * Some minor refactoring. commitce5fd1cc12
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 28 16:07:01 2003 +0000 * Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another glibc so loading barfs. Instead, all packages should use rpaths to store library locations in executables/libraries. The disadvantage is that overriding rpaths is harder. (It is possible by invoking the dynamic linker directly, e.g., `/lib/ld-linux.so.2 --ignore-path LIST program args...' to ignore the rpath for the libraries in LIST). It would be better to use DT_RUNPATH, which is consulted by the dynamic linker *after* LD_LIBRARY_PATH but *before* ld.so.cache and the system directories. commitdec8fbc52b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 28 14:13:42 2003 +0000 * Check for the pthread library (db4 needs it on some platforms). commit949c4fa1a8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 28 12:19:23 2003 +0000 * `nix --help'. * `nix --query --graph' to print a dot dependency graph of derive expressions. commitf21b341957
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 15:03:36 2003 +0000 * Fix message. commit5d7a20dac3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 14:31:39 2003 +0000 * Prevent spurious rebuilds of db/aterm. commit0a0c1fcb4d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 13:43:16 2003 +0000 * The `-v' flag no longer takes an argument; it should be repeated instead (e.g., `-vvvv' for lots of output). Default is to only print error messages. commit3b521bb1bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 13:35:17 2003 +0000 * Do sync the database, since not doing so caused database changes not to reach the disk at all. Looks like a bug. commit1a7468a57a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 08:53:43 2003 +0000 * Debug levels. Use `--verbose / -v LEVEL' to display only messages up to the given verbosity levels. These currently are: lvlError = 0, lvlNormal = 5, lvlDebug = 10, lvlDebugMore = 15 although only lvlError and lvlDebug are actually used right now. commitb75719b984
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 24 08:24:32 2003 +0000 * Don't sync the database on close. This was killing performance. (Of course, the real problem is that we open the database for *every* operation; we should only open it once. And we should use transactions.) commit39ce70025b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 23 15:53:34 2003 +0000 * Incorporated Berkeley DB and ATerm into the source tree. * `make dist'. commit9202570f8c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 22 20:02:33 2003 +0000 * libdb_cxx-4 -> libdb_cxx commite877c69d78
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 22 15:15:15 2003 +0000 * Substitutes now should produce a path with the same id as they are substituting for (obvious, really). * For greater efficiency, nix-pull/unnar will place the output in a path that is probably the same as what is actually needed, thus preventing a path copy. * Even if a output id is given in a Fix package expression, ensure that the resulting Nix derive expression has a different id. This is because Nix expressions that are semantically equivalent (i.e., build the same result) might be different w.r.t. efficiency or divergence. It is absolutely vital for the substitute mechanism that such expressions are not used interchangeably. commitdf648c4967
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 22 10:24:22 2003 +0000 * `nix --query --expansion' (`-qe') to get any path with content corresponding to the given id. commitd84931ee56
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 22:05:19 2003 +0000 * Changed nix-pull to match nix-push. commitc7bdb76fe4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 21:34:56 2003 +0000 * Syntax fixes. * When pushing, put the hash in the file name so that the client can verify (proof-carrying file names?). commitd5ee6f8700
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 21:31:03 2003 +0000 * In `--query --generators', print out paths, not ids. (There should really be a switch for this). commit2616e6a6f3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 20:58:34 2003 +0000 * Check for errors. commit9f4ad99e92
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 20:58:21 2003 +0000 * Canonicalise path. commit249988a787
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 20:07:12 2003 +0000 * Allow the output/expression id to be forced to a certain value; this potentially dangerous feature enables better sharing for those paths for which the content is known in advance (e.g., because a content hash is given). * Fast builds: if we can expand all output paths of a derive expression, we don't have to build. commit49231fbe41
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 14:46:01 2003 +0000 * Changes to the command line syntax of Nix. * A function to find all Nix expressions whose output ids are completely contained in some set. Useful for uploading relevant Nix expressions to a shared cache. commit401452e57a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 21 08:55:49 2003 +0000 * Memoize the evaluation of Fix expressions to speed up computation. commit7984cfc7c1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 20 21:11:43 2003 +0000 * Argh, another short-write problem. Added wrappers around read()/write() to fix this once and for all. commit667a6afb9d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 20 19:30:53 2003 +0000 * Remove accidentally added file. commit6f1a0f948d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 20 19:29:38 2003 +0000 * Refactorings. commitab350eafd2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 18 07:42:57 2003 +0000 * Generate nar.sh, fetchurl.sh. commitb3fc38bf6a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 17 12:27:55 2003 +0000 * For debugging: `nix --verify' to check the consistency of the database and store. commit71cc3ceae5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 17 11:25:14 2003 +0000 * Preserve the executable bit. commit54664b6fb7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 21:24:02 2003 +0000 * The write() system call can write less than the requested number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix --dump' to fail sometimes. Note that this bug went unnoticed because the call to `nix --dump' is in a pipeline, and the shell ignores non-zero exit codes from all but the last element in the pipeline. Is there any way to check the result of the initial elements in the pipeline? (In other words, is it at all possible to write reliable shell scripts?) commit335aa1c35d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 20:49:59 2003 +0000 * Doh! commit6822fd7bf4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 20:33:29 2003 +0000 * Bug fix: slices are transitive, so if we detect that an input path is referenced in an output paths, we also have to add all ids referenced by that input path. * Better debug assertions to catch these sorts of errors. commit9d56ca219f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 20:00:51 2003 +0000 * Substitute fixes. commitb9ecadee6e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 11:05:59 2003 +0000 * Fix the -qr query. commitc11bbcfd26
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 16 08:30:26 2003 +0000 * Fix self-referential outputs. * Fix -qp query. commitd41d085b77
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 15 22:28:27 2003 +0000 * Get Fix and Nix to work again. commit7b3f44e05b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 15 21:24:05 2003 +0000 * The new normaliser now passes the unit tests. commitf5b6fa5256
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 15 16:28:54 2003 +0000 * Basic work on allowing derive expressions to build multiple paths. This is not entirely trivial since this introduces the possibility of mutual recursion. * Made normal forms self-contained. * Use unique ids, not content hashes, for content referencing. commit8898e86b4f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 14 10:45:04 2003 +0000 * Get the garbage collector to work again. commit3509299aca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 14 10:23:11 2003 +0000 * After building, scan for actual file system references as opposed to declared references. This prunes the reference graph, thus allowing better garbage collection and more efficient derivate distribution. commit135b7d54db
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 13 21:43:57 2003 +0000 * Don't check for staleness by default. commite6363b05ae
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 13 19:26:00 2003 +0000 * Pass $(prefix) and other variables through -D..., not through config.h, to prevent silly Autoconf problems. commit9c620e4afa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 13 18:58:03 2003 +0000 * Generate the scripts so that we can substitute the prefix etc. correctly. * Fixed nix-switch. commit5304a1eb3a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sat Jul 12 11:03:14 2003 +0000 * Fetchurl: check md5 checksum. commit73b163c1a1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 11 08:41:03 2003 +0000 * Fix a bug that caused Fix not to be deterministic (due to addToStore returning different paths if the hash of the path to be added was already available in the store under a different name). commitc834a5c597
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 11 08:16:15 2003 +0000 * Fix handling of pipes (read(2) may not return the required number of bytes in one call). commit822c072cfa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 20:34:29 2003 +0000 * Compress Nix archives when pushing them. commit9bcc31c941
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 20:13:32 2003 +0000 * Working derivate sharing. commit81304a6bb5
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 19:27:46 2003 +0000 * Convert tabs to spaces. commite5fbf58041
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 18:48:11 2003 +0000 * A command to register successor fstate expressions. Unifying substitutes and successors isn't very feasible for now, since substitutes are only used when no path with a certain is known. Therefore, a normal form of some expression stored as a substitute would not be used unless the expression itself was missing. commit8511571f65
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 15:24:50 2003 +0000 * Performance enhancement. commit1d1c3691d2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 15:11:48 2003 +0000 * The policy-free derivate sharing now *almost* works. :-) For any hash for which no local expansion is available, Nix can execute a `substitute' which should produce a path with such a hash. This is policy-free since Nix does not in any way specify how the substitute should work, i.e., it's an arbitrary (unnormalised) fstate expression. For example, `nix-pull' registers substitutes that fetch Nix archives from the network (through `wget') and unpack them, but any other method is possible as well. This is an improvement over the old Nix sharing scheme, which had a policy (fetching through `wget') built in. The sharing scheme doesn't work completely yet because successors from fstate rewriting have to be registered on the receiving side. Probably the whole successor stuff can be folded up into the substitute mechanism; this would be a nice simplification. commitd072485d28
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 13:41:28 2003 +0000 * Get `nix-push' working again. It now uses Nix/Fix to create Nix archives (using the package in corepkgs/nar). * queryPathByHash -> expandHash, and it takes an argument specifying the target path (which may be empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap Nix and install Nix as a Fix package. commit5d4b90b689
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 09:21:40 2003 +0000 * Actually go through the search directories when looking for files. commit089b436175
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 09:12:52 2003 +0000 * Deleted the sys directory. commitb96239c657
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 09:11:30 2003 +0000 * Moved the fetchutl package to corepkgs. commit9ebd78144a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Jul 10 09:09:48 2003 +0000 * Added a directory for standard Fix descriptors. commit6011bd0da2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 9 16:12:40 2003 +0000 * Outline of the new scheme for derivate distribution. commit2b95a9dc05
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jul 9 15:02:03 2003 +0000 * When computing the set of paths referenced by an expression, also include the paths of the subterms. commit9a99dc736d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 20:26:22 2003 +0000 * Canonicalise paths so that Fix produces identical Nix expressions for identical inputs. commitcab3f4977a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 19:58:41 2003 +0000 * A path canonicaliser that doesn't depend on the existence of paths (i.e., it doesn't use realpath(3), which is broken in any case). Therefore it doesn't resolve symlinks. commit333f4963de
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 15:33:06 2003 +0000 * The output of a Derive() node is not a referenced path. commit40274c1f4f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 13:22:08 2003 +0000 * A command to query the paths referenced by an fstate expression. * Use a temporary directory for build actions. commita279137327
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 10:00:46 2003 +0000 * Get `--dump' and `--delete' to work again. commit85a913a3e7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 09:59:00 2003 +0000 * Renamed `id' -> `name' to remove the implication of uniqueness. commit0b38b43bab
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 09:54:47 2003 +0000 * deletePath() now removes the path from the hash2paths mapping. commitab644ad10b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 09:53:46 2003 +0000 * BaseName() primitive for the generation of more sensible names (especially in fetchurl.fix). commita5a90f501e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jul 8 08:35:06 2003 +0000 * Get rid of the `netsources' database. * Rename the `refs' database to `hash2paths'. commitbe96c2189c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 7 09:29:40 2003 +0000 * `--realise' -> `--install'. commit5895c160c4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 7 09:25:26 2003 +0000 * Make dbRefs a mapping from Hash to [Path]. commit609a224848
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 7 07:44:57 2003 +0000 * Fixed `make check' as well. commit224c585aba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jul 7 07:43:58 2003 +0000 * Refactoring on the file names. commit7952a8053c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 6 15:11:02 2003 +0000 * A utility `nix-hash' to compute Nix path hashes. commitbfa5d77211
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 6 15:08:39 2003 +0000 * Bug fix: properly check result of open(). commit82e3d8fafe
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jul 6 14:20:47 2003 +0000 * Got Fix working again. commitf826e432aa
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 4 15:42:03 2003 +0000 * Refactoring: move initialisation and argument parsing into a shared file. commit01b34fe584
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 4 15:29:58 2003 +0000 * Cleanup. commit207ff2caf0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jul 4 12:18:06 2003 +0000 * Caching of expression successors. commit40b5936691
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 27 14:56:12 2003 +0000 * Realisation of Derive(...) expressions. commit3da9687854
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 27 13:55:12 2003 +0000 * Realisation of File(...) expressions. commitbb03c45ca0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 27 13:41:42 2003 +0000 * Added the Boost format library which provides a safe printf replacement. commitd4c3edfaba
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 27 09:55:31 2003 +0000 * Normalisation. commit3ec5252582
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 25 15:50:37 2003 +0000 * Improved syntax and semantics for Nix expressions. commit2b07b0e7eb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 25 14:58:56 2003 +0000 * Minor cleanups. commit692b562342
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 23 14:40:49 2003 +0000 * `nix --delete' command. commitc0cbaef4be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 23 14:08:34 2003 +0000 * `nix --restore' command. commit5f5cab0ac7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 23 13:27:59 2003 +0000 * A function to restore from a Nix archive. * addValue() can now import any dumpable FS object. commit85effedca3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 20 14:11:31 2003 +0000 * Flags to indicate how values are specified on the command line (--hash, --file, --name). commit5079ccb455
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 20 10:53:04 2003 +0000 * Move most of Nix into a library (libnix.a). * Run `test' on `make check'. commit1849aa2a72
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Jun 20 10:40:25 2003 +0000 * Refactoring: move dump function into archive.cc. commit38e12df631
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 14:34:43 2003 +0000 * `nix --dump' command. commitaeaffec785
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 14:34:03 2003 +0000 * Dump symlinks. commit94cf1f86bb
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 12:36:12 2003 +0000 * Lambdas, applications, substitutions. commitbc57eb3c8a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 12:35:32 2003 +0000 * Set CPLUS_INCLUDE_PATH as well as C_INCLUDE_PATH. Otherwise g++ won't see header files under Nix control. commitfab7b128b9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Jun 18 08:07:28 2003 +0000 * Automake sucks. commit34fcf5fa0c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 17 21:12:58 2003 +0000 * Started integrating the new evaluation model into Nix. * Cleaned up command-line syntax. commit7a96da3627
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 17 15:47:25 2003 +0000 * Test for expression dereferencing. commit6656993f83
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 17 15:45:43 2003 +0000 * Derefencing of hashed expressions. commita7ab242fb4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Jun 17 13:37:44 2003 +0000 * Simplify the evaluator. commitc739e20585
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 21:01:18 2003 +0000 * Argument processing. commit727beb798a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 16:16:09 2003 +0000 * Canonicalization: when hashing directories, sort the directory entries by name. commit2f04e7102e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 15:59:23 2003 +0000 * Path hashing. commita09e66da5a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 14:19:32 2003 +0000 * Description of path hashing algorithm. commit822794001c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 13:33:38 2003 +0000 * Started implementing the new evaluation model. * Lots of refactorings. * Unit tests. commitb9f09b3268
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Jun 16 07:03:40 2003 +0000 * AST for Nix expressions. commit21fe717ce2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Jun 15 13:41:32 2003 +0000 * Refactoring: hash class. commitf66055fa1e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 20:53:36 2003 +0000 * Set umask to 0022 on startup. commit5908663f42
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 17:01:21 2003 +0000 * Send log output to stderr. commitd1f5fd7216
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 15:21:52 2003 +0000 * Log the output of builders to $prefix/var/log/nix. commit64582f54be
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 15:18:30 2003 +0000 * Open the database read-only when enumerating tables. commit383297e0e8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 15:17:40 2003 +0000 * Don't set MANPATH. It's not necessary. commit84e235eae8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri May 30 11:49:06 2003 +0000 * Set MANPATH and PKG_CONFIG_PATH. commit5e01b220b3
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 27 11:58:14 2003 +0000 * Fix the rsync destination. commit4d21cda0cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue May 27 09:55:47 2003 +0000 * Fix for big-endian platforms: check for endianness in MD5 computations. This is done at runtime, which is inefficient, but I can't be bothered to write an Autoconf test right now. commit9efad76595
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 26 15:09:10 2003 +0000 * FreeBSD / ISO C++ compatibility fixes. commitd8bdf5b06e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 26 14:19:25 2003 +0000 * Removed some debug code that prevented packages from building. commita9f2928ed6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 26 13:57:19 2003 +0000 * Moved the package descriptors and build scripts out of the Nix tree. commit8b930a0c94
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 26 13:45:00 2003 +0000 * Some refactoring. commitf8d91f20e6
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon May 26 09:44:18 2003 +0000 * Nix can now fetch prebuilts (and other files) from the network, iff a mapping from the hash to a url has been registered through `nix regurl'. * Bug fix in nix: don't pollute stdout when running tar, it made nix-switch barf. * Bug fix in nix-push-prebuilts: don't create a subdirectory on the target when rsync'ing. commit13176d74cc
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 25 22:43:33 2003 +0000 * Updated Fix descriptors to reflect the new Fix abstract syntax. commit7dd91d3779
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun May 25 22:42:19 2003 +0000 * Prebuilt package sharing. We allow transparent binary deployment by sharing package directories (i.e., the result of building a Nix descriptor). `nix-pull-prebuilts' obtains a list of all known prebuilts by consulting the paths and URLs specified in $prefix/etc/nix/prebuilts.conf. The mappings ($pkghash, $prebuilthash) and ($prebuilthash, $location) are registered with Nix so that it can use the prebuilt with hash $prebuilthash when installing a package with hash $pkghash by downloading and unpacking $location. `nix-push-prebuilts' creates prebuilts for all packages for which no prebuilt is known to exist. It can then optionally upload these to the network through rsync. `nix-[pull|push]-prebuilts' just provide a policy. Nix provides the mechanism through the `nix [export|regprebuilt|regurl]' commands. commit0ef4b6d0f8
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 25 15:33:50 2003 +0000 * Cleaned up the semantics of Fix expressions. * Conditionals and variables in Fix expressions. This allows, e.g., Descr( [ Bind("pkgId", "subversion-0.21.0") , Bind("httpsClient", Bool(True)) , Bind("httpServer", Bool(True)) , Bind("ssl", If(Var("httpsClient"), Fix("./openssl-0.9.7b.fix"), "")) , Bind("httpd", If(Var("httpServer"), Fix("./httpd-2.0.45.fix"), "")) ... ]) which introduces domain feature variables httpsClient and httpServer (i.e., whether Subversion is built with https client and webdav server support); the values of the variables influences package dependencies and the build scripts. The next step is to allow that packages can express constraints on each other. E.g., StrategoXT is dependent on an ATerm library with the "gcc" variant enabled. In fact, this may cause several Nix instantiations to be created from a single Fix descriptor. If possible, Fix should try to find the least set of instantiations that obeys the constraints. commitd6d930a975
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 25 15:20:05 2003 +0000 * Bug fix: deleting the old links didn't work properly. commitfcc5ae151b
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 25 15:01:15 2003 +0000 * Remove build directory from a package directory after building it. commit76205df09c
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 24 11:45:23 2003 +0000 * Removed old Nix descriptors. commit243370bc52
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 24 11:43:11 2003 +0000 * nix-switch now removes the link to the previously activated system package as a root of the garbage collector, unless `--keep' is specified. commit24b3d0759e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 24 11:41:50 2003 +0000 * File removed. commit9713e8577f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Apr 24 11:41:24 2003 +0000 * getpkg, delpkg, and so on now accept multiple arguments. commit49e0d743d7
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 23 21:21:06 2003 +0000 * Fix descriptors for Pan and its dependencies. commitf546e0cda4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 23 09:02:53 2003 +0000 * Fix descriptor for Subversion 0.21.0. commit6faa154c89
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 23 07:23:01 2003 +0000 * Add "... || exit 1" to every command to catch failure. commite59c3246b9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 23 07:21:57 2003 +0000 * Redirect stdout to stderr when executing the build script. commitf7526febe4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 9 13:03:00 2003 +0000 * A garbage collector for installed packages. nix-collect-garbage doesn't actually delete any packages, it just prints their descriptor hashes. So we can do nix info $(nix-collect-garbage) to print out the ids of the packages that would be deleted, and nix delpkg $(nix-collect-garbage) to actually delete them. commit30a6122f80
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 9 12:46:44 2003 +0000 * When we activate a descriptor in nix-switch, remember its hash. This allows us to find out all `live' packages on the system by doing nix closure $(cat /nix/var/nix/links/*.hash) which will print out the activated configurations and all packages referenced by them. We could then garbage collect unused packages by deleting the difference between `nix listinst' and the set returned by `nix closure ...'. commitb762f4df7f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 9 12:37:49 2003 +0000 * In `fix --instantiate', only print out the hashes of the Nix descriptors generated out of Fix descriptors specified on the command line. This allows us to say: nix-switch $(fix -i ./test/fixdescriptors/system.fix) commitaa8fda4b54
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 9 12:26:48 2003 +0000 * We no longer use nix-populate standalone, rather we use it as a build action for `system' packages (like system.fix) that have dependencies on all packages we want to activate. So the command sequence to switch to a new activation configuration of the system would be: $ fix -i .../fixdescriptors/system.fix ... system.fix -> 89cf4713b37cc66989304abeb9ea189f $ nix-switch 89cf4713b37cc66989304abeb9ea189f * A nix-profile.sh script that can be included in .bashrc. commitf56b7312b2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 8 15:36:54 2003 +0000 * Descriptor importing in Fix. commitcc6eafb3d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 8 14:05:15 2003 +0000 * FreeBSD / gcc 2.95 compatibility fixes. * A script to generate prebuilt registration scripts. commitf7ef88df1f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 8 12:13:57 2003 +0000 * Added some installation instructions to the readme. commit0d2b24cdd1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 8 12:00:51 2003 +0000 * `Fix' is a high-level descriptor instantiator for Nix. It replaces nix-instantiate. commit814b256da4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Apr 6 22:19:26 2003 +0000 * Better installation: make directories, create database. * Fixed the register script. commit2eea8832f0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Apr 6 22:17:47 2003 +0000 * The latest version of Pan. commit1447cf35bd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Apr 6 22:09:47 2003 +0000 * Delete source after building. commit136c00e881
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 4 16:14:56 2003 +0000 * Autoconf / Automake configuration and building. commitab723e341a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Apr 4 12:02:40 2003 +0000 * Minor refactoring: use iterators to process arguments. commitc68dca5dac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 2 15:34:44 2003 +0000 * Script to register pre-built packages. commit5bc26fb73f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Apr 2 15:34:05 2003 +0000 * Importing and exporting of pre-built packages. commit383f9bb0f1
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Apr 1 14:00:47 2003 +0000 * Use ATerms for Nix descriptors. commitced20f187e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 31 14:28:15 2003 +0000 * Nix descriptor for Subversion. commit31f177ef0a
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 28 16:27:23 2003 +0000 * Check for collissions. commit278ea4097e
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 28 10:33:34 2003 +0000 * Don't fork in `nix run'. commitf915f77349
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 28 09:53:22 2003 +0000 * Allow arguments to be passed to programs in `nix run'. commit0f40a560ca
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 25 16:36:25 2003 +0000 * Added a script nix-activate which builds a list of "activated" packages (i.e., the packages that should appear in the user's $PATH, and so on). Based on this list, the script nix-populate creates a hierarchy of symlinks to the relevant files in those packages (e.g., for pkg/bin and pkg/lib). A nice property of nix-populate is that on each run it creates a *new* tree, rather than updating the old one. It then atomically switches over to the new tree. This allows atomic upgrades or rollbacks on the set of activated packages. commit3f1a1457e9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Tue Mar 25 11:39:51 2003 +0000 * Integrate hash into instantiated descriptor file names. * Use MD5::Digest. commit73c53935d0
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 24 17:49:56 2003 +0000 * For efficiency: md5 integrated into nix. * Command `nix ensure' which is like `nix getpkg' except that if the has refers to a run action it will just ensure that the imports are there. * Command `nix closure' to print out the closure of the set of descriptors under the import relation, starting at a set of roots. This can be used for garbage collection (e.g., given a list of `activated' packages, we can delete all packages not reachable from those). * Command `nix graph' to print out a Dot graph of the dependency graph. * `nix-addroot' adds a root for the (unimplemented) garbage collector. commiteeab86e0ac
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 24 16:43:52 2003 +0000 * Typo fix. commit2dc84e5569
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 24 12:49:40 2003 +0000 * Descriptors now have a "system" field specifying the platform that the build or run action should be perfomed on. This ensures that descriptors have different hashes on different platforms. commit9d2f128252
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Mon Mar 24 11:50:20 2003 +0000 * Refactoring. commit8d682ba551
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 23 23:28:28 2003 +0000 * A descriptor for running the Pan newsreader. * Added descriptors for gtkspell and its support package pspell. Gtkspell is an optional dependency of Pan, so we should add the ability to nix-instantiate to instantiate variants of a package based on a selection of features. commit20d165c344
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Sun Mar 23 23:24:09 2003 +0000 * A command to run programs in Nix packages, that is, to execute a run action. Run actions are described by uniquely hashed descriptors, just like build actions. Therefore run actions can have dependencies, but these need not be the same as the build time dependencies (e.g., at runtime we can link against a different version of a dynamic library). Example: nix run 31d6bf4c171282367065e0deecd7c579 will run the Pan 0.13.91 newsreader with gtkspell support. commit800d8e950f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 15:58:40 2003 +0000 * Added a command to list installed packages. commit2e59698b78
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 15:53:35 2003 +0000 * Added a command to verify the consistency of the database. commitfa51d6fcd9
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 14:11:44 2003 +0000 * Forgot to commit this one. commite582ee67cd
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 14:10:06 2003 +0000 * Fetch sources from the network. commit88d257b17f
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 21 09:58:01 2003 +0000 * Renamed dist -> build. commit4c43711810
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 22:25:01 2003 +0000 * Descriptor templates for the Pan newsreader and all its dependencies. commitcadc3852e4
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 22:23:48 2003 +0000 * nix-instantiate now instantiantes the closure of the set of descriptor templates under the import relation. I.e., we can now say: nix-instantiate outdir foo.nix which will create descriptors for foo.nix and all imported packages in outdir/. commitf7a98e081d
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 16:53:00 2003 +0000 * Various updates. commitb3594e9eaf
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 20 16:52:30 2003 +0000 * A script to instantiate package descriptors from templates. commit8999f923ea
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Fri Mar 14 16:43:14 2003 +0000 * Improved Nix. Resources (package descriptors and other source files) are now referenced using their cryptographic hashes. This ensures that if two package descriptors have the same contents, then they describe the same package. This property is not as trivial as it sounds: generally import relations cause this property not to hold w.r.t. temporality. But since imports also use hashes to reference other packages, equality follows by induction. commit18ebf518de
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 13 16:28:32 2003 +0000 * Converted to C++. commit75d788b0f2
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Thu Mar 13 14:24:49 2003 +0000 * Initial version of nix. commit841fcbd047
Author: Eelco Dolstra <e.dolstra@tudelft.nl> Date: Wed Mar 12 13:32:24 2003 +0000 * And a trunk to go along with that.
79 lines
1.8 KiB
C++
79 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include "types.hh"
|
|
#include "serialise.hh"
|
|
|
|
|
|
namespace nix {
|
|
|
|
|
|
/* dumpPath creates a Nix archive of the specified path. The format
|
|
is as follows:
|
|
|
|
IF path points to a REGULAR FILE:
|
|
dump(path) = attrs(
|
|
[ ("type", "regular")
|
|
, ("contents", contents(path))
|
|
])
|
|
|
|
IF path points to a DIRECTORY:
|
|
dump(path) = attrs(
|
|
[ ("type", "directory")
|
|
, ("entries", concat(map(f, sort(entries(path)))))
|
|
])
|
|
where f(fn) = attrs(
|
|
[ ("name", fn)
|
|
, ("file", dump(path + "/" + fn))
|
|
])
|
|
|
|
where:
|
|
|
|
attrs(as) = concat(map(attr, as)) + encN(0)
|
|
attrs((a, b)) = encS(a) + encS(b)
|
|
|
|
encS(s) = encN(len(s)) + s + (padding until next 64-bit boundary)
|
|
|
|
encN(n) = 64-bit little-endian encoding of n.
|
|
|
|
contents(path) = the contents of a regular file.
|
|
|
|
sort(strings) = lexicographic sort by 8-bit value (strcmp).
|
|
|
|
entries(path) = the entries of a directory, without `.' and
|
|
`..'.
|
|
|
|
`+' denotes string concatenation. */
|
|
|
|
struct PathFilter
|
|
{
|
|
virtual ~PathFilter() { }
|
|
virtual bool operator () (const Path & path) { return true; }
|
|
};
|
|
|
|
extern PathFilter defaultPathFilter;
|
|
|
|
void dumpPath(const Path & path, Sink & sink,
|
|
PathFilter & filter = defaultPathFilter);
|
|
|
|
struct ParseSink
|
|
{
|
|
virtual void createDirectory(const Path & path) { };
|
|
|
|
virtual void createRegularFile(const Path & path) { };
|
|
virtual void isExecutable() { };
|
|
virtual void preallocateContents(unsigned long long size) { };
|
|
virtual void receiveContents(unsigned char * data, unsigned int len) { };
|
|
|
|
virtual void createSymlink(const Path & path, const string & target) { };
|
|
};
|
|
|
|
void parseDump(ParseSink & sink, Source & source);
|
|
|
|
void restorePath(const Path & path, Source & source);
|
|
|
|
|
|
// FIXME: global variables are bad m'kay.
|
|
extern bool useCaseHack;
|
|
|
|
|
|
}
|