summary refs log tree commit diff
path: root/pkgs/development/perl-modules/generic/default.nix
diff options
context:
space:
mode:
authorJonathan Ringer <jonringer117@gmail.com>2022-02-09 17:19:00 -0800
committerJonathan Ringer <jonringer@users.noreply.github.com>2022-02-10 10:50:25 -0800
commitc36c0bdba35496bc897abc89ead897e1a91f7de3 (patch)
tree1918bf630dc65836f1d7d17703914ae53c71488b /pkgs/development/perl-modules/generic/default.nix
parent5f0f509d2216f5cd8ce52d8df7111c851e6f846f (diff)
downloadnixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar.gz
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar.bz2
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar.lz
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar.xz
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.tar.zst
nixpkgs-c36c0bdba35496bc897abc89ead897e1a91f7de3.zip
perlPackages: restore meta.positoin
Diffstat (limited to 'pkgs/development/perl-modules/generic/default.nix')
-rw-r--r--pkgs/development/perl-modules/generic/default.nix72
1 files changed, 43 insertions, 29 deletions
diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix
index 9beacd65a64..6de9685715d 100644
--- a/pkgs/development/perl-modules/generic/default.nix
+++ b/pkgs/development/perl-modules/generic/default.nix
@@ -1,46 +1,60 @@
 { lib, stdenv, perl, buildPerl, toPerlModule }:
 
-{ buildInputs ? [], nativeBuildInputs ? [], ... } @ attrs:
+{ buildInputs ? []
+, nativeBuildInputs ? []
+, outputs ? [ "out" "devdoc" ]
+, src ? null
 
-assert attrs?pname -> attrs?version;
-assert attrs?pname -> !(attrs?name);
+, doCheck ? true
+, checkTarget ? "test"
 
-lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
+# Prevent CPAN downloads.
+, PERL_AUTOINSTALL ? "--skipdeps"
 
-toPerlModule(stdenv.mkDerivation (
-  (
-  lib.recursiveUpdate
-  {
-    outputs = [ "out" "devdoc" ];
+# From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows
+# authors to skip certain tests (or include certain tests) when
+# the results are not being monitored by a human being."
+, AUTOMATED_TESTING ? true
 
-    doCheck = true;
+# current directory (".") is removed from @INC in Perl 5.26 but many old libs rely on it
+# 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"
 
-    checkTarget = "test";
+, ...
+}@attrs:
 
-    # Prevent CPAN downloads.
-    PERL_AUTOINSTALL = "--skipdeps";
+assert attrs?pname -> attrs?version;
+assert attrs?pname -> !(attrs?name);
+
+lib.warnIf (attrs ? name) "builtPerlPackage: `name' (\"${attrs.name}\") is deprecated, use `pname' and `version' instead"
 
-    # From http://wiki.cpantesters.org/wiki/CPANAuthorNotes: "allows
-    # authors to skip certain tests (or include certain tests) when
-    # the results are not being monitored by a human being."
-    AUTOMATED_TESTING = true;
+(let
+  defaultMeta = {
+    homepage = "https://metacpan.org/release/${lib.getName attrs}"; # TODO: phase-out `attrs.name`
+    platforms = perl.meta.platforms;
+  };
 
-    # current directory (".") is removed from @INC in Perl 5.26 but many old libs rely on it
-    # 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";
+  cleanedAttrs = builtins.removeAttrs attrs [
+    "meta" "builder" "version" "pname" "fullperl"
+    "buildInputs" "nativeBuildInputs" "buildInputs"
+    "PERL_AUTOINSTALL" "AUTOMATED_TESTING" "PERL_USE_UNSAFE_INC"
+    ];
 
-    meta.homepage = "https://metacpan.org/release/${lib.getName attrs}"; # TODO: phase-out `attrs.name`
-    meta.platforms = perl.meta.platforms;
-  }
-  attrs
-  )
-  //
-  {
+  package = stdenv.mkDerivation ({
     pname = "perl${perl.version}-${lib.getName attrs}"; # TODO: phase-out `attrs.name`
     version = lib.getVersion attrs;                     # TODO: phase-out `attrs.name`
+
     builder = ./builder.sh;
+
     buildInputs = buildInputs ++ [ perl ];
     nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
+
     fullperl = buildPerl;
-  }
-))
+
+    inherit outputs src doCheck checkTarget;
+    inherit PERL_AUTOINSTALL AUTOMATED_TESTING PERL_USE_UNSAFE_INC;
+
+    meta = defaultMeta // (attrs.meta or { });
+  } // cleanedAttrs);
+
+in toPerlModule package)