[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch nix created (now 0a75126)
From: |
Ludovic Courtès |
Subject: |
branch nix created (now 0a75126) |
Date: |
Fri, 19 Dec 2014 21:45:08 +0000 |
civodul pushed a change to branch nix
in repository guix.
at 0a75126 nix: Adjust code for Guix.
This branch includes the following new commits:
new 841fcbd * And a trunk to go along with that.
new 75d788b * Initial version of nix.
new 18ebf51 * Converted to C++.
new 8999f92 * Improved Nix. Resources (package descriptors and other
source files) are now referenced using their cryptographic hashes.
new b3594e9 * A script to instantiate package descriptors from
templates.
new f7a98e0 * Various updates.
new cadc385 * nix-instantiate now instantiantes the closure of the
set of descriptor templates under the import relation. I.e., we can now
say:
new 4c43711 * Descriptor templates for the Pan newsreader and all its
dependencies.
new 88d257b * Renamed dist -> build.
new e582ee6 * Fetch sources from the network.
new fa51d6f * Forgot to commit this one.
new 2e59698 * Added a command to verify the consistency of the
database.
new 800d8e9 * Added a command to list installed packages.
new 20d165c * 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:
new 8d682ba * 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.
new 9d2f128 * Refactoring.
new 2dc84e5 * 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.
new eeab86e * Typo fix.
new 73c5393 * 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). * C [...]
new 3f1a145 * Integrate hash into instantiated descriptor file names.
* Use MD5::Digest.
new 0f40a56 * 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).
new f915f77 * Allow arguments to be passed to programs in `nix run'.
new 278ea40 * Don't fork in `nix run'.
new 31f177e * Check for collissions.
new ced20f1 * Nix descriptor for Subversion.
new 383f9bb * Use ATerms for Nix descriptors.
new 5bc26fb * Importing and exporting of pre-built packages.
new c68dca5 * Script to register pre-built packages.
new ab723e3 * Minor refactoring: use iterators to process arguments.
new 136c00e * Autoconf / Automake configuration and building.
new 1447cf3 * Delete source after building.
new 2eea883 * The latest version of Pan.
new 814b256 * Better installation: make directories, create database.
* Fixed the register script.
new 0d2b24c * `Fix' is a high-level descriptor instantiator for Nix.
It replaces nix-instantiate.
new f7ef88d * Added some installation instructions to the readme.
new cc6eafb * FreeBSD / gcc 2.95 compatibility fixes. * A script to
generate prebuilt registration scripts.
new f56b731 * Descriptor importing in Fix.
new aa8fda4 * 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.
new b762f4d * 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:
new 30a6122 * 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
new f7526fe * 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
new e59c324 * Redirect stdout to stderr when executing the build
script.
new 6faa154 * Add "... || exit 1" to every command to catch failure.
new f546e0c * Fix descriptor for Subversion 0.21.0.
new 49e0d74 * Fix descriptors for Pan and its dependencies.
new 9713e85 * getpkg, delpkg, and so on now accept multiple arguments.
new 24b3d07 * File removed.
new 243370b * nix-switch now removes the link to the previously
activated system package as a root of the garbage collector, unless `--keep'
is specified.
new 76205df * Removed old Nix descriptors.
new fcc5ae1 * Remove build directory from a package directory after
building it.
new d6d930a * Bug fix: deleting the old links didn't work properly.
new 0ef4b6d * Cleaned up the semantics of Fix expressions.
new 7dd91d3 * Prebuilt package sharing. We allow transparent binary
deployment by sharing package directories (i.e., the result of building a Nix
descriptor).
new 13176d7 * Updated Fix descriptors to reflect the new Fix abstract
syntax.
new f8d91f2 * 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'.
new 8b930a0 * Some refactoring.
new a9f2928 * Moved the package descriptors and build scripts out of
the Nix tree.
new d8bdf5b * Removed some debug code that prevented packages from
building.
new 9efad76 * FreeBSD / ISO C++ compatibility fixes.
new 4d21cda * 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.
new 5e01b22 * Fix the rsync destination.
new 84e235e * Set MANPATH and PKG_CONFIG_PATH.
new 383297e * Don't set MANPATH. It's not necessary.
new 64582f5 * Open the database read-only when enumerating tables.
new d1f5fd7 * Log the output of builders to $prefix/var/log/nix.
new 5908663 * Send log output to stderr.
new f66055f * Set umask to 0022 on startup.
new 21fe717 * Refactoring: hash class.
new b9f09b3 * AST for Nix expressions.
new 8227940 * Started implementing the new evaluation model. * Lots
of refactorings. * Unit tests.
new a09e66d * Description of path hashing algorithm.
new 2f04e71 * Path hashing.
new 727beb7 * Canonicalization: when hashing directories, sort the
directory entries by name.
new c739e20 * Argument processing.
new a7ab242 * Simplify the evaluator.
new 6656993 * Derefencing of hashed expressions.
new 7a96da3 * Test for expression dereferencing.
new 34fcf5f * Started integrating the new evaluation model into Nix.
* Cleaned up command-line syntax.
new fab7b12 * Automake sucks.
new bc57eb3 * Set CPLUS_INCLUDE_PATH as well as C_INCLUDE_PATH.
Otherwise g++ won't see header files under Nix control.
new 94cf1f8 * Lambdas, applications, substitutions.
new aeaffec * Dump symlinks.
new 38e12df * `nix --dump' command.
new 1849aa2 * Refactoring: move dump function into archive.cc.
new 5079ccb * Move most of Nix into a library (libnix.a). * Run
`test' on `make check'.
new 85effed * Flags to indicate how values are specified on the
command line (--hash, --file, --name).
new 5f5cab0 * A function to restore from a Nix archive. * addValue()
can now import any dumpable FS object.
new c0cbaef * `nix --restore' command.
new 692b562 * `nix --delete' command.
new 2b07b0e * Minor cleanups.
new 3ec5252 * Improved syntax and semantics for Nix expressions.
new d4c3edf * Normalisation.
new bb03c45 * Added the Boost format library which provides a safe
printf replacement.
new 3da9687 * Realisation of File(...) expressions.
new 40b5936 * Realisation of Derive(...) expressions.
new 207ff2c * Caching of expression successors.
new 01b34fe * Cleanup.
new f826e43 * Refactoring: move initialisation and argument parsing
into a shared file.
new 82e3d8f * Got Fix working again.
new bfa5d77 * Bug fix: properly check result of open().
new 7952a80 * A utility `nix-hash' to compute Nix path hashes.
new 224c585 * Refactoring on the file names.
new 609a224 * Fixed `make check' as well.
new 5895c16 * Make dbRefs a mapping from Hash to [Path].
new be96c21 * `--realise' -> `--install'.
new a5a90f5 * Get rid of the `netsources' database. * Rename the
`refs' database to `hash2paths'.
new ab644ad * BaseName() primitive for the generation of more
sensible names (especially in fetchurl.fix).
new 0b38b43 * deletePath() now removes the path from the hash2paths
mapping.
new 85a913a * Renamed `id' -> `name' to remove the implication of
uniqueness.
new a279137 * Get `--dump' and `--delete' to work again.
new 40274c1 * A command to query the paths referenced by an fstate
expression. * Use a temporary directory for build actions.
new 333f496 * The output of a Derive() node is not a referenced path.
new cab3f49 * 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.
new 9a99dc7 * Canonicalise paths so that Fix produces identical Nix
expressions for identical inputs.
new 2b95a9d * When computing the set of paths referenced by an
expression, also include the paths of the subterms.
new 6011bd0 * Outline of the new scheme for derivate distribution.
new 9ebd781 * Added a directory for standard Fix descriptors.
new b96239c * Moved the fetchutl package to corepkgs.
new 089b436 * Deleted the sys directory.
new 5d4b90b * Actually go through the search directories when looking
for files.
new d072485 * 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.
new 1d1c369 * 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.
new 8511571 * Performance enhancement.
new e5fbf58 * A command to register successor fstate expressions.
new 81304a6 * Convert tabs to spaces.
new 9bcc31c * Working derivate sharing.
new 822c072 * Compress Nix archives when pushing them.
new c834a5c * Fix handling of pipes (read(2) may not return the
required number of bytes in one call).
new 73b163c * 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).
new 5304a1e * Fetchurl: check md5 checksum.
new 9c620e4 * Generate the scripts so that we can substitute the
prefix etc. correctly. * Fixed nix-switch.
new e6363b0 * Pass $(prefix) and other variables through -D..., not
through config.h, to prevent silly Autoconf problems.
new 135b7d5 * Don't check for staleness by default.
new 3509299 * 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.
new 8898e86 * Get the garbage collector to work again.
new f5b6fa5 * 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.
new 7b3f44e * The new normaliser now passes the unit tests.
new d41d085 * Get Fix and Nix to work again.
new c11bbcf * Fix self-referential outputs. * Fix -qp query.
new b9ecade * Fix the -qr query.
new 9d56ca2 * Substitute fixes.
new 6822fd7 * 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.
new 335aa1c * Doh!
new 54664b6 * 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.
new 71cc3ce * Preserve the executable bit.
new b3fc38b * For debugging: `nix --verify' to check the consistency
of the database and store.
new ab350ea * Generate nar.sh, fetchurl.sh.
new 6f1a0f9 * Refactorings.
new 667a6af * Remove accidentally added file.
new 7984cfc * Argh, another short-write problem. Added wrappers
around read()/write() to fix this once and for all.
new 401452e * Memoize the evaluation of Fix expressions to speed up
computation.
new 49231fb * 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.
new 249988a * 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.
new 9f4ad99 * Canonicalise path.
new 2616e6a * Check for errors.
new d5ee6f8 * In `--query --generators', print out paths, not ids.
(There should really be a switch for this).
new c7bdb76 * Syntax fixes. * When pushing, put the hash in the file
name so that the client can verify (proof-carrying file names?).
new d84931e * Changed nix-pull to match nix-push.
new df648c4 * `nix --query --expansion' (`-qe') to get any path with
content corresponding to the given id.
new e877c69 * Substitutes now should produce a path with the same id
as they are substituting for (obvious, really).
new 9202570 * libdb_cxx-4 -> libdb_cxx
new 39ce700 * Incorporated Berkeley DB and ATerm into the source
tree. * `make dist'.
new b75719b * 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.)
new 1a7468a * Debug levels. Use `--verbose / -v LEVEL' to display
only messages up to the given verbosity levels. These currently are:
new 3b521bb * Do sync the database, since not doing so caused
database changes not to reach the disk at all. Looks like a bug.
new 0a0c1fc * 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.
new 5d7a20d * Prevent spurious rebuilds of db/aterm.
new f21b341 * Fix message.
new 949c4fa * `nix --help'. * `nix --query --graph' to print a dot
dependency graph of derive expressions.
new dec8fbc * Check for the pthread library (db4 needs it on some
platforms).
new ce5fd1c * 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.
new 5acb454 * Let `nix --install' print out the id of the normal
form. * Some minor refactoring.
new 79ba043 * `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.
new dc14a3d * Nicer dot graphs.
new 8846465 * 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 t [...]
new 40f32ae * Typo: if -> elsif.
new a016298 * Use `--query --requisites' and include successors when
pushing. Don't use `--query --generators' anymore.
new 1cb0307 * Bug: Fix does not allow empty names, so don't generate
them.
new 8307530 * Don't make the builder executable.
new aaee69c * INSTALL_DATA -> INSTALL_PROGRAM to ensure that the
execute bit remains set.
new 2ac0244 * Test cases for races.
new 64c617e * Directories for the manual.
new 26ff1cd * A better test case for Nix race conditions.
new 9f4c192 * Basic makefile.
new 758bd46 * Set execute bit.
new 4a01396 * Started using Berkeley DB environments. This is
necessary for transaction support (but we don't actually use transactions
yet).
new 177a778 * Use a more reasonable log file size (256 KB instead of
10 MB). * Checkpoint on exit.
new 06d3d73 * Enclose most operations that update the database in
transactions.
new 0643407 * Put the database verifier in a transaction.
new 9df93f3 * Don't use substitutes in addToStore().
new 545145c * normaliseFState() now locks all output paths prior to
building, thus ensuring that simultaneous invocations of Nix don't clobber
each other's builds.
new d99d04e * Defensive programming against POSIX locking idiocy. *
Simplified realiseSlice().
new c95b4ad * 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.
new d2e963f * Path locking in addToStore() and expandPath().
new d6b6b2d * Delete obstructed paths prior to building.
new 17f05db * Allow the top-level expression to be a list of
expressions that normalise to Nix expression.
new fd30f52 * Made nix-pull much faster by performing all Fix
instantiations at the same time.
new 4ce6526 * Cache result of fstatePaths(). TODO: do this in
fstore.cc.
new b9c9b46 * Made nix-push much faster.
new d34b4d4 * Conditionals.
new 3748367 * App -> Call. * Allow booleans in package environment
bindings (True maps to "1", False maps to "").
new 720f06e * 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).
new 236eb59 * 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.
new d551062 * Scan for wget and use the full path in fetchurl.sh. *
Use nix-hash (not md5sum) in fetchurl.sh.
new 9ad39df * `==' is not a valid operator.
new f8035d0 * 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).
new 74867e7 * Start of manual; installation instructions.
new 4b7b0bd * Started on the introduction.
new c602930 * 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.
new e405ca5 * Generate man pages from the manual.
new 469f1eb * Documented some Nix operations.
new b4f88d0 * Split the book.xml into several xml files.
new c34a153 * Documented the `--query' operation.
new 6802255 * Put the pre-built manual and man pages in the tar
distribution.
new 95b49f8 * Manual updates.
new 0a2de7f * Lam -> Function. Doh!
new 5cde23f * Function() takes a list of formals.
new 2e16ff2 * Fix man page.
new dc0ef2c * Detect infinite loops using blackholing.
new 9ee3b7a * Function application test cases.
new a24cb19 * Use xmllint instead of nsgmls to validate the manual.
new 161aab5 * Use a catalog when calling xsltproc.
new 163db73 * Fix can now read expressions from stdin (by saying `fix
-').
new 01e3036 * Don't use a temporary file.
new e374dbf * A script `nix-prefetch-url' to fetch a URL, place it in
the Nix store, and print its hash.
new 5553477 * Derivation expressions now can specify arguments to be
passed to the builder. Note that this unfortunately causes all Fix-computed
hashes to change.
new 96c7b98 * Argument support in Fix. Arguments can be passed
through the builder using the `args' binding:
new 08f9cfe * No longer automatically download Berkeley DB / ATerm.
new c32e01e * Revision 300! * Put `@' in front of echo's in the
Makefile.
new ebbb6ce * 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.
new 31e4aa6 * Allow lists in package bindings, e.g.,
new 2de8504 * Delete the temporary directories of failed builds by
default, and an option `--keep-failed' to override this behaviour.
new 1472cc4 * Pipe /dev/null into stdin.
new ed0db2e * Fixed a serious bug in the computation of slices.
Sometimes the slices would not be properly closed under the path reference
relation.
new 710175e * Bumped the version number to 0.3.
new 624c482 * Change the abstract syntax of slices. It used to be
that ids were used as keys to reference slice elements, e.g.,
new 956801f * 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.
new 56b98c3 * Some work on the introduction.
new a881442 * 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).
new 920193b * Don't continue when the call to nix fails.
new 31be53c * Fix the atrocious (exponential? factorial?) time
complexity in `nix --query --requisites'.
new c4f1f49 * nix-push generated invalid (old-style) slices. * nar.sh
needs a path.
new b018517 * Do not try to remove write permission from symlinks,
since chmod() follows symlinks. (Note that the permissions on symlinks are
ignored anyway.)
new 25304af * Set a path.
new 0d2bc68 * 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.
new c0bbed0 * Factored out dot graph generation into a separate file.
new 803a924 * Make nicer dot graphs. Also show the inner structure
of slices.
new d930a9b * Added some missing #includes.
new 1c7d6bf * Removed references to char_traits so that boost/format
also works on GCC 2.95.
new 41730f5 * Put the SVN revision number in the version string.
new 9ba2397 * Added missing files to `make dist'.
new 9fb94f4 * Forgot a file.
new 6d47859 * Argggg...
new 4193d62 * 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.
new e78f753 * Include the right files in a distribution.
new 563afb7 * Use passive FTP in wget.
new 5d4171f * Synchronise terminology with the ICSE paper (e.g.,
slice -> closure, fstate -> Nix expression). * Fix src/test.cc.
new b9f4942 * string -> Path.
new 6baa2c4 * Get rid of identifiers since they are redundant now.
This greatly simplifies stuff.
new 6409c21 * Fixed nix-switch.
new 08b7319 * Follow successors by default (use `--no-successors' to
override).
new 1eb4da1 * Performance improvement: don't register already
registered terms, thus greatly reducing the number of db transactions.
new d3d5e77 * Reverse mappings for the successor and substitute
mappings.
new 0abe185 * `nix --verify': check and repair reverse mapping for
successors.
new 1d61e47 * New query `nix --query --predecessors' to print the
predecessors of a Nix expression.
new c190f05 * Automatically recover the database in case of a crash.
new 5fc7127 * Keep sources (derivation expression) by default,
`--no-source' to override.
new ebff822 * Refactoring: move all database manipulation into
store.cc. * Removed `--query --generators'.
new 181aa3d * Don't sort the result of `--query --list'.
new f7c7aad * 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.
new c78bf11 * Enable buffering of stderr in C++.
new ab5e876 * Get nix-push to work again. * Fixed svn:ignore on
externals/.
new 0791282 * 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).
new a0a7a4e * Remove some debug output.
new 0eab306 * NarPath -> NarName.
new 53e376d * Refactored the source tree.
new c624337 * Finished refactoring the tree.
new 4a8948b * Some wrapper classes to ensure that file descriptors /
directory handles are closed when they go out of scope.
new 143427f * Dead code removal.
new 9d95aaf * 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.,
new c4e7d32 * Use writeFull().
new 92eea8f * Fix a race condition in addTextToStore().
new 7102455 * Don't cache the manifest.
new f31661a * Add sdf2-bundle to externals.
new 4d728f6 * Forked new version of Fix.
new b95a3dc * 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.
new 933b3f6 * Attribute selection operator.
new 442b09e * Don't use a search path.
new e537844 * Bottomup rewrite function.
new 9f8f39a * 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.
new 403cb93 * Factor out evaluation into a separate file.
new 7db08cc * 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.
new f1c1a3c * Allow empty attribute (argument) sets.
new 9210d4d * Working evaluator. * Mutually recursive attribute sets.
* Print evaluator efficiency statistics.
new 449411e * Typo fix.
new a2a9bac * Filter the substitution list when descending into a
recursive attribute set.
new 1b4184c * Let syntax.
new 1610444 * Conditions, string equality.
new 7de1b2a * Print the exit code of the builder.
new c8268ca * Fast builds.
new adf9a45 * Primops: baseNameOf, toString.
new 4098631 * Boolean constants.
new ad0976f * Grammar changes. Attributes in attribute sets are now
delimited with semicolons instead of comma's. Final semicolon in the set is
optional.
new e2655aa * Shorter list syntax ([a b c] instead of [a, b, c]).
new ff31324 * Ignore options passed to the aterm library.
new 0690c1c * Work around problems with the ATerm library.
new 80bb477 * Default function arguments.
new e17e95a * 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).
new fa18f1f * Assertions. * Logical operators (!, &&, ||, ->).
new 569e794 * Allow `+' in path names.
new cfaea07 * `null' is a nullary primop.
new 90e26d3 * Allow null in derivation bindings.
new d2e3a13 * Pass CFLAGS to the subpackages.
new 15801c8 * 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%.
new 06ae269 * Do not filter when parsing. This is much faster. * Add
some rejections and lexical restrictions to the grammar to make this work.
new 3e5a019 * Some utility functions for working with ATerms.
new 45610ae * An forward non-random access input iterator class for
ATermLists.
new 8798fae * Source tree refactoring.
new 9f0f020 * libnix -> libstore.
new ce92d1b * "Nix expression" -> "store expression". * More
refactoring.
new b1117ef * nix -> nix-store, fix -> nix-instantiate.
new dfc9c64 * "Fix expression" -> "Nix expression". * More
refactoring.
new 38946e1 * Forgot this one.
new 2be8b59 * Use `sdftable -s' to get warnings about the grammar. *
Several bug fixes in the grammar. * Allow one-line comments (#... and //...) to
end in EOF.
new ac68840 * Refactoring: put the Nix expression evaluator in its
own library so that it can be used by multiple programs.
new fd7ac09 * Refactoring (step 2).
new 9898746 * nix-env: a tool to manage user environments. * Replace
all directory reading code by a generic readDirectory() function.
new e0b5a49 * Installation: add the previously installed packages.
Switch to the new configuration. * Status queries.
new 2e9042b * Uninstall command (doesn't work yet).
new 06208d1 * Uninstallation.
new 7a02d95 * Remove lock files after building.
new 40d9eb1 * Fix the garbage collector.
new ab0bc49 * 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.
new 9486dda * Fix nix-push.
new af7e6fe * Don't use a hard-coded path.
new 60e86b1 * Get rid of tab characters.
new c9cb1fa * Bug fix in path invalidation. * More consistency checks.
new 496934a * Fix nix-pull.
new b857267 * Allow the top-level expression to be a derivation. *
Hack: `nix-env -i *' installs all available derivations.
new e7ea52d * One-click installation :-)
new 604c45e * Autoconf sucks.
new d1d87ba * Bug fix. Hmm, I thought I'd fixed this before :-|
new 6e8c197 * Allow integer bindings in derivations.
new c3ee8c9 * `make dist' fix.
new 66c115e * More `make dist' fixes.
new ba73f94 * Another fix.
new 12e805c * Don't hardcode the path to the DocBook DTD/stylesheets.
new 6d5877e * Use --nonet flag to prevent fetching of DTD.
new 4da9316 * Use svn-revision to construct package version.
new c38ba18 * Configure flags to specify the location of the DocBook
DTD / stylesheets.
new 80f8c38 * Typo fix.
new bd0ce1a * Minor fix.
new 2a4bac5 * Refactoring. * Convert tabs to spaces.
new f6a30ab * Updates.
new 62d9b31 * Updates.
new 7b0e29b * Overview of nix-env. Recommended reading. :-)
new dc05f29 * Manual updates.
new 5d2b424 * Use a system name that does not include the OS
manufacturer (i.e., "i686-linux" instead of "i686-suse-linux").
new 83ffd4f * Fix `make check'.
new 905d5b9 * Manual fixes (thanks to Merijn).
new 078e208 * Help text for all (non-script) programs, so no more:
new a3ca74a * Bug fix in nix-push.
new 0c804c6 * Regression fix: query flags (e.g., "-qsf") were broken.
new 0d3a1a8 * Add missing files to `make dist'.
new 16d971b * A nice stylesheet for the manual.
new 31fd72e * Epigraph ;-)
new 00d4f90 * Get rid of the icons in warnings etc.
new feaab52 * Fix for too long command lines when calling `nix-store
--register-[substitutes|successors].
new cff6fd2 * 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.
new 06c5a70 * Refactoring: put the manifest-reading code in a
separate file.
new 528f1d1 * Bug fix: parallel builds of the same derivation failed
due to lock file removal.
new 397c8ba * Missing semicolons.
new df7a718 * Man pages in sections.
new 0a753e1 * Oops.
new a81b621 * `-u' -> `-e'. * `--link' / `-l' flag to specify the
switch symlink to use (by default, /nix/var/nix/links/current).
new f3c9783 * Version numbers can be omitted in install/uninstall.
E.g.,
new cf0287c * Upgrade operation in `nix-env'. For instance, you can
say
new 833f2fc * GCC 2.95 compatibility.
new 392b7e0 * Fixed a bug in the upgrade operation.
new 68f2fad * nix-pull requires libexecdir to be substituted.
new 94175e9 * RPM spec file. * Respect DESTDIR variable.
new 0e09cc1 * Add $prefix/store to the RPM. * Allow extra flags to be
passed to RPM.
new 9ff3657 * Generate RPM spec file.
new 0e68af0 * RPM sucks.
new f83c5e3 * 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:
new 4a373a3 * 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,
new 2f0b939 * Install images.
new 1ff986d * book -> manual
new abe8c8c * Include images/ in distribution.
new 7959354 * 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.
new 5346536 * Include version number in manual.
new b594215 * Manual updates.
new 30b31a8 * Start of nix-env reference. * Some CSS tweaks.
new 46a71c8 * Option `--force-realise' in `nix-store --query'.
new 4c4fe7a * Changed the extension for store expressions from ".nix"
to ".store" (following the Usenix paper).
new 23fbc72 * Print error messages, not debug messages.
new 698e880 * Tricky: make sure that the accessor count is not reset
to 0 if recovery fails.
new 3495d15 * Periodically checkpoint the log.
new ff9af10 * Option `-B' to always show the output of builders,
regardless of verbosity level.
new 16f9b13 * 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.
new 9a404e4 * Synchronous `nix-pull' with `nix-push'. * Use curl
instead of wget.
new 55e11bc * 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.
new 08719c6 * Obsolete.
new 447089a * Catch SIGINT to terminate cleanly when the user tries
to interrupt Nix. This is to prevent Berkeley DB from becoming wedged.
new 291030b * Remove debug message.
new b1c5f3c * Doh! Edited `readmanifest.pm' instead of
`readmanifest.pm.in'.
new f899e8c * Test whether the symlink, not its target, exists.
new 3a4a4aa * Strip binaries in RPMs.
new 699989b * Ignore exit code from strip.
new 8baf50f * Manual updates. * Updated the README. Now it just
refers to the manual.
new 3778586 * Nix Quick Start guide.
new 4db7ef3 * Fixed URL.
new 47f19b6 * Absolutise the specified path in `--import' and
`--profile'.
new 1109ea0 * Fixed a subtle uninitialised variable bug in ATermMaps
copied from ATermMaps. Found thanks to Valgrind!
new 840551e * Extra bit `S' in `--query --status' output: show
whether there are any substitutes for the derivation.
new 4f72b40 Typos and url losser -> catamaran
new 3c4bc72 * Added a note about adding /nix/etc/profile.d/nix.sh to
the profile.
new cdb5088 * Typos.
new 3648d1c * Explicitly compute the release name.
new abd1878 * Optimised the SDF grammar.
new c5baaaf * Replaced the SDF parser by a substantially faster
Bison/Flex parser (roughly 80x faster).
new c625718 * Detect flex and bison; updated the manual.
new 619f207 * Parser numbers again. * Include missing files in
distributions.
new 47c003c * Doh!
new d9f30fe * Sort `nix-env -q' output by derivation name. *
`--version' flag for all commands. * Manual updates.
new 1c9c0a5 * Added syntactic sugar to the construction of attribute
sets to `inherit' variables from the surrounding lexical scope.
new c4f7ae4 * Verify that all variables in a Nix expression are
defined.
new 9b44480 * Use a map to lookup primops. * Various performance
improvements in the evaluator. * Do not link against unused (and missing!)
libraries (-lsglr, etc.).
new 6d46e64 * Fixed the old envpkgs filename.
new 9d25466 * An attribute set update operator (//). E.g.,
new d445da7 * Extended the `inherit' syntax to optionally select
attributes from other attribute sets, rather than the current scope. E.g.,
new 66e94d3 * Improvements to profiles. Generations are now
per-profile, e.g.,
new 49bafe1 * Use the profile pointed to by ~/.nix-profile if no
--profile argument is specified.
new 7abf991 * Refactoring.
new 7c0fa44 * More refactoring.
new 73ab2ed * A command `--list-generations' to show all generations
for a profile.
new b8675ae * In `--list-generations', show what the current
generation is.
new 06a75a7 * A command `--switch-generation' to switch to a specific
generation of the current profile, e.g.,
new 618aa69 * 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.
new 0616b7f * Documented the most important nix-env flags.
new 6551b36 * Print what generation we are switching to; honour
--dry-run flag.
new 92e8323 * 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.
new 00fe1a5 * 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.
new 1ad9d11 * Only include predecessors that are themselves being
pushed. Otherwise the substitute mechanism can break in subtle ways.
new 6f5a5ea * Regression fix: realise substitutes and detect cycles.
new 76c0e85 * 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.
new fbc48a4 * Inherited attributes in recursive attribute sets are in
scope of the non-inherited attributes.
new f34de12 * 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.
new 0dfdafd * Allow linking against an external Berkeley DB / ATerm
library.
new 86b7efb * Don't build ATerm library if we don't need to.
new dbf5476 * Resolve an ambiguity between ifs and attribute
selection, e.g., `if b then x else y.z'.
new 7f0ed37 * Use $(storedir) instead of $(prefix)/store.
new a5619f1 * 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.
new beda10f * Make perl a dependency of Nix.
new 9d2669d * 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.
new b5539e7 * 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.
new 8330c82 * A simpler way of implementing the store reference
popups, thanks to Martin and CSS guru Martijn Vermaat.
new 8ce3dd4 * Display the popup directly over the abbreviation.
new a784fd5 * Don't use tables. Konqueror likes this much better.
new c2fc2c1 * Use unordered lists, which is more sensible
semantically for representing tree structures.
new 84c6179 * Collapsable trees.
new 3f3c4cc * 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.
new e6253b5 * Escape codes to force line breaks to be ignored.
new 79bb000 * `null' is a normal form.
new 777e13b * Nix now has three different formats for the log
information it writes to stderr:
new 7823db2 * Some more nesting.
new f0f7a9f * Do not close a nesting level twice after close() has
been called explicitly on a Nest object.
new f8cd904 * 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 some [...]
new db3e644 * Added plain lambdas, e.g., `let { id = x: x; const = x:
y: x; }'. `bla:' is now no longer parsed as a URL.
new f958bcd * Added an operator `~' to select paths within a
derivation. E.g.,
new ac4d39f * Added an operator `?' to test for attribute existence,
e.g., `attrs ? x' yields true iff `attrs' has an attribute named `x'.
new df101d6 * Specify Perl as a dependency for the RPM.
new c4ac2a1 * 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.
new a520b1c * Print a more useful error message in case of an invalid
derivation binding.
new 59b94ee * 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:
new 03f1d1e * Switched from wget to curl. * Made the dependencies on
bzip2 and the shell explicit.
new bf3863b * Fail if prerequisites are missing.
new 2be8ac4 * 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.
new 1534295 * Distributed the wrong file.
new b0c9baf * EBNF grammar for the Nix expression language.
new 87bf541 * Documented the primops.
new a4d2b22 * Be stricter in verifying store paths.
new b275f2e * `*.gcroot' files can now containing multiple roots.
new 2c5a8bf * Use @storedir@, not @prefix@/store.
new 7cce0c3 * 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.
new 8e459d9 * Recurse into attribute sets and lists when getting
derivations from an expression.
new f79e9c2 * Do initialise state (the DB etc.) when doing a `make
install', unless `--disable-init-state' is passed to configure.
new 21655a7 * Channels. These allow you to stay current with an
evolving set of Nix expressions.
new b6df68c * Dist error.
new d7238bc * Don't create $(localstatedir)/nix/profiles if
--disable-init-state is specified.
new 759c953 * Look for GC roots in @localstatedir@/nix/gcroots.
new d4779ab * Pass SYSTEM through config.h, and allow spaces.
new bcce9c1 * Only add `-preRELEASE' to the version if STABLE != 1. *
Documented release procedures.
new 22371cb * Fixed URL.
new fd927c5 * Bump the version number.
new 256eeab * 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.
new ef093aa * Grrr. TESTS are not included in EXTRA_DIST.
new a7bbe73 * Another test.
new f044ccf * 1000th revision! * A test to verify that locking of
output paths (caused by concurrent invocations of Nix) works correctly.
new a9858c9 * A test to verify that Nix executes build jobs in
parallel, if possible.
new aea4365 * Ignore interrupt signals while handling an exception. *
Ignore EINTR in reads and writes.
new c8d3882 * 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 deal [...]
new 8c0b42f * An quick and dirty hack to support distributed builds.
new aa5a508 * 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.
new 1f48aa0 * Broken test.
new efa5fa1 * A switch `-j NUMBER' to set the maximum number of
parallel jobs (0 = no limit). * Add missing file to distribution.
new 5087c8f * Use `-j0'.
new a8306cb * 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 [...]
new 3426d19 * Perform all tests.
new 25db622 * Load balancing. `build-remote.pl' will only execute up
to a per-machine maximum number of parallel jobs on a remote machine.
new 2fa3304 * Set the executable bit.
new 4fc00cb * Distributed builds and load balancing now seem to work
pretty well. (Though the `build-remote.pl' script has a gigantic race
condition).
new ace8872 * 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.
new 8e9fd57 * setpgrp() is not POSIX (and on Mac OS X it's different
than on Linux), so use setpgid().
new 1d08093 * Go back to the old way of generating the system name,
and allow it to be specified in configure (using `--with-system=SYSTEM').
new 1947989 * Don't set the rpath here --- it's not portable.
new 5e4a227 * Drain the output of the build hook to show error
messages. Ugly hack.
new e841194 * A Nix mode for Emacs.
new 1bc6afe * Cleanup.
new 0b70231 * Refactoring.
new 6ba26f2 * Shared (garbage collecting) pointers. Copied from
Boost.
new 3454c68 * This is also useful.
new 41ec982 * 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).
new 23bb902 * Re-enable build hooks.
new 85ae781 * Refactoring.
new bafb235 * README for the Emacs mode (written a while ago, but
forgot to commit).
new 112ee89 * Re-enable support for substitutes in the normaliser.
new 15c60ca * Disable calls to fsync() since Berkeley DB's
DB_TXN_WRITE_NOSYNC flag doesn't seem to work as advertised.
new daf0a92 * 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.
new be1a917 * Remove obstructing invalid store paths
add[Text]ToStore().
new 72c857f * 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.
new 3f3a3ae * Acquire a lock on the output path when running a
substitute. Also delete obstructing invalid paths.
new 37ee6ce * Adapted nix-pull to use the new substitute mechanism.
new 2db9748 * Remove debug output.
new 88fb4f6 * Missing files added to `make dist'.
new c4cb6ea * Refactoring.
new 155d7c8 * Substitutes should occupy a build slot.
new c9fbd2d * Wrapper class around pids.
new 84007a0 * Reduce gratuitous cut & pasting.
new 5e2cf44 * Put WEXITSTATUS stuff somewhere else.
new 72bc9a5 * Started making Nix's diagnostic messages a bit more
useful.
new 83ae172 * Well, it's better than printf.
new b302e5f * We don't really need this here.
new 3093af5 * A utility script `nix-build' that builds Nix
expressions and prints their output paths (and only that) on standard output.
new d051cd4 * Nix-instantiate can return multiple store expressions.
new 05a5362 * Some more diagnostics changes.
new 66c7f34 * Arghhhhhh
new 8052aef * A test for multiple and/or failing substitutes.
new ec32627 * Multiple and/or failing substitutes now work.
new a29c8ac * 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.
new 795d9f8 * Obsolete.
new e488321 * 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).
new b113ede * 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.)
new 91dc023 * Added a switch `--fallback'. From the manual:
new 2746a87 * Typo.
new 24286e1 * `nix-env -u' now allows a specific version to be
specified when upgrading.
new 4d2946c * In a realisation goal, check the result of the
corresponding normalisation goal.
new 151e61f * 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.
new 00aadf4 * Use ATerm 2.1.
new f5d5ffe * Write build logs to disk again.
new b584253 * Include some missing headers.
new 593bc23 * 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'.
new 8f6254e * Align the columns in the output of `nix-env -q'.
new 292d646 * 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.
new 638ce33 * Nix-instantiate now accepts sets of derivations (just
like nix-env).
new 056cd1d * Don't go into a (sometimes infinite) loop calling the
build hook.
new c1a18f5 * Fixed format string error.
new 064a36c * Hardcode the system id to be `i686-linux'.
new 39eaecb * 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).
new 9bf7a5f * Don't pass `--with-system'.
new e8a9510 * Nix-build places a symlink `result' in the current
directory to the store object just built.
new 16c8b4c * A script to generate the Auto* stuff.
new 5373aed * Use ATerm 2.2. * Include bootstrap.sh in dist.
new 18ebd7b * Doh!
new e3a50f7 * 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).
new bbfdd64 * Allow primops with more that 1 arguments.
new d8989b1 * Every real language has a `map' function.
new ae1a1ef * Clean up the temporary directory for hook communication
(and don't print out incorrect "build failed" messages).
new 62fe5c4 * The predecessor of a successor need not be present.
This in particular happens on distributed builds or when using push/pull.
new 966bd9d * WTF? More canonical system name problems
("athlon-linux" instead of "i686-linux").
new 937ce0c * Flag `--no-link' suppresses symlinking to the output
path. * Handle multiple derivations correctly.
new 1eddee5 * 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.
new 8f1dcdf * 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.
new 2d35116 * Setuid support for sharing a Nix installation between
multiple users.
new e77fbe0 * 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.
new 1c90fab * Unbreak programs that are not setuid (such as nix-hash).
new 8f58733 * The gid should also match.
new 9994c1d * Validate derivation names. In particular don't allow
spaces. * Drop support for the outPath attribute in derivations.
new 8180478 * 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.
new fdec72c * `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).
new eb233e7 * `--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.
new fe122c5 * 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).
new c25f288 * Quadruple the Berkeley DB locking limits to get rid of
out of memory errors while running `nix-store --verify'.
new 5c443b6 * Main the `substitutes-rev' table again, but now in a
way that doesn't take \Theta(n^2) space/time complexity.
new fb28cfc * Add some variability to RPM spec files: allow setuid
options to be set on the rpmbuild command line.
new 17c8252 * 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.
new 550d960 * Hack for perl(readmanifest) dependency.
new e043fc7 * 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.
new 5396304 * 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).
new 47f8707 * 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 [...]
new c16be6a * Remove write permission from store objects after they
have been added to the store. Bug reported by Martin.
new dcc433d * Operation `--delete-generations' to delete generations
of a profile. Arguments are either generation number, or `old' to delete
all non-current generations. Typical use:
new b357284 * 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.
new 995d082 * prevent collision on log directory
new 1317242 * Make store objects created by substitutes read-only.
new 2b20701 * Better introduction. * Set notes in a different color
than warnings.
new 371c57d * 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! :-)
new 98c69e5 * Unindent.
new febd8be * Split overview chapter into a chapter on package
management and a chapter on writing Nix expressions.
new d830b2c * In `nix-env -q', sort derivations by name *without*
case sensitivity.
new 692204e * Rewrite of package management stuff.
new 2cd590d * Instead of — use the actual Unicode character.
By the way, to edit the manual, you should have something like
new 99da51d * Show error messages from curl.
new 8888816 * Fix nix-prefetch-url in setuid Nix installations.
new 2155c0a * Register channels as roots of the garbage collector (in
$(localstatedir)/nix/gcroots/channels). * In setuid installations, create
gcroots/tmp and gcroots/channels group-writable.
new 50b9caa * Updated NEWS for the upcoming 0.6 release.
new 2248bec * Make sure that the prerelease version is included in
`--version'.
new 3ade3e7 * Revert r1594 - it didn't solve the problem. Instead
add svn-revision to distributions, which should fix it.
new f4d44a0 * 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.
new 37d7abd * New language feature: with expressions.
new ee401af * 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.
new 9fa07b3 * String/path concatenation operator (`+').
new 033d7c6 * Doh!
new eb8284d * Evaluate argument to `import'.
new 5fe9222 * 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.
new c52dda9 * Bug: check that term is an application.
new 210ab02 * Add file to `make dist'.
new c7bea94 * Oops, I did it again.
new f09618b * Turn on read-only mode in queries. This prevents
redundant store I/O.
new 463e281 * Remove ancient Fix tests. * Add automated Nix
expression language tests.
new 3277c94 * Bug fix in parsing of /* ... */ comments; due to
longest match regexp there could be only one such comment per file.
new ed09821 * 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.
new a69534f * Drop ATmake / ATMatcher also in handling store
expressions.
new f8ac8d1 * Began adding build farm docs.
new 2aa1f47 * Fix `File exists' errors if the `result' symlink exists
but is dangling.
new 0d80d23 * Add figures to `make install' / `make dist'.
new b05a596 * Document setuid Nix installs.
new cbe8de5 * Profiles section.
new ee5dcfa * Section about garbage collection.
new 0913f5a * Section about channels.
new 5f2c5a3 * chapter -> appendix.
new 4cbd845 * Don't propagate our CFLAGS to the ATerm library since
it breaks at -O2.
new cb7ccb5 * string2ATerm -> overloaded toATerm.
new feb3cea * Better error messages.
new 8b93469 * Manual: writing Nix expressions.
new 6ca9c7f * Finished GNU Hello walkthrough.
new 3e9d203 * Start of language reference.
new 5f0300d * Generic builders.
new 0b1ee48 * Typo fix.
new 55b35d6 * Lets, inheritance, assertions.
new 1bac7a1 * Operators, comments.
new 09e7f06 * Put something in here.
new ea6581b * Drop the grammar appendix.
new 2c3b29c * Everything you always wanted to know about functions
and derivations but were afraid to ask.
new b8aaef5 * Documented the standard environment, including the
generic builder.
new d6db574 * Check exit status of pipe elements.
new 92ee003 * Fix broken format string.
new 32c7326 * Typos.
new c2b0d6b * Document --eval-only and --parse-only options in
nix-instantiate.
new 54c7a87 * Document --delete-generations and other nix-env options.
new 0b79a12 * Manual fixes.
new 9f8964a * More manual fixes.
new 5d5318c * Bump version number to 0.7.
new 4115d8d * 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).
new f17553a * Remove debug statement.
new eee6fe4 * Proof-of-concept for binary patch deployment.
new 13f7727 * utime() follows symlinks, so don't change the mtime if
the file is a symlink.
new 71926ee * Print out statistics comparing our performance to bzip2.
new dca48ae * Allow an optional hash to be provided. This prevents
redundant fetches.
new 862f4c1 * 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.
new e3b051a * 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).
new 77970f8 * Remove `prebuilts.conf' file, it's not like anybody was
using it. * Add /nix/var/nix/manifests directory.
new f4041cc * Commit old changed to bdiff.sh - but bdiff.sh is
obsolete.
new 4d25b0b * Fix nix-pull.
new 015beb7 * Typo: genericBuilder -> genericBuild.
new fa9259f * 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.
new 8b9697e * An operation `nix-store --clear-substitutes' to remove
all registered substitute mappings.
new 96c3d8a * I love test sets.
new 7eed57e * Sync with changed substitute mechanism. * Accept the
NarHash line. * Clear substitutes in `nix-channel --update'.
new 3d1b210 * Place manifests in /nix/var/nix/manifests. * Use the
new patch downloader.
new 4bf58d5 * Added a function to write manifests.
new 9022cf9 * A small utility to add the Size and NarHash fields to
old manifests.
new 77fc1c6 * Use aterm 2.3.1.
new e1e9c03 * A utility to generate patches between releases based on
their manifests.
new 2fdb27e * Atomic file replacement is good.
new 54d8f08 * Reject patches larger than the full archives they
produce.
new 4f07ebc * 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).
new 6270aa7 * Propagate patches from the source distribution to the
destination distribution insofar they are applicable.
new 581bcb9 * Some logging for evaluation.
new 3745cec * Fix handling of chained patches: don't skip patches if
intermediate paths are missing, etc.
new 35b76a8 * More instrumentation (statistics go to
/nix/var/log/nix/downloads).
new c53898c * If a patch already exists, it must still be included in
the manifest.
new f28ea27 * Remove old stuff.
new a03397b * Cygwin compatibility.
new 6af4a5a * Prototype store optimiser. It searched the Nix store
for identical files and hard-links them to each other to save disk space.
new 7d75616 * NEWS and manual update for release 0.7.
new 0bc41f6 * Print out less garbage.
new b17e7cf * Script to remove patches from manifests.
new d46b426 * Bump version number to 0.8.
new 7399237 * Refactoring to support SHA-1.
new 7e8961f * Added SHA-1 support. `nix-hash' now has an option
`--type sha1' to select SHA-1 hashing.
new 37b51a9 * Removed some dead code.
new 63791eb * Add SHA-256. * Tests for the various hashes.
new 9ee88bb * Use absolute paths.
new a7b94e8 * Missing file.
new 9530cc3 * 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).
new d58a11e * 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.
new f3dc231 * Removed the `id' attribute hack.
new 32aac87 * Actually check that the result of fixed-output
derivations matches the specified hash.
new 6d49375 * Get --readonly-mode to work again.
new e9762e2 * Support arities > 6.
new 863dcff * 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:
new 06c77bf * Change extension `.store' to `.drv'. * Re-enable
`nix-store --query --requisites'.
new ef5f254 * `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.
new 96de272 * 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.
new e0f4e58 * 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.
new 6ff48e7 * Set the Perl search path properly (reported by Roy van
den Broek).
new 05f0430 * 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.
new 6bb5efa * Ensure that derivation names and sources don't end in
`.drv'.
new 6a0a2d5 * Terminology fixes.
new 80faa2f * In nix-store: change `--build' back to `--realise'.
Also brought back the query flag `--force-realise'. * Fixed some of the tests.
new 52bf9b8 * 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.
new 581fc47 * Fix the build hook mechanism; pass the pointer graph to
the hook.
new c6290e4 * Fix the `--fallback' switch. * Fix the substitutes
tests.
new 066da4a * Really fix the substitute mechanism, i.e., ensure the
closure invariant by registering references through the manifest. * Added a
test for nix-pull.
new 498f491 * Re-enable all tests.
new a9340fa * Remove removed files from EXTRA_DIST.
new 2a2756b * 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).
new a24b78e * 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.
new 59682e6 * 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).
new c505702 * 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.
new 4e37548 * Remove deleted files from EXTRA_DIST (again).
new c60a494 * Update referers mappings when updating/clearing the
references mapping. * Do things in the right order in invalidatePath().
new 8a3eef2 * Fix deadlock.
new e5c16c9 * Add missing substitutes files to dist. * Add a garbage
collector test.
new a85d184 * Missing dependency; only a problem when building from
Subversion.
new ac2f665 * Set execute permission.
new 0ea8b69 * Only invalidate paths when they are in fact valid.
new 9ab0bc9 * Another horrible `make check' hack.
new 22cfdfa * 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.
new a766841 * 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.
new 1328aa3 * 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.
new 33c5d23 * Don't delete active lock files.
new 252c9c9 * 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.
new 207bdcb * Automatically remove temporary root files.
new 89c9bc1 * 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.
new 32fa82a * 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.
new 06b4424 * Add missing files to dist. * Fix GC and substitute bugs
related to self-references. Add a regression test.
new a6b65fd * Get rid of hardcoded paths.
new dcc37c2 * 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
new 630ae0c * 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 r [...]
new 65b6c8a * 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.
new c3981d8 * Make check fixes.
new 9f6835c * Remove debug code.
new 2e6bf72 * 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.
new a373388 * A GC setting `gc-keep-outputs' to specify whether
output paths of derivations should be kept.
new 450c358 * 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.
new fbc434e * `nix-store -qb' to query derivation environment
bindings. Useful for finding build-time dependencies (possibly after a
build). E.g.,
new 48ebe45 * Better error reporting in readmanifest. * Use force
flag in `mv' to prevent silly interactive questions (this happens with shared
Nix stores).
new 60feff8 * Set umask to prevent permission problems.
new 3d74274 * Updated `nix-store --verify' to the new schema.
new c547439 * 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.
new 582e01c * Automatically upgrade <= 0.7 Nix stores to the new
schema (so that existing user environments continue to work). * `nix-store
--verify': detect incomplete closures.
new 98df735 * 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.
new 3a99616 * Commit more often to prevent out-of-memory errors.
new 80870d9 * Input sources should be in the set of all referenceable
paths too.
new 20ce264 * 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 [...]
new 3242914 * Type error in constructor call (caught by GCC 3.3, but
not 3.4!).
new b0aba6e * Don't keep the derivation symlink when creating profile
generations.
new 6a8ef36 * 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.
new a04a5de * Implement the `gc-keep-derivations' global
configuretion flag.
new 0cb016c * Refactoring. Hope this doesn't break the semantics of
`-u' ;-)
new e446d34 * 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:
new 8992fce * It is now possible to add store derivations or paths
directly to a user environment, e.g.,
new 0083562 * Fix broken GC test.
new e17910c * And yet another installation source: the ability to
copy user environment elements from one user environment to another, e.g.,
new 202d5bb * Compatibility with older GCCs.
new fb5dae8 * Fix nix-channel. * Add `--help' flag; fixes NIX-5. *
Add `--remove' flag; fixes NIX-6. * Add `--list' flag.
new 88273f9 * Put build logs in $prefix/var/nix/log/drvs/.
new 8a3a96d * Switch to the calling user context for some more
operations in a setuid installation.
new 74ab069 * Compatibility hack with older user environments.
new e0181f5 * `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
new 398463a * `make check' fix.
new 3c16301 * 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.
new eda2c3c * Compatibility hack so that Nixpkgs can continue to do
hash checking in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8.
new 3a2c3f0 * Support for fixed-output hashes over directory trees
(i.e., over the NAR dump of the path).
new bfaf83a * 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).
new 95e870a * (Unnecessary) refactoring.
new 3259ae5 * 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).
new 6bafeaf * 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').
new 8d3c346 * Pause if errors occur.
new 8376fff * Add a version number to manifests.
new 2c4302d * 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.
new db322a4 * 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.
new 8d364e5 * Add missing file to dist.
new 9e50e64 * Doh!
new 07b4399 * `nix-store -q --hash' to quickly query the hash of the
contents of a store path (which is stored in the database).
new 0107fba * Concept for a simple blacklist.
new 86cb3cc * Increase Berkeley DB limits a bit more. * Maintain the
cleanup invariant in clearSubstitutes().
new 9e6bca8 * Channel fix.
new 4bbdcfb * Don't use fork() in copyPath(), but a string buffer.
new 9a7f958 * Basic blacklist checker. Each element in a user
environment is checked against every item in a blacklist.
new 543d7a4 * Automatically add propagated build inputs to user
environments. Maybe this is a bad idea.
new bfbc55c * Use XML::LibXML.
new 97c9352 * 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
new 08df443 * Check for duplicate attributes and formal parameters in
Nix expressions.
new 536f324 * nix-install-package: install outPath, not drvPath, for
now. * nix-prefecth-url: print out in base-16.
new 012b812 * Preliminary NEWS for 0.8.
new 1562dfe * 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.
new 8eff18c * 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.
new bd333b9 * Prefix hash algorithm in patch generator too.
new 5863f24 * Print SHA-1 hashes in base-32 by default.
new bb2e536 * Parse new hash format properly.
new c757d16 * Bug in clearSubstitutes().
new 6fb5f7e * Pass `--base32' unless using MD5.
new 5675d5f * Idem.
new 155c91b * Upgrade information.
new e52ae1c * Use SHA-256 for nix-push.
new bacd3a6 * Purify all corepkgs builders.
new b376565 * Manual updates.
new e301334 * XInclude all the way.
new 62dbfbc * Remove Docbook EBNF dependency.
new 693ff4f * Some more updates.
new afc3a7b * Automake 1.9 compatibility.
new f982df3 * Update the user environments figure to show multiple
profiles and users. * Change to base-32 hashes.
new ad3121a * Documented common environment variables.
new 67eff20 * Manual updates.
new 7272c3f * Ignore hash conflicts in gc-releases.pl.
new ab75a50 * Fink compatibility.
new a1e00bf * Remove non-POSIX flag.
new f20f081 * 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.
new a04c62e * Canonicalise path meta-data in `nix-store
--register-validity'.
new 3f236f0 * `nix-store --register-validity': allow a path to refer
to a path listed later in the list of new valid paths.
new 0df9f08 * Export the references graph to the build hook.
new 590e5a0 * Add a test for base-32 encoding of hashes since it
seems to be broken on Mac OS X.
new cff6bc0 * Fix endianness bug.
new 009752c * Blacklist Firefox 1.0.1.
new d1487d9 * This is a better location to keep the blacklist, since
it can evolve separately from Nix or Nixpkgs.
new c6178f0 * Create missing log and temproots directories
automatically (reported by Rob).
new 7eaf038 * `nix-store --verify': repair bad referer mappings.
new ebe342c * Better error checking.
new 298dd48 * When finding live paths, the deriver need not be valid.
new 6f78888 * Re-enable dot graph generation.
new 4a83c12 * Added a glossary to the manual.
new 31e140d * I said it couldn't be done. I was wrong.
new 6c8cf56 * Use `--nonet' flag.
new 2292529 * Some GC documentation.
new 128c174 * Manual updates.
new 806b91f * GC docs.
new f1ae10b * Build hook documentation. * nix-store options.
new 57d023a * More manual updates.
new c815aff * `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.
new f9848d4 * Support base-32 hash representations.
new 10c429c * If store paths are specified as sources in Nix
expressions, don't copy them, but use them directly.
new 7d876f8 * Get rid of fetchurl, we don't need it anymore.
new b9d8ecb * More doc updates.
new 9090563 * Doh.
new 4271385 * Make `nix-store --query --tree' work on non-derivations
(i.e., on any store path).
new 8b70f13 * Lots of manual updates, in particular the new
`nix-store --query' options were documented, as well as the Nix configuration
file.
new c702dfc * nix-store: `--substitute' -> `--register-substitutes'.
new fb45b0f * Document nix-channel.
new b4b51c9 * NEWS.
new c9c58db * Primop `__currentSystem' to return the current platform
identifier.
new 82d771f * Manual updates.
new cab7816 * Slightly nicer message.
new bc5e26d * Mark date.
new 1d86790 * Bump the version number to 0.9.
new d5219a3 * 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).
new f3660b1 * Garbage collector fix: allow deletion of paths that
have invalid (but substitutable) referers.
new 9f3601a * Argh! The patch downloader was broken due to the
renaming of the `--isvalid' flag in nix-store.
new f913283 * Remove redundant message.
new 6842bc9 * Be quiet when untarring a channel file.
new 02f2da0 * Merging from nix-make branch: - Add __currentTime
primitive (dangerous!). - Allow imports of derivations.
new 36fb29f * 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.
new d8a31da * Use `$(MAKE)' instead of `make' for systems where
`make' isn't GNU make (such as FreeBSD).
new ae6d903 * The eof() state isn't guaranteed to be set non-lazily.
GCC 2.95 compatibility fix.
new d7b3cdb * GCC 2.95 compatibility. Prevents internal compiler
error in member template friends.
new 4a266e3 * GCC 2.95 compatibility fix in constness; strangely, I
think this should not have worked at all.
new 5dea062 * Idem (constness fix). * `compare' in GCC 2.95 is broken.
new 26fd284 * FreeBSD 4.x doesn't have stdint.h, use inttypes.h
instead (which is also part of ISO C).
new 52a2f41 * Include some required header files.
new d8cda7c * Mac OS X (and POSIX) doesn't have readlink.
new 6c88d67 * Build .tar.bz2 files in `make dist'.
new 6057b51 * Don't try to register GC roots in read-only mode.
new 77557a6 Commit 3000!
new 4265931 * ATermMap needs an assignment operator, otherwise we are
screwed.
new edd145d * 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).
new 88dea78 * 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).
new 8f57634 * Automatically upgrade the Berkeley DB environment if
necessary.
new bfe4875 * Use Berkeley DB 4.3.38.
new 9ec7e58 * Handle store path arguments in `nix-env -i' correctly
again.
new 456f325 * Typo.
new cbc8d08 * Make unpacking of patch sequences much faster by not
doing redundant unpacking and repacking of intermediate paths.
new 8be1db8 * Another typo.
new c09e47c * Some svn:ignores.
new 109cde6 * Ignore (with a warning) invalid garbage collector roots.
new 040140d * 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.
new 928a7c0 * 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).
new 22d3587 * In nix-instantiate, at top-level, call functions that
have arguments with default values automatically. I.e., e -> e {}.
new d4879b4 * Add curl to the RPM dependencies. Should fix NIX-11.
new a5ceb5b * 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'.
new f797cb5 * Revive and update the SDF grammar for Nix expressions.
new 9590009 * Fix ambiguity.
new 6f91f02 * Make the rejects a bit more compact. * Add lexical
restrictions for keywords.
new 6f82a78 * Define paths using regexps, as is done in the Flex
definition.
new 2135e7c * Wat cleanups.
new 0f827cc * 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).
new 1a67154 * Release notes.
new 4c20a08 * Build dynamic libraries.
new 3fae65d * Adhockery.
new 33efb52 * Hack to get around the libtool wrapper script around
nix-store not working when PATH is unset.
new e689979 * Add $prefix/lib to the RPM.
new 991a130 * Added a list concatenation operator: [1 2 3] ++ [4
5 6] => [1 2 3 4 5 6]
new 78c72bf * channels -> channels-v3, catamaran -> nix.cs.uu.nl.
new 800a6ff * Mark error lines in red, and expand subtrees containing
errors automatically.
new f450c8e * Oops. XSL stylesheet to mark errors.
new c680f83 * Escape ASCII characters < 32 to Unicode FFFD
(REPLACEMENT CHARACTER) so that we don't produce un-wellformed XML.
new 2fd22c6 * Add .libs to svn:ignore. Commit 3500 ;-)
new 0399365 * nix-hash: option `--truncate' to truncate the hash to
160 bits. Hmm, kind of ad hoc ;-)
new 714b725 * Cleanup; sync with thesis.
new 08c5392 * 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.
new e1a6fb7 * `dependencyClosure' now allows a search path, e.g.,
new 2bcd65e * `nix-env -e' corrupts memory due to incorrect use of
iterators. Reported by Rob Vermaas.
new cb44aa0 * Use aterm 2.4.
new 699073c * Release notes.
new cf2bb91 * Missing #include.
new 55b8435 * Debugging.
new 116e939 * More debugging.
new deb75bb * Remove debugging code.
new ed1db42 * List concatenation must be right-associative for
efficiency.
new 025086e * Release notes in Docbook; ASCII release notes (i.e.,
the `NEWS' file) is now generated from that using `w3m' and some XSL hackery.
new 5818e8e * Remove dead code.
new 896c0b9 * This is not a GNU project :-P
new 7f384d9 * Use a proper temporary directory.
new d1d0271 * Check for w3m.
new 1b62c2e * Force release notes in ASCII, not UTF-8.
new 5c0770a * Include the release notes in the manual.
new 846b53b * Set the current directory to something well-defined.
Might help in setuid installations.
new d34fa9a * Remove dead file.
new 6f044ab * svn:ignore.
new c28b8eb * svn:ignores. * Add missing file to dist.
new db1a422 * Updated release notes.
new f4fe3bd * Bump the version number to 0.10.
new 25d2176 * Use a statically linked ATerm library and build it at
-O1, since higher optimisation levels cause statically linked libraries to
barf.
new ef9e2c8 * Typo.
new 89cd0f5 * Use -all_load on Mac OS X.
new 8d06842 * Configuration options for trusted local builds.
new a864aca * This doesn't parse for now.
new 9530417 * 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.
new 607a2f0 * Remove other uses of IPC::Open2.
new fbedf60 * Merge release notes.
new 4578a49 * Parse multi-valued options.
new ebfe571 * Lets not go wild with templates.
new ed4de22 * Use "source" instead of ".".
new d47e03f * Install the XSL stylesheets for log to html conversion.
new 0e38578 * log2xml -> nix-log2xml.
new 0e0041b * Update NEWS in the root directory properly.
new b87b9c0 * New query option: `--compare-versions' or `-c' to
compare installed versions to available versions, or vice versa.
new cec2be6 * Only colorise if we are attached to a terminal.
new 62412c5 * Document `nix-env --compare-versions'.
new dfbf520 * Swap the system and version comparion columns.
new 0f133ae * Use ATerm 2.4.2.
new 15ff877 add @coreutils@ to correctly use coreutils to create a
profile. This is needed for NixOS, where we might not know our PATH in advance.
new 32282ab * 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).
new 7ef574e * 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.
new 439823a * 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.
new f1b3a41 * Before starting a build under some uid, kill all
current processes running under that uid.
new 13b089c * Also kill all processes of the build user after the
build. This is critical to prevent certain kinds of 0wnage.
new 1b43fbd * Oops, that should be Berkeley DB 4.3. Reported by
Gerco Ballintijn.
new e932c40 * Oops. Fixed-output derivations were broken.
new 92d599c * 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.
new f0856fd * Repair the referers table from the references table.
new 221c790 * Turn off build hooks in nix-push because of an impurity
(NIX-21).
new 1f285cf * Scoping bug in `with'.
new 5bf9398 * 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!
new 9311ab7 * 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.
new b7f008f * Did something useful while waiting at IAD: reference
scanning is now much faster.
new 44409f5 * "Fix" the test, since we cannot feasibly support the
intended semantics.
new dc52812 * FreeBSD compatibility fix.
new 760264b * Require Berkeley DB 4.4. * Checkpoint after an upgrade.
new dfffd92 * A patch to make the DB_REGISTER feature work when debug
info is not on.
new eb268a7 * Apply the patch.
new a33b561 * Use Berkeley DB 4.4's process registry feature to
recover from crashed Nix instances, and toss out our own recovery code.
new 18bbcb1 * Add a test to demonstrate the quadratic complexity of
referrer (de)registration, in particular garbage collection (NIX-23).
new 8463f27 * 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
new d87549c * Automatically delete the old referers table.
new ab5c6bb * 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).
new 11a8dc7 * Doh!
new b1eed6b * Split the database upgrade into multiple transactions
to prevent Berkeley DB from running out of locks.
new 5144f75 * Typo.
new 530b27d * `nix-store --gc' prints out the number of bytes freed
on stdout (even when it is interrupted by a signal).
new 3c5619c * Begin release notes.
new 4b9e7f5 * 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.
new f96d2de * 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).
new 1d2460e * Documentation fixes.
new 1440419 * GCC 2.95 compatibility.
new 52d20ef * Hack around a GCC 2.95 bug.
new 0f8d3c8 * More GCC 2.95 compatibility.
new 04be397 * Resolve all symlink components in the location of the
temporary build directory (TMPDIR, i.e., /tmp). Fixes NIX-26.
new 5b52790 * dirOf: return "/", not "", for paths in the root
directory. Fixes NIX-26.
new e4d4969 * 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.
new 1029716 * Don't show cycles, they're not very useful.
new db2275c * Oops, the "I" bit in "nix-env -qas" was broken.
Reported by Nicolae Vintila.
new 83424eb * Don't force a build of derivations.
new 151f10d * Add @address@hidden
new 3eba483 * Use Berkeley DB 4.4.20.
new 9e4ffc4 * The "S" bit should be based on the output path, not the
derivation path.
new 8291f6d * bsdiff updated to 4.3. This makes Nix depend on libbz2.
new d9d6ff9 * Doh.
new 6e2eaae * Print a better error message when writing the patched
file (e.g., "No space left on device" instead of "Success"). Reported by
Karina Olmos.
new b90daaa * 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.)
new 81de538 * 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).
new 4db4b61 * Don't install nix.conf (so it won't be overriden when
you upgrade an RPM).
new 39f50db * Refactoring: move derivation evaluation to libexpr.
new e771e59 * Tests for nix-env, finally!
new 287d0ef * Oops, fix breakage.
new f8aadf1 * Test-driven development, woohoo! nix-env should work
on functions, provided that all arguments have defaults.
new 8688e83 * When evaluating, automatically call functions with
default arguments.
new 4eb637c * When querying all derivations, filter out syntactically
equal derivations.
new f848a45 * Cleanup: use the code shared with nix-env.
new 9e51abc * Make --parse-only work when *not* reading from stdin.
new b505f9e * Document that nix-instantiate can read from stdin.
new c612035 * In nix-instantiate, allow us to specify a "path" to the
derivation(s) we're interested, e.g.,
new 982399b * Enable the --attr in nix-build as well (and add -A as
an alias). Example:
new da0a6b6 * Doh.
new 0ca0a4d * 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:
new 2d2e28d * 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.
new e8475bb * Use a union.
new d6f586d * 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.
new 651ab43 * 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.
new 345a95a * Allow the size of the GC reserved file to be specified
in nix.conf through the new `gc-reserved-space' option.
new 889ef56 * Fix the infamous NIX-17: nix-env -i prints misleading
messages ("installing `foo'" followed by "uninstalling `foo'").
new 4ddd5ff * Regression test for NIX-31.
new 58fc420 * And another test.
new 7a3e715 * 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.
new 46f0cb0 * 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.:
new ddb78df * Check whether "nix-store -q --graph" generates a valid
dot graph. * Test "nix-store -q --tree" as well.
new f0d6318 * More tests.
new fcec32a * Use right directories for NAR files and patches. *
Print errors to STDERR.
new 928cce5 * Directory for nix.cs.uu.nl manifest / cache maintenance
scripts.
new 43fa1c2 * Separate the cache reading code.
new 17f3904 * WTF?
new 9d3bee5 * Aha!
new 5168f9b * Canonicalise manifests a bit by sorting them.
new e2f16b9 * 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).
new 85793fa * Remove debug statement.
new a4c63c6 * Make it easy to run individual tests from the command
line.
new 84c4631 * Simplification.
new 6b8bb8d * Remove dead code.
new 458820d * Generate valid HTML.
new e48bd8c * Add a test for nix-log2xml.
new 8cd646b * Clear the substitutes prior to running the test.
new 5cb6c42 * Test nix-build. This also tests indirect roots.
new ca0b23c * Test the nix-store --gc subflags.
new 089c41a * Oops!
new b907872 * TDD! Woohoo!
new b602d2d * Wrong delete. Thanks valgrind.
new b6780b9 * Uninitialised variable. Fixes the --delete test.
new 30d051f * New suppressions.
new ea9c35d * Test `nix-store --add' and `nix-store -q --hash'.
new e3daee9 * Test `nix-store -q --binding'.
new 80b5c71 * Doh!
new fa95f4b * More test coverage.
new d822bf3 * Close the database before the destructor runs.
new 1bdceb4 * Doh!
new 74166f2 * db.hh shouldn't depend on the Berkeley DB headers.
new e136532 * Ouch, parseHash32 was completely broken. All digits >=
4 were parsed as 4.
new 70dee0f * Flags `--to-base32' and `--to-base16' to convert
between hex and base-32 hashes.
new 2167bf6 * Tests to prevent a repeat of the parseHash32 debacle.
new 78d84f5 * Tests for fixed-output derivations (and attribute
selection, incidentally).
new 2d54312 * 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).
new 120f00c * More online help.
new 7ba1fd2 * Regularise help text a bit.
new c8bfb11 * `nix-env (-i|-u) --dry-run' now shows exactly which
missing paths will be built or substituted.
new fa72ae1 * GCC 4.1 compatibility.
new 9088dee * Some refactoring of the exception handling code so that
we can catch Nix expression assertion failures.
new 6dca5c9 * 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.
new 922697c * 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). [...]
new b90c00e * Regression: semantics of the result of getDerivation()
changed.
new 18c3213 * Ugh, printHash() was very inefficient because it used
ostringstreams. Around 11% of execution time was spent here (now it's 0.5%).
new 9811815 * Write messages to stderr, not stdout.
new 4ada6db * `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 "*"'.
new 2b3b6c9 * In theory, this should reduce the number of ATermMap
re-allocations.
new a33fb2d * Oops.
new 37d1b1c * `nix-env -qa --description' shows human-readable
descriptions of packages (provided that they have a `meta.description'
attribute). E.g.,
new fdea084 * Allow `make check' to work in directories that have
symlink components.
new 05bb644 * Allow the resulting symlink of nix-build to be named,
e.g.,
new 20675fe * Update copyright.
new 49ce8b5 * Hm.
new b69e469 * In `nix-env', look for derivations inside attribute
sets that have the `recurseForDerivations' attribute set to `true'.
new ef2d4a2 * Print a more useful stack trace when an error occurs
deep in the derivation dependency graph.
new 03162f8 * 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.
new 0748331 * Typo.
new e18c931 * Create libexec.
new de8f2d0 * Install only the header file and libraries from
Berkeley DB.
new 6fca1b8 * Change this to LGPL to keep the government happy.
new cce31b7 * svn:ignore
new 6cecad2 * Allow string concatenations involving derivations, e.g.,
new 0064599 * String interpolation. Expressions like
new 7276e19 * Disallow unescaped $ in string literals.
new dca43ef * Tests for NIX-45.
new ae55e79 * More tests.
new dc719e6 * Some preliminaries towards NIX-45.
new 11ae2d1 * Memory reduction: replaced expensive calls to
ATmakeApplList by ATmakeApplArray, and got rid of ATreverse in substitute().
new b52e711 * Huge reduction in memory use (2/3 or so on large
nix-env -qas operations): share ATermMaps between DrvInfos.
new c791e94 * Removed a bunch of ATreverses.
new 68174bd * Use a linked list of substitutions. This reduces the
amount of copying.
new d300b43 * Optimise null-ary term builders. Also declare all term
builder functions as pure, which might improve performance a bit.
new 052cefe * 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.
new db0d865 * New ATermMap, seems more-or-less finished.
new b803fb9 * Maintain the count field properly.
new 6980544 * Keep some statistics about memory allocation.
new 9840368 * Iterators.
new 0832956 * Use the new ATermMap.
new 310e605 * Show evaluation stats when NIX_SHOW_STATS=1.
new 5cabd47 * Allow function argument default values to refer to
other arguments of the function. Implements NIX-45.
new 8b5aa91
new c54287e * GCC 2.95 compatibility.
new e3c0778 * Remove old manifests in `nix-channel --update'.
new 9d72bf8 * 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.
new b598800 * Support for srcdir != builddir (NIX-41).
new d764409 * Some Cygwin fixes.
new 58b4198 * Disable the concurrent garbage collector on Cygwin for
now.
new c7d9397 * Handle $PATHs with spaces.
new b1c63dc * Don't use badTerm, it gives awful error messages.
new 1390ce4 * Not all platforms have sys/select.h.
new 04cf722 * This may be useful in the future.
new 50fe85f * For fixed-output derivations, pass the environment
variables listed in the attribute variable `impureEnvVars' from the caller to
the builder.
new bb84984 * svn:ignore.
new 2d456fc * On Cygwin, set the system type to i686-cygwin, and
disable dynamic linking.
new 23960e9 * Minor cleanup.
new 370af25 * Fix for a locking bug in Berkeley DB on Cygwin.
new 3a68622 * Oops.
new b454977 * Fix for a problem with BSD's group ownership semantics
when the user is not in the "wheel" group.
new 48e4a32
new 49de871 * Removed.
new 588cb0e * In `nix-env -i|-u|-e', lock the profile to prevent
races between concurrent nix-env operations on the same profile. Fixes NIX-7.
new c937b73 * Show when we're blocked waiting for a lock.
new d7f4035 * Skip this test on Cygwin, too slow (and doesn't test
anything Cygwin-specific).
new 0e783e5 * Write messages to stderr in a slightly more atomic way.
Useful when there are several parallel processes.
new b35735d * 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.
new 5bb3444 * _exit() doesn't seem to work right on Cygwin.
new cc51f9c * Oops.
new dbf6d7e * Concurrent GC on Cygwin.
new f4a3a28 * Apply the ATerm aliasing patch so that Nix works
correctly with gcc 4.1.x.
new a945fb7 * `nix-env --upgrade --eq': only upgrade if the old
version is equal to the new version. This is actually useful.
new d51aede * Allow the canonical system name to be specified at
runtime in the Nix config file.
new 2b4b065 * This expression has an undefined variable which isn't
detected, so evaluation fails:
new e10b830 * Doh! Of couse we cannot memoize across scopes.
new 4f3725b * Better error messages (especially wrt types).
new 88e5415 * Add a precise test for hashDerivatioModulo.
new ebcccbd * 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.
new c15f544 * Call find-runtime-roots.pl from the garbage collector
to prevent running applications etc. from being garbage collected.
new eca30e1 * svn:ignore.
new ee2cf45 * Use debug().
new 410760c * Doh.
new a427315 * Use $(libexecdir) to find find-runtime-roots.pl.
new dcded7d * Don't try to do DNS lookups.
new 7adaa6d * Test for runtime root finding.
new 9c3099d * Purify `make check'.
new 57751fd * Refactoring to support domain checks.
new b545c66 * Tests for domain checks.
new 88acffa * `touch' might not be in $PATH.
new f4c5531 * New language feature: domain checks, which check
whether a function argument has a valid value, i.e., is in a certain domain.
E.g.,
new 7a3a5d1 * When there is a domain check, we have to evaluate the
argument. Can't be lazy!
new 5744dd5 * Support the --attr / -A flag in nix-env as well. So
now we can do, e.g.,
new b11aeb2 * Doh.
new 0e6dc72 * 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:
new 2317d8f * `nix-instantiate --print-args' prints out the arguments
of a top-level function.
new ca2238c * Refactoring: get the selection path stuff out of
getDerivations() and put it into a separate function findAlongAttrPath().
new c11839d * `nix-instantiate --print-args': print out the valid
values for functions arguments that have a domain.
new 4661282 * `nix-instantiate ... --arg NAME VALUE': allow arguments
to be passed to functions from the command line. * nix-build: started
removing backticks.
new 6ac237e * Show some progress.
new 601a8ea * Ugh. Darwin's chmod insists that flags come before the
mode specification.
new 4fde308 add a flag --target, so we can override the URL in the
MANIFEST file. This is only for local copies (so file:///)
new a29b64a * Better error checking.
new fcb7840 urgh...for some weird reason this one-liner was not in
svn. PEBKAC!
new 4750f6c * Simple class for writing XML files.
new 0e267e2 * `nix-instantiate --print-args': produce XML output so
that the result can be used more easily by scripts.
new 339e6f0 * `nix-env -q --xml': show query result in XML format for
easier automated processing.
new 981eff0 * Remove the dependency on `date', use strftime instead.
new f4a502a * Use old-school pipe opens; the new style is Perl >=
5.8.0.
new dcff8cd * Weird issue on Cygwin with the include file order.
new 1854f84 * Fix a few warnings.
new f1947cc prevent doing recursive chroots, by unsetting NIX_ROOT in
the scripts.
new a61129c add coreutils to the default PATH for this scripts, so we
know for sure we have tools like rm, mkdir, and so on
new 5a6b45e * In nar.nix, path -> storePath, otherwise we get a
collision between environment variable names on Cygwin (where they are case
insensitive).
new a0607be * Workaround for a bug (?) in GCC 2.95.
new c0bfcbd rework the --target flag. If this flag is used, a URI
should be given. Default values are not changed.
new a18d02e * Print a warning that the subpath operator (~) is
deprecated.
new f1aa71a * Fix the help message wrt --attr.
new 3e239a3 * file:/ -> file://
new d19b652 * 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.
new 92f7dfa * Don't assume that paths returned by the runtime root
finder are valid.
new 4250b64 * `nix-store --gc --print-dead': print the total size of
the store objects that would be freed.
new 7455fd8 * Put the value in an attribute.
new 3e5b680 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.
new bfe19b3 * A test for NIX-53.
new 2670642 * Handle carriage returns. Fixes NIX-53.
new fe101fa * Meh.
new 18e4ac0 * `nix-instantiate --{eval|parse}-only --xml': print an
XML representation instead of an ATerm. * Indent XML output.
new 22ba63d * More XML output. `--strict' to strictly evaluate
attribute sets and so on. * Removed `--print-args', it's subsumed by
`--eval-only --xml'.
new 24e234a * Print attributes in sorted order, rather than the
arbitrary order produced by ATermMap. Necessary for testing. * `--strict'
should also work on stdin.
new 4874fd2 * Test for `nix-instantiate --eval-only --xml'.
new cc0505f * Distribute *.exp.xml.
new 1a9a1f2 * Convert to DocBook 5. * Use Jing for RelaxNG
validation, xmllint seems buggy.
new 93d9797 * Urgh (see NIX-56).
new 561a07f * Revert unintentional commit.
new 68515b5 * Release notes.
new 4a053bf * 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 ...'.
new 38f18aa * New primop: abort "error message".
new b19cebc * Quotes.
new 9638f3f * 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".
new f41297f * Allow --arg in nix-env as well, example:
new 943ab38 * Refactoring: move strictEval to libexpr.
new da25d80 * Strict evaluation and XML printing of lists.
new f793caf * Refactoring.
new 215ec2d * 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.
new 3e8dccf * Escape newlines in XML attributes to prevent them from
being normalised away.
new bf738f0 * Honour DESTDIR so that bzip2/bunzip2 get installed in
the right location when building RPMs (fixes NIX-58).
new e64c4f5 * Doh! (NIX-58)
new e5678b3 * Map "ppc" to "powerpc" so that Linux on PowerPC will be
reported as "powerpc-linux".
new 4b66ceb * Remove those storePath attribute sets, we don't need
'em.
new 8a6080e * Refactoring.
new 1fca768 * 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.
new 1ec9f55 * In toString, deal with nested lists properly (i.e.,
flatten them).
new 1f6616d * Backwards compatibility test for ~.
new 2132d9d * Fix the ~ operator.
new 547b119 * Support singleton values and nested lists again in
`args', but print a warning.
new 3151bde * Uninitialised variable.
new dce1afd * TDD: == should do a deep equality test, i.e., it should
strictly evaluate its arguments.
new f93f7b7 * Okay, that's a bit harder than expected.
new 354d58b * Better error checking.
new c25f688 * Doh! Doh! Doh!
new c9586b6 * Fix race condition in the test.
new de90fdf * 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...)
new 7974aae * 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.,
new aab8812 * Store the Nix libraries in ${libdir}/nix instead of
${libdir}.
new 75068e7 * Use a proper namespace. * Optimise header file usage a
bit. * Compile the parser as C++.
new e3ce954 * Compile the lexer as C++ code. Remove all the
redundant C/C++ marshalling code.
new 2382a72 * Don't need extern "C".
new 4be5443 * Remove unnecessary inclusions of aterm2.h.
new e5a6c09 * Install header files in /nix/include/nix.
new bafc169 * Move setuid stuff to libutil. * Install libexpr header
files.
new fc19551 * Sone missing #includes.
new a89a201 * Missing #include.
new 89ac8db * Package the include directory.
new 2e210b2 * 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.
new a04a65d * Release notes.
new feb63da * Remove debug message.
new 01d169f * Support `++'. * More follow restrictions on layout.
new f00bc4c * "Too many links" error.
new 5c38c86 * 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...
new 86cbd93 * nix-env --switch-generation / --list-generations /
--delete-generations: lock the profile to prevent (extremely unlikely) race
conditions.
new e0afaf1 * Wow, that bug has been there since r764.
new 9488ae7 * `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).
new 07cec27 * Cleanups.
new 6dbed1b * `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.)
new ee6cf99 * Doh! Of course we have to take execute permission into
account. * Restore the mtime on modified directories.
new 7dd342e * Doh.
new a060adf * Use paths, not strings, when calling the function that
generates NARs. Fixes the impurity of nix-push (NIX-21). * Better help.
new 947e645 * Hide warnings about a missing "lsof" (NIX-54).
new 22d13d6 * Check for patch (NIX-59).
new 0623359 * Print a better error message for wrong hashes (NIX-49).
new 1b804f8 * Absolute path to rm (NIX-51). * Don't hardcore /nix/bin
and /nix/store.
new 1bdc152 * Shut up a warning.
new ee50404 * Try konsole and gnome-terminal in addition to xterm.
new 4e91d86 * Fix comment.
new 0bd5eb7 * `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.
new 25df501 * GC options in nix-store --help (NIX-15).
new 4cab35d * Build with -D_FILE_OFFSET_BITS=64 to support files >=
2^31 bytes (NIX-22).
new b43aead * Don't allocate more than SIZE_MAX bytes.
new d22d756 * Don't allocate the buffer twice.
new 385c6f8 * Supply the 64-bit ATerm patch, but don't apply it
(since that requires rerunning Autoconf/Automake). Interested users should
do that themselves.
new 666babb * Use a bounded amount of memory in scanForReferences()
by not reading regular files into memory all at once.
new 8a1ab70 * 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)
new c02a441 * 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).
new d315210 * 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).
new 2ab4bc4 * Builtin function `add' to add integers. * Put common
test functions in tests/lang/lib.nix.
new df8873e * lessThan primitive for integer comparison.
new e47e0c2 * Builtin function `getEnv' for getting environment
variables.
new 0e70539 * Primop `toPath' to convert a string to a path. * Primop
`pathExists' to check for path existence.
new e347033 * 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.
new 76c9710 * Use builtins.toPath.
new 68ae953 * Clean up calls to system().
new d43565c * 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)
new 3632019 * 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).
new 02f2335 * Propagated packages now have lower priority; they are
symlinked *after* the packages that have been explicitly installed, and
collisions are ignored.
new 5ca45d0 * Use "propagated-user-env-packages", not
"propagated-build-inputs" for packages that should be propagated to the user
environment.
new e47d425 * Release notes.
new a9a6356 * Release notes.
new 015ac7c * Release notes.
new 4ad6fb7 * Fix setuid builds.
new e2eed05 * Manual updates. * Documented nix-{pack,unpack}-closure.
new 30c7db8 * Manual updates, some style improvements.
new 070e07e * Manual.
new 0212fee * Document nix-install-package and the nixpkg file format.
new 88d4225 * One-click installs.
new 91a01e6 * Manual.
new f316b6c * Manual updates (especially how nix-build makes testing
packages much easier; no longer need a helper expression).
new 7581cfd * Hack for Bison 2.3 compatability.
new ac19b33 * Finally, a real "let" syntax: `let x = ...; ... z =
...; in ...'.
new 853252a * Document the new let.
new cfe35ca * Manual.
new 84e6c43 * Documented nix-hash.
new d20c301 * toFile: added an additional argument to specify the
store path suffix, e.g., `builtins.toFile "builder.sh" "..."'. * toFile:
handle references to other files correctly.
new 3837fb2 * Document the built-in functions.
new 5fd4465 * toXML: propagate the context to allow derivations to be
used in the argument.
new 96fa456 * An example of using toXML to pass structured
information to a builder and generate a Jetty configuration file with XSLT.
new bd4f1b4 * Style tweaks.
new 4a7ece6
new 0ef3bd3 * Use GIF callouts instead of PNG since the GIFs have
transparency.
new 407c9fd * Explanation of toXML example.
new 59ef0aa * Strings.
new a3fd53b * Style tweak.
new 34427a7 * Weird.
new d98f750 * tmpnam() -> File::Temp::tempdir().
new 6f2bfd9 * Manual.
new 5d769de * Document --arg.
new 8396b59 * Documented --attr / -A.
new 99ef620 * Documented nix-instantiate --xml, --strict. * Added an
example to the nix-build section.
new 8791ffb * Documented new nix-env options.
new 9e08f5e * Documented nix-store --dump / --restore.
new eff573f * Work around a weird bug in the manpage generation.
new beee18d * Document nix-store --delete.
new 3815d2d * Typos etc. * Set the release date.
new b3fc016 * Translate Unicode quote characters to ASCII equivalents
when generating NEWS.txt.
new e1cc842 * Too lazy to document nix-push --copy.
new 7bada48 * Bumped the version number to 0.11.
new bd0c40e * `import': unwrap the context. Necessary to make
`import (x + y)' work, where x is a store path.
new 0c4c5c2 * Quick hack to fix NIX-67: evaluation result differing
if the Nix expression resides in the store.
new b4e012a * Merge 0.10.1 release notes.
new 7d4567f * Removed URIs from the evaluator (NIX-66). They are now
just another kind of notation for strings.
new 2a53568 * Reduce the maximum archive size for patch generation to
100 MB to prevent trashing on nix.cs.uu.nl.
new e4af398 * Don't crash when upgrading the Berkeley DB environment.
new 37c8a66 * A helpful message.
new 142863a * Use Berkeley DB 4.5.
new 4c9aa82 * Fix version.
new d7efd76 * 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.
new 46b631b * Don't generate an empty drvPath attribute in the
manifest.
new 7de5fe2 * Do the path check on the normal form.
new cf705ea * toString: don't copy paths. So toString can be used to
pass non-store paths to a builder.
new cba913c * dirOf: return a path if the argument is a path.
new be1961c * toPath: should be the identity on paths.
new 9e30694 * Fix the tests wrt the AST changes, i.e., Str(s) ->
Str(s, []), and the semantic changes.
new dfc042a * Another test.
new 822dba2 * Maintain the references for the user environment
properly.
new 3059df0 * baseNameOf: paths don't have to be absolute.
new 58ff693 * An awful backwards compatibility hack.
new 4bd5cdb * Print out the offending path.
new 24737f2 * Backwards compatibility with old user environment
manifests.
new daa8f85 * Backwards compatibility hack for user environments made
by Nix <= 0.10.
new 6a67556 * 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,
new b3d3700 * nix-build: check the exit status of `nix-store -r'.
new 9bd93f7 * toFile: maintain the references.
new 17f4883 * Better message.
new 7a4497d * Checks for allowedReferences and some other features. *
Use nix-build in a test.
new 1d694ee * Require Perl 5.8.0 or newer. I mean, it *is* more than
four years old...
new dd300fb * Some better error messages.
new 99b0ea7 * Typo reported by Arie Middelkoop. * Left out
close-quote in example.
new ae6fb27 * `nix-store --read-log / -l PATH' shows the build log of
PATH, if available. For instance,
new 8d17265 * Don't use EPSV.
new 8478cd2 * readFile: don't overflow the stack on large files.
new 005eecf * Release notes.
new b3f9169 * Oops, `nix-build --no-out-link' was broken.
new 7e85a2a * Fix importing of derivation outputs.
new 983c5e3 * Fix the locking patch for Berkeley DB 4.5.
new e790404 * Don't use the result of `uname -p' on x86_64 as it
gives wacky results on some machines. (NIX-69)
new e40d4a5 * 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.
new e2a70b7 * 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.
new f459a5b * Remove the undocumented `noscan' feature. It's no
longer necessary now that reference scanning is sufficiently streamy.
new 745e354 * Push.
new bce9ff7 * Use the patched ATerm library.
new 0ddaee7 * Doh.
new 17d18b1 * Doh!
new 471749c * Grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...
new 0541ddc * 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.
new d941186 * Show more progress.
new a76efae * Dead files.
new c6a97e3 * Doh! Path sizes need to be computed recursively of
course. (NIX-70)
new 71e867c * 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.
new 9241760 * Example script to set permissions for setuid operation.
new 80b742d * Don't spam.
new fe15f99 * Troubleshooting information on fixing a b0rked Berkeley
DB database.
new 5f0b9de * Benchmarking Unix domain sockets.
new e2ef5e0 * 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.
new 6ecb840 * Put building in the store API.
new 9cf1948 * Skeleton of remote store implementation.
new 9adc074 * Oops.
new 40b3f64 * 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.
new 765bdfe * 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.
new a711689 * First remote operation: isValidPath().
new 0263279 * More operations.
new aac547a * Doh.
new 0565b5f * More remote operations. * Added new operation
hasSubstitutes(), which is more efficient than querySubstitutes().size() > 0.
new b0d8e05 * 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).
new ceb982a * Right name.
new a824d58 * 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).
new fcd9900 * Replace read-only calls to addTextToStore.
new 8ba5d32 * Remove queryPathHash(). * Help for nix-worker.
new 626f8ee * Clear NIX_REMOTE in the tests.
new 9c9cdb0 * Remove SwitchToOriginalUser, we're not going to need it
anymore.
new 536595b * Remove most of the old setuid code. * Much simpler
setuid code for the worker in slave mode.
new 30bf547 * Doh.
new e25fad6 * 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.
new 714fa24 * Run the worker in a separate session to prevent
terminal signals from interfering.
new 7951c3c * Some hackery to propagate the worker's stderr and
exceptions to the client.
new 363f400 * Pid::kill() should be interruptable.
new 8c76df9 * Better error message if the worker doesn't start.
new 4251f94 * Use a Unix domain socket instead of pipes.
new 3ed9e4a * 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 [...]
new a9f9241 * Handle a subtle race condition: the client closing the
socket between the last worker read/write and the enabling of the signal
handler.
new 84d6459 * Use setreuid if setresuid is not available.
new 35247c4 * 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.
new f4279bc * Don't run setuid root when build-users is empty. * Send
startup errors to the client.
new 9322b39 * Doh.
new 1e16d20 * Install the worker in bindir, not libexecdir. * Allow
the worker path to be overriden through the NIX_WORKER environment variable.
new 052b6fb * Pass the verbosity level to the worker.
new f5f0cf4 * Refactoring.
new 4740baf * When NIX_REMOTE=daemon, connect to
/nix/var/nix/daemon.socket instead of forking a worker.
new 0130ef8 * 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.
new 40c3529 * 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.
new 7751160 * Don't redirect stderr.
new 0d40f6d * Not every OS knows about SIGPOLL.
new 74033a8 * 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...
new d27a73b * 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.
new 8623256 * findRoots: return a map from the symlink (outside of
the store) to the store path (inside the store).
new 29cf434 * 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.
new a9c4f66 * 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.
new fc1c20d * Redundant.
new fd4a9db * Some renaming.
new c808e62 * Ugly hack to handle spurious SIGPOLLs.
new 62b0497 * Better message.
new 9965524 * Use an explicit handler for SIGCHLD, since SIG_IGN
doesn't do the right thing on FreeBSD 4 (it leaves zombies).
new 8d1854c * Oops! In daemon mode, we can't run as root either if
build-users is empty.
new 4c1c37d * FreeBSD returns ESRCH when there are no processes to
kill.
new 6f0d050 * 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.
new 44cad96 * Urgh. Do setgid() before setuid(), because the
semantics of setgid() changes completely depending on whether you're root...
new 2b55884 * Be less chatty.
new 9f0efa6 * 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).
new 751f6d2 * nix-setuid-helper: allow running programs under a
different uid.
new 6e5ec10 * 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.
new a14d491 * Oops.
new ef281b9 * Fix the safety check.
new 173d328 * Urgh.
new f07ac41 * 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.
new 62ab131 * Verify that the desired target user is in the build
users group (as specified in the setuid config file).
new 79875c5 * Change the ownership of the current directory to the
build user.
new 6a8e609 * Move killUser() to libutil so that the setuid helper
can use it.
new 813a7c6 * Sanity check.
new a45c498 * If Nix is not running as root, call the setuid helper
to start the builder under the desired build user.
new 7d8cf31 * Pass the actual build user to the setuid helper.
new 6a07ff1 * Change the ownership of store paths to the Nix account
before deleting them using the setuid helper.
new a0a43c3 * When not running as root, call the setuid helper to
change the ownership of the build result after the build.
new ec23ecc * In the garbage collector, if deleting a path fails, try
to fix its ownership, then try again.
new f76fdb6 * If not running as root, let the setuid helper kill the
build user's processes before and after the build.
new a82d80d * Move setuidCleanup() to libutil.
new c3286ec * 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.
new d03f0d4 * Check for lchown.
new 4ca0106 * Rename all those main.cc files.
new 2819eb3 * Be less verbose.
new e24d020 * Doh!
new 6833e8b * When keeping the temporary build directory (-K), change
the owner back to the Nix account.
new 096194a * Remove ancient terminology.
new d3fe6ab * Also for convenience, change the ownership of the build
output even in case of failure.
new 9dbfe24 * 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).
new 06c4929 * 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.)
new fa33303 * Goal cancellation inside the waitForInput() loop needs
to be handled very carefully, since it can invalidate iterators into the
`children' map.
new 5f68198 * Use deletePathWrapped() in more places.
new b176774 * 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()).
new 5e66991
new 1a7e88b * New built-in function `builtins.attrNames' that returns
the names of the attributes in an attribute set.
new 7ace29d * 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.)
new 3130f1f * Push.
new b438d37 * In dumpPath(): pass a function object that allows files
to be selectively in/excluded from the dump.
new a3e6415 * 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:
new 1073b17 * Remove debug message.
new cafaceb * Handle weird cases when the server redirects us while
setting a cookie.
new 57969b9 * Testing 1 2 3.
new 4c63f9f * Another great success.
new 50bdec4 * Huge speedup in patch propagation (20 minutes or so to
3 seconds).
new 1f3722b * Reject patches that are larger than a certain fraction
of the full archive (currently 60%). Large patches aren't very economical.
new 69c8b5b * Install generate-patches into libexec.
new 1b7840b
new 1115802 * Cleanup.
new 792878a * Make printing an expression as XML interruptible.
new 5011588 * 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.
new 05879db * Memoize strict evaluation.
new f23dcdd * Canonicalise ASTs in `nix-instantiate --eval': remove
position info, sort attribute sets.
new 215505b * Removed chroot support.
new f25f900 * Allow multiple --attr / -A arguments in nix-build /
nix-instantiate (NIX-74).
new afe23b5 * 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)
new 4e329f1 * Doh.
new e418976 * Option --argstr for passing string arguments easily.
(NIX-75)
new 8659edc * Don't forget the .flags files.
new 8f67b35 * Make the garbage collector more resilient to certain
consistency errors: in-use paths now cause a warning, not a fatal error.
new 63f3ce6 * `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.
new e4b0666 * builtins.filterSource: pass the type of the file
("regular", "directory", "symlink") as the second argument to the filter
predicate.
new 71ceb1c * Handle multiple indirect symlinks when loading a Nix
expression.
new 7bc30e1 * nix-prefetch-url: change the default hash to SHA-256
(in base-32).
new 36d9258 * Successors have been gone for ages.
new bae75ca * 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.
new fac63d6 * exportReferencesGraph: work on paths within store paths
as well.
new 84a84af * 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.
new 7dedbd8 * filterSource: pass strings to the predicate function
instead of paths. Paths can have unexpected semantics.
new 7349bd0 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.
new 18e6096 * Organise primops.cc a bit better.
new c558b15 * Don't capitalise the primop functions.
new b618fa6 * computeStorePathForText: take the references into
account when computing the store path (NIX-77). This is an important
security property in multi-user Nix stores.
new f52de52 * Doh!
new 451dbf6 * 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.
new 52d0327 * Compatibility with docbook5-xsl.
new 46605fb * Fix 64-bit compiler warnings.
new 8181a1c * Close the file - just in case.
new 3390c1b * Temporary notes on how we're going to use OpenSSL.
new b824a1d * 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.
new 6c9fdb1 * Don't use $SHELL.
new 46e0919 * `nix-store --export --sign': sign the Nix archive using
the RSA key in /nix/etc/nix/signing-key.sec
new 43c4d18 * `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.)
new dc7d594 * importPath(): set the deriver. * exportPath(): lock the
path, use a transaction.
new 0f5da8a * Support exportPath() in remote mode.
new bdadb98 * `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.
new 65f195f * Check that the file containing the secret key is secret.
new 881feb9 * 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.)
new 9da367b * `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.
new 0db4500 * Export/import many paths in one go.
new 7f6161a * Flush cout to show progress.
new 024a8ed * New command `nix-copy-closure' to copy a closure to a
Nix store on another machine through ssh. E.g.,
new 4c5e6d1 * nix-copy-closure: option --sign. * nix-copy-closure:
set SSH options through NIX_SSHOPTS..
new fa2be32 * 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.
new 27bb0ac * /man -> /share/man
new ddde8e2 * Handle EINTR in select().
new 363e307 * Error message to stdout.
new adce01a * When NIX_SHOW_STATS=1, show the amount of stack space
consumed by the Nix expression evaluator.
new 044b648 * 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.
new 2ea3beb * Doh! The deriver can be empty.
new b4a040e * Don't check the signature unless we have to.
new db1973d * Look for the openssl program at compile time. If not
found, call openssl through $PATH at runtime.
new 30394a4 * sh -> bash.
new df0283a * Get rid of those stupid --login tricks, it's the
responsibility of the remote system to make sure that Nix is in the $PATH.
new 917e06b * Delete the output paths before invoking the build hook.
new eb2dd48 * 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.)
new b2b6cf3 * Undocumented option `gc-check-reachability' to allow
reachability checking to be turned off on machines with way too many roots.
new 8ab229d * 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)
new a8ea4cb * 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.
new 803cb6e * Override the setuid helper using NIX_SETUID_HELPER.
new f3584ff * Fix URL/description.
new 7edd2e2 * Refactoring.
new d303b38 * `nix-copy-closure --from': copy from a remote machine
instead of to a remote machine.
new efd3113 * Forgot a @address@hidden
new 17b506c * 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).
new 4caca58 * Make the maximum patch size configurable.
new ae7990c * Work around a bug in Apple's GCC preprocessor.
new 2716f9b * 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.
new 0a8eeea * Remove a warning.
new 5f2492e * 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.
new 5dc05b7 * Updated dependency information.
new b7f0f65 * 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.
new 3d05166 * Allow conflicting packages to be kept in a user
environment, and allow switching between them (NIX-80).
new a46db5d * 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.,
new 89c1d2b * 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:
new e20f0da * Doh.
new bd1f664 * `nix-env -q --xml --meta' to show all meta attributes.
new 644946f * Make --verify more interruptable.
new cbfac2f * 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.
new a9d15d4 * 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.
new 93aefd9 * 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".
new 34d4c93
new 30beeb2 * Set the right priorities when recovering from a
directory collision.
new e5da9c8 * Create the database directory if it doesn't exist.
new 7046c35 * Typo (reported by Marc Weber).
new ca00aa1 * 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.
new bddc83a * 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".
new b47da5e
new 40b6f06 change default NIX_HASH_ALGO
new f3ebd03 * Remove debug statement.
new 9bff7ad * 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.
new 9d9e1c5 * Distribute bzip2 1.0.4.
new 6d1a119 * Support queryDeriver() in multi-user installations.
new 6da6fbf * Properly keep packages during upgrades.
new 4cad125 * Optionally warn about packages that give an assertion
failure.
new d71cc50 * Don't allocate input files on the stack.
new ef240bc * Use the new patched version of the aterm library.
new f881f7a * 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.
new c5e934d * 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.)
new 5e52df1 * Don't rely on /dev/stdin.
new 911bc01 * Enable nix-prefetch-url caching in nix-channel.
new 4695f4e * nix-pull: support bzipped manifests: when doing a
nix-pull on $url, try $url.bz2 first.
new 9e97545 * 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 i [...]
new 59afc1a * Backwards compatibility.
new 3757ee5 * Bump the Nix database schema version number; delete the
substitutes table.
new 550ba9e * Fix the tests.
new a7e1a51 * A test for the nix-worker.
new ffa1c61 * Fix the tests.
new 5c793ad * Hopefully this fixes the test on FreeBSD.
new dbc0170 * Show errors in nix-prefetch-url.
new 2629998 primop functions listToAttrs (+test), __isAttrs, __trace
added new configuration style proposal in lib/default-unstable.nix
new 7d5836b * 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.
new 455a7b9 * 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.
new e0d7e47 * PathLocks::lockPaths: don't allow reacquiring a lock we
already hold.
new bc0429b * Doh! Broken test.
new c970b28 * 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 [...]
new cb1c100 * When there are multiple substituters, make sure to
release the lock on the output path after trying each. Otherwise the
pathIsLockedByMe() test gets confused.
new 0d65fc0 * 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.
new 7b20c0e explanation what happens when passing true / false and
null values to derivation builders added
new 9441550 * nix-push / generate-patches: bzip the manifest.
new 3339f85 * Test the impureEnvVars feature.
new 0556082 * 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.
new c8ea8a0 * 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
new 26f981c * Remove garbage.
new f3441e6 * 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.
new 27f57c9 * Ignore dangling symlinks in ~/.nix-defexpr.
new 8a9fe6c * Manpage for nix-copy-closure.
new 27a0662 * 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.
new a8629de * 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).
new 315183f * nix-store --optimise: flag "--dry-run" to just query
what the disk savings would be.
new d04291c * Doh! Don't change the permissions on /nix/store.
new 14e47e9 * Doh.
new f529a3b Added comment telling about setup-hook and
propagatedBuildInputs
new f8ed2e6
new f90d851
new 1db187f
new 35ac16e * Move list of built-in functions to a separate file.
new 612b3e8 * Document the new primops in Nix 0.11.
new d423968 * Improved introduction (actually copied mostly from the
homepage).
new cd08fb3
new 0b4ed64 * "trace" primop: write the trace to standard error.
new 9397cd3 * 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 pre [...]
new dc6f373 * Delete the chroot directory automatically. * Removed
some debug messages.
new d91cd30 * Detect whether chroot / bind-mount support is available.
new 42d80d1 * On FreeBSD, sys/mount.h needs sys/param.h.
new 0b95603 * Depend on bash instead of sh (since we use a few
bashisms).
new bfea7b1 * 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).
new e007b50
new fa44e40 * Documented multi-user Nix.
new 1511aa1 * Documented some of the more obscure derivation
attributes (including fixed-output derivations).
new 5f8a203 * A rule to make a PDF version of the manual.
new 5b74a59 * 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.
new 6fc60e2 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.
new bfec245 * Add build-remote.pl to the Nix distribution.
new 149e273 * Don't need gc.hh.
new ca210d2 * Doh!
new 6784b14 * nix-build: pass --argstr to nix-instantiate.
new c05783a * nix-store --import: add a flag --require-signature.
new c370755 * 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).
new 06f95dd * New primop `readFile' to get the contents of a file as
a string.
new 12d0a1e * Troubleshooting entry about running out of locks.
new 6335186 * nix-env -e: support uninstalling by path, so that one
can say
new 6d6c68c * Added a new kind of multi-line string literal delimited
by two single quotes. Example (from NixOS):
new d4950f2 * component -> package.
new b42ef9c * Syntax to escape '', ${.
new 764b011 Very basic nix vim syntax highlighting
new 3a2833d corrected --help message for nix-store a bit
new 4ff1335 small udpate
new 30e4653 * Mac OS X 10.5 compatibility.
new 485d71c * 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.
new 1e90b41 * Another insane Mac OS X 10.5 compatibility hack.
new df30366 * Use strsignal if available to give better error
messages for builders that fail due to a signal.
new 2196cb6 Added a way to include derivation with its outputs and
dependencies - exportBuildReferenceGraph
new de012e7 * Don't use "store expression", it's obsolete.
new 5970797 * Documented indented string literals. * Release notes.
new b5ddcf5 * Fix the hashDerivationModulo test. I should really
investigate *why* the test failed...
new dedd62d * More release notes.
new f60aa2a
new 4c82983
new 454f571
new 6bdecfa * Documented a bunch of nix-store commands.
new e0ca671 * More documentation.
new d411785
new 895c953 * Bumped the version number to 0.12.
new 7d0f6ae * New primop `unsafeDiscardStringContext' to get rid of
string contexts. Needed to prevent unnecessary dependencies when building
the NixOS manual.
new 5eb5c23 Fixed exportBuildReferenceGraph
new 5b5a3af Probably fixed __exprToString
new 66c51dc * 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.
new e7bdde9 * Regression test.
new 4066f45 * Doh.
new 0ed89c5 * Fix the parsing of
new 0a84137 * 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 typi [...]
new 11d512e 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.
new d7caac3 * Don't install nix-reduce-build by default yet please, I
first want to understand better what it does...
new f789ea1 * A transaction is unnecessary since the path cannot be
garbage-collected (it's a temporary root).
new f106868 * Cleanup.
new 2f1e2cf * Note that the SDF grammar isn't used.
new 98968fb * Disable the don't-run-as-root sanity check because it
breaks RPM builds (which are done as root...).
new 5bb08db * Updated URL.
new 3290252 * 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.
new f8985d1 * Fix for NIX-101 (should use an absolute path for call
to nix-hash).
new 72034ab * 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.
new 658816d * Make really sure that we use bash. The line
new b1e321d Added http alternative transport for nix-reduce-build
new b4bc8b7 --proxy=proxy:3128
new 9819bb2 Added support for file:// archive (.nar.gz) repositories
to nix-reduce-build. /tmp/nix-export created by nix-http-export.cgi is OK.
new bd955e1 * GCC 4.3.0 (Fedora 9) compatibility fixes. Reported by
Gour and Armijn Hemel.
new c41a3ec First attempt to update Nix SDF grammar to match the
actual bison grammar
new 4ed01ed * Updated some URLs (did this a long time ago but forgot
to commit...).
new b0e92f6 * Merged the no-bdb branch (-r10900:HEAD
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
new 997b95a * Fixed compatibility with old versions of "wc" that
print whitespace before the count.
new 2818b7c * Updated some URLs.
new 4532e4b Added verbosity for nix-reduce-build
new ce85b55 Updated help text
new f903d86 OK, I will believe that fix does no worse..
new 194c66e Stupid error in script
new 30c9f90 * Print some progress info during the early GC stages.
new 826b271 * 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.
new 18e2762 Added local best-effort builds (i.e. one failure does not
ruin all packages you would like to see built)
new 955b884 Also trying to build derivers in case we cannot get
substituters
new 94fd46f * Note.
new f351834 * nix-worker: clean up the temporary root for the worker
processes in /nix/var/nix/temproots.
new ee8f159 * Test instrumentation.
new 934c58a * Use bzip2 1.0.5.
new a72709a * Some refactoring: put the GC options / results in
separate structs. * The garbage collector now also prints the number of blocks
freed.
new a8f3b02 * `nix-store --optimise': handle files with >= 32000 hard
links. (There can easily be more than 32000 occurrences of the empty file.)
new d3aa183 * 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).
new 5af8413 * --max-freed: support values >= 4 GB.
new 6c8641a
new b3b0b2a * `make ext-clean': remove the bzip2 build.
new d567baa * 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.
new 7cd88b1 * Generalised the dependencyClosure primop to
builtins.genericClosure, which is hopefully more useful. * New primops:
length, mul, div.
new 15f39ab * 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:
new 8bc591a * 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.
new 989176c * 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).
new e139d7f * Fix the tests.
new 660244f * Make sure that copy-from-other-stores.pl is built.
new 096198d * A quick hack to make nix-prefetch-url support mirror://
URLs. It requires that $NIXPKGS_ALL points at a Nixpkgs tree.
new fc691e1 * Print a better error message when a non-derivation
attribute set is coerced to a string.
new 3c92ea3 * 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.
new b3c2618 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
new 03427e7 * querySubstitutablePathInfo: work properly when run via
the daemon. * --dry-run: print the paths that we don't know how to
build/substitute.
new c4f9894 * nix-env --dry-run: show the total size of the
substituter downloads.
new 5b10526 * 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?
new 5adbb0a * build.cc: only use a substituter if it returns info for
a path.
new 4204395 * Doh.
new a1d310b * `nix-store --realise': print what paths will be
built/downloaded, just like nix-env. * `nix-store --realise': --dry-run
option.
new 7592f48 * nix-build: `--dry-run' flag.
new 001b3f0 * `nix-env --set': support --dry-run.
new a87b525 * Fix the tests.
new 339c142 * 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 [...]
new 98b0746 * Better error checking of the data from the substituters.
new 72f3ea7 * Moved some stuff to the Nixpkgs manual. * Updated the
release notes.
new b455c4c Updates to nix-reduce-build
new 5664b6d * Removed the "valid values" feature. Nobody uses it
anyway.
new c03b729 * 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...
new efe4b69 * 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).
new e818838 * "pattern" non-terminal.
new 1b962fc * @-patterns as in Haskell. For instance, in a function
definition
new db4f4a8 * Backward compatibility check to prevent nixos-rebuild
from barfing when upgrading Nix.
new 9279174 * 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,
new ca07f3e * 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.
new b7ff182 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.
new 51e2dda * Some more ATerm Valgrind suppressions.
new cc826dc * Simplify the Valgrind suppressions using wildcards.
new b428adc * 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.
new 49829da * Doh.
new c4f1c21 * Minor simplification.
new abec1c0 * Evaluate attributes in sorted order for better
determinism.
new d06be42 * 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.
new 99dc3e6 * 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).
new 9cc0da8 * Create a /tmp with 1777 permission in the chroot. Some
builders need a writable /tmp (they don't respect $TMPDIR).
new 7718b19 * 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).
new 2a01d06 Added nix-http-export.cgi to extra distributed scripts;
so it can be installed from releases, not only from SVN.
new 311c222
new 0f0dbe8 * Extend the ATerm suppressions to 64-bit.
new 7933cdc * 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.
new 2b2aa8a * Doh.
new 7ab6896 * 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.
new 77afd97 * nix-store --gc / --delete: show how many store paths
were deleted.
new c987061 * Some refactoring. Better output with `-v' for
--use-atime.
new 4af2fdb * Typo.
new f32fef1 * 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.
new fa61ee7 * Fix `--from-profile'.
new 9d6d502 * Bug fix for building on some old installations
(contributed by Pjotr).
new c98ea25 libstore: Always mount `/dev/pts' individually.
new 709b55e * 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.
new 2b7c839 * Typo.
new 4166b11 * Add /dev/pts to the default nix.conf.
new 96598e7 * Pass the --no-build-output flag to the daemon.
new a519bb0 * Some somewhat ad hoc mechanism to allow the build farm
to monitor build progress.
new 6fedb7a * 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).
new 3f4ed68 * 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.
new fa79111 * Get rid of nix-pack-closure / nix-unpack-closure,
they're redundant.
new f5325d2 * Release notes.
new 07d3a38 * Remove references to Berkeley DB, including most of the
troubleshooting section. W00t.
new 6c2c771 * Removed obsolete option.
new 2369b12 * Install documentation in $(docdir) (i.e. share/doc/nix).
new 7509d70 * Documented some of the sharing mechanisms.
new 5d250ad * nix-store --dump-db: be more streamy.
new e13da52 * Files in the info directory starting with "." are
temporary files and don't indicate path validity.
new 63ccd72 * Updated the manual.
new 2668a43
new 6056441 * Patterns.
new aab530e * 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.
new c202523
new a551134 * Nix daemon: reload the configuration file after forking
(NIX-100).
new 285d263 * 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.
new 3d2035e * 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.
new eb86b6f
new 4213b8d * Urgh.
new 53cca4a
new f3e2e60
new bba8758
new b8eb32f * Urgh.
new 6bbff48
new 2ab09a5 * Bump the version number.
new 5024bde * Handle prematurely ended logfiles, i.e. make sure we
emit enough close tags.
new 0c478d2 * Ignore carriage returns.
new 5d4eb9d * Moved the build farm job for building Nix to the Nix
tree.
new 09bc0c5 * Install the release notes.
new 64519cf * 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:
new 1307b22 * 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.
new ff762fb * Pass HashType values instead of strings.
new d95b68f
new cdee317 * Backwards compatibility.
new 5eaf644 * A simple API for parsing NAR archives.
new 82ae85d * addToStore() in nix-worker: don't write the NAR dump
received from the client to a temporary directory, as that is highly
inefficient.
new f8713e1 * 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.
new 63b8f09
new 9fd9c4c * Support multiple system types per remote machine, e.g.
a machine list like
new 9ccdb80 * 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).
new 5dfba0b * Force allocation of a pseudo-terminal to clean up the
remote nix-store process when the connection is interrupted.
new 909fbb9 * 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.
new 9850262 * Build RPMs, Debs, coverage analysis.
new bcfe98a * 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...
new 9ac3f5d * Propagate --max-silent-time to remote machines.
new d91dc08
new 67958f2 * Be sure to clean up the daemon if the test fails.
new 5b94924 * Build some 64-bit RPMs/Debs.
new cd16d5d * Doh.
new a0766ec * Build on Debian 4.0 (GCC 4.1.1).
new 07cdfb0 * 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.
new 7c54f16 * 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.
new 5a56950 * Provide a minimal /etc/passwd in the chroot to keep
some builders happy.
new 6528170 * 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.
new ac5478e * 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 stor [...]
new d86bd22 * Define _GNU_SOURCE. Hopefully this fixes the build on
Debian 4.0 (http://hydra.nixos.org/nixlog/384/1).
new 6776a52 * Use a PathSet for the chroot directories so that we
don't accidentally bind-mount a directory twice.
new 9122dce * 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).
new 2b70a8e * Detect whether unshare() is available.
new ac36c6c * Some hackery to make "make check" succeed on Cygwin.
new 0008b00 * 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.
new 92cb7c4 * Put chroots in the Nix store. This ensures that we can
create hard links to the inputs.
new 6f6bb1f * Delete the chroot if it already exists (e.g. left over
from an interrupted build).
new 60ec750 * Pass --use-atime / --max-atime to the daemon.
new 8fce03e * nix-store --verify: repair bad hash fields in the
metadata file.
new 28355da * Removed reference to losser.st-lab.cs.uu.nl, which is
RIP after 9 years of loyal service :-)
new 8e39d9b * Make Nix build with Bison 2.4.
new c504d90 * 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.
new 4ce692d
new 0191761 * 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).
new 061141e * Make it compile on Debian 4.0 (which doesn't define
PER_LINUX32_3GB in sys/personality.h).
new 110606d Add the "addErrorContext" builtin to add more information
in the stack trace.
new 6f8c96d vim syntax: support for indented strings ('' .. '')
new b682fae * 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.
new 1bb0f1e * Build hook: compress the transferred data.
new 1407a1e added primop functions __isBool, __isString, __isInt
new 2ef579d documentation for previous commit
new 824b154 * 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.
new 621093c Replace wrong (w.r.t. PATH) sed call with in-shell
substitution
new 041717e * download-using-manifests: don't check the cryptographic
hash of downloaded files; rather, check the hash of the unpacked store path.
new a7cee52 * Handle base-16 hashes in manifests.
new f052c10 * Check the manifest version.
new 8ab6bc5 * nix-channel: use nix-build.
new 60cb7de * Allow options from the Nix config file to be overriden
from the command line (e.g. "--option build-use-chroot true").
new fd2e14b * nix-build: support --option.
new d4ca5c3 * Use the regular progress bar; the hash bar isn't very
useful when the size of the download isn't known in advance.
new 1273d35 * nix-install-package: don't pollute
/nix/var/nix/manifests.
new 7f25470 * Allow the channel to declare a name for itself.
new 0e6f604 * Install some headers in the right location.
new d4753c9
new a96cac0
new be88248 * Make the version available to release.nix.
new 33ecb42 * Cleanup.
new 2d51144 * Regression test for the `exportReferencesGraph'
derivation attribute.
new 51e7e32 * Refactoring: renamed *.nix.in to *.nix.
new 93b6926 * Regression test for exportBuildReferencesGraph. It
currently fails.
new 1dcf208 * Clean up some tests (use nix-build where appropriate).
new c183ee5 * 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.
new 13df391 * Missing file.
new 9485ec3 * Better cleanup after tests.
new e530e0a * Improve the test.
new 2897286 * 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.
new b88460b * Disregard the Hash field in manifests.
new 7e05b8b * Future proofing: assume we can read manifests up to
version 10 (which should therefore be backwards compatible).
new 77d2726 * 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.
new 7a57b29 * Better error message when nix-store --import is applied
to garbage (previously it would likely say "implementation cannot deal with >
32-bit integers").
new d7b2d11 * Test case (currently fails): multiple Nix builds
shouldn't block waiting on the same lock when there are other builds that can
be done.
new 58969fa * Refactoring.
new cacff1b * 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, [...]
new 3a87163 * Shut up a GCC warning.
new 7aedcf9 * Make this test a bit more robust. It's still timing
dependent though.
new 12c8c64
new a046858 * Doh.
new 8146a0c * Use bash in the tests.
new 7024a1e * 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.
new 92f525e * Negative caching, i.e. caching of build failures.
Disabled by default. This is mostly useful for Hydra.
new 5dd8fb2 * 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').
new 9856efc * 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.
new 6168692 * A job for creating a fully statically linked binary
tarball.
new cb85bc3 * Create /nix/store if it doesn't exist.
new e23a7a8 * Debian 5.0, Ubuntu 8.10 builds.
new 38f98b3 * Argh, stupid timing sensitive tests...
new f54e800 * The `fixedOutput' variable didn't get initialised when
using a build hook, causing negative caching to fail randomly.
new 7fb548a * Clean up the output a bit.
new 3a2bbe7 * Simplify communication with the hook a bit (don't use
file descriptors 3/4, just use stdin/stderr).
new c7152c8 * Don't use the non-standard __gnu_cxx::stdio_filebuf
class.
new 6e946c8 * Scan for references and compute the SHA-256 hash of the
output in one pass. This halves the amount of I/O.
new 47706e3 * nix-copy-closure: compute the closure in one call to
nix-store, which is much faster.
new 737423a * 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.
new 7377195 * With `--max-jobs 0', print a nicer error message than
"Assertion `!awake.empty()' failed."
new cbc1f57 * Undocument the "system" option. No sane person would
use it :-)
new 096affb * Update the mtime on the lock file to make it easy to
see when a slot was last used.
new 805144b * Make the poll interval configurable.
new 160a60d
new cff2b2a * Doh!
new 351bf65 * Do a substitution even if --max-jobs == 0.
new 50cb6f9 * Debian packages: use /etc, not /usr/etc.
new 8b2a01a * Release notes.
new 435a93b * Remove references to __XXX primops.
new dfb863f * Don't cache transient build hook problems.
new 0460ea4 * Cleanup.
new 4e646b0 * 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.
new 8f1bf28 * nix-store --verify: don't bail out if a referenced path
is missing. (It can't fix it though.)
new d5eab2f * Use foreach in a lot of places.
new c710fe5 * Machines of type x86_64-linux can do i686-linux builds.
new 098cb9d 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)
new 6a5599f * Typo.
new 52a9ba9 * Include the version file.
new 7660e2a * 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.
new 404996c * Produce the manual in the tarball job.
new f751c29 * Don't have a bugs section in the manual. Bugs should
be kept in the bug tracker.
new 83bd320 * Build a PDF version of the manual in the tarball job
(it's not included in the tarball though).
new 9536ba1
new c34e6d7 * 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
new 50d11b9 * Allow unsafe (unspecified) comparisons between attrsets
unless NIX_NO_UNSAFE_EQ is set, for now.
new e429754 * Check for duplicate attributes in fixAttrs, rather than
doing a separate traversal after parsing. Likewise, check for duplicate
pattern variables right away.
new d407d57 * 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.
new a64bbe0 * 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
new c6cb792
new f24cf5d * 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.
new 14bc3ce * 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 bec [...]
new d53603c * Attributes names in attrsets can contain dots now.
new a2fc3a5 * Highlight URLs containing "=" properly.
new f2c3fc5 * 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.
new 749dd97 * 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).
new c6890d6 * Replace newlines in table output with spaces.
new 5e2e2f1
new 1f169f4 * Leave out the collaborators / revision history page.
new d413612 * Remove the redundant <sections> around refentries.
new 20b6f94 * nix-build: pass the --show-trace flag.
new 9b46d1a
new 5e9a4e5
new 3bca893 Adding tryEval builtin. It allows to catch presence of
errors in an expression.
new 0dbd463 * 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.
new 57e0d73 * 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.
new 86408b3 * 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.
new e1df4ef
new d3de71e
new df05a75 * 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).
new 51ad64c * Use xmllint (>= 2.7.4) for RelaxNG validation instead
of Jing.
new 48b5861 * include wait.h for WEXITSTATUS
new 64e8998 * Create some state directories automatically as a
convenience.
new 676e079 * Darwin hack.
new 63a17d4 * 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).
new 1332dd1 * 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.
new 0ae2be5
new 193f59e * Fix a build failure on Fedora 11. rename() needs
<stdio.h>.
new c7057fc * And some more.
new 0f79ad4
new 1a8f8fd * OpenSolaris compatibility.
new 96f1517 * Support platforms that don't have O_ASYNC (e.g.
OpenSolaris apparently).
new 18f0ff0 configure.ac: use AC_SYS_LARGEFILE to determine how to
enable 64-bit file size support
new 53a4981 Added optional parameter which adds -lnsl -lsocket to
make the Nix package manager work on OpenSolaris
new 6f7d7bc * Give a useful error message when an evaluation error
occurs while trying to upgrade a package.
new 437077c * Added a primop unsafeDiscardOutputDependency needed by
Disnix to pass derivation paths to a builder without actually building them.
new deb342f * 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",[])'.
new 6b9f6b0 * Remove a prototype for a function that no longer exists.
new 8520542 * 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).
new 1ff8758 * Manual updates.
new 268d90a * Various updates.
new 58f3338 * The Nix .deb package depends on curl.
new 7680904 * Build on Karmic.
new e8bad77
new c60d796 * Version bump.
new 327a232 * Remove support for old (before Nix 0.12pre12020)
databases.
new 3392d32 * 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.
new 997db91 * Don't pass -K. It should really inherit the setting of
the calling Nix though.
new 8824d60 * 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.
new 4f7e5f5 * Don't create /nix/var/nix/gcroots/{tmp,channels}, since
they don't seem to be used anymore.
new c364d5d * 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.
new ae6bf87 * `nix-store --gc --print-roots': also print the path of
the actual root symlink, not just its target. E.g.:
new 3d55f1e * A command `nix-store --query --roots <paths>' to find
the garbage collector roots that point (directly or indirectly) to the given
paths.
new ca50c83
new f9e766d * 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.
new 8022015 * In the garbage collector, don't count files with a link
count > 1 in the "bytes/blocks freed" statistics.
new 9b8fda7 * Templatise getIntArg / string2Int.
new aa5a768 * GCC 4.4 is stricter about the EOF macro
(http://hydra.nixos.org/build/156340).
new 13618b1 * Grrr.
new bcd6cdf * Give a better error message when trying to build
something and readOnlyMode is set.
new c4c84d1 * nix-build: be less verbose.
new 7ca9972 * 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.
new 3a78af1 * Release notes.
new d8a5dc0 * Build on Fedora 12.
new 945d821 * Build correctly against newer ATerm releases. Fixes
"error: 'union' tag used in naming 'struct _ATerm'".
new ef92a14 * 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:
new f0c0277 * 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".
new 5388944 * Make the garbage collector do the right thing when
`gc-keep-outputs' is enabled by not depending on the deriver.
new 50e3489 * 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.
new fdcaf37 * 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).
new ad529fb * 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).
new 07ffdc2 * 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.
new 2723d9b * If fdatasync() isn't available, use fsync().
new 4bbbe25 * 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.
new e839802 * Don't do a chdir to $tmpDir. It's not necessary, and
Windows doesn't support deleting the current directory.
new 3ce5f07 * Ugly hack to make `nix-channel' work on Cygwin.
new 4d8a85b * Updated the release notes.
new bc1e478 * nix-copy-closure: start only one SSH connection to the
server, or recycle an already existing connection (using OpenSSH's
connection sharing feature).
new f56a039 * Use SSH connection sharing in the remote build script.
* Removed the Cygwin password hack since the problem is apparently fixed in
Visual Studio.
new d0c32dc * 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.
new c45de33 * Respect @address@hidden
new f859a8d * 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.
new 4e17be7 * 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.
new 408913b * Revert r19796 for now.
new e51a276 * Remove the `cat' calls when not using --gzip.
new 3cfe65e * Doh! Calling `system' in an END block causes the exit
status in $? to be changed to 0.
new c9b2d80 * Typo.
new 7ec5a65 * 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.
new 4436736 * Don't use ssh's -f flag since it leads to lots of
lingering ssh processes.
new 719cebc * "Fix" incorrect help message.
new f36b7e7
new 817f4f7 * Grmbl. Timing-sensitive tests are evil.
new e1e91a3 * Bump.
new e08dbff * Fix a broken link (reported by Bjorn Buckwalter).
new d0bf4ad Add `.gitignore'.
new 20186a4 Don't rely on `PATH_MAX' on GNU.
new 3b3e102 * Typo. Reported by Peter Koppstein.
new 68e55cd * 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.
new eaaa13c * Experimental branch for using SQLite to store the Nix
database.
new c1a07f9 * Convert the Nix database to SQLite.
new dbddac0 * 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.)
new a053d2d * 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.
new e0305bb * Some wrapper objects to ensure that SQLite objects are
properly destroyed.
new cfb09e0 * Automatically abort transactions if they go out of
scope without committing.
new 885e22b * Implement isValidPath().
new 77cb9e3 * Implement queryPathInfo().
new 836e5b6 * Implemented queryReferrers().
new 268f9aa * Implemented queryValidPaths() and verifyStore().
new 762cee7 * Implement registerValidPath().
new 9c9a88e * Implement more stuff.
new 1930570 * Foreign key support in SQLite is not a persistent
setting, so enable it at startup. * Implement negative caching. Now `make
check' passes.
new 299ff64 * Put the derivation outputs in the database. This is
useful for the garbage collector.
new 103cfee * 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.
new c4d388a * Get derivation outputs from the database instead of the
.drv file, which requires more I/O.
new 9cda616 * 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.
new 2b20318
new 5ccb6f6 * Run ATerm's `make check'.
new 7db2831 * Use ATerm 2.5.
new b4e6d98 * configure: flag --with-sqlite.
new 0efc986 * Sync with the trunk.
new 63b09c5
new dc6d1ec
new 8520de4 * Include the sqlite tarball in the Nix tarball.
new 462bd50 * Use normal (rather than full) synchronous mode, which I
gather from the description at http://www.sqlite.org/atomiccommit.html should
be safe enough.
new 69d9df7 * Don't fork so much.
new bb82310 * Set the path to sqlite3 properly.
new 5954ead * Remove the fdatasync check since it's no longer needed.
new fa6a4fc * Add ${sqlite_lib} everywhere. Just adding it in
`libstore' doesn't work on x86_64 when sqlite is compiled statically.
new fae0427 * ADDITIONAL_NETWORK_LIBS -> LIBS.
new 90b6352 * Do registerValidPaths() in one transaction, which is
much faster. E.g. it cuts the runtime of the referrers test from 50s to 23s.
new a3c63d0 * 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'.
new 21b134b
new fefd467 * `helpText' is now zero-terminated.
new 9fd85c9 * Use `truncate' journal mode, which should be a bit
faster.
new 6baa2a2
new cfe742c * A function to query just the database id of a valid
path.
new 84a4dd5 * 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).
new e33f67f * Refactor the upgrade / database initialisation logic a
bit.
new af565c3 * Support read-only access to the database.
new e42401e * Implement RemoteStore::queryDerivationOutputs().
new 24035b9 * Implement RemoteStore::queryValidPaths().
new 966ffb2 * Update the Valgrind suppressions for ATerm 2.5.
new 594eadd * 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.
new 5414b3b * Remove the --enable-static-nix flag.
new e07d728 * Fix DESTDIR builds.
new d8c5745 * Support static builds.
new 3f9e647 * checkInterrupt() shouldn't be called from a destructor.
new 56af8e8 * Protect the `true', `false' and `__overrides'
constants. Without an ATprotect call, these could be garbage collected,
leading to weird crashes or wrong results.
new 158aa89 * Ensure that `make install' works without a prior `make'.
new e14e239 * Prevent a potential memory corruption problem if an
ATerm garbage collection happens during fixAttrs().
new 5ff87c9
new fb6e223 * Synced with the trunk.
new bc6f7fc * Remove some unused functions.
new 0479184 * Emit warning='1' or error='1' attributes for lines
marked as warnings or errors with \e[w or \e[e.
new 05fbf61 * nix-prefetch-url depends on sed (see
http://hydra.nixos.org/build/311170).
new 2e4ef03 * Increase the sqlite timeout.
new 44f6e6d * Set `gc-keep-outputs' or `gc-keep-derivations' to false
with `--delete --ignore-liveness'.
new 4c356ac * 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).
new 1a65142 * Remove a debug statement.
new 03afc34 * Simplify.
new 2e8eaca Clear supplementary groups of `nixbld' in /etc/passwd in
chroots.
new c752c9f Fix thinko in r20547.
new 070057c * Sync with the trunk.
new 05e1504 Show the build user's group in /etc/group in chroots.
new e020d80 * Sync with the trunk.
new 13cce8e Making 'bin2c' to be built with the compiler for the
local system. I copied the configure.ac code about CC_FOR_BUILD from libX11.
new 2fb0df8 Uh. somehow a Makefile tab got in as spaces. Fixing.
new 741b757 Merge r20344 & r20346.
new fe1b878 * Fix a broken link (reported by Peter Koppstein).
new f0c473c * Fix building on Cygwin
(http://hydra.nixos.org/build/325071).
new 8e3d98e * Release notes for Nix 0.15.
new c4cfb39
new 74299c1 * Bump version number.
new 141294f * Clean up error messages in killUser().
new f71ea9c * Use SQLite 3.6.23.
new 3bfd3a4 * Test "with as; with bs;" since nobody knows what its
semantics is.
new 71be50c * Doh.
new 90039e0 * Branch for experimenting with faster / less
memory-hungry Nix expression evaluation.
new 0910ae9 * Start of an evaluator that uses call-by-need (with
thunk updating) instead of (memoised) call-by-name.
new e8f7978
new d31c59e * Plain lambdas.
new b70bd8f * Reduce the number of value allocations in eval() by
moving responsibility for allocation of the result to the caller.
new 0fd3648 * Store values in environments.
new 7482349 * Implemented attribute set pattern matches.
new 8a10360 * Simplify @-patterns: only address@hidden' or
address@hidden' are now allowed. So address@hidden', address@hidden' and so
on are now no longer legal. This is no big loss because they were not useful
anyway.
new ef8bd91 * Implement `...' and default function arguments.
new f450384 * Implement blackholing.
new 3c9f8fc * Don't convert variable names to strings.
new 25eedf0 * 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.
new c2ba431 * Implemented lists.
new 8da118e * Measure stack usage.
new cad8726 * Implemented the `==' and `!=' operators. These now use
a deep equality test, so they also work for (finite) attribute sets and
lists.
new 45d822f * Primops (not yet finished).
new 3d2b835 * Implemented multi-argument primops.
new d96cdcea
new 392811e * Strings.
new 807a67b
new e3f32ac
new 52090d2
new 31428c3 * Started integrating the new evaluator.
new d78a05a * Make `import' work.
new 5b72d8a * Implemented `map'.
new c3aa615 * More primops.
new c9170be * More primops.
new 47df476 * More operators / primops.
new 7f19e03 * More primops.
new eb07a4f Escape `>' signs in the XML output.
new 471419d Add source location information to the XML output.
new 4c53ca2 * Compare nulls.
new 13c2adc * Implemented `rec { inherit ...; }'.
new 09381cc Make source location info in the XML output optional.
new f061086 * Fix the broken test for listToAttrs.
new 5187678
new 3d94be6 * Implemented derivations.
new 55e207b * Cache parse trees to prevent repeated parsing of
imported Nix expressions.
new d8cd311 * Get nix-env to compile.
new 979f163 * Handle string contexts. `nix-instantiate' can now
correctly compute the `firefoxWrapper' attribute in Nixpkgs, and it's about 3
times faster than the trunk :-)
new dc31305 * 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).
new 71f0262 * 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.
new 95cc417 * Functions are incomparable.
new 7b85191 * Improve sharing.
new c172274 * 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).
new a5ece7d * Removed the `~' operator.
new a353aef * 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.
new fc92244 * Implemented the primops necessary for generating the
NixOS manual.
new 9a64454 * expr-to-xml -> value-to-xml.
new af2a372 * Update autoCallFunction() and findAlongAttrPath().
new 7e048ed * 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.
new b7b3dd5 * Remove a lot of dead code.
new f3dc7ab * Keep more statistics about stack space usage. * Reduce
stack space usage.
new aac5fcf Re-add `drvPath' and `outPath' attributes to <derivation>
XML nodes.
new c3f228f
new 4e49002 * Doh.
new db90b88 * Hack to support builderDefs expressions.
new ed711f7 * Don't use ATerms to represent integers in the lexer.
new 4d6ad5b * Don't use ATerms for the abstract syntax trees anymore.
Not finished yet.
new a60317f * More missing constructs.
new d4f0b0f * Indented strings.
new 0d272fc * Remove some obsolete functions.
new 10e8b1f * Finished the ATerm-less parser.
new ac1e8f4 * 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.
new 7d47498 * Evaluate lets directly (i.e. without desugaring to `rec
{ attrs...; <let-body> = e; }.<let-body>). This prevents the unnecessary
allocation of an attribute set.
new 816f9c0 * 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'.
new 85d13c8 * 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.
new 011b5da * Get nix-env to compile again.
new 816dd3f * Remove more obsolete code.
new 9985230 * 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.
new 110d155 * Implemented withs.
new 81de12b * Refactoring: move variable uses to a separate class.
new 267dc69 * Fix builtins.
new d39d3c6 * Implemented inherit.
new e41b582 * Better stats.
new 04c4bd3 * 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.
new 02c1dac * 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.)
new 497e4ad * Remove some redundant tests.
new 8ca4a00 * Improve sharing a bit.
new 8bb0210 * _combineChannels shouldn't be an integer.
new 5c31995 * Updated some more primops.
new b7ff69e * Refactoring: move the user environment stuff into its
own module.
new 55b5ddd * Added parsing of manifests in ATerm format.
new efc7a57 * Don't use the ATerm library for parsing/printing .drv
files.
new f3b8833 * Drop the dependency on the ATerm library.
new d66ea83 * Sync with the trunk.
new fe2d869 * Store user environment manifests as a Nix expression in
$out/manifest.nix rather than as an ATerm.
new 0777448 * Fixed builtins.genericClosure.
new cae4efd * Because --parse-only no longer produces an ATerm, don't
check the output. Whether it parses at all should be enough.
new 6f0f164 * Fix the interpretation of ''\<character> in indented
strings.
new 7148df7 * Update the expected test output (no longer an ATerm).
new 6bbfe95 * 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%).
new 2d76365 * String equality tests should take the context into
account. All the evaluation test cases now succeed.
new ebade9f * 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.)
new ee0384f
new 0bc468f * Simplify the implementation of `with'. This gives a 7%
speedup in evaluating the NixOS system configuration.
new 2be6118 * Don't need the test program anymore.
new d77331d Fixing a typo in the nix-store manual, that could confuse
a bit too much (--delete/--gc)
new 2398af1 * Add an command `nix-store --query-failed-paths' to list
the cached failed paths (when using the `build-cache-failure' option).
new 6199f9b * 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.
new ef337f7
new c778ed1 * Fix the copy-from-other-stores substituter.
new c82782f
new 7fa338f * Don't use smart quotes where normal ASCII quotes are
intended. Actually, don't use quotes at all. (Reported by Howard B. Golden.)
new 4bab25a buildenv: Special-case Python's `easy-install.pth' files.
new f92c9a0 * Allow unprivileged users to do `nix-store
--clear-failed-paths' and `nix-store --query-failed-paths'.
new a0e3b84 * Revert r15436. This was a workaround for a bug in
btrfs which seems to have been fixed now.
new 4750065 buildenv: Special-case Python's `site.py' and `site.pyc'.
new 84ce7ac * 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.
new e2d5e40 * Keep track of the source positions of attributes.
new 83d7b89 * Updated addErrorContext.
new 01e58ad * Store position info for inherited attributes.
new 83dfa89 * Sync with the trunk.
new 1a8eb6e
new 81a4b4e * Implemented tryEval, the last missing primop in the
fast-eval branch. Also added a test for tryEval.
new bd25ac2 * Print attributes in sorted order.
new 8032f26 * Merged the `fast-eval' branch.
new aa45027 * Sync with the trunk.
new b2235d8 * Restore the __overrides feature that was lost somewhere
in the fast-eval branch.
new 32539e4 * Sync with trunk.
new 93cd5a4 * The << operator on values should be const.
new b92a2e5 * Sync with the trunk.
new 7343e6c * Remove an accidentally committed debug statement.
new da52f8b Comment out dead code in `nix-store'.
new 8bcdd36 Add XML output to `nix-store'.
new a443c75 * Hack to allow derivations to disable chroot builds by
setting the attribute "__noChroot = true" (requested by Rob).
new 89865da * Turn build errors during evaluation into EvalErrors.
new 1ab67cf
new 07ca66c * Applied a patch from David Brown to prevent `nix-store
--optimise' from failing on rename() on BtrFS.
new d1f6c0c * Replacing ValidPath rows doesn't work because it causes
a constraint violation of the Refs table. So don't do that.
new f16fe2a * builtins.toXML: propagate the string context. This is
a regression from the old ATerm-based evaluator.
new b571891 * In importPath() and exportPath(), lock the temporary
directory to prevent it from being deleted by the garbage collector.
new bf87cc4 * Sync with the trunk.
new 3e5e0fa * 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.
new 819548d * Pass `--fallback' to the remote build to ignore failing
substituters.
new 87ef590 * Sync.
new 8b7f8b5 Added support for passing an (impure) NIX_BUILD_CORES
variable to build expressions.
new 560ab22 * Ignore packages that don't have a version. * Work on a
manifest instead of a channel directory.
new a17071f Include <cstring> to ensure that strcpy(), strlen(), and
memset() are declared.
new bcec460 src/libutil/util.cc: include <limit.h> to ensure that
PATH_MAX is defined
new 4c21c01 configure.ac: make flex and bison required programs
new d63375d configure.ac: Incredibly enough, tr(1) on Solaris doesn't
understand A-Z syntax for ranges.
new af09fe1 Fix build of bsdiff-4.3 on machines that don't have
<err.h>, such as Solaris.
new a0d2904 Revert "configure.ac: make flex and bison required
programs"
new 60b632b tests/build-hook.hook.sh: prefer more portable `...`
syntax over $(...) for running sub-shells
new 7e043d2 src/bsdiff-4.3/Makefile.am: include the 'compat-include'
directory in distribution tarballs
new 532d766 * Don't barf if the source NAR for a patch has
disappeared.
new 7af6a2f * intersectAttrs: optimise for the case where the second
set is larger than the first set. (That's usually the case with callPackage.)
new 6d6200f * Optimisation in the // operator: if one of the sets is
empty, return the other set.
new 315d8fb * 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.
new 7f893b7 * 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:
new 750be19 * Remove "auto" and "guess" as synonyms for 0 in the
handling of build-cores and --cores. They're superfluous and just complicate
the parsing.
new fd9c77d * 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:
new 587dc8a * Sync with the trunk.
new d7875d1 * Use SQLite 3.7.0.1.
new 5f9aad4 * nix-build: recognise --cores.
new 6846ed8 * Make --cores work when building through the Nix daemon.
new 5c5ab2b * 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.
new 5fb824e * Urgh, this was supposed to go in the trunk...
new 12721a3 * Nix 0.16 release notes.
new 8ec6594 * Remove the "tarball" jobset argument.
new b75e104 * Typo.
new 86f65ed * Document --cores in the manual.
new 2de17f4 * Update date.
new ed133e6 * rpmBuild already includes the disk image in the output
name.
new 2c8e070 * Bump the version number.
new c67eccc * nix-build: pass --cores.
new 955d11a * Sync with the trunk.
new f58f51f * Handle the unlikely case where a derivation has no
dependencies at all.
new 034f608 * Don't complain if the stored hash of a path is zero
(unknown).
new 1e5f5ea * 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.
new 95deba5 * 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.
new 1a396f3 * Don't call "cat".
new e437b08 * 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.
new e41ecbf
new df50916 * Oops - "null" was displayed as "true".
new 766f708 * Experimental feature: allow a derivation to tell the
build hook that it requires a certain feature on the build machine, e.g.
new 20acd43 * Disable the GC reachability check for now (when
creating new roots), as it's hopelessly inefficient.
new 80e7222 * 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.
new e2e168f `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.
new bf0dde9 * 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.
new e490741 * 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.'
new 923736d * Doh. Remove debug message.
new 4aa9245 * Hack needed for GCC 4.3.2 on OpenSolaris.
new 450837b * 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.
new 71dfe4b * Sync with the trunk.
new bfa6ee7 * 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.
new 36a23e8 * "type -P" isn't portable.
new 95f4f2c * If std::tr1::unordered_set is unavailable, use std::set.
new 705868a * 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.
new 7119d38 * In the referrers test, lower the nesting depth from
2500 to 1000 to prevent hitting a stack overflow bug in the garbage collector.
new 8dadced nix manual: fix 'install' -> 'uninstall' in garbage
collection section of introduction
new 64fd298 * 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.
new b0c11cd * Evaluator garbage collection branch.
new e879a03 * Use the Boehm garbage collector to reclaim unused
memory in the Nix expression evaluator.
new 76feaf0 * Keep some more stats.
new 64c3325 * Make building against the Boehm GC a configure option.
new 41c45a9 * 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.
new cf7e645 * Regression test for __overrides.
new 4dee289 * 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.
new 3f66cfb * Remove allocValues().
new 8ac0672 * 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.
new b2ba621 * Optimise string constants by putting them in the symbol
table.
new 02934b1 * Regression test for listToAttr's behaviour if an
attribute name occurs multiple times.
new a247d20 * Fix compiling without Boehm. * Fix the stats.
new 0b305c5 * 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.)
new 2dc6d50 * 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).
new e0b7fb8 * 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.
new 4353549 * When allocating an attribute set, reserve enough space
for all elements. This prevents the vector from having to resize itself.
new 11ccd44 * We need Bison 2.4 now.
new 8a788e3 * Install config.h.
new e11e6fb * Handle out of memory condition.
new 0c4828e * new(UseGC) is inexplicably slower than GC_MALLOC, so
prefer the latter.
new 14fbf85 * Set libgc's initial heap size to 384 MiB to prevent
garbage collection in most cases (and therefore its performance overhead).
new 3d71c80 * Use pkgconfig to locate the Boehm GC (as suggested by
Ludo), if --enable-gc is given.
new 26def53 * Document Boehm GC support.
new 4aced7f * Merge the GC branch.
new fb9368b * Sync with the trunk.
new a3883cb * 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.
new 1db6259 * Implement RemoteStore::queryPathInfo().
new e60c962 * Add an operation `nix-store -q --size'.
new 5693b8a * nix-push: no need to compute the NAR hash, since the
Nix database already has it (`nix-store -q --hash').
new 06699d4 * Store the NAR size in the manifest.
new bdf089f * Before a build, show the disk space that the downloaded
store paths will approximately require.
new 1e24cba * Fix the test.
new bf658f0 * Test that download sizes are shown correctly.
new a07c68f * Finally, a test for the binary patch functionality.
new f69626e
new 3d38a49 * In the download size indication, take binary patches
into account. Hopefully this doesn't slow things down too much.
new a4f0365 * 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).
new 1a211d8 * Oops.
new d92ccbf * Test whether sequences of patches work.
new 812fae4 * DrvInfo contains pointers to expressions, so DrvInfos
should be traced by the garbage collector. Otherwise "nix-env -u" can crash
randomly.
new 703e5a2 * Sync with the trunk.
new bd48fd9 * 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.
new 9737a7e * Don't generate patches if the system type differs.
new d3bba0c * Move the patch generator into a module.
new 77f7a6d * 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.
new f42a505 * Add a script `nix-generate-patches'. * Fix the binary
patching test.
new 365f302 * Use CamelCase for the Perl modules.
new de79d23 * 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.
new 8062d3a * `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.
new 7d0444e * Bad things happen when a filehandle has the same name
as a module.
new e4720b1 * Ignore the result of sqlite3_reset().
new 4d57776 * Use SQLite 3.7.4.
new 542fc69 * When doing a query (e.g. `nix-store -r --dry-run'),
don't make a lot of expensive calls to `nix-store --check-validity'.
new d7ca6f4 * Update some comments.
new 100becf * createDirs(path): if path already exists, make sure
it's a directory. * Provide a C++ wrapper around lstat().
new 5833243 * Create /nix/var/nix/db if it's missing.
new d787285 * 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.
new 3dd0258 * I forgot to catch SQLiteBusy in registerValidPaths().
So registerValidPaths() now handles busy errors and registerValidPath() is
simply a wrapper around it.
new f1a6b97 * 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.)
new a0be433 * Disable X11 forwarding, it's not needed.
new eac93d6 * Use the right `make'.
new b1eb252 * Propagate the "100" exit status for failed builds
through the Nix daemon.
new c931a7a * Do a short sleep after SQLITE_BUSY.
new d6c8b99 * 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.
new 9db190e * builtins.substring: if "start" is beyond the end of the
string, return the empty string.
new 3854fc9 Remove useless <config.h> inclusion from public header.
new aeae0be * Clang compatibility fix. Clang actually checks
template definitions when they are defined
new 0304fda * Propagate the CC setting.
new c0340ee
new 5439885 * Sync with the trunk.
new d0eda1f * Merged the SQLite branch.
new 7bba67c * Remove obsolete file.
new eb94581 * Remove obsolete directory.
new 3087b3f * Obsolete.
new d159ea1 * Urgh, FreeBSD doesn't have a "seq" command.
new dfc4117 * The GC library can't be found on Solaris
(http://hydra.nixos.org/build/890714), so don't build with GC support for now.
new 1876ab7 * A better fix. $boehmgc isn't set anywhere, we should
use the flags returned by pkg-config.
new f1462c2 Use $BDW_GC_LIBS instead of a custom variable.
new 5a6b039 * Don't call GC_expand_hp unless we're actually using the
garbage collector.
new 538b7ca * 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.
new 8fcaf3e make nix-mode provide 'nix-mode
new c3cee53 * Build for Ubuntu 10.04.
new e945b52 * nix-push: handle the case where the hash is not set in
the DB.
new 802c265
new 48bdbbf * Fix a bug in the documentation (reported by Olexiy
Buyanskyy, Nix/215).
new 0423d06 * Print a better error message.
new 1e7e4f2 * Remove the localPaths feature in manifests since it's
no longer used and redundant anyway.
new 5591fcc * 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.
new b1882c3 * Create $manifestDir if it doesn't exist.
new 83252b4 * 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).
new 3cbf680 * 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.
new b2c11b9
new 08c8971 * Lock the database during updates.
new 412914d * 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.
new 4ba6afa * `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'.
new 8c69dac * Handle error messages from the Nix worker containing
the `%' character. (Nix/216)
new d94cb02 * 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.
new 4891b21 * Use SQLite 3.7.6.2.
new e4d8148
new 9c99aa2
new 5c9e9f7 Add support for the `build-timeout' and `--timeout'
options.
new 1ea6e06 doc: Fix typo.
new 34f4b91
new 5637037 * 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’.
new 5580f38 * Test case.
new 2b9e29b * Change the right-hand side of the ‘.’ operator from an
attribute to an attribute path. This is a refactoring to support default
values.
new 0a623a1 * Allow a default value in attribute selection by writing
new e649f31 * 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.
new d5d4dcd * Allow attribute names to be strings. Based on the
allow-arbitrary-strinsg-in-names patch by Marc Weber.
new d9a5959 * Show the default for --with-store-dir (Nix/211).
new d329c3e * Support multiple outputs. A derivation can declare
multiple outputs by setting the ‘outputs’ attribute. For example:
new 0243eea * Create a symlink to /nix/var/nix/manifests in
/nix/var/nix/gcroots if it doesn't exist.
new 4bdb51e * Refactoring.
new d2bfe1b * 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.
new b2027f7 * 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 wa [...]
new c860666 * Don't allow derivations with fixed and non-fixed
outputs.
new 54945a2 * Refactoring: move parseExprFromFile() and
parseExprFromString() into the EvalState class.
new 1ecc97b * Add a Nix expression search path feature. Paths
between angle brackets, e.g.
new 1578b22 * Add lang/dir* to the distribution.
new c7101da * Allow redirections in search path entries. E.g. if you
have a directory
new 07340b8 * 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).
new 00a724e * Remove a debug statement.
new 9d091ee * Handle the case where the search path element is a
regular file.
new 510033e * Handle <path> syntax.
new 2d663b5 * 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.
new d374be5 * Add DBD-SQLite as a dependency to the Debian/Ubuntu
builds. * Drop some old Fedora/Debian/Ubuntu releases.
new 76e0029 * Add perl-DBD-SQLite as a dependency of the RPM builds.
new da18b11 * On FreeBSD, ‘touch’ is not in the test $PATH, so don't
use it.
new a95ba4c * 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).
new 5bcdc7e * Update the cleanup script.
new 93227ff * Eliminate all uses of the global variable ‘store’ from
libstore. This should also fix:
new 82710f9 * Add some -f flags, never hurts.
new e6cb3d0 * 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.
new 281e3ed bootstrap: Simplify & make more robust.
new 13114da * Ouch. A store upgrade could cause a substituter to be
triggered, causing a deadlock.
new 0b34e57 Create a branch for me to play around with finishing off
the multiple outputs implementation
new c172d16 First attempt at the output-as-derivation semantics
new 8f28a3b Add a test for multiple outputs
new f3e410d Add a currentOutput attribute to derivations keep track
of which output is active
new ffa038f Add an sCurrentOutput member to EvalState
new bf50d6a Add information about which output is active to drvPath's
context
new e81c09e Remove the current output metadata from the string for
unsaveDiscardOutputDependency
new 55481c4 * Don't assume that we want a shared Nix store.
new 6c38cc9 Ignore everything created during build
new bffe35a Update gitignore
new 73fe687 * Include the Nix Perl bindings in Nix itself. This will
allow the bindings to be used in Nix's own Perl scripts.
new 659c427 * Hopefully perl-devel contains the required headers
(untested).
new 6fcdbca * Install NixManifest.pm, NixConfig.pm and
GeneratePatches.pm under the Nix:: namespace.
new cd6d02c
new 8af7d76 * Refactoring: remove unnecessary variables from the
tests.
new 5090c34 * Set the executable bit on scripts.
new a2a317e * Distribute GeneratePatches.pm.
new 5193db0 * Set svn:ignore.
new 7d314b8 * Work around a race condition starting the Nix daemon.
new c362e4d * Move SSH.pm.
new 2492914 * Move the remote building test from the NixOS tree to
the Nix tree.
new d43a148 * Add a test for nix-copy-closure.
new 6761757 * Use the Store API bindings in nix-copy-closure.
new f186a91 * nix-copy-closure: support ‘--dry-run’ and
‘--include-outputs’.
new 00b41e4 * Print a consistent message.
new a12095d * 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.
new 325b5a8 * Fix permission on /nix/store in the manual for
multi-user installs (reported by Silvio Frischknecht).
new d7b87be * The Nix configuration file is usually /etc/nix/nix.conf.
new daed9ae
new fa69ff5 * Fix the broken reference to bunzip2 in the channel
unpack script.
new a6a3f3a * Fix race condition in the test.
new 2721e9f Merge from trunk
new f883afa The nixinstantiate and nixstore env vars are no longer
set in common.sh
new 981edea The 'insert output between = signs' approach was not
helpful
new af2e53f Include all outputs of derivations in the closure of
explicitly-passed derivation paths
new 46876ff Fix stupid typo in multiple outputs test
new 3522730 Embed output name into the context of the *OutPath
attributes and extract it for input derivations
new 24b6593 Remove the unused sCurrentOutput symbol
new ca0d47a Respect all outputs passed to the derivation, not just
the last one
new 2ab29be Fix faulty reversion of my changes to
unsafeDiscardOutputDependency
new 3c3107d There's no need to mess with drvPath at all
new c0b7062 * 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.
new a595240 * 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.
new 63ee5e4 * Remove obsolete line.
new d7d7910 * 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.
new f8e609c * 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).
new 45ec69c configure: Rely on `AC_CANONICAL_HOST' to determine the
Nix system name.
new 42164d6 configure: Change i*86 to i686 as has always been done.
new b92f763 * 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".
new 964399c * "sed" on FreeBSD doesn't know the "+" operator.
new a6abade * Escape the [ and ] characters in the sed call,
otherwise autoconf will eat them.
new 23e933b * Put back the "sys_name" variable which got removed
somewhere. This broke building on Cygwin and Solaris.
new 4de3e2a * Doh.
new 4e1ea17 nix: add /etc/hosts with localhost entry to chroot builds.
new 993fa94 * 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.
new ab20af3 * build-remote.pl: drop a hard-coded reference to
/nix/etc/nix.
new 5bbd693 * 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 o [...]
new d5ac78e * Add bzip2 and xz support to nix-copy-closure.
new 10e2b2b * Document the --include-outputs option.
new f3bc98b
new 7840831 * Fix race.
new 1df120c * Get rid of the shell in ssh calls.
new 216440b * For consistency with "nix-store -q --hash", produce
hashes in base-32. (This affects Hydra manifests.)
new b1eb8f4 * Get rid of some superfluous error messages if a
substituter fails. * Say "fetch" instead of "substitute".
new 1749a7b * download-using-manifests: use the Perl bindings.
new 4d0407b * Fix make check.
new f35c435 * Don't require a specific Perl version.
new 3c7ec8f doc/manual/nix-env.xml: stripped trailing whitespace
new be9be4c doc/manual/nix-env.xml: fixed "nix-env -qaA" typo
new 24f863d * 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.
new 23c38a0 * Slight improvement.
new b12b218 * Allow '<nixexpr>' syntax to be used in nix-instantiate,
nix-build and nix-env, e.g.,
new 49f59dc * Move parseHash16or32 into libutil, and use in nix-hash.
new 92d6a5e * Add some more functions to the Perl bindings.
new 3964d95 * nix-prefetch-url: rewritten in Perl.
new 000160f * In ‘nix-store --verify --check-contents’, repair
missing hashes rather than complain about them.
new c8c0380 * Remove unnecessary quotes. showPaths() already adds
quotes.
new 23bf700 * Oops, the daemon test wasn't actually using the daemon.
new 893cac1 * Remove the terminate handler, which was only really
needed because of Berkeley DB (see r8632).
new 3a48282 * Buffer writes in FdSink. This significantly reduces
the number of system calls / context switches when dumping a NAR and in the
worker protocol.
new a3e0656 * 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).
new a67b8ae * Typo.
new 5a1b9ed * 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).
new 78598d0 * Clean up exception handling.
new e0bd307 * 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.
new 8d3dfa2 * Avoid expensive conversions from char arrays to STL
strings.
new 273b288 * 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.
new 194d21f * Sync with the trunk.
new b536381 * Fix the build.
new 46e42c9 * Refactor a bit so that more tests can be added.
new 1f3b0ed * 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>".
new edd9359 * Doing a GC after building a derivation with cyclic
outputs currently segfaults.
new 3877619 * Add some accidentally committed files.
new 179409b * Add a test for referring to another derivation's
‘drvPath’. This currently fails in read-only mode.
new 4be5a2c * Add a test for unsafeDiscardOutputDependency. Not
really related to multiple outputs, but good to have anyway.
new b19a0f6 * Simplify the context handling logic.
new f3c88f2 Detect and reject mutually-referential outputs
new b4cee3f Revert previous commit
new f8e54b7 Make the reference cycle in the cyclic outputs test
indirect
new 5679041 * 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.
new 69d6f09 * 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.
new 4d728bc * 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.
new 2aac7cd * Another case of lock file permissions being too liberal.
new 66c99b0 * ‘--disable-shared’ is no longer supported. Fortunately
it's not needed for the coverage analysis.
new 58d9743 * Drop unnecessary call to canonPath() (nixStore is
already canonical).
new b33da59 * 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.
new 524fa8a * Oops.
new 8c42a8c * Make sure that lock files are cleaned up properly when
building through the build hook.
new 254b339 * Sync with the trunk.
new ed11b17 * Fix doc error.
new b1004f4 * Reject a build if there is a cycle among the outputs.
This is necessary because existing code assumes that the references graph is
acyclic.
new 6f5e332 * Move topoSortPaths() out of gc.cc.
new a71d024 * Oops.
new 93b56ac * Support multiple outputs in nix-store (specifically the
‘--query’ and ‘--realise’ actions).
new f2d65c9 * Remove a redundant dot (Nicolas Pierron).
new 93e71e6 * Follow our own coding conventions.
new 48cea0d * 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.
new dadbb51 * Use Nix::Config.
new 39d45a6 * Add a test for nix-channel. * Refactor the nix-channel
unpacker a bit.
new 9b7df1e * Forgot to add.
new 63227d4 * FreeBSD tar defaults to the tape device instead of
stdout.
new 502d940 * Ignore missing manifest symlinks.
new 6c31232 * Sync with the trunk.
new 921111d * Move the implementation of the ‘derivation’ primop into
a separate file.
new 71f3c46 * Drop the inefficient "Path" suffix in output attribute
names.
new 83647f4 * 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.
new b79b85a * 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.
new a0477a4 * currentOutput -> outputName. "current" implies some
temporal aspect.
new 9d43a02 * Let --disable-gc work.
new 9936da6 * Check whether the outputName attribute works.
new adaf64a * 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.
new 35f2a6b * 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.
new b52966e * Remove dead code.
new a7366a7 * 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.
new d4e6b9f * Doh!
new 9fe24c5 * Don't create thunks for simple constants (integers,
strings, paths) and allocate them only once. * Move Value and related
functions into value.hh.
new f86fca9 * Figure out the extension of dynamic libraries; don't
hard-code .so.
new c5d9ccd perl: Build libNixStore.la with `-module'.
new 6245f0d tests: Run `download-using-manifests' via libtool so that
dlopening works.
new 7ae763e * ‘-module’ causes the generated library to have an .so
extension on Mac OS X instead of .dylib, so don't do that.
new 2a3f411 * 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.
new 4e62484 * 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.
new 02f1363 * 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:
new ddd0ce5 * Don't distribute Store.cc, it's generated automatically
by xsubpp.
new 126c731 * Add a test case for comparing derivations.
new 18047d4 * Add some debug output to print the derivation name once
it's known. This makes it easier to pinpoint the source of a crash.
new 330df4b * Allow comparisons between derivations by comparing the
outPath attributes.
new 4c9fdd2 * Add a test for importing derivations.
new baa0501 * Fix importing a derivation. This gave a segfault.
new ce86a9a * 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.
new 2bda12e * Print elapsed evaluation time.
new f491ae9 * 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).
new 67444f5 * Build Nix for the latest Fedora and Ubuntu releases
(and drop some old ones).
new fb95455 Set the versionSuffix to include the Git shortrev
new 4055a3b Remove empty ChangeLog file
new ec2827f Update .gitignore
new d5a5a83 Use data() instead of c_str() where appropriate
new e9fc91d Fix error message
new 58ac7a1 Don't use deletePath() to delete a single file
new 5e57047 Fix a broken guard around utime()
new bd013b6 On Linux, make the Nix store really read-only by using
the immutable bit
new 6fe13e6 Fix chroots builds
new 1c94524 Fix an uninitialised variable
new 8afd28a Remove dependency on sqlite3_table_column_metadata
new 56042a1 build-remote.pl: don't wait forever for the upload lock
new 2b4964f Restore progress indication during nix-copy-closure
new 1d487dc nix-worker: put the pid of the caller in argv[1]
new 7b22bec Don't leak a file descriptor in commonChildInit()
new 35355fc Set the close-on-exec flag on file descriptors
new d645633 nix-copy-closure: don't print copied path on stdout
new 605b16c Fix compilation on FreeBSD
new 005d1e4 Update bzip2 dependency
new b461721 Fix tests
new bd50c01 Ensure that Perl processes delete their entry in the
temproots directory
new 2e0322e Clean up when building from a working tree
new b006a31 Drop the externals directory
new 4b23900 Fix the optional dependency on OpenSSL
new ea402a2 Replace "make check" with "make installcheck"
new 7f38087 Add a command "nix-build --run-env" to reproduce the
environment of a derivation
new 4b83483 Fix the RPM
new 457dd55 Fix the Deb builds
new cb79e91 Fix the coverage build
new 19d9762 nix-store --clear-failed-paths: Clear derivation outputs
new 25de80e Adding a nix option to sync before registering a path,
for non-ext* filesystems.
new 85799bf Fixing the default of sync-before-registering
new 8be1979 Remove the --max-links GC option
new 117670b Make the garbage collector more concurrent
new 480dda0 Delete non-directory valid paths right away
new 446b827 Mac OS X fix
new 3e94fff Allow the command executed by "nix-build --run-env" to be
overriden with --command
new 5144abe Add an option "--exclude" to filter dependencies in
"nix-build --run-env"
new b8fb0ce Update "nix-build --help"
new 0837348 Follow redirects when checking for the existence of
MANIFEST.bz2
new 34ea91b Include --keep-going in --help
new 3b859ea nix-generate-patches: Optionally write new patches to
$NIX_ALL_PATCHES
new f2467eb On Linux, pretend we're building on Linux 2.6
new 5a6d509 Add a missing DocBook source file to the tarball
new d49ef03 Update affiliation
new 998b977 Include common options in the manpages using some
XInclude hackery
new 5863987 Include environment variables in the manpages
new 831c7aa Documentation fix
new 533250a Fix building from the tarball
new 242a99c Nix is on github now
new 8f6146a Merge pull request #5 from shlevy/doc-fix
new 1fb30e6 Handle the case where $SHELL is not set
new 209927b Unconfuse Rob
new 00c98a6 Use Bison 2.5
new 055e803 Add the '--show-progress' flag to nix-copy-closure
new 34a85c5 nix-copy-closure: Move the progressViewer directly
adjacent to the ssh call so that network progress is what's measured
new 969a145 If "pv" is available at compile time, hard-code its path
new e855c7e nix-channel improvements
new ef90227 Remove unnecessary "system" argument
new ca3d9f8 Urgh, modified the wrong file...
new 1d0bafb Follow redirects early to ensure consistency between the
manifest and the tarball
new 0b5107c If the (redirected) channel URL contains a version
number, use it
new 31e34fc Close almost all file descriptors in the builder
new 154aa7f Set a few more close-on-exec flags
new 1132dd2 Fix obscure race condition in GC root creation
new 8cf1719 Hack to prevent accumulation of old manifests
new 8745fad Added utility command ‘nix-instantiate --find-file’ to
look up a file in Nix's search path
new 9cd3ff1 nix-instantiate: default to "default.nix" if no arguments
are given
new 259c6d3 Fix URL set by nix-channel
new 6387830 Merge pull request #2 from viric/master
new 6de5d53 Fix a warning in the build hook about $progressViewer
new c722193 Don't use the build hook for unpacking channels
new 46cdc6a Handle EPERM when creating a hard link for the chroot
new 82ae0e6 Update the documentation of build-remote.pl
new 59a2636 Support mandatory system features in the build hook
new db5b86e * 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.
new e145ac3 Do "make installcheck" for Debian builds
new e19fb7e Do "make installcheck" for RPM builds
new e060c99 Use mkpath instead of make_path
new d03a295 Require SQLite >= 3.6.19
new 373e875 Don't build for old Fedora releases that don't have a
sufficiently new SQLite
new 56c82f3 Don't build for old Debian/Ubuntu releases that don't
have a sufficiently new SQLite
new c6acb21 Drop the Perl-specific CFLAGS
new 4640893 Fix some 32-bit builds
new 147f101 Now *really* prevent accumulation of old manifests
new afa7b8a nix-channel --update: allow updating only the specified
channels
new 0c4c8f7 Remove obsolete files (moved to release tree)
new a58efdb Update the release notes
new 7a213ff Document $NIX_PATH / -I
new cb1248d Document some nix-store subcommands
new 663c06e Disable building in chroot for Nix's corepkgs
new cda1fd8 Remove an obsolete hack
new 6a7b24a Document "nix-store --add"
new 4f7bab7 Support building with the Perl XS bindings disabled
new 4d383f5 Document "nix-build --run-env"
new 37fa479 Build Ubuntu 12.04 packages
new 58d1de0 Use perl.libPrefix to (hopefully) fix the Cygwin build
new 2b00e69 CSS tweaks
new 8a08813 Manual updates
new 587b408 Set release date
new dfc6a43 Fix the install check
new cac9eb3 Bump version number
new e071f87 Add an experimental nix-make file
new 591aab7 Remove $FONTCONFIG_FILE hack from nix-profile.sh
new 6814b1d Generate binary tarballs for installing Nix
new 0301525 Fix owner/group in tar invocation
new 8058dab Clean up the installation section; document the generic
binary tarballs
new 2c26985 Add option ‘build-keep-log’ to enable/disable writing of
build logs
new 4bc4da3 Reserve some disk space for the garbage collector
new 881beb1 "nix-store -l": support compressed logs
new f5398d3 Compress build logs on the fly using bzip2
new e545a7f - replace %define with %global
new d030807 - only enable deprecated spec sections when building on
systems with older RPM versions - move tests to dedicated %check section - use
standard build macros
new 6a214f3 Update nix profile: - incorporate NixOS's configuration
so that nix is usable by normal users - install as a data file, not a program
file
new 8922346 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
new a7ed1f6 On systems with SystemD, install the service descriptor
for nix-worker, and enable and start it
new 221626e fixes to nix-worker systemd service descriptor: - remove
commented-out lines - register the file for distribution in Makefile.am
new 02fb632 Add Emacs to the disk image
new 2f3f413 Support socket-based, on-demand activation of the Nix
daemon with systemd
new df716c9 In chroot builds, use a private network namespace
new 7ffa523 In chroot builds, use a private SysV IPC namespace
new 723a68c Improve error message
new 8da6772 Update release notes
new 5489086 Use a private UTS namespace to provide a deterministic
host/domain name to builders
new 1db38ae When using chroots, use a private PID namespace
new 3ee2085 Check the return code of the clone() call
new 42f5a2f Mount an empty /dev/shm tmpfs in the chroot
new 1aba0bf nix-store -r: do substitutions in parallel
new 49cd738 nix-push: create a manifest-less binary cache
new 4911a10 Use XZ compression in binary caches
new 91b8814 Doh
new 37f7098 First attempt at the manifest-less substituter
new 000132c nix-push: Don't pollute the current directory with result
symlink
new f4190c3 Allow both bzip2 and xz compression
new 440adfb Add an environment variable $NIX_BINARY_CACHES specifying
URLs of binary caches
new 6b1e671 Fix xz compression
new 6ec7460 Binary caches: use a better key
new cf49472 nix-push: Always generate base-32 hashes
new 8319b1a download-from-binary-cache: Verify NAR hashes
new d694c59 download-from-binary-cache: cache binary cache info in a
SQLite DB
new 2a8e5c8 download-from-binary-cache: strip trailing / from URLs
new 89380c0 download-from-binary-cache: in queries, preferred cached
info
new ae60643 download-from-binary-cache: do negative NAR info caching
new cd94665 download-from-binary-cache: use WWW::Curl
new 11800e6 download-from-binary-cache: parallelise fetching of NAR
info files
new 400e556 Cleanup
new 425cc61 build.cc: Don't use hasSubstitute()
new 98a423b prim_import(): prefetch substitute info in parallel using
queryMissing()
new 0991254 download-from-binary-cache: add nix.conf options
new 5755a5c Install a nix.conf manpage
new 087dee6 Get rid of nix.conf.example
new a560124 Fix RPM builds
new ae72be1 Add WWW::Curl as a dependency
new 27f0c34 Really fix RPM builds
new c4df747 Resurrect old corepkgs fetchurl
new 40c01ec corepkgs/config.nix.in: We'll need curl
new 6450f56 Move fetchurl files out of their subdirectory
new fd2630e Remove old fetchurl makefile
new 9d94a28 The fetchurl builder is now fetchurl.sh
new a994eb9 corepkgs/fetchurl.sh: Use config.nix's curl
new f863673 corepkgs/fetchurl: Call the shell directly instead of
using the shebang
new 543bf74 corepkgs: distribute fetchurl files
new 53f52c2 corepkgs/fetchurl: the 'system' argument can be optional
new a2865f6 corepkgs/fetchurl: Build locally and outside of the chroot
new 035aa11 Remove obsolete comment
new 51f9f99 Add a test for the fetchurl function
new 2dd3117 Inline fetchurl.sh
new eae8024 Pass --insecure to curl so that https works
new 5ee8944 Cleanup
new 6586414 nix-env: Determine which paths have substitutes in
parallel
new eb3036d Implement querySubstitutablePathInfos() in the daemon
new 667d5f1 Rename queryValidPaths() to queryAllValidPaths()
new 58ef4d9 Add a function queryValidPaths()
new 09a6321 Replace hasSubstitutes() with querySubstitutablePaths()
new b74d927 download-from-binary-cache: Use HEAD requests if possible
new d287b62 Set the User-Agent header to "Nix/<version>"
new 15c15da Add some missing --version switches
new f2bdc87 Update the other substituters
new e4d6bcb Update release notes
new 04559a0 Merge branch 'master' of github.com:NixOS/nix into
no-manifests
new a7a43ad builtins.storePath: resolve symlinks
new 53b24f3 Allow disabling log compression
new 6c01fb4 Update Nix 1.1 release notes
new 51d71ad Manual: Don't claim we support Cygwin
new 1217204 Remove dead code
new 3a9fdf2 Return an exit code of 100 for cached failed builds
new a6f3485 Print some debug output
new 220818f queryPathInfo(): return hash in base-32 if desired
new ccc52ad Add function queryPathFromHashPart()
new fe241ec Merge branch 'master' into no-manifests
new aa115e2 download-from-binary-cache: Print correct URL
new 58337e0 Set release date
new b7fd2c2 Use "#pragma once" to prevent repeated header file
inclusion
new 98193bb Remove RPM builds that don't evaluate
new 1832ab7 Bump version
new 6852289 Use lutimes() if available to canonicalise the timestamp
of symlinks
new ed59bf7 nix-build: Support the ‘-’ argument to build an
expression from stdin
new 564fb7d optimiseStore(): Use a content-addressed file store in
/nix/store/.links
new 6193105 Automatically optimise the Nix store when a new path is
added
new 680ab6f Garbage collect unused links in /nix/store/.links
new 0f65793 Add a test for Nix store optimisation
new fd63c8b Unlink the right file
new e98c029 Handle platforms that don't support linking to a symlink
new 566a30c Disable tests temporarily
new b1112bb import: If the path is a valid .drv file, parse it and
generate a derivation attrset.
new 1ef2d57 Turn tests back on
new f5954e2 prim_import: When importing .drvs, allocate the
intermediate attrset on the heap just in case it escapes the stack frame.
new 477b0fb Subscribe to the Nixpkgs rather than NixOS channel
new 2605f4f nix-profile.sh: Don't set NIX_REMOTE on single user
installations
new 3a4623a Set permissions on temporary build directories to 0700
new 8c79100 Merge branch 'master' into no-manifests
new dbce685 Add some .gitignore entries
new 7892ad1 download-from-binary-cache: Support file://
new 7861260 Clear NIX_STORE when running the tests
new 609586a Add a test for the binary cache substituter
new e3ce54c nix-push: Remove the upload feature
new 50395b7 Fix the substituter tests
new 67c6f3e nix-push: Support generating a manifest again
new 7f8e805 download-from-binary-cache: Only use the default cache
for /nix/store
new b4ea832 Remove trailing whitespace / tabs
new 3a8f841 download-using-manifests: Don't use nix-prefetch-url
new fbf59d9 Remove more tabs
new 73acb8b Let build.cc verify the expected hash of a substituter's
output
new e6ab52c Test "nix-env -qas" with the binary cache substituter
new 6ecf4f1 Use "set -x" in the tests to see where a test fails
new 66a3ac6 Allow a binary cache to declare that it doesn't support
"nix-env -qas"
new f15083c Document the --option flag
new 6183cf2 Fix whitespace
new f9613da Remove unused variables
new d059bf4 Pass configuration settings to the substituters
new ab42bf1 nix-install-package: Support binary caches
new 9de6d10 Get rid of $NIX_BINARY_CACHES
new f3eb29c Fix the test
new 9cd63d2 Do some validation of URLs
new d50d7a2 Whitespace
new 97421eb Refactor settings processing
new 1571700 Manual: Remove reference to non-existent -I option
new 89a8207 Add an option ‘build-fallback’ (equivalent to the
--fallback flag)
new 90d9c58 Pass all --option flags to the daemon
new eb7849e Prevent an injection attack in passing untrusted options
to substituters
new 4d1b64f Allow daemon users to override ‘binary-caches’
new c770a24 Report substituter errors to clients of the Nix daemon
new 8a25d78 download-from-binary-cache: Remove duplicate URLs
new 7b10562 Make ‘nix-store --optimise’ interruptible
new 234ce61 Doh
new afa7e01 Inline unpack-channel.sh
new 46f852c Use a GNU tar flag to shut up warnings about implausibly
old timestamp
new ca94b38 nix-env: Ignore manifest.nix when recursing into
~/.nix-defexpr
new 79bba37 Doh
new 5170c56 nix-channel: Use binary caches advertised by channels
new 9c2deca Merge branch 'master' into no-manifests
new 1df702d removeUnusedLinks(): Print stats on disk space saved by
hard linking
new 967d066 nix-store --gc: Make ‘--max-freed 0’ do the right thing
new 01d56c1 Drop the block count in the garbage collector
new 6763084 Count bytes freed deleting unused links
new 108e14b Fix race condition when two processes create the same
link in /nix/store/.links
new b6c989b Fix race condition when two processes create a hard link
to a file in .links
new d025142 Handle amount of disk space saved by hard linking being
negative
new 325d1cf Don't warn about maximum link count exceeded on 0-byte
files
new e827679 Add some basic profiling support to the evaluator
new 62f72eb Add some more evaluations stats
new 4ccd48c Add a "filter" primop
new b9e5b90 Provide an efficient implementation of ‘elem’
new 198d033 Add a primop ‘concatLists’
new 9c2d630 Add a primop ‘elemAt’ to get an element from a list
new 3e89ef5 Optimise concatenating a list to an empty list
new e5c589d Don't allocate empty lists
new 7671018 Avoid concatenating lists of one string
new 862c4c5 Fix 1755 permission on temporary directories left behind
by ‘-K’
new f0eab06 Don't bind-mount /proc since we mount our own
new 56e30e1 In the chroot, make all mounted filesystems private
new d950cfe Check if MS_PRIVATE is defined
new 4aa1e5c Receive reserveSpace before calling startWork()
new a9e6752 Include the output name in the GC root link
new e94806d Merge branch 'master' into no-manifests
new babe54b Add missing file
new 8b8fe61 Drop dependency on List::MoreUtils
new 8207359 Whitespace
new 2688fb7 Add perl-WWW-Curl to the RPM image
new cc86418 Add WWW::Curl to the RPM dependencies
new f3077fd Add libwww-curl-perl to the Debian/Ubuntu images
new cfd968d Fix stupid type error in calling std::max
new 9e2fc69 Disable the binary cache substituter by default for now
new 15e1b2c Merge branch 'no-manifests'
new f7b650d Make "nix-instantiate -" interruptible
new 360056e Document importing from a directory in the import
documentation
new d3004c7 Don't use -warning=no-timestamp unless we have GNU tar
new 295027f Include config.h before any other header
new a2785b7 Support building a derivation if some outputs are already
valid
new 9dbda2b Remove debug line
new 8cf6720 Support building a derivation if some outputs are already
valid (non-chroot case)
new 5e2ffd0 Fix "non-zero padding" error
new 1f7901e Test hash rewriting
new d4c3b63 Don't put results symlinks in the tests directory
new 6762424 Compatibility fix for WWW::Curl < 4.14
new 4ba4720 Fix test failure on Darwin
new 479e917 Build hook: Pass the timeout to the remote builder
new 4fca020 Handle gc-keep-outputs and gc-keep-derivations both
enabled
new e56f71e In startBuilder(), only print the new paths we're building
new 6c4ac29 Disable auto store optimisation for now
new b14717a Delete manifests in "nix-channel --remove" or when a
binary cache is available
new c845c0c nix-channel: Add option to force fetching of manifests
new 31114ec Fix the store optimisation test
new 2923b55 Delete paths in a component in topologically sorted order
new e6e4956 Vacuum the SQLite DB after running the garbage collector
new 8fbe96c RemoteStore::connectToDaemon(): Set close-on-exec flag
new e03a8a1 Doh
new 47ae3ce Put a time-to-live on negative binary cache lookups
new 54fe8e0 Remove double Fedora release suffix
new aac1422 nix-profile.sh: Revert to single-user version
new 1bda006 Add a test for nix-profile.sh
new 9fd9ded nix-env --delete-generations: Support --dry-run flag
new 983220b nix-collect-garbage: Support --dry-run
new 09eb230 Fix test
new b674665 Test whether GNU tar understands --warning=no-timestamp
new 00092b2 Keep build directory if not all expected outputs were
produced
new 76e8887 Templatise tokenizeString()
new b9124a5 Support having /nix/store as a read-only bind mount
new b9c2b4d Remove setting of the immutable bit
new 20582e9 Support xz compression in the download-using-manifests
substituter
new c1f9157 Style fix
new 28bf183 Include <sys/types.h> for off_t
new e464b02 Merge branch 'readonly-store'
new cb6651e Update release notes
new 0f358ca Document that Nix requires GNU Make
new d534f13 Make the store writable before creating /nix/store/.links
new f46612b Add "on Linux" qualifier
new 95c74ea Allow dashes in identifiers
new f406288 Print a more descriptive error message if setting up the
build environment fails
new e666e11 Handle octal escapes in /proc/self/mountinfo
new 9958bd6 Add operation ‘nix-store --repair-path’
new 8e3a7bd nix-store --verify: Add an option ‘--repair’ to repair
all missing/corrupt paths
new cf46f19 nix-store -r: Get rid of an unnecessary call to
buildPaths/ensurePaths
new 2001895 Add a --repair flag to ‘nix-store -r’ to repair
derivation outputs
new a3f205b When repairing a derivation, check and repair the entire
output closure
new a807edf Handle repairing paths that are in build-chroot-dirs
new 0a70845 Add a ‘--repair’ flag to nix-instantiate
new 2e90a5a nix-build: Support ‘--repair’ flag
new 2bbc4a2 nix-env: Support ‘--repair’ flag
new 9c41c66 Document ‘--repair’
new a562d54 When ‘--help’ is given, just run ‘man’ to show the manual
page
new 7586095 Remove bin2c
new 522ecab Drop support for running nix-worker in "slave" mode
new e35d6f7 Rename nix-worker to nix-daemon
new f766e14 Fix the test
new d1de836 Fix the tarball build
new 90b8a34 Fix regular expression
new 904f504 nix-store --verify: Continue on errors
new bfaa563 Manual: Don't use a store path that actually exists
new ad328be XML writer: flush after newlines
new 70f75be getDerivation(): Don't always quietly ignore assertion
failure
new ecedd9c Out-of-tree building of perl modules.
new e345182 Shorten the names of temporary build directories
new 600daf9 download-from-binary-cache: Remove duplicate entries in
trustedURLs
new ac238d6 Typo
new 167e36a nix-push: Only generate and copy a NAR if it doesn't
already exist
new c8daeba nix-push: Add ‘--link’ flag
new dde6486 nix-push: Add a flag ‘--manifest-path’ to write the
manifest to another directory
new 2980d1f prim_toPath: Actually make the string a path
new a28b444 nix-prefetch-url: Improve option handling
new 4c34d38 If hashes do not match, print them in base-32 for
SHA-1/SHA-256
new d0fc615 canonicalizePathMetaData: Fall-back to utimes if lutimes
fails due to ENOSYS
new df27db7 Fix "Not an ARRAY reference" error
new 620e92e Add an option ‘use-binary-caches’
new 82951e5 nix-push: Handle pushing a symlink
new 3a95e1a Update nix-push manpage and document the binary cache
format
new bbc107e Process binary caches in order of priority
new e28b683 download-from-binary-cache: Try next cache if downloading
a NAR fails
new c31ebc5 Update release notes
new a9a8baa Use a shorter Nixpkgs channel URL
new 91ef4d9 Remove unnecessary call to closeMostFDs()
new f581ce0 Don't start copy-from-other-stores if $NIX_OTHER_STORES
is unset
new 8816432 Fix a segfault when auto-calling a "address@hidden"
function
new 182e15b Manual: Don't use a store path in our closure
new 4c9e3fa Remove a Darwin hack that should no longer be needed
new 10dcee9 Remove the quickExit function
new 198dbe7 Remove some redundant close() calls
new 48c19c4 Remove definition of non-existant function
new ea89df2 Use vfork() instead of fork() if available
new 3acc8ad Add some debug code
new 8541d27 Don't use std::cerr in a few places
new f794465 Disable use of vfork()
new 17dc306 Revert "prim_toPath: Actually make the string a path"
new bf3725d nix-store -r: Don't quietly ignore missing paths
new 9de6bc5 nix-store -r: Add ‘--ignore-unknown’ flag
new a3d6585 nix-copy-closure: Add flag ‘--use-substitutes’
new 46a369a Make "nix-build -A <derivation>.<output>" do the right
thing
new 8d8d47a Only substitute wanted outputs of a derivation
new 408a7bf nix-instantiate: Fix read-only evaluation
new 69c88f5 Fix the multiple-outputs test
new 08964d7 Undo accidental debug change
new 5943f41 queryMissing(): Handle partially valid derivations
new 8b8ee53 Add builtin constants ‘langVersion’ and ‘nixVersion’
new 6c98e6a Optionally ignore null-valued derivation attributes
new 8eed07c nix-env -q --out-path: Support multiple outputs
new 4bb4d54 Whitespace
new d62fc71 Fix the ‘--prebuilt-only’ flag
new 21c2d8d Test the ‘--prebuilt-only’ flag
new 5ad8939 nix-env: Install all outputs of a derivation
new 2d5e8e2 Add a test for ‘nix-env --set-flag active ...’
new 56d29dc buildenv.pl: Create symlinks in priority order
new b215b23 Test priorities
new 24d5875 Document multiple output support
new 4387d19 nix-channel --update needs bzip2
new 094a08f Document new primops
new 3100b29 Tiny optimisation in the filter primop
new a7b4aaa Updated release notes
new d5a01d0 Build Debs for Ubuntu 12.10
new 444b03a Produce an xz-compressed tarball
new 566afa1 Support xz compression of nixexprs.tar in channels
new 0f96966 Add release date
new aa61bc7 Fix RPM build
new 3631dc6 Typo
new 5c48776 Add a dependency on xz
new 8d100db Add a dependency on xz-utils
new 52edef3 Fix RPM build
new 8cc19ed Set a long SQLite timeout in the binary cache substituter
new a6ce6d9 Fix manual generation
new e087bfe Bump version number
new 772778c On SQLITE_BUSY, wait a random amount of time
new 3ad53e4 Debian package: Add dependency on libwww-curl-perl
new 9fa12fc Allow setting the profile location using $NIX_PROFILE
new a9045c7 fix use-after-free bug in mkString(Value&, Symbol&)
new cc511fd Check for potential infinite select() loops when building
new 228ea7c Revert brain fart
new fbf0b2f Kill the build hook rather than shutting it down cleanly
new e775d4d If gc-keep-derivations is set, only keep the actual
deriver
new 9c29a2e Give a better error message if writeFile fails due to
permission issues
new 06f62de Yet another rewrite of the garbage collector
new 2754a07 nix-store -q --roots: Respect the
gc-keep-outputs/gc-keep-derivations settings
new 5ee7d8f Typo fix
new 68dcbb1 download-from-binary-cache: Use the channels of the
calling user rather than root
new b762977 Allow mounting a path in a different location in the
chroot
new 12f9129 nix-build: Support talking to old daemons
new 82248ab Add a test for incomplete closures in the binary cache
new 1b3a78a Automatically fall back if the references of a substitute
are not substitutable
new 299141e If a substitute closure is incomplete, build
dependencies, then retry the substituter
new 42d6f64 Update release notes
new 649bb60 Use sysconfdir=/etc
new aebea2e Reinstate the http://nixos.org/binary-cache default for
the binary-caches setting
new f12492c Manual: Fix "nix-store --export" example
new 0a4e903 Urgggh
new def5160 Clear any immutable bits in the Nix store
new 3007f57 Remove tabs
new b424d29 Open the database after removing immutable bits
new 92926be Fix "0 store paths deleted" message
new e42df68 Delete a left-over trash directory before doing a GC
new 66fa9e6 Bump version number to 1.4
new 536c85e Store build logs in /nix/var/log/nix/drvs/<XX>
new d6fd6d8 corepkgs/fetchurl: Enable making the downloaded file
executable
new 96fbbbd build-remote.pl: Don't keep build logs on the build slave
new 1943b60 Fix the VM tests
new 99ed558 Correctly handle missing logs
new 5e9c3da Only warn about SQLite being busy once
new 9842077 Improve -I description
new d614380 Support the colonies
new 8add116 Nix::Store::derivationFromPath: Return derivation outputs
new 01a5ea9 experimental/hash
new 5217260 Rename "hash" to "hashString" and handle SHA-1
new 5f18cd2 Make "${./path} ..." evaluate to a string, not a path
new 79a3ba7 Document ‘hashString’
new 5ea138d Enable chroot support on old glibc versions.
new 3e067ac Add `Settings::nixDaemonSocketFile'.
new dadf7a5 build-remote: Use the --quiet flag
new 5526a28 Security: Don't allow builders to change permissions on
files they don't own
new ca9c02d Update release notes
new 97c6009 Bump version number
new 826dc0d Remove outdated file
new b008674 Refactoring: Split off the non-recursive
canonicalisePathMetaData()
new 0111ba9 Handle hard links to other files in the output
new 8893641 Bump version number
new f45c731 Handle symlinks properly
new 9fa1bee Update release notes
new 8057a19 Handle systems without lutimes() or lchown()
new 28bba8c Prevent config.h from being clobbered
new e73d9e9 Fix annoying Perl 5.16 warnings
new bdd4646 Revert "Prevent config.h from being clobbered"
new 4b07476 Prevent config.h from being clobbered
new c56bc3d Make sure that thunks are restored properly if an
exception occurs
new 8047097 Fix building against Bison 2.6
new a68ebf8 Require Bison 2.6
new 78d777c Remove the "system" jobset input
new f72ed36 Bump version number
new c3fc60d Fix evaluation
new 2c9cf50 makeStoreWritable: Use statvfs instead of
/proc/self/mountinfo to find out if /nix/store is a read-only bind mount
new cc63db1 makeStoreWritable: Ask forgiveness, not permission
new 2398417 Fix evaluation of the VM tests
new 258897c Complain if /homeless-shelter exists
new 05420e7 Manual: Add a missing step to the build instructions
new c642441 Test NAR info caching
new a9b4e26 Test whether --fallback works if NARS have disappeared
from the binary cache
new 08d96ff Fix --fallback with the binary cache substituter
new 934cf2d Nix daemon: respect build timeout from the client
new 6955d41 nix-build: Respect --timeout
new f9974f8 Show that --timeout doesn't work if the build produces
log output
new 772b709 Fix --timeout
new 938092a find-runtime-roots.pl: Use Nix::Utils::readFile
new 00f698e find-runtime-roots.pl: Search process environments for
roots
new 0374d94 addAdditionalRoots(): Check each path only once
new 4ddd077 find-runtime-roots.pl: Don't hardcode /nix/store
new 470553b Don't let stderr writes in substituters cause a deadlock
new 3628b61 Nix 1.5.2 release notes
new 5cc2fc4 Adding ETA support to the --show-progress in
nix-copy-closure
new 7391533 Fixing the pv reference; I didn't mean to change it
new e6c44d1 Fixing the pv position regarding compression
new c51b6a8 nix-copy-closure: Show a proper error message if no host
name is given
new 93f4fa8 Update release notes
new 28034bf Build Ubuntu 13.04 debs
new cc837e2 Build Debian 7.0 debs
new ea019e9 Add option ‘extra-binary-caches’
new 8069703 Update release date
new e93acab Build Fedora 18 RPMs
new 69b8f99 build-remote.pl: Enforce timeouts locally
new 7a03cbf build-remote.pl: Create one process fewer on the remote
side
new 6eba056 Communicate build timeouts to Hydra
new 2ee9da9 In trace messages, don't print the output path
new 78206f0 build-remote.pl: Allow a machine to refuse a build
new be0b9dd build-remote.pl: Pass /dev/null as SSH's stdin
new 3a0cc43 build-remote.pl: Properly close the SSH connection
between attempts
new 6e85d1b Bump release date
new 31a551a Bump version
new a4cb62a download-from-binary-cache.pl: Get rid of an
uninitialized value warning
new 2295672 Shut up a compiler warning
new 1b3a03f Show which function argument was unexpected
new 18a48d8 Show function names in error messages
new 72d8209 build-remote.pl: Indicate if remote machine is refusing
builds
new 107505e build-remote.pl: Copy all outputs in one operation
new b09b873 nix-store --export: Export paths in topologically sorted
order
new 039d5a0 .bashrc -> .profile
new bc2e43f build-remote.pl: Remove meaningless signing when
importing the output paths
new ff08306 download-from-binary-cache.pl: Treat a 403 error as a 404
new f0576d6 Update the default binary cache URL to cache.nixos.org
new 75e12b8 download-from-binary-cache.pl: Fix race condition
new c5f9d0d Buffer reads from the substituter
new 5959c59 Process stderr from substituters while doing have/info
queries
new ca70fba Remove obsolete EOF checks
new 24e063e download-from-binary-cache.pl: Show if we're waiting for
a URL
new 24a356b Replace $NIX_DEBUG_SUBST with an option ‘debug-subst’
new 5c06e52 download-from-binary-cache.pl: Respect
$NIX_CONNECT_TIMEOUT
new 6b05f68 nix-daemon: Trust options like binary-caches when the
client is root
new f9ff67e In repair mode, update the hash of rebuilt paths
new bfee9a2 Typo
new 6cc2a8f computeFSClosure: Only process the missing/corrupt paths
new 1e2c7c0 Fix assertion failure in canonicalisePathMetaData() after
hash rewriting
new cd49ee0 Fix a security bug in hash rewriting
new 1b6ee8f Allow hard links between the outputs of a derivation
new 6016bcd Update release notes for Nix 1.5.3
new 2b29e4b Bump version
new 22144af Don't keep "disabled" substituters running
new 9b11165 Disable the copy-from-other-stores substituter
new 1906cce Increase SQLite's auto-checkpoint interval
new 5558652 Don't substitute derivations that have preferLocalBuild
set
new 7ccd946 Don't set $preferLocalBuild and $requiredSystemFeatures
in builders
new 1917d75 copy-from-other-stores.pl: Report downloaded size as 0
new 7986711 copy-from-other-stores.pl: Respect $NIX_BIN_DIR
new 5116214 Add support for uncompressed NARs in binary caches
new b584a42 Manual: auto-optimise-store is disabled by default
new 212e96f Leave `HAVE_HUP_NOTIFICATION' undefined on GNU/Hurd.
new 6563900 nix-build --run-env: Source $stdenv/setup in the
interactive shell
new ed09d0c nix-build --run-env: Always use Bash
new 6fcc290 build-remote.pl: Move "building ..." message to a better
place
new 620d57f doc: typo
new 25a00ca Add gzip support for channel unpacking
new aeb810b Garbage collector: Don't follow symlinks arbitrarily
new c3f5413 Fix syntax error in unpack-channel
new 16591eb Allow bind-mounting regular files into the chroot
new a4921b8 Revert "build-remote.pl: Enforce timeouts locally"
new dc5f2e7 nix-build --run-env: Add a ‘--pure’ flag
new 2bc5de8 Rename ‘nix-build --run-env’ to ‘nix-shell’
new 48858ad nix-shell: Set some environment variables also set by
build.cc
new 15e5ac8 nix-shell: Set $IN_NIX_SHELL
new 7b09e9f Add hacking notes plus a script for running nix-shell
new 7cf539c buildenv: remove special treatment of python files
new e87d1a6 killUser: Don't let the child kill itself on Apple
new 70e68e0 Detect stack overflows
new 20866a7 Delay evaulation of `with` attrs until a variable lookup
needs them
new e068f49 Avoid thunks when a fromWith var can be looked up without
evaluation
new 8ae6d55 Don't use NULL
new 0a470fc Make Env smaller
new 7df4ef9 Test the delayed with a bit more
new 5114559 nix-shell: Don't disable Automake dependency tracking
new 159e621 Overload the ‘+’ operator to support integer addition
new 5d147e1 Add a unary integer negation operator
new 4770167 Add integer ‘-’, ‘*’ and ‘/’ operators
new 3d77b28 Add comparison operators ‘<’, ‘<=’, ‘>’ and ‘>=’
new 8e74c0b Let the ordering operators also work on strings
new 46ffcce In the profiler output, show function names (if available)
new fd7d979 Remove obsolete reference to ATerms
new 263d668 Set the default GCC optimisation level to -O3
new a583a2b Run the daemon worker on the same CPU as the client
new 161a2cc Fix build on non-Linux
new 3fb7ae0 Respect MINSIGSTKSZ when allocating an alternative stack
new 58204a3 corepkgs/nar.nix: Prefer local builds
new 46222bb Typo
new 297b762 Turn on -Wall
new d308aea Store Nix integers as longs
new 25a108b Hack to clean up tests/test-tmp
new b3110a1 Fix corrupt PNG
new 03eaef3 Manual: Don't use actual hashes of Nix dependencies
new c6c024c Fix personality switching from x86_64 to i686
new 34bb806 Fix typos, especially those that end up in the Nix manual
new 6cd6ce5 Fix nix-shell command
new afc6c1b Simplify inherited attribute handling
new efe4289 Add an option to limit the log output of builders
new b29d3f4 Only show trace messages when tracing is enabled
new 6ec8dab Adda test for build-max-log-size
new ecd830b Update the release notes
new e9b9216 Fix manual error
new c28dfc0 Manual: Make '' a bit clearer
new ac1b754 Lower xz compression level
new 3397262 Fix whitespace
new 92077b4 Get rid of a signedness warning
new 57d18df Add some support code for nix-repl
new 6f80919 Get rid of the parse tree cache
new 06bb2d9 Reformat
new ef4f5ba Work on Values instead of Exprs
new c57ed84 Check for name collisions in the input Nix expressions
new 07a08bd nix-env: Load files in ~/.nix-defexpr on demand
new 88c0734 nix-env: Use wildcard match by default
new 2c1ecf8 nix-env -i: Add a flag ‘--remove-all’ / ‘-r’
new 5904262 nix-shell: Support a .drv as argument
new 4b83830 typo
new 936f9d4 Don't apply the CPU affinity hack to nix-shell (and other
Perl programs)
new 0220da3 Remove stray debug line
new fecad91 Update release notes
new b072fc0 Bump version number
new d5529f5 Version was called 1.6, not 1.6.0
new f53574e RestoreSink: Slightly reduce the number of concurrent FDs
new faaae44 build-remote.pl: Don't use substituters on the remote
new a5fb4b5 Fix typo
new 28e0742 Report OOM errors better
new c945f01 Fix segfault in nix-repl / hydra-eval-jobs
new 176c666 Don't show calls to primops in stack traces
new 221a2da Merge VarRef into ExprVar
new a5e0f64 Remove some unused functions
new 6b47de5 Show the exact position of undefined variables
new b1e3b1a Treat undefined variable errors consistently
new 9deb822 Deduplicate filenames in Pos
new 7bdb854 printStats(): Print the size of the symbol table in bytes
new 672c3ac Adjust to the NixOS/Nixpkgs merge
new c1994fe nix-shell: Fix bash completion
new d05bf04 Treat SQLITE_PROTOCOL as SQLITE_BUSY
new 7cdefdb Print a distinct warning for SQLITE_PROTOCOL
new bce14d0 Don't wrap read-only queries in a transaction
new 4bd5282 Convenience macros for retrying a SQLite transaction
new ff02f53 Fix a race in registerFailedPath()
new a737f51 Retry all SQLite operations
new b8571d6 Add a regression test for correct path antiquotation
behavior
new d6a7aa8 Revert the behaviour of antiquoted paths to pre-Nix 1.6
new 9d8a803 Add a test for type correctness of antiquotes
new b8034e5 Ensure proper type checking/coercion of "${expr}"
new d7625b5 two typos
new b08f4b0 Test string semantics a bit more
new f6a8e7f Fix test
new bb659ba Nix 1.6.1 release notes
new f440558 Don't show <nix/derivation.nix> in stack traces
new 792fd51 Fold two stack trace messages in derivations
new 4ea034a nix-shell: Play nicely with non-interactive shells
new 4f4a144 Don't set $PS1 in non-interactive shells
new c086183 For auto roots, show the intermediate link
new 3139481 Add an aggregate job
new fe95650 Memoize evalFile() lookups under both the original and
resolved name
new 543d8a5 Don't require NIX_SHOW_STATS for NIX_COUNT_CALLS
new 6da92d9 Document NIX_SHOW_STATS and NIX_COUNT_CALLS
new 05d02f7 Add a typeOf primop
new 411a346 Add a test of the type primops
new a5684e0 Document typeOf
new 69befd3 Remove unnecessary call to forceStringNoCtx
new dc34181 Add rpm_fedora19i386 to the release-critical builds
new 9e4bb20 Manual: Fix broken URLs
new 5bc41d7 Rename "attribute sets" to "sets"
new 2d9bb56 Fix segfault on Darwin
new fba17a9 Doc fix
new 36e67ff Undocument obsolete form of "let"
new ea6bf0c Slightly optimize listToAttrs
new 1dacd42 Update release notes, set version for 1.6.1 release
new 6123144 Drop Cygwin and Solaris builds
new dec2f19 Fix a segfault in genericClosure
new 8d6418d Fix building without a garbage collector
new 4badd7e Get rid of an intermediary on the stack
new 273322c Make ifs and asserts tail-recursive
new c897bac Make function calls tail-recursive
new 2bcb384 Add a test to check that tail calls run in bounded stack
space
new 89e6781 Make function calls show up in stack traces again
new a478e8a Remove nix-setuid-helper
new 90b5e69 Support quoted attribute names in -A
new fc33fd8 Add a symbol __curPos that expands to the current source
location
new 285df76 Add a primop unsafeGetAttrPos to return the position of
an attribute
new 77c13cd Add a toJSON primop
new 5fea981 Refactor JSON output
new 245e264 nix-env -q: Add a --json flag
new af94a70 Drop support for user environment manifests in ATerm
format
new 990126c Shorter error message
new 0f24400 Generalise meta attributes
new 30b9869 Check meta values and warn about bad ones
new d4a76ff Bump version number
new 709cbe4 Include <cstring> for memset
new b8e9efc New non-recursive, plain Make-based build system
new bc96c45 Automatically emit make rules for header files
new 1474ecf Generate the parser and the lexer
new eaf903f Clean more aggressively
new e0a108b Remove unnecessary line
new eff6c4b Add missing #include
new 62e35cc Add ‘make dist’ support
new ffdc85f Respect configure flags
new 9a14d5e Automatically regenerate Makefile.config
new 754c05e Rename $(here) to $(d) for brevity, and remove trailing
slash
new 6b5f89f Drop the dependency on Automake
new ea2f7df Introduce variables GLOBAL_CFLAGS and GLOBAL_CXXFLAGS
new 812b5a3 Add a Makefile variable for enabling debug info
new 9b11a8b Fix building without Boehm GC
new 6dd74b4 Support building dynamic libraries
new d1b3ca0 Improve building dynamic libraries
new 611868a Implement basic ‘make install’
new 1477278 Support installation of dynamically linked programs
new 90dfb37 Allow (dynamic) libraries to depend on other libraries
new 06a8ac9 Initialise Boehm GC only once
new 5a1114e Drop the dependency on libgc in libmain
new c1f3a1a Disallow undefined symbols in dynamic libraries by default
new 07c87a8 Consistent naming
new abb5bd6 Add Makefile for nix-log2xml
new f267ff1 Allow libraries to set an actual name different from the
symbolic name
new 2bd0fcc Use libnix as a prefix for all Nix libraries
new c7547cf Install into $(libdir) instead of $(pkglibdir)
new 4315acb Add a generic rule for installing files
new e9b6397 Add a rule for creating directories
new f980755 Split Makefile.lib into several *.mk files
new ed0a8dd Add a function for instantiating Autoconf *.in files
new 79b7c59 Use create-dir for installing dynamic libraries
new 2cc591c Don't instantiate Automake makefiles
new 0c504a7 Don't install Libtool
new b225ccb Add config.guess, config.sub and install-sh
new cac06ed Remove obsolete setting of $CC_FOR_BUILD
new 784feb6 Let ‘make clean’ delete instantiated template files
new 1a1d8b0 Add a Makefile for bsdiff
new 962551a Add a Makefile for the scripts directory
new 7ce0e05 Rename Makefile.new -> Makefile
new 8f08046 Expand configure variables before writing config.status
new 9285f0a Add a Makefile for the Perl stuff
new 0202ce6 Add support for ‘make installcheck’
new f3cf043 Install bsdiff and bspatch in $(libexecdir)/nix
new bf8b66a Add missing file
new c5b8fe3 Print a trace message if a build fails due to the
platform being unknown
new a6add93 Garbage collector: Release locks on temporary root files
new 22d6650 builtins.storePath: Try to substitute the path if it is
not yet valid
new e36229d Bump language version for new storePath feature
new 49a3850 Initial commit (imported from the Nix repo)
new 3560f52 dryclean: Show what actual files would be deleted
new dfcc64f Only provide 'make dist' if PACKAGE_NAME is set
new c34f3c5 Handle *.cpp extension
new 45131da Get rid of whitespace in $(d)
new 034bbca Add 'make help'
new 4da8046 Don't include all *.dep files
new a630635 No longer interpret $(..._SOURCES) relative to $(..._DIR)
new e81b82a make dryclean: Sort names
new 088552b Set default installation paths
new 7b0d8fb nix-shell --pure: Keep $TERM
new 99ed25a Add a function for doing recursive wildcard searches
new 259086d Add support for building JARs from Java sources
new 65a6452 nix-shell: Handle --option correctly
new 0c1198c nix-shell: Set $IN_NIX_SHELL before evaluation
new 769f662 nix-shell: Don't warn about the lack of a GC root
new 194e337 Scan /proc/<pid>/cmdline for GC roots
new 7d203fa nix-env --set-flag: Barf if a selector doesn't match any
installed package
new f1e5ded perl: Call loadConfFile() in doInit to avoid screwing
sqlite journal mode.
new 8931bf7 Doh
new b352fe2 Revert "Scan /proc/<pid>/cmdline for GC roots"
new 5ba5993 nix-shell --pure: Don't clear IN_NIX_SHELL
new 136f2f7 Add the ExprBuiltin Expr type to the AST
new 18fefac Dynamic attrs
new 6f3a518 Fold dynamic binds handling into addAttr
new cd49fe4 Don't use any syntactic sugar for dynamic attrs
new 4252b5a Disable the tail call test
new fe23e28 Disable FreeBSD tests for now
new 485f474 wording
new 7a61c88 Merge branch 'dynamic-attrs-no-sugar' of
github.com:shlevy/nix
new 405434e Revert "nix-shell: Set $IN_NIX_SHELL before evaluation"
new 0fdf4da Support cryptographically signed binary caches
new 11cb4bf Fix checking of NAR hashes
new ea38e39 Test whether Nix correctly checks the hash of downloaded
NARs
new f4013b6 Fix signed-binary-caches test
new 55c9a40 Move stuff to top-level
new 568b1b0 Remove mk subdirectory in preparation for "git subtree"
new b4c684e Update Makefiles
new 814a732 Remove duplicate elements from *_SOURCES
new 70d8e8f Declare template_files as a simply expanded variable
new cf918b8 Handle systems where "echo -n" doesn't work
new b1db599 Generate schema.sql.hh
new e991ab9 Add support for building shared libraries on Mac OS X
new ca73c01 Nicer Make output
new ea59f39 nix-shell: Set $IN_NIX_SHELL before evaluating
new f135705 nix-shell: Don't set NIX_INDENT_MAKE
new e640d67 Document nulls
new f9913f4 Allow "bare" dynamic attrs
new f5e5793 Bare dynamic attrs: Match interpolation semantics
new bf0ad8a nix-profile.sh: Add the Nixpkgs channel to $NIX_PATH
new 0f2f44b Build Fedora 20 RPMs
new 0e2ca26 nix.spec: Remove "make check" since it's a no-op
new c8fff6a Fix evaluation
new 5ef8508 Remove unused type
new 81628a6 Merge branch 'master' into make
new 68cde53 Fix building against Bison 3.0.2
new 625ffd4 Ugly hack to fix building with clang
new a26307b Fix build
new 94f9c14 Fix some clang warnings
new 5311b2b Clang doesn't know the "-z defs" flag
new 7fdee6e nix-build: Refactor
new 79dee42 nix-shell: Preserve the TZ variable of the user
new c5ba081 nix-shell: Add --impure flag
new 4a2ec9c Install nix-worker symlink
new e0234df Rename Makefile -> local.mk
new 4271927 Add support for installing man-pages
new ac8c2ef Build/install manual
new f324b49 Change dependency file names from foo.dep to .foo.o.dep
new 3510703 Support adding "make help" text
new ec17385 Make variable names more regular
new 16e7d69 Update Makefile variable names
new 0c6d62c Remove Automakefiles
new 6f8aa14 Improve "make dist"
new 1eff3ad Add missing file
new 6ef32bd Fix "make dist"
new 74ca70d Add 'mk/' from commit
'1eff3ad37fdb9dcf9f8528fdacea0ebf0e79d545'
new 844d833 More "make dist" fixes
new 28dc488 installcheck: Don't depend on install
new 762ef46 Fix the nix-profile test
new b6465ae Merge commit '28dc4883356a50f2805a3e3c819a541c44a4ff0a'
into make
new 965218a Remove obsolete file
new 2a97f7b Fix logging test
new 6dca720 Only run "git ls-files" when doing "make check"
new 2f9bb5c Merge branch 'make'
new d6582c0 Give a friendly error message if the DB directory is not
writable
new 8468806 Add a basic README
new 73a775f Merge commit '8468806552d6730abec6431c42b5b0e897c0222c'
new d210cdc Fix assertion failure in ‘nix-store --load-db’
new 143224f Add nix.spec to the distribution
new 0da82ef GNU Make 3.81 compatibility
new 4ee6001 GNU Make 3.81 compatibility
new 80b6913 Fix version in nix.spec
new 4161fce Create the target directory of libraries and programs
new 20d0598 Drop dependency on ‘expr’
new 1f94ec3 Clean up a test warning
new 2a469ad Set a maintainer address
new 97f8e9b Remove dead code
new a210c99 Support DESTDIR
new 764d905 Merge commit 'a210c995cdd9279ed4137ec5d2e4cc928cb36097'
new 7fab23e Install header files
new 0432bc5 Fix the RPM build
new 0c3e8a6 nix-instantiate: Add a --no-readonly-mode flag
new e4058fa Rename --no-readonly-mode --read-write-mode
new 84a8b5e nix-instantiate --eval-only --read-write-mode: Don't
depend on ordering
new 3a38d0f Add the nix-store --serve command
new 9488447 nix-store --serve: Don't loop forever
new 188f965 nix-store --serve: Don't fail if asked for info about
non-valid path
new 7387462 nix-store --serve: Use dump instead of export
new 5671188 nix-store --serve: Flush out after every loop
new 64e23d0 Add download-via-ssh substituter
new b632153 nix-shell: Use shell.nix as the default expression if it
exists
new c583975 Binary tarball: Automatically fetch the Nixpkgs channel
new 78d9795 Clarify comment
new 1614603 Pass in params by const ref
new 38c3bea Move StoreApi::serve into opServe
new c89d6b9 nix-store --serve: Use a versioned protocol
new 57386c9 Binary tarball: Automatically create /nix
new 1f841c9 Force use of Bash
new f9fc6ac Document current meaning of preferLocalBuild
new 2246aa7 Remove using declarations from download-via-ssh
new 7438f0b error messages start in lowercase
new 62eb9eb Remove relic of old code
new f67f527 Indendation fix
new 61fd494 Merge remote-tracking branch 'shlevy/ssh-substituter'
new dba33d4 Minor style fixes
new 4db5720 download-via-ssh: Show where we're downloading from
new a9d99ab download-via-ssh: Use readStorePath
new 832377b Add a test for repairing paths
new e81d38c nix-shell: Execute shellHook if it exists
new 00d3049 Heuristically detect if a build may have failed due to a
full disk
new 1da6ae4 nix-store --gc --max-freed: Support a unit specifier
new 69fe6c5 Move some code around
new 71adb09 When using a build hook, only copy missing paths
new dfbcb7c Refactoring
new b6def5b Make --repair work on Darwin
new 99f14c2 Don't build on Debian 6.0
new 4ec626a Test nix-store --verify-path and --repair-path
new 1aa19b2 Add a flag ‘--check’ to verify build determinism
new 8129cf3 Slight simplification
new 70a558e Update ignores
new a7e7051 lexer-tab.o and parser-tab.o require each other's headers
new 73f74eb nix-shell: Don't leave a temporary directory in /tmp
behind
new e707a8a Move manpages around
new c318360 nix-instantiate: Add a flag --expr / -E to read
expressions from the command line
new e1cf40f nix-instantiate: Rename --eval-only to --eval,
--parse-only to --parse
new a897b58 nix-instantiate: Allow --dry-run as a synonym for
--readonly-mode
new 36b90e7 nix-shell: Add --packages flag
new df5de9d Add use-ssh-substituter setting.
new dcaea04 Only start download-via-ssh if it's enabled
new 8a02fdc use USER environmental variable if getting user id by
getpwuid is failed in perl scripts: download-from-binary-cache.pl and
nix-channel
new bf4a577 Fix broken patch
new 42eb4af Simplify getting use-ssh-substituter from untrusted users
new 7332141 Document dynamic attributes
new f14ef84 Warn about missing -I paths
new d761009 Add ~/.nix-profile/sbin to $PATH
new 00d7610 Respect $NIX_CONNECT_TIMEOUT properly
new 7f74513 Also provide an option for setting the curl connection
timeout
new 6b9cd59 nix-store -r: Respect --add-root for non-derivations
new 506d863 Installer: Handle Darwin
new fdff3a7 Add a test for nix-store --dump-db / --load-db
new 1943778 Test nix-store --optimise
new 84143c4 Test nix-store -l
new fac6f8a Test nix-store -q --roots
new 045d3b2 Test nix-store --switch-profile and more daemon actions
new a9c4a98 Test ~/.nix-defexpr
new a080638 Test the -b and -s flags of nix-store -q
new 7bbc68f Test nix-env --set
new d58ceae Test nix-env --switch-generation
new 509993e Remove unused function
new 432328c Remove another unused function
new 91f25f0 And another one
new 3d0a9ec Test executables in NARs
new 5ad263c Test some more primops
new 7880973 Test trace and addErrorContext
new 7c77076 Doh
new 29cde91 Fix deadlock in SubstitutionGoal
new c9f6232 Correctly detect infinite recursion in function
application
new 3fd01b1 Set up a minimal /dev in chroots
new 1017bd6 Set up a private /dev/pts in the chroot
new 3a86888 Typo
new f7e077a Install missing Boost headers
new 2caab81 Revert "Make ifs and asserts tail-recursive"
new 908e9ce If a dynamic attribute name evaluates to null, remove it
from the set
new 049a379 The expr of AttrNames/DynamicAttrDefs is always an
ExprConcatStrings
new 2f2a20e Document null dynamic attrs
new 92a848f Fix typos
new 25386e5 Fix passing meta attribute to buildenv.nix
new e9934bb Update release notes for 1.7
new d435e46 Generate release notes again
new 006f24c Document nix-env -q --json
new fb8d8f5 Remove unnecessary null pointer checks
new 77e2cc6 nix-build: Fix --cores flag
new f93e975 Fix -j and other flags when using the daemon
new 51800e0 Allow recovery from isValidPath RPCs with an invalid path
new 3fc0569 Fix tabs
new 24cb65e Make /dev/kvm optional
new 4900957 Don't interpret strings as format strings
new 90dc50b restoreSIGPIPE(): Fill in sa_mask
new acb8fac Fix potential segfault in waitForInput()
new 9becaa0 Drop pointless #include
new 1c2550a boost::shared_ptr -> std::shared_ptr
new 59c9019 Fix nix-shell for derivation with multiple outputs
new 7ef7597 nix-env: Add support for --delete-generations 15d
new 034b6f6 nix-collect-garbage: Add --delete-older-than option
new ac6ceea Fix potential segfault
new e7720aa Make sure /dev/pts/ptmx is world-writable
new d4e18b0 Keep only libstore, nix-daemon, and related stuff.
new 0a75126 nix: Adjust code for Guix.
The 3549 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch nix created (now 0a75126),
Ludovic Courtès <=