about summary refs log tree commit diff
path: root/perl (follow)
AgeCommit message (Collapse)AuthorFilesLines
2012-07-18 Merge branch 'master' into no-manifestsEelco Dolstra2-0/+12
2012-07-17 Add function queryPathFromHashPart()Eelco Dolstra2-0/+12
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-17 queryPathInfo(): return hash in base-32 if desiredEelco Dolstra1-2/+2
Cherry-picked from the no-manifests branch.
2012-07-11 Set the User-Agent header to "Nix/<version>"Eelco Dolstra1-0/+2
2012-07-09 download-from-binary-cache: add nix.conf optionsEelco Dolstra1-3/+3
2012-07-02 nix-push: Always generate base-32 hashesEelco Dolstra1-2/+2
2012-06-29 First attempt at the manifest-less substituterEelco Dolstra1-0/+1
2012-06-29 Use XZ compression in binary cachesEelco Dolstra1-1/+2
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-10 Support building with the Perl XS bindings disabledEelco Dolstra3-3/+75
Since the Perl bindings require shared libraries, this is required on platforms such as Cygwin where we do a static build.
2012-05-10 Remove an obsolete hackEelco Dolstra1-3/+0
2012-05-04 Fix some 32-bit buildsEelco Dolstra1-1/+2
Perl on some 32-bit systems needs -D_FILE_OFFSET_BITS=64. See also commit 02f1363e19b7df7cccc3523805bbf4fafe429529.
2012-05-04 Drop the Perl-specific CFLAGSEelco Dolstra1-2/+1
This fixes the Darwin build (http://hydra.nixos.org/build/2517380). Hopefully it doesn't break other builds.
2012-04-13 nix-copy-closure: Move the progressViewer directly adjacent to the ssh call ↵Shea Levy1-1/+1
so that network progress is what's measured
2012-04-13 Add the '--show-progress' flag to nix-copy-closureShea Levy1-3/+4
2012-04-10 Unconfuse RobEelco Dolstra1-2/+2
2012-03-19 Add a command "nix-build --run-env" to reproduce the environment of a derivationEelco Dolstra2-0/+43
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-01-18 * Don't distribute Store.cc, it's generated automatically by xsubpp.Eelco Dolstra1-1/+3
2012-01-18 * Pass the appropriate flags to GCC when building the Perl bindings.Eelco Dolstra1-1/+2
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 Dolstra1-1/+0
Mac OS X instead of .dylib, so don't do that.
2012-01-11 perl: Build libNixStore.la with `-module'.Ludovic Courtès1-1/+2
2012-01-11 * Figure out the extension of dynamic libraries; don't hard-code .so.Eelco Dolstra1-2/+2
2012-01-05 * Add a -I flag to the Perl bindings to nix-build and some otherEelco Dolstra1-5/+1
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 Dolstra1-0/+1
2012-01-03 * Ignore missing manifest symlinks.Eelco Dolstra1-0/+1
2012-01-03 * Add a test for nix-channel.Eelco Dolstra1-0/+1
* Refactor the nix-channel unpacker a bit.
2011-12-02 * Add some more functions to the Perl bindings.Eelco Dolstra2-1/+48
2011-11-29 * Don't require a specific Perl version.Eelco Dolstra1-1/+0
2011-11-29 * Fix make check.Eelco Dolstra1-1/+3
2011-11-29 * download-using-manifests: use the Perl bindings.Eelco Dolstra2-1/+16
2011-11-29 * For consistency with "nix-store -q --hash", produce hashes inEelco Dolstra1-1/+1
base-32. (This affects Hydra manifests.)
2011-11-23 * Add an API function exportPaths() that provides the functionality ofEelco Dolstra4-2/+61
‘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-0/+1
2011-11-22 * Move initialisation of variables like nixConfDir from libmain toEelco Dolstra1-3/+1
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 Dolstra1-4/+4
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-2/+8
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 Dolstra1-1/+0
2011-11-16 * Re-use prepared statements across insertions into the manifest cacheEelco Dolstra1-8/+12
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 Dolstra3-11/+33
2011-10-11 * Move SSH.pm.Eelco Dolstra2-1/+53
2011-10-11 * Distribute GeneratePatches.pm.Eelco Dolstra1-4/+6
2011-10-10 * Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra4-2/+728
the Nix:: namespace.
2011-10-10 * Include the Nix Perl bindings in Nix itself. This will allow theEelco Dolstra4-0/+184
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.