aboutsummaryrefslogtreecommitdiff
path: root/perl
AgeCommit message (Collapse)Author
2012-07-30Refactor settings processingEelco Dolstra
Put all Nix configuration flags in a Settings object.
2012-07-30Do some validation of URLsEelco Dolstra
2012-07-30Pass configuration settings to the substitutersEelco Dolstra
Previously substituters could read nix.conf themselves, but this didn't take --option flags into account.
2012-07-18Merge branch 'master' into no-manifestsEelco Dolstra
2012-07-17Add function queryPathFromHashPart()Eelco Dolstra
To implement binary caches efficiently, Hydra needs to be able to map the hash part of a store path (e.g. "gbg...zr7") to the full store path (e.g. "/nix/store/gbg...kzr7-subversion-1.7.5"). (The binary cache mechanism uses hash parts as a key for looking up store paths to ensure privacy.) However, doing a search in the Nix store for /nix/store/<hash>* is expensive since it requires reading the entire directory. queryPathFromHashPart() prevents this by doing a cheap database lookup.
2012-07-17queryPathInfo(): return hash in base-32 if desiredEelco Dolstra
Cherry-picked from the no-manifests branch.
2012-07-11Set the User-Agent header to "Nix/<version>"Eelco Dolstra
2012-07-09download-from-binary-cache: add nix.conf optionsEelco Dolstra
2012-07-02nix-push: Always generate base-32 hashesEelco Dolstra
2012-06-29First attempt at the manifest-less substituterEelco Dolstra
2012-06-29Use XZ compression in binary cachesEelco Dolstra
XZ compresses significantly better than bzip2. Here are the compression ratios and execution times (using 4 cores in parallel) on my /var/run/current-system (3.1 GiB): bzip2: total compressed size 849.56 MiB, 30.8% [2m08] xz -6: total compressed size 641.84 MiB, 23.4% [6m53] xz -7: total compressed size 621.82 MiB, 22.6% [7m19] xz -8: total compressed size 599.33 MiB, 21.8% [7m18] xz -9: total compressed size 588.18 MiB, 21.4% [7m40] Note that compression takes much longer. More importantly, however, decompression is much faster: bzip2: 1m47.274s xz -6: 0m55.446s xz -7: 0m54.119s xz -8: 0m52.388s xz -9: 0m51.842s The only downside to using -9 is that decompression takes a fair amount (~65 MB) of memory.
2012-05-10Support building with the Perl XS bindings disabledEelco Dolstra
Since the Perl bindings require shared libraries, this is required on platforms such as Cygwin where we do a static build.
2012-05-10Remove an obsolete hackEelco Dolstra
2012-05-04Fix some 32-bit buildsEelco Dolstra
Perl on some 32-bit systems needs -D_FILE_OFFSET_BITS=64. See also commit 02f1363e19b7df7cccc3523805bbf4fafe429529.
2012-05-04Drop the Perl-specific CFLAGSEelco Dolstra
This fixes the Darwin build (http://hydra.nixos.org/build/2517380). Hopefully it doesn't break other builds.
2012-04-13nix-copy-closure: Move the progressViewer directly adjacent to the ssh call ↵Shea Levy
so that network progress is what's measured
2012-04-13Add the '--show-progress' flag to nix-copy-closureShea Levy
2012-04-10Unconfuse RobEelco Dolstra
2012-03-19Add a command "nix-build --run-env" to reproduce the environment of a derivationEelco Dolstra
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-05nix-copy-closure: don't print copied path on stdoutEelco Dolstra
We're already printing progress on stderr, so printing them on stdout afterwards is kind of useless.
2012-03-05Restore progress indication during nix-copy-closureEelco Dolstra
2012-01-18* Don't distribute Store.cc, it's generated automatically by xsubpp.Eelco Dolstra
2012-01-18* Pass the appropriate flags to GCC when building the Perl bindings.Eelco Dolstra
Without these, Nix fails on 32-bit Linux with Perl 5.14, with a rather unhelpful error message: Not a CODE reference at /nix/store/n6kpbacn6nn7i3i735v8j3di8aqyl07v-perl-5.14.2/lib/perl5/5.14.2/i686-linux-thread-multi/DynaLoader.pm This is likely because the lack of -D_FILE_OFFSET_BITS=64 causes various Perl structures to not match what the Perl interpreter expects.
2012-01-12* ‘-module’ causes the generated library to have an .so extension onEelco Dolstra
Mac OS X instead of .dylib, so don't do that.
2012-01-11perl: Build libNixStore.la with `-module'.Ludovic Courtès
2012-01-11* Figure out the extension of dynamic libraries; don't hard-code .so.Eelco Dolstra
2012-01-05* Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra
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* Sync with the trunk.Eelco Dolstra
2012-01-03* Ignore missing manifest symlinks.Eelco Dolstra
2012-01-03* Add a test for nix-channel.Eelco Dolstra
* Refactor the nix-channel unpacker a bit.
2011-12-02* Add some more functions to the Perl bindings.Eelco Dolstra
2011-11-29* Don't require a specific Perl version.Eelco Dolstra
2011-11-29* Fix make check.Eelco Dolstra
2011-11-29* download-using-manifests: use the Perl bindings.Eelco Dolstra
2011-11-29* For consistency with "nix-store -q --hash", produce hashes inEelco Dolstra
base-32. (This affects Hydra manifests.)
2011-11-23* Add an API function exportPaths() that provides the functionality ofEelco Dolstra
‘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
2011-11-22* Move initialisation of variables like nixConfDir from libmain toEelco Dolstra
libstore so that the Perl bindings can use it as well. It's vital that the Perl bindings use the configuration file, because otherwise nix-copy-closure will fail with a ‘database locked’ message if the value of ‘use-sqlite-wal’ is changed from the default.
2011-11-16* nix-pull: update the Nix manifest cache if necessary. Also, don'tEelco Dolstra
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 Dolstra
disk space, and, since they're typically only decompressed once (to fill the manifest cache), doesn't make things slower.
2011-11-16* Remove obsolete line.Eelco Dolstra
2011-11-16* Re-use prepared statements across insertions into the manifest cacheEelco Dolstra
DB. This speeds up creating the cache from 16.1s to 7.9s on my system.
2011-10-11* Use the Store API bindings in nix-copy-closure.Eelco Dolstra
2011-10-11* Move SSH.pm.Eelco Dolstra
2011-10-11* Distribute GeneratePatches.pm.Eelco Dolstra
2011-10-10* Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra
the Nix:: namespace.
2011-10-10* Include the Nix Perl bindings in Nix itself. This will allow theEelco Dolstra
bindings to be used in Nix's own Perl scripts. The only downside is that Perl XS and Automake/libtool don't really like each other, so building is a bit tricky.