Commit graph

  • f982df3cd7 * Update the user environments figure to show multiple profiles and users. * Change to base-32 hashes. Eelco Dolstra 2005-03-16 14:40:48 +0000
  • afc3a7b79b * Automake 1.9 compatibility. Eelco Dolstra 2005-03-16 10:46:33 +0000
  • 693ff4f6bf * Some more updates. Eelco Dolstra 2005-03-15 15:42:11 +0000
  • 62dbfbc45b * Remove Docbook EBNF dependency. Eelco Dolstra 2005-03-15 14:38:22 +0000
  • e301334696 * XInclude all the way. Eelco Dolstra 2005-03-15 13:55:41 +0000
  • b376565b86 * Manual updates. Eelco Dolstra 2005-03-15 13:21:32 +0000
  • bacd3a6cfa * Purify all corepkgs builders. Eelco Dolstra 2005-03-15 12:03:15 +0000
  • e52ae1c0ff * Use SHA-256 for nix-push. Eelco Dolstra 2005-03-15 11:12:48 +0000
  • 155c91b335 * Upgrade information. Eelco Dolstra 2005-03-14 18:56:02 +0000
  • 5675d5f488 * Idem. Eelco Dolstra 2005-03-14 18:55:46 +0000
  • 6fb5f7e532 * Pass `--base32' unless using MD5. Eelco Dolstra 2005-03-14 18:55:29 +0000
  • c757d16c8c * Bug in clearSubstitutes(). Eelco Dolstra 2005-03-14 18:54:40 +0000
  • bb2e53699f * Parse new hash format properly. Eelco Dolstra 2005-03-14 17:05:42 +0000
  • 5863f24722 * Print SHA-1 hashes in base-32 by default. Eelco Dolstra 2005-03-14 17:05:20 +0000
  • bd333b939c * Prefix hash algorithm in patch generator too. Eelco Dolstra 2005-03-14 16:46:19 +0000
  • 8eff18cd43 * 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. Eelco Dolstra 2005-03-14 15:09:53 +0000
  • 1562dfe9ba * 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. Eelco Dolstra 2005-03-14 14:03:41 +0000
  • 012b812698 * Preliminary NEWS for 0.8. Eelco Dolstra 2005-03-11 18:35:58 +0000
  • 536f324177 * nix-install-package: install outPath, not drvPath, for now. * nix-prefecth-url: print out in base-16. Eelco Dolstra 2005-03-11 15:27:37 +0000
  • 08df443618 * Check for duplicate attributes and formal parameters in Nix expressions. Eelco Dolstra 2005-03-10 11:33:46 +0000
  • 97c93526da * 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 Eelco Dolstra 2005-03-07 16:26:05 +0000
  • bfbc55cbc6 * Use XML::LibXML. Eelco Dolstra 2005-03-07 14:54:52 +0000
  • 543d7a41dc * Automatically add propagated build inputs to user environments. Maybe this is a bad idea. Eelco Dolstra 2005-03-07 13:27:56 +0000
  • 9a7f95882c * Basic blacklist checker. Each element in a user environment is checked against every item in a blacklist. Eelco Dolstra 2005-03-04 11:12:48 +0000
  • 4bbdcfbb45 * Don't use fork() in copyPath(), but a string buffer. Eelco Dolstra 2005-03-03 13:58:02 +0000
  • 9e6bca8765 * Channel fix. Eelco Dolstra 2005-03-03 13:10:52 +0000
  • 86cb3cc554 * Increase Berkeley DB limits a bit more. * Maintain the cleanup invariant in clearSubstitutes(). Eelco Dolstra 2005-03-03 13:10:44 +0000
  • 0107fba48e * Concept for a simple blacklist. Eelco Dolstra 2005-03-02 15:57:35 +0000
  • 07b4399fb6 * `nix-store -q --hash' to quickly query the hash of the contents of a store path (which is stored in the database). Eelco Dolstra 2005-03-02 15:57:06 +0000
  • 9e50e648a4 * Doh! Eelco Dolstra 2005-03-01 11:27:38 +0000
  • 8d364e5baa * Add missing file to dist. Eelco Dolstra 2005-03-01 11:27:22 +0000
  • db322a47ff * 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. Eelco Dolstra 2005-03-01 10:33:55 +0000
  • 2c4302dd7a * 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. Eelco Dolstra 2005-02-28 14:12:06 +0000
  • 8376fff151 * Add a version number to manifests. Eelco Dolstra 2005-02-25 16:12:52 +0000
  • 8d3c346559 * Pause if errors occur. Eelco Dolstra 2005-02-25 15:58:00 +0000
  • 6bafeafb88 * 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'). Eelco Dolstra 2005-02-25 15:42:52 +0000
  • 3259ae5811 * 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). Eelco Dolstra 2005-02-24 17:36:42 +0000
  • 95e870a113 * (Unnecessary) refactoring. Eelco Dolstra 2005-02-24 14:06:18 +0000
  • bfaf83a0fd * 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). Eelco Dolstra 2005-02-23 11:19:27 +0000
  • 3a2c3f0cf2 * Support for fixed-output hashes over directory trees (i.e., over the NAR dump of the path). Eelco Dolstra 2005-02-22 21:14:41 +0000
  • eda2c3c253 * Compatibility hack so that Nixpkgs can continue to do hash checking in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8. Eelco Dolstra 2005-02-22 15:23:24 +0000
  • 3c1630131e * 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. Eelco Dolstra 2005-02-18 09:50:20 +0000
  • 398463a72a * `make check' fix. Eelco Dolstra 2005-02-18 08:40:52 +0000
  • e0181f56be * 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 Eelco Dolstra 2005-02-17 15:57:46 +0000
  • 74ab0695b5 * Compatibility hack with older user environments. Eelco Dolstra 2005-02-17 15:48:50 +0000
  • 8a3a96dd5b * Switch to the calling user context for some more operations in a setuid installation. Eelco Dolstra 2005-02-17 13:55:18 +0000
  • 88273f9574 * Put build logs in $prefix/var/nix/log/drvs/. Eelco Dolstra 2005-02-17 13:54:45 +0000
  • fb5dae8694 * Fix nix-channel. * Add --help' flag; fixes NIX-5. * Add --remove' flag; fixes NIX-6. * Add `--list' flag. Eelco Dolstra 2005-02-17 10:06:12 +0000
  • 202d5bbda5 * Compatibility with older GCCs. Eelco Dolstra 2005-02-15 12:05:47 +0000
  • e17910cfb5 * And yet another installation source: the ability to copy user environment elements from one user environment to another, e.g., Eelco Dolstra 2005-02-15 10:49:31 +0000
  • 0083562f75 * Fix broken GC test. Eelco Dolstra 2005-02-15 09:39:12 +0000
  • 8992fce3da * It is now possible to add store derivations or paths directly to a user environment, e.g., Eelco Dolstra 2005-02-14 17:35:10 +0000
  • e446d342b7 * 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: Eelco Dolstra 2005-02-14 17:07:43 +0000
  • 0cb016c209 * Refactoring. Hope this doesn't break the semantics of `-u' ;-) Eelco Dolstra 2005-02-14 16:16:02 +0000
  • a04a5de8f7 * Implement the `gc-keep-derivations' global configuretion flag. Eelco Dolstra 2005-02-14 14:16:56 +0000
  • 6a8ef36fe6 * 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. Eelco Dolstra 2005-02-14 13:07:09 +0000
  • b0aba6ec2a * Don't keep the derivation symlink when creating profile generations. Eelco Dolstra 2005-02-14 10:44:57 +0000
  • 32429142cd * Type error in constructor call (caught by GCC 3.3, but not 3.4!). Eelco Dolstra 2005-02-14 09:53:11 +0000
  • 20ce2642fc * Refactoring to support different installation sources in nix-env. * Set the references for the user environment manifest properly. * Don't copy the manifest (this was accidental). * Don't store derivation paths in the manifest (maybe this should be made optional). This cleans up the semantics of nix-env, which were weird. * Hash on the output paths of activated components, not on derivation paths. This is because we don't know the derivation path of already installed components anymore, and it allows the installation of components by store path (skipping Nix expressions entirely). * Query options --out-path' and --drv-path' to show the output and derivation paths of components, respectively (the latter replaces the `--expr' query). Eelco Dolstra 2005-02-11 16:56:45 +0000
  • 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