diff --git a/pkgs/development/perl-modules/generic/default.nix b/pkgs/development/perl-modules/generic/default.nix index 561bbcdb73ec..1d7e6d17ffb7 100644 --- a/pkgs/development/perl-modules/generic/default.nix +++ b/pkgs/development/perl-modules/generic/default.nix @@ -1,10 +1,10 @@ -perl: +{ lib, stdenv, perl }: { nativeBuildInputs ? [], name, ... } @ attrs: -perl.stdenv.mkDerivation ( +stdenv.mkDerivation ( ( - perl.stdenv.lib.recursiveUpdate + lib.recursiveUpdate { outputs = [ "out" "devdoc" ]; @@ -23,13 +23,17 @@ perl.stdenv.mkDerivation ( # the results are not being monitored by a human being." AUTOMATED_TESTING = 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 = lib.optionalString (lib.versionAtLeast (lib.getVersion perl) "5.26") "1"; + meta.homepage = "https://metacpan.org/release/${(builtins.parseDrvName name).name}"; } attrs ) // { - name = "perl-" + name; + name = "perl${lib.getVersion perl}-${name}"; builder = ./builder.sh; nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ]; inherit perl; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8dfcca681fb6..ac0b13f51a00 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7443,7 +7443,6 @@ with pkgs; ocropus = callPackage ../applications/misc/ocropus { }; - perl = perl524; inherit (callPackages ../development/interpreters/perl {}) perl522 perl524 perl526 perl528; pachyderm = callPackage ../applications/networking/cluster/pachyderm { }; @@ -12579,11 +12578,25 @@ with pkgs; ### DEVELOPMENT / PERL MODULES - buildPerlPackage = callPackage ../development/perl-modules/generic perl; - - perlPackages = recurseIntoAttrs (callPackage ./perl-packages.nix { + perl522Packages = recurseIntoAttrs (callPackage ./perl-packages.nix { + perl = perl522; overrides = (config.perlPackageOverrides or (p: {})) pkgs; }); + perl524Packages = recurseIntoAttrs (callPackage ./perl-packages.nix { + perl = perl524; + overrides = (config.perlPackageOverrides or (p: {})) pkgs; + }); + perl526Packages = recurseIntoAttrs (callPackage ./perl-packages.nix { + perl = perl526; + overrides = (config.perlPackageOverrides or (p: {})) pkgs; + }); + perl528Packages = recurseIntoAttrs (callPackage ./perl-packages.nix { + perl = perl528; + overrides = (config.perlPackageOverrides or (p: {})) pkgs; + }); + + perlPackages = perl528Packages; + inherit (perlPackages) perl buildPerlPackage; perlXMLParser = perlPackages.XMLParser; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index cb292af94641..0cd005041605 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -7,13 +7,16 @@ {config, pkgs, fetchurl, fetchFromGitHub, stdenv, gnused, perl, overrides}: -let self = _self // overrides; _self = with self; { +let + inherit (stdenv.lib) maintainers; + self = _self // overrides; + _self = with self; { inherit perl; - inherit (pkgs) buildPerlPackage; + callPackage = pkgs.newScope self; - inherit (stdenv.lib) maintainers; + buildPerlPackage = callPackage ../development/perl-modules/generic { }; # Helper functions for packages that use Module::Build to build. buildPerlModule = { buildInputs ? [], ... } @ args: @@ -715,10 +718,7 @@ let self = _self // overrides; _self = with self; { }; }; - BerkeleyDB = import ../development/perl-modules/BerkeleyDB { - inherit buildPerlPackage fetchurl; - inherit (pkgs) db; - }; + BerkeleyDB = callPackage ../development/perl-modules/BerkeleyDB { }; BHooksEndOfScope = buildPerlPackage rec { name = "B-Hooks-EndOfScope-0.24"; @@ -2388,10 +2388,7 @@ let self = _self // overrides; _self = with self; { }; }; - CompressRawZlib = import ../development/perl-modules/Compress-Raw-Zlib { - inherit fetchurl buildPerlPackage stdenv; - inherit (pkgs) zlib; - }; + CompressRawZlib = callPackage ../development/perl-modules/Compress-Raw-Zlib { }; CompressUnLZMA = buildPerlPackage rec { name = "Compress-unLZMA-0.05"; @@ -4028,30 +4025,15 @@ let self = _self // overrides; _self = with self; { buildInputs = [ TestException ]; }; - DBDSQLite = import ../development/perl-modules/DBD-SQLite { - inherit stdenv fetchurl buildPerlPackage DBI; - inherit (pkgs) sqlite; - }; + DBDSQLite = callPackage ../development/perl-modules/DBD-SQLite { }; - DBDmysql = import ../development/perl-modules/DBD-mysql { - inherit fetchurl buildPerlPackage DBI; - inherit (pkgs) mysql; - }; + DBDmysql = callPackage ../development/perl-modules/DBD-mysql { }; - DBDPg = import ../development/perl-modules/DBD-Pg { - inherit stdenv fetchurl buildPerlPackage DBI; - inherit (pkgs) postgresql; - }; + DBDPg = callPackage ../development/perl-modules/DBD-Pg { }; - DBDsybase = import ../development/perl-modules/DBD-sybase { - inherit fetchurl buildPerlPackage DBI; - inherit (pkgs) freetds; - }; + DBDsybase = callPackage ../development/perl-modules/DBD-sybase { }; - DBFile = import ../development/perl-modules/DB_File { - inherit fetchurl buildPerlPackage; - inherit (pkgs) db; - }; + DBFile = callPackage ../development/perl-modules/DB_File { }; DBI = buildPerlPackage rec { name = "DBI-${version}"; @@ -9017,9 +8999,7 @@ let self = _self // overrides; _self = with self; { propagatedBuildInputs = [ LWP NetDNS ]; }; - maatkit = import ../development/perl-modules/maatkit { - inherit fetchurl buildPerlPackage stdenv DBDmysql; - }; + maatkit = callPackage ../development/perl-modules/maatkit { }; MacPasteboard = buildPerlPackage rec { name = "Mac-Pasteboard-0.009"; @@ -9512,7 +9492,7 @@ let self = _self // overrides; _self = with self; { }; }; - MNI-Perllib = pkgs.callPackage ../development/perl-modules/MNI {}; + MNI-Perllib = callPackage ../development/perl-modules/MNI {}; Mo = buildPerlPackage rec { name = "Mo-0.40";