about summary refs log tree commit diff
path: root/corepkgs
AgeCommit message (Collapse)AuthorFilesLines
2007-09-17 * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then theEelco Dolstra1-10/+3
Nix expressions in that directory are combined into an attribute set {file1 = import file1; file2 = import file2; ...}, i.e. each Nix expression is an attribute with the file name as the attribute name. Also recurses into directories. * nix-env: removed the "--import" (-I) option which set the ~/.nix-defexpr symlink. * nix-channel: don't use "nix-env --import", instead symlink ~/.nix-defexpr/channels. So finally nix-channel --update doesn't override any default Nix expressions but combines with them. This means that you can have (say) a local Nixpkgs SVN tree and use it as a default for nix-env: $ ln -s .../path-to-nixpkgs-tree ~/.nix-defexpr/nixpkgs_svn and be subscribed to channels (including Nixpkgs) at the same time. (If there is any ambiguity, the -A flag can be used to disambiguate, e.g. "nix-env -i -A nixpkgs_svn.pan".)
2007-05-16 * New builtin function "isFunction". You're not supposed to use itEelco Dolstra1-1/+1
;-) * 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".
2007-05-02 * Set the right priorities when recovering from a directoryEelco Dolstra1-1/+1
collision.
2007-05-01 * Give unpacked channels more sensible names than 0, 1, ... They nowEelco Dolstra1-9/+20
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".
2007-04-27 * Package conflict resolution through priority levels. If there is aEelco Dolstra2-19/+45
user environment collission between two packages due to overlapping file names, then a package with a higher priority will overwrite the symlinks of a package with a lower priority. E.g., $ nix-env --set-flag priority 5 gcc $ nix-env --set-flag priority 10 binutils gives gcc a higher priority than binutils (higher number = lower priority).
2007-04-27 * Allow conflicting packages to be kept in a user environment, andEelco Dolstra2-3/+11
allow switching between them (NIX-80). Example: two versions of Pan: $ nix-env -q pan pan-0.128 pan-0.14.2.91 $ readlink $(which pan) /nix/store/l38jrbilw269drpjkx7kinhrxj6fjh59-pan-0.14.2.91/bin/pan At most one of them can be active any given time. Assuming than 0.14.2.91 is active, you can active 0.128 as follows: $ nix-env --set-flag active false pan-0.14.2.91 $ nix-env --set-flag active true pan-0.128 $ readlink $(which pan) /nix/store/nziqwnlzy7xl385kglxhg75pfl5i936n-pan-0.128/bin/pan More flags to follow.
2006-09-25 * Use "propagated-user-env-packages", not "propagated-build-inputs"Eelco Dolstra1-1/+1
for packages that should be propagated to the user environment.
2006-09-25 * Propagated packages now have lower priority; they are symlinkedEelco Dolstra1-14/+39
*after* the packages that have been explicitly installed, and collisions are ignored.
2006-08-22 * Revert unintentional commit.Eelco Dolstra1-1/+1
2006-08-16 * `nix-instantiate --{eval|parse}-only --xml': print an XMLEelco Dolstra1-1/+1
representation instead of an ATerm. * Indent XML output.
2006-08-07 * In nar.nix, path -> storePath, otherwise we get a collision betweenEelco Dolstra2-4/+6
environment variable names on Cygwin (where they are case insensitive).
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra3-3/+3
2005-07-22 * Adhockery.Eelco Dolstra1-0/+1
2005-05-01 * Be quiet when untarring a channel file.Eelco Dolstra1-1/+1
2005-04-07 * Get rid of fetchurl, we don't need it anymore.Eelco Dolstra4-40/+1
2005-04-07 * `nix-store --add-fixed' to preload the outputs of fixed-outputEelco Dolstra1-7/+1
derivations. This is mostly to simplify the implementation of nix-prefetch-{url, svn}, which now work properly in setuid installations. * Enforce valid store names in `nix-store --add / --add-fixed'.
2005-03-15 * Purify all corepkgs builders.Eelco Dolstra3-15/+8
2005-03-15 * Use SHA-256 for nix-push.Eelco Dolstra2-5/+4
2005-03-14 * Set NAR name to content hash; previous nix-push names were notEelco Dolstra1-1/+3
unique. * Drop `hashAlgo' attribute in manifests; prefix hashes with the hash algorithm instead.
2005-03-07 * Automatically add propagated build inputs to user environments.Eelco Dolstra1-1/+15
Maybe this is a bad idea.
2005-01-25 * Really fix the substitute mechanism, i.e., ensure the closureEelco Dolstra4-21/+4
invariant by registering references through the manifest. * Added a test for nix-pull.
2005-01-17 * Removed the `id' attribute hack.Eelco Dolstra2-9/+18
* Formalise the notion of fixed-output derivations, i.e., derivations for which a cryptographic hash of the output is known in advance. Changes to such derivations should not propagate upwards through the dependency graph. Previously this was done by specifying the hash component of the output path through the `id' attribute, but this is insecure since you can lie about it (i.e., you can specify any hash and then produce a completely different output). Now the responsibility for checking the output is moved from the builder to Nix itself. A fixed-output derivation can be created by specifying the `outputHash' and `outputHashAlgo' attributes, the latter taking values `md5', `sha1', and `sha256', and the former specifying the actual hash in hexadecimal or in base-32 (auto-detected by looking at the length of the attribute value). MD5 is included for compatibility but should be considered deprecated. * Removed the `drvPath' pseudo-attribute in derivation results. It's no longer necessary. * Cleaned up the support for multiple output paths in derivation store expressions. Each output now has a unique identifier (e.g., `out', `devel', `docs'). Previously there was no way to tell output paths apart at the store expression level. * `nix-hash' now has a flag `--base32' to specify that the hash should be printed in base-32 notation. * `fetchurl' accepts parameters `sha256' and `sha1' in addition to `md5'. * `nix-prefetch-url' now prints out a SHA-1 hash in base-32. (TODO: a flag to specify the hash.)
2004-12-20 * Place manifests in /nix/var/nix/manifests.Eelco Dolstra5-271/+1
* Use the new patch downloader.
2004-12-13 * Include the size of the bzipped archive (necessary for computing theEelco Dolstra1-4/+8
cheapest download path), as well as the hash of the contents of the path (necessary for checking patch applicability).
2004-12-13 * Patch deployment. `download.pl' (intended to be used in theEelco Dolstra1-0/+218
substitute mechanism) creates a store path by downloading full NAR archives and/or patches specified in the available manifests. Any combination of present paths, full downloads, and patches can be used to construct the target path. In particular, patches can be chained in sequence; and full NAR archives of the target path can be omitted (i.e., patch-only deployment is possible). A shortest path algorithm is used to find the smallest set of files to be downloaded (the edge weights are currently file sizes, but one can imagine taking the network speed to the various source into account). Patches are binary deltas between two store paths. To be precise, they are the output of the `bsdiff' program applied to the NAR archives obtained by dumping (`nix-store --dump') the two store paths. The advantage of diff'ing NAR archives (and not, say, doing file-by-file diffs) is that file renames/moves are handled automatically. The disadvantage is that we cannot optimise creation of unchanged files (by hard-linking).
2004-11-08 * Check exit status of pipe elements.Eelco Dolstra1-0/+2
2004-10-25 * New language feature: with expressions.Eelco Dolstra1-1/+1
The expression `with E1; E2' evaluates to E2 with all bindings in the attribute set E1 substituted. E.g., with {x = 123;}; x evaluates to 123. That is, the attribute set E1 is in scope in E2. This is particularly useful when importing files containing lots definitions. E.g., instead of let { inherit (import ./foo.nix) a b c d e f; body = ... a ... f ...; } we can now say with import ./foo.nix; ... a ... f ... I.e., we don't have to say what variables should be brought into scope.
2004-09-19 * prevent collision on log directoryNiels Janssen1-1/+2
2004-06-21 * Adapted nix-pull to use the new substitute mechanism.Eelco Dolstra4-1/+53
2004-04-21 * Dist error.Eelco Dolstra1-1/+1
2004-04-21 * Channels. These allow you to stay current with an evolving set ofEelco Dolstra5-5/+47
Nix expressions. To subscribe to a channel (needs to be done only once): nix-channel --add \ http://catamaran.labs.cs.uu.nl/dist/nix/channels/nixpkgs-unstable This just adds the given URL to ~/.nix-channels (which can also be edited manually). To update from all channels: nix-channel --update This fetches the latest expressions and pulls cache manifests. The default Nix expression (~/.nix-defexpr) is made to point to the conjunction of the expressions downloaded from all channels. So to update all installed derivations in the current user environment: nix-channel --update nix-env --upgrade '*' If you are really courageous, you can put this in a cronjob or something. You can subscribe to multiple channels. It is not entirely clear what happens when there are name clashes between derivations from different channels. From nix-env/main.cc it appears that the one with the lowest (highest?) hash will be used, which is pretty meaningless.
2004-04-14 * Use @storedir@, not @prefix@/store.Eelco Dolstra1-1/+1
2004-04-06 * Make the creation of user environments much faster and more storageEelco Dolstra1-45/+66
efficient by creating only a single symlink to entire directory trees unless a collission occurs.
2004-04-06 * Switched from wget to curl.Eelco Dolstra3-13/+12
* Made the dependencies on bzip2 and the shell explicit.
2004-03-15 * Make perl a dependency of Nix.Eelco Dolstra2-2/+4
2004-02-04 * Fixed the old envpkgs filename.Eelco Dolstra1-1/+1
2003-12-30 * RPM spec file.Eelco Dolstra3-14/+14
* Respect DESTDIR variable.
2003-11-24 * Bug fix. Hmm, I thought I'd fixed this before :-|Eelco Dolstra1-2/+2
2003-11-22 * Don't use a hard-coded path.Eelco Dolstra2-1/+10
2003-11-22 * Fix nix-push.Eelco Dolstra7-25/+22
2003-11-22 * Maintain integrity of the substitute and successor mappings whenEelco Dolstra4-15/+14
deleting a path in the store. * Allow absolute paths in Nix expressions. * Get nix-prefetch-url to work again. * Various other fixes.
2003-11-19 * nix-env: a tool to manage user environments.Eelco Dolstra2-0/+81
* Replace all directory reading code by a generic readDirectory() function.
2003-10-16 * Substitutes and nix-pull now work again.Eelco Dolstra1-3/+3
* 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).
2003-10-16 * Get nix-push to work again.Eelco Dolstra1-4/+4
* Fixed svn:ignore on externals/.
2003-10-02 * Use passive FTP in wget.Eelco Dolstra1-1/+1
2003-10-02 * Include the right files in a distribution.Eelco Dolstra2-2/+2
2003-08-28 * Set a path.Eelco Dolstra1-0/+2
2003-08-28 * nix-push generated invalid (old-style) slices.Eelco Dolstra1-0/+2
* nar.sh needs a path.
2003-08-15 * A script `nix-prefetch-url' to fetch a URL, place it in the NixEelco Dolstra1-1/+10
store, and print its hash.
2003-08-06 * `==' is not a valid operator.Eelco Dolstra1-1/+1