Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2011-10-10 | * Set the executable bit on scripts. | Eelco Dolstra | 14 | -0/+3 | |
2011-10-10 | (no commit message) | Eelco Dolstra | 1 | -2/+0 | |
2011-10-10 | * Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm under | Eelco Dolstra | 11 | -803/+48 | |
the Nix:: namespace. | |||||
2011-08-27 | * Update the cleanup script. | Eelco Dolstra | 3 | -8/+12 | |
2011-08-17 | * Use last_insert_id instead of sqlite_last_insert_rowid, which you're | Eelco Dolstra | 1 | -1/+1 | |
not really supposed to use according to the DBD::SQLite docs, and fails on some systems (e.g. http://hydra.nixos.org/build/1246662). | |||||
2011-08-06 | * Add a Nix expression search path feature. Paths between angle | Eelco Dolstra | 1 | -2/+2 | |
brackets, e.g. import <nixpkgs/pkgs/lib> are resolved by looking them up relative to the elements listed in the search path. This allows us to get rid of hacks like import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib" The search path can be specified through the ‘-I’ command-line flag and through the colon-separated ‘NIX_PATH’ environment variable, e.g., $ nix-build -I /etc/nixos ... If a file is not found in the search path, an error message is lazily thrown. | |||||
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. |