buildPerlPackage: name -> (pname, version)

This commit is contained in:
volth
2019-06-20 15:56:50 +00:00
parent ffd9bf7e29
commit b3cc65f8b9
34 changed files with 4470 additions and 3056 deletions
@@ -1,7 +1,14 @@
{ lib, stdenv, perl, buildPerl, toPerlModule }:
{ buildInputs ? [], nativeBuildInputs ? [], name, ... } @ attrs:
{ buildInputs ? [], nativeBuildInputs ? [], ... } @ attrs:
assert attrs?pname -> attrs?version;
assert attrs?pname -> !(attrs?name);
(if attrs ? name then
lib.trivial.warn "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
else
(x: x))
toPerlModule(stdenv.mkDerivation (
(
lib.recursiveUpdate
@@ -27,14 +34,15 @@ toPerlModule(stdenv.mkDerivation (
# https://metacpan.org/pod/release/XSAWYERX/perl-5.26.0/pod/perldelta.pod#Removal-of-the-current-directory-%28%22.%22%29-from-@INC
PERL_USE_UNSAFE_INC = "1";
meta.homepage = "https://metacpan.org/release/${(builtins.parseDrvName name).name}";
meta.homepage = "https://metacpan.org/release/${attrs.pname or (builtins.parseDrvName attrs.name).name}"; # TODO: phase-out `attrs.name`
meta.platforms = perl.meta.platforms;
}
attrs
)
//
{
name = "perl${perl.version}-${name}";
pname = "perl${perl.version}-${attrs.pname or (builtins.parseDrvName attrs.name).name}"; # TODO: phase-out `attrs.name`
version = attrs.version or (builtins.parseDrvName attrs.name).version; # TODO: phase-out `attrs.name`
builder = ./builder.sh;
buildInputs = buildInputs ++ [ perl ];
nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];