diff options
Diffstat (limited to 'pkgs/development/interpreters/perl/default.nix')
-rw-r--r-- | pkgs/development/interpreters/perl/default.nix | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix index 2ecc5cbb2ef..89979e18bdc 100644 --- a/pkgs/development/interpreters/perl/default.nix +++ b/pkgs/development/interpreters/perl/default.nix @@ -1,5 +1,5 @@ { config, lib, stdenv, fetchurl, pkgs, buildPackages, callPackage -, enableThreading ? stdenv ? glibc, makeWrapper +, enableThreading ? stdenv ? glibc, coreutils, makeWrapper }: with lib; @@ -35,7 +35,7 @@ let # TODO: Add a "dev" output containing the header files. outputs = [ "out" "man" "devdoc" ] ++ - stdenv.lib.optional crossCompiling "dev"; + optional crossCompiling "dev"; setOutputFlags = false; disallowedReferences = [ stdenv.cc ]; @@ -57,12 +57,20 @@ let ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ] ++ optional crossCompiling ./MakeMaker-cross.patch; - postPatch = '' - pwd="$(type -P pwd)" + # This is not done for native builds because pwd may need to come from + # bootstrap tools when building bootstrap perl. + postPatch = (if crossCompiling then '' substituteInPlace dist/PathTools/Cwd.pm \ - --replace "/bin/pwd" "$pwd" - '' + stdenv.lib.optionalString crossCompiling '' + --replace "/bin/pwd" '${coreutils}/bin/pwd' substituteInPlace cnf/configure_tool.sh --replace "cc -E -P" "cc -E" + '' else '' + substituteInPlace dist/PathTools/Cwd.pm \ + --replace "/bin/pwd" "$(type -P pwd)" + '') + + # Perl's build system uses the src variable, and its value may end up in + # the output in some cases (when cross-compiling) + '' + unset src ''; # Build a thread-safe Perl with a dynamic libperls.o. We need the @@ -85,7 +93,7 @@ let ++ optional stdenv.isSunOS "-Dcc=gcc" ++ optional enableThreading "-Dusethreads"; - configureScript = stdenv.lib.optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; + configureScript = optionalString (!crossCompiling) "${stdenv.shell} ./Configure"; dontAddPrefix = !crossCompiling; @@ -140,7 +148,7 @@ let }" /no-such-path \ --replace "${stdenv.cc}" /no-such-path \ --replace "$man" /no-such-path - '' + stdenv.lib.optionalString crossCompiling + '' + optionalString crossCompiling '' mkdir -p $dev/lib/perl5/cross_perl/${version} for dir in cnf/{stub,cpan}; do @@ -172,12 +180,12 @@ let platforms = platforms.all; priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl` }; - } // stdenv.lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { - crossVersion = "980998f7d11baf97284426ca91f84681d49a08f5"; # Jul 20, 2019 + } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec { + crossVersion = "ba90816ef2c24dc06fd6cd2c854abcfa1aae00a3"; # Nov 22, 2019 perl-cross-src = fetchurl { url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz"; - sha256 = "1hg3k2rhjs5gclrm05z87nvlh4j9pg7mkm9998h9gy6mzk8224q5"; + sha256 = "19jq5fz6l64s0v6j64n5mkk5v2srpyfn9sc09hwbpkp9n74q82j4"; }; depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ]; @@ -205,15 +213,15 @@ in { perl530 = common { perl = pkgs.perl530; buildPerl = buildPackages.perl530; - version = "5.30.0"; - sha256 = "1wkmz6xn3fswpqhz29akiklcxclnlykhp96a8bqcz36rak3i64l5"; + version = "5.30.1"; + sha256 = "0r7r8a7pkgxp3w5lza559ahxczw6hzpwvhkpc4c99vpi3xbjagdz"; }; # the latest Devel version perldevel = common { perl = pkgs.perldevel; buildPerl = buildPackages.perldevel; - version = "5.31.2"; - sha256 = "00bdh9lmjb0m7dhk8mj7kab7cg2zn9zgw82y4hgkwydzg6d1jis0"; + version = "5.31.6"; + sha256 = "08n3c8xm1brxpckqy8i1xgjrpl4afrhcva9bhxswr938n675x71k"; }; } |