Commit graph

  • 80870d9291 * Input sources should be in the set of all referenceable paths too. Eelco Dolstra 2005-02-11 16:03:47 +0000
  • 3a99616968 * Commit more often to prevent out-of-memory errors. Eelco Dolstra 2005-02-09 14:37:24 +0000
  • 98df735b51 * 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. Eelco Dolstra 2005-02-09 12:57:13 +0000
  • 582e01c06f * Automatically upgrade <= 0.7 Nix stores to the new schema (so that existing user environments continue to work). * `nix-store --verify': detect incomplete closures. Eelco Dolstra 2005-02-09 09:50:29 +0000
  • c547439843 * 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. Eelco Dolstra 2005-02-08 13:48:53 +0000
  • 3d74274b37 * Updated `nix-store --verify' to the new schema. Eelco Dolstra 2005-02-08 13:23:55 +0000
  • 60feff82cf * Set umask to prevent permission problems. Eelco Dolstra 2005-02-08 13:00:39 +0000
  • 48ebe4527e * Better error reporting in readmanifest. * Use force flag in `mv' to prevent silly interactive questions (this happens with shared Nix stores). Eelco Dolstra 2005-02-08 11:40:19 +0000
  • fbc434ee4c * `nix-store -qb' to query derivation environment bindings. Useful for finding build-time dependencies (possibly after a build). E.g., Eelco Dolstra 2005-02-07 14:32:44 +0000
  • 450c358e20 * 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. Eelco Dolstra 2005-02-07 13:40:40 +0000
  • a37338815d * A GC setting `gc-keep-outputs' to specify whether output paths of derivations should be kept. Eelco Dolstra 2005-02-01 22:07:48 +0000
  • 2e6bf723e4 * 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. Eelco Dolstra 2005-02-01 20:53:14 +0000
  • 9f6835c282 * Remove debug code. Eelco Dolstra 2005-02-01 17:52:11 +0000
  • c3981d81f6 * Make check fixes. Eelco Dolstra 2005-02-01 17:50:48 +0000
  • 65b6c8ab4c * 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. Eelco Dolstra 2005-02-01 15:05:32 +0000
  • 630ae0c9d7 * nix-build: use an indirection scheme to make it easier for users to get rid of GC roots. Nix-build places a symlink result' in the current directory. Previously, removing that symlink would not remove the store path being linked to as a GC root. Now, the GC root created by nix-build is actually a symlink in /nix/var/nix/gcroots/auto' to `result'. So if that symlink is removed the GC root automatically becomes invalid (since it can no longer be resolved). The root itself is not automatically removed - the garbage collector should delete dangling roots. Eelco Dolstra 2005-02-01 13:48:46 +0000
  • dcc37c236c * 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 Eelco Dolstra 2005-02-01 12:36:25 +0000
  • a6b65fd5e1 * Get rid of hardcoded paths. Eelco Dolstra 2005-02-01 09:54:56 +0000
  • 06b4424286 * Add missing files to dist. * Fix GC and substitute bugs related to self-references. Add a regression test. Eelco Dolstra 2005-02-01 09:23:38 +0000
  • 32fa82a56a * 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. Eelco Dolstra 2005-01-31 22:23:49 +0000
  • 89c9bc11ab * 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. Eelco Dolstra 2005-01-31 22:01:55 +0000
  • 207bdcbe86 * Automatically remove temporary root files. Eelco Dolstra 2005-01-31 21:20:59 +0000
  • 252c9c91ab * 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. Eelco Dolstra 2005-01-31 14:00:43 +0000
  • 33c5d23b81 * Don't delete active lock files. Eelco Dolstra 2005-01-31 12:19:53 +0000
  • 1328aa3307 * 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. Eelco Dolstra 2005-01-31 10:27:25 +0000
  • a7668411a1 * 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. Eelco Dolstra 2005-01-28 20:36:46 +0000
  • 22cfdfa246 * 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. Eelco Dolstra 2005-01-28 13:19:16 +0000
  • 9ab0bc9395 * Another horrible `make check' hack. Eelco Dolstra 2005-01-28 11:05:56 +0000
  • 0ea8b6993a * Only invalidate paths when they are in fact valid. Eelco Dolstra 2005-01-28 11:05:46 +0000
  • ac2f665853 * Set execute permission. Eelco Dolstra 2005-01-27 19:15:12 +0000
  • a85d1849af * Missing dependency; only a problem when building from Subversion. Eelco Dolstra 2005-01-27 19:00:48 +0000
  • e5c16c9582 * Add missing substitutes files to dist. * Add a garbage collector test. Eelco Dolstra 2005-01-27 17:48:50 +0000
  • 8a3eef22e3 * Fix deadlock. Eelco Dolstra 2005-01-27 17:48:14 +0000
  • c60a4943ba * Update referers mappings when updating/clearing the references mapping. * Do things in the right order in invalidatePath(). Eelco Dolstra 2005-01-27 16:18:39 +0000
  • 4e37548a1e * Remove deleted files from EXTRA_DIST (again). Eelco Dolstra 2005-01-27 15:31:49 +0000
  • c505702265 * 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. Eelco Dolstra 2005-01-27 15:21:29 +0000
  • 59682e6188 * 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). Eelco Dolstra 2005-01-27 12:19:25 +0000
  • a24b78e9f1 * 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. Eelco Dolstra 2005-01-25 21:28:25 +0000
  • 2a2756b856 * 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). Eelco Dolstra 2005-01-25 20:27:40 +0000
  • a9340fa672 * Remove removed files from EXTRA_DIST. Eelco Dolstra 2005-01-25 17:25:20 +0000
  • 498f4915cc * Re-enable all tests. Eelco Dolstra 2005-01-25 17:24:14 +0000
  • 066da4ab85 * Really fix the substitute mechanism, i.e., ensure the closure invariant by registering references through the manifest. * Added a test for nix-pull. Eelco Dolstra 2005-01-25 17:08:52 +0000
  • c6290e42bc * Fix the `--fallback' switch. * Fix the substitutes tests. Eelco Dolstra 2005-01-25 13:00:12 +0000
  • 581fc47783 * Fix the build hook mechanism; pass the pointer graph to the hook. Eelco Dolstra 2005-01-25 11:55:43 +0000
  • 52bf9b86bb * 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. Eelco Dolstra 2005-01-25 11:18:03 +0000
  • 80faa2f98a * In nix-store: change --build' back to --realise'. Also brought back the query flag `--force-realise'. * Fixed some of the tests. Eelco Dolstra 2005-01-25 10:55:33 +0000
  • 6a0a2d5593 * Terminology fixes. Eelco Dolstra 2005-01-20 16:01:07 +0000
  • 6bb5efadec * Ensure that derivation names and sources don't end in `.drv'. Eelco Dolstra 2005-01-20 15:25:01 +0000
  • 05f0430de1 * 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. Eelco Dolstra 2005-01-20 14:10:19 +0000
  • 6ff48e77f6 * Set the Perl search path properly (reported by Roy van den Broek). Eelco Dolstra 2005-01-19 21:55:02 +0000
  • e0f4e587c3 * 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. Eelco Dolstra 2005-01-19 16:59:56 +0000
  • 96de272b48 * 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. Eelco Dolstra 2005-01-19 16:39:47 +0000
  • ef5f254a55 * 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. Eelco Dolstra 2005-01-19 15:02:02 +0000
  • 06c77bf7a8 * Change extension .store' to .drv'. * Re-enable `nix-store --query --requisites'. Eelco Dolstra 2005-01-19 14:36:00 +0000
  • 863dcff6c5 * 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: Eelco Dolstra 2005-01-19 11:16:11 +0000
  • e9762e2d10 * Support arities > 6. Eelco Dolstra 2005-01-19 11:04:24 +0000
  • 6d493751c3 * Get --readonly-mode to work again. Eelco Dolstra 2005-01-18 11:15:50 +0000
  • 32aac8748a * Actually check that the result of fixed-output derivations matches the specified hash. Eelco Dolstra 2005-01-17 19:01:48 +0000
  • f3dc231250 * Removed the `id' attribute hack. Eelco Dolstra 2005-01-17 16:55:19 +0000
  • d58a11e019 * 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. Eelco Dolstra 2005-01-14 16:04:03 +0000
  • 9530cc3170 * 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). Eelco Dolstra 2005-01-14 13:51:38 +0000
  • a7b94e87d7 * Missing file. Eelco Dolstra 2005-01-14 13:50:09 +0000
  • 9ee88bb2f2 * Use absolute paths. Eelco Dolstra 2005-01-14 13:50:00 +0000
  • 63791eb05b * Add SHA-256. * Tests for the various hashes. Eelco Dolstra 2005-01-14 12:03:04 +0000
  • 37b51a9aa6 * Removed some dead code. Eelco Dolstra 2005-01-14 10:16:33 +0000
  • 7e8961f720 * Added SHA-1 support. nix-hash' now has an option --type sha1' to select SHA-1 hashing. Eelco Dolstra 2005-01-13 17:39:26 +0000
  • 73992371a3 * Refactoring to support SHA-1. Eelco Dolstra 2005-01-13 15:44:44 +0000
  • d46b4262dc * Bump version number to 0.8. Eelco Dolstra 2005-01-12 13:23:12 +0000
  • b17e7cf979 * Script to remove patches from manifests. Eelco Dolstra 2005-01-12 10:40:59 +0000
  • 0bc41f632b * Print out less garbage. Eelco Dolstra 2005-01-12 10:37:18 +0000
  • 7d75616f2c * NEWS and manual update for release 0.7. Eelco Dolstra 2005-01-12 10:27:46 +0000
  • 6af4a5a71f * Prototype store optimiser. It searched the Nix store for identical files and hard-links them to each other to save disk space. Eelco Dolstra 2005-01-05 09:58:12 +0000
  • a03397be4c * Cygwin compatibility. Eelco Dolstra 2005-01-04 17:38:26 +0000
  • f28ea27d83 * Remove old stuff. Eelco Dolstra 2004-12-31 11:07:32 +0000
  • c53898cb65 * If a patch already exists, it must still be included in the manifest. Eelco Dolstra 2004-12-31 11:07:12 +0000
  • 35b76a81c4 * More instrumentation (statistics go to /nix/var/log/nix/downloads). Eelco Dolstra 2004-12-30 17:19:47 +0000
  • 3745cecc6a * Fix handling of chained patches: don't skip patches if intermediate paths are missing, etc. Eelco Dolstra 2004-12-30 17:09:57 +0000
  • 581bcb986f * Some logging for evaluation. Eelco Dolstra 2004-12-30 16:34:54 +0000
  • 6270aa727d * Propagate patches from the source distribution to the destination distribution insofar they are applicable. Eelco Dolstra 2004-12-29 22:17:26 +0000
  • 4f07ebc67e * 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). Eelco Dolstra 2004-12-29 22:08:48 +0000
  • 54d8f08588 * Reject patches larger than the full archives they produce. Eelco Dolstra 2004-12-29 19:32:55 +0000
  • 2fdb27e7f2 * Atomic file replacement is good. Eelco Dolstra 2004-12-29 19:04:21 +0000
  • e1e9c036f9 * A utility to generate patches between releases based on their manifests. Eelco Dolstra 2004-12-29 18:58:15 +0000
  • 77fc1c6c5c * Use aterm 2.3.1. Eelco Dolstra 2004-12-29 17:29:24 +0000
  • 9022cf9adf * A small utility to add the Size and NarHash fields to old manifests. Eelco Dolstra 2004-12-28 21:12:00 +0000
  • 4bf58d5379 * Added a function to write manifests. Eelco Dolstra 2004-12-28 21:11:28 +0000
  • 3d1b2101cc * Place manifests in /nix/var/nix/manifests. * Use the new patch downloader. Eelco Dolstra 2004-12-20 16:38:50 +0000
  • 7eed57e784 * Sync with changed substitute mechanism. * Accept the NarHash line. * Clear substitutes in `nix-channel --update'. Eelco Dolstra 2004-12-20 14:57:03 +0000
  • 96c3d8a615 * I love test sets. Eelco Dolstra 2004-12-20 14:38:04 +0000
  • 8b9697e575 * An operation `nix-store --clear-substitutes' to remove all registered substitute mappings. Eelco Dolstra 2004-12-20 14:16:55 +0000
  • fa9259f5f5 * 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. Eelco Dolstra 2004-12-20 13:43:32 +0000
  • 015beb7cd0 * Typo: genericBuilder -> genericBuild. Eelco Dolstra 2004-12-17 13:46:07 +0000
  • 4d25b0b0bb * Fix nix-pull. Eelco Dolstra 2004-12-16 15:31:50 +0000
  • f4041cc175 * Commit old changed to bdiff.sh - but bdiff.sh is obsolete. Eelco Dolstra 2004-12-16 14:59:05 +0000
  • 77970f8daf * Remove `prebuilts.conf' file, it's not like anybody was using it. * Add /nix/var/nix/manifests directory. Eelco Dolstra 2004-12-16 14:31:49 +0000
  • e3b051aeeb * 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). Eelco Dolstra 2004-12-13 16:56:18 +0000
  • 862f4c154e * 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. Eelco Dolstra 2004-12-13 13:47:38 +0000
  • dca48aed34 * Allow an optional hash to be provided. This prevents redundant fetches. Eelco Dolstra 2004-12-13 13:35:36 +0000
  • 71926ee188 * Print out statistics comparing our performance to bzip2. Eelco Dolstra 2004-11-29 21:04:28 +0000
  • 13f77276d1 * utime() follows symlinks, so don't change the mtime if the file is a symlink. Eelco Dolstra 2004-11-29 19:22:16 +0000