about summary refs log tree commit diff
path: root/perl/Makefile.am
AgeCommit message (Collapse)AuthorFilesLines
2014-01-08 Support cryptographically signed binary cachesEelco Dolstra1-1/+1
NAR info files in binary caches can now have a cryptographic signature that Nix will verify before using the corresponding NAR file. To create a private/public key pair for signing and verifying a binary cache, do: $ openssl genrsa -out ./cache-key.sec 2048 $ openssl rsa -in ./cache-key.sec -pubout > ./cache-key.pub You should also come up with a symbolic name for the key, such as "cache.example.org-1". This will be used by clients to look up the public key. (It's a good idea to number keys, in case you ever need to revoke/replace one.) To create a binary cache signed with the private key: $ nix-push --dest /path/to/binary-cache --key ./cache-key.sec --key-name cache.example.org-1 The public key (cache-key.pub) should be distributed to the clients. They should have a nix.conf should contain something like: signed-binary-caches = * binary-cache-public-key-cache.example.org-1 = /path/to/cache-key.pub If all works well, then if Nix fetches something from the signed binary cache, you will see a message like: *** Downloading ‘http://cache.example.org/nar/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’ (signed by ‘cache.example.org-1’) to ‘/nix/store/7dppcj5sc1nda7l54rjc0g5l1hamj09j-subversion-1.7.11’... On the other hand, if the signature is wrong, you get a message like NAR info file `http://cache.example.org/7dppcj5sc1nda7l54rjc0g5l1hamj09j.narinfo' has an invalid signature; ignoring Signatures are implemented as a single line appended to the NAR info file, which looks like this: Signature: 1;cache.example.org-1;HQ9Xzyanq9iV...muQ== Thus the signature has 3 fields: a version (currently "1"), the ID of key, and the base64-encoded signature of the SHA-256 hash of the contents of the NAR info file up to but not including the Signature line. Issue #75.
2012-10-10 Out-of-tree building of perl modules.Mats Erik Andersson1-0/+1
2012-07-30 Do some validation of URLsEelco Dolstra1-1/+1
2012-05-10 Support building with the Perl XS bindings disabledEelco Dolstra1-1/+8
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-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.
2011-11-29 * Fix make check.Eelco Dolstra1-1/+3
2011-11-23 * Add an API function exportPaths() that provides the functionality ofEelco Dolstra1-1/+1
‘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-10-11 * Use the Store API bindings in nix-copy-closure.Eelco Dolstra1-0/+1
2011-10-11 * Move SSH.pm.Eelco Dolstra1-1/+1
2011-10-11 * Distribute GeneratePatches.pm.Eelco Dolstra1-4/+6
2011-10-10 * Install NixManifest.pm, NixConfig.pm and GeneratePatches.pm underEelco Dolstra1-2/+6
the Nix:: namespace.
2011-10-10 * Include the Nix Perl bindings in Nix itself. This will allow theEelco Dolstra1-0/+25
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.