about summary refs log tree commit diff
path: root/src/nix-store
AgeCommit message (Collapse)AuthorFilesLines
2010-01-25 * Made `nix-store -qR --include-outputs' much faster if there areEelco Dolstra1-38/+2
multiple paths specified on the command line (from O(n * m) to O(n + m), where n is the number of arguments and m is the size of the closure).
2009-11-24 * Templatise getIntArg / string2Int.Eelco Dolstra1-3/+3
2009-11-23 * A command `nix-store --query --roots <paths>' to find the garbageEelco Dolstra2-31/+31
collector roots that point (directly or indirectly) to the given paths.
2009-11-23 * `nix-store --gc --print-roots': also print the path of the actualEelco Dolstra1-7/+16
root symlink, not just its target. E.g.: /nix/var/nix/profiles/system-99-link -> /nix/store/76kwf88657nq7wgk1hx3l1z5q91zb9wd-system
2009-11-20 * Remove the --use-atime / --max-atime garbage collector flags. ManyEelco Dolstra1-5/+0
(Linux) machines no longer maintain the atime because it's too expensive, and on the machines where --use-atime is useful (like the buildfarm), reading the atimes on the entire Nix store takes way too much time to make it practical.
2009-11-06 * Remove support for old (before Nix 0.12pre12020) databases.Eelco Dolstra1-2/+2
2009-10-08 Added optional parameter which adds -lnsl -lsocket to make the Nix package ↵Sander van der Burg1-1/+1
manager work on OpenSolaris
2009-03-26 * Don't use ULLONG_MAX in maxFreed - use 0 to mean "no limit".Eelco Dolstra1-1/+4
18446744073709551615ULL breaks on GCC 3.3.6 (`integer constant is too large for "long" type').
2009-03-22 * Better error message when nix-store --import is applied to garbageEelco Dolstra1-1/+1
(previously it would likely say "implementation cannot deal with > 32-bit integers").
2009-03-22 * NAR archives: handle files larger than 2^32 bytes. Previously itEelco Dolstra1-3/+6
would just silently store only (fileSize % 2^32) bytes. * Use posix_fallocate if available when unpacking archives. * Provide a better error message when trying to unpack something that isn't a NAR archive.
2008-12-12 * Simplify deleting .lock files in /nix/store: just don't delete themEelco Dolstra1-1/+1
if they belong a path that's currently being built. This gets rid of some Cygwin-specific code.
2008-12-03 * Pass HashType values instead of strings.Eelco Dolstra1-3/+3
2008-12-03 * Unify the treatment of sources copied to the store, and recursiveEelco Dolstra1-1/+4
SHA-256 outputs of fixed-output derivations. I.e. they now produce the same store path: $ nix-store --add x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x $ nix-store --add-fixed --recursive sha256 x /nix/store/j2fq9qxvvxgqymvpszhs773ncci45xsj-x the latter being the same as the path that a derivation derivation { name = "x"; outputHashAlgo = "sha256"; outputHashMode = "recursive"; outputHash = "..."; ... }; produces. This does change the output path for such fixed-output derivations. Fortunately they are quite rare. The most common use is fetchsvn calls with SHA-256 hashes. (There are a handful of those is Nixpkgs, mostly unstable development packages.) * Documented the computation of store paths (in store-api.cc).
2008-11-19 * nix-store --dump-db: be more streamy.Eelco Dolstra1-3/+3
2008-11-11 * Typo.Eelco Dolstra1-1/+1
2008-09-17 * GC option `--max-atime' that specifies an upper limit to the lastEelco Dolstra1-1/+7
accessed time of paths that may be deleted. Anything more recently used won't be deleted. The time is specified in time_t, e.g. seconds since 1970-01-01 00:00:00 UTC; use `date +%s' to convert to time_t from the command line. Example: to delete everything that hasn't been used in the last two months: $ nix-store --gc -v --max-atime $(date +%s -d "2 months ago")
2008-09-17 * nix-store --gc / --delete: show how many store paths were deleted.Eelco Dolstra1-1/+2
2008-09-17 * Garbage collector: added an option `--use-atime' to delete paths inEelco Dolstra1-17/+10
order of ascending last access time. This is useful in conjunction with --max-freed or --max-links to prefer deleting non-recently used garbage, which is good (especially in the build farm) since garbage may become live again. The code could easily be modified to accept other criteria for ordering garbage by changing the comparison operator used by the priority queue in collectGarbage().
2008-08-04 * `nix-store --realise': print what paths will be built/downloaded,Eelco Dolstra1-13/+16
just like nix-env. * `nix-store --realise': --dry-run option.
2008-06-18 * Garbage collector: option `--max-freed' to stop after at least NEelco Dolstra1-1/+7
bytes have been freed, `--max-links' to stop when the Nix store directory has fewer than N hard links (the latter being important for very large Nix stores on filesystems with a 32000 subdirectories limit).
2008-06-18 * Some refactoring: put the GC options / results in separate structs.Eelco Dolstra1-28/+29
* The garbage collector now also prints the number of blocks freed.
2008-06-09 * Merged the no-bdb branch (-r10900:HEADEelco Dolstra2-13/+12
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-01-29 * nix-store --dump-db / --load-db to dump/load the Nix DB.Eelco Dolstra1-11/+46
* nix-store --register-validity: option to supply the content hash of each path. * Removed compatibility with Nix <= 0.7 stores.
2007-12-10 corrected --help message for nix-store a bitMichael Raskin1-2/+7
2007-11-29 * nix-env -e: support uninstalling by path, so that one can sayEelco Dolstra1-24/+12
$ nix-env -e $(which firefox) or $ nix-env -e /nix/store/nywzlygrkfcgz7dfmhm5xixlx1l0m60v-pan-0.132 * nix-env -i: if an argument contains a slash anywhere, treat it as a path and follow it through symlinks into the Nix store. This allows things like $ nix-build -A firefox $ nix-env -i ./result * nix-env -q/-i/-e: don't complain when the `*' selector doesn't match anything. In particular, `nix-env -q \*' doesn't fail anymore on an empty profile.
2007-11-16 * nix-store --import: add a flag --require-signature.Eelco Dolstra1-2/+7
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.