The nixpkgs-unstable channel's programs.sqlite was used to identify
packages producing exactly one binary, and these automatically added
to their package definitions wherever possible.
This makes the detection of core modules a bit more robust by checking
the module inclusion in a pure Perl interpreter. This ensures that any
extra path in the `nix-generate-from-cpan` script's `PERL5LIB` does not
affect the generated package expression.
This commit includes a substantial refactoring of
`nix-generate-from-cpan`. This somewhat simplifies the code through the
use of the CPAN::Meta module while adding the following features:
- The program now takes an optional maintainer on the command line that
is subsequently added into the generated package.
- An attempt is made to convert the license specified inside the
META.json or META.yaml file to a license in `stdenv.lib.licenses`.
- An attempt is made to disambiguate attribute names of packages whose
name is a reserved word in Nix.
- Write logging output using Log::Log4perl.
- Print module RSS feed URL. The RSS feed, hosted by MetaCPAN, can be
used to track updates to the module.
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.