about summary refs log tree commit diff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2012-01-03 * Refactoring: Get rid of a few subdirectories in corepkgs/, and someEelco Dolstra1-4/+1
other simplifications. * Use <nix/...> to locate the corepkgs. This allows them to be overriden through $NIX_PATH. * Use bash's pipefail option in the NAR builder so that we don't need to create a temporary file.
2011-12-21 * Security: make sure the lock files used by build-remote.pl are notEelco Dolstra1-5/+5
readable to other users. Otherwise, any user can open the lock file for reading and lock it, thus DoSing the remote build mechanism.
2011-12-21 * Use a lock to ensure that only one build-remote instance can copy aEelco Dolstra1-1/+10
closure to a given machine at the same time. This prevents the case where multiple instances try to copy the same missing store path to the target machine, which is very wasteful.
2011-12-15 * Typo.Eelco Dolstra1-1/+1
2011-12-02 * nix-prefetch-url: rewritten in Perl.Eelco Dolstra1-135/+98
2011-11-29 * download-using-manifests: use the Perl bindings.Eelco Dolstra1-37/+29
2011-11-29 * For consistency with "nix-store -q --hash", produce hashes inEelco Dolstra1-2/+2
base-32. (This affects Hydra manifests.)
2011-11-29 * Get rid of the shell in ssh calls.Eelco Dolstra1-2/+2
2011-11-23 * Add bzip2 and xz support to nix-copy-closure.Eelco Dolstra1-1/+9
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.