about summary refs log tree commit diff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2011-11-23 * Add an API function exportPaths() that provides the functionality ofEelco Dolstra2-30/+10
‘nix-store --export’. * Add a Perl module that provides the functionality of ‘nix-copy-closure --to’. This is used by build-remote.pl so it no longer needs to start a separate nix-copy-closure process. Also, it uses the Perl API to do the export, so it doesn't need to start a separate nix-store process either. As a result, nix-copy-closure and build-remote.pl should no longer fail on very large closures due to an "Argument list too long" error. (Note that having very many dependencies in a single derivation can still fail because the environment can become too large. Can't be helped though.)
2011-11-23 * build-remote.pl: drop a hard-coded reference to /nix/etc/nix.Eelco Dolstra1-1/+2
2011-11-16 * nix-pull: update the Nix manifest cache if necessary. Also, don'tEelco Dolstra1-21/+3
read the manifest just to check the version and print the number of paths. This makes nix-pull very fast for the cached cache (speeding up nixos-rebuild without the ‘--no-pull’ or ‘--fast’ options).
2011-11-16 * Don't decompress the manifests in /nix/var/nix/manifest. This savesEelco Dolstra1-10/+1
disk space, and, since they're typically only decompressed once (to fill the manifest cache), doesn't make things slower.
2011-10-19 * Print a consistent message.Eelco Dolstra1-1/+1
2011-10-18 * nix-copy-closure: support ‘--dry-run’ and ‘--include-outputs’.Eelco Dolstra1-10/+23
2011-10-11 * Use the Store API bindings in nix-copy-closure.Eelco Dolstra1-28/+3
2011-10-11 * Move SSH.pm.Eelco Dolstra4-62/+7
2011-10-10 * Set the executable bit on scripts.Eelco Dolstra14-0/+3
2011-10-10 (no commit message)Eelco Dolstra1-2/+0
2011-10-10 * Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra11-803/+48
the Nix:: namespace.
2011-08-27 * Update the cleanup script.Eelco Dolstra3-8/+12
2011-08-17 * Use last_insert_id instead of sqlite_last_insert_rowid, which you'reEelco Dolstra1-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 angleEelco Dolstra1-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/gcrootsEelco Dolstra1-0/+8
if it doesn't exist.
2011-07-13 * Fix concurrency issues in download-using-manifests' handling of theEelco Dolstra2-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_DIREelco Dolstra1-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 readingEelco Dolstra1-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 Dolstra1-1/+8
2011-04-11 * configure: detect whether DBD::SQLite is present. If necessary theEelco Dolstra5-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 otherEelco Dolstra2-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 Dolstra1-0/+3
2011-04-10 * Cache the manifests in /nix/var/nix/manifests in a SQLite database.Eelco Dolstra2-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 usedEelco Dolstra7-47/+10
and redundant anyway.
2011-03-16 * Print a better error message.Eelco Dolstra1-1/+1
2011-02-17 (no commit message)Eelco Dolstra1-1/+1
2011-02-17 * nix-push: handle the case where the hash is not set in the DB.Eelco Dolstra1-0/+10
2010-12-22 * In Hydra manifests the Size field is missing, so don't rely on it.Eelco Dolstra1-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 Dolstra1-0/+2
2010-12-15 * nix-copy-closure: make sure that the shell doesn't do globbing ofEelco Dolstra1-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 buildEelco Dolstra1-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 lotEelco Dolstra1-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 Dolstra1-2/+2
2010-12-05 * Use CamelCase for the Perl modules.Eelco Dolstra11-17/+16
2010-12-05 * Add a script `nix-generate-patches'.Eelco Dolstra2-2/+45
* Fix the binary patching test.
2010-11-29 * Move the patch generator into a module.Eelco Dolstra4-437/+345
2010-11-29 * Don't generate patches if the system type differs.Eelco Dolstra2-2/+13
2010-11-29 * Impose a configurable time limit on patch generation. This isEelco Dolstra1-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 Dolstra1-1/+1
2010-11-17 * When checking whether a patch is applicable, for efficiency, useEelco Dolstra1-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 Dolstra1-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 pathsEelco Dolstra3-17/+18
will approximately require.
2010-11-17 * Store the NAR size in the manifest.Eelco Dolstra2-1/+7
2010-11-17 * nix-push: no need to compute the NAR hash, since the Nix databaseEelco Dolstra1-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 workEelco Dolstra1-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 isEelco Dolstra1-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 theEelco Dolstra2-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 thatEelco Dolstra1-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 startingEelco Dolstra1-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 Dolstra1-7/+4