SHA256
3
0
forked from pool/perl

Accepting request 637215 from home:dstoecker

Update to 5.28, please check - I tried to follow previous updates, but maybe I overlooked something.

3rd try to get the patch right.

OBS-URL: https://build.opensuse.org/request/show/637215
OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=168
This commit is contained in:
Michael Schröder 2018-09-26 09:53:14 +00:00 committed by Git OBS Bridge
parent f4695ea2e6
commit 879c8fc92b
8 changed files with 382 additions and 403 deletions

View File

@ -2,7 +2,7 @@
+++ ./cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm 2017-08-30 12:16:04.561183753 +0000
@@ -6,7 +6,8 @@ use warnings;
our $VERSION = '1.999806';
our $VERSION = '1.999811';
-package Math::BigInt;
+package Math::BigInt # line break to prevent wrong rpm provides

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0f8c0fb1b0db4681adb75c3ba0dd77a0472b1b359b9e80efd79fc27b4352132c
size 11931624

View File

@ -1,6 +1,7 @@
--- ./Configure.orig 2017-05-30 09:57:56.000000000 +0000
+++ ./Configure 2017-08-30 12:05:40.255184858 +0000
@@ -117,7 +117,7 @@ paths="$paths /usr/5bin /etc /usr/gnu/bi
diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure
--- perl-5.28.0/Configure 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/Configure 2018-09-22 22:59:45.953977649 +0200
@@ -114,7 +114,7 @@
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"
@ -9,7 +10,7 @@
paths="$paths /sbin /usr/sbin /usr/libexec"
paths="$paths /system/gnu_library/bin"
@@ -1464,7 +1464,7 @@ loclibpth="/usr/local/lib /opt/local/lib
@@ -1448,7 +1448,7 @@
loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
: general looking path for locating libraries
@ -18,7 +19,7 @@
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"
@@ -2559,7 +2559,7 @@ uname
@@ -2545,7 +2545,7 @@
zip
"
pth=`echo $PATH | sed -e "s/$p_/ /g"`
@ -27,25 +28,7 @@
for file in $loclist; do
eval xxx=\$$file
case "$xxx" in
@@ -11963,7 +11963,7 @@ void xxx(int n, ...)
va_start(args, n);
exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
-int main() { xxx(1, "foo"); }
+int main() { xxx(1, "foo"); return 0; }
#else /* I_VARARGS */
@@ -11975,7 +11975,7 @@ va_dcl
va_start(args);
exit((unsigned long)vsprintf(buf,"%s",args) > 10L);
}
-int main() { xxx("foo"); }
+int main() { xxx("foo"); return 0; }
#endif
@@ -20516,14 +20516,20 @@ int main(int argc, char *argv[])
@@ -19917,14 +19917,20 @@
}
EOCP
set try
@ -66,7 +49,7 @@
i_db=$undef
case " $libs " in
*"-ldb "*)
@@ -20564,7 +20570,7 @@ int main()
@@ -19965,7 +19971,7 @@
}
#endif
EOCP
@ -75,7 +58,7 @@
if $contains warning try.out >>/dev/null 2>&1 ; then
db_hashtype='int'
else
@@ -20607,7 +20613,7 @@ int main()
@@ -20008,7 +20014,7 @@
}
#endif
EOCP
@ -84,7 +67,7 @@
if $contains warning try.out >>/dev/null 2>&1 ; then
db_prefixtype='int'
else
@@ -25304,7 +25310,7 @@ passcat='$passcat'
@@ -24656,7 +24662,7 @@
patchlevel='$patchlevel'
path_sep='$path_sep'
perl5='$perl5'
@ -93,88 +76,251 @@
perl_patchlevel='$perl_patchlevel'
perl_static_inline='$perl_static_inline'
perladmin='$perladmin'
--- ./SuSE/SuSEconfig.perl.orig 2017-08-30 12:05:40.265184858 +0000
+++ ./SuSE/SuSEconfig.perl 2017-08-30 12:05:40.265184858 +0000
@@ -0,0 +1,76 @@
+#! /bin/bash
+#
+# Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
+#
+# Author: Burchard Steinbild <bs@suse.de>, 1996
+# Martin Scherbaum <maddin@suse.de>, 5/1997
+# Ruediger Oertel <ro@suse.de>, 7/1998
+
+#
+# Variables in /etc/sysconfig/suseconfig used by this script are:
+# CREATE_PERLLOCAL_POD
+#
+# This script calls the scripts:
+# /usr/sbin/perllocal.suse which comes from the package perl
+#
+
+#
+# check if we are started as root
+# only one of UID and USER must be set correctly
+#
+if test "$UID" != 0 -a "$USER" != root; then
+ echo "You must be root to start $0."
+ exit 1
diff -Nur perl-5.28.0/cpan/Compress-Raw-Zlib/config.in perl-5.28.0_fix/cpan/Compress-Raw-Zlib/config.in
--- perl-5.28.0/cpan/Compress-Raw-Zlib/config.in 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/cpan/Compress-Raw-Zlib/config.in 2018-09-22 23:00:57.127682323 +0200
@@ -16,9 +16,9 @@
# Setting the Gzip OS Code
#
-BUILD_ZLIB = True
-INCLUDE = ./zlib-src
-LIB = ./zlib-src
+BUILD_ZLIB = False
+INCLUDE = /usr/include
+LIB = /usr/lib
OLD_ZLIB = False
GZIP_OS_CODE = AUTO_DETECT
diff -Nur perl-5.28.0/cpan/Encode/bin/enc2xs perl-5.28.0_fix/cpan/Encode/bin/enc2xs
--- perl-5.28.0/cpan/Encode/bin/enc2xs 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/cpan/Encode/bin/enc2xs 2018-09-22 22:59:45.953977649 +0200
@@ -1091,7 +1091,7 @@
$LocalMod{$enc} ||= $mod;
}
};
- File::Find::find({wanted => $wanted}, @INC);
+ File::Find::find({wanted => $wanted}, grep {$_ ne '.'} @INC);
$_ModLines = "";
for my $enc ( sort keys %LocalMod ) {
$_ModLines .=
diff -Nur perl-5.28.0/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm perl-5.28.0_fix/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm
--- perl-5.28.0/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2018-09-22 22:59:45.953977649 +0200
@@ -207,8 +207,11 @@
{
if (! -e $key)
{
- push(@missing, $key);
- delete($self->{data}{$key}) if ($remove);
+ if (($key !~ m!/man/!) || ! -e "$key.gz")
+ {
+ push(@missing, $key);
+ delete($self->{data}{$key}) if ($remove);
+ }
}
}
return(@missing);
diff -Nur perl-5.28.0/cpan/File-Temp/lib/File/Temp.pm perl-5.28.0_fix/cpan/File-Temp/lib/File/Temp.pm
--- perl-5.28.0/cpan/File-Temp/lib/File/Temp.pm 2018-03-20 21:06:35.000000000 +0100
+++ perl-5.28.0_fix/cpan/File-Temp/lib/File/Temp.pm 2018-09-22 22:59:45.953977649 +0200
@@ -16,7 +16,7 @@
use IO::Seekable; # For SEEK_*
use Errno;
use Scalar::Util 'refaddr';
-require VMS::Stdio if $^O eq 'VMS';
+#require VMS::Stdio if $^O eq 'VMS';
# pre-emptively load Carp::Heavy. If we don't when we run out of file
# handles and attempt to call croak() we get an error message telling
diff -Nur perl-5.28.0/cpan/libnet/lib/Net/Config.pm perl-5.28.0_fix/cpan/libnet/lib/Net/Config.pm
--- perl-5.28.0/cpan/libnet/lib/Net/Config.pm 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/cpan/libnet/lib/Net/Config.pm 2018-09-22 22:59:45.953977649 +0200
@@ -51,7 +51,7 @@
{
## no critic (BuiltinFunctions::ProhibitStringyEval)
$^O eq 'MacOS' and eval <<TRY_INTERNET_CONFIG;
-use Mac::InternetConfig;
+#use Mac::InternetConfig;
{
my %nc = (
diff -Nur perl-5.28.0/cpan/Sys-Syslog/t/syslog.t perl-5.28.0_fix/cpan/Sys-Syslog/t/syslog.t
--- perl-5.28.0/cpan/Sys-Syslog/t/syslog.t 2018-05-21 12:44:04.000000000 +0200
+++ perl-5.28.0_fix/cpan/Sys-Syslog/t/syslog.t 2018-09-22 22:59:45.953977649 +0200
@@ -221,6 +221,7 @@
}
}
else {
+ $r = 1 unless -e '/dev/log';
ok( $r, "setlogsock() should return true: '$r'" );
}
diff -Nur perl-5.28.0/ext/DynaLoader/hints/linux.pl perl-5.28.0_fix/ext/DynaLoader/hints/linux.pl
--- perl-5.28.0/ext/DynaLoader/hints/linux.pl 2018-03-20 21:06:36.000000000 +0100
+++ perl-5.28.0_fix/ext/DynaLoader/hints/linux.pl 2018-09-22 22:59:45.957977521 +0200
@@ -2,4 +2,7 @@
# Some Linux releases like to hide their <nlist.h>
$self->{CCFLAGS} = $Config{ccflags} . ' -I/usr/include/libelf'
if -f "/usr/include/libelf/nlist.h";
+# Some silly modules like mod_perl use DynaLoader.a in a shared
+# module, so add cccdlflags if we're going for a shared libperl
+$self->{CCFLAGS} = ($self->{CCFLAGS} || $Config{ccflags}) . " $Config{cccdlflags}" if $Config{'useshrplib'} eq 'true';
1;
diff -Nur perl-5.28.0/ext/ODBM_File/hints/linux.pl perl-5.28.0_fix/ext/ODBM_File/hints/linux.pl
--- perl-5.28.0/ext/ODBM_File/hints/linux.pl 2018-03-20 21:06:36.000000000 +0100
+++ perl-5.28.0_fix/ext/ODBM_File/hints/linux.pl 2018-09-22 22:59:45.957977521 +0200
@@ -1,5 +1,5 @@
# uses GDBM dbm compatibility feature - at least on SuSE 8.0
-$self->{LIBS} = ['-lgdbm'];
+$self->{LIBS} = ['-lgdbm -lgdbm_compat'];
# Debian/Ubuntu have libgdbm_compat.so but not this file,
# so linking may fail
diff -Nur perl-5.28.0/ext/ODBM_File/Makefile.PL perl-5.28.0_fix/ext/ODBM_File/Makefile.PL
--- perl-5.28.0/ext/ODBM_File/Makefile.PL 2018-03-20 21:06:36.000000000 +0100
+++ perl-5.28.0_fix/ext/ODBM_File/Makefile.PL 2018-09-22 22:59:45.957977521 +0200
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'ODBM_File',
- LIBS => ["-ldbm -lucb"],
+ LIBS => ["-lgdbm -lucb"],
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'ODBM_File.pm',
);
diff -Nur perl-5.28.0/hints/linux.sh perl-5.28.0_fix/hints/linux.sh
--- perl-5.28.0/hints/linux.sh 2018-05-21 12:44:04.000000000 +0200
+++ perl-5.28.0_fix/hints/linux.sh 2018-09-22 22:59:45.957977521 +0200
@@ -53,7 +53,7 @@
# BSD compatibility library no longer needed
# 'kaffe' has a /usr/lib/libnet.so which is not at all relevant for perl.
# bind causes issues with several reentrant functions
-set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /'`
+set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /' -e 's/ db / /' -e 's/ gdbm / /' -e 's/ ndbm / /'`
shift
libswanted="$*"
@@ -64,6 +64,20 @@
libswanted="$libswanted gdbm_compat"
fi
+if test -e /lib64/libc.so.6 ; then
+ libc=`ls -l /lib64/libc.so.6 | awk '{print $NF}'`
+ libc=/lib64/$libc
+ glibpth='/lib64 /usr/lib64 /usr/local/lib64'
+ libspath='/usr/local/lib64 /lib64 /usr/lib64'
+ loclibpth='/usr/local/lib64'
+ lddlflags='-shared -L/usr/local/lib64'
+ ldflags=' -L/usr/local/lib64'
+ libs='-lm -ldl -lcrypt'
+elif test -L /lib/libc.so.6; then
+ libc=`ls -l /lib/libc.so.6 | awk '{print $NF}'`
+ libc=/lib/$libc
+fi
+
+#
+# SuSEconfig sometimes sets the variable CHECK_NEWPACKAGE. If it is set
+# to false, we don't have to do anything.
+#
+test "$CHECK_NEWPACKAGE" = false && exit 0
# Configure may fail to find lstat() since it's a static/inline
# function in <sys/stat.h>.
d_lstat=define
@@ -147,6 +161,7 @@
esac
;;
esac
+ optimize="$optimize --pipe"
;;
esac
@@ -221,6 +236,33 @@
;;
esac
+man1dir=/usr/share/man/man1
+man3dir=/usr/share/man/man3
+man3ext=3pm
+
+test -f /etc/sysconfig/suseconfig || { echo "No /etc/sysconfig/suseconfig found." && exit 1 ; }
+. /etc/sysconfig/suseconfig
+case `uname -m` in
+i?86) archname='i586-linux';;
+*) archname=`uname -m`-linux;;
+esac
+
+# this skript only works in a running system.
+case $archname in
+sparc64-linux) glibpth="/lib64 /usr/lib64";;
+esac
+
+test -n "$ROOT" && exit 0
+cf_email='none'
+#libs='-lgdbm -ldb -ldl -lm -lc'
+#libs='-ldl -lm -lc'
+
+perl -e 'exit 0' 2>/dev/null || { echo "Perl not found." && exit 0 ; }
+usedl='true'
+dlsrc='dl_dlopen.xs'
+d_dosuid='undef'
+d_bincompat3='y'
+
+#
+# see if we may do any work
+#
+test -n "$CREATE_PERLLOCAL_POD" -a "$CREATE_PERLLOCAL_POD" = "yes" \
+ || { echo "disabled in sysconfig/suseconfig" && exit 1 ; }
+
+#
+# check if anything to add
+#
+PERLLOCAL_PATH=`perl -V:installarchlib | sed -e "s/.*='\(.*\)'.*/\1/"`
+# We don't want to add /usr/local/include and /usr/local/lib to the search
+# paths, they are already searched by default.
+locincpth=
+loclibpth=
+
+NEEDED="false"
if ${sh:-/bin/sh} -c exit; then
echo ''
echo 'You appear to have a working bash. Good.'
@@ -268,6 +310,9 @@
echo "Couldn't find tcsh. Csh-based globbing might be broken."
fi
fi
+csh=''
+d_csh='undef'
+full_csh=''
# Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu>
# Message-Id: <33EF1634.B36B6500@pobox.com>
@@ -378,6 +423,8 @@
d_localtime_r_proto="$define"
d_random_r_proto="$define"
+ test -e /lib64/libc.so.6 && libs='-lm -ldl -lcrypt -lpthread'
+
+if test -d /var/adm/perl-modules ; then
+ if test /var/adm/perl-modules -nt $PERLLOCAL_PATH/perllocal.pod ; then
+ NEEDED="true"
+ elif test ! -f $PERLLOCAL_PATH/perllocal.pod ; then
+ NEEDED="true"
+ fi
+fi
;;
esac
EOCBU
diff -Nur perl-5.28.0/installperl perl-5.28.0_fix/installperl
--- perl-5.28.0/installperl 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/installperl 2018-09-22 22:59:45.957977521 +0200
@@ -685,7 +685,7 @@
return if $name eq 'ExtUtils/MakeMaker/version/regex.pm';
my $installlib = $installprivlib;
- if ($dir =~ /^auto\// ||
+ if (($dir =~ /^auto\// && $dir ne 'auto/Compress/Zlib') ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
$name=~/^Config_(heavy|git)\.pl\z/
diff -Nur perl-5.28.0/lib/perl5db.pl perl-5.28.0_fix/lib/perl5db.pl
--- perl-5.28.0/lib/perl5db.pl 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/lib/perl5db.pl 2018-09-22 22:59:45.957977521 +0200
@@ -2366,6 +2366,8 @@
open( OUT, ">&STDOUT" ) # XXX: lost message
|| _db_warn("Can't restore DB::OUT");
}
+ # tell readline the new OUT handle
+ $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline;
next CMD;
} ## end unless ($piped = open(OUT,...
@@ -2470,6 +2472,9 @@
$obj->selected("");
}
+ # tell readline the new OUT handle
+ $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline;
+
+#
+# now call the working script
+#
+if "$NEEDED" = "true" ; then
+ if test -x /usr/lib/perl5/perllocal.SuSE ; then
+ /usr/lib/perl5/perllocal.SuSE
+ pod2man $PERLLOCAL_PATH/perllocal.pod | gzip > /usr/share/man/man3/perllocal.3pm.gz
+ else
+ echo "SuSEconfig.perl: /usr/lib/perl5/perllocal.SuSE not found!"
+ fi
+fi
+
+#
+# end of file SuSEconfig.perl
+#
--- ./SuSE/perllocal.SuSE.orig 2017-08-30 12:05:40.264184858 +0000
+++ ./SuSE/perllocal.SuSE 2017-08-30 12:05:40.264184858 +0000
@@ -0,0 +1,84 @@
# No pipes now.
$obj->piped("");
} ## end if ($piped)
diff -Nur perl-5.28.0/SuSE/perllocal.SuSE perl-5.28.0_fix/SuSE/perllocal.SuSE
--- perl-5.28.0/SuSE/perllocal.SuSE 1970-01-01 01:00:00.000000000 +0100
+++ perl-5.28.0_fix/SuSE/perllocal.SuSE 2018-09-22 22:59:45.957977521 +0200
@@ -0,0 +1,83 @@
+#!/usr/bin/perl
+# Copyright (c) 1998 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
+#
@ -258,9 +404,89 @@
+} else {
+ print "SuSEconfig.perl: Can't write to file $Config{'installarchlib'}/perllocal.pod !\n\n";
+}
diff -Nur perl-5.28.0/SuSE/SuSEconfig.perl perl-5.28.0_fix/SuSE/SuSEconfig.perl
--- perl-5.28.0/SuSE/SuSEconfig.perl 1970-01-01 01:00:00.000000000 +0100
+++ perl-5.28.0_fix/SuSE/SuSEconfig.perl 2018-09-22 22:59:45.957977521 +0200
@@ -0,0 +1,76 @@
+#! /bin/bash
+#
+# Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
+#
+# Author: Burchard Steinbild <bs@suse.de>, 1996
+# Martin Scherbaum <maddin@suse.de>, 5/1997
+# Ruediger Oertel <ro@suse.de>, 7/1998
+
--- ./SuSE/sysconfig.suseconfig-perl.orig 2017-08-30 12:05:40.265184858 +0000
+++ ./SuSE/sysconfig.suseconfig-perl 2017-08-30 12:05:40.265184858 +0000
+#
+# Variables in /etc/sysconfig/suseconfig used by this script are:
+# CREATE_PERLLOCAL_POD
+#
+# This script calls the scripts:
+# /usr/sbin/perllocal.suse which comes from the package perl
+#
+
+#
+# check if we are started as root
+# only one of UID and USER must be set correctly
+#
+if test "$UID" != 0 -a "$USER" != root; then
+ echo "You must be root to start $0."
+ exit 1
+fi
+
+#
+# SuSEconfig sometimes sets the variable CHECK_NEWPACKAGE. If it is set
+# to false, we don't have to do anything.
+#
+test "$CHECK_NEWPACKAGE" = false && exit 0
+
+test -f /etc/sysconfig/suseconfig || { echo "No /etc/sysconfig/suseconfig found." && exit 1 ; }
+. /etc/sysconfig/suseconfig
+
+# this skript only works in a running system.
+
+test -n "$ROOT" && exit 0
+
+perl -e 'exit 0' 2>/dev/null || { echo "Perl not found." && exit 0 ; }
+
+#
+# see if we may do any work
+#
+test -n "$CREATE_PERLLOCAL_POD" -a "$CREATE_PERLLOCAL_POD" = "yes" \
+ || { echo "disabled in sysconfig/suseconfig" && exit 1 ; }
+
+#
+# check if anything to add
+#
+PERLLOCAL_PATH=`perl -V:installarchlib | sed -e "s/.*='\(.*\)'.*/\1/"`
+
+NEEDED="false"
+
+if test -d /var/adm/perl-modules ; then
+ if test /var/adm/perl-modules -nt $PERLLOCAL_PATH/perllocal.pod ; then
+ NEEDED="true"
+ elif test ! -f $PERLLOCAL_PATH/perllocal.pod ; then
+ NEEDED="true"
+ fi
+fi
+
+#
+# now call the working script
+#
+if "$NEEDED" = "true" ; then
+ if test -x /usr/lib/perl5/perllocal.SuSE ; then
+ /usr/lib/perl5/perllocal.SuSE
+ pod2man $PERLLOCAL_PATH/perllocal.pod | gzip > /usr/share/man/man3/perllocal.3pm.gz
+ else
+ echo "SuSEconfig.perl: /usr/lib/perl5/perllocal.SuSE not found!"
+ fi
+fi
+
+#
+# end of file SuSEconfig.perl
+#
diff -Nur perl-5.28.0/SuSE/sysconfig.suseconfig-perl perl-5.28.0_fix/SuSE/sysconfig.suseconfig-perl
--- perl-5.28.0/SuSE/sysconfig.suseconfig-perl 1970-01-01 01:00:00.000000000 +0100
+++ perl-5.28.0_fix/SuSE/sysconfig.suseconfig-perl 2018-09-22 22:59:45.957977521 +0200
@@ -0,0 +1,8 @@
+## Path: System/SuSEconfig
+## Type: yesno
@ -270,238 +496,10 @@
+# May SuSEconfig modify your perllocal.pod? (yes/no)
+#
+CREATE_PERLLOCAL_POD="yes"
--- ./cpan/Compress-Raw-Zlib/config.in.orig 2017-02-28 12:36:42.000000000 +0000
+++ ./cpan/Compress-Raw-Zlib/config.in 2017-08-30 12:05:40.256184858 +0000
@@ -16,9 +16,9 @@
# Setting the Gzip OS Code
#
-BUILD_ZLIB = True
-INCLUDE = ./zlib-src
-LIB = ./zlib-src
+BUILD_ZLIB = False
+INCLUDE = /usr/include
+LIB = /usr/lib
OLD_ZLIB = False
GZIP_OS_CODE = AUTO_DETECT
--- ./cpan/Encode/bin/enc2xs.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./cpan/Encode/bin/enc2xs 2017-08-30 12:05:40.257184858 +0000
@@ -1094,7 +1094,7 @@ sub make_configlocal_pm {
$LocalMod{$enc} ||= $mod;
}
};
- File::Find::find({wanted => $wanted}, @INC);
+ File::Find::find({wanted => $wanted}, grep {$_ ne '.'} @INC);
$_ModLines = "";
for my $enc ( sort keys %LocalMod ) {
$_ModLines .=
--- ./cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2017-08-30 12:05:40.257184858 +0000
@@ -207,8 +207,11 @@ foreach my $key (sort(keys(%{$self->{dat
{
if (! -e $key)
{
- push(@missing, $key);
- delete($self->{data}{$key}) if ($remove);
+ if (($key !~ m!/man/!) || ! -e "$key.gz")
+ {
+ push(@missing, $key);
+ delete($self->{data}{$key}) if ($remove);
+ }
}
}
return(@missing);
--- ./cpan/File-Temp/lib/File/Temp.pm.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./cpan/File-Temp/lib/File/Temp.pm 2017-08-30 12:05:40.258184858 +0000
@@ -16,7 +16,7 @@ use Fcntl 1.03;
use IO::Seekable; # For SEEK_*
use Errno;
use Scalar::Util 'refaddr';
-require VMS::Stdio if $^O eq 'VMS';
+#require VMS::Stdio if $^O eq 'VMS';
# pre-emptively load Carp::Heavy. If we don't when we run out of file
# handles and attempt to call croak() we get an error message telling
--- ./cpan/Sys-Syslog/t/syslog.t.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./cpan/Sys-Syslog/t/syslog.t 2017-08-30 12:05:40.259184858 +0000
@@ -221,6 +221,7 @@ SKIP: {
}
}
else {
+ $r = 1 unless -e '/dev/log';
ok( $r, "setlogsock() should return true: '$r'" );
}
--- ./cpan/libnet/lib/Net/Config.pm.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./cpan/libnet/lib/Net/Config.pm 2017-08-30 12:05:40.259184858 +0000
@@ -53,7 +53,7 @@ our %NetConfig = (
{
## no critic (BuiltinFunctions::ProhibitStringyEval)
$^O eq 'MacOS' and eval <<TRY_INTERNET_CONFIG;
-use Mac::InternetConfig;
+#use Mac::InternetConfig;
{
my %nc = (
--- ./ext/DynaLoader/hints/linux.pl.orig 2017-02-28 12:36:42.000000000 +0000
+++ ./ext/DynaLoader/hints/linux.pl 2017-08-30 12:05:40.259184858 +0000
@@ -2,4 +2,7 @@
# Some Linux releases like to hide their <nlist.h>
$self->{CCFLAGS} = $Config{ccflags} . ' -I/usr/include/libelf'
if -f "/usr/include/libelf/nlist.h";
+# Some silly modules like mod_perl use DynaLoader.a in a shared
+# module, so add cccdlflags if we're going for a shared libperl
+$self->{CCFLAGS} = ($self->{CCFLAGS} || $Config{ccflags}) . " $Config{cccdlflags}" if $Config{'useshrplib'} eq 'true';
1;
--- ./ext/ODBM_File/Makefile.PL.orig 2017-02-28 12:36:42.000000000 +0000
+++ ./ext/ODBM_File/Makefile.PL 2017-08-30 12:05:40.260184858 +0000
@@ -1,7 +1,7 @@
use ExtUtils::MakeMaker;
WriteMakefile(
NAME => 'ODBM_File',
- LIBS => ["-ldbm -lucb"],
+ LIBS => ["-lgdbm -lucb"],
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'ODBM_File.pm',
);
--- ./ext/ODBM_File/hints/linux.pl.orig 2017-02-28 12:36:42.000000000 +0000
+++ ./ext/ODBM_File/hints/linux.pl 2017-08-30 12:05:40.259184858 +0000
@@ -1,5 +1,5 @@
# uses GDBM dbm compatibility feature - at least on SuSE 8.0
-$self->{LIBS} = ['-lgdbm'];
+$self->{LIBS} = ['-lgdbm -lgdbm_compat'];
# Debian/Ubuntu have libgdbm_compat.so but not this file,
# so linking may fail
--- ./hints/linux.sh.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./hints/linux.sh 2017-08-30 12:09:43.999184426 +0000
@@ -53,7 +53,7 @@ ignore_versioned_solibs='y'
# BSD compatibility library no longer needed
# 'kaffe' has a /usr/lib/libnet.so which is not at all relevant for perl.
# bind causes issues with several reentrant functions
-set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /'`
+set `echo X "$libswanted "| sed -e 's/ bsd / /' -e 's/ net / /' -e 's/ bind / /' -e 's/ db / /' -e 's/ gdbm / /' -e 's/ ndbm / /'`
shift
libswanted="$*"
@@ -64,6 +64,20 @@ if echo " $libswanted " | grep -q ' gdbm
libswanted="$libswanted gdbm_compat"
fi
+if test -e /lib64/libc.so.6 ; then
+ libc=`ls -l /lib64/libc.so.6 | awk '{print $NF}'`
+ libc=/lib64/$libc
+ glibpth='/lib64 /usr/lib64 /usr/local/lib64'
+ libspath='/usr/local/lib64 /lib64 /usr/lib64'
+ loclibpth='/usr/local/lib64'
+ lddlflags='-shared -L/usr/local/lib64'
+ ldflags=' -L/usr/local/lib64'
+ libs='-lm -ldl -lcrypt'
+elif test -L /lib/libc.so.6; then
+ libc=`ls -l /lib/libc.so.6 | awk '{print $NF}'`
+ libc=/lib/$libc
+fi
+
# Configure may fail to find lstat() since it's a static/inline
# function in <sys/stat.h>.
d_lstat=define
@@ -147,6 +161,7 @@ case "$optimize" in
esac
;;
esac
+ optimize="$optimize --pipe"
;;
esac
@@ -221,6 +236,33 @@ case "$libc" in
;;
esac
+man1dir=/usr/share/man/man1
+man3dir=/usr/share/man/man3
+man3ext=3pm
+
+case `uname -m` in
+i?86) archname='i586-linux';;
+*) archname=`uname -m`-linux;;
+esac
+
+case $archname in
+sparc64-linux) glibpth="/lib64 /usr/lib64";;
+esac
+
+cf_email='none'
+#libs='-lgdbm -ldb -ldl -lm -lc'
+#libs='-ldl -lm -lc'
+
+usedl='true'
+dlsrc='dl_dlopen.xs'
+d_dosuid='undef'
+d_bincompat3='y'
+
+# We don't want to add /usr/local/include and /usr/local/lib to the search
+# paths, they are already searched by default.
+locincpth=
+loclibpth=
+
if ${sh:-/bin/sh} -c exit; then
echo ''
echo 'You appear to have a working bash. Good.'
@@ -268,6 +310,9 @@ else
echo "Couldn't find tcsh. Csh-based globbing might be broken."
fi
fi
+csh=''
+d_csh='undef'
+full_csh=''
# Shimpei Yamashita <shimpei@socrates.patnet.caltech.edu>
# Message-Id: <33EF1634.B36B6500@pobox.com>
@@ -378,6 +423,8 @@ $define|true|[yY]*)
d_localtime_r_proto="$define"
d_random_r_proto="$define"
+ test -e /lib64/libc.so.6 && libs='-lm -ldl -lcrypt -lpthread'
+
;;
esac
EOCBU
--- ./installperl.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./installperl 2017-08-30 12:05:40.261184858 +0000
@@ -685,7 +685,7 @@ sub installlib {
return if $name eq 'ExtUtils/MakeMaker/version/regex.pm';
my $installlib = $installprivlib;
- if ($dir =~ /^auto\// ||
+ if (($dir =~ /^auto\// && $dir ne 'auto/Compress/Zlib') ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
$name=~/^Config_(heavy|git)\.pl\z/
--- ./lib/perl5db.pl.orig 2017-04-19 13:37:05.000000000 +0000
+++ ./lib/perl5db.pl 2017-08-30 12:05:40.264184858 +0000
@@ -2363,6 +2363,8 @@ sub _DB__handle_run_command_in_pager_com
open( OUT, ">&STDOUT" ) # XXX: lost message
|| _db_warn("Can't restore DB::OUT");
}
+ # tell readline the new OUT handle
+ $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline;
next CMD;
} ## end unless ($piped = open(OUT,...
@@ -2467,6 +2469,9 @@ sub _DB__at_end_of_every_command {
$obj->selected("");
}
+ # tell readline the new OUT handle
+ $term->Attribs()->{outstream} = *OUT if defined &Term::ReadLine::Gnu::readline;
+
# No pipes now.
$obj->piped("");
} ## end if ($piped)
--- ./utils/perlbug.PL.orig 2017-04-19 13:37:06.000000000 +0000
+++ ./utils/perlbug.PL 2017-08-30 12:05:40.265184858 +0000
@@ -1042,6 +1042,7 @@ sub _message_headers {
diff -Nur perl-5.28.0/utils/perlbug.PL perl-5.28.0_fix/utils/perlbug.PL
--- perl-5.28.0/utils/perlbug.PL 2018-05-21 14:29:23.000000000 +0200
+++ perl-5.28.0_fix/utils/perlbug.PL 2018-09-22 22:59:45.957977521 +0200
@@ -1050,6 +1050,7 @@
$headers{'Cc'} = $cc if ($cc);
$headers{'Message-Id'} = $messageid if ($messageid);
$headers{'Reply-To'} = $from if ($from);

3
perl-5.28.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:059b3cb69970d8c8c5964caced0335b4af34ac990c8e61f7e3f90cd1c2d11e49
size 12410536

View File

@ -1,25 +1,22 @@
Index: perl.c
===================================================================
--- perl.c.orig
+++ perl.c
@@ -4579,11 +4579,13 @@ S_init_perllib(pTHX)
# endif
--- ./perl_inc_macro.h.orig 2018-09-22 22:08:14.492755509 +0200
+++ ./perl_inc_macro.h 2018-09-22 22:07:36.049972877 +0200
@@ -83,10 +83,12 @@
# define INCPUSH_PRIVLIB_EXP S_incpush_use_sep(aTHX_ STR_WITH_LEN(PRIVLIB_EXP), INCPUSH_CAN_RELOCATE);
#endif
+#if 0
#ifdef PERL_OTHERLIBDIRS
S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS),
INCPUSH_ADD_VERSIONED_SUB_DIRS|INCPUSH_NOT_BASEDIR
|INCPUSH_CAN_RELOCATE);
# define INCPUSH_PERL_OTHERLIBDIRS S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS), \
INCPUSH_ADD_VERSIONED_SUB_DIRS|INCPUSH_NOT_BASEDIR|INCPUSH_CAN_RELOCATE);
#endif
+#endif
if (!TAINTING_get) {
#ifndef VMS
@@ -4625,20 +4627,19 @@ S_init_perllib(pTHX)
/* submacros for INCPUSH_PERL5LIB */
@@ -133,19 +135,19 @@
#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
/* Search for version-specific dirs below here */
S_incpush_use_sep(aTHX_ STR_WITH_LEN(SITELIB_STEM),
# define INCPUSH_SITELIB_STEM S_incpush_use_sep(aTHX_ STR_WITH_LEN(SITELIB_STEM), \
- INCPUSH_ADD_OLD_VERS|INCPUSH_CAN_RELOCATE);
+ INCPUSH_ADD_OLD_VERS|INCPUSH_NOT_BASEDIR|INCPUSH_CAN_RELOCATE);
#endif
@ -27,16 +24,15 @@ Index: perl.c
#if defined(PERL_VENDORLIB_STEM) && defined(PERL_INC_VERSION_LIST)
/* Search for version-specific dirs below here */
S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_VENDORLIB_STEM),
# define INCPUSH_PERL_VENDORLIB_STEM S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_VENDORLIB_STEM), \
- INCPUSH_ADD_OLD_VERS|INCPUSH_CAN_RELOCATE);
+ INCPUSH_ADD_OLD_VERS|INCPUSH_NOT_BASEDIR|INCPUSH_CAN_RELOCATE);
#endif
#ifdef PERL_OTHERLIBDIRS
S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS),
- INCPUSH_ADD_OLD_VERS|INCPUSH_ADD_ARCHONLY_SUB_DIRS
- |INCPUSH_CAN_RELOCATE);
# define INCPUSH_PERL_OTHERLIBDIRS_ARCHONLY S_incpush_use_sep(aTHX_ STR_WITH_LEN(PERL_OTHERLIBDIRS), \
- INCPUSH_ADD_OLD_VERS|INCPUSH_ADD_ARCHONLY_SUB_DIRS|INCPUSH_CAN_RELOCATE);
+ INCPUSH_CAN_RELOCATE);
#endif
#endif /* !PERL_IS_MINIPERL */

