summary refs log tree commit diff
path: root/scripts
AgeCommit message (Collapse)Author
2003-07-29* Bug: Fix does not allow empty names, so don't generate them.Eelco Dolstra
2003-07-29* Use `--query --requisites' and include successors when pushing. Don't Eelco Dolstra
use `--query --generators' anymore.
2003-07-29* Typo: if -> elsif.Eelco Dolstra
2003-07-29* Get garbage collection and cache population to work *properly*.Eelco Dolstra
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 Dolstra
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 Dolstra
* `make dist'.
2003-07-22* Substitutes now should produce a path with the same id as they areEelco Dolstra
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 Dolstra
2003-07-21* Syntax fixes.Eelco Dolstra
* 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 Dolstra
read()/write() to fix this once and for all.
2003-07-18* Generate nar.sh, fetchurl.sh.Eelco Dolstra
2003-07-16* The write() system call can write less than the requested Eelco Dolstra
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 Dolstra
2003-07-14* Get the garbage collector to work again.Eelco Dolstra
2003-07-13* Generate the scripts so that we can substitute the prefixEelco Dolstra
etc. correctly. * Fixed nix-switch.
2003-07-10* Compress Nix archives when pushing them.Eelco Dolstra
2003-07-10* Working derivate sharing.Eelco Dolstra
2003-07-10* Convert tabs to spaces.Eelco Dolstra
2003-07-10* Performance enhancement.Eelco Dolstra
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-06-18* Set CPLUS_INCLUDE_PATH as well as C_INCLUDE_PATH. Otherwise g++Eelco Dolstra
won't see header files under Nix control.
2003-05-30* Set umask to 0022 on startup.Eelco Dolstra
2003-05-30* Don't set MANPATH. It's not necessary.Eelco Dolstra
2003-05-30* Set MANPATH and PKG_CONFIG_PATH.Eelco Dolstra
2003-05-27* Fix the rsync destination.Eelco Dolstra
2003-05-26* Removed some debug code that prevented packages from building.Eelco Dolstra
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-25* Bug fix: deleting the old links didn't work properly.Eelco Dolstra
2003-04-24* nix-switch now removes the link to the previously activated systemEelco Dolstra
package as a root of the garbage collector, unless `--keep' is specified.
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* When we activate a descriptor in nix-switch, remember its hash.Eelco Dolstra
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 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.
2003-04-08* Descriptor importing in Fix.Eelco Dolstra
2003-04-08* FreeBSD / gcc 2.95 compatibility fixes.Eelco Dolstra
* A script to generate prebuilt registration scripts.