Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2011-07-20 | * Create a symlink to /nix/var/nix/manifests in /nix/var/nix/gcroots | Eelco Dolstra | 1 | -0/+8 | |
if it doesn't exist. | |||||
2011-07-13 | * Fix concurrency issues in download-using-manifests' handling of the | Eelco Dolstra | 2 | -1/+12 | |
SQLite manifest cache. The DBI AutoCommit feature caused every process to have an active transaction at all times, which could indefinitely block processes wanting to update the manifest cache. * Disable fsync() in the manifest cache because we don't need integrity (the cache can always be recreated if it gets corrupted). | |||||
2011-04-19 | * nix-install-package: unset NIX_REMOTE because $NIX_MANIFESTS_DIR | Eelco Dolstra | 1 | -1/+4 | |
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-11 | * Read manifests directly into the database, rather than first reading | Eelco Dolstra | 1 | -60/+65 | |
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 | * Lock the database during updates. | Eelco Dolstra | 1 | -1/+8 | |
2011-04-11 | * configure: detect whether DBD::SQLite is present. If necessary the | Eelco Dolstra | 5 | -6/+4 | |
location to DBI and DBD::SQLite can be passed with --with-dbi and --with-dbd-sqlite. | |||||
2011-04-11 | * Subtle bug: if you import File::stat in one module, it affects other | Eelco Dolstra | 2 | -5/+7 | |
modules as well. So use symbolic field names everywhere (which is nicer anyway). | |||||
2011-04-11 | * Create $manifestDir if it doesn't exist. | Eelco Dolstra | 1 | -0/+3 | |
2011-04-10 | * Cache the manifests in /nix/var/nix/manifests in a SQLite database. | Eelco Dolstra | 2 | -30/+164 | |
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-06 | * Remove the localPaths feature in manifests since it's no longer used | Eelco Dolstra | 7 | -47/+10 | |
and redundant anyway. | |||||
2011-03-16 | * Print a better error message. | Eelco Dolstra | 1 | -1/+1 | |
2011-02-17 | (no commit message) | Eelco Dolstra | 1 | -1/+1 | |
2011-02-17 | * nix-push: handle the case where the hash is not set in the DB. | Eelco Dolstra | 1 | -0/+10 | |
2010-12-22 | * In Hydra manifests the Size field is missing, so don't rely on it. | Eelco Dolstra | 1 | -2/+2 | |
This caused a lot of "Use of uninitialized value" warnings from Perl. | |||||
2010-12-15 | * Disable X11 forwarding, it's not needed. | Eelco Dolstra | 1 | -0/+2 | |
2010-12-15 | * nix-copy-closure: make sure that the shell doesn't do globbing of | Eelco Dolstra | 1 | -6/+6 | |
`+' 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-13 | * nix-instantiate: return exit status 100 to denote a permanent build | Eelco Dolstra | 1 | -7/+7 | |
failure. The build hook can use this to distinguish between transient and permanent failures on the remote side. | |||||
2010-12-13 | * When doing a query (e.g. `nix-store -r --dry-run'), don't make a lot | Eelco Dolstra | 1 | -4/+12 | |
of expensive calls to `nix-store --check-validity'. | |||||
2010-12-07 | * Bad things happen when a filehandle has the same name as a module. | Eelco Dolstra | 1 | -2/+2 | |
2010-12-05 | * Use CamelCase for the Perl modules. | Eelco Dolstra | 11 | -17/+16 | |
2010-12-05 | * Add a script `nix-generate-patches'. | Eelco Dolstra | 2 | -2/+45 | |
* Fix the binary patching test. | |||||
2010-11-29 | * Move the patch generator into a module. | Eelco Dolstra | 4 | -437/+345 | |
2010-11-29 | * Don't generate patches if the system type differs. | Eelco Dolstra | 2 | -2/+13 | |
2010-11-29 | * Impose a configurable time limit on patch generation. This is | Eelco Dolstra | 1 | -6/+12 | |
necessary because bsdiff has some pathological worst-case behaviour, e.g. O(n^2) on files consisting only of 0s. | |||||
2010-11-17 | * Oops. | Eelco Dolstra | 1 | -1/+1 | |
2010-11-17 | * When checking whether a patch is applicable, for efficiency, use | Eelco Dolstra | 1 | -3/+7 | |
`nix-store -q --hash' to get the hash of the base path rather than `nix-hash'. However, only do this for estimating the size of a download, not for the actual substitution, because sometimes the contents of store paths are modified (which they shouldn't, of course). | |||||
2010-11-17 | * In the download size indication, take binary patches into account. | Eelco Dolstra | 1 | -144/+161 | |
Hopefully this doesn't slow things down too much. | |||||
2010-11-17 | * Before a build, show the disk space that the downloaded store paths | Eelco Dolstra | 3 | -17/+18 | |
will approximately require. | |||||
2010-11-17 | * Store the NAR size in the manifest. | Eelco Dolstra | 2 | -1/+7 | |
2010-11-17 | * nix-push: no need to compute the NAR hash, since the Nix database | Eelco Dolstra | 1 | -7/+5 | |
already has it (`nix-store -q --hash'). | |||||
2010-10-04 | * Don't use SSH's `-tt' flag because it doesn't seem to work | Eelco Dolstra | 1 | -6/+10 | |
on OpenSolaris when using connection sharing. Instead have the remote side check for disconnection and kill the process group when that happens. | |||||
2010-08-31 | * Always print hook output on stderr, even if --no-build-output is | Eelco Dolstra | 1 | -2/+5 | |
set. * In the build hook, print a trace message to allow Hydra to pick up the name of the remote machine used for the build. | |||||
2010-08-30 | * When using the build hook, distinguish between the stderr of the | Eelco Dolstra | 2 | -3/+8 | |
hook script proper, and the stdout/stderr of the builder. Only the latter should be saved in /nix/var/log/nix/drvs. * Allow the verbosity to be set through an option. * Added a flag --quiet to lower the verbosity level. | |||||
2010-08-27 | * Experimental feature: allow a derivation to tell the build hook that | Eelco Dolstra | 1 | -10/+17 | |
it requires a certain feature on the build machine, e.g. requiredSystemFeatures = [ "kvm" ]; We need this in Hydra to make sure that builds that require KVM support are forwarded to machines that have KVM support. Probably this should also be enforced for local builds. | |||||
2010-08-25 | * Made the build hook mechanism more efficient. Rather than starting | Eelco Dolstra | 1 | -125/+125 | |
the hook every time we want to ask whether we can run a remote build (which can be very often), we now reuse a hook process for answering those queries until it accepts a build. So if there are N derivations to be built, at most N hooks will be started. | |||||
2010-08-25 | * Don't call "cat". | Eelco Dolstra | 1 | -7/+4 | |
2010-08-25 | * In the build hook, temporarily register the derivation and its | Eelco Dolstra | 1 | -5/+23 | |
output as GC roots. This prevents a race if the garbage collector is running during the build. | |||||
2010-08-24 | * Correctly handle SSH failing to establish a connection. Because | Eelco Dolstra | 1 | -4/+7 | |
this didn't work right, the build hook wouldn't fall back to using other machines of the desired type. | |||||
2010-08-11 | * nix-build: recognise --cores. | Eelco Dolstra | 1 | -1/+1 | |
2010-08-04 | * Sync with the trunk. | Eelco Dolstra | 1 | -16/+24 | |
2010-07-21 | * Don't barf if the source NAR for a patch has disappeared. | Eelco Dolstra | 1 | -1/+6 | |
2010-06-23 | * Ignore packages that don't have a version. | Eelco Dolstra | 1 | -15/+18 | |
* Work on a manifest instead of a channel directory. | |||||
2010-06-22 | * Sync. | Eelco Dolstra | 1 | -2/+2 | |
2010-06-22 | * Pass `--fallback' to the remote build to ignore failing | Eelco Dolstra | 1 | -2/+2 | |
substituters. | |||||
2010-04-26 | * Fix the copy-from-other-stores substituter. | Eelco Dolstra | 1 | -34/+24 | |
2010-03-05 | * nix-prefetch-url depends on sed (see | Eelco Dolstra | 1 | -1/+1 | |
http://hydra.nixos.org/build/311170). | |||||
2010-02-16 | * Since Hydra now escapes `+', `=' and `?' to %NN in URIs, | Eelco Dolstra | 1 | -1/+4 | |
nix-prefetch-url should unescape them, because `%' is not a valid character in store path names. | |||||
2010-02-04 | * "Fix" incorrect help message. | Eelco Dolstra | 1 | -1/+1 | |
2010-02-04 | * Don't use ssh's -f flag since it leads to lots of lingering ssh | Eelco Dolstra | 1 | -2/+12 | |
processes. | |||||
2010-02-04 | * Doh! The scope of $slotLock should extend to the end of the script, | Eelco Dolstra | 1 | -1/+2 | |
because otherwise the lock will be released at the end of the while loop. |