View File

@ -1,38 +0,0 @@
From e9c9cf57594854df9f5802f7f149be4738212e96 Mon Sep 17 00:00:00 2001
From: David Mitchell <davem@iabyn.com>
Date: Fri, 11 May 2018 08:03:42 +0100
Subject: [PATCH] fix build failure with recent glibc
RT #133184
pp_crypt() directly manipulates a field inside 'struct crypt_data' to work
around a bug in an ancient glibc version from circa 2002. New glibc
releases don't have this field so perl fails to compile. Make the hack
conditional on glibc version.
Stolen from a patch to the Fedora 28 distribution.
---
pp.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/pp.c b/pp.c
index 826c20748b..33eac6040d 100644
--- a/pp.c
+++ b/pp.c
@@ -3653,8 +3653,12 @@ PP(pp_crypt)
#if defined(__GLIBC__) || defined(__EMX__)
if (PL_reentrant_buffer->_crypt_struct_buffer) {
PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0;
- /* work around glibc-2.2.5 bug */
+#if (defined(__GLIBC__) && __GLIBC__ == 2) && \
+ (defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ >= 2 && __GLIBC_MINOR__ < 4)
+ /* work around glibc-2.2.5 bug, has been fixed at some
+ * time in glibc-2.3.X */
PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
+#endif
}
#endif
}
--
2.19.0

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Sat Sep 22 19:22:29 UTC 2018 - Dirk Stoecker <opensuse@dstoecker.de>
- update to perl-5.28.0
* Core Enhancements
* Unicode 10.0 is supported
* delete on key/value hash slices
* Experimentally, there are now alphabetic synonyms for some regular expression assertions
* Mixed Unicode scripts are now detectable
* In-place editing with perl -i is now safer
* Initialisation of aggregate state variables
* Full-size inode numbers
* The sprintf %j format size modifier is now available with pre-C99 compilers
* Close-on-exec flag set atomically
* String- and number-specific bitwise ops are no longer experimental
* Locales are now thread-safe on systems that support them
* New read-only predefined variable ${^SAFE_LOCALES}
* Security
* [CVE-2017-12837] Heap buffer overflow in regular expression compiler
* [CVE-2017-12883] Buffer over-read in regular expression parser
* [CVE-2017-12814] $ENV{$key} stack buffer overflow on Windows
* Default Hash Function Change
* Full list of changes: https://metacpan.org/pod/release/XSAWYERX/perl-5.28.0/pod/perldelta.pod
- update perl-5.26.0.dif to perl-5.28.0.dif
- drop patch perl-pp-crypt.patch (included upstream)
-------------------------------------------------------------------
Tue Sep 18 14:14:34 UTC 2018 - schwab@suse.de

