about summary refs log tree commit diff
path: root/scripts/nix-channel.in
AgeCommit message (Collapse)AuthorFilesLines
2012-08-01 nix-channel: Use binary caches advertised by channelsEelco Dolstra1-17/+20
Channels can now advertise a binary cache by creating a file <channel-url>/binary-cache-url. The channel unpacker puts these in its "binary-caches" subdirectory. Thus, the URLS of the binary caches for the channels added by root appear in /nix/var/nix/profiles/per-user/eelco/channels/binary-caches/*. The binary cache substituter reads these and adds them to the list of binary caches.
2012-07-11 Add some missing --version switchesEelco Dolstra1-0/+5
2012-05-07 nix-channel --update: allow updating only the specified channelsEelco Dolstra1-3/+6
2012-05-01 Use mkpath instead of make_pathEelco Dolstra1-2/+2
Perl <= 5.10 doesn't have make_path. See e.g. http://hydra.nixos.org/build/2493981.
2012-04-18 Fix URL set by nix-channelEelco Dolstra1-1/+1
2012-04-16 Hack to prevent accumulation of old manifestsEelco Dolstra1-0/+2
2012-04-14 If the (redirected) channel URL contains a version number, use itEelco Dolstra1-1/+7
2012-04-14 Follow redirects early to ensure consistency between the manifest and the ↵Eelco Dolstra1-0/+8
tarball Without this change, if the URL is a redirect that changes in between, we can get a manifest that doesn't match the tarball.
2012-04-14 nix-channel improvementsEelco Dolstra1-69/+60
"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-02-02 * nix-channel: fail if we don't have write permission to the manifestsEelco Dolstra1-13/+7
directory. Previously in this situation we did add the Nix expressions from the channel to allow installation from source, but this doesn't work for binary-only channels and leads to confusing error messages.
2012-01-05 * Doh!Eelco Dolstra1-1/+1
2012-01-05 * Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra1-1/+1
scripts. * Include the version and architecture in the -I flag so that there is at least a chance that a Nix binary built for one Perl version will run on another version.
2012-01-03 * Add a test for nix-channel.Eelco Dolstra1-12/+10
* Refactor the nix-channel unpacker a bit.
2011-10-10 * Set the executable bit on scripts.Eelco Dolstra1-0/+0
2009-12-09 * When doing a nix-pull, remove old manifests downloaded from the sameEelco Dolstra1-5/+0
URL. This prevents lots of old cruft accumulating in /nix/var/nix/manifests.
2009-11-13 * In nix-pull/nix-channel, create the manifests directory if itEelco Dolstra1-0/+3
doesn't exist. The Debian packages don't include the manifests directory, so nix-channel would silently skip doing a nix-pull, resulting in everything being built from source. Thanks to Juan Pedro Bolívar Puente.
2009-02-27 * nix-channel: use nix-build.Eelco Dolstra1-8/+6
2007-09-17 * nix-env: allow ~/.nix-defexpr to be a directory. If it is, then theEelco Dolstra1-3/+8
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-08-22 * nix-channel: supports users who don't have write permission to theEelco Dolstra1-12/+21
manifests directory. In that case, we don't do a nix-pull, so the user gets pure source deployment. The directory /nix/var/nix/gcroots/per-user/$USER should be writable. (It's created automatically if /nix/var/nix/gcroots/per-user is writable, e.g. if it has 1777 permission.)
2007-08-12 * Get rid of the substitutes database table (NIX-47). Instead, if weEelco Dolstra1-4/+0
need any info on substitutable paths, we just call the substituters (such as download-using-manifests.pl) directly. This means that it's no longer necessary for nix-pull to register substitutes or for nix-channel to clear them, which makes those operations much faster (NIX-95). Also, we don't have to worry about keeping nix-pull manifests (in /nix/var/nix/manifests) and the database in sync with each other. The downside is that there is some overhead in calling an external program to get the substitutes info. For instance, "nix-env -qas" takes a bit longer. Abolishing the substitutes table also makes the logic in local-store.cc simpler, as we don't need to store info for invalid paths. On the downside, you cannot do things like "nix-store -qR" on a substitutable but invalid path (but nobody did that anyway). * Never catch interrupts (the Interrupted exception).
2007-08-10 * Enable nix-prefetch-url caching in nix-channel.Eelco Dolstra1-0/+6
2007-08-09 * nix-prefetch-url: support caching. If the environment variableEelco Dolstra1-1/+2
NIX_DOWNLOAD_CACHE is set, then nix-prefetch-url will store the hash and timestamp of downloaded files in the directory $NIX_DOWNLOAD_CACHE. This allows it to figure out if the file is still in the Nix store.
2007-05-02 (no commit message)Eelco Dolstra1-1/+0
2007-05-01 * Give unpacked channels more sensible names than 0, 1, ... They nowEelco Dolstra1-8/+9
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".
2006-11-18 * Show more progress.Eelco Dolstra1-1/+3
2006-09-25 * In `nix-channel --update', skip manifests that assume a Nix store atEelco Dolstra1-1/+2
a different location than the user's. This makes channels usable as a source deployment mechanism for people who install Nix under non-standard prefixes. (NIX-57)
2006-09-25 * Clean up calls to system().Eelco Dolstra1-6/+6
2006-05-08 * Remove old manifests in `nix-channel --update'.Eelco Dolstra1-0/+8
2006-02-01 * Add @bindir@.Eelco Dolstra1-1/+1
2005-04-07 * Get rid of fetchurl, we don't need it anymore.Eelco Dolstra1-8/+8
2005-03-03 * Channel fix.Eelco Dolstra1-1/+1
2005-02-17 * Fix nix-channel.Eelco Dolstra1-19/+57
* Add `--help' flag; fixes NIX-5. * Add `--remove' flag; fixes NIX-6. * Add `--list' flag.
2004-12-20 * Place manifests in /nix/var/nix/manifests.Eelco Dolstra1-0/+0
* Use the new patch downloader.
2004-12-20 * Sync with changed substitute mechanism.Eelco Dolstra1-0/+4
* Accept the NarHash line. * Clear substitutes in `nix-channel --update'.
2004-11-04 * Better error messages.Eelco Dolstra1-4/+4
2004-10-20 * Register channels as roots of the garbage collector (inEelco Dolstra1-2/+19
$(localstatedir)/nix/gcroots/channels). * In setuid installations, create gcroots/tmp and gcroots/channels group-writable.
2004-04-21 * Channels. These allow you to stay current with an evolving set ofEelco Dolstra1-0/+115
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.