about summary refs log tree commit diff
path: root/src/libstore/local-store.cc
AgeCommit message (Collapse)AuthorFilesLines
2010-02-18 * Automatically abort transactions if they go out of scope withoutEelco Dolstra1-6/+37
committing.
2010-02-18 * Some wrapper objects to ensure that SQLite objects are properlyEelco Dolstra1-45/+73
destroyed.
2010-02-18 * Add the deriver to the ValidPaths table. In principle we could nowEelco Dolstra1-12/+19
store all the derivers of a path efficiently. But that opens a big can of worms with respect to garbage collector semantics.
2010-02-18 * Assign an integer id to every row in the ValidPaths table in orderEelco Dolstra1-2/+16
to make the Refs table more space-efficient. For instance, this reduces the size of the database on my laptop from 93 MiB to 18 MiB. (It was 72 MiB with the old schema on an ext3 disk with a 1 KiB block size.)
2010-02-18 * Convert the Nix database to SQLite.Eelco Dolstra1-12/+107
2010-01-29 * Added an option "fsync-metadata" to fsync() changes toEelco Dolstra1-6/+12
/nix/var/nix/db. * Removed the function writeStringToFile since it does (almost) the same thing as writeFile.
2010-01-29 * Don't consider a store path valid if its info file exists but isEelco Dolstra1-4/+36
zero bytes long. That makes Nix more robust in case of crashes (especially on ext4).
2009-11-06 * Remove support for old (before Nix 0.12pre12020) databases.Eelco Dolstra1-0/+12
2009-09-24 * And some more.Eelco Dolstra1-0/+1
2009-09-23 * Darwin hack.Eelco Dolstra1-0/+7
2009-09-23 * Create some state directories automatically as a convenience.Eelco Dolstra1-6/+15
2009-06-13 * Canonicalise timestamps in the Nix store to 1 (1970-01-01 00:00:01Eelco Dolstra1-1/+1
UTC) rather than 0 (00:00:00). 1 is a better choice because some programs use 0 as a special value. For instance, the Template Toolkit uses a timestamp of 0 to denote the non-existence of a file, so it barfs on files in the Nix store (see template-toolkit-nix-store.patch in Nixpkgs). Similarly, Maya 2008 fails to load script directories with a timestamp of 0 and can't be patched because it's closed source. This will also shut up those "implausibly old time stamp" GNU tar warnings.
2009-04-21 * Use foreach in a lot of places.Eelco Dolstra1-9/+8
2009-04-21 * nix-store --verify: don't bail out if a referenced path is missing.Eelco Dolstra1-14/+13
(It can't fix it though.)
2009-04-16 * Fix a few "comparison is always false/true due to limited range ofEelco Dolstra1-1/+1
data type" warnings on 64-bit platforms. The one in parser.y is likely to be a real bug.
2009-03-28 * Don't use the non-standard __gnu_cxx::stdio_filebuf class.Eelco Dolstra1-25/+16
2009-03-27 * Create /nix/store if it doesn't exist.Eelco Dolstra1-0/+2
2009-03-25 * Negative caching, i.e. caching of build failures. Disabled byEelco Dolstra1-0/+22
default. This is mostly useful for Hydra.
2009-03-22 * NAR archives: handle files larger than 2^32 bytes. Previously itEelco Dolstra1-1/+1
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.
2009-02-02 * Build hooks: use nix-store --import. This prevents a redundantEelco Dolstra1-1/+8
scan for runtime dependencies (i.e. the local machine shouldn't do a scan that the remote machine has already done). Also pipe directly into `nix-store --import': don't use a temporary file.
2008-12-16 * nix-store --verify: repair bad hash fields in the metadata file.Eelco Dolstra1-4/+15
2008-12-03 * addToStore() in nix-worker: don't write the NAR dump received fromEelco Dolstra1-19/+26
the client to a temporary directory, as that is highly inefficient.
2008-12-03 * Pass HashType values instead of strings.Eelco Dolstra1-3/+3
2008-12-03 * Made addToStore() a lot more efficient: it no longer reads the pathEelco Dolstra1-32/+28
being copied 3 times in the worst case. It doesn't run in constant space, but it didn't do that anyway.
2008-12-03 * Unify the treatment of sources copied to the store, and recursiveEelco Dolstra1-4/+7
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 * Files in the info directory starting with "." are temporary filesEelco Dolstra1-2/+5
and don't indicate path validity.
2008-08-05 * Better error checking of the data from the substituters.Eelco Dolstra1-21/+16
2008-08-04 * build.cc: only use a substituter if it returns info for a path.Eelco Dolstra1-26/+32
2008-08-04 * nix-env --dry-run: show the total size of the substituterEelco Dolstra1-1/+4
downloads.
2008-08-02 * Make nix-env --dry-run print the paths to be substituted correctlyEelco Dolstra1-20/+97
again. (After the previous substituter mechanism refactoring I didn't update the code that obtains the references of substitutable paths.) This required some refactoring: the substituter programs are now kept running and receive/respond to info requests via stdin/stdout.
2008-07-18 * Allow read-only access to the store (e.g., non-root users on NixOSEelco Dolstra1-5/+9
can do operations like "nix-store -qR <path>" even without the Nix daemon).
2008-06-18 * Some refactoring: put the GC options / results in separate structs.Eelco Dolstra1-2/+3
* The garbage collector now also prints the number of blocks freed.
2008-06-09 * Merged the no-bdb branch (-r10900:HEADEelco Dolstra1-566/+412
https://svn.nixos.org/repos/nix/nix/branches/no-bdb).
2008-03-01 * A transaction is unnecessary since the path cannot beEelco Dolstra1-8/+3
garbage-collected (it's a temporary root).
2008-01-29 * nix-store --dump-db / --load-db to dump/load the Nix DB.Eelco Dolstra1-93/+13
* nix-store --register-validity: option to supply the content hash of each path. * Removed compatibility with Nix <= 0.7 stores.
2007-10-10 * Doh! Don't change the permissions on /nix/store.Eelco Dolstra1-9/+8
2007-10-10 * nix-store --optimise: flag "--dry-run" to just query what the diskEelco Dolstra1-16/+21
savings would be.
2007-10-09 * New command `nix-store --optimise' to reduce Nix store disk spaceEelco Dolstra1-5/+120
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-13 * Bump the Nix database schema version number; delete the substitutesEelco Dolstra1-2/+30
table.
2007-08-12 * Get rid of the substitutes database table (NIX-47). Instead, if weEelco Dolstra1-191/+42
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/+8
2007-05-01 * Set a terminate() handler to ensure that we leave the BDBEelco Dolstra1-1/+5
environment cleanly even when an exception is thrown from a destructor. We still crash, but we don't take all other Nix processes with us.
2007-05-01 * Make --verify more interruptable.Eelco Dolstra1-0/+1
2007-03-30 * Work around a bug in Apple's GCC preprocessor.Eelco Dolstra1-1/+1
2007-03-01 * Look for the openssl program at compile time. If not found, callEelco Dolstra1-2/+2
openssl through $PATH at runtime.
2007-03-01 * Don't check the signature unless we have to.Eelco Dolstra1-21/+23
2007-02-27 * Doh! The deriver can be empty.Eelco Dolstra1-1/+2
2007-02-21 * Check that the file containing the secret key is secret.Eelco Dolstra1-1/+14
2007-02-21 * importPath(): set the deriver.Eelco Dolstra1-3/+13
* exportPath(): lock the path, use a transaction.
2007-02-21 * `nix-store --import': import an archive created by `nix-storeEelco Dolstra1-4/+110
--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.)