View File

@ -16,21 +16,21 @@
#
%define pversion 5.26.2
%global versionlist 5.26.1
%define pversion 5.28.0
%global versionlist %{nil}
Name: perl
Version: 5.26.2
Version: 5.28.0
Release: 0
Summary: The Perl interpreter
License: Artistic-1.0 OR GPL-2.0-or-later
Group: Development/Languages/Perl
URL: http://www.perl.org/
Source: http://www.cpan.org/src/5.0/perl-%{version}.tar.xz
Url: https://www.perl.org/
Source: https://www.cpan.org/src/5.0/perl-%{version}.tar.xz
Source1: %{name}-rpmlintrc
Source2: macros.perl
Source3: README.macros
Source4: baselibs.conf
Patch0: perl-5.26.0.dif
Patch0: perl-5.28.0.dif
Patch2: perl-regexp-refoverflow.diff
Patch3: perl-nroff.diff
Patch4: perl-netcmdutf8.diff
@ -45,7 +45,6 @@ Patch11: perl-5.18.2-overflow.diff
Patch12: perl-reproducible.patch
Patch13: perl_skip_flaky_tests_powerpc.patch
Patch14: posix-sigaction.patch
Patch15: perl-pp-crypt.patch
BuildRequires: db-devel
BuildRequires: gdbm-devel
BuildRequires: libbz2-devel
@ -57,7 +56,6 @@ Suggests: perl-doc = %{version}
Provides: perl-500
Provides: perl-Filter-Simple = 0.93
Provides: perl(:MODULE_COMPAT_%{pversion})
Provides: perl(:MODULE_COMPAT_5.26.1)
Obsoletes: perl-Filter-Simple <= 0.93
Provides: perl-I18N-LangTags = 0.42
Obsoletes: perl-I18N-LangTags <= 0.42
@ -164,7 +162,7 @@ Perl man pages and pod files.
%prep
%setup -q -n perl-%{pversion}
cp -p %{SOURCE3} .
%patch0
%patch0 -p1
%patch2
%patch3
%patch4
@ -179,7 +177,6 @@ cp -p %{SOURCE3} .
%patch11
%patch12 -p1
%patch14 -p1
%patch15 -p1
%build
cp -a lib savelib