summary refs log tree commit diff
path: root/corepkgs
AgeCommit message (Collapse)Author
2007-09-17* nix-env: allow ~/.nix-defexpr to be a directory. If it is, then theEelco Dolstra
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 Dolstra
;-) * 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 Dolstra
collision.
2007-05-01* Give unpacked channels more sensible names than 0, 1, ... They nowEelco Dolstra
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 Dolstra
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 Dolstra
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 Dolstra
for packages that should be propagated to the user environment.
2006-09-25* Propagated packages now have lower priority; they are symlinkedEelco Dolstra
*after* the packages that have been explicitly installed, and collisions are ignored.
2006-08-22* Revert unintentional commit.Eelco Dolstra
2006-08-16* `nix-instantiate --{eval|parse}-only --xml': print an XMLEelco Dolstra
representation instead of an ATerm. * Indent XML output.
2006-08-07* In nar.nix, path -> storePath, otherwise we get a collision betweenEelco Dolstra
environment variable names on Cygwin (where they are case insensitive).
2006-05-12* Support for srcdir != builddir (NIX-41).Eelco Dolstra
2005-07-22* Adhockery.Eelco Dolstra
2005-05-01* Be quiet when untarring a channel file.Eelco Dolstra
2005-04-07* Get rid of fetchurl, we don't need it anymore.Eelco Dolstra
2005-04-07* `nix-store --add-fixed' to preload the outputs of fixed-outputEelco Dolstra
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 Dolstra
2005-03-15* Use SHA-256 for nix-push.Eelco Dolstra
2005-03-14* Set NAR name to content hash; previous nix-push names were notEelco Dolstra
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 Dolstra
Maybe this is a bad idea.
2005-01-25* Really fix the substitute mechanism, i.e., ensure the closureEelco Dolstra
invariant by registering references through the manifest. * Added a test for nix-pull.
2005-01-17* Removed the `id' attribute hack.Eelco Dolstra
* 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 Dolstra
* Use the new patch downloader.
2004-12-13* Include the size of the bzipped archive (necessary for computing theEelco Dolstra
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 Dolstra
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 Dolstra
2004-10-25* New language feature: with expressions.Eelco Dolstra
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 Janssen
2004-06-21* Adapted nix-pull to use the new substitute mechanism.Eelco Dolstra
2004-04-21* Dist error.Eelco Dolstra
2004-04-21* Channels. These allow you to stay current with an evolving set ofEelco Dolstra
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 Dolstra
2004-04-06* Make the creation of user environments much faster and more storageEelco Dolstra
efficient by creating only a single symlink to entire directory trees unless a collission occurs.
2004-04-06* Switched from wget to curl.Eelco Dolstra
* Made the dependencies on bzip2 and the shell explicit.
2004-03-15* Make perl a dependency of Nix.Eelco Dolstra
2004-02-04* Fixed the old envpkgs filename.Eelco Dolstra
2003-12-30* RPM spec file.Eelco Dolstra
* Respect DESTDIR variable.
2003-11-24* Bug fix. Hmm, I thought I'd fixed this before :-|Eelco Dolstra
2003-11-22* Don't use a hard-coded path.Eelco Dolstra
2003-11-22* Fix nix-push.Eelco Dolstra
2003-11-22* Maintain integrity of the substitute and successor mappings whenEelco Dolstra
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 Dolstra
* Replace all directory reading code by a generic readDirectory() function.
2003-10-16* Substitutes and nix-pull now work again.Eelco Dolstra
* 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 Dolstra
* Fixed svn:ignore on externals/.
2003-10-02* Use passive FTP in wget.Eelco Dolstra
2003-10-02* Include the right files in a distribution.Eelco Dolstra
2003-08-28* Set a path.Eelco Dolstra
2003-08-28* nix-push generated invalid (old-style) slices.Eelco Dolstra
* nar.sh needs a path.
2003-08-15* A script `nix-prefetch-url' to fetch a URL, place it in the NixEelco Dolstra
store, and print its hash.
2003-08-06* `==' is not a valid operator.Eelco Dolstra