aboutsummaryrefslogtreecommitdiff
path: root/src/nix-store
AgeCommit message (Collapse)Author
2007-10-10* Doh.Eelco Dolstra
2007-10-10* nix-store --optimise: flag "--dry-run" to just query what the diskEelco Dolstra
savings would be.
2007-10-09* New command `nix-store --optimise' to reduce Nix store disk spaceEelco Dolstra
usage by finding identical files in the store and hard-linking them to each other. It typically reduces the size of the store by something like 25-35%. This is what the optimise-store.pl script did, but the new command is faster and more correct (it's safe wrt garbage collection and concurrent builds).
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-06-12* Support queryDeriver() in multi-user installations.Eelco Dolstra
2007-02-21* Flush cout to show progress.Eelco Dolstra
2007-02-21* Export/import many paths in one go.Eelco Dolstra
2007-02-21* `nix-store -qR' and friends: print the paths sorted topologicallyEelco Dolstra
under the references relation. This is useful for commands that want to copy paths to another Nix store in the right order.
2007-02-21* Flag `--print-invalid' in `nix-store --check-validity' to print outEelco Dolstra
which paths specified on the command line are invalid (i.e., don't barf when encountering an invalid path, just print it). This is useful for build-remote.pl to figure out which paths need to be copied to a remote machine. (Currently we use rsync, but that's rather inefficient.)
2007-02-21* `nix-store --import': import an archive created by `nix-storeEelco Dolstra
--export' into the Nix store, and optionally check the cryptographic signatures against /nix/etc/nix/signing-key.pub. (TODO: verify against a set of public keys.)
2007-02-21* `nix-store --export --sign': sign the Nix archive using the RSA keyEelco Dolstra
in /nix/etc/nix/signing-key.sec
2007-02-20* Start of `nix-store --export' operation for serialising a storeEelco Dolstra
path. This is like `nix-store --dump', only it also dumps the meta-information of the store path (references, deriver). Will add a `--sign' flag later to add a cryptographic signature, which we will use for exchanging store paths between build farm machines in a secure manner.
2007-01-13* nix-pack-closure: store the top-level store paths in the closure.Eelco Dolstra
* nix-unpack-closure: extract the top-level paths from the closure and print them on stdout. This allows them to be installed, e.g., "nix-env -i $(nix-unpack-closure)". (NIX-64)
2006-12-07* Doh!Eelco Dolstra
2006-12-07* Rename all those main.cc files.Eelco Dolstra
2006-12-05* Allow unprivileged users to run the garbage collector and to doEelco Dolstra
`nix-store --delete'. But unprivileged users are not allowed to ignore liveness. * `nix-store --delete --ignore-liveness': ignore the runtime roots as well.
2006-12-02* Remove SwitchToOriginalUser, we're not going to need it anymore.Eelco Dolstra
2006-12-01* Merge addToStore and addToStoreFixed.Eelco Dolstra
* addToStore now adds unconditionally, it doesn't use readOnlyMode. Read-only operation is up to the caller (who can call computeStorePathForPath).
2006-11-30* Skeleton of the privileged worker program.Eelco Dolstra
* Some refactoring: put the NAR archive integer/string serialisation code in a separate file so it can be reused by the worker protocol implementation.
2006-11-30* Put building in the store API.Eelco Dolstra
2006-11-30* Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra
containing functions that operate on the Nix store. One implementation is LocalStore, which operates on the Nix store directly. The next step, to enable secure multi-user Nix, is to create a different implementation RemoteStore that talks to a privileged daemon process that uses LocalStore to perform the actual operations.
2006-11-18* Turn off synchronisation between C and C++ I/O functions. ThisEelco Dolstra
gives a huge speedup in operations that read or write from standard input/output. (So libstdc++'s I/O isn't that bad, you just have to call std::ios::sync_with_stdio(false).) For instance, `nix-store --register-substitutes' went from 1.4 seconds to 0.1 seconds on a certain input. Another victory for Valgrind.
2006-11-13* Option `--reregister' in `nix-store --register-validity'. We needEelco Dolstra
this in the NixOS installer (or in the buildfarm) to ensure that the cryptographic hash of the path contents still matches the actual contents.
2006-10-28* `nix-store --read-log / -l PATH' shows the build log of PATH, ifEelco Dolstra
available. For instance, $ nix-store -l $(which svn) | less lets you read the build log of the Subversion instance in your profile. * `nix-store -qb': if applied to a non-derivation, take the deriver.
2006-10-05* Documented nix-store --dump / --restore.Eelco Dolstra
2006-09-21* GC options in nix-store --help (NIX-15).Eelco Dolstra
2006-09-05* Sone missing #includes.Eelco Dolstra
2006-09-04* Use a proper namespace.Eelco Dolstra
* Optimise header file usage a bit. * Compile the parser as C++.
2006-08-11* `nix-store --gc --print-dead': print the total size of the storeEelco Dolstra
objects that would be freed.
2006-05-12* Support for srcdir != builddir (NIX-41).Eelco Dolstra
2006-03-06* `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra
will be built or substituted.
2006-03-06* Regularise help text a bit.Eelco Dolstra
2006-03-01* db.hh shouldn't depend on the Berkeley DB headers.Eelco Dolstra
2006-03-01* Uninitialised variable. Fixes the --delete test.Eelco Dolstra
2006-02-16* A simple hack to fix NIX-18: the garbage collector cannot run whenEelco Dolstra
the disk is full (because to delete something from the Nix store, we need a Berkeley DB transaction, which takes up disk space). Under normal operation, we make sure that there exists a file /nix/var/nix/db/reserved of 1 MB. When running the garbage collector, we delete that file before we open the Berkeley DB environment.
2006-01-19* Don't show cycles, they're not very useful.Eelco Dolstra
2005-12-23* Added a flag `--ignore-liveness' to `nix-store --delete'. ItEelco Dolstra
deletes a path even if it is reachable from a root. However, it won't delete a path that still has referrers (since that would violate store invariants). Don't try this at home. It's a useful hack for recovering from certain situations in a somewhat clean way (e.g., holes in closures due to disk corruption).
2005-12-23* Revived the old "nix-store --delete" operation that deletes theEelco Dolstra
specified paths from the Nix store. However, this operation is safe: it refuses to delete anything that the garbage collector wouldn't delete.
2005-12-15* `nix-store --gc' prints out the number of bytes freed on stdoutEelco Dolstra
(even when it is interrupted by a signal).
2005-12-13* Change `referer' to `referrer' throughout. In particular, theEelco Dolstra
nix-store query options `--referer' and `--referer-closure' have been changed to `--referrer' and `--referrer-closure' (but the old ones are still accepted for compatibility).
2005-07-22* Build dynamic libraries.Eelco Dolstra
2005-05-04* Include some required header files.Eelco Dolstra
2005-04-08* nix-store: `--substitute' -> `--register-substitutes'.Eelco Dolstra
2005-04-08* Make `nix-store --query --tree' work on non-derivations (i.e., onEelco Dolstra
any store path).
2005-04-07* Support base-32 hash representations.Eelco Dolstra
2005-04-07* `nix-store --add-fixed' to preload the outputs of fixed-outputEelco Dolstra
derivations. This is mostly to simplify the implementation of nix-prefetch-{url, svn}, which now work properly in setuid installations. * Enforce valid store names in `nix-store --add / --add-fixed'.
2005-03-26* Re-enable dot graph generation.Eelco Dolstra
2005-03-23* `nix-store --register-validity': allow a path to refer to a pathEelco Dolstra
listed later in the list of new valid paths.
2005-03-23* Canonicalise path meta-data in `nix-store --register-validity'.Eelco Dolstra
2005-03-23* nix-store: `--isvalid' -> `--check-validity', `--validpath' ->Eelco Dolstra
`--register-validity'. * `nix-store --register-validity': read arguments from stdin, and allow the references and deriver to be set.