about summary refs log tree commit diff
path: root/src/nix-store
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10 * Doh.Eelco Dolstra1-1/+1
2007-10-10 * nix-store --optimise: flag "--dry-run" to just query what the diskEelco Dolstra1-2/+5
savings would be.
2007-10-09 * New command `nix-store --optimise' to reduce Nix store disk spaceEelco Dolstra2-3/+50
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 Dolstra2-66/+2
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 Dolstra1-2/+2
2007-02-21 * Flush cout to show progress.Eelco Dolstra1-1/+1
2007-02-21 * Export/import many paths in one go.Eelco Dolstra1-3/+8
2007-02-21 * `nix-store -qR' and friends: print the paths sorted topologicallyEelco Dolstra1-38/+5
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 Dolstra1-3/+14
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 Dolstra1-0/+12
--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 Dolstra1-3/+7
in /nix/etc/nix/signing-key.sec
2007-02-20 * Start of `nix-store --export' operation for serialising a storeEelco Dolstra1-0/+11
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 Dolstra1-1/+9
* 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 Dolstra1-1/+1
2006-12-07 * Rename all those main.cc files.Eelco Dolstra2-1/+1
2006-12-05 * Allow unprivileged users to run the garbage collector and to doEelco Dolstra1-3/+2
`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 Dolstra1-1/+0
2006-12-01 * Merge addToStore and addToStoreFixed.Eelco Dolstra1-1/+1
* 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 Dolstra1-23/+2
* 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 Dolstra1-4/+3
2006-11-30 * Refactoring. There is now an abstract interface class StoreAPIEelco Dolstra2-14/+15
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 Dolstra1-1/+1
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 Dolstra1-8/+18
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 Dolstra2-3/+39
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 Dolstra1-1/+1
2006-09-21 * GC options in nix-store --help (NIX-15).Eelco Dolstra1-1/+10
2006-09-05 * Sone missing #includes.Eelco Dolstra1-1/+1
2006-09-04 * Use a proper namespace.Eelco Dolstra3-4/+26
* 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 Dolstra1-5/+10
objects that would be freed.
2006-05-12 * Support for srcdir != builddir (NIX-41).Eelco Dolstra1-1/+2
2006-03-06 * `nix-env (-i|-u) --dry-run' now shows exactly which missing pathsEelco Dolstra1-0/+1
will be built or substituted.
2006-03-06 * Regularise help text a bit.Eelco Dolstra1-1/+1
2006-03-01 * db.hh shouldn't depend on the Berkeley DB headers.Eelco Dolstra1-0/+2
2006-03-01 * Uninitialised variable. Fixes the --delete test.Eelco Dolstra1-1/+1
2006-02-16 * A simple hack to fix NIX-18: the garbage collector cannot run whenEelco Dolstra1-1/+1
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 Dolstra1-2/+4
2005-12-23 * Added a flag `--ignore-liveness' to `nix-store --delete'. ItEelco Dolstra1-3/+8
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 Dolstra2-1/+23
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 Dolstra1-1/+16
(even when it is interrupted by a signal).
2005-12-13 * Change `referer' to `referrer' throughout. In particular, theEelco Dolstra2-10/+10
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 Dolstra1-2/+2
2005-05-04 * Include some required header files.Eelco Dolstra1-0/+1
2005-04-08 * nix-store: `--substitute' -> `--register-substitutes'.Eelco Dolstra2-4/+4
2005-04-08 * Make `nix-store --query --tree' work on non-derivations (i.e., onEelco Dolstra1-15/+13
any store path).
2005-04-07 * Support base-32 hash representations.Eelco Dolstra1-2/+6
2005-04-07 * `nix-store --add-fixed' to preload the outputs of fixed-outputEelco Dolstra1-2/+48
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 Dolstra2-34/+44
2005-03-23 * `nix-store --register-validity': allow a path to refer to a pathEelco Dolstra1-12/+13
listed later in the list of new valid paths.
2005-03-23 * Canonicalise path meta-data in `nix-store --register-validity'.Eelco Dolstra1-1/+4
2005-03-23 * nix-store: `--isvalid' -> `--check-validity', `--validpath' ->Eelco Dolstra2-16/+32
`--register-validity'. * `nix-store --register-validity': read arguments from stdin, and allow the references and deriver to be set.