From f4695ea2e6ba6234d4561ac5c315894a9c9efe3482b6657766b9b789339243b2 Mon Sep 17 00:00:00 2001 From: Dirk Stoecker Date: Wed, 19 Sep 2018 12:18:31 +0000 Subject: [PATCH 01/10] Accepting request 636590 from home:Andreas_Schwab:Factory - perl-pp-crypt.patch: fix incompatibility with libxcrypt (bsc#1107973) OBS-URL: https://build.opensuse.org/request/show/636590 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=167 --- perl-pp-crypt.patch | 38 ++++++++++++++++++++++++++++++++++++++ perl.changes | 5 +++++ perl.spec | 2 ++ 3 files changed, 45 insertions(+) create mode 100644 perl-pp-crypt.patch diff --git a/perl-pp-crypt.patch b/perl-pp-crypt.patch new file mode 100644 index 0000000..c2fe9da --- /dev/null +++ b/perl-pp-crypt.patch @@ -0,0 +1,38 @@ +From e9c9cf57594854df9f5802f7f149be4738212e96 Mon Sep 17 00:00:00 2001 +From: David Mitchell +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 + diff --git a/perl.changes b/perl.changes index 6b89d15..f690cd8 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Sep 18 14:14:34 UTC 2018 - schwab@suse.de + +- perl-pp-crypt.patch: fix incompatibility with libxcrypt (bsc#1107973) + ------------------------------------------------------------------- Wed May 23 14:12:11 CEST 2018 - mls@suse.de diff --git a/perl.spec b/perl.spec index 8914015..30ad1c8 100644 --- a/perl.spec +++ b/perl.spec @@ -45,6 +45,7 @@ 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 @@ -178,6 +179,7 @@ cp -p %{SOURCE3} . %patch11 %patch12 -p1 %patch14 -p1 +%patch15 -p1 %build cp -a lib savelib From 879c8fc92b51d43478f6229f60e7677fc298e3879fdcad77dee531c0ee9f37d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 26 Sep 2018 09:53:14 +0000 Subject: [PATCH 02/10] 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 --- perl-5.22.0_wrong_rpm_provides.diff | 2 +- perl-5.26.2.tar.xz | 3 - perl-5.26.0.dif => perl-5.28.0.dif | 664 ++++++++++++++-------------- perl-5.28.0.tar.xz | 3 + perl-incfix.diff | 32 +- perl-pp-crypt.patch | 38 -- perl.changes | 26 ++ perl.spec | 17 +- 8 files changed, 382 insertions(+), 403 deletions(-) delete mode 100644 perl-5.26.2.tar.xz rename perl-5.26.0.dif => perl-5.28.0.dif (72%) create mode 100644 perl-5.28.0.tar.xz delete mode 100644 perl-pp-crypt.patch diff --git a/perl-5.22.0_wrong_rpm_provides.diff b/perl-5.22.0_wrong_rpm_provides.diff index 6e17e86..4817571 100644 --- a/perl-5.22.0_wrong_rpm_provides.diff +++ b/perl-5.22.0_wrong_rpm_provides.diff @@ -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 diff --git a/perl-5.26.2.tar.xz b/perl-5.26.2.tar.xz deleted file mode 100644 index 9398f5e..0000000 --- a/perl-5.26.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f8c0fb1b0db4681adb75c3ba0dd77a0472b1b359b9e80efd79fc27b4352132c -size 11931624 diff --git a/perl-5.26.0.dif b/perl-5.28.0.dif similarity index 72% rename from perl-5.26.0.dif rename to perl-5.28.0.dif index 509c27c..567f15c 100644 --- a/perl-5.26.0.dif +++ b/perl-5.28.0.dif @@ -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 , 1996 -+# Martin Scherbaum , 5/1997 -+# Ruediger Oertel , 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 < + $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 . + 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 + # 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 , 1996 ++# Martin Scherbaum , 5/1997 ++# Ruediger Oertel , 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 < - $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 . - 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 - # 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); diff --git a/perl-5.28.0.tar.xz b/perl-5.28.0.tar.xz new file mode 100644 index 0000000..b5378f9 --- /dev/null +++ b/perl-5.28.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:059b3cb69970d8c8c5964caced0335b4af34ac990c8e61f7e3f90cd1c2d11e49 +size 12410536 diff --git a/perl-incfix.diff b/perl-incfix.diff index 307a74d..96bb403 100644 --- a/perl-incfix.diff +++ b/perl-incfix.diff @@ -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 */ + diff --git a/perl-pp-crypt.patch b/perl-pp-crypt.patch deleted file mode 100644 index c2fe9da..0000000 --- a/perl-pp-crypt.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e9c9cf57594854df9f5802f7f149be4738212e96 Mon Sep 17 00:00:00 2001 -From: David Mitchell -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 - diff --git a/perl.changes b/perl.changes index f690cd8..e1acfb9 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,29 @@ +------------------------------------------------------------------- +Sat Sep 22 19:22:29 UTC 2018 - Dirk Stoecker + +- 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 diff --git a/perl.spec b/perl.spec index 30ad1c8..573f0d1 100644 --- a/perl.spec +++ b/perl.spec @@ -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 From 28c820de418516ca13ab8cc131e36615bc98dea8b5a0fcb6c9f2e5a36310029d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 26 Sep 2018 09:55:33 +0000 Subject: [PATCH 03/10] Regen perl-5.28.0.dif so that it is easier to diff against 5.26.0 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=169 --- perl-5.28.0.dif | 645 +++++++++++++++++++++++------------------------- perl.spec | 2 +- 2 files changed, 315 insertions(+), 332 deletions(-) diff --git a/perl-5.28.0.dif b/perl-5.28.0.dif index 567f15c..03c905d 100644 --- a/perl-5.28.0.dif +++ b/perl-5.28.0.dif @@ -1,7 +1,6 @@ -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 @@ +--- ./Configure.orig 2018-05-21 12:29:23.000000000 +0000 ++++ ./Configure 2018-09-26 09:54:14.330562141 +0000 +@@ -114,7 +114,7 @@ paths="$paths /usr/5bin /etc /usr/gnu/bi 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" @@ -10,7 +9,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure paths="$paths /sbin /usr/sbin /usr/libexec" paths="$paths /system/gnu_library/bin" -@@ -1448,7 +1448,7 @@ +@@ -1448,7 +1448,7 @@ loclibpth="/usr/local/lib /opt/local/lib loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib" : general looking path for locating libraries @@ -19,7 +18,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure 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" -@@ -2545,7 +2545,7 @@ +@@ -2545,7 +2545,7 @@ uname zip " pth=`echo $PATH | sed -e "s/$p_/ /g"` @@ -28,7 +27,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure for file in $loclist; do eval xxx=\$$file case "$xxx" in -@@ -19917,14 +19917,20 @@ +@@ -19917,14 +19917,20 @@ int main(int argc, char *argv[]) } EOCP set try @@ -49,7 +48,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure i_db=$undef case " $libs " in *"-ldb "*) -@@ -19965,7 +19971,7 @@ +@@ -19965,7 +19971,7 @@ int main() } #endif EOCP @@ -58,7 +57,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure if $contains warning try.out >>/dev/null 2>&1 ; then db_hashtype='int' else -@@ -20008,7 +20014,7 @@ +@@ -20008,7 +20014,7 @@ int main() } #endif EOCP @@ -67,7 +66,7 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure if $contains warning try.out >>/dev/null 2>&1 ; then db_prefixtype='int' else -@@ -24656,7 +24662,7 @@ +@@ -24656,7 +24662,7 @@ passcat='$passcat' patchlevel='$patchlevel' path_sep='$path_sep' perl5='$perl5' @@ -76,250 +75,87 @@ diff -Nur perl-5.28.0/Configure perl-5.28.0_fix/Configure perl_patchlevel='$perl_patchlevel' perl_static_inline='$perl_static_inline' perladmin='$perladmin' -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 < - $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 +--- ./SuSE/SuSEconfig.perl.orig 2018-09-26 09:54:14.334562132 +0000 ++++ ./SuSE/SuSEconfig.perl 2018-09-26 09:54:14.334562132 +0000 +@@ -0,0 +1,76 @@ ++#! /bin/bash ++# ++# Copyright (c) 1996 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. ++# ++# Author: Burchard Steinbild , 1996 ++# Martin Scherbaum , 5/1997 ++# Ruediger Oertel , 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 +fi + - # Configure may fail to find lstat() since it's a static/inline - # function in . - 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 ++# ++# 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 + -+case `uname -m` in -+i?86) archname='i586-linux';; -+*) archname=`uname -m`-linux;; -+esac ++test -f /etc/sysconfig/suseconfig || { echo "No /etc/sysconfig/suseconfig found." && exit 1 ; } ++. /etc/sysconfig/suseconfig + -+case $archname in -+sparc64-linux) glibpth="/lib64 /usr/lib64";; -+esac ++# this skript only works in a running system. + -+cf_email='none' -+#libs='-lgdbm -ldb -ldl -lm -lc' -+#libs='-ldl -lm -lc' ++test -n "$ROOT" && exit 0 + -+usedl='true' -+dlsrc='dl_dlopen.xs' -+d_dosuid='undef' -+d_bincompat3='y' ++perl -e 'exit 0' 2>/dev/null || { echo "Perl not found." && exit 0 ; } + -+# 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= ++# ++# 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/"` + - 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 - # 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' ++NEEDED="false" + - ;; - 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; ++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 + - # 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 ++# ++# 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 2018-09-26 09:54:14.334562132 +0000 ++++ ./SuSE/perllocal.SuSE 2018-09-26 09:54:14.334562132 +0000 @@ -0,0 +1,83 @@ +#!/usr/bin/perl +# Copyright (c) 1998 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved. @@ -404,89 +240,8 @@ diff -Nur perl-5.28.0/SuSE/perllocal.SuSE perl-5.28.0_fix/SuSE/perllocal.SuSE +} 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 , 1996 -+# Martin Scherbaum , 5/1997 -+# Ruediger Oertel , 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 -+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 +--- ./SuSE/sysconfig.suseconfig-perl.orig 2018-09-26 09:54:14.334562132 +0000 ++++ ./SuSE/sysconfig.suseconfig-perl 2018-09-26 09:54:14.334562132 +0000 @@ -0,0 +1,8 @@ +## Path: System/SuSEconfig +## Type: yesno @@ -496,10 +251,238 @@ diff -Nur perl-5.28.0/SuSE/sysconfig.suseconfig-perl perl-5.28.0_fix/SuSE/syscon +# May SuSEconfig modify your perllocal.pod? (yes/no) +# +CREATE_PERLLOCAL_POD="yes" -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 @@ +--- ./cpan/Compress-Raw-Zlib/config.in.orig 2018-05-21 12:29:23.000000000 +0000 ++++ ./cpan/Compress-Raw-Zlib/config.in 2018-09-26 09:54:14.334562132 +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 2018-05-21 12:29:23.000000000 +0000 ++++ ./cpan/Encode/bin/enc2xs 2018-09-26 09:54:14.334562132 +0000 +@@ -1091,7 +1091,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 2018-05-21 12:29:23.000000000 +0000 ++++ ./cpan/ExtUtils-Install/lib/ExtUtils/Packlist.pm 2018-09-26 09:54:14.334562132 +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 2018-03-20 20:06:35.000000000 +0000 ++++ ./cpan/File-Temp/lib/File/Temp.pm 2018-09-26 09:54:14.334562132 +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 2018-05-21 10:44:04.000000000 +0000 ++++ ./cpan/Sys-Syslog/t/syslog.t 2018-09-26 09:54:14.334562132 +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 2018-05-21 12:29:23.000000000 +0000 ++++ ./cpan/libnet/lib/Net/Config.pm 2018-09-26 09:54:14.334562132 +0000 +@@ -51,7 +51,7 @@ our %NetConfig = ( + { + ## no critic (BuiltinFunctions::ProhibitStringyEval) + $^O eq 'MacOS' and eval < + $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 2018-03-20 20:06:36.000000000 +0000 ++++ ./ext/ODBM_File/Makefile.PL 2018-09-26 09:54:14.334562132 +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 2018-03-20 20:06:36.000000000 +0000 ++++ ./ext/ODBM_File/hints/linux.pl 2018-09-26 09:54:14.334562132 +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 2018-05-21 10:44:04.000000000 +0000 ++++ ./hints/linux.sh 2018-09-26 09:54:14.334562132 +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 . + 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 + # 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 2018-05-21 12:29:23.000000000 +0000 ++++ ./installperl 2018-09-26 09:54:14.334562132 +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 2018-05-21 12:29:23.000000000 +0000 ++++ ./lib/perl5db.pl 2018-09-26 09:54:14.334562132 +0000 +@@ -2366,6 +2366,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,... + +@@ -2470,6 +2472,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 2018-05-21 12:29:23.000000000 +0000 ++++ ./utils/perlbug.PL 2018-09-26 09:54:14.334562132 +0000 +@@ -1050,6 +1050,7 @@ sub _message_headers { $headers{'Cc'} = $cc if ($cc); $headers{'Message-Id'} = $messageid if ($messageid); $headers{'Reply-To'} = $from if ($from); diff --git a/perl.spec b/perl.spec index 573f0d1..e4cb4b2 100644 --- a/perl.spec +++ b/perl.spec @@ -162,7 +162,7 @@ Perl man pages and pod files. %prep %setup -q -n perl-%{pversion} cp -p %{SOURCE3} . -%patch0 -p1 +%patch0 %patch2 %patch3 %patch4 From 35fc3af4fc77d9bc9f4b2eb3d356bd60c226ff18826a4adac3f26d3b18aef1fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 26 Sep 2018 10:49:13 +0000 Subject: [PATCH 04/10] Update Provides/Obsoletes OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=170 --- perl.spec | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/perl.spec b/perl.spec index e4cb4b2..fde888f 100644 --- a/perl.spec +++ b/perl.spec @@ -54,25 +54,25 @@ BuildRequires: zlib-devel Requires: perl-base = %{version} Suggests: perl-doc = %{version} Provides: perl-500 -Provides: perl-Filter-Simple = 0.93 +Provides: perl-Filter-Simple = 0.95 Provides: perl(:MODULE_COMPAT_%{pversion}) -Obsoletes: perl-Filter-Simple <= 0.93 -Provides: perl-I18N-LangTags = 0.42 -Obsoletes: perl-I18N-LangTags <= 0.42 +Obsoletes: perl-Filter-Simple <= 0.95 +Provides: perl-I18N-LangTags = 0.43 +Obsoletes: perl-I18N-LangTags <= 0.43 Provides: perl-MIME-Base64 = 3.15 Obsoletes: perl-MIME-Base64 <= 3.15 -Provides: perl-Storable = 2.62 -Obsoletes: perl-Storable <= 2.62 -Provides: perl-Test-Simple = 1.302073 -Obsoletes: perl-Test-Simple <= 1.302073 +Provides: perl-Storable = 3.08 +Obsoletes: perl-Storable <= 3.08 +Provides: perl-Test-Simple = 1.302133 +Obsoletes: perl-Test-Simple <= 1.302133 Provides: perl-Text-Balanced = 2.03 Obsoletes: perl-Text-Balanced <= 2.03 -Provides: perl-Time-HiRes = 1.9741 -Obsoletes: perl-Time-HiRes <= 1.9741 -Provides: perl-libnet = 3.08 -Obsoletes: perl-libnet <= 3.08 -Provides: perl-Compress-Raw-Zlib = 2.074 -Obsoletes: perl-Compress-Raw-Zlib <= 2.074 +Provides: perl-Time-HiRes = 1.9759 +Obsoletes: perl-Time-HiRes <= 1.9759 +Provides: perl-libnet = 3.11 +Obsoletes: perl-libnet <= 3.11 +Provides: perl-Compress-Raw-Zlib = 2.076 +Obsoletes: perl-Compress-Raw-Zlib <= 2.076 Provides: perl-Compress-Zlib = 2.074 Obsoletes: perl-Compress-Zlib <= 2.074 Provides: perl-IO-Compress-Base = 2.074 @@ -81,34 +81,34 @@ Provides: perl-IO-Compress-Zlib = 2.074 Obsoletes: perl-IO-Compress-Zlib <= 2.074 Provides: perl-IO-Zlib = 1.10 Obsoletes: perl-IO-Zlib <= 1.10 -Provides: perl-Archive-Tar = 2.24 -Obsoletes: perl-Archive-Tar <= 2.24 +Provides: perl-Archive-Tar = 2.30 +Obsoletes: perl-Archive-Tar <= 2.30 Provides: perl-Locale-Maketext-Simple = 0.21 Obsoletes: perl-Locale-Maketext-Simple <= 0.21 Provides: perl-Pod-Escapes = 1.07 Obsoletes: perl-Pod-Escapes <= 1.07 Provides: perl-Pod-Simple = 3.35 Obsoletes: perl-Pod-Simple <= 3.35 -Provides: perl-ExtUtils-ParseXS = 3.34 -Obsoletes: perl-ExtUtils-ParseXS <= 3.34 +Provides: perl-ExtUtils-ParseXS = 3.39 +Obsoletes: perl-ExtUtils-ParseXS <= 3.39 Provides: perl-CPAN-Meta = 2.150010 Obsoletes: perl-CPAN-Meta <= 2.150010 Provides: perl-CPAN-Meta-YAML = 0.018 Obsoletes: perl-CPAN-Meta-YAML <= 0.018 -Provides: perl-ExtUtils-CBuilder = 0.280225 -Obsoletes: perl-ExtUtils-CBuilder <= 0.280225 -Provides: perl-IO-Socket-IP = 0.38 -Obsoletes: perl-IO-Socket-IP <= 0.38 +Provides: perl-ExtUtils-CBuilder = 0.280230 +Obsoletes: perl-ExtUtils-CBuilder <= 0.280230 +Provides: perl-IO-Socket-IP = 0.39 +Obsoletes: perl-IO-Socket-IP <= 0.39 Provides: perl-Parse-CPAN-Meta = 2.150010 Obsoletes: perl-Parse-CPAN-Meta <= 2.150010 Provides: perl-PathTools = 3.63 Obsoletes: perl-PathTools <= 3.63 Provides: perl-autodie = 2.29 Obsoletes: perl-autodie <= 2.29 -Provides: perl-Test-Harness = 3.38 -Obsoletes: perl-Test-Harness <= 3.38 -Provides: perl-version = 0.9917 -Obsoletes: perl-version <= 0.9917 +Provides: perl-Test-Harness = 3.42 +Obsoletes: perl-Test-Harness <= 3.42 +Provides: perl-version = 0.9923 +Obsoletes: perl-version <= 0.9923 %if "%{version}" != "%{pversion}" Provides: perl = %{pversion}-%{release} %endif @@ -129,7 +129,7 @@ series. Summary: The Perl interpreter Group: Development/Languages/Perl Provides: perl-Digest -Provides: perl-Digest-MD5 +Provides: perl-Digest-MD5 = 2.55 %if "%{version}" != "%{pversion}" Provides: perl-base = %{pversion}-%{release} %endif From dfe90ad55e8184cd589b5388839f37c23b8baa950b8bdb9ac30ce0e3ff7b70ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 26 Sep 2018 11:07:51 +0000 Subject: [PATCH 05/10] Refresh perl_skip_flaky_tests_powerpc.patch OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=171 --- perl.spec | 2 +- perl_skip_flaky_tests_powerpc.patch | 103 ++++++++++------------------ 2 files changed, 38 insertions(+), 67 deletions(-) diff --git a/perl.spec b/perl.spec index fde888f..da6d875 100644 --- a/perl.spec +++ b/perl.spec @@ -171,7 +171,7 @@ cp -p %{SOURCE3} . %patch7 %ifarch ppc ppc64 ppc64le %patch8 -p1 -%patch13 -p1 +%patch13 %endif %patch9 %patch11 diff --git a/perl_skip_flaky_tests_powerpc.patch b/perl_skip_flaky_tests_powerpc.patch index 179f53c..4d7cc35 100644 --- a/perl_skip_flaky_tests_powerpc.patch +++ b/perl_skip_flaky_tests_powerpc.patch @@ -6,22 +6,9 @@ skip flaky tests powerpc as bypass https://bugzilla.suse.com/show_bug.cgi?id=1063176 Signed-off-by: Michel Normand ---- - cpan/Memoize/t/expmod_t.t | 1 + - dist/Time-HiRes/t/alarm.t | 2 +- - dist/Time-HiRes/t/clock.t | 2 +- - dist/Time-HiRes/t/nanosleep.t | 2 +- - dist/Time-HiRes/t/usleep.t | 2 +- - t/op/alarm.t | 1 + - t/op/sigsystem.t | 1 + - t/op/sselect.t | 2 ++ - t/op/stat.t | 1 + - 9 files changed, 10 insertions(+), 4 deletions(-) -Index: perl-5.26.1/cpan/Memoize/t/expmod_t.t -=================================================================== ---- perl-5.26.1.orig/cpan/Memoize/t/expmod_t.t -+++ perl-5.26.1/cpan/Memoize/t/expmod_t.t +--- ./cpan/Memoize/t/expmod_t.t.orig 2018-03-20 20:06:35.000000000 +0000 ++++ ./cpan/Memoize/t/expmod_t.t 2018-09-26 11:05:08.908018123 +0000 @@ -1,5 +1,6 @@ #!/usr/bin/perl @@ -29,10 +16,8 @@ Index: perl-5.26.1/cpan/Memoize/t/expmod_t.t use lib '..'; use Memoize; BEGIN { -Index: perl-5.26.1/dist/Time-HiRes/t/alarm.t -=================================================================== ---- perl-5.26.1.orig/dist/Time-HiRes/t/alarm.t -+++ perl-5.26.1/dist/Time-HiRes/t/alarm.t +--- ./dist/Time-HiRes/t/alarm.t.orig 2018-09-26 11:04:59.936040917 +0000 ++++ ./dist/Time-HiRes/t/alarm.t 2018-09-26 11:05:08.908018123 +0000 @@ -1,6 +1,6 @@ use strict; @@ -41,23 +26,29 @@ Index: perl-5.26.1/dist/Time-HiRes/t/alarm.t BEGIN { push @INC, '.' } use t::Watchdog; -Index: perl-5.26.1/dist/Time-HiRes/t/nanosleep.t -=================================================================== ---- perl-5.26.1.orig/dist/Time-HiRes/t/nanosleep.t -+++ perl-5.26.1/dist/Time-HiRes/t/nanosleep.t -@@ -8,7 +8,7 @@ BEGIN { - } - } +--- ./dist/Time-HiRes/t/clock.t.orig 2018-09-26 11:04:59.936040917 +0000 ++++ ./dist/Time-HiRes/t/clock.t 2018-09-26 11:05:08.908018123 +0000 +@@ -1,6 +1,6 @@ + use strict; --use Test::More tests => 3; +-use Test::More tests => 5; +use Test::More skip_all => "ppc workers are too busy"; BEGIN { push @INC, '.' } use t::Watchdog; -Index: perl-5.26.1/dist/Time-HiRes/t/usleep.t -=================================================================== ---- perl-5.26.1.orig/dist/Time-HiRes/t/usleep.t -+++ perl-5.26.1/dist/Time-HiRes/t/usleep.t +--- ./dist/Time-HiRes/t/nanosleep.t.orig 2018-09-26 11:05:08.908018123 +0000 ++++ ./dist/Time-HiRes/t/nanosleep.t 2018-09-26 11:06:17.203844610 +0000 +@@ -8,7 +8,7 @@ BEGIN { + } + } + +-use Test::More tests => 4; ++use Test::More skip_all => "ppc workers are too busy"; + BEGIN { push @INC, '.' } + use t::Watchdog; + +--- ./dist/Time-HiRes/t/usleep.t.orig 2018-09-26 11:04:59.936040917 +0000 ++++ ./dist/Time-HiRes/t/usleep.t 2018-09-26 11:05:08.908018123 +0000 @@ -8,7 +8,7 @@ BEGIN { } } @@ -67,10 +58,8 @@ Index: perl-5.26.1/dist/Time-HiRes/t/usleep.t BEGIN { push @INC, '.' } use t::Watchdog; -Index: perl-5.26.1/t/op/alarm.t -=================================================================== ---- perl-5.26.1.orig/t/op/alarm.t -+++ perl-5.26.1/t/op/alarm.t +--- ./t/op/alarm.t.orig 2018-05-21 10:44:04.000000000 +0000 ++++ ./t/op/alarm.t 2018-09-26 11:05:08.908018123 +0000 @@ -11,6 +11,7 @@ use Config; if ( !$Config{d_alarm} ) { skip_all("alarm() not implemented on this platform"); @@ -79,10 +68,8 @@ Index: perl-5.26.1/t/op/alarm.t plan tests => 5; my $Perl = which_perl(); -Index: perl-5.26.1/t/op/sigsystem.t -=================================================================== ---- perl-5.26.1.orig/t/op/sigsystem.t -+++ perl-5.26.1/t/op/sigsystem.t +--- ./t/op/sigsystem.t.orig 2018-03-20 20:06:37.000000000 +0000 ++++ ./t/op/sigsystem.t 2018-09-26 11:05:08.908018123 +0000 @@ -11,6 +11,7 @@ use strict; use constant TRUE => ($^X, '-e', 'exit 0'); use Data::Dumper; @@ -91,23 +78,9 @@ Index: perl-5.26.1/t/op/sigsystem.t plan tests => 4; SKIP: { -Index: perl-5.26.1/t/op/stat.t -=================================================================== ---- perl-5.26.1.orig/t/op/stat.t -+++ perl-5.26.1/t/op/stat.t -@@ -7,6 +7,7 @@ BEGIN { - } - - use Config; -+skip_all("ppc workers are too busy"); - - my ($Null, $Curdir); - if(eval {require File::Spec; 1}) { -Index: perl-5.26.1/t/op/sselect.t -=================================================================== ---- perl-5.26.1.orig/t/op/sselect.t -+++ perl-5.26.1/t/op/sselect.t -@@ -11,6 +11,8 @@ BEGIN { +--- ./t/op/sselect.t.orig 2018-05-21 12:29:23.000000000 +0000 ++++ ./t/op/sselect.t 2018-09-26 11:05:08.908018123 +0000 +@@ -13,6 +13,8 @@ BEGIN { skip_all("Win32 miniperl has no socket select") if $^O eq "MSWin32" && is_miniperl(); @@ -116,15 +89,13 @@ Index: perl-5.26.1/t/op/sselect.t plan (16); my $blank = ""; -Index: perl-5.26.1/dist/Time-HiRes/t/clock.t -=================================================================== ---- perl-5.26.1.orig/dist/Time-HiRes/t/clock.t -+++ perl-5.26.1/dist/Time-HiRes/t/clock.t -@@ -1,6 +1,6 @@ +--- ./t/op/stat.t.orig 2018-05-21 12:29:23.000000000 +0000 ++++ ./t/op/stat.t 2018-09-26 11:05:08.908018123 +0000 +@@ -9,6 +9,7 @@ BEGIN { use strict; + use warnings; + use Config; ++skip_all("ppc workers are too busy"); --use Test::More tests => 5; -+use Test::More skip_all => "ppc workers are too busy"; - BEGIN { push @INC, '.' } - use t::Watchdog; - + my ($Null, $Curdir); + if(eval {require File::Spec; 1}) { From d22368ea1afd893b1047ccaab170439379323975b2f0b0bef4b610bf017298df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Wed, 26 Sep 2018 13:05:33 +0000 Subject: [PATCH 06/10] change the perl_gen_filelist macro OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=172 --- macros.perl | 2 +- perl.changes | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/macros.perl b/macros.perl index 1d8124d..7e8dd58 100644 --- a/macros.perl +++ b/macros.perl @@ -94,7 +94,7 @@ for i in ${all_dir[@]}; do\ if [ "${i}" = "auto" ]; then\ continue\ fi\ - if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ + if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}" -o "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto"]; then\ continue\ else\ if [ -d ${base_dir}/${i} ]; then\ diff --git a/perl.changes b/perl.changes index e1acfb9..4e04f6e 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 26 15:01:32 CEST 2018 - mls@suse.de + +- change the perl_gen_filelist macro so that the modules no + longer own the perl_vendorarch directory [bnc#1109754] + ------------------------------------------------------------------- Sat Sep 22 19:22:29 UTC 2018 - Dirk Stoecker From 6c5fbe448814cbaae5d4a9bec780cf4f1fba844348f17b8ae9c44d5cf790ec18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Fri, 28 Sep 2018 14:08:18 +0000 Subject: [PATCH 07/10] - fix testing fatal errors in gdbm new patch: perl-gdbm-test-no-mmap.diff - fix perl no longer setting $^X if /proc is not mounted new patch: perl-revert-caretx.diff OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=173 --- perl-gdbm-test-no-mmap.diff | 10 ++++++++ perl-revert-caretx.diff | 48 +++++++++++++++++++++++++++++++++++++ perl.changes | 8 +++++++ perl.spec | 4 ++++ 4 files changed, 70 insertions(+) create mode 100644 perl-gdbm-test-no-mmap.diff create mode 100644 perl-revert-caretx.diff diff --git a/perl-gdbm-test-no-mmap.diff b/perl-gdbm-test-no-mmap.diff new file mode 100644 index 0000000..f05a9ac --- /dev/null +++ b/perl-gdbm-test-no-mmap.diff @@ -0,0 +1,10 @@ +--- ./ext/GDBM_File/t/fatal.t.orig 2018-09-28 14:01:52.697941391 +0000 ++++ ./ext/GDBM_File/t/fatal.t 2018-09-28 14:02:35.601833563 +0000 +@@ -29,6 +29,7 @@ is((open $fh, "<&=$fileno"), undef, + umask(0); + my %h; + isa_ok(tie(%h, 'GDBM_File', 'Op_dbmx', GDBM_WRCREAT, 0640), 'GDBM_File'); ++tied(%h)->setopt(7, 0, length(pack("i", 0))); # turn off mmap mode + + isnt((open $fh, "<&=$fileno"), undef, "dup fileno $fileno") + or diag("\$! = $!"); diff --git a/perl-revert-caretx.diff b/perl-revert-caretx.diff new file mode 100644 index 0000000..1a3fdf1 --- /dev/null +++ b/perl-revert-caretx.diff @@ -0,0 +1,48 @@ +--- ./caretx.c.orig 2018-05-21 12:29:23.000000000 +0000 ++++ ./caretx.c 2018-09-28 14:05:46.785353073 +0000 +@@ -56,7 +56,8 @@ Perl_set_caret_X(pTHX) { + SV *const caret_x = GvSV(tmpgv); + #if defined(OS2) + sv_setpv(caret_x, os2_execname(aTHX)); +-#elif defined(USE_KERN_PROC_PATHNAME) ++#else ++# ifdef USE_KERN_PROC_PATHNAME + size_t size = 0; + int mib[4]; + mib[0] = CTL_KERN; +@@ -76,7 +77,7 @@ Perl_set_caret_X(pTHX) { + return; + } + } +-#elif defined(USE_NSGETEXECUTABLEPATH) ++# elif defined(USE_NSGETEXECUTABLEPATH) + char buf[1]; + uint32_t size = sizeof(buf); + +@@ -95,7 +96,7 @@ Perl_set_caret_X(pTHX) { + return; + } + } +-#elif defined(HAS_PROCSELFEXE) ++# elif defined(HAS_PROCSELFEXE) + char buf[MAXPATHLEN]; + SSize_t len = readlink(PROCSELFEXE_PATH, buf, sizeof(buf) - 1); + /* NOTE: if the length returned by readlink() is sizeof(buf) - 1, +@@ -125,7 +126,7 @@ Perl_set_caret_X(pTHX) { + sv_setpvn(caret_x, buf, len); + return; + } +-#elif defined(WIN32) ++# elif defined(WIN32) + char *ansi; + WCHAR widename[MAX_PATH]; + GetModuleFileNameW(NULL, widename, sizeof(widename)/sizeof(WCHAR)); +@@ -133,7 +134,7 @@ Perl_set_caret_X(pTHX) { + sv_setpv(caret_x, ansi); + win32_free(ansi); + return; +-#else ++# endif + /* Fallback to this: */ + sv_setpv(caret_x, PL_origargv[0]); + #endif diff --git a/perl.changes b/perl.changes index 4e04f6e..73707ec 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Sep 28 16:06:46 CEST 2018 - mls@suse.de + +- fix testing fatal errors in gdbm + new patch: perl-gdbm-test-no-mmap.diff +- fix perl no longer setting $^X if /proc is not mounted + new patch: perl-revert-caretx.diff + ------------------------------------------------------------------- Wed Sep 26 15:01:32 CEST 2018 - mls@suse.de diff --git a/perl.spec b/perl.spec index da6d875..74e0de4 100644 --- a/perl.spec +++ b/perl.spec @@ -45,6 +45,8 @@ Patch11: perl-5.18.2-overflow.diff Patch12: perl-reproducible.patch Patch13: perl_skip_flaky_tests_powerpc.patch Patch14: posix-sigaction.patch +Patch15: perl-gdbm-test-no-mmap.diff +Patch16: perl-revert-caretx.diff BuildRequires: db-devel BuildRequires: gdbm-devel BuildRequires: libbz2-devel @@ -177,6 +179,8 @@ cp -p %{SOURCE3} . %patch11 %patch12 -p1 %patch14 -p1 +%patch15 +%patch16 %build cp -a lib savelib From d8191ddcf63b65f70c83e16d00b6c96d33a9f2708c648aa72639f0337e9d5c0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Sat, 29 Sep 2018 07:46:19 +0000 Subject: [PATCH 08/10] ... OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=174 --- macros.perl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros.perl b/macros.perl index 7e8dd58..755eadc 100644 --- a/macros.perl +++ b/macros.perl @@ -94,7 +94,7 @@ for i in ${all_dir[@]}; do\ if [ "${i}" = "auto" ]; then\ continue\ fi\ - if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}" -o "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto"]; then\ + if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}" -o "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ continue\ else\ if [ -d ${base_dir}/${i} ]; then\ From 9a8ab274512258e63a3e76e6712df75dc2197f23839ec4120cfe1e0af200dd8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Tue, 2 Oct 2018 11:04:27 +0000 Subject: [PATCH 09/10] - simplify perl_gen_filelist macro OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=175 --- macros.perl | 14 ++++++-------- perl.changes | 5 +++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/macros.perl b/macros.perl index 755eadc..1e634c3 100644 --- a/macros.perl +++ b/macros.perl @@ -94,19 +94,17 @@ for i in ${all_dir[@]}; do\ if [ "${i}" = "auto" ]; then\ continue\ fi\ - if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}" -o "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ + if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ continue\ else\ if [ -d ${base_dir}/${i} ]; then\ - RES=`find "${base_dir}/${i}" -maxdepth 1 -type f`\ - if [ -n "$RES" ]; then\ - fgen_dir "%{perl_vendorlib}/${i}"\ - for file in $RES; do\ - fgen_file "%{perl_vendorlib}/${i}/$(basename ${file})"\ - done\ - else\ + if [ "%{perl_vendorlib}/${i}" != "%{perl_vendorarch}" ]; then\ fgen_dir "%{perl_vendorlib}/${i}"\ fi\ + RES=`find "${base_dir}/${i}" -maxdepth 1 -type f`\ + for file in $RES; do\ + fgen_file "%{perl_vendorlib}/${i}/$(basename ${file})"\ + done\ fi\ fi\ done\ diff --git a/perl.changes b/perl.changes index 73707ec..663fda7 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Oct 2 13:03:27 CEST 2018 - mls@suse.de + +- simplify perl_gen_filelist macro + ------------------------------------------------------------------- Fri Sep 28 16:06:46 CEST 2018 - mls@suse.de From b7d2a34d1026403301c6a6cb3084d25543376b539b406a97db0201579ab93f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Schr=C3=B6der?= Date: Fri, 30 Nov 2018 13:14:22 +0000 Subject: [PATCH 10/10] - update to perl-5.28.1 OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/perl?expand=0&rev=176 --- perl-5.28.0.tar.xz | 3 --- perl-5.28.1.tar.xz | 3 +++ perl.changes | 8 ++++++++ perl.spec | 6 +++--- 4 files changed, 14 insertions(+), 6 deletions(-) delete mode 100644 perl-5.28.0.tar.xz create mode 100644 perl-5.28.1.tar.xz diff --git a/perl-5.28.0.tar.xz b/perl-5.28.0.tar.xz deleted file mode 100644 index b5378f9..0000000 --- a/perl-5.28.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:059b3cb69970d8c8c5964caced0335b4af34ac990c8e61f7e3f90cd1c2d11e49 -size 12410536 diff --git a/perl-5.28.1.tar.xz b/perl-5.28.1.tar.xz new file mode 100644 index 0000000..10e8b6c --- /dev/null +++ b/perl-5.28.1.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fea7162d4cca940a387f0587b93f6737d884bf74d8a9d7cfd978bc12cd0b202d +size 12372080 diff --git a/perl.changes b/perl.changes index 663fda7..cf42dec 100644 --- a/perl.changes +++ b/perl.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Nov 30 14:12:53 CET 2018 - mls@suse.de + +- update to perl-5.28.1 + * [CVE-2018-18311] Integer overflow leading to buffer overflow + * [CVE-2018-18312] Heap-buffer-overflow write in S_regatom + * updated Module::CoreList module + ------------------------------------------------------------------- Tue Oct 2 13:03:27 CEST 2018 - mls@suse.de diff --git a/perl.spec b/perl.spec index 74e0de4..270f849 100644 --- a/perl.spec +++ b/perl.spec @@ -16,10 +16,10 @@ # -%define pversion 5.28.0 -%global versionlist %{nil} +%define pversion 5.28.1 +%global versionlist 5.28.0 Name: perl -Version: 5.28.0 +Version: 5.28.1 Release: 0 Summary: The Perl interpreter License: Artistic-1.0 OR GPL-2.0-or-later