aboutsummaryrefslogtreecommitdiff
path: root/scripts/nix-channel.in
AgeCommit message (Collapse)Author
2014-08-29Shut up "Wide character" warnings in Perl scriptsEelco Dolstra
2014-08-20Use proper quotes everywhereEelco Dolstra
2014-02-26Fix broken patchEelco Dolstra
2014-02-26use USER environmental variable if getting user id by getpwuid is failed in ↵Ian-Woo Kim
perl scripts: download-from-binary-cache.pl and nix-channel
2012-12-05Support xz compression of nixexprs.tar in channelsEelco Dolstra
2012-10-03When ‘--help’ is given, just run ‘man’ to show the manual pageEelco Dolstra
I.e. do what git does. I'm too lazy to keep the builtin help text up to date :-) Also add ‘--help’ to various commands that lacked it (e.g. nix-collect-garbage).
2012-09-13nix-channel: Add option to force fetching of manifestsEelco Dolstra
2012-09-13Delete manifests in "nix-channel --remove" or when a binary cache is availableEelco Dolstra
2012-08-01nix-channel: Use binary caches advertised by channelsEelco Dolstra
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-11Add some missing --version switchesEelco Dolstra
2012-05-07nix-channel --update: allow updating only the specified channelsEelco Dolstra
2012-05-01Use mkpath instead of make_pathEelco Dolstra
Perl <= 5.10 doesn't have make_path. See e.g. http://hydra.nixos.org/build/2493981.
2012-04-18Fix URL set by nix-channelEelco Dolstra
2012-04-16Hack to prevent accumulation of old manifestsEelco Dolstra
2012-04-14If the (redirected) channel URL contains a version number, use itEelco Dolstra
2012-04-14Follow redirects early to ensure consistency between the manifest and the ↵Eelco Dolstra
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-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-02-02* nix-channel: fail if we don't have write permission to the manifestsEelco Dolstra
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 Dolstra
2012-01-05* Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra
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 Dolstra
* Refactor the nix-channel unpacker a bit.
2011-10-10* Set the executable bit on scripts.Eelco Dolstra
2009-12-09* When doing a nix-pull, remove old manifests downloaded from the sameEelco Dolstra
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 Dolstra
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 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-08-22* nix-channel: supports users who don't have write permission to theEelco Dolstra
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 Dolstra
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 Dolstra
2007-08-09* nix-prefetch-url: support caching. If the environment variableEelco Dolstra
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 Dolstra
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".
2006-11-18* Show more progress.Eelco Dolstra
2006-09-25* In `nix-channel --update', skip manifests that assume a Nix store atEelco Dolstra
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 Dolstra
2006-05-08* Remove old manifests in `nix-channel --update'.Eelco Dolstra
2006-02-01* Add @bindir@.Eelco Dolstra
2005-04-07* Get rid of fetchurl, we don't need it anymore.Eelco Dolstra
2005-03-03* Channel fix.Eelco Dolstra
2005-02-17* Fix nix-channel.Eelco Dolstra
* 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 Dolstra
* Use the new patch downloader.
2004-12-20* Sync with changed substitute mechanism.Eelco Dolstra
* Accept the NarHash line. * Clear substitutes in `nix-channel --update'.
2004-11-04* Better error messages.Eelco Dolstra
2004-10-20* Register channels as roots of the garbage collector (inEelco Dolstra
$(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 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.