perl: 5.36.0 -> 5.38.0

- perl538: init at 5.38.0
- perl536: 5.36.0 -> 5.36.1
- perl-cross: c8760457 -> 1.5
- perl: perl536 -> perl538
- perlPackages: perl536Packages -> perl538Packages
- perldevel: 5.37.0 -> 5.38.0
- perl534: remove

- patch: Add conditional no-sys-dirs patch for 5.38.0
- patch: Only apply HTTP-Tiny patch for 5.36.1, as it is fixed in 5.38.0
- patch: Set `USE_ZLIB_NG=False` for Compress::Raw::Zlib

Changed files
+281 -24
pkgs
development
top-level
+10 -10
pkgs/development/interpreters/perl/default.nix
···
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;
};
···
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;
};
}
+11 -10
pkgs/development/interpreters/perl/intepreter.nix
···
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;
···
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.
···
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" ""
···
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 ];
+256
pkgs/development/interpreters/perl/no-sys-dirs-5.38.0.patch
···
+
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
+4 -4
pkgs/top-level/all-packages.nix
···
### 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;