about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2005-03-02 * `nix-store -q --hash' to quickly query the hash of the contents of aEelco Dolstra3-6/+28
store path (which is stored in the database).
2005-03-01 * Doh!Eelco Dolstra1-1/+1
2005-03-01 * Add missing file to dist.Eelco Dolstra1-1/+2
2005-03-01 * Use a weighted use heuristic to disambiguate between multipleEelco Dolstra1-8/+77
occurances of a component. If the shortest path distance between a component P and Q in the referers graph is D, then the contribution of Q to the use of P is 1 / R^D, where R >= 1, typically 2. This expresses that distant indirect uses are less important than nearby uses. For instance, this can disambiguate between the bootstrap GCC in Nixpkgs and the GCC of the final stdenv (the former has more uses, but they are further away), and between the GCC of the final stdenv and the GCC+G77 build (the latter has very few uses).
2005-02-28 * Added a disambiguation heuristic: if two components have the sameEelco Dolstra2-4/+24
name but differ to much in sice (by more than a factor of 3), then never generate a patch.
2005-02-25 * Add a version number to manifests.Eelco Dolstra3-2/+16
2005-02-25 * Pause if errors occur.Eelco Dolstra1-1/+1
2005-02-25 * nix-install-package: Use the new (trivial) package format generatedEelco Dolstra1-21/+34
by the build farm. See e.g., http://catamaran.labs.cs.uu.nl/dist/nixpkgs-0.8/nixpkgs-0.7pre2302/; the user can click on packages, and they will be installed (assuming the `application/nix-package' MIME type has been associated with `nix-install-package'). Nix expressions are no longer involved: a "package" is just a pointer to a manifest, and the top-level store derivation to be added to the user environment. This makes these packages independent from Nix expression evolution. Note that we install the store derivation ($drvPath), not the resulting output path ($outPath). This is equivalent, except that installing the derivation maintains the back-link from the output path to the derivation that built it. This is useful for maintenance. * Automatically re-exec in an xterm so that the user sees something when `nix-install-package' is run from a browser.
2005-02-24 * Properly specify the hash algorithm in the manifests, and read itEelco Dolstra4-13/+31
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).
2005-02-24 * (Unnecessary) refactoring.Eelco Dolstra1-29/+36
2005-02-23 * When multiple derivations are specified in `nix-store -r', don'tEelco Dolstra1-62/+50
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).
2005-02-22 * Support for fixed-output hashes over directory trees (i.e., over theEelco Dolstra3-16/+35
NAR dump of the path).
2005-02-22 * Compatibility hack so that Nixpkgs can continue to do hash checkingEelco Dolstra2-1/+10
in `fetchurl' in Nix <= 0.7, but doesn't in Nix 0.8.
2005-02-18 * Subtle bug in the builder: if a subgoal that is instantiatedEelco Dolstra1-31/+30
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.
2005-02-18 * `make check' fix.Eelco Dolstra1-1/+1
2005-02-17 * `nix-store -q --tree' shows a tree representing the dependency graphEelco Dolstra2-2/+87
of the given derivation. Useful for getting a quick overview of how something was built. E.g., to find out how the `baffle' program in your user environment was built, you can do $ nix-store -q --tree $(nix-store -qd $(which baffle)) Tree nesting depth is minimised (?) by topologically sorting paths under the relation A < B iff A \in closure(B).
2005-02-17 * Compatibility hack with older user environments.Eelco Dolstra1-1/+3
2005-02-17 * Switch to the calling user context for some more operations in aEelco Dolstra2-2/+6
setuid installation.
2005-02-17 * Put build logs in $prefix/var/nix/log/drvs/.Eelco Dolstra2-1/+2
2005-02-17 * Fix nix-channel.Eelco Dolstra2-25/+63
* Add `--help' flag; fixes NIX-5. * Add `--remove' flag; fixes NIX-6. * Add `--list' flag.
2005-02-15 * Compatibility with older GCCs.Eelco Dolstra1-5/+15
2005-02-15 * And yet another installation source: the ability to copy userEelco Dolstra1-34/+46
environment elements from one user environment to another, e.g., $ nix-env -i --from-profile /nix/var/nix/profiles/other-profile aterm copies the `aterm' component installed in the `other-profile' to the user's current profile.
2005-02-15 * Fix broken GC test.Eelco Dolstra2-1/+9
2005-02-14 * It is now possible to add store derivations or paths directly to aEelco Dolstra4-10/+52
user environment, e.g., $ nix-env -i /nix/store/z58v41v21xd3ywrqk1vmvdwlagjx7f10-aterm-2.3.1.drv or $ nix-env -i /nix/store/hsyj5pbn0d9iz7q0aj0fga7cpaadvp1l-aterm-2.3.1 This is useful because it allows Nix expressions to be bypassed entirely. For instance, if only a nix-pull manifest is provided, plus the top-level path of some component, it can be installed without having to supply the Nix expression (e.g., for obfuscation, or to be independent of Nix expression language changes or context dependencies).
2005-02-14 * Added an installation source `--from-expression' (or `-E') toEelco Dolstra1-8/+22
install derivations from a Nix expression specified on the command line. This is particularly useful for disambiguation if there are multiple derivations with the same name. For instance, in Nixpkgs, to install the Firefox wrapper rather than the plain Firefox component: $ nix-env -f .../i686-linux.nix -i -E 'x: x.firefoxWrapper' The Nix expressions should be functions to which the default Nix expression (in this case, `i686-linux.nix') is passed, hence `x: ...'. This might also be a nice way to deal with high-level (user-level) variability, e.g., $ nix-env -f ./server.nix -i -E 'x: x {port = 8080; ssl = false;}'
2005-02-14 * Refactoring. Hope this doesn't break the semantics of `-u' ;-)Eelco Dolstra3-163/+171
2005-02-14 * Implement the `gc-keep-derivations' global configuretion flag.Eelco Dolstra1-1/+14
2005-02-14 * Global configuration option `env-keep-derivations' to store pointerEelco Dolstra5-35/+72
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.
2005-02-14 * Don't keep the derivation symlink when creating profile generations.Eelco Dolstra1-11/+6
2005-02-14 * Type error in constructor call (caught by GCC 3.3, but not 3.4!).Eelco Dolstra1-1/+1
2005-02-11 * Refactoring to support different installation sources in nix-env.Eelco Dolstra5-61/+125
* 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).
2005-02-11 * Input sources should be in the set of all referenceable paths too.Eelco Dolstra2-6/+6
2005-02-09 * Commit more often to prevent out-of-memory errors.Eelco Dolstra3-4/+22
2005-02-09 * Propagate the deriver of a path through the substitute mechanism.Eelco Dolstra18-74/+86
* 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.
2005-02-09 * Automatically upgrade <= 0.7 Nix stores to the new schema (so thatEelco Dolstra8-23/+154
existing user environments continue to work). * `nix-store --verify': detect incomplete closures.
2005-02-08 * Subflag in `--verify': `nix-store --verify --check-contents' checksEelco Dolstra3-11/+47
that the contents of store paths has not changed by comparing hashes of their current contents to the hashes stored in the database.
2005-02-08 * Updated `nix-store --verify' to the new schema.Eelco Dolstra6-26/+106
2005-02-08 * Set umask to prevent permission problems.Eelco Dolstra1-0/+4
2005-02-08 * Better error reporting in readmanifest.Eelco Dolstra2-2/+3
* Use force flag in `mv' to prevent silly interactive questions (this happens with shared Nix stores).
2005-02-07 * `nix-store -qb' to query derivation environment bindings. UsefulEelco Dolstra4-16/+60
for finding build-time dependencies (possibly after a build). E.g., $ nix-store -qb aterm $(nix-store -qd $(which strc)) /nix/store/jw7c7s65n1gwhxpn35j9rgcci6ilzxym-aterm-2.3.1 * Arguments to nix-store can be files within store objects, e.g., /nix/store/jw7c...-aterm-2.3.1/bin/baffle. * Idem for garbage collector roots.
2005-02-07 * Maintain a database table (`derivers') that maps output paths to theEelco Dolstra4-13/+74
derivation that produced them. * `nix-store -qd PATH' prints out the derivation that produced a path.
2005-02-01 * A GC setting `gc-keep-outputs' to specify whether output paths ofEelco Dolstra7-7/+102
derivations should be kept.
2005-02-01 * Added a global configuration file (/nix/etc/nix/nix.conf). ItEelco Dolstra2-1/+37
contains options for the garbage collector right now, but other stuff can be added here later.
2005-02-01 * Remove debug code.Eelco Dolstra1-2/+2
2005-02-01 * Make check fixes.Eelco Dolstra5-15/+13
2005-02-01 * Move root finding from `nix-collect-garbage' to `nix-store --gc'.Eelco Dolstra4-112/+76
This was necessary becase root finding must be done after acquisition of the global GC lock. This makes `nix-collect-garbage' obsolete; it is now just a wrapper around `nix-store --gc'. * Automatically remove stale GC roots (i.e., indirect GC roots that point to non-existent paths).
2005-02-01 * nix-build: use an indirection scheme to make it easier for users toEelco Dolstra7-49/+100
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.
2005-02-01 * nix-store, nix-instantiate: added an option `--add-root' toEelco Dolstra11-17/+165
immediately add the result as a permanent GC root. This is the only way to prevent a race with the garbage collector. For instance, the old style ln -s $(nix-store -r $(nix-instantiate foo.nix)) \ /nix/var/nix/gcroots/result has two time windows in which the garbage collector can interfere (by GC'ing the derivation and the output, respectively). On the other hand, nix-store --add-root /nix/var/nix/gcroots/result -r \ $(nix-instantiate --add-root /nix/var/nix/gcroots/drv \ foo.nix) is safe. * nix-build: use `--add-root' to prevent GC races.
2005-02-01 * Get rid of hardcoded paths.Eelco Dolstra1-7/+7
2005-02-01 * Add missing files to dist.Eelco Dolstra4-5/+14
* Fix GC and substitute bugs related to self-references. Add a regression test.