Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2011-12-21 | * Security: make sure the lock files used by build-remote.pl are not | Eelco Dolstra | 1 | -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 a | Eelco Dolstra | 1 | -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 Dolstra | 1 | -1/+1 | |
2011-12-02 | * nix-prefetch-url: rewritten in Perl. | Eelco Dolstra | 1 | -135/+98 | |
2011-11-29 | * download-using-manifests: use the Perl bindings. | Eelco Dolstra | 1 | -37/+29 | |
2011-11-29 | * For consistency with "nix-store -q --hash", produce hashes in | Eelco Dolstra | 1 | -2/+2 | |
base-32. (This affects Hydra manifests.) | |||||
2011-11-29 | * Get rid of the shell in ssh calls. | Eelco Dolstra | 1 | -2/+2 | |
2011-11-23 | * Add bzip2 and xz support to nix-copy-closure. | Eelco Dolstra | 1 | -1/+9 | |
2011-11-23 | * Add an API function exportPaths() that provides the functionality of | Eelco Dolstra | 2 | -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 Dolstra | 1 | -1/+2 | |
2011-11-16 | * nix-pull: update the Nix manifest cache if necessary. Also, don't | Eelco Dolstra | 1 | -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 saves | Eelco Dolstra | 1 | -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 Dolstra | 1 | -1/+1 | |
2011-10-18 | * nix-copy-closure: support ‘--dry-run’ and ‘--include-outputs’. | Eelco Dolstra | 1 | -10/+23 | |
2011-10-11 | * Use the Store API bindings in nix-copy-closure. | Eelco Dolstra | 1 | -28/+3 | |
2011-10-11 | * Move SSH.pm. | Eelco Dolstra | 4 | -62/+7 | |
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. |