summary refs log tree commit diff
path: root/corepkgs
AgeCommit message (Collapse)Author
2012-07-26Merge branch 'master' into no-manifestsEelco Dolstra
2012-07-25import: If the path is a valid .drv file, parse it and generate a derivation ↵Shea Levy
attrset. The generated attrset has drvPath and outPath with the right string context, type 'derivation', outputName with the right name, all with a list of outputs, and an attribute for each output. I see three uses for this (though certainly there may be more): * Using derivations generated by something besides nix-instantiate (e.g. guix) * Allowing packages provided by channels to be used in nix expressions. If a channel installed a valid deriver for each package it provides into the store, then those could be imported and used as dependencies or installed in environment.systemPackages, for example. * Enable hydra to be consistent in how it treats inputs that are outputs of another build. Right now, if an input is passed as an argument to the job, it is passed as a derivation, but if it is accessed via NIX_PATH (i.e. through the <> syntax), then it is a path that can be imported. This is problematic because the build being depended upon may have been built with non-obvious arguments passed to its jobset file. With this feature, hydra can just set the name of that input to the path to its drv file in NIX_PATH
2012-07-11Merge branch 'master' of github.com:NixOS/nix into no-manifestsEelco Dolstra
2012-07-09Pass --insecure to curl so that https worksEelco Dolstra
2012-07-09Inline fetchurl.shEelco Dolstra
2012-07-09Remove obsolete commentShea Levy
2012-07-09corepkgs/fetchurl: Build locally and outside of the chrootShea Levy
2012-07-09corepkgs/fetchurl: the 'system' argument can be optionalShea Levy
2012-07-09corepkgs: distribute fetchurl filesShea Levy
2012-07-09corepkgs/fetchurl: Call the shell directly instead of using the shebangShea Levy
2012-07-09corepkgs/fetchurl.sh: Use config.nix's curlShea Levy
2012-07-09The fetchurl builder is now fetchurl.shShea Levy
2012-07-09Remove old fetchurl makefileShea Levy
2012-07-09Move fetchurl files out of their subdirectoryShea Levy
2012-07-09corepkgs/config.nix.in: We'll need curlShea Levy
2012-07-09Resurrect old corepkgs fetchurlShea Levy
2012-07-01Fix xz compressionEelco Dolstra
2012-07-01Allow both bzip2 and xz compressionEelco Dolstra
2012-06-29Use XZ compression in binary cachesEelco Dolstra
XZ compresses significantly better than bzip2. Here are the compression ratios and execution times (using 4 cores in parallel) on my /var/run/current-system (3.1 GiB): bzip2: total compressed size 849.56 MiB, 30.8% [2m08] xz -6: total compressed size 641.84 MiB, 23.4% [6m53] xz -7: total compressed size 621.82 MiB, 22.6% [7m19] xz -8: total compressed size 599.33 MiB, 21.8% [7m18] xz -9: total compressed size 588.18 MiB, 21.4% [7m40] Note that compression takes much longer. More importantly, however, decompression is much faster: bzip2: 1m47.274s xz -6: 0m55.446s xz -7: 0m54.119s xz -8: 0m52.388s xz -9: 0m51.842s The only downside to using -9 is that decompression takes a fair amount (~65 MB) of memory.
2012-05-09Disable building in chroot for Nix's corepkgsEelco Dolstra
The dependencies of the corepkgs are not necessarily in the chroot (or in the Nix store), so don't build them in a chroot.
2012-04-26Don't use the build hook for unpacking channelsEelco Dolstra
2012-04-14If the (redirected) channel URL contains a version number, use itEelco Dolstra
2012-04-14Remove unnecessary "system" argumentEelco Dolstra
2012-04-14nix-channel improvementsEelco Dolstra
"nix-channel --add" now accepts a second argument: the channel name. This allows channels to have a nicer name than (say) nixpkgs_unstable. If no name is given, it defaults to the last component of the URL (with "-unstable" or "-stable" removed). Also, channels are now stored in a profile (/nix/var/nix/profiles/per-user/$USER/channels). One advantage of this is that it allows rollbacks (e.g. if "nix-channel --update" gives an undesirable update).
2012-01-04* currentOutput -> outputName. "current" implies some temporalEelco Dolstra
aspect.
2012-01-04* Export the original input attributes of the derivation inEelco Dolstra
‘drvAttrs’. This will simplify the implementation of functions such as ‘overrideDerivation’ in Nixpkgs, which need to filter out any added attributes such as outPath.
2012-01-04* Simplify the implementation of "derivation" a bit: lift out theEelco Dolstra
common attribution so that they're evaluated only once, etc. Note that the default output is now the first element of the "outputs" attribute, rather than the first element of the sorted list of outputs. This seems more user-friendly.
2012-01-03* Drop the inefficient "Path" suffix in output attribute names.Eelco Dolstra
2012-01-03* Move the implementation of the ‘derivation’ primop into a separateEelco Dolstra
file.
2012-01-03* Forgot to add.Eelco Dolstra
2012-01-03* Add a test for nix-channel.Eelco Dolstra
* Refactor the nix-channel unpacker a bit.
2012-01-03* Refactoring: Get rid of a few subdirectories in corepkgs/, and someEelco Dolstra
other simplifications. * Use <nix/...> to locate the corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's pipefail option in the NAR builder so that we don't need to create a temporary file.
2011-11-05* Fix the broken reference to bunzip2 in the channel unpack script.Eelco Dolstra
2011-10-10* Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra
the Nix:: namespace.
2010-11-17* nix-push: no need to compute the NAR hash, since the Nix databaseEelco Dolstra
already has it (`nix-store -q --hash').
2010-08-04* Allow derivations to hint that they should not be built remotelyEelco Dolstra
using the build hook mechanism, by setting the derivation attribute "preferLocalBuild" to true. This has a few use cases: - The user environment builder. Since it just creates a bunch of symlinks without much computation, there is no reason to do it remotely. In fact, doing it remotely requires the entire closure of the user environment to be copied to the remote machine, which is extremely wasteful. - `fetchurl'. Performing the download on a remote machine and then copying it to the local machine involves twice as much network traffic as performing the download locally, and doesn't save any CPU cycles on the local machine.
2010-05-07* Sync with the trunk.Eelco Dolstra
2010-05-05buildenv: Special-case Python's `site.py' and `site.pyc'.Ludovic Courtès
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `site.py' and `site.pyc' files.
2010-05-03buildenv: Special-case Python's `easy-install.pth' files.Ludovic Courtès
* corepkgs/buildenv/builder.pl.in (createLinks): Skip `easy-install.pth' files. Comment the hack.
2010-04-21* Store user environment manifests as a Nix expression inEelco Dolstra
$out/manifest.nix rather than as an ATerm. (Hm, I thought I committed this two days ago...)
2010-02-02* Ugly hack to make `nix-channel' work on Cygwin.Eelco Dolstra
2009-03-03* Allow the channel to declare a name for itself.Eelco Dolstra
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.