Eelco Dolstra
af565c348a
* Support read-only access to the database.
2010-02-24 16:44:43 +00:00
Eelco Dolstra
e33f67ff0b
* Refactor the upgrade / database initialisation logic a bit.
2010-02-24 16:30:20 +00:00
Eelco Dolstra
cfe742cfc5
* A function to query just the database id of a valid path.
2010-02-24 15:07:23 +00:00
Eelco Dolstra
9fd85c94de
* Use `truncate' journal mode, which should be a bit faster.
2010-02-24 14:22:34 +00:00
Eelco Dolstra
a3c63d0d6c
* Disable fsync() in SQLite if the fsync-metadata option is set to
...
false.
* Change the default for `fsync-metadata' to true.
* Disable `fsync-metadata' in `make check'.
2010-02-24 13:12:57 +00:00
Eelco Dolstra
90b6352d0a
* Do registerValidPaths() in one transaction, which is much faster.
...
E.g. it cuts the runtime of the referrers test from 50s to 23s.
2010-02-24 12:48:00 +00:00
Eelco Dolstra
462bd50aef
* Use normal (rather than full) synchronous mode, which I gather from
...
the description at http://www.sqlite.org/atomiccommit.html should be
safe enough.
2010-02-24 10:57:57 +00:00
Eelco Dolstra
2b20318b0e
2010-02-22 14:24:37 +00:00
Eelco Dolstra
9cda616949
* The database needs a trigger to get rid of self-references to
...
prevent a foreign key constraint violation on the Refs table when
deleting a path.
2010-02-22 14:18:55 +00:00
Eelco Dolstra
c4d388add4
* Get derivation outputs from the database instead of the .drv file,
...
which requires more I/O.
2010-02-22 12:44:36 +00:00
Eelco Dolstra
103cfee056
* Revert r19650 (implement gc-keep-outputs by looking for derivations
...
with the same name as the output) and instead use the
DerivationOutputs table in the database, which is the correct way to
to do things.
2010-02-22 11:44:17 +00:00
Eelco Dolstra
299ff64812
* Put the derivation outputs in the database. This is useful for the
...
garbage collector.
2010-02-22 11:15:50 +00:00
Eelco Dolstra
1930570ad9
* Foreign key support in SQLite is not a persistent setting, so enable
...
it at startup.
* Implement negative caching. Now `make check' passes.
2010-02-19 17:15:22 +00:00
Eelco Dolstra
9c9a88e9e2
* Implement more stuff.
2010-02-19 16:43:25 +00:00
Eelco Dolstra
762cee72cc
* Implement registerValidPath().
2010-02-19 16:04:51 +00:00
Eelco Dolstra
268f9aaf28
* Implemented queryValidPaths() and verifyStore().
2010-02-18 16:51:27 +00:00
Eelco Dolstra
836e5b6f57
* Implemented queryReferrers().
2010-02-18 16:21:59 +00:00
Eelco Dolstra
77cb9e3fb1
* Implement queryPathInfo().
2010-02-18 15:52:57 +00:00
Eelco Dolstra
885e22b16e
* Implement isValidPath().
2010-02-18 15:11:08 +00:00
Eelco Dolstra
cfb09e0fad
* Automatically abort transactions if they go out of scope without
...
committing.
2010-02-18 14:40:07 +00:00
Eelco Dolstra
e0305bb7a8
* Some wrapper objects to ensure that SQLite objects are properly
...
destroyed.
2010-02-18 14:30:42 +00:00
Eelco Dolstra
a053d2d8e5
* Add the deriver to the ValidPaths table. In principle we could now
...
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 13:48:18 +00:00
Eelco Dolstra
dbddac0fe9
* Assign an integer id to every row in the ValidPaths table in order
...
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 13:40:46 +00:00
Eelco Dolstra
c1a07f9445
* Convert the Nix database to SQLite.
2010-02-18 13:16:59 +00:00
Eelco Dolstra
07ffdc2862
* Added an option "fsync-metadata" to fsync() changes to
...
/nix/var/nix/db.
* Removed the function writeStringToFile since it does (almost) the
same thing as writeFile.
2010-01-29 12:22:58 +00:00
Eelco Dolstra
ad529fb89f
* Don't consider a store path valid if its info file exists but is
...
zero bytes long. That makes Nix more robust in case of crashes
(especially on ext4).
2010-01-29 11:53:58 +00:00
Eelco Dolstra
327a232c85
* Remove support for old (before Nix 0.12pre12020) databases.
2009-11-06 01:15:44 +00:00
Eelco Dolstra
c7057fc1f2
* And some more.
2009-09-24 07:39:55 +00:00
Eelco Dolstra
676e07902e
* Darwin hack.
2009-09-23 18:04:55 +00:00
Eelco Dolstra
64e89980e8
* Create some state directories automatically as a convenience.
2009-09-23 17:05:51 +00:00
Eelco Dolstra
14bc3ce3d6
* Canonicalise timestamps in the Nix store to 1 (1970-01-01 00:00:01
...
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-06-13 16:30:58 +00:00
Eelco Dolstra
d5eab2fc82
* Use foreach in a lot of places.
2009-04-21 11:52:16 +00:00
Eelco Dolstra
8f1bf28505
* nix-store --verify: don't bail out if a referenced path is missing.
...
(It can't fix it though.)
2009-04-21 11:06:27 +00:00
Eelco Dolstra
4e646b0ddb
* Fix a few "comparison is always false/true due to limited range of
...
data type" warnings on 64-bit platforms. The one in parser.y is
likely to be a real bug.
2009-04-16 12:03:17 +00:00
Eelco Dolstra
c7152c8f97
* Don't use the non-standard __gnu_cxx::stdio_filebuf class.
2009-03-28 19:41:53 +00:00
Eelco Dolstra
cb85bc396e
* Create /nix/store if it doesn't exist.
2009-03-27 14:19:04 +00:00
Eelco Dolstra
92f525ecf4
* Negative caching, i.e. caching of build failures. Disabled by
...
default. This is mostly useful for Hydra.
2009-03-25 21:05:42 +00:00
Eelco Dolstra
77d272623f
* NAR archives: handle files larger than 2^32 bytes. Previously it
...
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-03-22 17:36:43 +00:00
Eelco Dolstra
b682fae9d9
* Build hooks: use nix-store --import. This prevents a redundant
...
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.
2009-02-02 17:24:10 +00:00
Eelco Dolstra
8fce03e0ad
* nix-store --verify: repair bad hash fields in the metadata file.
2008-12-16 13:28:18 +00:00
Eelco Dolstra
82ae85de27
* addToStore() in nix-worker: don't write the NAR dump received from
...
the client to a temporary directory, as that is highly inefficient.
2008-12-03 18:05:14 +00:00
Eelco Dolstra
ff762fb499
* Pass HashType values instead of strings.
2008-12-03 16:10:17 +00:00
Eelco Dolstra
1307b22223
* Made addToStore() a lot more efficient: it no longer reads the path
...
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 15:51:17 +00:00
Eelco Dolstra
64519cfd65
* Unify the treatment of sources copied to the store, and recursive
...
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-12-03 15:06:30 +00:00
Eelco Dolstra
e13da525a7
* Files in the info directory starting with "." are temporary files
...
and don't indicate path validity.
2008-11-19 16:27:07 +00:00
Eelco Dolstra
98b07466fb
* Better error checking of the data from the substituters.
2008-08-05 10:57:53 +00:00
Eelco Dolstra
5adbb0aabe
* build.cc: only use a substituter if it returns info for a path.
2008-08-04 13:15:35 +00:00
Eelco Dolstra
c4f98941ed
* nix-env --dry-run: show the total size of the substituter
...
downloads.
2008-08-04 12:29:04 +00:00
Eelco Dolstra
3c92ea399d
* Make nix-env --dry-run print the paths to be substituted correctly
...
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-08-02 12:54:35 +00:00
Eelco Dolstra
989176c56e
* Allow read-only access to the store (e.g., non-root users on NixOS
...
can do operations like "nix-store -qR <path>" even without the Nix
daemon).
2008-07-18 15:34:46 +00:00