diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-06-13 15:39:08 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-06-13 15:56:23 +0200 |
commit | 629daa2102abbcb368cd46ac1f0a85c0bbe104f5 (patch) | |
tree | b980a61e4634af94703059511a5ec2c7f30c5d6c /doc | |
parent | a79076b7aa0d52873be79f8185f0b0b396a0e57d (diff) | |
download | nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar.gz nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar.bz2 nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar.lz nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar.xz nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.tar.zst nixpkgs-629daa2102abbcb368cd46ac1f0a85c0bbe104f5.zip |
Rewrite the CPAN generator to Perl
Also: - It's now installable by doing "nix-env -i nix-generate-from-cpan". - It maps dependencies to the correct attribute (e.g. HTML::HeadParser is mapped to HTMLParser). - It automatically selects buildPerlPackage or buildPerlModule. - It's documented in the manual.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/language-support.xml | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/doc/language-support.xml b/doc/language-support.xml index 6cc028c0b0a..cb40be4bf57 100644 --- a/doc/language-support.xml +++ b/doc/language-support.xml @@ -21,7 +21,7 @@ standard <varname>Makefile.PL</varname>. It’s implemented in <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.</para> <para>Perl packages from CPAN are defined in <link -xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/perl-packages.nix</filename></link>, +xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package @@ -151,6 +151,43 @@ ClassC3Componentised = buildPerlPackage rec { </para> +<section><title>Generation from CPAN</title> + +<para>Nix expressions for Perl packages can be generated (almost) +automatically from CPAN. This is done by the program +<command>nix-generate-from-cpan</command>, which can be installed +as follows:</para> + +<screen> +$ nix-env -i nix-generate-from-cpan +</screen> + +<para>This program takes a Perl module name, looks it up on CPAN, +fetches and unpacks the corresponding package, and prints a Nix +expression on standard output. For example: + +<screen> +$ nix-generate-from-cpan XML::Simple + XMLSimple = buildPerlPackage { + name = "XML-Simple-2.20"; + src = fetchurl { + url = mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.20.tar.gz; + sha256 = "5cff13d0802792da1eb45895ce1be461903d98ec97c9c953bc8406af7294434a"; + }; + propagatedBuildInputs = [ XMLNamespaceSupport XMLSAX XMLSAXExpat ]; + meta = { + description = "Easily read/write XML (esp config files)"; + license = "perl"; + }; + }; +</screen> + +The output can be pasted into +<filename>pkgs/top-level/perl-packages.nix</filename> or wherever else +you need it.</para> + +</section> + </section> |