about summary refs log tree commit diff
path: root/scripts
AgeCommit message (Collapse)AuthorFilesLines
2012-03-27 Update "nix-build --help"Eelco Dolstra1-1/+6
2012-03-27 Add an option "--exclude" to filter dependencies in "nix-build --run-env"Eelco Dolstra1-1/+9
Sometimes when doing "nix-build --run-env" you don't want all dependencies to be built. For instance, if we want to do "--run-env" on the "build" attribute in Hydra's release.nix (to get Hydra's build environment), we don't want its "tarball" dependency to be built. So we can do: $ nix-build --run-env release.nix -A build --exclude 'hydra-tarball' This will skip the dependency whose name matches the "hydra-tarball" regular expression. The "--exclude" option can be repeated any number of times.
2012-03-27 Allow the command executed by "nix-build --run-env" to be overriden with ↵Eelco Dolstra1-1/+9
--command
2012-03-19 Add a command "nix-build --run-env" to reproduce the environment of a derivationEelco Dolstra1-0/+29
This command builds or fetches all dependencies of the given derivation, then starts a shell with the environment variables from the derivation. This shell also sources $stdenv/setup to initialise the environment further. The current directory is not changed. Thus this is a convenient way to reproduce a build environment in an existing working tree. Existing environment variables are left untouched (unless the derivation overrides them). As a special hack, the original value of $PATH is appended to the $PATH produced by $stdenv/setup. Example session: $ nix-build --run-env '<nixpkgs>' -A xterm (the dependencies of xterm are built/fetched...) $ tar xf $src $ ./configure $ make $ emacs (... hack source ...) $ make $ ./xterm
2012-03-05 nix-copy-closure: don't print copied path on stdoutEelco Dolstra1-1/+1
We're already printing progress on stderr, so printing them on stdout afterwards is kind of useless.
2012-03-05 Restore progress indication during nix-copy-closureEelco Dolstra1-1/+0
2012-03-05 build-remote.pl: don't wait forever for the upload lockEelco Dolstra1-3/+17
In the build hook, don't wait forever to get the upload lock. This ensures progress if another process gets stuck while holding the upload lock.
2012-02-02 * nix-channel: fail if we don't have write permission to the manifestsEelco Dolstra1-13/+7
directory. Previously in this situation we did add the Nix expressions from the channel to allow installation from source, but this doesn't work for binary-only channels and leads to confusing error messages.
2012-01-13 * nix-build: put the temporary derivation symlink in a temporaryEelco Dolstra1-28/+9
directory rather than the current directory. * nix-build: --drv-link now implies --add-drv-link.
2012-01-05 * Doh!Eelco Dolstra1-1/+1
2012-01-05 * Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra5-5/+5
scripts. * Include the version and architecture in the -I flag so that there is at least a chance that a Nix binary built for one Perl version will run on another version.
2012-01-03 * Add a test for nix-channel.Eelco Dolstra1-12/+10
* Refactor the nix-channel unpacker a bit.
2012-01-03 * Use Nix::Config.Eelco Dolstra4-22/+15
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.