about summary refs log tree commit diff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2003-08-06 * Allow a name to be given to a system configuration through `--name Eelco Dolstra1-3/+7
NAME'. E.g., on the losser Subversion server, I do `nix-switch --name svn $(fix ...)' to atomically upgrade the server (the SVN server uses the Apache and Subversion installations in /nix/var/nix/links/svn).
2003-08-05 * Made nix-push much faster.Eelco Dolstra1-18/+33
2003-08-05 * Made nix-pull much faster by performing all Fix instantiations atEelco Dolstra1-14/+32
the same time.
2003-07-29 * Bug: Fix does not allow empty names, so don't generate them.Eelco Dolstra1-10/+10
2003-07-29 * Use `--query --requisites' and include successors when pushing. Don't Eelco Dolstra1-8/+8
use `--query --generators' anymore.
2003-07-29 * Typo: if -> elsif.Eelco Dolstra1-1/+1
2003-07-29 * Get garbage collection and cache population to work *properly*.Eelco Dolstra2-18/+50
Renamed `fstateRefs' to `fstateRequisites'. The semantics of this function is that it returns a list of all paths necessary to realise a given expression. For a derive expression, this is the union of requisites of the inputs; for a slice expression, it is the path of each element in the slice. Also included are the paths of the expressions themselves. Optionally, one can also include the requisites of successor expressions (to recycle intermediate results). * `nix-switch' now distinguishes between an expression and its normal form. Usually, only the normal form is registered as a root of the garbage collector. With the `--source-root' flag, it will also register the original expression as a root. * `nix-collect-garbage' now has a flag `--keep-successors' which causes successors not to be included in the list of garbage paths. * `nix-collect-garbage' now has a flag `--invert' which will print all paths that should *not* be garbage collected.
2003-07-28 * Do not set LD_LIBRARY_PATH; it breaks many things. E.g., SuSE's ssh Eelco Dolstra1-1/+1
dynamically links against libdb4 (?!), due to LD_LIBRARY_PATH it picks up our libdb4 instead of SuSE's libdb4, but our libdb4 uses another glibc so loading barfs. Instead, all packages should use rpaths to store library locations in executables/libraries. The disadvantage is that overriding rpaths is harder. (It is possible by invoking the dynamic linker directly, e.g., `/lib/ld-linux.so.2 --ignore-path LIST program args...' to ignore the rpath for the libraries in LIST). It would be better to use DT_RUNPATH, which is consulted by the dynamic linker *after* LD_LIBRARY_PATH but *before* ld.so.cache and the system directories.
2003-07-23 * Incorporated Berkeley DB and ATerm into the source tree.Eelco Dolstra1-0/+5
* `make dist'.
2003-07-22 * Substitutes now should produce a path with the same id as they areEelco Dolstra1-4/+13
substituting for (obvious, really). * For greater efficiency, nix-pull/unnar will place the output in a path that is probably the same as what is actually needed, thus preventing a path copy. * Even if a output id is given in a Fix package expression, ensure that the resulting Nix derive expression has a different id. This is because Nix expressions that are semantically equivalent (i.e., build the same result) might be different w.r.t. efficiency or divergence. It is absolutely vital for the substitute mechanism that such expressions are not used interchangeably.
2003-07-21 * Changed nix-pull to match nix-push.Eelco Dolstra2-15/+16
2003-07-21 * Syntax fixes.Eelco Dolstra2-14/+24
* When pushing, put the hash in the file name so that the client can verify (proof-carrying file names?).
2003-07-20 * Argh, another short-write problem. Added wrappers aroundEelco Dolstra1-0/+3
read()/write() to fix this once and for all.
2003-07-18 * Generate nar.sh, fetchurl.sh.Eelco Dolstra1-7/+1
2003-07-16 * The write() system call can write less than the requested Eelco Dolstra1-0/+4
number of bytes, e.g., in case of a signal like SIGSTOP. This caused `nix --dump' to fail sometimes. Note that this bug went unnoticed because the call to `nix --dump' is in a pipeline, and the shell ignores non-zero exit codes from all but the last element in the pipeline. Is there any way to check the result of the initial elements in the pipeline? (In other words, is it at all possible to write reliable shell scripts?)
2003-07-16 * Substitute fixes.Eelco Dolstra2-15/+12
2003-07-14 * Get the garbage collector to work again.Eelco Dolstra2-22/+25
2003-07-13 * Generate the scripts so that we can substitute the prefixEelco Dolstra5-21/+23
etc. correctly. * Fixed nix-switch.
2003-07-10 * Compress Nix archives when pushing them.Eelco Dolstra2-3/+5
2003-07-10 * Working derivate sharing.Eelco Dolstra2-4/+23
2003-07-10 * Convert tabs to spaces.Eelco Dolstra2-70/+70
2003-07-10 * Performance enhancement.Eelco Dolstra1-2/+8
2003-07-10 * The policy-free derivate sharing now *almost* works. :-) For anyEelco Dolstra5-133/+69
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 Dolstra3-1/+63
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-06-18 * Set CPLUS_INCLUDE_PATH as well as C_INCLUDE_PATH. Otherwise g++Eelco Dolstra1-0/+1
won't see header files under Nix control.
2003-05-30 * Set umask to 0022 on startup.Eelco Dolstra2-0/+4
2003-05-30 * Don't set MANPATH. It's not necessary.Eelco Dolstra1-1/+1
2003-05-30 * Set MANPATH and PKG_CONFIG_PATH.Eelco Dolstra1-1/+5
2003-05-27 * Fix the rsync destination.Eelco Dolstra1-1/+1
2003-05-26 * Removed some debug code that prevented packages from building.Eelco Dolstra1-58/+0
2003-05-26 * Nix can now fetch prebuilts (and other files) from the network, iffEelco Dolstra4-8/+22
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 Dolstra5-21/+118
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-25 * Bug fix: deleting the old links didn't work properly.Eelco Dolstra1-2/+2
2003-04-24 * nix-switch now removes the link to the previously activated systemEelco Dolstra1-2/+20
package as a root of the garbage collector, unless `--keep' is specified.
2003-04-09 * A garbage collector for installed packages. nix-collect-garbageEelco Dolstra2-1/+23
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 * When we activate a descriptor in nix-switch, remember its hash.Eelco Dolstra1-1/+7
This allows us to find out all `live' packages on the system by doing nix closure $(cat /nix/var/nix/links/*.hash) which will print out the activated configurations and all packages referenced by them. We could then garbage collect unused packages by deleting the difference between `nix listinst' and the set returned by `nix closure ...'.
2003-04-09 * We no longer use nix-populate standalone, rather we use it as aEelco Dolstra4-40/+71
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.
2003-04-08 * Descriptor importing in Fix.Eelco Dolstra1-0/+89
2003-04-08 * FreeBSD / gcc 2.95 compatibility fixes.Eelco Dolstra1-0/+20
* A script to generate prebuilt registration scripts.