summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Weinelt <mweinelt@users.noreply.github.com>2023-07-27 02:05:42 +0200
committerGitHub <noreply@github.com>2023-07-27 02:05:42 +0200
commitfd5d0300b4fbbd208a17567379d39e119c5d0780 (patch)
treec99ba34ff6d98303f2c14fcb0df75de0499dc877
parentdc058faf6b88fba30db7e5caaf064061016c78a1 (diff)
parentfd94d3ff348685ffc84da8f7a8ab378f243c226a (diff)
downloadnixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar.gz
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar.bz2
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar.lz
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar.xz
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.tar.zst
nixpkgs-fd5d0300b4fbbd208a17567379d39e119c5d0780.zip
Merge pull request #241848 from stigtsp/perl/5.38.0
[staging] perl: 5.36.0 -> 5.38.0
-rw-r--r--pkgs/development/interpreters/perl/MakeMaker-cross.patch17
-rw-r--r--pkgs/development/interpreters/perl/cross.patch250
-rw-r--r--pkgs/development/interpreters/perl/default.nix20
-rw-r--r--pkgs/development/interpreters/perl/intepreter.nix23
-rw-r--r--pkgs/development/interpreters/perl/no-sys-dirs-5.38.0.patch256
-rw-r--r--pkgs/servers/http/unit/default.nix8
-rw-r--r--pkgs/servers/slimserver/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix8
-rw-r--r--pkgs/top-level/perl-packages.nix60
9 files changed, 576 insertions, 72 deletions
diff --git a/pkgs/development/interpreters/perl/MakeMaker-cross.patch b/pkgs/development/interpreters/perl/MakeMaker-cross.patch
deleted file mode 100644
index 40626c51f9b..00000000000
--- a/pkgs/development/interpreters/perl/MakeMaker-cross.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -Naur a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
---- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm	2017-06-30 17:03:20.000000000 -0400
-+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm	2018-02-28 10:06:37.031237946 -0500
-@@ -1267,7 +1267,12 @@
-     my $value = shift;
-     return $value if $UNDER_CORE;
-     my $tvalue = '';
--    require B;
-+    eval {
-+        require B;
-+    };
-+    if ($@) {
-+        return $tvalue;
-+    }
-     my $sv = B::svref_2object(\$value);
-     my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
-     while ( $magic ) {
diff --git a/pkgs/development/interpreters/perl/cross.patch b/pkgs/development/interpreters/perl/cross.patch
new file mode 100644
index 00000000000..e0f05ede90d
--- /dev/null
+++ b/pkgs/development/interpreters/perl/cross.patch
@@ -0,0 +1,250 @@
+From: =?UTF-8?q?Christian=20K=C3=B6gler?= <ck3d@gmx.de>
+Date: Mon, 10 Apr 2023 22:12:24 +0200
+Subject: [PATCH] miniperl compatible modules
+
+CPAN::Meta
+ExtUtils::MakeMaker
+JSON::PP
+Data::Dumper
+
+Updated for perl v5.38.0 by stig@stig.io
+
+---
+
+diff --git a/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm b/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm
+index b0e83b0d2d..dab4907704 100644
+--- a/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm
++++ b/cpan/CPAN-Meta-Requirements/lib/CPAN/Meta/Requirements.pm
+@@ -86,21 +86,7 @@ sub new {
+ # from version::vpp
+ sub _find_magic_vstring {
+   my $value = shift;
+-  my $tvalue = '';
+-  require B;
+-  my $sv = B::svref_2object(\$value);
+-  my $magic = ref($sv) eq 'B::PVMG' ? $sv->MAGIC : undef;
+-  while ( $magic ) {
+-    if ( $magic->TYPE eq 'V' ) {
+-      $tvalue = $magic->PTR;
+-      $tvalue =~ s/^v?(.+)$/v$1/;
+-      last;
+-    }
+-    else {
+-      $magic = $magic->MOREMAGIC;
+-    }
+-  }
+-  return $tvalue;
++  return version::->parse($value)->stringify;
+ }
+ 
+ # safe if given an unblessed reference
+diff --git a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
+index 746abd63bc..c55d7cd2d0 100644
+--- a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
++++ b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
+@@ -1,6 +1,7 @@
+ use 5.008001; # sane UTF-8 support
+ use strict;
+ use warnings;
++no warnings 'experimental::builtin';
+ package CPAN::Meta::YAML; # git description: v1.68-2-gcc5324e
+ # XXX-INGY is 5.8.1 too old/broken for utf8?
+ # XXX-XDG Lancaster consensus was that it was sufficient until
+@@ -650,27 +651,29 @@ sub _dump_string {
+     join '', map { "$_\n" } @lines;
+ }
+ 
+-sub _has_internal_string_value {
++# taken from cpan/JSON-PP/lib/JSON/PP.pm
++sub _looks_like_number {
+     my $value = shift;
+-    my $b_obj = B::svref_2object(\$value);  # for round trip problem
+-    return $b_obj->FLAGS & B::SVf_POK();
++    no warnings 'numeric';
++    # if the utf8 flag is on, it almost certainly started as a string
++    return if utf8::is_utf8($value);
++    # detect numbers
++    # string & "" -> ""
++    # number & "" -> 0 (with warning)
++    # nan and inf can detect as numbers, so check with * 0
++    return unless length((my $dummy = "") & $value);
++    return unless 0 + $value eq $value;
++    return 1 if $value * 0 == 0;
++    return -1; # inf/nan
+ }
+ 
+ sub _dump_scalar {
+     my $string = $_[1];
+     my $is_key = $_[2];
+-    # Check this before checking length or it winds up looking like a string!
+-    my $has_string_flag = _has_internal_string_value($string);
+     return '~'  unless defined $string;
+     return "''" unless length  $string;
+-    if (Scalar::Util::looks_like_number($string)) {
+-        # keys and values that have been used as strings get quoted
+-        if ( $is_key || $has_string_flag ) {
+-            return qq['$string'];
+-        }
+-        else {
+-            return $string;
+-        }
++    if (_looks_like_number($string)) {
++        return qq['$string'];
+     }
+     if ( $string =~ /[\x00-\x09\x0b-\x0d\x0e-\x1f\x7f-\x9f\'\n]/ ) {
+         $string =~ s/\\/\\\\/g;
+@@ -800,9 +803,6 @@ sub errstr {
+ # Helper functions. Possibly not needed.
+ 
+ 
+-# Use to detect nv or iv
+-use B;
+-
+ # XXX-INGY Is flock CPAN::Meta::YAML's responsibility?
+ # Some platforms can't flock :-(
+ # XXX-XDG I think it is.  When reading and writing files, we ought
+@@ -822,35 +822,8 @@ sub _can_flock {
+     }
+ }
+ 
+-
+-# XXX-INGY Is this core in 5.8.1? Can we remove this?
+-# XXX-XDG Scalar::Util 1.18 didn't land until 5.8.8, so we need this
+-#####################################################################
+-# Use Scalar::Util if possible, otherwise emulate it
+-
+-use Scalar::Util ();
+ BEGIN {
+-    local $@;
+-    if ( eval { Scalar::Util->VERSION(1.18); } ) {
+-        *refaddr = *Scalar::Util::refaddr;
+-    }
+-    else {
+-        eval <<'END_PERL';
+-# Scalar::Util failed to load or too old
+-sub refaddr {
+-    my $pkg = ref($_[0]) or return undef;
+-    if ( !! UNIVERSAL::can($_[0], 'can') ) {
+-        bless $_[0], 'Scalar::Util::Fake';
+-    } else {
+-        $pkg = undef;
+-    }
+-    "$_[0]" =~ /0x(\w+)/;
+-    my $i = do { no warnings 'portable'; hex $1 };
+-    bless $_[0], $pkg if defined $pkg;
+-    $i;
+-}
+-END_PERL
+-    }
++    *refaddr = *builtin::refaddr;
+ }
+ 
+ delete $CPAN::Meta::YAML::{refaddr};
+diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm
+index 3604eae402..991f69d275 100644
+--- a/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm
++++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Merge.pm
+@@ -1,12 +1,13 @@
+ use strict;
+ use warnings;
++no warnings 'experimental::builtin';
+ 
+ package CPAN::Meta::Merge;
+ 
+ our $VERSION = '2.150010';
+ 
+ use Carp qw/croak/;
+-use Scalar::Util qw/blessed/;
++use builtin qw/blessed/;
+ use CPAN::Meta::Converter 2.141170;
+ 
+ sub _is_identical {
+diff --git a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
+index d4e93fd8a5..809da68d02 100644
+--- a/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
++++ b/cpan/CPAN-Meta/lib/CPAN/Meta/Prereqs.pm
+@@ -1,6 +1,7 @@
+ use 5.006;
+ use strict;
+ use warnings;
++no warnings 'experimental::builtin';
+ package CPAN::Meta::Prereqs;
+ 
+ our $VERSION = '2.150010';
+@@ -14,7 +15,6 @@ our $VERSION = '2.150010';
+ #pod =cut
+ 
+ use Carp qw(confess);
+-use Scalar::Util qw(blessed);
+ use CPAN::Meta::Requirements 2.121;
+ 
+ #pod =method new
+@@ -168,7 +168,12 @@ sub types_in {
+ sub with_merged_prereqs {
+   my ($self, $other) = @_;
+ 
+-  my @other = blessed($other) ? $other : @$other;
++  eval 'require Scalar::Util';
++  my @other = unless($@){
++    Scalar::Util::blessed($other) ? $other : @$other;
++  }else{
++    builtin::blessed($other) ? $other : @$other;
++  }
+ 
+   my @prereq_objs = ($self, @other);
+ 
+diff --git a/cpan/JSON-PP/lib/JSON/PP.pm b/cpan/JSON-PP/lib/JSON/PP.pm
+index fc8fcbc8f0..cda7b90c65 100644
+--- a/cpan/JSON-PP/lib/JSON/PP.pm
++++ b/cpan/JSON-PP/lib/JSON/PP.pm
+@@ -4,6 +4,7 @@ package JSON::PP;
+ 
+ use 5.008;
+ use strict;
++no warnings 'experimental::builtin';
+ 
+ use Exporter ();
+ BEGIN { our @ISA = ('Exporter') }
+diff --git a/dist/Data-Dumper/Dumper.pm b/dist/Data-Dumper/Dumper.pm
+index bb6d3caedb..0c2fde4743 100644
+--- a/dist/Data-Dumper/Dumper.pm
++++ b/dist/Data-Dumper/Dumper.pm
+@@ -11,6 +11,7 @@ package Data::Dumper;
+ 
+ use strict;
+ use warnings;
++no warnings 'experimental::builtin';
+ 
+ #$| = 1;
+ 
+@@ -125,8 +126,7 @@ sub new {
+ # Packed numeric addresses take less memory. Plus pack is faster than sprintf
+ 
+ sub format_refaddr {
+-    require Scalar::Util;
+-    pack "J", Scalar::Util::refaddr(shift);
++    pack "J", builtin::refaddr(shift);
+ };
+ 
+ #
+@@ -282,9 +282,8 @@ sub _dump {
+       warn "WARNING(Freezer method call failed): $@" if $@;
+     }
+ 
+-    require Scalar::Util;
+-    my $realpack = Scalar::Util::blessed($val);
+-    my $realtype = $realpack ? Scalar::Util::reftype($val) : ref $val;
++    my $realpack = builtin::blessed($val);
++    my $realtype = $realpack ? builtin::reftype($val) : ref $val;
+     $id = format_refaddr($val);
+ 
+     # Note: By this point $name is always defined and of non-zero length.
+@@ -576,7 +575,7 @@ sub _dump {
+     # here generates a different result. So there are actually "three" different
+     # implementations of Data::Dumper (kind of sort of) but we only test two.
+     elsif (!defined &_vstring
+-       and ref $ref eq 'VSTRING' || eval{Scalar::Util::isvstring($val)}) {
++       and ref $ref eq 'VSTRING') {
+       $out .= sprintf "v%vd", $val;
+     }
+     # \d here would treat "1\x{660}" as a safe decimal number
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 3c57d8a2b69..a2f9862083c 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -58,18 +58,18 @@ let
 
 in rec {
   # Maint version
-  perl534 = callPackage ./intepreter.nix {
-    self = perl534;
-    version = "5.34.1";
-    sha256 = "sha256-NXlRpJGwuhzjYRJjki/ux4zNWB3dwkpEawM+JazyQqE=";
+  perl536 = callPackage ./intepreter.nix {
+    self = perl536;
+    version = "5.36.1";
+    sha256 = "sha256-aCA2Zdjs4CmI/HfckvzLspeoOku0uNB1WEQvl42lTME=";
     inherit passthruFun;
   };
 
   # Maint version
-  perl536 = callPackage ./intepreter.nix {
-    self = perl536;
-    version = "5.36.0";
-    sha256 = "sha256-4mCFr4rDlvYq3YpTPDoOqMhJfYNvBok0esWr17ek4Ao=";
+  perl538 = callPackage ./intepreter.nix {
+    self = perl538;
+    version = "5.38.0";
+    sha256 = "sha256-IT71gInS8sly6jU1F9xg7DZW8FDcwCdmbhGLUIQj5Rc=";
     inherit passthruFun;
   };
 
@@ -77,8 +77,8 @@ in rec {
   perldevel = callPackage ./intepreter.nix {
     self = perldevel;
     perlAttr = "perldevel";
-    version = "5.37.0";
-    sha256 = "sha256-8RQO6gtH+WmghqzRafbqAH1MhKv/vJCcvysi7/+T9XI=";
+    version = "5.38.0";
+    sha256 = "sha256-IT71gInS8sly6jU1F9xg7DZW8FDcwCdmbhGLUIQj5Rc=";
     inherit passthruFun;
   };
 }
diff --git a/pkgs/development/interpreters/perl/intepreter.nix b/pkgs/development/interpreters/perl/intepreter.nix
index 6d543e7d840..1e0c87ddb9d 100644
--- a/pkgs/development/interpreters/perl/intepreter.nix
+++ b/pkgs/development/interpreters/perl/intepreter.nix
@@ -63,16 +63,16 @@ stdenv.mkDerivation (rec {
   disallowedReferences = [ stdenv.cc ];
 
   patches =
-    [
-      # Do not look in /usr etc. for dependencies.
-      ./no-sys-dirs-5.31.patch
+    # Enable TLS/SSL verification in HTTP::Tiny by default
+    lib.optional (lib.versionOlder version "5.38.0") ./http-tiny-verify-ssl-by-default.patch
+
+    # Do not look in /usr etc. for dependencies.
+    ++ lib.optional (lib.versionOlder version "5.38.0") ./no-sys-dirs-5.31.patch
+    ++ lib.optional (lib.versionAtLeast version "5.38.0") ./no-sys-dirs-5.38.0.patch
 
-      # Enable TLS/SSL verification in HTTP::Tiny by default
-      ./http-tiny-verify-ssl-by-default.patch
-    ]
     ++ lib.optional stdenv.isSunOS ./ld-shared.patch
     ++ lib.optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
-    ++ lib.optional crossCompiling ./MakeMaker-cross.patch;
+    ++ lib.optional crossCompiling ./cross.patch;
 
   # This is not done for native builds because pwd may need to come from
   # bootstrap tools when building bootstrap perl.
@@ -123,7 +123,7 @@ stdenv.mkDerivation (rec {
 
   dontAddPrefix = !crossCompiling;
 
-  enableParallelBuilding = !crossCompiling;
+  enableParallelBuilding = false;
 
   # perl includes the build date, the uname of the build system and the
   # username of the build user in some files.
@@ -150,6 +150,7 @@ stdenv.mkDerivation (rec {
     LIB          = ${zlib.out}/lib
     OLD_ZLIB     = False
     GZIP_OS_CODE = AUTO_DETECT
+    USE_ZLIB_NG  = False
     EOF
   '' + lib.optionalString stdenv.isDarwin ''
     substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
@@ -234,14 +235,14 @@ stdenv.mkDerivation (rec {
     priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
   };
 } // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-  crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022
+  crossVersion = "1.5"; # Jul 03, 2023
 
   perl-cross-src = fetchFromGitHub {
-    name = "perl-cross-unstable-${crossVersion}";
+    name = "perl-cross-${crossVersion}";
     owner = "arsv";
     repo = "perl-cross";
     rev = crossVersion;
-    sha256 = "sha256-m9UCoTQgXBxSgk9Q1Zv6wl3Qnd0aZm/jEPXkcMKti8U=";
+    sha256 = "sha256-9nRFJinZUWUSpXXyyIVmhRLQ1B5LB3UmN2iAckmem58=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
diff --git a/pkgs/development/interpreters/perl/no-sys-dirs-5.38.0.patch b/pkgs/development/interpreters/perl/no-sys-dirs-5.38.0.patch
new file mode 100644
index 00000000000..c959730d142
--- /dev/null
+++ b/pkgs/development/interpreters/perl/no-sys-dirs-5.38.0.patch
@@ -0,0 +1,256 @@
+diff --git a/Configure b/Configure
+index e261cb9548..3bbbc4b9df 100755
+--- a/Configure
++++ b/Configure
+@@ -108,15 +108,7 @@ if test -d c:/. || ( uname -a | grep -i 'os\(/\|\)2' 2>&1 ) 2>&1 >/dev/null ; th
+ fi
+ 
+ : Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
++paths=''
+ 
+ for p in $paths
+ do
+@@ -1455,8 +1447,7 @@ groupstype=''
+ i_whoami=''
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -1470,17 +1461,12 @@ DEBUGGING=''
+ archobjs=''
+ libnames=''
+ : change the next line if compiling for Xenix/286 on Xenix/386
+-xlibpth='/usr/lib/386 /lib/386'
++xlibpth=''
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+ 
+ : general looking path for locating libraries
+-glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+-test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
+-test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
++glibpth=""
+ 
+ : Private path used by Configure to find libraries.  Its value
+ : is prepended to libpth. This variable takes care of special
+@@ -1515,8 +1501,6 @@ libswanted="cl pthread socket bind inet ndbm gdbm dbm db malloc dl ld"
+ libswanted="$libswanted sun m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+-glibpth="/usr/shlib $glibpth"
+ : Do not use vfork unless overridden by a hint file.
+ usevfork=false
+ 
+@@ -2581,7 +2565,6 @@ uname
+ zip
+ "
+ pth=`echo $PATH | sed -e "s/$p_/ /g"`
+-pth="$pth $sysroot/lib $sysroot/usr/lib"
+ for file in $loclist; do
+ 	eval xxx=\$$file
+ 	case "$xxx" in
+@@ -5023,7 +5006,7 @@ esac
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+-	plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
++	plibpth="$incpath/usr/lib"
+     fi;;
+ esac
+ case "$libpth" in
+@@ -8860,13 +8843,8 @@ esac
+ echo " "
+ case "$sysman" in
+ '')
+-	syspath='/usr/share/man/man1 /usr/man/man1'
+-	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+-	syspath="$syspath /usr/man/u_man/man1"
+-	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+-	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+-	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+-	sysman=`./loc . /usr/man/man1 $syspath`
++	syspath=''
++	sysman=''
+ 	;;
+ esac
+ if $test -d "$sysman"; then
+@@ -21500,9 +21478,10 @@ $rm_try tryp
+ case "$full_ar" in
+ '') full_ar=$ar ;;
+ esac
++full_ar=ar
+ 
+ : Store the full pathname to the sed program for use in the C program
+-full_sed=$sed
++full_sed=sed
+ 
+ : see what type gids are declared as in the kernel
+ echo " "
+diff --git a/ext/Errno/Errno_pm.PL b/ext/Errno/Errno_pm.PL
+index ae647d5f06..9a05d66592 100644
+--- a/ext/Errno/Errno_pm.PL
++++ b/ext/Errno/Errno_pm.PL
+@@ -135,12 +135,7 @@ sub get_files {
+ 	if ($dep =~ /(\S+errno\.h)/) {
+ 	     push(@file, $1);
+ 	}
+-    } elsif ($^O eq 'linux' &&
+-	      $Config{gccversion} ne '' && 
+-	      $Config{gccversion} !~ /intel/i &&
+-	      # might be using, say, Intel's icc
+-	      $linux_errno_h
+-	     ) {
++    } elsif (0) {
+ 	push(@file, $linux_errno_h);
+     } elsif ($^O eq 'haiku') {
+ 	# hidden in a special place
+diff --git a/hints/freebsd.sh b/hints/freebsd.sh
+index 4d26835e99..c6d365d84d 100644
+--- a/hints/freebsd.sh
++++ b/hints/freebsd.sh
+@@ -127,21 +127,21 @@ case "$osvers" in
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xaout ]; then
+             if [ -e /usr/lib/aout ]; then
+-                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+-                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
++                libpth=""
++                glibpth=""
+             fi
+             lddlflags='-Bshareable'
+         else
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
++            libpth=""
++            glibpth=""
+             ldflags="-Wl,-E "
+             lddlflags="-shared "
+         fi
+         cccdlflags='-DPIC -fPIC'
+         ;;
+ *)
+-       libpth="/usr/lib /usr/local/lib"
+-       glibpth="/usr/lib /usr/local/lib"
++       libpth=""
++       glibpth=""
+        ldflags="-Wl,-E "
+         lddlflags="-shared "
+         cccdlflags='-DPIC -fPIC'
+diff --git a/hints/linux.sh b/hints/linux.sh
+index e1508c7509..5a187c583a 100644
+--- a/hints/linux.sh
++++ b/hints/linux.sh
+@@ -150,28 +150,6 @@ case "$optimize" in
+     ;;
+ esac
+ 
+-# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
+-# (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
+-# where to look.  We don't want gcc's own libraries, however, so we
+-# filter those out.
+-# This could be conditional on Ubuntu, but other distributions may
+-# follow suit, and this scheme seems to work even on rather old gcc's.
+-# This unconditionally uses gcc because even if the user is using another
+-# compiler, we still need to find the math library and friends, and I don't
+-# know how other compilers will cope with that situation.
+-# Morever, if the user has their own gcc earlier in $PATH than the system gcc,
+-# we don't want its libraries. So we try to prefer the system gcc
+-# Still, as an escape hatch, allow Configure command line overrides to
+-# plibpth to bypass this check.
+-if [ -x /usr/bin/gcc ] ; then
+-    gcc=/usr/bin/gcc
+-# clang also provides -print-search-dirs
+-elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
+-    gcc=${cc:-cc}
+-else
+-    gcc=gcc
+-fi
+-
+ case "$plibpth" in
+ '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries |
+ 	cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
+@@ -208,32 +186,6 @@ case "$usequadmath" in
+   ;;
+ esac
+ 
+-case "$libc" in
+-'')
+-# If you have glibc, then report the version for ./myconfig bug reporting.
+-# (Configure doesn't need to know the specific version since it just uses
+-# gcc to load the library for all tests.)
+-# We don't use __GLIBC__ and  __GLIBC_MINOR__ because they
+-# are insufficiently precise to distinguish things like
+-# libc-2.0.6 and libc-2.0.7.
+-    for p in $plibpth
+-    do
+-        for trylib in libc.so.6 libc.so
+-        do
+-            if $test -e $p/$trylib; then
+-                libc=`ls -l $p/$trylib | awk '{print $NF}'`
+-                if $test "X$libc" != X; then
+-                    break
+-                fi
+-            fi
+-        done
+-        if $test "X$libc" != X; then
+-            break
+-        fi
+-    done
+-    ;;
+-esac
+-
+ if ${sh:-/bin/sh} -c exit; then
+   echo ''
+   echo 'You appear to have a working bash.  Good.'
+@@ -311,33 +263,6 @@ sparc*)
+ 	;;
+ esac
+ 
+-# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
+-# true libraries. The scripts cause binding against static
+-# version of -lgdbm which is a bad idea. So if we have 'nm'
+-# make sure it can read the file
+-# NI-S 2003/08/07
+-case "$nm" in
+-    '') ;;
+-    *)
+-    for p in $plibpth
+-    do
+-        if $test -r $p/libndbm.so; then
+-            if $nm $p/libndbm.so >/dev/null 2>&1 ; then
+-                echo 'Your shared -lndbm seems to be a real library.'
+-                _libndbm_real=1
+-                break
+-            fi
+-        fi
+-    done
+-    if $test "X$_libndbm_real" = X; then
+-        echo 'Your shared -lndbm is not a real library.'
+-        set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
+-        shift
+-        libswanted="$*"
+-    fi
+-    ;;
+-esac
+-
+ # Linux on Synology.
+ if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
+     # Tested on Synology DS213 and DS413
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index e1f41f2f6b6..3eecd652ada 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -3,8 +3,8 @@
 , withPython3 ? true, python3, ncurses
 , withPHP81 ? true, php81
 , withPHP82 ? false, php82
-, withPerl534 ? false, perl534
-, withPerl536 ? true, perl536
+, withPerl536 ? false, perl536
+, withPerl538 ? true, perl538
 , withPerldevel ? false, perldevel
 , withRuby_3_0 ? false, ruby_3_0
 , withRuby_3_1 ? true, ruby_3_1
@@ -46,8 +46,8 @@ in stdenv.mkDerivation rec {
     ++ optionals withPython3 [ python3 ncurses ]
     ++ optional withPHP81 php81-unit
     ++ optional withPHP82 php82-unit
-    ++ optional withPerl534 perl534
     ++ optional withPerl536 perl536
+    ++ optional withPerl538 perl538
     ++ optional withPerldevel perldevel
     ++ optional withRuby_3_0 ruby_3_0
     ++ optional withRuby_3_1 ruby_3_1
@@ -70,8 +70,8 @@ in stdenv.mkDerivation rec {
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
     ${optionalString withPHP81      "./configure php    --module=php81    --config=${php81-unit.unwrapped.dev}/bin/php-config --lib-path=${php81-unit}/lib"}
     ${optionalString withPHP82      "./configure php    --module=php81    --config=${php82-unit.unwrapped.dev}/bin/php-config --lib-path=${php82-unit}/lib"}
-    ${optionalString withPerl534    "./configure perl   --module=perl534  --perl=${perl534}/bin/perl"}
     ${optionalString withPerl536    "./configure perl   --module=perl536  --perl=${perl536}/bin/perl"}
+    ${optionalString withPerl538    "./configure perl   --module=perl538  --perl=${perl538}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}
     ${optionalString withRuby_3_0   "./configure ruby   --module=ruby30   --ruby=${ruby_3_0}/bin/ruby"}
     ${optionalString withRuby_3_1   "./configure ruby   --module=ruby31   --ruby=${ruby_3_1}/bin/ruby"}
diff --git a/pkgs/servers/slimserver/default.nix b/pkgs/servers/slimserver/default.nix
index 4a98e2a436e..f561eec0bac 100644
--- a/pkgs/servers/slimserver/default.nix
+++ b/pkgs/servers/slimserver/default.nix
@@ -5,14 +5,14 @@
 , lib
 , makeWrapper
 , monkeysAudio
-, perl534Packages
+, perlPackages
 , sox
 , stdenv
 , wavpack
 , zlib
 }:
 
-perl534Packages.buildPerlPackage rec {
+perlPackages.buildPerlPackage rec {
   pname = "slimserver";
   version = "8.3.1";
 
@@ -25,7 +25,7 @@ perl534Packages.buildPerlPackage rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = [ perl534Packages.CryptOpenSSLRSA perl534Packages.IOSocketSSL ];
+  buildInputs = [ perlPackages.CryptOpenSSLRSA perlPackages.IOSocketSSL ];
 
   prePatch = ''
     rm -rf Bin
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cc5d5769f35..a9b4dd6522b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -25795,14 +25795,14 @@ with pkgs;
   ### DEVELOPMENT / PERL MODULES
 
   perlInterpreters = import ../development/interpreters/perl { inherit callPackage; };
-  inherit (perlInterpreters) perl534 perl536 perldevel;
+  inherit (perlInterpreters) perl536 perl538 perldevel;
 
-  perl534Packages = recurseIntoAttrs perl534.pkgs;
   perl536Packages = recurseIntoAttrs perl536.pkgs;
+  perl538Packages = recurseIntoAttrs perl538.pkgs;
   perldevelPackages = perldevel.pkgs;
 
-  perl = perl536;
-  perlPackages = perl536Packages;
+  perl = perl538;
+  perlPackages = perl538Packages;
 
   ack = perlPackages.ack;
 
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 8193fd271b1..54d25119ac8 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -1705,10 +1705,10 @@ with self; {
 
   BKeywords = buildPerlPackage rec {
     pname = "B-Keywords";
-    version = "1.24";
+    version = "1.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.24.tar.gz";
-      hash = "sha256-pc9rsoXQbRfO4id4O3I7snQhP9QVOl3uMR0kDhFpYG4=";
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.26.tar.gz";
+      hash = "sha256-LaoVXS8mf7De3Yf4pMT7VmOHn8EGUXse4lg1Pvh67TQ=";
     };
     meta = {
       description = "Lists of reserved barewords and symbol names";
@@ -15217,10 +15217,10 @@ with self; {
 
   MIMECharset = buildPerlPackage {
     pname = "MIME-Charset";
-    version = "1.012.2";
+    version = "1.013.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.012.2.tar.gz";
-      hash = "sha256-h4x3nAJWxZFma9BsDN5MDXgg7uuY/RGDCCrumh57HRM=";
+      url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz";
+      hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA=";
     };
     meta = {
       description = "Charset Information for MIME";
@@ -15464,6 +15464,20 @@ with self; {
       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4231.tar.gz";
       hash = "sha256-fg9MaSwXQMGshOoU1+o9i8eYsvsmwJh3Ip4E9DCytxc=";
     };
+    postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # for unknown reason, the first run of Build fails
+      ./Build || true
+    '';
+    postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+      # remove version check since miniperl uses a stub of File::Temp, which do not provide a version:
+      # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm
+      sed -i '/File::Temp/d' \
+        Build.PL
+
+      # fix discover perl function, it can not handle a wrapped perl
+      sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \
+        lib/Module/Build/Base.pm
+    '';
     meta = {
       description = "Build and install Perl modules";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -23588,10 +23602,10 @@ with self; {
 
   Test2Harness = buildPerlPackage {
     pname = "Test2-Harness";
-    version = "1.000042";
+    version = "1.000152";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000042.tar.gz";
-      hash = "sha256-qvIxporxpv/WoRGIh1/PVy43PkPIKFlFInudaHtD2y0=";
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000152.tar.gz";
+      hash = "sha256-iIqWAdvTPuuaSTcdZmK7JE8Ad/QJlM4gvJClvlSRqls=";
     };
 
     checkPhase = ''
@@ -23599,7 +23613,7 @@ with self; {
       ./scripts/yath test -j $NIX_BUILD_CORES
     '';
 
-    propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite gotofile ];
+    propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
     meta = {
       description = "A new and improved test harness with better Test2 integration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -24997,10 +25011,10 @@ with self; {
 
   TestSimple13 = buildPerlPackage {
     pname = "Test-Simple";
-    version = "1.302183";
+    version = "1.302195";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302183.tar.gz";
-      hash = "sha256-mgO9pexCCuqWkrZQQ39NW1dPpQX91/9gzbXz7ANBBv8=";
+      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz";
+      hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw=";
     };
     meta = {
       description = "Basic utilities for writing tests";
@@ -25224,10 +25238,10 @@ with self; {
 
   TestWithoutModule = buildPerlPackage {
     pname = "Test-Without-Module";
-    version = "0.20";
+    version = "0.21";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.20.tar.gz";
-      hash = "sha256-jprrfDKmxtC4qTEU2yqMBychJzqdmi3U+cqGz9KKpSQ=";
+      url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz";
+      hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY=";
     };
     meta = {
       description = "Test fallback behaviour in absence of modules";
@@ -25984,10 +25998,10 @@ with self; {
 
   TestTrap = buildPerlModule {
     pname = "Test-Trap";
-    version = "0.3.4";
+    version = "0.3.5";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.4.tar.gz";
-      hash = "sha256-CwRlbzO2yW2o7sTP/lKGFQtOS14pkdOINoaxCRAQWuI=";
+      url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz";
+      hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o=";
     };
     propagatedBuildInputs = [ DataDump ];
     meta = {
@@ -27987,12 +28001,12 @@ with self; {
 
   XSParseKeyword = buildPerlModule {
     pname = "XS-Parse-Keyword";
-    version = "0.25";
+    version = "0.34";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.25.tar.gz";
-      hash = "sha256-9e2zDPfH8iDQxsMdwetVQDKECpnHwpgxT1zD/vZscsc=";
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.34.tar.gz";
+      hash = "sha256-EDPdtAmSTZ1Cs4MEodeXRaBDSrxrBJHrErbIu5bx1sE=";
     };
-    buildInputs = [ ExtUtilsCChecker ];
+    buildInputs = [ ExtUtilsCChecker Test2Suite ];
     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
     meta = {
       description = "XS functions to assist in parsing keyword syntax";