Eelco Dolstra
d94cb02bfe
* nix-install-package: unset NIX_REMOTE because $NIX_MANIFESTS_DIR
...
doesn't work when building through the Nix daemon. This also
ensures an error message when the user doesn't have sufficient
privileges to do nix-pull.
2011-04-19 10:52:35 +00:00
Eelco Dolstra
8c69dac8a1
* Handle error messages from the Nix worker containing the `%'
...
character. (Nix/216)
2011-04-19 10:44:44 +00:00
Eelco Dolstra
4ba6afaf48
* nix-env -ub' (
--prebuilt-only') didn't really work because it
...
checked too soon whether substitutes are available. That is, it did
so for every available package, rather than those matching installed
packages. This was very slow and subject to assertion failures. So
do the check much later. Idem for `nix-env -qab' and `nix-env -ib'.
2011-04-11 16:27:05 +00:00
Eelco Dolstra
412914d004
* Read manifests directly into the database, rather than first reading
...
them into memory. This brings memory use down to (more or less)
O(1). For instance, on my test case, the maximum resident size of
download-using-manifests while filling the DB went from 142 MiB to
11 MiB.
2011-04-11 13:16:54 +00:00
Eelco Dolstra
08c8971498
* Lock the database during updates.
2011-04-11 12:40:13 +00:00
Eelco Dolstra
b2c11b9ed0
2011-04-11 10:23:15 +00:00
Eelco Dolstra
3cbf680f5d
* configure: detect whether DBD::SQLite is present. If necessary the
...
location to DBI and DBD::SQLite can be passed with --with-dbi and
--with-dbd-sqlite.
2011-04-11 10:13:53 +00:00
Eelco Dolstra
83252b4ca9
* Subtle bug: if you import File::stat in one module, it affects other
...
modules as well. So use symbolic field names everywhere (which is
nicer anyway).
2011-04-11 08:21:30 +00:00
Eelco Dolstra
b1882c3ef7
* Create $manifestDir if it doesn't exist.
2011-04-11 08:06:14 +00:00
Eelco Dolstra
5591fcc529
* Cache the manifests in /nix/var/nix/manifests in a SQLite database.
...
This significantly speeds up the download-using-manifests
substituter, especially if manifests are very large. For instance,
one "nix-build -A geeqie" operation that updated four packages using
binary patches went from 18.5s to 1.6s. It also significantly
reduces memory use.
The cache is kept in /nix/var/nix/manifests/cache.sqlite. It's
updated automatically when manifests are added to or removed from
/nix/var/nix/manifests. It might be interesting to have nix-pull
store manifests directly in the DB, rather than storing them as
separate flat files, but then we would need a command line interface
to delete manifests from the DB.
2011-04-10 23:22:46 +00:00
Eelco Dolstra
1e7e4f21ba
* Remove the localPaths feature in manifests since it's no longer used
...
and redundant anyway.
2011-04-06 09:16:22 +00:00
Eelco Dolstra
0423d0692a
* Print a better error message.
2011-03-16 15:55:57 +00:00
Eelco Dolstra
48bdbbf070
* Fix a bug in the documentation (reported by Olexiy Buyanskyy,
...
Nix/215).
2011-03-15 13:12:59 +00:00
Eelco Dolstra
802c2651c8
2011-02-17 15:08:33 +00:00
Eelco Dolstra
e945b52a31
* nix-push: handle the case where the hash is not set in the DB.
2011-02-17 13:26:33 +00:00
Eelco Dolstra
c3cee5395b
* Build for Ubuntu 10.04.
2011-02-14 14:56:02 +00:00
Florian Friesdorf
8fcaf3e9c6
make nix-mode provide 'nix-mode
...
this enables (require 'nix-mode)
2011-02-14 03:11:56 +00:00
Eelco Dolstra
538b7caab0
* Don't allocate a big initial GC address space on machines with
...
little RAM. Even if the memory isn't actually used, it can cause
problems with the overcommit heuristics in the kernel. So use a VM
space of 25% of RAM, up to 384 MB.
2011-02-10 14:31:04 +00:00
Eelco Dolstra
5a6b039802
* Don't call GC_expand_hp unless we're actually using the garbage
...
collector.
2011-02-09 22:59:50 +00:00
Ludovic Courtès
f1462c208b
Use $BDW_GC_LIBS instead of a custom variable.
2011-02-09 21:23:13 +00:00
Eelco Dolstra
1876ab764f
* A better fix. $boehmgc isn't set anywhere, we should use the flags
...
returned by pkg-config.
2011-02-09 14:13:09 +00:00
Eelco Dolstra
dfc4117e90
* The GC library can't be found on Solaris
...
(http://hydra.nixos.org/build/890714 ), so don't build with GC
support for now.
2011-02-09 14:08:32 +00:00
Eelco Dolstra
d159ea1b7e
* Urgh, FreeBSD doesn't have a "seq" command.
2011-02-09 14:03:16 +00:00
Eelco Dolstra
3087b3f751
* Obsolete.
2011-02-09 12:48:54 +00:00
Eelco Dolstra
eb94581d39
* Remove obsolete directory.
2011-02-09 12:43:44 +00:00
Eelco Dolstra
7bba67c401
* Remove obsolete file.
2011-02-09 12:42:15 +00:00
Eelco Dolstra
d0eda1f3e9
* Merged the SQLite branch.
2011-02-09 12:41:54 +00:00
Eelco Dolstra
543988572e
* Sync with the trunk.
2011-02-09 12:25:53 +00:00
Eelco Dolstra
c0340eec5a
2011-02-08 12:30:28 +00:00
Eelco Dolstra
0304fda3cf
* Propagate the CC setting.
2011-02-05 16:40:15 +00:00
Eelco Dolstra
aeae0beba4
* Clang compatibility fix. Clang actually checks template definitions
...
when they are defined
2011-02-05 16:29:10 +00:00
Ludovic Courtès
3854fc9b42
Remove useless <config.h> inclusion from public header.
2011-01-14 13:55:58 +00:00
Eelco Dolstra
9db190eb31
* builtins.substring: if "start" is beyond the end of the string,
...
return the empty string.
2011-01-14 12:47:10 +00:00
Eelco Dolstra
d6c8b995c5
* In Hydra manifests the Size field is missing, so don't rely on it.
...
This caused a lot of "Use of uninitialized value" warnings from
Perl.
2010-12-22 10:32:32 +00:00
Eelco Dolstra
c931a7aec5
* Do a short sleep after SQLITE_BUSY.
2010-12-17 17:23:15 +00:00
Eelco Dolstra
b1eb252172
* Propagate the "100" exit status for failed builds through the Nix
...
daemon.
2010-12-17 11:28:26 +00:00
Eelco Dolstra
eac93d6efe
* Use the right `make'.
2010-12-17 09:28:51 +00:00
Eelco Dolstra
a0be433fec
* Disable X11 forwarding, it's not needed.
2010-12-15 14:25:54 +00:00
Eelco Dolstra
f1a6b97639
* nix-copy-closure: make sure that the shell doesn't do globbing of
...
`+' and `?' in filenames. This is very slow if /nix/store is very
large. (This is a quick hack - a cleaner solution would be to
bypass the shell entirely.)
2010-12-15 08:39:37 +00:00
Eelco Dolstra
3dd02580e3
* I forgot to catch SQLiteBusy in registerValidPaths(). So
...
registerValidPaths() now handles busy errors and registerValidPath()
is simply a wrapper around it.
2010-12-14 13:25:20 +00:00
Eelco Dolstra
d787285af9
* nix-instantiate: return exit status 100 to denote a permanent build
...
failure. The build hook can use this to distinguish between
transient and permanent failures on the remote side.
2010-12-13 16:53:23 +00:00
Eelco Dolstra
5833243c92
* Create /nix/var/nix/db if it's missing.
2010-12-13 13:42:34 +00:00
Eelco Dolstra
100becf8d1
* createDirs(path): if path already exists, make sure it's a
...
directory.
* Provide a C++ wrapper around lstat().
2010-12-13 13:32:58 +00:00
Eelco Dolstra
d7ca6f44eb
* Update some comments.
2010-12-13 13:19:46 +00:00
Eelco Dolstra
542fc69062
* When doing a query (e.g. `nix-store -r --dry-run'), don't make a lot
...
of expensive calls to `nix-store --check-validity'.
2010-12-13 08:39:10 +00:00
Eelco Dolstra
4d57776813
* Use SQLite 3.7.4.
2010-12-10 11:45:56 +00:00
Eelco Dolstra
e4720b1a79
* Ignore the result of sqlite3_reset().
2010-12-08 18:19:15 +00:00
Eelco Dolstra
7d0444e244
* Bad things happen when a filehandle has the same name as a module.
2010-12-07 12:33:42 +00:00
Eelco Dolstra
8062d3af30
* `nix-store --verify --check-contents': don't hold the global GC lock
...
while checking the contents, since this operation can take a very
long time to finish. Also, fill in missing narSize fields in the DB
while doing this.
2010-12-06 15:29:38 +00:00
Eelco Dolstra
de79d23f76
* Retry a transaction if SQLite returns SQLITE_BUSY. This can happen
...
even with a very long busy timeout, because SQLITE_BUSY is also
returned to resolve deadlocks. This should get rid of random
"database is locked" errors. This is kind of hard to test though.
* Fix a horrible bug in deleteFromStore(): deletePathWrapped() should
be called after committing the transaction, not before, because the
commit might not succeed.
2010-12-05 18:23:19 +00:00