aboutsummaryrefslogtreecommitdiff
path: root/scripts/Makefile.am
AgeCommit message (Collapse)Author
2012-06-29First attempt at the manifest-less substituterEelco Dolstra
2012-05-31Update nix profile: - incorporate NixOS's configuration so that nix is ↵Michel Alexandre Salim
usable by normal users - install as a data file, not a program file
2011-10-11* Move SSH.pm.Eelco Dolstra
2011-10-10* Set the executable bit on scripts.Eelco Dolstra
2011-10-10(no commit message)Eelco Dolstra
2011-10-10* Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra
the Nix:: namespace.
2010-12-05* Use CamelCase for the Perl modules.Eelco Dolstra
2010-12-05* Add a script `nix-generate-patches'.Eelco Dolstra
* Fix the binary patching test.
2010-11-29* Move the patch generator into a module.Eelco Dolstra
2010-02-03* nix-copy-closure: start only one SSH connection to the server, orEelco Dolstra
recycle an already existing connection (using OpenSSH's connection sharing feature).
2008-11-18* Get rid of nix-pack-closure / nix-unpack-closure, they're redundant.Eelco Dolstra
2008-08-29Added nix-http-export.cgi to extra distributed scripts; so it can be ↵Michael Raskin
installed from releases, not only from SVN.
2008-07-23* Make sure that copy-from-other-stores.pl is built.Eelco Dolstra
2008-07-18* Use the copy-from-other-stores substituter by default. Of course,Eelco Dolstra
it only does something if $NIX_OTHER_STORES (not really a good name...) is set. * Do globbing on the elements of $NIX_OTHER_STORES. E.g. you could set it to /mnts/*/nix or something. * Install substituters in libexec/nix/substituters.
2008-07-12* Quick prototype of a substituter that copies paths from other NixEelco Dolstra
stores (typically remote Nix stores mounted via e.g. NFS, or the Nix store on the NixOS installation CD). Example use: $ sshfs foo@example.org:/ /mnt $ NIX_OTHER_STORES=/mnt/nix \ NIX_SUBSTITUTERS=.../copy-from-other-stores.pl \ nix-env -i foo This will be especially useful for the installation CD since it doesn't require a manifest for the CD contents.
2008-02-28* Don't install nix-reduce-build by default yet please, I first wantEelco Dolstra
to understand better what it does...
2008-02-27Added nix-reduce-build. You point it to some path you want to build and it ↵Michael Raskin
fetches whatever it can from specified computers via nix-copy-closure. NOTE: You do want to set up RSA keys or ssh-agent or something... You really do want it. It will run separate ssh instances insane number of times.
2007-11-15* Doh!Eelco Dolstra
2007-11-15* Add build-remote.pl to the Nix distribution.Eelco Dolstra
2007-02-21* New command `nix-copy-closure' to copy a closure to a Nix store onEelco Dolstra
another machine through ssh. E.g., $ nix-copy-closure xyzzy $(which svn) copies the closure of Subversion to machine `xyzzy'. This is like `nix-pack-closure $(which svn) | ssh xyzzy', but it's much more efficient since it only copies those paths that are missing on the target machine.
2007-01-11* Install generate-patches into libexec.Eelco Dolstra
2006-07-21* Don't try to do DNS lookups.Eelco Dolstra
2006-07-19* Added a tool to find additional roots for the garbage collector,Eelco Dolstra
such as open files, current directories, mmaped files, etc. This is inherently unportable, but it's easy to adapt this script to other platforms. Currently we call `lsof' and try to read various bits in /proc/NNN. The goal is to prevent the garbage collector from removing store paths that are no longer reachable from a permanent root but that are still in use (for instance, after the user has done "nix-env -e" on a running program).
2006-05-31* This may be useful in the future.Eelco Dolstra
2006-01-12* New tools nix-pack-closure and nix-unpack-closure. These provide aEelco Dolstra
useful way to transfer the closure of a store path to another machine. These commands provide functionality previously possible through `nix-push --copy'. However, they are much more convenient in many situations (though possibly less efficient). Example: $ nix-pack-closure /nix/store/hj232g1r...-subversion-1.3.0 > svn.closure (on another machine:) $ nix-unpack-closure < svn.closure Note that Subversion is added to the store, but not installed into a user environment. One should do `nix-env -i /nix/store/hj232g1r...-subversion-1.3.0' for that. Another example: copy the application Azureus to the machine `scratchy' through ssh: $ nix-pack-closure $(which azureus) | ssh scratchy nix-unpack-closure
2005-03-01* Doh!Eelco Dolstra
2005-03-01* Add missing file to dist.Eelco Dolstra
2005-02-28* Added a disambiguation heuristic: if two components have the sameEelco Dolstra
name but differ to much in sice (by more than a factor of 3), then never generate a patch.
2004-12-20* Place manifests in /nix/var/nix/manifests.Eelco Dolstra
* Use the new patch downloader.
2004-12-16* Remove `prebuilts.conf' file, it's not like anybody was using it.Eelco Dolstra
* Add /nix/var/nix/manifests directory.
2004-06-22* A utility script `nix-build' that builds Nix expressions and printsEelco Dolstra
their output paths (and only that) on standard output.
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-06* Distributed the wrong file.Eelco Dolstra
2003-12-30* RPM spec file.Eelco Dolstra
* Respect DESTDIR variable.
2003-12-05* Refactoring: put the manifest-reading code in a separate file.Eelco Dolstra
2003-11-24* One-click installation :-)Eelco Dolstra
The script nix-install-package takes a `Nix package file' (which contains one or more derivations, along with URLs of Nix caches), unpacks it, pulls the caches, and installs the derivations in the user's environment. For best results, associate the command `xterm -e /nix/bin/nix-install-package' with the MIME type `application/x-nix-package' and visit http://losser.st-lab.cs.uu.nl/~eelco/test/.
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-08-15* A script `nix-prefetch-url' to fetch a URL, place it in the NixEelco Dolstra
store, and print its hash.
2003-07-23* Incorporated Berkeley DB and ATerm into the source tree.Eelco Dolstra
* `make dist'.
2003-07-18* Generate nar.sh, fetchurl.sh.Eelco Dolstra
2003-07-13* Generate the scripts so that we can substitute the prefixEelco Dolstra
etc. correctly. * Fixed nix-switch.
2003-07-10* The policy-free derivate sharing now *almost* works. :-) For anyEelco Dolstra
hash for which no local expansion is available, Nix can execute a `substitute' which should produce a path with such a hash. This is policy-free since Nix does not in any way specify how the substitute should work, i.e., it's an arbitrary (unnormalised) fstate expression. For example, `nix-pull' registers substitutes that fetch Nix archives from the network (through `wget') and unpack them, but any other method is possible as well. This is an improvement over the old Nix sharing scheme, which had a policy (fetching through `wget') built in. The sharing scheme doesn't work completely yet because successors from fstate rewriting have to be registered on the receiving side. Probably the whole successor stuff can be folded up into the substitute mechanism; this would be a nice simplification.
2003-07-10* Get `nix-push' working again. It now uses Nix/Fix to create NixEelco Dolstra
archives (using the package in corepkgs/nar). * queryPathByHash -> expandHash, and it takes an argument specifying the target path (which may be empty). * Install the core Fix packages in $prefix/share/fix. TODO: bootstrap Nix and install Nix as a Fix package.
2003-05-26* Nix can now fetch prebuilts (and other files) from the network, iffEelco Dolstra
a mapping from the hash to a url has been registered through `nix regurl'. * Bug fix in nix: don't pollute stdout when running tar, it made nix-switch barf. * Bug fix in nix-push-prebuilts: don't create a subdirectory on the target when rsync'ing.
2003-05-25* Prebuilt package sharing. We allow transparent binary deployment byEelco Dolstra
sharing package directories (i.e., the result of building a Nix descriptor). `nix-pull-prebuilts' obtains a list of all known prebuilts by consulting the paths and URLs specified in $prefix/etc/nix/prebuilts.conf. The mappings ($pkghash, $prebuilthash) and ($prebuilthash, $location) are registered with Nix so that it can use the prebuilt with hash $prebuilthash when installing a package with hash $pkghash by downloading and unpacking $location. `nix-push-prebuilts' creates prebuilts for all packages for which no prebuilt is known to exist. It can then optionally upload these to the network through rsync. `nix-[pull|push]-prebuilts' just provide a policy. Nix provides the mechanism through the `nix [export|regprebuilt|regurl]' commands.
2003-04-09* A garbage collector for installed packages. nix-collect-garbageEelco Dolstra
doesn't actually delete any packages, it just prints their descriptor hashes. So we can do nix info $(nix-collect-garbage) to print out the ids of the packages that would be deleted, and nix delpkg $(nix-collect-garbage) to actually delete them.
2003-04-09* We no longer use nix-populate standalone, rather we use it as aEelco Dolstra
build action for `system' packages (like system.fix) that have dependencies on all packages we want to activate. So the command sequence to switch to a new activation configuration of the system would be: $ fix -i .../fixdescriptors/system.fix ... system.fix -> 89cf4713b37cc66989304abeb9ea189f $ nix-switch 89cf4713b37cc66989304abeb9ea189f * A nix-profile.sh script that can be included in .bashrc.