Initialize for perl
This commit is contained in:
commit
8b8c882ce7
32 changed files with 3417 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
perl-5.26.1.tar.xz
|
1
.perl.metadata
Normal file
1
.perl.metadata
Normal file
|
@ -0,0 +1 @@
|
||||||
|
78e11866a22352648dce1b9d1e5ed0aa15a19af3b693c678eddc764b1e9e76ad perl-5.26.1.tar.xz
|
42
README.macros
Normal file
42
README.macros
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
README for perl-macros
|
||||||
|
|
||||||
|
Author: Christian Wittmer <chris@computersalat.de>
|
||||||
|
|
||||||
|
|
||||||
|
%perl_gen_filelist generates an rpmlint happy filelist of your installed files
|
||||||
|
|
||||||
|
In most cases you only need to check the %doc part
|
||||||
|
sometimes there is a "Changes" or "ChangeLog",....
|
||||||
|
|
||||||
|
Requirements for %perl_gen_filelist
|
||||||
|
You have to define following parts inside your spec file
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
BuildRequires: perl-macros
|
||||||
|
|
||||||
|
%install
|
||||||
|
%perl_make_install
|
||||||
|
%perl_process_packlist
|
||||||
|
%perl_gen_filelist
|
||||||
|
|
||||||
|
%files -f %{name}.files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%doc Changes README
|
||||||
|
|
||||||
|
|
||||||
|
And here an Example of the generated filelist:
|
||||||
|
|
||||||
|
%dir /usr/lib/perl5/vendor_perl/5.8.8/Algorithm
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/DiffOld.pm
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/diff.pl
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/Diff.pm
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/diffnew.pl
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/cdiff.pl
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/Algorithm/htmldiff.pl
|
||||||
|
%dir /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Algorithm
|
||||||
|
%dir /usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Algorithm/Diff
|
||||||
|
/usr/lib/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/Algorithm/Diff/.packlist
|
||||||
|
/usr/share/man/man?/*
|
||||||
|
/var/adm/perl-modules/perl-Algorithm-Diff
|
||||||
|
|
6
baselibs.conf
Normal file
6
baselibs.conf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
perl
|
||||||
|
+lib(64)?/perl5/.*-linux-thread-multi.*
|
||||||
|
perl-base
|
||||||
|
+lib(64)?/perl5/.*-linux-thread-multi.*
|
||||||
|
perl-core-DB_File
|
||||||
|
+lib(64)?/perl5/.*-linux-thread-multi.*
|
138
macros.perl
Normal file
138
macros.perl
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
# macros.perl file
|
||||||
|
# macros for perl module building. handle with care.
|
||||||
|
|
||||||
|
# Useful perl macros (from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
|
||||||
|
#
|
||||||
|
%perl_sitearch %(eval "`%{__perl} -V:installsitearch`"; echo $installsitearch)
|
||||||
|
%perl_sitelib %(eval "`%{__perl} -V:installsitelib`"; echo $installsitelib)
|
||||||
|
%perl_vendorarch %(eval "`%{__perl} -V:installvendorarch`"; echo $installvendorarch)
|
||||||
|
%perl_vendorlib %(eval "`%{__perl} -V:installvendorlib`"; echo $installvendorlib)
|
||||||
|
%perl_archlib %(eval "`%{__perl} -V:installarchlib`"; echo $installarchlib)
|
||||||
|
%perl_privlib %(eval "`%{__perl} -V:installprivlib`"; echo $installprivlib)
|
||||||
|
|
||||||
|
# More useful perl macros (from Raul Dias <rsd@swi.com.br>)
|
||||||
|
#
|
||||||
|
%perl_version %(perl -V:version | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_man1ext %(perl -V:man1ext | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_man3ext %(perl -V:man3ext | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_man1dir %(perl -V:man1dir | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_man3dir %(perl -V:man3dir | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_installman1dir %(perl -V:installman1dir | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_installman3dir %(perl -V:installman3dir | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_installarchlib %(perl -V:installarchlib | sed "s!.*='!!;s!'.*!!")
|
||||||
|
%perl_prefix %{buildroot}
|
||||||
|
|
||||||
|
# Macro to encapsulate perl requires (empty for fedora)
|
||||||
|
# we keep the complicated form even here to easy sync the other macros with
|
||||||
|
# perl-macros package
|
||||||
|
#
|
||||||
|
%perl_requires() \
|
||||||
|
%if 0%{?suse_version} > 0 \
|
||||||
|
Requires: perl(:MODULE_COMPAT_%{perl_version}) \
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%libperl_requires() \
|
||||||
|
%if 0%{?suse_version} > 0 \
|
||||||
|
Requires: perl = %{perl_version} \
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# suse specific macros
|
||||||
|
#
|
||||||
|
%perl_make_install make DESTDIR=$RPM_BUILD_ROOT install_vendor
|
||||||
|
%perl_process_packlist(n:) \
|
||||||
|
if test -n "$RPM_BUILD_ROOT" -a -d $RPM_BUILD_ROOT%perl_vendorarch/auto; then \
|
||||||
|
find $RPM_BUILD_ROOT%perl_vendorarch/auto -name .packlist -print0 | xargs -0 -r rm \
|
||||||
|
if [ %{_target_cpu} == noarch ]; then \
|
||||||
|
find $RPM_BUILD_ROOT%perl_vendorarch/auto -depth -type d -print0 | xargs -0 -r rmdir \
|
||||||
|
fi \
|
||||||
|
fi \
|
||||||
|
rm -f $RPM_BUILD_ROOT%{perl_archlib}/perllocal.pod \
|
||||||
|
%nil
|
||||||
|
|
||||||
|
# macro: perl_gen_filelist (from Christian <chris@computersalat.de>)
|
||||||
|
# do the rpmlint happy filelist generation
|
||||||
|
# with %dir in front of directories
|
||||||
|
#
|
||||||
|
%perl_gen_filelist(n)\
|
||||||
|
FILES=%{name}.files\
|
||||||
|
# fgen_dir func\
|
||||||
|
# IN: dir\
|
||||||
|
fgen_dir(){\
|
||||||
|
%{__cat} >> $FILES << EOF\
|
||||||
|
%dir ${1}\
|
||||||
|
EOF\
|
||||||
|
}\
|
||||||
|
# fgen_file func\
|
||||||
|
# IN: file\
|
||||||
|
fgen_file(){\
|
||||||
|
%{__cat} >> $FILES << EOF\
|
||||||
|
${1}\
|
||||||
|
EOF\
|
||||||
|
}\
|
||||||
|
# check for files in %{perl_vendorlib}\
|
||||||
|
RES=`find ${RPM_BUILD_ROOT}%{perl_vendorlib} -maxdepth 1 -type f`\
|
||||||
|
if [ -n "$RES" ]; then\
|
||||||
|
for file in $RES; do\
|
||||||
|
fgen_file "%{perl_vendorlib}/$(basename ${file})"\
|
||||||
|
done\
|
||||||
|
fi\
|
||||||
|
\
|
||||||
|
# get all dirs into array\
|
||||||
|
base_dir="${RPM_BUILD_ROOT}%{perl_vendorlib}/"\
|
||||||
|
for dir in `find ${base_dir} -type d | sort`; do\
|
||||||
|
if [ "$dir" = "${base_dir}" ]; then\
|
||||||
|
continue\
|
||||||
|
else\
|
||||||
|
el=`echo $dir | %{__awk} -F"${base_dir}" '{print $2}'`\
|
||||||
|
all_dir=(${all_dir[@]} $el)\
|
||||||
|
fi\
|
||||||
|
done\
|
||||||
|
\
|
||||||
|
# build filelist\
|
||||||
|
for i in ${all_dir[@]}; do\
|
||||||
|
# do not add "dir {perl_vendorlib/arch}/auto", included in perl package\
|
||||||
|
if [ "${i}" = "auto" ]; then\
|
||||||
|
continue\
|
||||||
|
fi\
|
||||||
|
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\
|
||||||
|
fgen_dir "%{perl_vendorlib}/${i}"\
|
||||||
|
fi\
|
||||||
|
fi\
|
||||||
|
fi\
|
||||||
|
done\
|
||||||
|
# add man pages\
|
||||||
|
# if exist :)\
|
||||||
|
if [ -d "${RPM_BUILD_ROOT}%{_mandir}" ]; then\
|
||||||
|
for file in `cd "${RPM_BUILD_ROOT}%{_mandir}" && find . -type f -name "*3pm*"`; do \
|
||||||
|
if test -e "%{_mandir}/$file" -o -e "%{_mandir}/$file.gz"; then \
|
||||||
|
mv ${RPM_BUILD_ROOT}%{_mandir}/$file ${RPM_BUILD_ROOT}%{_mandir}/${file/3pm/3pmc} \
|
||||||
|
fi \
|
||||||
|
done \
|
||||||
|
fgen_file "%{_mandir}/man?/*"\
|
||||||
|
fi\
|
||||||
|
\
|
||||||
|
# add packlist file\
|
||||||
|
# generated fom perllocal.pod\
|
||||||
|
if [ -f "${RPM_BUILD_ROOT}/var/adm/perl-modules/%{name}" ]; then\
|
||||||
|
fgen_file "/var/adm/perl-modules/%{name}"\
|
||||||
|
fi\
|
||||||
|
\
|
||||||
|
# check for files in %{_bindir}\
|
||||||
|
if [ -d ${RPM_BUILD_ROOT}%{_bindir} ]; then\
|
||||||
|
RES=`find "${RPM_BUILD_ROOT}%{_bindir}" -maxdepth 1 -type f`\
|
||||||
|
if [ -n "$RES" ]; then\
|
||||||
|
for file in $RES; do\
|
||||||
|
fgen_file "%{_bindir}/$(basename ${file})"\
|
||||||
|
done\
|
||||||
|
fi\
|
||||||
|
fi
|
13
perl-5.18.2-overflow.diff
Normal file
13
perl-5.18.2-overflow.diff
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: sv.c
|
||||||
|
===================================================================
|
||||||
|
--- sv.c.orig
|
||||||
|
+++ sv.c
|
||||||
|
@@ -2153,7 +2153,7 @@ S_sv_2iuv_common(pTHX_ SV *const sv)
|
||||||
|
#ifndef NV_PRESERVES_UV
|
||||||
|
&& SvIVX(sv) != IV_MIN /* avoid negating IV_MIN below */
|
||||||
|
&& (((UV)1 << NV_PRESERVES_UV_BITS) >
|
||||||
|
- (UV)(SvIVX(sv) > 0 ? SvIVX(sv) : -SvIVX(sv)))
|
||||||
|
+ (UV)(SvIVX(sv) > 0 ? (UV)SvIVX(sv) : -(UV)SvIVX(sv)))
|
||||||
|
/* Don't flag it as "accurately an integer" if the number
|
||||||
|
came from a (by definition imprecise) NV operation, and
|
||||||
|
we're outside the range of NV integer precision */
|
24
perl-5.22.0_wrong_rpm_provides.diff
Normal file
24
perl-5.22.0_wrong_rpm_provides.diff
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
--- ./cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./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';
|
||||||
|
|
||||||
|
-package Math::BigInt;
|
||||||
|
+package Math::BigInt # line break to prevent wrong rpm provides
|
||||||
|
+;
|
||||||
|
|
||||||
|
# See SYNOPSIS below.
|
||||||
|
|
||||||
|
--- ./lib/sigtrap.pm.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./lib/sigtrap.pm 2017-08-30 12:16:04.561183753 +0000
|
||||||
|
@@ -80,7 +80,8 @@ sub handler_die {
|
||||||
|
}
|
||||||
|
|
||||||
|
sub handler_traceback {
|
||||||
|
- package DB; # To get subroutine args.
|
||||||
|
+ package DB # line break to prevent wrong rpm provides
|
||||||
|
+ ; # To get subroutine args.
|
||||||
|
$SIG{'ABRT'} = DEFAULT;
|
||||||
|
kill 'ABRT', $$ if $panic++;
|
||||||
|
syswrite(STDERR, 'Caught a SIG', 12);
|
511
perl-5.26.0.dif
Normal file
511
perl-5.26.0.dif
Normal file
|
@ -0,0 +1,511 @@
|
||||||
|
--- ./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
|
||||||
|
paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
|
||||||
|
paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
|
||||||
|
paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
|
||||||
|
-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
|
||||||
|
+paths="$paths /etc /usr/lib /usr/lib64 /usr/ucblib /lib /usr/ccs/lib"
|
||||||
|
paths="$paths /sbin /usr/sbin /usr/libexec"
|
||||||
|
paths="$paths /system/gnu_library/bin"
|
||||||
|
|
||||||
|
@@ -1464,7 +1464,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
|
||||||
|
-glibpth="/lib /usr/lib $xlibpth"
|
||||||
|
+glibpth="/lib /usr/lib /lib64 /usr/lib64 $xlibpth"
|
||||||
|
glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
|
||||||
|
test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
|
||||||
|
test -f /shlib/libc.so && glibpth="/shlib $glibpth"
|
||||||
|
@@ -2559,7 +2559,7 @@ uname
|
||||||
|
zip
|
||||||
|
"
|
||||||
|
pth=`echo $PATH | sed -e "s/$p_/ /g"`
|
||||||
|
-pth="$pth $sysroot/lib $sysroot/usr/lib"
|
||||||
|
+pth="$pth $sysroot/lib $sysroot/usr/lib $sysroot/lib64 $sysroot/usr/lib64"
|
||||||
|
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[])
|
||||||
|
}
|
||||||
|
EOCP
|
||||||
|
set try
|
||||||
|
+ # this is really stupid, but we have to link in the -ldb to have
|
||||||
|
+ # the above program succeed
|
||||||
|
+ _old_libs="$libs"
|
||||||
|
+ libs="$libs -ldb"
|
||||||
|
if eval $compile_ok && $run ./try; then
|
||||||
|
echo 'Looks OK.' >&4
|
||||||
|
+ libs="$_old_libs"
|
||||||
|
set `$run ./try 1`
|
||||||
|
db_version_major=$1
|
||||||
|
db_version_minor=$2
|
||||||
|
db_version_patch=$3
|
||||||
|
else
|
||||||
|
echo "I can't use Berkeley DB with your <db.h>. I'll disable Berkeley DB." >&4
|
||||||
|
+ libs="$_old_libs"
|
||||||
|
i_db=$undef
|
||||||
|
case " $libs " in
|
||||||
|
*"-ldb "*)
|
||||||
|
@@ -20564,7 +20570,7 @@ int main()
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
EOCP
|
||||||
|
- if $cc $ccflags -c try.c >try.out 2>&1 ; then
|
||||||
|
+ if $cc $ccflags -c try.c -ldb >try.out 2>&1 ; then
|
||||||
|
if $contains warning try.out >>/dev/null 2>&1 ; then
|
||||||
|
db_hashtype='int'
|
||||||
|
else
|
||||||
|
@@ -20607,7 +20613,7 @@ int main()
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
EOCP
|
||||||
|
- if $cc $ccflags -c try.c >try.out 2>&1 ; then
|
||||||
|
+ if $cc $ccflags -c try.c -ldb >try.out 2>&1 ; then
|
||||||
|
if $contains warning try.out >>/dev/null 2>&1 ; then
|
||||||
|
db_prefixtype='int'
|
||||||
|
else
|
||||||
|
@@ -25304,7 +25310,7 @@ passcat='$passcat'
|
||||||
|
patchlevel='$patchlevel'
|
||||||
|
path_sep='$path_sep'
|
||||||
|
perl5='$perl5'
|
||||||
|
-perl='$perl'
|
||||||
|
+perl='perl'
|
||||||
|
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
|
||||||
|
+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
|
||||||
|
+#
|
||||||
|
--- ./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 @@
|
||||||
|
+#!/usr/bin/perl
|
||||||
|
+# Copyright (c) 1998 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
|
||||||
|
+#
|
||||||
|
+# Author: Ruediger Oertel <ro@suse.de>, 1998
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
+use Config;
|
||||||
|
+
|
||||||
|
+sub ReadFile {
|
||||||
|
+ local (*IF,*modules) = @_;
|
||||||
|
+
|
||||||
|
+ while(<IF>) {
|
||||||
|
+ chomp ($_);
|
||||||
|
+ next if (/^$/);
|
||||||
|
+ if (/^=head2.*$/) {
|
||||||
|
+ ($front,$rear) = split (': ',$_);
|
||||||
|
+ $front =~ s/^=head2\s*//;
|
||||||
|
+ $modules{$rear} = "$front";
|
||||||
|
+ } elsif (/^=over [0-9]*$/) {
|
||||||
|
+ ($dummy,$num) = split ('\s',$_);
|
||||||
|
+ $curnum = 0;
|
||||||
|
+ } elsif (/^C<.*:.*>$/) {
|
||||||
|
+ $entry = $_;
|
||||||
|
+ $curnum++;
|
||||||
|
+ $modules{$rear} .= "\0$entry";
|
||||||
|
+ } elsif (/^=back$/) {
|
||||||
|
+ ;
|
||||||
|
+ } elsif (/^=item \*$/) {
|
||||||
|
+ ;
|
||||||
|
+ } else {
|
||||||
|
+ print "SuSEconfig.perl: parsing perllocal:\n";
|
||||||
|
+ print "ignoring line: $_\n";
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ return %modules;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+local (%allmodules);
|
||||||
|
+
|
||||||
|
+if (open (IF, "<$Config{'installarchlib'}/perllocal.pod")) {
|
||||||
|
+ %allmodules = ReadFile(*IF,*allmodules);
|
||||||
|
+}
|
||||||
|
+close (IF);
|
||||||
|
+
|
||||||
|
+opendir (DIR, "/var/adm/perl-modules");
|
||||||
|
+while ($dirent = readdir(DIR)) {
|
||||||
|
+ next if ($dirent =~ /^\./);
|
||||||
|
+ open (IF , "/var/adm/perl-modules/$dirent");
|
||||||
|
+ %allmodules = ReadFile(*IF,*allmodules);
|
||||||
|
+ close (IF);
|
||||||
|
+}
|
||||||
|
+closedir (DIR);
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+if (open (OF, ">$Config{'installarchlib'}/perllocal.pod")) {
|
||||||
|
+ foreach $key (keys(%allmodules)) {
|
||||||
|
+ $name = $key;
|
||||||
|
+ $name =~ s/^.*L\<//;
|
||||||
|
+ $name =~ s/.*\|//;
|
||||||
|
+ $name =~ s/>$//;
|
||||||
|
+ $name =~ s/::/\//;
|
||||||
|
+ @entries = split ('\0',$allmodules{$key});
|
||||||
|
+ $ipath = $entries[1];
|
||||||
|
+ $ipath =~ s/^.*\:\s//;
|
||||||
|
+ $ipath =~ s/>$//;
|
||||||
|
+
|
||||||
|
+ # test if the module is really there, else skip
|
||||||
|
+ if ( -d "$ipath/$Config{'archname'}/auto/$name" ||
|
||||||
|
+ -d "$Config{'installarchlib'}/auto/$name" ) {
|
||||||
|
+ $num = $#entries;
|
||||||
|
+ print OF "=head2 ",shift(@entries),": $key\n\n";
|
||||||
|
+ print OF "=over $num\n\n";
|
||||||
|
+ while ($_ = shift(@entries)) {
|
||||||
|
+ print OF "=item *\n\n";
|
||||||
|
+ print OF "$_\n\n";
|
||||||
|
+ }
|
||||||
|
+ print OF "=back\n\n";
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ close (OF);
|
||||||
|
+} else {
|
||||||
|
+ print "SuSEconfig.perl: Can't write to file $Config{'installarchlib'}/perllocal.pod !\n\n";
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
--- ./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
|
||||||
|
@@ -0,0 +1,8 @@
|
||||||
|
+## Path: System/SuSEconfig
|
||||||
|
+## Type: yesno
|
||||||
|
+## Default: yes
|
||||||
|
+## Config: perl
|
||||||
|
+#
|
||||||
|
+# 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 {
|
||||||
|
$headers{'Cc'} = $cc if ($cc);
|
||||||
|
$headers{'Message-Id'} = $messageid if ($messageid);
|
||||||
|
$headers{'Reply-To'} = $from if ($from);
|
||||||
|
+ $headers{'X-Webfrontend'} = 'perlbug';
|
||||||
|
$headers{'From'} = $from if ($from);
|
||||||
|
if ($have_attachment) {
|
||||||
|
$headers{'MIME-Version'} = '1.0';
|
44
perl-HiRes.t-timeout.diff
Normal file
44
perl-HiRes.t-timeout.diff
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
--- ./dist/Time-HiRes/t/alarm.t.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./dist/Time-HiRes/t/alarm.t 2017-08-30 12:15:18.729183834 +0000
|
||||||
|
@@ -8,7 +8,7 @@ BEGIN { require_ok "Time::HiRes"; }
|
||||||
|
|
||||||
|
use Config;
|
||||||
|
|
||||||
|
-my $limit = 0.25; # 25% is acceptable slosh for testing timers
|
||||||
|
+my $limit = 0.60; # 25% is acceptable slosh for testing timers
|
||||||
|
|
||||||
|
my $xdefine = '';
|
||||||
|
if (open(XDEFINE, "<", "xdefine")) {
|
||||||
|
--- ./dist/Time-HiRes/t/clock.t.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./dist/Time-HiRes/t/clock.t 2017-08-30 12:15:18.729183834 +0000
|
||||||
|
@@ -29,7 +29,7 @@ printf("# have_clock = %d\n",
|
||||||
|
# completes fine with (say) 30% slosh, and fail otherwise. If you do that,
|
||||||
|
# consider changing over to test.pl at the same time.
|
||||||
|
# --A.D., Nov 27, 2001
|
||||||
|
-my $limit = 0.25; # 25% is acceptable slosh for testing timers
|
||||||
|
+my $limit = 0.60; # 25% is acceptable slosh for testing timers
|
||||||
|
|
||||||
|
SKIP: {
|
||||||
|
skip "no clock_gettime", 1
|
||||||
|
--- ./dist/Time-HiRes/t/itimer.t.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./dist/Time-HiRes/t/itimer.t 2017-08-30 12:15:18.729183834 +0000
|
||||||
|
@@ -29,7 +29,7 @@ use Test::More tests => 2;
|
||||||
|
BEGIN { push @INC, '.' }
|
||||||
|
use t::Watchdog;
|
||||||
|
|
||||||
|
-my $limit = 0.25; # 25% is acceptable slosh for testing timers
|
||||||
|
+my $limit = 0.60; # 25% is acceptable slosh for testing timers
|
||||||
|
|
||||||
|
my $i = 3;
|
||||||
|
my $r = [Time::HiRes::gettimeofday()];
|
||||||
|
--- ./dist/Time-HiRes/t/usleep.t.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./dist/Time-HiRes/t/usleep.t 2017-08-30 12:15:18.730183834 +0000
|
||||||
|
@@ -16,7 +16,7 @@ eval { Time::HiRes::usleep(-2) };
|
||||||
|
like $@, qr/::usleep\(-2\): negative time not invented yet/,
|
||||||
|
"negative time error";
|
||||||
|
|
||||||
|
-my $limit = 0.25; # 25% is acceptable slosh for testing timers
|
||||||
|
+my $limit = 0.60; # 25% is acceptable slosh for testing timers
|
||||||
|
|
||||||
|
my $one = CORE::time;
|
||||||
|
Time::HiRes::usleep(10_000);
|
56
perl-Stabilize-Socket-VERSION-comparisons.patch
Normal file
56
perl-Stabilize-Socket-VERSION-comparisons.patch
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
From 11be1db5e0fa09188bb049cabd6568eb8bf56bbe Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ali Abdallah <aabdallah@suse.de>
|
||||||
|
Date: Tue, 7 Dec 2021 18:12:22 +0100
|
||||||
|
Subject: [PATCH] Stabilize Socket::VERSION comparisons
|
||||||
|
|
||||||
|
This commit backports the following two upstream commits
|
||||||
|
|
||||||
|
80388908f57e7b64b2e72c9d0973aa796626d7c5: Stabilize Socket::VERSION
|
||||||
|
comparisons
|
||||||
|
52f5670577550d05bb914beaca6a81069f88bc3c: Fix Socket::VERSION evaluation
|
||||||
|
---
|
||||||
|
dist/Net-Ping/lib/Net/Ping.pm | 7 ++++---
|
||||||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dist/Net-Ping/lib/Net/Ping.pm b/dist/Net-Ping/lib/Net/Ping.pm
|
||||||
|
index 13cbe81..cb3d860 100644
|
||||||
|
--- a/dist/Net-Ping/lib/Net/Ping.pm
|
||||||
|
+++ b/dist/Net-Ping/lib/Net/Ping.pm
|
||||||
|
@@ -45,6 +45,7 @@ my $IPPROTO_IPV6 = eval { Socket::IPPROTO_IPV6() };
|
||||||
|
#my $IPV6_HOPLIMIT = eval { Socket::IPV6_HOPLIMIT() }; # ping6 -h 0-255
|
||||||
|
my $qr_family = qr/^(?:(?:(:?ip)?v?(?:4|6))|${\AF_INET}|$AF_INET6)$/;
|
||||||
|
my $qr_family4 = qr/^(?:(?:(:?ip)?v?4)|${\AF_INET})$/;
|
||||||
|
+my $Socket_VERSION = eval $Socket::VERSION;
|
||||||
|
|
||||||
|
if ($^O =~ /Win32/i) {
|
||||||
|
# Hack to avoid this Win32 spewage:
|
||||||
|
@@ -1798,7 +1799,7 @@ sub _resolv {
|
||||||
|
|
||||||
|
# address check
|
||||||
|
# new way
|
||||||
|
- if ($Socket::VERSION >= 1.94) {
|
||||||
|
+ if ($Socket_VERSION > 1.94) {
|
||||||
|
my %hints = (
|
||||||
|
family => $AF_UNSPEC,
|
||||||
|
protocol => IPPROTO_TCP,
|
||||||
|
@@ -1831,7 +1832,7 @@ sub _resolv {
|
||||||
|
|
||||||
|
# resolve
|
||||||
|
# new way
|
||||||
|
- if ($Socket::VERSION >= 1.94) {
|
||||||
|
+ if ($Socket_VERSION >= 1.94) {
|
||||||
|
my %hints = (
|
||||||
|
family => $family,
|
||||||
|
protocol => IPPROTO_TCP
|
||||||
|
@@ -1908,7 +1909,7 @@ sub _inet_ntoa {
|
||||||
|
) = @_;
|
||||||
|
|
||||||
|
my $ret;
|
||||||
|
- if ($Socket::VERSION >= 1.94) {
|
||||||
|
+ if ($Socket_VERSION >= 1.94) {
|
||||||
|
my ($err, $address) = Socket::getnameinfo($addr, $NI_NUMERICHOST);
|
||||||
|
if (defined($address)) {
|
||||||
|
$ret = $address;
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
27
perl-archive-tar-dirtrav.diff
Normal file
27
perl-archive-tar-dirtrav.diff
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
--- ./cpan/Archive-Tar/lib/Archive/Tar.pm.orig 2018-06-27 14:13:08.131148055 +0000
|
||||||
|
+++ ./cpan/Archive-Tar/lib/Archive/Tar.pm 2018-06-27 14:14:50.562873606 +0000
|
||||||
|
@@ -842,9 +842,23 @@ sub _extract_file {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ ### If a file system already contains a block device with the same name as
|
||||||
|
+ ### the being extracted regular file, we would write the file's content
|
||||||
|
+ ### to the block device. So remove the existing file (block device) now.
|
||||||
|
+ ### If an archive contains multiple same-named entries, the last one
|
||||||
|
+ ### should replace the previous ones. So remove the old file now.
|
||||||
|
+ ### If the old entry is a symlink to a file outside of the CWD, the new
|
||||||
|
+ ### entry would create a file there. This is CVE-2018-12015
|
||||||
|
+ ### <https://rt.cpan.org/Ticket/Display.html?id=125523>.
|
||||||
|
+ if (-l $full || -e _) {
|
||||||
|
+ if (!unlink $full) {
|
||||||
|
+ $self->_error( qq[Could not remove old file '$full': $!] );
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
if( length $entry->type && $entry->is_file ) {
|
||||||
|
my $fh = IO::File->new;
|
||||||
|
- $fh->open( '>' . $full ) or (
|
||||||
|
+ $fh->open( $full, '>' ) or (
|
||||||
|
$self->_error( qq[Could not open file '$full': $!] ),
|
||||||
|
return
|
||||||
|
);
|
10
perl-cpan_verify_cert.diff
Normal file
10
perl-cpan_verify_cert.diff
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--- cpan/CPAN/lib/CPAN/HTTP/Client.pm.orig 2023-07-05 12:31:35.911871898 +0000
|
||||||
|
+++ cpan/CPAN/lib/CPAN/HTTP/Client.pm 2023-07-05 12:32:00.863830857 +0000
|
||||||
|
@@ -32,6 +32,7 @@ sub mirror {
|
||||||
|
|
||||||
|
my $want_proxy = $self->_want_proxy($uri);
|
||||||
|
my $http = HTTP::Tiny->new(
|
||||||
|
+ verify_SSL => 1,
|
||||||
|
$want_proxy ? (proxy => $self->{proxy}) : ()
|
||||||
|
);
|
||||||
|
|
234
perl-extended-charclass-assert.diff
Normal file
234
perl-extended-charclass-assert.diff
Normal file
|
@ -0,0 +1,234 @@
|
||||||
|
--- ./pod/perldiag.pod.orig 2017-07-18 23:00:00.000000000 +0000
|
||||||
|
+++ ./pod/perldiag.pod 2018-11-21 13:46:06.998215887 +0000
|
||||||
|
@@ -5904,7 +5904,7 @@ yourself.
|
||||||
|
a perl4 interpreter, especially if the next 2 tokens are "use strict"
|
||||||
|
or "my $var" or "our $var".
|
||||||
|
|
||||||
|
-=item Syntax error in (?[...]) in regex m/%s/
|
||||||
|
+=item Syntax error in (?[...]) in regex; marked by <-- HERE in m/%s/
|
||||||
|
|
||||||
|
(F) Perl could not figure out what you meant inside this construct; this
|
||||||
|
notifies you that it is giving up trying.
|
||||||
|
@@ -6402,6 +6402,31 @@ to find out why that isn't happening.
|
||||||
|
(F) The unexec() routine failed for some reason. See your local FSF
|
||||||
|
representative, who probably put it there in the first place.
|
||||||
|
|
||||||
|
+=item Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/%s/
|
||||||
|
+
|
||||||
|
+(F) While parsing an extended character class a ']' character was encountered
|
||||||
|
+at a point in the definition where the only legal use of ']' is to close the
|
||||||
|
+character class definition as part of a '])', you may have forgotten the close
|
||||||
|
+paren, or otherwise confused the parser.
|
||||||
|
+
|
||||||
|
+=item Expecting close paren for nested extended charclass in regex; marked by <-- HERE in m/%s/
|
||||||
|
+
|
||||||
|
+(F) While parsing a nested extended character class like:
|
||||||
|
+
|
||||||
|
+ (?[ ... (?flags:(?[ ... ])) ... ])
|
||||||
|
+ ^
|
||||||
|
+
|
||||||
|
+we expected to see a close paren ')' (marked by ^) but did not.
|
||||||
|
+
|
||||||
|
+=item Expecting close paren for wrapper for nested extended charclass in regex; marked by <-- HERE in m/%s/
|
||||||
|
+
|
||||||
|
+(F) While parsing a nested extended character class like:
|
||||||
|
+
|
||||||
|
+ (?[ ... (?flags:(?[ ... ])) ... ])
|
||||||
|
+ ^
|
||||||
|
+
|
||||||
|
+we expected to see a close paren ')' (marked by ^) but did not.
|
||||||
|
+
|
||||||
|
=item Unexpected binary operator '%c' with no preceding operand in regex;
|
||||||
|
marked by S<<-- HERE> in m/%s/
|
||||||
|
|
||||||
|
--- ./pod/perlrecharclass.pod.orig 2017-07-18 22:50:12.000000000 +0000
|
||||||
|
+++ ./pod/perlrecharclass.pod 2018-11-21 13:46:06.998215887 +0000
|
||||||
|
@@ -1128,8 +1128,8 @@ hence both of the following work:
|
||||||
|
Any contained POSIX character classes, including things like C<\w> and C<\D>
|
||||||
|
respect the C<E<sol>a> (and C<E<sol>aa>) modifiers.
|
||||||
|
|
||||||
|
-C<< (?[ ]) >> is a regex-compile-time construct. Any attempt to use
|
||||||
|
-something which isn't knowable at the time the containing regular
|
||||||
|
+Note that C<< (?[ ]) >> is a regex-compile-time construct. Any attempt
|
||||||
|
+to use something which isn't knowable at the time the containing regular
|
||||||
|
expression is compiled is a fatal error. In practice, this means
|
||||||
|
just three limitations:
|
||||||
|
|
||||||
|
--- ./regcomp.c.orig 2018-11-21 13:45:49.814256819 +0000
|
||||||
|
+++ ./regcomp.c 2018-11-21 13:46:07.002215878 +0000
|
||||||
|
@@ -14820,8 +14820,9 @@ S_handle_regex_sets(pTHX_ RExC_state_t *
|
||||||
|
TRUE /* Force /x */ );
|
||||||
|
|
||||||
|
switch (*RExC_parse) {
|
||||||
|
- case '?':
|
||||||
|
- if (RExC_parse[1] == '[') depth++, RExC_parse++;
|
||||||
|
+ case '(':
|
||||||
|
+ if (RExC_parse[1] == '?' && RExC_parse[2] == '[')
|
||||||
|
+ depth++, RExC_parse+=2;
|
||||||
|
/* FALLTHROUGH */
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
@@ -14878,9 +14879,9 @@ S_handle_regex_sets(pTHX_ RExC_state_t *
|
||||||
|
}
|
||||||
|
|
||||||
|
case ']':
|
||||||
|
- if (depth--) break;
|
||||||
|
- RExC_parse++;
|
||||||
|
- if (*RExC_parse == ')') {
|
||||||
|
+ if (RExC_parse[1] == ')') {
|
||||||
|
+ RExC_parse++;
|
||||||
|
+ if (depth--) break;
|
||||||
|
node = reganode(pRExC_state, ANYOF, 0);
|
||||||
|
RExC_size += ANYOF_SKIP;
|
||||||
|
nextchar(pRExC_state);
|
||||||
|
@@ -14892,20 +14893,25 @@ S_handle_regex_sets(pTHX_ RExC_state_t *
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
- goto no_close;
|
||||||
|
+ /* We output the messages even if warnings are off, because we'll fail
|
||||||
|
+ * the very next thing, and these give a likely diagnosis for that */
|
||||||
|
+ if (posix_warnings && av_tindex_skip_len_mg(posix_warnings) >= 0) {
|
||||||
|
+ output_or_return_posix_warnings(pRExC_state, posix_warnings, NULL);
|
||||||
|
+ }
|
||||||
|
+ RExC_parse++;
|
||||||
|
+ vFAIL("Unexpected ']' with no following ')' in (?[...");
|
||||||
|
}
|
||||||
|
|
||||||
|
RExC_parse += UTF ? UTF8SKIP(RExC_parse) : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- no_close:
|
||||||
|
/* We output the messages even if warnings are off, because we'll fail
|
||||||
|
* the very next thing, and these give a likely diagnosis for that */
|
||||||
|
if (posix_warnings && av_tindex_skip_len_mg(posix_warnings) >= 0) {
|
||||||
|
output_or_return_posix_warnings(pRExC_state, posix_warnings, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
- FAIL("Syntax error in (?[...])");
|
||||||
|
+ vFAIL("Syntax error in (?[...])");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pass 2 only after this. */
|
||||||
|
@@ -15085,12 +15091,14 @@ redo_curchar:
|
||||||
|
* inversion list, and RExC_parse points to the trailing
|
||||||
|
* ']'; the next character should be the ')' */
|
||||||
|
RExC_parse++;
|
||||||
|
- assert(UCHARAT(RExC_parse) == ')');
|
||||||
|
+ if (UCHARAT(RExC_parse) != ')')
|
||||||
|
+ vFAIL("Expecting close paren for nested extended charclass");
|
||||||
|
|
||||||
|
/* Then the ')' matching the original '(' handled by this
|
||||||
|
* case: statement */
|
||||||
|
RExC_parse++;
|
||||||
|
- assert(UCHARAT(RExC_parse) == ')');
|
||||||
|
+ if (UCHARAT(RExC_parse) != ')')
|
||||||
|
+ vFAIL("Expecting close paren for wrapper for nested extended charclass");
|
||||||
|
|
||||||
|
RExC_parse++;
|
||||||
|
RExC_flags = save_flags;
|
||||||
|
--- ./t/lib/warnings/regcomp.orig 2017-07-18 23:00:00.000000000 +0000
|
||||||
|
+++ ./t/lib/warnings/regcomp 2018-11-21 13:46:07.002215878 +0000
|
||||||
|
@@ -59,21 +59,21 @@ Unmatched [ in regex; marked by <-- HERE
|
||||||
|
qr/(?[[[:word]]])/;
|
||||||
|
EXPECT
|
||||||
|
Assuming NOT a POSIX class since there is no terminating ':' in regex; marked by <-- HERE in m/(?[[[:word <-- HERE ]]])/ at - line 2.
|
||||||
|
-syntax error in (?[...]) in regex m/(?[[[:word]]])/ at - line 2.
|
||||||
|
+Unexpected ']' with no following ')' in (?[... in regex; marked by <-- HERE in m/(?[[[:word]] <-- HERE ])/ at - line 2.
|
||||||
|
########
|
||||||
|
# NAME qr/(?[ [[:digit: ])/
|
||||||
|
# OPTION fatal
|
||||||
|
qr/(?[[[:digit: ])/;
|
||||||
|
EXPECT
|
||||||
|
Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[[:digit: ] <-- HERE )/ at - line 2.
|
||||||
|
-syntax error in (?[...]) in regex m/(?[[[:digit: ])/ at - line 2.
|
||||||
|
+syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[[:digit: ]) <-- HERE / at - line 2.
|
||||||
|
########
|
||||||
|
# NAME qr/(?[ [:digit: ])/
|
||||||
|
# OPTION fatal
|
||||||
|
qr/(?[[:digit: ])/
|
||||||
|
EXPECT
|
||||||
|
Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/(?[[:digit: ] <-- HERE )/ at - line 2.
|
||||||
|
-syntax error in (?[...]) in regex m/(?[[:digit: ])/ at - line 2.
|
||||||
|
+syntax error in (?[...]) in regex; marked by <-- HERE in m/(?[[:digit: ]) <-- HERE / at - line 2.
|
||||||
|
########
|
||||||
|
# NAME [perl #126141]
|
||||||
|
# OPTION fatal
|
||||||
|
--- ./t/re/reg_mesg.t.orig 2017-09-07 19:27:40.000000000 +0000
|
||||||
|
+++ ./t/re/reg_mesg.t 2018-11-21 13:46:07.002215878 +0000
|
||||||
|
@@ -213,8 +213,9 @@ my @death =
|
||||||
|
'/\b{gc}/' => "'gc' is an unknown bound type {#} m/\\b{gc{#}}/",
|
||||||
|
'/\B{gc}/' => "'gc' is an unknown bound type {#} m/\\B{gc{#}}/",
|
||||||
|
|
||||||
|
- '/(?[[[::]]])/' => "Syntax error in (?[...]) in regex m/(?[[[::]]])/",
|
||||||
|
- '/(?[[[:w:]]])/' => "Syntax error in (?[...]) in regex m/(?[[[:w:]]])/",
|
||||||
|
+
|
||||||
|
+ '/(?[[[::]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[::]]{#}])/",
|
||||||
|
+ '/(?[[[:w:]]])/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[[[:w:]]{#}])/",
|
||||||
|
'/(?[[:w:]])/' => "",
|
||||||
|
'/([.].*)[.]/' => "", # [perl #127582]
|
||||||
|
'/[.].*[.]/' => "", # [perl #127604]
|
||||||
|
@@ -237,11 +238,12 @@ my @death =
|
||||||
|
'/(?[ \p{foo} ])/' => 'Can\'t find Unicode property definition "foo" {#} m/(?[ \p{foo}{#} ])/',
|
||||||
|
'/(?[ \p{ foo = bar } ])/' => 'Can\'t find Unicode property definition "foo = bar" {#} m/(?[ \p{ foo = bar }{#} ])/',
|
||||||
|
'/(?[ \8 ])/' => 'Unrecognized escape \8 in character class {#} m/(?[ \8{#} ])/',
|
||||||
|
- '/(?[ \t ]/' => 'Syntax error in (?[...]) in regex m/(?[ \t ]/',
|
||||||
|
- '/(?[ [ \t ]/' => 'Syntax error in (?[...]) in regex m/(?[ [ \t ]/',
|
||||||
|
- '/(?[ \t ] ]/' => 'Syntax error in (?[...]) in regex m/(?[ \t ] ]/',
|
||||||
|
- '/(?[ [ ] ]/' => 'Syntax error in (?[...]) in regex m/(?[ [ ] ]/',
|
||||||
|
- '/(?[ \t + \e # This was supposed to be a comment ])/' => 'Syntax error in (?[...]) in regex m/(?[ \t + \e # This was supposed to be a comment ])/',
|
||||||
|
+ '/(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#}/",
|
||||||
|
+ '/(?[ [ \t ]/' => "Syntax error in (?[...]) {#} m/(?[ [ \\t ]{#}/",
|
||||||
|
+ '/(?[ \t ] ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/(?[ \\t ]{#} ]/",
|
||||||
|
+ '/(?[ [ ] ]/' => "Syntax error in (?[...]) {#} m/(?[ [ ] ]{#}/",
|
||||||
|
+ '/(?[ \t + \e # This was supposed to be a comment ])/' =>
|
||||||
|
+ "Syntax error in (?[...]) {#} m/(?[ \\t + \\e # This was supposed to be a comment ]){#}/",
|
||||||
|
'/(?[ ])/' => 'Incomplete expression within \'(?[ ])\' {#} m/(?[ {#}])/',
|
||||||
|
'm/(?[[a-\d]])/' => 'False [] range "a-\d" {#} m/(?[[a-\d{#}]])/',
|
||||||
|
'm/(?[[\w-x]])/' => 'False [] range "\w-" {#} m/(?[[\w-{#}x]])/',
|
||||||
|
@@ -427,10 +429,10 @@ my @death_utf8 = mark_as_utf8(
|
||||||
|
|
||||||
|
'/ネ\p{}ネ/' => 'Empty \p{} {#} m/ネ\p{{#}}ネ/',
|
||||||
|
|
||||||
|
- '/ネ(?[[[:ネ]]])ネ/' => "Syntax error in (?[...]) in regex m/ネ(?[[[:ネ]]])ネ/",
|
||||||
|
- '/ネ(?[[[:ネ: ])ネ/' => "Syntax error in (?[...]) in regex m/ネ(?[[[:ネ: ])ネ/",
|
||||||
|
- '/ネ(?[[[::]]])ネ/' => "Syntax error in (?[...]) in regex m/ネ(?[[[::]]])ネ/",
|
||||||
|
- '/ネ(?[[[:ネ:]]])ネ/' => "Syntax error in (?[...]) in regex m/ネ(?[[[:ネ:]]])ネ/",
|
||||||
|
+ '/ネ(?[[[:ネ]]])ネ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ネ(?[[[:ネ]]{#}])ネ/",
|
||||||
|
+ '/ネ(?[[[:ネ: ])ネ/' => "Syntax error in (?[...]) {#} m/ネ(?[[[:ネ: ])ネ{#}/",
|
||||||
|
+ '/ネ(?[[[::]]])ネ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ネ(?[[[::]]{#}])ネ/",
|
||||||
|
+ '/ネ(?[[[:ネ:]]])ネ/' => "Unexpected ']' with no following ')' in (?[... {#} m/ネ(?[[[:ネ:]]{#}])ネ/",
|
||||||
|
'/ネ(?[[:ネ:]])ネ/' => "",
|
||||||
|
'/ネ(?[ネ])ネ/' => 'Unexpected character {#} m/ネ(?[ネ{#}])ネ/',
|
||||||
|
'/ネ(?[ + [ネ] ])/' => 'Unexpected binary operator \'+\' with no preceding operand {#} m/ネ(?[ +{#} [ネ] ])/',
|
||||||
|
@@ -443,8 +445,9 @@ my @death_utf8 = mark_as_utf8(
|
||||||
|
'/(?[ \x{ネ} ])ネ/' => 'Non-hex character {#} m/(?[ \x{ネ{#}} ])ネ/',
|
||||||
|
'/(?[ \p{ネ} ])/' => 'Can\'t find Unicode property definition "ネ" {#} m/(?[ \p{ネ}{#} ])/',
|
||||||
|
'/(?[ \p{ ネ = bar } ])/' => 'Can\'t find Unicode property definition "ネ = bar" {#} m/(?[ \p{ ネ = bar }{#} ])/',
|
||||||
|
- '/ネ(?[ \t ]/' => 'Syntax error in (?[...]) in regex m/ネ(?[ \t ]/',
|
||||||
|
- '/(?[ \t + \e # ネ This was supposed to be a comment ])/' => 'Syntax error in (?[...]) in regex m/(?[ \t + \e # ネ This was supposed to be a comment ])/',
|
||||||
|
+ '/ネ(?[ \t ]/' => "Unexpected ']' with no following ')' in (?[... {#} m/ネ(?[ \\t ]{#}/",
|
||||||
|
+ '/(?[ \t + \e # ネ This was supposed to be a comment ])/' =>
|
||||||
|
+ "Syntax error in (?[...]) {#} m/(?[ \\t + \\e # ネ This was supposed to be a comment ]){#}/",
|
||||||
|
'm/(*ネ)ネ/' => q<Unknown verb pattern 'ネ' {#} m/(*ネ){#}ネ/>,
|
||||||
|
'/\cネ/' => "Character following \"\\c\" must be printable ASCII",
|
||||||
|
'/\b{ネ}/' => "'ネ' is an unknown bound type {#} m/\\b{ネ{#}}/",
|
||||||
|
--- ./t/re/regex_sets.t.orig 2017-07-18 22:50:18.000000000 +0000
|
||||||
|
+++ ./t/re/regex_sets.t 2018-11-21 13:46:07.002215878 +0000
|
||||||
|
@@ -158,13 +158,13 @@ for my $char ("٠", "٥", "٩") {
|
||||||
|
eval { $_ = '/(?[(\c]) /'; qr/$_/ };
|
||||||
|
like($@, qr/^Syntax error/, '/(?[(\c]) / should not panic');
|
||||||
|
eval { $_ = '(?[\c#]' . "\n])"; qr/$_/ };
|
||||||
|
- like($@, qr/^Syntax error/, '/(?[(\c]) / should not panic');
|
||||||
|
+ like($@, qr/^Unexpected/, '/(?[(\c]) / should not panic');
|
||||||
|
eval { $_ = '(?[(\c])'; qr/$_/ };
|
||||||
|
like($@, qr/^Syntax error/, '/(?[(\c])/ should be a syntax error');
|
||||||
|
eval { $_ = '(?[(\c]) ]\b'; qr/$_/ };
|
||||||
|
- like($@, qr/^Syntax error/, '/(?[(\c]) ]\b/ should be a syntax error');
|
||||||
|
+ like($@, qr/^Unexpected/, '/(?[(\c]) ]\b/ should be a syntax error');
|
||||||
|
eval { $_ = '(?[\c[]](])'; qr/$_/ };
|
||||||
|
- like($@, qr/^Syntax error/, '/(?[\c[]](])/ should be a syntax error');
|
||||||
|
+ like($@, qr/^Unexpected/, '/(?[\c[]](])/ should be a syntax error');
|
||||||
|
like("\c#", qr/(?[\c#])/, '\c# should match itself');
|
||||||
|
like("\c[", qr/(?[\c[])/, '\c[ should match itself');
|
||||||
|
like("\c\ ", qr/(?[\c\])/, '\c\ should match itself');
|
134
perl-file_path_rmtree_fchmod.diff
Normal file
134
perl-file_path_rmtree_fchmod.diff
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
--- cpan/ExtUtils-MakeMaker/t/eu_command.t.orig 2017-07-18 22:59:59.000000000 +0000
|
||||||
|
+++ cpan/ExtUtils-MakeMaker/t/eu_command.t 2022-09-02 14:13:22.736782886 +0000
|
||||||
|
@@ -151,19 +151,19 @@ BEGIN {
|
||||||
|
is( ((stat('testdir'))[2] & 07777) & 0700,
|
||||||
|
0100, 'change a dir to execute-only' );
|
||||||
|
|
||||||
|
- # change a dir to read-only
|
||||||
|
- @ARGV = ( '0400', 'testdir' );
|
||||||
|
+ # change a dir to write-only
|
||||||
|
+ @ARGV = ( '0200', 'testdir' );
|
||||||
|
ExtUtils::Command::chmod();
|
||||||
|
|
||||||
|
is( ((stat('testdir'))[2] & 07777) & 0700,
|
||||||
|
- 0400, 'change a dir to read-only' );
|
||||||
|
+ 0200, 'change a dir to write-only' );
|
||||||
|
|
||||||
|
- # change a dir to write-only
|
||||||
|
- @ARGV = ( '0200', 'testdir' );
|
||||||
|
+ # change a dir to read-only
|
||||||
|
+ @ARGV = ( '0400', 'testdir' );
|
||||||
|
ExtUtils::Command::chmod();
|
||||||
|
|
||||||
|
is( ((stat('testdir'))[2] & 07777) & 0700,
|
||||||
|
- 0200, 'change a dir to write-only' );
|
||||||
|
+ 0400, 'change a dir to read-only' );
|
||||||
|
|
||||||
|
@ARGV = ('testdir');
|
||||||
|
rm_rf;
|
||||||
|
--- cpan/File-Path/lib/File/Path.pm.orig 2017-07-18 22:59:59.000000000 +0000
|
||||||
|
+++ cpan/File-Path/lib/File/Path.pm 2022-09-02 14:09:39.657163146 +0000
|
||||||
|
@@ -354,21 +354,32 @@ sub _rmtree {
|
||||||
|
|
||||||
|
# see if we can escalate privileges to get in
|
||||||
|
# (e.g. funny protection mask such as -w- instead of rwx)
|
||||||
|
- $perm &= oct '7777';
|
||||||
|
- my $nperm = $perm | oct '700';
|
||||||
|
- if (
|
||||||
|
- !(
|
||||||
|
- $arg->{safe}
|
||||||
|
- or $nperm == $perm
|
||||||
|
- or chmod( $nperm, $root )
|
||||||
|
- )
|
||||||
|
- )
|
||||||
|
- {
|
||||||
|
- _error( $arg,
|
||||||
|
- "cannot make child directory read-write-exec", $canon );
|
||||||
|
- next ROOT_DIR;
|
||||||
|
+ # This uses fchmod to avoid traversing outside of the proper
|
||||||
|
+ # location (CVE-2017-6512)
|
||||||
|
+ my $root_fh;
|
||||||
|
+ if (open($root_fh, '<', $root)) {
|
||||||
|
+ my ($fh_dev, $fh_inode) = (stat $root_fh )[0,1];
|
||||||
|
+ $perm &= oct '7777';
|
||||||
|
+ my $nperm = $perm | oct '700';
|
||||||
|
+ local $@;
|
||||||
|
+ if (
|
||||||
|
+ !(
|
||||||
|
+ $arg->{safe}
|
||||||
|
+ or $nperm == $perm
|
||||||
|
+ or !-d _
|
||||||
|
+ or $fh_dev ne $ldev
|
||||||
|
+ or $fh_inode ne $lino
|
||||||
|
+ or eval { chmod( $nperm, $root_fh ) }
|
||||||
|
+ )
|
||||||
|
+ )
|
||||||
|
+ {
|
||||||
|
+ _error($arg,
|
||||||
|
+ "cannot make child directory read-write-exec", $canon);
|
||||||
|
+ next ROOT_DIR;
|
||||||
|
+ }
|
||||||
|
+ close $root_fh;
|
||||||
|
}
|
||||||
|
- elsif ( !chdir($root) ) {
|
||||||
|
+ if ( !chdir($root) ) {
|
||||||
|
_error( $arg, "cannot chdir to child", $canon );
|
||||||
|
next ROOT_DIR;
|
||||||
|
}
|
||||||
|
--- cpan/File-Path/t/Path.t.orig 2017-07-18 22:59:59.000000000 +0000
|
||||||
|
+++ cpan/File-Path/t/Path.t 2022-09-02 15:26:48.353242370 +0000
|
||||||
|
@@ -3,7 +3,7 @@
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
-use Test::More tests => 127;
|
||||||
|
+use Test::More tests => 126;
|
||||||
|
use Config;
|
||||||
|
use Fcntl ':mode';
|
||||||
|
use lib 't/';
|
||||||
|
@@ -301,13 +301,13 @@ is(rmtree($dir, 0, undef), 1, "removed d
|
||||||
|
$dir = catdir($tmp_base,'G');
|
||||||
|
$dir = VMS::Filespec::unixify($dir) if $Is_VMS;
|
||||||
|
|
||||||
|
-@created = mkpath($dir, undef, 0200);
|
||||||
|
+@created = mkpath($dir, undef, 0400);
|
||||||
|
|
||||||
|
-is(scalar(@created), 1, "created write-only dir");
|
||||||
|
+is(scalar(@created), 1, "created read-only dir");
|
||||||
|
|
||||||
|
-is($created[0], $dir, "created write-only directory cross-check");
|
||||||
|
+is($created[0], $dir, "created read-only directory cross-check");
|
||||||
|
|
||||||
|
-is(rmtree($dir), 1, "removed write-only dir");
|
||||||
|
+is(rmtree($dir), 1, "removed read-only dir");
|
||||||
|
|
||||||
|
# borderline new-style heuristics
|
||||||
|
if (chdir $tmp_base) {
|
||||||
|
@@ -458,11 +458,11 @@ SKIP : {
|
||||||
|
my $mode;
|
||||||
|
my $octal_mode;
|
||||||
|
my @inputs = (
|
||||||
|
- 0777, 0700, 0070, 0007,
|
||||||
|
- 0333, 0300, 0030, 0003,
|
||||||
|
- 0111, 0100, 0010, 0001,
|
||||||
|
- 0731, 0713, 0317, 0371, 0173, 0137,
|
||||||
|
- 00 );
|
||||||
|
+ 0777, 0700, 0470, 0407,
|
||||||
|
+ 0433, 0400, 0430, 0403,
|
||||||
|
+ 0111, 0100, 0110, 0101,
|
||||||
|
+ 0731, 0713, 0317, 0371,
|
||||||
|
+ 0173, 0137);
|
||||||
|
my $input;
|
||||||
|
my $octal_input;
|
||||||
|
$dir = catdir($tmp_base, 'chmod_test');
|
||||||
|
--- t/porting/customized.dat.orig 2022-09-02 15:10:40.758917198 +0000
|
||||||
|
+++ t/porting/customized.dat 2022-09-02 15:11:32.822828168 +0000
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
Digest cpan/Digest/Digest.pm 43f7f544cb11842b2f55c73e28930da50774e081
|
||||||
|
Encode cpan/Encode/Unicode/Unicode.pm 9749692c67f7d69083034de9184a93f070ab4799
|
||||||
|
ExtUtils::Constant cpan/ExtUtils-Constant/t/Constant.t a0369c919e216fb02767a637666bb4577ad79b02
|
||||||
|
-File::Path cpan/File-Path/lib/File/Path.pm fd8ce4420a0c113d3f47dd3223859743655c1da8
|
||||||
|
+File::Path cpan/File-Path/lib/File/Path.pm ff1817fcd4f88629e7be620f83cdbc4eaaf9211a
|
||||||
|
File::Path cpan/File-Path/t/Path_win32.t 94b9276557ce7f80b91f6fd9bfa7a0cd9bf9683e
|
||||||
|
JSON::PP cpan/JSON-PP/bin/json_pp a7b8de6c201ef177ee82624ee4ca6a47cc1a3b4f
|
||||||
|
JSON::PP cpan/JSON-PP/lib/JSON/PP.pm 86f697dae482106270fdd659b18c95a54af764ba
|
102
perl-fix2020.patch
Normal file
102
perl-fix2020.patch
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
submitted upstream
|
||||||
|
|
||||||
|
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||||
|
Date: 2018-03-18
|
||||||
|
Subject: fix calls of timelocal to work after 2019
|
||||||
|
|
||||||
|
because year 70 then starts to mean 2070
|
||||||
|
|
||||||
|
https://bugzilla.opensuse.org/show_bug.cgi?id=1102840 trackerbug: build fails at
|
||||||
|
some time
|
||||||
|
https://rt.perl.org/Ticket/Display.html?id=132896 perl Net::NNTP
|
||||||
|
https://rt.perl.org/Ticket/Display.html?id=132898 perl Net::FTP => https://rt.cp
|
||||||
|
an.org/Public/Bug/Display.html?id=124534
|
||||||
|
https://rt.perl.org/Ticket/Display.html?id=132897 perl doc
|
||||||
|
|
||||||
|
--- ./cpan/Time-Local/t/Local.t.orig 2020-02-05 14:40:00.406521792 +0000
|
||||||
|
+++ ./cpan/Time-Local/t/Local.t 2020-02-05 15:20:34.648804873 +0000
|
||||||
|
@@ -96,8 +96,7 @@ SKIP: {
|
||||||
|
|
||||||
|
# Test timelocal()
|
||||||
|
{
|
||||||
|
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
||||||
|
- my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year_in );
|
||||||
|
+ my $time = timelocal( $sec, $min, $hour, $mday, $mon, $year + 1900 );
|
||||||
|
|
||||||
|
my ( $s, $m, $h, $D, $M, $Y ) = localtime($time);
|
||||||
|
|
||||||
|
@@ -111,8 +110,7 @@ SKIP: {
|
||||||
|
|
||||||
|
# Test timegm()
|
||||||
|
{
|
||||||
|
- my $year_in = $year < 70 ? $year + 1900 : $year;
|
||||||
|
- my $time = timegm( $sec, $min, $hour, $mday, $mon, $year_in );
|
||||||
|
+ my $time = timegm( $sec, $min, $hour, $mday, $mon, $year + 1900 );
|
||||||
|
|
||||||
|
my ( $s, $m, $h, $D, $M, $Y ) = gmtime($time);
|
||||||
|
|
||||||
|
@@ -138,19 +136,19 @@ for (@bad_time) {
|
||||||
|
|
||||||
|
{
|
||||||
|
is(
|
||||||
|
- timelocal( 0, 0, 1, 1, 0, 90 ) - timelocal( 0, 0, 0, 1, 0, 90 ), 3600,
|
||||||
|
+ timelocal( 0, 0, 1, 1, 0, 1990 ) - timelocal( 0, 0, 0, 1, 0, 1990 ), 3600,
|
||||||
|
'one hour difference between two calls to timelocal'
|
||||||
|
);
|
||||||
|
|
||||||
|
is(
|
||||||
|
- timelocal( 1, 2, 3, 1, 0, 100 ) - timelocal( 1, 2, 3, 31, 11, 99 ),
|
||||||
|
+ timelocal( 1, 2, 3, 1, 0, 2000 ) - timelocal( 1, 2, 3, 31, 11, 1999 ),
|
||||||
|
24 * 3600,
|
||||||
|
'one day difference between two calls to timelocal'
|
||||||
|
);
|
||||||
|
|
||||||
|
# Diff beween Jan 1, 1980 and Mar 1, 1980 = (31 + 29 = 60 days)
|
||||||
|
is(
|
||||||
|
- timegm( 0, 0, 0, 1, 2, 80 ) - timegm( 0, 0, 0, 1, 0, 80 ),
|
||||||
|
+ timegm( 0, 0, 0, 1, 2, 1980 ) - timegm( 0, 0, 0, 1, 0, 1980 ),
|
||||||
|
60 * 24 * 3600,
|
||||||
|
'60 day difference between two calls to timegm'
|
||||||
|
);
|
||||||
|
@@ -162,7 +160,7 @@ for (@bad_time) {
|
||||||
|
# treated like 03:00:00 rather than 01:00:00 - negative zone offsets used
|
||||||
|
# to do the latter
|
||||||
|
{
|
||||||
|
- my $hour = ( localtime( timelocal( 0, 0, 2, 7, 3, 102 ) ) )[2];
|
||||||
|
+ my $hour = ( localtime( timelocal( 0, 0, 2, 7, 3, 2002 ) ) )[2];
|
||||||
|
|
||||||
|
# testers in US/Pacific should get 3,
|
||||||
|
# other testers should get 2
|
||||||
|
--- ./cpan/libnet/lib/Net/FTP.pm.orig 2017-07-18 22:49:51.000000000 +0000
|
||||||
|
+++ ./cpan/libnet/lib/Net/FTP.pm 2020-02-05 14:40:00.406521792 +0000
|
||||||
|
@@ -264,7 +264,7 @@ sub mdtm {
|
||||||
|
|
||||||
|
$ftp->_MDTM($file)
|
||||||
|
&& $ftp->message =~ /((\d\d)(\d\d\d?))(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/
|
||||||
|
- ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? $3 : ($1 - 1900))
|
||||||
|
+ ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? ($3 + 1900) : $1)
|
||||||
|
: undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ./cpan/libnet/lib/Net/NNTP.pm.orig 2017-07-18 22:49:51.000000000 +0000
|
||||||
|
+++ ./cpan/libnet/lib/Net/NNTP.pm 2020-02-05 14:40:00.406521792 +0000
|
||||||
|
@@ -598,7 +598,7 @@ sub date {
|
||||||
|
|
||||||
|
$nntp->_DATE
|
||||||
|
&& $nntp->message =~ /(\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/
|
||||||
|
- ? timegm($6, $5, $4, $3, $2 - 1, $1 - 1900)
|
||||||
|
+ ? timegm($6, $5, $4, $3, $2 - 1, $1)
|
||||||
|
: undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
--- ./pod/perlport.pod.orig 2020-02-05 14:45:01.949813224 +0000
|
||||||
|
+++ ./pod/perlport.pod 2020-02-05 14:40:00.406521792 +0000
|
||||||
|
@@ -670,7 +670,7 @@ When calculating specific times, such as
|
||||||
|
it may be appropriate to calculate an offset for the epoch.
|
||||||
|
|
||||||
|
use Time::Local qw(timegm);
|
||||||
|
- my $offset = timegm(0, 0, 0, 1, 0, 70);
|
||||||
|
+ my $offset = timegm(0, 0, 0, 1, 0, 1970);
|
||||||
|
|
||||||
|
The value for C<$offset> in Unix will be C<0>, but in Mac OS Classic
|
||||||
|
will be some large number. C<$offset> can then be added to a Unix time
|
42
perl-incfix.diff
Normal file
42
perl-incfix.diff
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
Index: perl.c
|
||||||
|
===================================================================
|
||||||
|
--- perl.c.orig
|
||||||
|
+++ perl.c
|
||||||
|
@@ -4579,11 +4579,13 @@ S_init_perllib(pTHX)
|
||||||
|
# endif
|
||||||
|
#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);
|
||||||
|
#endif
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
if (!TAINTING_get) {
|
||||||
|
#ifndef VMS
|
||||||
|
@@ -4625,20 +4627,19 @@ S_init_perllib(pTHX)
|
||||||
|
#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),
|
||||||
|
- INCPUSH_ADD_OLD_VERS|INCPUSH_CAN_RELOCATE);
|
||||||
|
+ INCPUSH_ADD_OLD_VERS|INCPUSH_NOT_BASEDIR|INCPUSH_CAN_RELOCATE);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#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),
|
||||||
|
- 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);
|
||||||
|
+ INCPUSH_CAN_RELOCATE);
|
||||||
|
#endif
|
||||||
|
#endif /* !PERL_IS_MINIPERL */
|
||||||
|
|
26
perl-netcmdutf8.diff
Normal file
26
perl-netcmdutf8.diff
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
Index: cpan/libnet/lib/Net/Cmd.pm
|
||||||
|
===================================================================
|
||||||
|
--- cpan/libnet/lib/Net/Cmd.pm.orig
|
||||||
|
+++ cpan/libnet/lib/Net/Cmd.pm
|
||||||
|
@@ -290,6 +290,10 @@ sub command {
|
||||||
|
$str = $cmd->toascii($str) if $tr;
|
||||||
|
$str .= "\015\012";
|
||||||
|
|
||||||
|
+ # encode to individual utf8 bytes if
|
||||||
|
+ # $str is a string (in internal UTF-8)
|
||||||
|
+ utf8::encode($str) if utf8::is_utf8($str);
|
||||||
|
+
|
||||||
|
$cmd->debug_print(1, $str)
|
||||||
|
if ($cmd->debug);
|
||||||
|
|
||||||
|
@@ -525,6 +529,10 @@ sub rawdatasend {
|
||||||
|
return 0
|
||||||
|
if $cmd->_is_closed;
|
||||||
|
|
||||||
|
+ # encode to individual utf8 bytes if
|
||||||
|
+ # $line is a string (in internal UTF-8)
|
||||||
|
+ utf8::encode($line) if utf8::is_utf8($line);
|
||||||
|
+
|
||||||
|
return 1
|
||||||
|
unless length($line);
|
||||||
|
|
19
perl-nroff.diff
Normal file
19
perl-nroff.diff
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
--- ./cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm.orig 2017-04-19 13:37:05.000000000 +0000
|
||||||
|
+++ ./cpan/Pod-Perldoc/lib/Pod/Perldoc/ToMan.pm 2017-08-30 12:12:38.967184117 +0000
|
||||||
|
@@ -64,7 +64,7 @@ sub _roffer_candidates {
|
||||||
|
my( $self ) = @_;
|
||||||
|
|
||||||
|
if( $self->is_openbsd || $self->is_freebsd || $self->is_bitrig ) { qw( mandoc groff nroff ) }
|
||||||
|
- else { qw( groff nroff mandoc ) }
|
||||||
|
+ else { qw( nroff groff mandoc ) }
|
||||||
|
}
|
||||||
|
|
||||||
|
sub _find_roffer {
|
||||||
|
@@ -232,6 +232,7 @@ sub _collect_nroff_switches {
|
||||||
|
# don't have a -c switch, so that unconditionally adding it here
|
||||||
|
# would presumably be a Bad Thing -- sburke@cpan.org
|
||||||
|
push @render_switches, '-c' if( $self->_is_roff and $self->is_cygwin );
|
||||||
|
+ push @render_switches, '-c' if( $self->_is_nroff );
|
||||||
|
|
||||||
|
return @render_switches;
|
||||||
|
}
|
BIN
perl-reg-node-overrun.diff
Normal file
BIN
perl-reg-node-overrun.diff
Normal file
Binary file not shown.
35
perl-regcomp-strchr-memchr.diff
Normal file
35
perl-regcomp-strchr-memchr.diff
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
--- ./regcomp.c.orig 2018-11-21 13:49:47.365690980 +0000
|
||||||
|
+++ ./regcomp.c 2018-11-21 13:51:40.257422076 +0000
|
||||||
|
@@ -12018,7 +12018,8 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pREx
|
||||||
|
|
||||||
|
RExC_parse++; /* Skip past the '{' */
|
||||||
|
|
||||||
|
- if (! (endbrace = strchr(RExC_parse, '}'))) { /* no trailing brace */
|
||||||
|
+ endbrace = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse);
|
||||||
|
+ if (! endbrace) { /* no trailing brace */
|
||||||
|
vFAIL2("Missing right brace on \\%c{}", 'N');
|
||||||
|
}
|
||||||
|
else if(!(endbrace == RExC_parse /* nothing between the {} */
|
||||||
|
@@ -12687,9 +12688,11 @@ S_regatom(pTHX_ RExC_state_t *pRExC_stat
|
||||||
|
else {
|
||||||
|
STRLEN length;
|
||||||
|
char name = *RExC_parse;
|
||||||
|
- char * endbrace;
|
||||||
|
+ char * endbrace = NULL;
|
||||||
|
RExC_parse += 2;
|
||||||
|
- endbrace = strchr(RExC_parse, '}');
|
||||||
|
+ if (RExC_parse < RExC_end) {
|
||||||
|
+ endbrace = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (! endbrace) {
|
||||||
|
vFAIL2("Missing right brace on \\%c{}", name);
|
||||||
|
@@ -16218,7 +16221,7 @@ S_regclass(pTHX_ RExC_state_t *pRExC_sta
|
||||||
|
vFAIL2("Empty \\%c", (U8)value);
|
||||||
|
if (*RExC_parse == '{') {
|
||||||
|
const U8 c = (U8)value;
|
||||||
|
- e = strchr(RExC_parse, '}');
|
||||||
|
+ e = (char *) memchr(RExC_parse, '}', RExC_end - RExC_parse);
|
||||||
|
if (!e) {
|
||||||
|
RExC_parse++;
|
||||||
|
vFAIL2("Missing right brace on \\%c{}", c);
|
13
perl-regexp-refoverflow.diff
Normal file
13
perl-regexp-refoverflow.diff
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
Index: regcomp.c
|
||||||
|
===================================================================
|
||||||
|
--- regcomp.c.orig
|
||||||
|
+++ regcomp.c
|
||||||
|
@@ -10988,7 +10988,7 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I
|
||||||
|
|
||||||
|
ret = reg2Lanode(pRExC_state, GOSUB, num, RExC_recurse_count);
|
||||||
|
if (!SIZE_ONLY) {
|
||||||
|
- if (num > (I32)RExC_rx->nparens) {
|
||||||
|
+ if (num < 0 || num > (I32)RExC_rx->nparens) {
|
||||||
|
RExC_parse++;
|
||||||
|
vFAIL("Reference to nonexistent group");
|
||||||
|
}
|
24
perl-reproducible.patch
Normal file
24
perl-reproducible.patch
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
PATCH-FIX-OPENSUSE
|
||||||
|
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||||
|
Date: 2017-12-04
|
||||||
|
|
||||||
|
replace hostname, username, time with fixed values
|
||||||
|
|
||||||
|
Index: perl-5.26.1/Configure
|
||||||
|
===================================================================
|
||||||
|
--- perl-5.26.1.orig/Configure
|
||||||
|
+++ perl-5.26.1/Configure
|
||||||
|
@@ -9234,6 +9234,13 @@ esac
|
||||||
|
set $myhostname
|
||||||
|
myhostname=$1
|
||||||
|
|
||||||
|
+if test -n "$SOURCE_DATE_EPOCH" ; then
|
||||||
|
+ cf_time="`LC_ALL=C LANGUAGE=C $date -u -d@$SOURCE_DATE_EPOCH`"
|
||||||
|
+ cf_by="reproducible"
|
||||||
|
+ myhostname="reproducible"
|
||||||
|
+ myuname="reproducible"
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
: verify guess
|
||||||
|
if $test "$myhostname" ; then
|
||||||
|
dflt=y
|
5
perl-rpmlintrc
Normal file
5
perl-rpmlintrc
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# This line is mandatory to access the configuration functions
|
||||||
|
from Config import *
|
||||||
|
|
||||||
|
addFilter("perl.* devel-file-in-non-devel-package")
|
||||||
|
|
11
perl-saltbits.diff
Normal file
11
perl-saltbits.diff
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
--- ./pp.c.orig 2020-10-30 11:45:18.797664301 +0000
|
||||||
|
+++ ./pp.c 2020-10-30 11:46:28.237474681 +0000
|
||||||
|
@@ -3745,8 +3745,6 @@ 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 */
|
||||||
|
- PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
28
perl-saverecontext.diff
Normal file
28
perl-saverecontext.diff
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
Index: regcomp.c
|
||||||
|
===================================================================
|
||||||
|
--- regcomp.c.orig
|
||||||
|
+++ regcomp.c
|
||||||
|
@@ -19959,8 +19959,21 @@ Perl_save_re_context(pTHX)
|
||||||
|
|
||||||
|
if (gvp) {
|
||||||
|
GV * const gv = *gvp;
|
||||||
|
- if (SvTYPE(gv) == SVt_PVGV && GvSV(gv))
|
||||||
|
- save_scalar(gv);
|
||||||
|
+ if (SvTYPE(gv) == SVt_PVGV && GvSV(gv)) {
|
||||||
|
+ /* this is a copy of save_scalar() without the GETMAGIC call, RT#76538 */
|
||||||
|
+ SV ** const sptr = &GvSVn(gv);
|
||||||
|
+ SV * osv = *sptr;
|
||||||
|
+ SV * nsv = newSV(0);
|
||||||
|
+ save_pushptrptr(SvREFCNT_inc_simple(gv), SvREFCNT_inc(osv), SAVEt_SV);
|
||||||
|
+ if (SvTYPE(osv) >= SVt_PVMG && SvMAGIC(osv)) {
|
||||||
|
+ if (SvGMAGICAL(osv)) {
|
||||||
|
+ SvFLAGS(osv) |= (SvFLAGS(osv) &
|
||||||
|
+ (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
|
||||||
|
+ }
|
||||||
|
+ mg_localize(osv, nsv, (bool)1);
|
||||||
|
+ }
|
||||||
|
+ *sptr = nsv;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
147
perl-setenv-integer-wrap.diff
Normal file
147
perl-setenv-integer-wrap.diff
Normal file
|
@ -0,0 +1,147 @@
|
||||||
|
--- ./util.c.orig 2017-08-23 20:21:09.000000000 +0000
|
||||||
|
+++ ./util.c 2018-11-21 14:04:38.631559624 +0000
|
||||||
|
@@ -2064,8 +2064,40 @@ Perl_new_warnings_bitfield(pTHX_ STRLEN
|
||||||
|
*(s+(nlen+1+vlen)) = '\0'
|
||||||
|
|
||||||
|
#ifdef USE_ENVIRON_ARRAY
|
||||||
|
- /* VMS' my_setenv() is in vms.c */
|
||||||
|
+
|
||||||
|
+/* small wrapper for use by Perl_my_setenv that mallocs, or reallocs if
|
||||||
|
+ * 'current' is non-null, with up to three sizes that are added together.
|
||||||
|
+ * It handles integer overflow.
|
||||||
|
+ */
|
||||||
|
+static char *
|
||||||
|
+S_env_alloc(void *current, Size_t l1, Size_t l2, Size_t l3, Size_t size)
|
||||||
|
+{
|
||||||
|
+ void *p;
|
||||||
|
+ Size_t sl, l = l1 + l2;
|
||||||
|
+
|
||||||
|
+ if (l < l2)
|
||||||
|
+ goto panic;
|
||||||
|
+ l += l3;
|
||||||
|
+ if (l < l3)
|
||||||
|
+ goto panic;
|
||||||
|
+ sl = l * size;
|
||||||
|
+ if (sl < l)
|
||||||
|
+ goto panic;
|
||||||
|
+
|
||||||
|
+ p = current
|
||||||
|
+ ? safesysrealloc(current, sl)
|
||||||
|
+ : safesysmalloc(sl);
|
||||||
|
+ if (p)
|
||||||
|
+ return (char*)p;
|
||||||
|
+
|
||||||
|
+ panic:
|
||||||
|
+ croak_memory_wrap();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+/* VMS' my_setenv() is in vms.c */
|
||||||
|
#if !defined(WIN32) && !defined(NETWARE)
|
||||||
|
+
|
||||||
|
void
|
||||||
|
Perl_my_setenv(pTHX_ const char *nam, const char *val)
|
||||||
|
{
|
||||||
|
@@ -2081,28 +2113,27 @@ Perl_my_setenv(pTHX_ const char *nam, co
|
||||||
|
#ifndef PERL_USE_SAFE_PUTENV
|
||||||
|
if (!PL_use_safe_putenv) {
|
||||||
|
/* most putenv()s leak, so we manipulate environ directly */
|
||||||
|
- I32 i;
|
||||||
|
- const I32 len = strlen(nam);
|
||||||
|
- int nlen, vlen;
|
||||||
|
+ UV i;
|
||||||
|
+ Size_t vlen, nlen = strlen(nam);
|
||||||
|
|
||||||
|
/* where does it go? */
|
||||||
|
for (i = 0; environ[i]; i++) {
|
||||||
|
- if (strnEQ(environ[i],nam,len) && environ[i][len] == '=')
|
||||||
|
+ if (strnEQ(environ[i], nam, nlen) && environ[i][nlen] == '=')
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (environ == PL_origenviron) { /* need we copy environment? */
|
||||||
|
- I32 j;
|
||||||
|
- I32 max;
|
||||||
|
+ UV j, max;
|
||||||
|
char **tmpenv;
|
||||||
|
|
||||||
|
max = i;
|
||||||
|
while (environ[max])
|
||||||
|
max++;
|
||||||
|
- tmpenv = (char**)safesysmalloc((max+2) * sizeof(char*));
|
||||||
|
+ /* XXX shouldn't that be max+1 rather than max+2 ??? - DAPM */
|
||||||
|
+ tmpenv = (char**)S_env_alloc(NULL, max, 2, 0, sizeof(char*));
|
||||||
|
for (j=0; j<max; j++) { /* copy environment */
|
||||||
|
- const int len = strlen(environ[j]);
|
||||||
|
- tmpenv[j] = (char*)safesysmalloc((len+1)*sizeof(char));
|
||||||
|
+ const Size_t len = strlen(environ[j]);
|
||||||
|
+ tmpenv[j] = S_env_alloc(NULL, len, 1, 0, 1);
|
||||||
|
Copy(environ[j], tmpenv[j], len+1, char);
|
||||||
|
}
|
||||||
|
tmpenv[max] = NULL;
|
||||||
|
@@ -2121,15 +2152,15 @@ Perl_my_setenv(pTHX_ const char *nam, co
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (!environ[i]) { /* does not exist yet */
|
||||||
|
- environ = (char**)safesysrealloc(environ, (i+2) * sizeof(char*));
|
||||||
|
+ environ = (char**)S_env_alloc(environ, i, 2, 0, sizeof(char*));
|
||||||
|
environ[i+1] = NULL; /* make sure it's null terminated */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
safesysfree(environ[i]);
|
||||||
|
- nlen = strlen(nam);
|
||||||
|
+
|
||||||
|
vlen = strlen(val);
|
||||||
|
|
||||||
|
- environ[i] = (char*)safesysmalloc((nlen+vlen+2) * sizeof(char));
|
||||||
|
+ environ[i] = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||||
|
/* all that work just for this */
|
||||||
|
my_setenv_format(environ[i], nam, nlen, val, vlen);
|
||||||
|
} else {
|
||||||
|
@@ -2154,22 +2185,21 @@ Perl_my_setenv(pTHX_ const char *nam, co
|
||||||
|
if (environ) /* old glibc can crash with null environ */
|
||||||
|
(void)unsetenv(nam);
|
||||||
|
} else {
|
||||||
|
- const int nlen = strlen(nam);
|
||||||
|
- const int vlen = strlen(val);
|
||||||
|
- char * const new_env =
|
||||||
|
- (char*)safesysmalloc((nlen + vlen + 2) * sizeof(char));
|
||||||
|
+ const Size_t nlen = strlen(nam);
|
||||||
|
+ const Size_t vlen = strlen(val);
|
||||||
|
+ char * const new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||||
|
my_setenv_format(new_env, nam, nlen, val, vlen);
|
||||||
|
(void)putenv(new_env);
|
||||||
|
}
|
||||||
|
# else /* ! HAS_UNSETENV */
|
||||||
|
char *new_env;
|
||||||
|
- const int nlen = strlen(nam);
|
||||||
|
- int vlen;
|
||||||
|
+ const Size_t nlen = strlen(nam);
|
||||||
|
+ Size_t vlen;
|
||||||
|
if (!val) {
|
||||||
|
val = "";
|
||||||
|
}
|
||||||
|
vlen = strlen(val);
|
||||||
|
- new_env = (char*)safesysmalloc((nlen + vlen + 2) * sizeof(char));
|
||||||
|
+ new_env = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||||
|
/* all that work just for this */
|
||||||
|
my_setenv_format(new_env, nam, nlen, val, vlen);
|
||||||
|
(void)putenv(new_env);
|
||||||
|
@@ -2192,14 +2222,14 @@ Perl_my_setenv(pTHX_ const char *nam, co
|
||||||
|
{
|
||||||
|
dVAR;
|
||||||
|
char *envstr;
|
||||||
|
- const int nlen = strlen(nam);
|
||||||
|
- int vlen;
|
||||||
|
+ const Size_t nlen = strlen(nam);
|
||||||
|
+ Size_t vlen;
|
||||||
|
|
||||||
|
if (!val) {
|
||||||
|
val = "";
|
||||||
|
}
|
||||||
|
vlen = strlen(val);
|
||||||
|
- Newx(envstr, nlen+vlen+2, char);
|
||||||
|
+ envstr = S_env_alloc(NULL, nlen, vlen, 2, 1);
|
||||||
|
my_setenv_format(envstr, nam, nlen, val, vlen);
|
||||||
|
(void)PerlEnv_putenv(envstr);
|
||||||
|
Safefree(envstr);
|
303
perl-study.diff
Normal file
303
perl-study.diff
Normal file
|
@ -0,0 +1,303 @@
|
||||||
|
--- ./embed.fnc.orig 2017-09-07 19:19:52.000000000 +0000
|
||||||
|
+++ ./embed.fnc 2020-06-09 16:21:37.259095322 +0000
|
||||||
|
@@ -2397,7 +2397,8 @@ Es |SSize_t|study_chunk |NN RExC_state_t
|
||||||
|
|NULLOK struct scan_data_t *data \
|
||||||
|
|I32 stopparen|U32 recursed_depth \
|
||||||
|
|NULLOK regnode_ssc *and_withp \
|
||||||
|
- |U32 flags|U32 depth
|
||||||
|
+ |U32 flags|U32 depth|bool was_mutate_ok
|
||||||
|
+Es |void |rck_elide_nothing|NN regnode *node
|
||||||
|
EsRn |U32 |add_data |NN RExC_state_t* const pRExC_state \
|
||||||
|
|NN const char* const s|const U32 n
|
||||||
|
rs |void |re_croak2 |bool utf8|NN const char* pat1|NN const char* pat2|...
|
||||||
|
--- ./embed.h.orig 2017-07-18 22:59:59.000000000 +0000
|
||||||
|
+++ ./embed.h 2020-06-09 16:21:37.263095314 +0000
|
||||||
|
@@ -1046,6 +1046,7 @@
|
||||||
|
#define output_or_return_posix_warnings(a,b,c) S_output_or_return_posix_warnings(aTHX_ a,b,c)
|
||||||
|
#define parse_lparen_question_flags(a) S_parse_lparen_question_flags(aTHX_ a)
|
||||||
|
#define populate_ANYOF_from_invlist(a,b) S_populate_ANYOF_from_invlist(aTHX_ a,b)
|
||||||
|
+#define rck_elide_nothing(a) S_rck_elide_nothing(aTHX_ a)
|
||||||
|
#define reg(a,b,c,d) S_reg(aTHX_ a,b,c,d)
|
||||||
|
#define reg2Lanode(a,b,c,d) S_reg2Lanode(aTHX_ a,b,c,d)
|
||||||
|
#define reg_node(a,b) S_reg_node(aTHX_ a,b)
|
||||||
|
@@ -1075,7 +1076,7 @@
|
||||||
|
#define ssc_is_cp_posixl_init S_ssc_is_cp_posixl_init
|
||||||
|
#define ssc_or(a,b,c) S_ssc_or(aTHX_ a,b,c)
|
||||||
|
#define ssc_union(a,b,c) S_ssc_union(aTHX_ a,b,c)
|
||||||
|
-#define study_chunk(a,b,c,d,e,f,g,h,i,j,k) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
|
||||||
|
+#define study_chunk(a,b,c,d,e,f,g,h,i,j,k,l) S_study_chunk(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l)
|
||||||
|
# endif
|
||||||
|
# if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
|
||||||
|
#define _invlist_dump(a,b,c,d) Perl__invlist_dump(aTHX_ a,b,c,d)
|
||||||
|
--- ./proto.h.orig 2017-09-07 19:19:52.000000000 +0000
|
||||||
|
+++ ./proto.h 2020-06-09 16:21:52.091061856 +0000
|
||||||
|
@@ -5150,6 +5150,9 @@ STATIC void S_parse_lparen_question_flag
|
||||||
|
STATIC void S_populate_ANYOF_from_invlist(pTHX_ regnode *node, SV** invlist_ptr);
|
||||||
|
#define PERL_ARGS_ASSERT_POPULATE_ANYOF_FROM_INVLIST \
|
||||||
|
assert(node); assert(invlist_ptr)
|
||||||
|
+STATIC void S_rck_elide_nothing(pTHX_ regnode *node);
|
||||||
|
+#define PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING \
|
||||||
|
+ assert(node)
|
||||||
|
PERL_STATIC_NO_RET void S_re_croak2(pTHX_ bool utf8, const char* pat1, const char* pat2, ...)
|
||||||
|
__attribute__noreturn__;
|
||||||
|
#define PERL_ARGS_ASSERT_RE_CROAK2 \
|
||||||
|
@@ -5258,7 +5261,7 @@ PERL_STATIC_INLINE void S_ssc_union(pTHX
|
||||||
|
#define PERL_ARGS_ASSERT_SSC_UNION \
|
||||||
|
assert(ssc); assert(invlist)
|
||||||
|
#endif
|
||||||
|
-STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth);
|
||||||
|
+STATIC SSize_t S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, SSize_t *minlenp, SSize_t *deltap, regnode *last, struct scan_data_t *data, I32 stopparen, U32 recursed_depth, regnode_ssc *and_withp, U32 flags, U32 depth, bool was_mutate_ok);
|
||||||
|
#define PERL_ARGS_ASSERT_STUDY_CHUNK \
|
||||||
|
assert(pRExC_state); assert(scanp); assert(minlenp); assert(deltap); assert(last)
|
||||||
|
#endif
|
||||||
|
--- ./regcomp.c.orig 2020-06-09 16:21:32.515106026 +0000
|
||||||
|
+++ ./regcomp.c 2020-06-09 16:21:37.263095314 +0000
|
||||||
|
@@ -110,6 +110,7 @@ typedef struct scan_frame {
|
||||||
|
regnode *next_regnode; /* next node to process when last is reached */
|
||||||
|
U32 prev_recursed_depth;
|
||||||
|
I32 stopparen; /* what stopparen do we use */
|
||||||
|
+ bool in_gosub; /* this or an outer frame is for GOSUB */
|
||||||
|
U32 is_top_frame; /* what flags do we use? */
|
||||||
|
|
||||||
|
struct scan_frame *this_prev_frame; /* this previous frame */
|
||||||
|
@@ -4093,6 +4094,44 @@ S_unwind_scan_frames(pTHX_ const void *p
|
||||||
|
} while (f);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Follow the next-chain of the current node and optimize away
|
||||||
|
+ all the NOTHINGs from it.
|
||||||
|
+ */
|
||||||
|
+STATIC void
|
||||||
|
+S_rck_elide_nothing(pTHX_ regnode *node)
|
||||||
|
+{
|
||||||
|
+ dVAR;
|
||||||
|
+
|
||||||
|
+ PERL_ARGS_ASSERT_RCK_ELIDE_NOTHING;
|
||||||
|
+
|
||||||
|
+ if (OP(node) != CURLYX) {
|
||||||
|
+ const int max = (reg_off_by_arg[OP(node)]
|
||||||
|
+ ? I32_MAX
|
||||||
|
+ /* I32 may be smaller than U16 on CRAYs! */
|
||||||
|
+ : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX));
|
||||||
|
+ int off = (reg_off_by_arg[OP(node)] ? ARG(node) : NEXT_OFF(node));
|
||||||
|
+ int noff;
|
||||||
|
+ regnode *n = node;
|
||||||
|
+
|
||||||
|
+ /* Skip NOTHING and LONGJMP. */
|
||||||
|
+ while (
|
||||||
|
+ (n = regnext(n))
|
||||||
|
+ && (
|
||||||
|
+ (PL_regkind[OP(n)] == NOTHING && (noff = NEXT_OFF(n)))
|
||||||
|
+ || ((OP(n) == LONGJMP) && (noff = ARG(n)))
|
||||||
|
+ )
|
||||||
|
+ && off + noff < max
|
||||||
|
+ ) {
|
||||||
|
+ off += noff;
|
||||||
|
+ }
|
||||||
|
+ if (reg_off_by_arg[OP(node)])
|
||||||
|
+ ARG(node) = off;
|
||||||
|
+ else
|
||||||
|
+ NEXT_OFF(node) = off;
|
||||||
|
+ }
|
||||||
|
+ return;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
STATIC SSize_t
|
||||||
|
S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
|
||||||
|
@@ -4102,7 +4141,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
I32 stopparen,
|
||||||
|
U32 recursed_depth,
|
||||||
|
regnode_ssc *and_withp,
|
||||||
|
- U32 flags, U32 depth)
|
||||||
|
+ U32 flags, U32 depth, bool was_mutate_ok)
|
||||||
|
/* scanp: Start here (read-write). */
|
||||||
|
/* deltap: Write maxlen-minlen here. */
|
||||||
|
/* last: Stop before this one. */
|
||||||
|
@@ -4179,6 +4218,10 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
node length to get a real minimum (because
|
||||||
|
the folded version may be shorter) */
|
||||||
|
bool unfolded_multi_char = FALSE;
|
||||||
|
+ /* avoid mutating ops if we are anywhere within the recursed or
|
||||||
|
+ * enframed handling for a GOSUB: the outermost level will handle it.
|
||||||
|
+ */
|
||||||
|
+ bool mutate_ok = was_mutate_ok && !(frame && frame->in_gosub);
|
||||||
|
/* Peephole optimizer: */
|
||||||
|
DEBUG_STUDYDATA("Peep:", data, depth);
|
||||||
|
DEBUG_PEEP("Peep", scan, depth);
|
||||||
|
@@ -4189,30 +4232,12 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
* parsing code, as each (?:..) is handled by a different invocation of
|
||||||
|
* reg() -- Yves
|
||||||
|
*/
|
||||||
|
- JOIN_EXACT(scan,&min_subtract, &unfolded_multi_char, 0);
|
||||||
|
+ if (mutate_ok)
|
||||||
|
+ JOIN_EXACT(scan,&min_subtract, &unfolded_multi_char, 0);
|
||||||
|
|
||||||
|
/* Follow the next-chain of the current node and optimize
|
||||||
|
away all the NOTHINGs from it. */
|
||||||
|
- if (OP(scan) != CURLYX) {
|
||||||
|
- const int max = (reg_off_by_arg[OP(scan)]
|
||||||
|
- ? I32_MAX
|
||||||
|
- /* I32 may be smaller than U16 on CRAYs! */
|
||||||
|
- : (I32_MAX < U16_MAX ? I32_MAX : U16_MAX));
|
||||||
|
- int off = (reg_off_by_arg[OP(scan)] ? ARG(scan) : NEXT_OFF(scan));
|
||||||
|
- int noff;
|
||||||
|
- regnode *n = scan;
|
||||||
|
-
|
||||||
|
- /* Skip NOTHING and LONGJMP. */
|
||||||
|
- while ((n = regnext(n))
|
||||||
|
- && ((PL_regkind[OP(n)] == NOTHING && (noff = NEXT_OFF(n)))
|
||||||
|
- || ((OP(n) == LONGJMP) && (noff = ARG(n))))
|
||||||
|
- && off + noff < max)
|
||||||
|
- off += noff;
|
||||||
|
- if (reg_off_by_arg[OP(scan)])
|
||||||
|
- ARG(scan) = off;
|
||||||
|
- else
|
||||||
|
- NEXT_OFF(scan) = off;
|
||||||
|
- }
|
||||||
|
+ rck_elide_nothing(scan);
|
||||||
|
|
||||||
|
/* The principal pseudo-switch. Cannot be a switch, since we
|
||||||
|
look into several different things. */
|
||||||
|
@@ -4238,7 +4263,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
* NOTE we dont use the return here! */
|
||||||
|
(void)study_chunk(pRExC_state, &scan, &minlen,
|
||||||
|
&deltanext, next, &data_fake, stopparen,
|
||||||
|
- recursed_depth, NULL, f, depth+1);
|
||||||
|
+ recursed_depth, NULL, f, depth+1, mutate_ok);
|
||||||
|
|
||||||
|
scan = next;
|
||||||
|
} else
|
||||||
|
@@ -4305,7 +4330,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
/* we suppose the run is continuous, last=next...*/
|
||||||
|
minnext = study_chunk(pRExC_state, &scan, minlenp,
|
||||||
|
&deltanext, next, &data_fake, stopparen,
|
||||||
|
- recursed_depth, NULL, f,depth+1);
|
||||||
|
+ recursed_depth, NULL, f,depth+1, mutate_ok);
|
||||||
|
|
||||||
|
if (min1 > minnext)
|
||||||
|
min1 = minnext;
|
||||||
|
@@ -4373,7 +4398,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PERL_ENABLE_TRIE_OPTIMISATION &&
|
||||||
|
- OP( startbranch ) == BRANCH )
|
||||||
|
+ OP( startbranch ) == BRANCH && mutate_ok)
|
||||||
|
{
|
||||||
|
/* demq.
|
||||||
|
|
||||||
|
@@ -4825,6 +4850,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
newframe->stopparen = stopparen;
|
||||||
|
newframe->prev_recursed_depth = recursed_depth;
|
||||||
|
newframe->this_prev_frame= frame;
|
||||||
|
+ newframe->in_gosub = ((frame && frame->in_gosub) || OP(scan) == GOSUB);
|
||||||
|
|
||||||
|
DEBUG_STUDYDATA("frame-new:",data,depth);
|
||||||
|
DEBUG_PEEP("fnew", scan, depth);
|
||||||
|
@@ -5043,7 +5069,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
(mincount == 0
|
||||||
|
? (f & ~SCF_DO_SUBSTR)
|
||||||
|
: f)
|
||||||
|
- ,depth+1);
|
||||||
|
+ ,depth+1, mutate_ok);
|
||||||
|
|
||||||
|
if (flags & SCF_DO_STCLASS)
|
||||||
|
data->start_class = oclass;
|
||||||
|
@@ -5091,6 +5117,12 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
(void)ReREFCNT_inc(RExC_rx_sv);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if ( ( minnext > 0 && mincount >= SSize_t_MAX / minnext )
|
||||||
|
+ || min >= SSize_t_MAX - minnext * mincount )
|
||||||
|
+ {
|
||||||
|
+ FAIL("Regexp out of space");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
min += minnext * mincount;
|
||||||
|
is_inf_internal |= deltanext == SSize_t_MAX
|
||||||
|
|| (maxcount == REG_INFTY && minnext + deltanext > 0);
|
||||||
|
@@ -5105,7 +5137,8 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
if ( OP(oscan) == CURLYX && data
|
||||||
|
&& data->flags & SF_IN_PAR
|
||||||
|
&& !(data->flags & SF_HAS_EVAL)
|
||||||
|
- && !deltanext && minnext == 1 ) {
|
||||||
|
+ && !deltanext && minnext == 1
|
||||||
|
+ && mutate_ok ) {
|
||||||
|
/* Try to optimize to CURLYN. */
|
||||||
|
regnode *nxt = NEXTOPER(oscan) + EXTRA_STEP_2ARGS;
|
||||||
|
regnode * const nxt1 = nxt;
|
||||||
|
@@ -5155,6 +5188,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
/* Nor characters whose fold at run-time may be
|
||||||
|
* multi-character */
|
||||||
|
&& ! (RExC_seen & REG_UNFOLDED_MULTI_SEEN)
|
||||||
|
+ && mutate_ok
|
||||||
|
) {
|
||||||
|
/* XXXX How to optimize if data == 0? */
|
||||||
|
/* Optimize to a simpler form. */
|
||||||
|
@@ -5201,7 +5235,7 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_
|
||||||
|
#endif
|
||||||
|
/* Optimize again: */
|
||||||
|
study_chunk(pRExC_state, &nxt1, minlenp, &deltanext, nxt,
|
||||||
|
- NULL, stopparen, recursed_depth, NULL, 0,depth+1);
|
||||||
|
+ NULL, stopparen, recursed_depth, NULL, 0,depth+1, mutate_ok);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
oscan->flags = 0;
|
||||||
|
@@ -5328,11 +5362,7 @@ Perl_re_printf( aTHX_ "LHS=%" UVuf " RH
|
||||||
|
if (data && (fl & SF_HAS_EVAL))
|
||||||
|
data->flags |= SF_HAS_EVAL;
|
||||||
|
optimize_curly_tail:
|
||||||
|
- if (OP(oscan) != CURLYX) {
|
||||||
|
- while (PL_regkind[OP(next = regnext(oscan))] == NOTHING
|
||||||
|
- && NEXT_OFF(next))
|
||||||
|
- NEXT_OFF(oscan) += NEXT_OFF(next);
|
||||||
|
- }
|
||||||
|
+ rck_elide_nothing(oscan);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
default:
|
||||||
|
@@ -5592,7 +5622,7 @@ Perl_re_printf( aTHX_ "LHS=%" UVuf " RH
|
||||||
|
nscan = NEXTOPER(NEXTOPER(scan));
|
||||||
|
minnext = study_chunk(pRExC_state, &nscan, minlenp, &deltanext,
|
||||||
|
last, &data_fake, stopparen,
|
||||||
|
- recursed_depth, NULL, f, depth+1);
|
||||||
|
+ recursed_depth, NULL, f, depth+1, mutate_ok);
|
||||||
|
if (scan->flags) {
|
||||||
|
if (deltanext) {
|
||||||
|
FAIL("Variable length lookbehind not implemented");
|
||||||
|
@@ -5681,7 +5711,7 @@ Perl_re_printf( aTHX_ "LHS=%" UVuf " RH
|
||||||
|
*minnextp = study_chunk(pRExC_state, &nscan, minnextp,
|
||||||
|
&deltanext, last, &data_fake,
|
||||||
|
stopparen, recursed_depth, NULL,
|
||||||
|
- f,depth+1);
|
||||||
|
+ f,depth+1, mutate_ok);
|
||||||
|
if (scan->flags) {
|
||||||
|
if (deltanext) {
|
||||||
|
FAIL("Variable length lookbehind not implemented");
|
||||||
|
@@ -5841,7 +5871,7 @@ Perl_re_printf( aTHX_ "LHS=%" UVuf " RH
|
||||||
|
branches even though they arent otherwise used. */
|
||||||
|
minnext = study_chunk(pRExC_state, &scan, minlenp,
|
||||||
|
&deltanext, (regnode *)nextbranch, &data_fake,
|
||||||
|
- stopparen, recursed_depth, NULL, f,depth+1);
|
||||||
|
+ stopparen, recursed_depth, NULL, f,depth+1, mutate_ok);
|
||||||
|
}
|
||||||
|
if (nextbranch && PL_regkind[OP(nextbranch)]==BRANCH)
|
||||||
|
nextbranch= regnext((regnode*)nextbranch);
|
||||||
|
@@ -7520,7 +7550,7 @@ Perl_re_op_compile(pTHX_ SV ** const pat
|
||||||
|
&data, -1, 0, NULL,
|
||||||
|
SCF_DO_SUBSTR | SCF_WHILEM_VISITED_POS | stclass_flag
|
||||||
|
| (restudied ? SCF_TRIE_DOING_RESTUDY : 0),
|
||||||
|
- 0);
|
||||||
|
+ 0, TRUE);
|
||||||
|
|
||||||
|
|
||||||
|
CHECK_RESTUDY_GOTO_butfirst(LEAVE_with_name("study_chunk"));
|
||||||
|
@@ -7666,7 +7696,7 @@ Perl_re_op_compile(pTHX_ SV ** const pat
|
||||||
|
SCF_DO_STCLASS_AND|SCF_WHILEM_VISITED_POS|(restudied
|
||||||
|
? SCF_TRIE_DOING_RESTUDY
|
||||||
|
: 0),
|
||||||
|
- 0);
|
||||||
|
+ 0, TRUE);
|
||||||
|
|
||||||
|
CHECK_RESTUDY_GOTO_butfirst(NOOP);
|
||||||
|
|
781
perl.changes
Normal file
781
perl.changes
Normal file
|
@ -0,0 +1,781 @@
|
||||||
|
* Wed Jul 5 2023 mls@suse.de
|
||||||
|
- enable TLS cert verification in CPAN [bnc#1210999] [CVE-2023-31484]
|
||||||
|
new patch: perl-cpan_verify_cert.diff
|
||||||
|
* Fri Sep 2 2022 mls@suse.de
|
||||||
|
- fix File::Path rmtree/remove_tree race condition
|
||||||
|
[bnc#1047178] [CVE-2017-6512]
|
||||||
|
new patch: perl-file_path_rmtree_fchmod.diff
|
||||||
|
* Thu Mar 31 2022 ali.abdallah@suse.com
|
||||||
|
- Stabilize Socket::VERSION comparisons [bnc#1193489]
|
||||||
|
new patch: perl-Stabilize-Socket-VERSION-comparisons.patch
|
||||||
|
* Fri Oct 30 2020 mls@suse.de
|
||||||
|
- Split DB_File module into a seperate perl-core-DB_File package
|
||||||
|
[jsc#SLE-12212]
|
||||||
|
* add Recommends: perl-core-DB_File to the perl package
|
||||||
|
- Fix build with newer glibc versions
|
||||||
|
new patch: perl-saltbits.diff
|
||||||
|
* Tue Jun 9 2020 mls@suse.de
|
||||||
|
- Fix various security issues in the study_chunk function
|
||||||
|
[bnc#1171863] [CVE-2020-10543]
|
||||||
|
[bnc#1171864] [CVE-2020-10878]
|
||||||
|
[bnc#1171866] [CVE-2020-12723]
|
||||||
|
new patch: perl-study.diff
|
||||||
|
- Comment out bad warning in features.ph file [bnc#1172348]
|
||||||
|
* Wed Feb 5 2020 mls@suse.de
|
||||||
|
- Backport perl-fix2020.patch to make timelocal calls work in
|
||||||
|
the year 2020 [bnc#1102840] [bnc#1160039]
|
||||||
|
new patch: perl-fix2020.patch
|
||||||
|
* Wed Nov 21 2018 mls@suse.de
|
||||||
|
- fix heap-based buffer overflow in regex
|
||||||
|
[bnc#1114686] [CVE-2018-18314]
|
||||||
|
new patch: perl-extended-charclass-assert.diff
|
||||||
|
- fix heap-buffer-overflow read if regex contains \0 chars
|
||||||
|
[bnc#1114681] [CVE-2018-18313]
|
||||||
|
new patch: perl-regcomp-strchr-memchr.diff
|
||||||
|
- fix reg_node overrun
|
||||||
|
[bnc#1114675] [CVE-2018-18312]
|
||||||
|
new patch: perl-reg-node-overrun.diff
|
||||||
|
- fix integer overflow with oversize environment
|
||||||
|
[bnc#1114674] [CVE-2018-18311]
|
||||||
|
new patch: perl-setenv-integer-wrap.diff
|
||||||
|
* Wed Jun 27 2018 mls@suse.de
|
||||||
|
- fix Archive::Tar directory traversal vulnerability [bnc#1096718]
|
||||||
|
[CVE-2018-12015]
|
||||||
|
new patch: perl-archive-tar-dirtrav.diff
|
||||||
|
* Thu Feb 22 2018 fvogt@suse.com
|
||||||
|
- Use %%license (boo#1082318)
|
||||||
|
* Mon Jan 22 2018 schwab@suse.de
|
||||||
|
- posix-sigaction.patch: make sure Perl_sighandler is always installed
|
||||||
|
with SA_SIGINFO (bsc#1064697)
|
||||||
|
* Wed Jan 10 2018 normand@linux.vnet.ibm.com
|
||||||
|
- ignore make check transient errors for PowerPC
|
||||||
|
that are reported since 20170907
|
||||||
|
bypass boo#1063176
|
||||||
|
new patch: perl_skip_flaky_tests_powerpc.patch
|
||||||
|
* Mon Dec 4 2017 bwiedemann@suse.com
|
||||||
|
- Add perl-reproducible.patch to make build reproducible (boo#1047218)
|
||||||
|
* Thu Nov 23 2017 rbrown@suse.com
|
||||||
|
- Replace references to /var/adm/fillup-templates with new
|
||||||
|
%%_fillupdir macro (boo#1069468)
|
||||||
|
* Sat Sep 23 2017 coolo@suse.com
|
||||||
|
- update to perl-5.26.1
|
||||||
|
* [CVE-2017-12837] Heap buffer overflow in regular expression compiler
|
||||||
|
* [CVE-2017-12883] Buffer over-read in regular expression parser
|
||||||
|
* tons of bug fixes
|
||||||
|
- update list of obsoletes
|
||||||
|
* Wed Aug 30 2017 mls@suse.de
|
||||||
|
- update to perl-5.26.0
|
||||||
|
* "." no longer in @INC
|
||||||
|
* "do" may now warn
|
||||||
|
* regexp: a literal left brace "{" should be escaped
|
||||||
|
* lexical subroutines are no longer experimental
|
||||||
|
* indented Here-documents
|
||||||
|
* new regular expression modifier /xx
|
||||||
|
* declaring a reference to a variable
|
||||||
|
* unicode 9.0 is now supported
|
||||||
|
* new Hash Function For 64-bit Builds
|
||||||
|
- rename perl-5.24.0.dif to perl-5.26.0.dif
|
||||||
|
- remove obsolete perl-avoid-warnings.patch
|
||||||
|
- remove obsolete Compress-Raw-Zlib-2.071-zlib-1.2.11.patch
|
||||||
|
* Thu May 18 2017 tchvatal@suse.com
|
||||||
|
- Remove patch from previous commit, does not work:
|
||||||
|
* Compress-Raw-Zlib-2.071-Adapt-tests-to-zlib-1.2.11.patch
|
||||||
|
- Add patch taken from upstream release instead:
|
||||||
|
* Compress-Raw-Zlib-2.071-zlib-1.2.11.patch
|
||||||
|
* Wed May 10 2017 mpluskal@suse.com
|
||||||
|
- Fix building with zlib-1.2.10 (RT#119762):
|
||||||
|
* Compress-Raw-Zlib-2.071-Adapt-tests-to-zlib-1.2.11.patch
|
||||||
|
* Wed May 3 2017 coolo@suse.com
|
||||||
|
- Update to perl-5.24.1
|
||||||
|
- Di switch is now required for PerlIO debugging output
|
||||||
|
Previously PerlIO debugging output would be sent to the file specified
|
||||||
|
by the "PERLIO_DEBUG" environment variable if perl wasn't running setuid
|
||||||
|
and the -T or -t switches hadn't been parsed yet.
|
||||||
|
If perl performed output at a point where it hadn't yet parsed its
|
||||||
|
switches this could result in perl creating or overwriting the file
|
||||||
|
named by "PERLIO_DEBUG" even when the -T switch had been supplied.
|
||||||
|
Perl now requires the -Di switch to produce PerlIO debugging output. By
|
||||||
|
default this is written to "stderr", but can optionally be redirected to
|
||||||
|
a file by setting the "PERLIO_DEBUG" environment variable.
|
||||||
|
If perl is running setuid or the -T switch was supplied "PERLIO_DEBUG"
|
||||||
|
is ignored and the debugging output is sent to "stderr" as for any other
|
||||||
|
- D switch.
|
||||||
|
Core modules and tools no longer search "." for optional modules
|
||||||
|
The tools and many modules supplied in core no longer search the default
|
||||||
|
current directory entry in @INC for optional modules. For example,
|
||||||
|
Storable will remove the final "." from @INC before trying to load
|
||||||
|
Log::Agent.
|
||||||
|
This prevents an attacker injecting an optional module into a process
|
||||||
|
run by another user where the current directory is writable by the
|
||||||
|
attacker, e.g. the /tmp directory.
|
||||||
|
- Refresh patches
|
||||||
|
* Sun Jun 26 2016 schwab@suse.de
|
||||||
|
- Move parent.pm to perl-base, used by File::Temp
|
||||||
|
* Thu Jun 2 2016 idonmez@suse.com
|
||||||
|
- Add perl-avoid-warnings.patch to fix a warning in cop.h, which
|
||||||
|
breaks perf build due to -Werror. Already upstream.
|
||||||
|
* Tue May 10 2016 mls@suse.de
|
||||||
|
- Update to perl-5.24.0
|
||||||
|
* postfix dereferencing is no longer experimental
|
||||||
|
* unicode 8.0 is now supported
|
||||||
|
* perl will now croak when closing an in-place output file fails
|
||||||
|
* new "\b{lb}" boundary in regular expressions
|
||||||
|
* qr/(?[ ])/" now works in UTF-8 locales
|
||||||
|
* integer shift ("<<" and ">>") now more explicitly defined
|
||||||
|
* printf and sprintf now allow reordered precision arguments
|
||||||
|
* more fields provided to "sigaction" callback with "SA_SIGINFO"
|
||||||
|
* hashbang redirection to Perl 6
|
||||||
|
* set proper umask before calling mkstemp(3)
|
||||||
|
* fix loss of taint in canonpath
|
||||||
|
* remove duplicate environment variables from "environ"
|
||||||
|
- rename patch perl-5.22.0.dif to perl-5.24.0.dif
|
||||||
|
* Fri Feb 12 2016 idonmez@suse.com
|
||||||
|
- Update to perl-5.22.1
|
||||||
|
* Several bugs, including a segmentation fault, have been fixed
|
||||||
|
with the bounds checking constructs (introduced in Perl 5.22)
|
||||||
|
* Module::CoreList has been upgraded from version 5.20150520 to
|
||||||
|
5.20151213.
|
||||||
|
* PerlIO::scalar has been upgraded from version 0.22 to 0.23.
|
||||||
|
* POSIX has been upgraded from version 1.53 to 1.53_01.
|
||||||
|
* Storable has been upgraded from version 2.53 to 2.53_01.
|
||||||
|
* warnings has been upgraded from version 1.32 to 1.34.
|
||||||
|
* See perldelta.pod for all the changes.
|
||||||
|
- Update perl-5.22.0.dif stop patching CPAN.pm, it was MacOS only
|
||||||
|
and was breaking tests (due to SHA-1 mismatch).
|
||||||
|
* Thu Jan 7 2016 bwiedemann@suse.com
|
||||||
|
- fix perl_gen_filelist macro to not fail on foo.1 man page
|
||||||
|
* Mon Dec 7 2015 opensuse@dstoecker.de
|
||||||
|
- prevent bad RPM provides for Math::BigInt and DB
|
||||||
|
(patch file perl-5.22.0_wrong_rpm_provides.diff)
|
||||||
|
* Mon Jun 22 2015 dimstar@opensuse.org
|
||||||
|
- Reformat baselibs.conf.
|
||||||
|
* Tue Jun 9 2015 hsk@imb-jena.de
|
||||||
|
- update to perl-5.22.0
|
||||||
|
* several new experimental features
|
||||||
|
* new <<>> (double-diamond) operator
|
||||||
|
* new "\b" boundaries in REs, w.r.t. Unicode
|
||||||
|
* non-capturing RE flag "/n"
|
||||||
|
* Unicode 7.0
|
||||||
|
* "defined(@array)", "defined(%%hash)" are now fatal
|
||||||
|
* unescaped literal "{" in a pattern results in deprecation warning
|
||||||
|
* several modules updated
|
||||||
|
* modules CGI, Module::Build no longer included
|
||||||
|
* for a complete list of changes see perldelta.pod
|
||||||
|
- perl-5.20.0.dif changed to fit 5.22.0, and renamed to perl-5.22.0.dif
|
||||||
|
- changed patches to fit 5.22.0: perl-5.18.2-overflow.diff,
|
||||||
|
perl-netcmdutf8.diff, perl-regexp-refoverflow.diff,
|
||||||
|
perl-saverecontext.diff
|
||||||
|
- dropped patches (now upstream): DataDumper-no-infinite-recursion.diff,
|
||||||
|
perl-5.20.2-Fix-Errno.pm-generation-for-gcc-5.0.patch,
|
||||||
|
perl-5.21.8-h2ph-correct-handling-of-hex-constants-for-the-pream.patch,
|
||||||
|
perl-5.21.8-lib-h2ph.t-to-test-generated-t-_h2ph_pre.ph-instead-.patch
|
||||||
|
* Mon Feb 23 2015 idonmez@suse.com
|
||||||
|
- Add multiple patches for gcc5 support, tracked by RT#123784
|
||||||
|
* perl-5.20.2-Fix-Errno.pm-generation-for-gcc-5.0.patch
|
||||||
|
* perl-5.21.8-h2ph-correct-handling-of-hex-constants-for-the-pream.patch
|
||||||
|
* perl-5.21.8-lib-h2ph.t-to-test-generated-t-_h2ph_pre.ph-instead-.patch
|
||||||
|
* Thu Feb 5 2015 coolo@suse.com
|
||||||
|
- use rm with -f to avoid prompts for rpmbuild in terminals
|
||||||
|
* Wed Sep 17 2014 mls@suse.de
|
||||||
|
- update to perl-5.20.1
|
||||||
|
* some performance improvements and bug fixes
|
||||||
|
* utf8, version, File::Copy, Exporter and other modules
|
||||||
|
have been updated
|
||||||
|
- fix infinite recursion in Data::Dumper [bnc#896715]
|
||||||
|
new patch: DataDumper-no-infinite-recursion.diff
|
||||||
|
* Sun Jun 8 2014 coolo@suse.com
|
||||||
|
- fix some obsoletes
|
||||||
|
* Mon Jun 2 2014 mls@suse.de
|
||||||
|
- update to perl-5.20.0
|
||||||
|
* experimental subroutine signatures
|
||||||
|
* new slice syntax
|
||||||
|
* experimental postfix dereferencing
|
||||||
|
* unicode 6.3 support
|
||||||
|
* better 64-bit support
|
||||||
|
* do" can no longer be used to call subroutines
|
||||||
|
* tainting now conforms to documentation
|
||||||
|
* performance enhancements
|
||||||
|
* multiple modules updated to current version
|
||||||
|
- perl-5.18.0.dif renamed to perl-5.20.0.dif
|
||||||
|
- dropped patches: perl-db6.diff, perl-gracefull-net-ftp.diff,
|
||||||
|
perl-threads.t-timeout.diff
|
||||||
|
* Mon Apr 7 2014 mls@suse.de
|
||||||
|
- move English.pm into perl-base [bnc#869736]
|
||||||
|
* Tue Mar 25 2014 rguenther@suse.com
|
||||||
|
- perl-5.18.2-overflow.diff: avoid undefined overflow in S_sv_2iuv_common
|
||||||
|
* Sat Jan 18 2014 schwab@suse.de
|
||||||
|
- perl-threads.t-timeout.diff: increase timeout in t/op/threads.t
|
||||||
|
* Wed Jan 8 2014 mls@suse.de
|
||||||
|
- update to perl-5.18.2
|
||||||
|
* updates for the B::Concise, English, File::Glob modules
|
||||||
|
* a lexical subs regression has been fixed
|
||||||
|
* a regression when using SUPER with AUTOLOAD has been fixed
|
||||||
|
* a buffer overflow with very long identifiers has been fixed
|
||||||
|
* some other minor bug fixes
|
||||||
|
- perl-reg89.diff is no longer needed
|
||||||
|
* Wed Sep 4 2013 mls@suse.de
|
||||||
|
- add libperl_requires macro
|
||||||
|
* Tue Sep 3 2013 mls@suse.de
|
||||||
|
- update to perl-5.18.1
|
||||||
|
* B has been upgraded from 1.42 to 1.42_01
|
||||||
|
* Digest::SHA has been upgraded from 5.84 to 5.84_01
|
||||||
|
* Module::CoreList has been upgraded from 2.89 to 2.96
|
||||||
|
* A number of memory leaks in regexp have been plugged
|
||||||
|
* The debugger's man command been fixed
|
||||||
|
* @_ is now correctly visible in the debugger
|
||||||
|
* Lexical constants no longer crash when inlined
|
||||||
|
* Deep recursion warnings no longer crash lexical subroutines
|
||||||
|
- backport backref fix from upstream
|
||||||
|
- fix INC containing directories multiple times
|
||||||
|
* Thu Aug 8 2013 dvaleev@suse.com
|
||||||
|
- skip itimer test from Timer-HiRes for powerpc. Build hosts
|
||||||
|
are overloaded, building locally shows tests are passed
|
||||||
|
(skip_time_hires.patch)
|
||||||
|
* Sat Jun 15 2013 jengelh@inai.de
|
||||||
|
- Add perl-db6.diff to bring the DB_File module up to version 1.828
|
||||||
|
where it supports building with libdb-6.0.
|
||||||
|
* Tue Jun 11 2013 coolo@suse.com
|
||||||
|
- moving the provides of perl-macros to perl-doc so we can check
|
||||||
|
for duplicated man pages in the gen_filelist macro
|
||||||
|
* Tue Jun 11 2013 coolo@suse.com
|
||||||
|
- obsolete perl-PathTools and other modules in core
|
||||||
|
* Thu Jun 6 2013 mls@suse.de
|
||||||
|
- update to 5.18.0
|
||||||
|
* new handling of experimental features
|
||||||
|
* new hash functions to improve security
|
||||||
|
* better hash randomization
|
||||||
|
* upgrade to Unicode 6.2
|
||||||
|
* support for computed labels
|
||||||
|
* vertical tabs are now whitespace
|
||||||
|
* smartmatch is experimental again
|
||||||
|
* lots of bug fixes
|
||||||
|
- change perl_requires macro to use MODULE_COMPAT form
|
||||||
|
* Mon May 20 2013 schwab@suse.de
|
||||||
|
- Disable testsuite only on qemu user space build
|
||||||
|
* Fri Nov 16 2012 coolo@suse.com
|
||||||
|
- update to 5.16.2
|
||||||
|
* <Module::CoreList> has been upgraded from version 2.70 to version 2.76
|
||||||
|
Perl 5.16.2 represents approximately 2 months of development since Perl
|
||||||
|
5.16.1 and contains approximately 740 lines of changes across 20 files
|
||||||
|
from 9 authors.
|
||||||
|
* Wed Nov 14 2012 opensuse@dstoecker.de
|
||||||
|
- fix version for Module::Build obsoletes, so installing newer version is possible
|
||||||
|
* Tue Sep 4 2012 coolo@suse.com
|
||||||
|
- update to 5.16.1
|
||||||
|
* an off-by-two error in Scalar-List-Util has been fixed
|
||||||
|
* many perl modules updated
|
||||||
|
* Tue Jun 12 2012 coolo@suse.com
|
||||||
|
- update perl-base file list
|
||||||
|
* Wed May 30 2012 coolo@suse.com
|
||||||
|
- provide a higher version for Module::Build to calm down rpm
|
||||||
|
* Wed May 23 2012 mls@suse.de
|
||||||
|
- update to 5.16.0
|
||||||
|
* new __SUB__ token to reference current sub
|
||||||
|
* more consistent eval
|
||||||
|
* ties can now be weakended
|
||||||
|
* supports (almost) unicode 6.1
|
||||||
|
* proper supports for unicode in symbol names
|
||||||
|
* new foldcase function fc()
|
||||||
|
* continue no longer requires the switch feature
|
||||||
|
* removed LinuxThreads hack for $$ and getppid
|
||||||
|
* performance optimizations
|
||||||
|
* Mon Apr 2 2012 coolo@suse.com
|
||||||
|
- correct license statement
|
||||||
|
* Fri Jan 13 2012 mls@suse.de
|
||||||
|
- bring back NDBM_File [bnc#732929]
|
||||||
|
* Tue Oct 25 2011 mls@suse.de
|
||||||
|
- update to 5.14.2
|
||||||
|
* calling bsd_glob with GLOB_ALTDIRFUNC no longer segfaults
|
||||||
|
* a heap overflow in decode_xs was fixed
|
||||||
|
* a memory leak in caller() was fixed
|
||||||
|
* modules were updated to their latest version
|
||||||
|
* several other bug fixes, see perldelta
|
||||||
|
* Fri Jun 17 2011 mls@suse.de
|
||||||
|
- update to 5.14.1
|
||||||
|
- B::Deparse has been upgraded
|
||||||
|
- Pod::Perldoc has been upgraded
|
||||||
|
- given, when and default are now listed in perlfunc
|
||||||
|
- multiple other doc fixes and clarifications
|
||||||
|
- several bug fixes
|
||||||
|
* Thu May 26 2011 mls@suse.de
|
||||||
|
- backport CBuilder fix that keeps it from overwriting ccflags
|
||||||
|
from the perl config if CCFLAGS is set in the environment
|
||||||
|
* Tue May 17 2011 mls@suse.de
|
||||||
|
- Test::Simple is actually 0.98
|
||||||
|
* Mon May 16 2011 mls@suse.de
|
||||||
|
- update to 5.14.0
|
||||||
|
* unicode version 6.0 is now supported (mostly)
|
||||||
|
* any unsigned value can be encoded as a character
|
||||||
|
* some regexp enhancements, e.g. s///r option
|
||||||
|
* array and hash container functions accept references
|
||||||
|
* package block syntax
|
||||||
|
* overridable tie functions
|
||||||
|
* assignment to $0 works again
|
||||||
|
* improved IPv6 support in the Socket module
|
||||||
|
- fix regexp crash in reg_numbered_buff_fetch [bnc#676086]
|
||||||
|
[CVE-2010-4777]
|
||||||
|
- move unicode files from perl-doc to perl again [bnc#678877]
|
||||||
|
- remove feedback@suse.de mail address, it no longer exists
|
||||||
|
[bnc#657625]
|
||||||
|
- support unversioned site_perl include directory
|
||||||
|
* Wed Feb 23 2011 mls@suse.de
|
||||||
|
- versionify perl-Test-Simple provides/obsoletes
|
||||||
|
* Mon Feb 14 2011 mls@suse.de
|
||||||
|
- update to perl-5.12.3 final
|
||||||
|
- remove obsolete perl-cgi-injection.diff
|
||||||
|
- remove obsolete perl-constprint.diff
|
||||||
|
* Fri Jan 28 2011 lnussel@suse.de
|
||||||
|
- Suggest instead of Recommend perl-doc. It's not useful on a
|
||||||
|
end-user system and saves 20MB on a minimal installation.
|
||||||
|
* Fri Jan 14 2011 mls@suse.de
|
||||||
|
- update to perl-5.12.3-RC1
|
||||||
|
* bug fix only release
|
||||||
|
* lvalue sub return values are now COW
|
||||||
|
- fix CGI injection bugs, CVE-2010-2761, CVE-2010-4410,
|
||||||
|
CVE-2010-4411 [bnc#657343]
|
||||||
|
* Tue Nov 30 2010 coolo@novell.com
|
||||||
|
- added a new macro %%perl_requires
|
||||||
|
* Mon Nov 29 2010 coolo@novell.com
|
||||||
|
- simplify macro logic a bit
|
||||||
|
* Mon Nov 22 2010 chris@computersalat.de
|
||||||
|
- rework process_packlist macro
|
||||||
|
o remove .packlist, perllocal.pod file
|
||||||
|
hence no /var/adm/perl-modules/perl-{cpan_name}
|
||||||
|
* Wed Nov 17 2010 meissner@suse.de
|
||||||
|
- increase the t/HiRes.t skew (for ppc).
|
||||||
|
* Mon Sep 27 2010 coolo@novell.com
|
||||||
|
- update to perl-5.12.2
|
||||||
|
This release contains minor bug fixes and updates of several
|
||||||
|
core modules, as well as minor documentation updates.
|
||||||
|
* Wed Jul 28 2010 mls@suse.de
|
||||||
|
- fix constant print issue [bnc#621856]
|
||||||
|
- fix h2ph so that _h2ph_pre.ph doesn't lead to warnings
|
||||||
|
- do not add vendorlib/auto to filelist [bnc#624628]
|
||||||
|
* Mon Jun 28 2010 jengelh@medozas.de
|
||||||
|
- use %%_smp_mflags
|
||||||
|
* Fri Jun 18 2010 mls@suse.de
|
||||||
|
- update to perl-5.12.1
|
||||||
|
* updated CGI.pm to 3.49
|
||||||
|
* updated Pod::Simple to 3.13
|
||||||
|
* updated Safe to 2.27
|
||||||
|
* fixed a couple of bugs and regressions (see perldelta)
|
||||||
|
* Mon May 24 2010 bg@novell.com
|
||||||
|
- fix for hppa [deb#543731]
|
||||||
|
* Fri May 21 2010 mls@suse.de
|
||||||
|
- also run h2ph on /usr/include/linux [bnc#603840]
|
||||||
|
* Tue Apr 13 2010 mls@suse.de
|
||||||
|
- update to perl-5.12.0 final
|
||||||
|
- move Compress::Zlib.pm back into perlpriv directory,
|
||||||
|
moved autosplit file into it as well
|
||||||
|
* Fri Apr 9 2010 mls@suse.de
|
||||||
|
- update to perl-5.12.0-RC4
|
||||||
|
* documentation updates
|
||||||
|
* don't initialize end in pp_reverse when begin is NULL
|
||||||
|
* fix eval + feature.pm + syntax error segfault
|
||||||
|
- move Compress::Zlib.pm into perlarch directory
|
||||||
|
* Sun Apr 4 2010 aj@suse.de
|
||||||
|
- Provide perl-base = pversion-release as well since this is
|
||||||
|
required by some packages.
|
||||||
|
* Wed Mar 31 2010 mls@suse.de
|
||||||
|
- update to perl-5.12.0-RC1
|
||||||
|
* mostly documentation updates
|
||||||
|
* some regression fixes
|
||||||
|
* Wed Mar 24 2010 mls@suse.de
|
||||||
|
- update to perl-5.12.0-RC0
|
||||||
|
* new ... operator
|
||||||
|
* unicode improvements
|
||||||
|
* "each" now also works on arrays
|
||||||
|
* support for "delete local"
|
||||||
|
* suidperl was dropped
|
||||||
|
* Fri Feb 12 2010 chris@computersalat.de
|
||||||
|
- fix for macros.perl
|
||||||
|
o only add mandir if exist :)
|
||||||
|
* Thu Jan 28 2010 rguenther@suse.de
|
||||||
|
- add libbz2-devel to BuildRequires
|
||||||
|
* Sun Dec 13 2009 jengelh@medozas.de
|
||||||
|
- enable parallel building
|
||||||
|
- package documentation as noarch
|
||||||
|
* Sun Oct 25 2009 coolo@novell.com
|
||||||
|
- update to perl-5.10.1 again
|
||||||
|
* Tue Sep 8 2009 mls@suse.de
|
||||||
|
- backport upstream fixes for POSIX module to avoid clashes
|
||||||
|
with Fcntl [bnc#446098], [bnc#515948]
|
||||||
|
- backport upstream fix for ISA assertion failure [bnc#528423]
|
||||||
|
- move unicode files from perl-doc to perl, otherwise some
|
||||||
|
perl modules will not work
|
||||||
|
* Sat Sep 5 2009 coolo@novell.com
|
||||||
|
- revert to 5.10.0, too many problems (10 failures and 162
|
||||||
|
cyclic dependencies for d:l:p)
|
||||||
|
* Thu Sep 3 2009 mls@suse.de
|
||||||
|
- update to perl-5.10.1 to get rid of some patches
|
||||||
|
(the update mostly consists of changes in the
|
||||||
|
experimental features)
|
||||||
|
* Tue Jul 7 2009 coolo@novell.com
|
||||||
|
- disable as-needed as it breaks at least make test
|
||||||
|
* Tue Jul 7 2009 coolo@novell.com
|
||||||
|
- fix macros file
|
||||||
|
* Mon Jun 29 2009 chris@computersalat.de
|
||||||
|
- spec mods
|
||||||
|
o added lost Provides/Obsoletes perl-macros
|
||||||
|
o cleanup tags
|
||||||
|
* Fri Jun 26 2009 chris@computersalat.de
|
||||||
|
- fix for perl_gen_filelist
|
||||||
|
o add test for
|
||||||
|
- f "${RPM_BUILD_ROOT}/var/adm/perl-modules/{name}"
|
||||||
|
* Fri Jun 26 2009 mls@suse.de
|
||||||
|
- add macros.perl, README.macros files contributed by
|
||||||
|
Christian <chris@computersalat.de>
|
||||||
|
- move perl specific macros from rpm macro file to macros.perl
|
||||||
|
* Wed Jun 10 2009 mls@suse.de
|
||||||
|
- fixed off-by-one in zlib inflate code [bnc#511241]
|
||||||
|
- fixed errorcount initialization [bnc#498425]
|
||||||
|
- fixed utf8 handling in Net::Cmd [bnc#493978]
|
||||||
|
- fixed performace degradation in syslog [bnc#489114]
|
||||||
|
* Wed Jan 14 2009 mls@suse.de
|
||||||
|
- work around nroff change [bnc#463444]
|
||||||
|
- fix another rmtree vulnerability [bnc#450385]
|
||||||
|
* Wed Jan 7 2009 olh@suse.de
|
||||||
|
- obsolete old -XXbit packages (bnc#437293)
|
||||||
|
* Wed Nov 26 2008 mls@suse.de
|
||||||
|
- add perl-base to baselibs.conf [bnc#448884]
|
||||||
|
- include everything arch dependand in baselibs packages
|
||||||
|
* Wed Nov 19 2008 mls@suse.de
|
||||||
|
- fix ph file generation [bnc#413218]
|
||||||
|
* Fri Aug 29 2008 rguenther@suse.de
|
||||||
|
- Add Tie/Hash.pm to perl-base. [bnc#421191]
|
||||||
|
* Mon Jul 14 2008 schwab@suse.de
|
||||||
|
- Fix another regexp backref overflow crash.
|
||||||
|
- Reenable testsuite on ppc64.
|
||||||
|
* Mon Jul 14 2008 mls@suse.de
|
||||||
|
- fix regexp backref overflow crash fix
|
||||||
|
* Fri Jul 11 2008 mls@suse.de
|
||||||
|
- fix bug File:Path that made synlink targets world-writable [bnc#402660]
|
||||||
|
- fix regexp backref overflow crash [bnc#372331]
|
||||||
|
* Tue May 6 2008 aj@suse.de
|
||||||
|
- Fix missing return value in configure script to silence rpmlint
|
||||||
|
checks.
|
||||||
|
* Fri Apr 11 2008 mls@suse.de
|
||||||
|
- compile with -DPERL_USE_SAFE_PUTENV [bnc#377543]
|
||||||
|
* Thu Apr 10 2008 ro@suse.de
|
||||||
|
- added baselibs.conf file to build xxbit packages
|
||||||
|
for multilib support
|
||||||
|
* Mon Mar 17 2008 coolo@suse.de
|
||||||
|
- fix path for generated perl bindings (bnc#371713)
|
||||||
|
* Sat Mar 15 2008 coolo@suse.de
|
||||||
|
- pod/perldiag.pod is needed in the base distribution
|
||||||
|
* Tue Mar 11 2008 coolo@suse.de
|
||||||
|
- after several discussions on how to decrease size of perl
|
||||||
|
distribution: split out perl-doc
|
||||||
|
- preparing blacklists for temporarly autorequires
|
||||||
|
* Mon Mar 10 2008 pth@suse.de
|
||||||
|
- Fix call to dbmclose in ext/ODBM_File/ODBM_File.xs
|
||||||
|
- Run 'make check' in %%check
|
||||||
|
* Tue Feb 19 2008 mls@suse.de
|
||||||
|
- fix bug in regexp engine [bnc#355233]
|
||||||
|
* Fri Jan 18 2008 mls@suse.de
|
||||||
|
- obsolete more packages
|
||||||
|
- fix bug in enc2xs [#354424]
|
||||||
|
* Tue Jan 15 2008 schwab@suse.de
|
||||||
|
- Remove broken test.
|
||||||
|
* Mon Jan 7 2008 mls@suse.de
|
||||||
|
- update to perl-5.10.0
|
||||||
|
* happy 20th birthday, perl!
|
||||||
|
* many new features, e.g. say, switch, state, dor, smart match
|
||||||
|
* regular expressions now even more convoluted
|
||||||
|
* some modules are now in core, e.g. zlib, digest::sha
|
||||||
|
* modules updated to current version
|
||||||
|
* see perldelta to know all of the glorious details
|
||||||
|
* Tue Nov 6 2007 mls@suse.de
|
||||||
|
- fix buffer overflow in regex engine CVE-2007-5116 (#332199)
|
||||||
|
* Wed Oct 31 2007 dmueller@suse.de
|
||||||
|
- update rpmlintrc
|
||||||
|
* Fri May 25 2007 ro@suse.de
|
||||||
|
- added rpmlintrc: ignore some devel files in perl package
|
||||||
|
* Mon May 21 2007 rguenther@suse.de
|
||||||
|
- Include Config_heavy.pl in perl-base.
|
||||||
|
* Fri May 11 2007 rguenther@suse.de
|
||||||
|
- Add all required directories to perl-base.
|
||||||
|
* Mon Apr 23 2007 rguenther@suse.de
|
||||||
|
- Split off a perl-base package containing /usr/bin/perl and
|
||||||
|
some basic modules.
|
||||||
|
- Depend on perl-base from perl.
|
||||||
|
* Mon Mar 26 2007 rguenther@suse.de
|
||||||
|
- Add gdbm-devel, ncurses-devel and zlib-devel BuildRequires.
|
||||||
|
* Wed Dec 27 2006 schwab@suse.de
|
||||||
|
- Fix makedepend.
|
||||||
|
* Wed Dec 20 2006 jw@suse.de
|
||||||
|
- graceful-net-ftp patch added.
|
||||||
|
Lousy FTP server responses could trigger silly error messages in Net::FTP
|
||||||
|
and had no usable status_line in LWP.
|
||||||
|
Now it is 500 + whatever message the server responded.
|
||||||
|
* Fri Feb 17 2006 mls@suse.de
|
||||||
|
- suppress prototype warning in autouse [#151459]
|
||||||
|
* Wed Feb 1 2006 mls@suse.de
|
||||||
|
- update to perl-5.8.8
|
||||||
|
- enable use64bitint on ppc/ppc64
|
||||||
|
* Sun Jan 29 2006 mls@suse.de
|
||||||
|
- converted neededforbuild to BuildRequires
|
||||||
|
* Sat Jan 28 2006 mls@suse.de
|
||||||
|
- update to perl-5.8.8-RC1
|
||||||
|
* Fri Dec 9 2005 mls@suse.de
|
||||||
|
- fix sprintf format string issues CVE-2005-3962 (#136360)
|
||||||
|
- added workaround for hanging debugger (#135559)
|
||||||
|
- moved SuSEconfig script to /usr/lib/perl5 (#130762)
|
||||||
|
* Tue Sep 6 2005 mls@suse.de
|
||||||
|
- fix infinite warn recursion by backporting change from bleadperl
|
||||||
|
[#115402]
|
||||||
|
* Thu Aug 18 2005 mls@suse.de
|
||||||
|
- remove postun, handle it with ghosts
|
||||||
|
* Thu Jul 28 2005 mls@suse.de
|
||||||
|
- deal with new Config_heavy.pl
|
||||||
|
* Mon Jul 25 2005 mls@suse.de
|
||||||
|
- add rmtree patch (CAN-2005-0448)
|
||||||
|
* Fri Jul 22 2005 lmuelle@suse.de
|
||||||
|
- update to perl-5.8.7
|
||||||
|
* Wed Apr 6 2005 meissner@suse.de
|
||||||
|
- moved # icecream 0 tag where it does not get removed by checkin.
|
||||||
|
* Wed Apr 6 2005 meissner@suse.de
|
||||||
|
- Disable icecream to avoid problem with gcc4 / libperl.so preload.
|
||||||
|
* Thu Mar 24 2005 uli@suse.de
|
||||||
|
- fixed to build on ARM
|
||||||
|
* Fri Feb 18 2005 mls@suse.de
|
||||||
|
- fix perlbug mail sending
|
||||||
|
* Thu Feb 17 2005 mls@suse.de
|
||||||
|
- fix broken :encoding(utf8)
|
||||||
|
* Fri Feb 4 2005 mls@suse.de
|
||||||
|
- fix CAN-2005-0155/CAN-2005-0156 (PERLIO_DEBUG)
|
||||||
|
- fix CAN-2004-0452 (File::Path::rmtree)
|
||||||
|
* Mon Nov 29 2004 mls@suse.de
|
||||||
|
- update to perl-5.8.6
|
||||||
|
* Thu Aug 26 2004 schwab@suse.de
|
||||||
|
- Remove gratuitous use of kernel header.
|
||||||
|
- Fix mkdir race.
|
||||||
|
* Wed Jul 28 2004 mls@suse.de
|
||||||
|
- update to perl-5.8.5
|
||||||
|
* Tue Mar 16 2004 mls@suse.de
|
||||||
|
- fix instmodsh tmp file usage
|
||||||
|
* Fri Feb 27 2004 mls@suse.de
|
||||||
|
- update to perl-5.8.3
|
||||||
|
* Mon Dec 8 2003 mls@suse.de
|
||||||
|
- fix setenv issue by making perl behave differently if used
|
||||||
|
embedded in an application (turns on PERL_USE_SAFE_PUTENV).
|
||||||
|
[#32548]
|
||||||
|
* Sun Nov 2 2003 adrian@suse.de
|
||||||
|
- add missing Requires for gzip (used in SuSEconfig.perl)
|
||||||
|
- make it possible to build as non-root
|
||||||
|
* Mon Oct 6 2003 mls@suse.de
|
||||||
|
- update to perl-5.8.1
|
||||||
|
- fix srand initialization problem [perl change #21397]
|
||||||
|
* Mon Sep 22 2003 mls@suse.de
|
||||||
|
- update to perl-5.8.1-RC5
|
||||||
|
* Fri Aug 22 2003 mls@suse.de
|
||||||
|
- update to perl-5.8.1-RC4
|
||||||
|
- added sysconfig metadata
|
||||||
|
- use /usr/lib/perl* in the filelist so /usr/lib/debug doesn't get
|
||||||
|
picked up
|
||||||
|
* Thu Aug 21 2003 mjancar@suse.cz
|
||||||
|
- use $RPM_OPT_FLAGS
|
||||||
|
* Fri Aug 1 2003 mls@suse.de
|
||||||
|
- fixed perlcc
|
||||||
|
* Thu Jul 31 2003 mls@suse.de
|
||||||
|
- update to perl-5.8.1-RC3
|
||||||
|
* Mon Jul 14 2003 mls@suse.de
|
||||||
|
- MM_Unix: fix vendor/siteman default path
|
||||||
|
* Fri Jul 11 2003 mls@suse.de
|
||||||
|
- create auto dirs in vendor_perl
|
||||||
|
* Fri Jul 11 2003 mls@suse.de
|
||||||
|
- update to perl-5.8.1-RC2
|
||||||
|
- use buildroot
|
||||||
|
* Wed Jun 11 2003 kukuk@suse.de
|
||||||
|
- Add auto subdirectory for perl modules
|
||||||
|
* Fri May 9 2003 ro@suse.de
|
||||||
|
- fix build with db-4.1
|
||||||
|
* Thu Feb 6 2003 mls@suse.de
|
||||||
|
- add sysconfig metadata to sysconfig.suseconfig-perl
|
||||||
|
- fix memory leak in socket creation
|
||||||
|
- restart stdio read/write when receiving EINTR
|
||||||
|
* Thu Jan 9 2003 mls@suse.de
|
||||||
|
- link with -lgdbm_compat when building ODBM_File
|
||||||
|
* Tue Sep 17 2002 ro@suse.de
|
||||||
|
- get all ph-files for bi-arch platforms
|
||||||
|
* Tue Sep 17 2002 mls@suse.de
|
||||||
|
- work around a bug in .ph file generation (#19664)
|
||||||
|
* Mon Sep 9 2002 mls@suse.de
|
||||||
|
- fix permissions of libperl.so
|
||||||
|
- added missing enc2xs binary
|
||||||
|
- create more .ph header files
|
||||||
|
- fixed h2ph enum handling
|
||||||
|
- (fixes bug #19175)
|
||||||
|
* Fri Aug 23 2002 mls@suse.de
|
||||||
|
- Fix bug in conversion of literals to floating point
|
||||||
|
- Add workaround for glibc crypt_r() bug
|
||||||
|
* Fri Aug 9 2002 mls@suse.de
|
||||||
|
- fix libs to include pthreads if threads are selected and
|
||||||
|
/lib64/libc.so.6 exists
|
||||||
|
* Thu Aug 8 2002 mls@suse.de
|
||||||
|
- enabled thread support
|
||||||
|
* Wed Aug 7 2002 mls@suse.de
|
||||||
|
- corrected file list, added obsolete entries also to provides
|
||||||
|
* Wed Jul 31 2002 mls@suse.de
|
||||||
|
- Added Obsoletes line to obsolete all modules now packed
|
||||||
|
with the core perl
|
||||||
|
* Fri Jul 26 2002 kukuk@suse.de
|
||||||
|
- Add a Provide "perl-base" [Bug #17259]
|
||||||
|
* Tue Jul 23 2002 mls@suse.de
|
||||||
|
- Allow missing tests in 'make test'
|
||||||
|
- delete broken lib/File/Find/t/find.t test
|
||||||
|
* Tue Jul 23 2002 mls@suse.de
|
||||||
|
- MM_Unix.pm: use INSTALLARCHLIB instead of INSTALLSITEARCH to
|
||||||
|
store the site perllocal.pod file, like the printed message says
|
||||||
|
- added missing man3 pages
|
||||||
|
* Mon Jul 22 2002 mls@suse.de
|
||||||
|
- MM_Unix.pm: allow to overwrite PREFIX in the makefile, use
|
||||||
|
better default for installsiteman{1,3}dir
|
||||||
|
* Fri Jul 19 2002 mls@suse.de
|
||||||
|
- update to perl-5.8.0
|
||||||
|
* Fri Jul 5 2002 kukuk@suse.de
|
||||||
|
- Use %%ix86 macro
|
||||||
|
* Tue Jun 18 2002 uli@suse.de
|
||||||
|
- disable check on armv4l
|
||||||
|
* Mon Jun 10 2002 mls@suse.de
|
||||||
|
- Pod::Man: don't put the generation date in the man pages
|
||||||
|
* Thu Jun 6 2002 olh@suse.de
|
||||||
|
- disable make check on ppc64, enable lfs test on ppc
|
||||||
|
* Thu Mar 14 2002 mls@suse.de
|
||||||
|
- Allow XSUBs as AUTOLOAD functions, worked in 5.6.0, needed
|
||||||
|
for perl-Qt
|
||||||
|
* Fri Feb 22 2002 mls@suse.de
|
||||||
|
- Fixed File::Find if no_chdir is set (Ticket 20020213990000277)
|
||||||
|
* Wed Feb 20 2002 mls@suse.de
|
||||||
|
- Build DynaLoader.a with -fPIC to make mod_perl work on s390x
|
||||||
|
* Wed Feb 6 2002 coolo@suse.de
|
||||||
|
- patch Configure to also use -fPIC on Linux - prevents crashes on
|
||||||
|
s390x
|
||||||
|
- ported over the hints patch from 7.2-lib64
|
||||||
|
* Tue Feb 5 2002 mls@suse.de
|
||||||
|
- Use Config.pm of libperl.so build, so that apps use the right
|
||||||
|
link options.
|
||||||
|
* Mon Feb 4 2002 mls@suse.de
|
||||||
|
- Added generation of libperl.so
|
||||||
|
* Thu Jan 24 2002 schwab@suse.de
|
||||||
|
- Fix h2ph for gcc 3.
|
||||||
|
* Mon Jan 14 2002 mls@suse.de
|
||||||
|
- Moved rc.config variable to sysconfig/suseconfig
|
||||||
|
* Mon Jan 7 2002 schwab@suse.de
|
||||||
|
- Fix dependency generation for gcc 3.1 again.
|
||||||
|
* Thu Dec 6 2001 schwab@suse.de
|
||||||
|
- Don't add /usr/local/lib and /usr/local/include to the search paths.
|
||||||
|
- Fix dependency generation for gcc 3.1.
|
||||||
|
* Tue Nov 20 2001 schwab@suse.de
|
||||||
|
- Don't generate h2ph, h2xs, pod2man manpages by hand.
|
||||||
|
* Thu Sep 27 2001 mls@suse.de
|
||||||
|
- Fixed generation of perllocal.pod, also create perllocal.3pm
|
||||||
|
* Wed Sep 12 2001 mls@suse.de
|
||||||
|
- Fixed h2ph macro expansion/redefinition bugs.
|
||||||
|
- Moved *.ph creation from SuSEconfig to spec file.
|
||||||
|
* Fri Aug 31 2001 schwab@suse.de
|
||||||
|
- Remove ia64 workarounds.
|
||||||
|
* Wed Jun 20 2001 mls@suse.de
|
||||||
|
- bzip2 source
|
||||||
|
* Wed Jun 20 2001 mls@suse.de
|
||||||
|
- Update to perl-5.6.1
|
||||||
|
- Merged linux-alpha.sh and linux-sparc.sh into linux.sh
|
||||||
|
- axp compiler workaround: add -mieee
|
||||||
|
- use /lib64:/usr/lib64 on sparc64
|
||||||
|
* Mon Jun 11 2001 schwab@suse.de
|
||||||
|
- Remove ElectricFence from neededforbuild (got added by accident).
|
||||||
|
* Fri Apr 13 2001 schwab@suse.de
|
||||||
|
- Build with -O0 on ia64.
|
||||||
|
* Mon Mar 26 2001 schwab@suse.de
|
||||||
|
- Fix equality operator for systems that don't have NV_PRESERVES_UV.
|
||||||
|
- Reenable some tests on ia64.
|
||||||
|
* Thu Feb 22 2001 schwab@suse.de
|
||||||
|
- Fix POSIX module.
|
||||||
|
* Tue Dec 5 2000 schwab@suse.de
|
||||||
|
- Disable some problematic tests on ia64.
|
||||||
|
- Merge ia64 configuration with generic linux.
|
||||||
|
* Thu Oct 26 2000 ro@suse.de
|
||||||
|
- use new db for DB_File
|
||||||
|
- perl binary is no longer linked to any db lib
|
||||||
|
* Tue Oct 10 2000 ro@suse.de
|
||||||
|
- Config.pm: set $perl to 'perl'
|
||||||
|
- bzipped sources
|
||||||
|
- added some mandir patches
|
||||||
|
* Mon Sep 25 2000 ro@suse.de
|
||||||
|
- no test for lfs on ppc
|
||||||
|
* Wed Aug 16 2000 ro@suse.de
|
||||||
|
- update to 5.6.0
|
||||||
|
* Tue Aug 15 2000 ro@suse.de
|
||||||
|
- Security fix (/bin/mail+suidperl) added (from draht@suse.de)
|
||||||
|
* Fri Jul 14 2000 kukuk@suse.de
|
||||||
|
- Add license information and group tag (Bug #3454)
|
||||||
|
* Tue Jul 11 2000 ro@suse.de
|
||||||
|
- make perllocal.SuSE script more flexible
|
||||||
|
* Sat Apr 1 2000 bk@suse.de
|
||||||
|
- some tests don't pass on s390 too, known.
|
||||||
|
* Fri Mar 3 2000 schwab@suse.de
|
||||||
|
- Add support for ia64.
|
||||||
|
* Wed Jan 19 2000 ro@suse.de
|
||||||
|
- man -> /usr/share/man ; affects all perl packages
|
||||||
|
* Tue Dec 14 1999 kukuk@suse.de
|
||||||
|
- Fixed for SPARC
|
||||||
|
* Tue Nov 2 1999 ro@suse.de
|
||||||
|
- do h2ph for stdarg and stddef (BUG#785)
|
||||||
|
* Tue Oct 19 1999 ro@suse.de
|
||||||
|
- don't print error if /usr/src/linux is not owned by a package
|
||||||
|
(BUG#215)
|
||||||
|
* Mon Sep 13 1999 bs@suse.de
|
||||||
|
- ran old prepare_spec on spec file to switch to new prepare_spec.
|
||||||
|
* Fri Aug 27 1999 ro@suse.de
|
||||||
|
- added "gnu","net" and "rpc" to directories for h2ph
|
||||||
|
* Fri Jul 9 1999 ro@suse.de
|
||||||
|
- added "bits" to directories for h2ph (closing BUG 58)
|
||||||
|
* Thu Jul 8 1999 ro@suse.de
|
||||||
|
- fix for perldoc
|
||||||
|
- update to 5.005_03
|
||||||
|
* Mon Mar 1 1999 ro@suse.de
|
||||||
|
- t/lib/anydbm: removed test 12 : create empty record: invalid for db2
|
||||||
|
* Thu Jan 7 1999 ro@suse.de
|
||||||
|
- alpha changes ; dont "make test" on alpha for now :-(
|
||||||
|
* Mon Nov 16 1998 ro@suse.de
|
||||||
|
- update to 5.00502
|
||||||
|
- fixed manpages for h2ph, h2xs, pod2man
|
||||||
|
- use configure.gnu
|
||||||
|
- keep SuSEconfig.perl from using more time than needed
|
||||||
|
* Fri Aug 28 1998 ro@suse.de
|
||||||
|
- updated to version perl5.004_05-MAINT_TRIAL_5
|
||||||
|
- updated filelist
|
||||||
|
- temporarily disablet test op/group.t for nobody/nogroup problem
|
||||||
|
* Wed Aug 19 1998 ro@suse.de
|
||||||
|
- added security-patches for pstruct and perldoc
|
||||||
|
* Fri Jul 24 1998 bs@suse.de
|
||||||
|
- enabled bincompat3
|
||||||
|
* Thu Jul 9 1998 ro@suse.de
|
||||||
|
- added some security and glib-patches (doio.c, perl.c)
|
||||||
|
- re-added support for gdbm
|
||||||
|
* Mon Jul 6 1998 ro@suse.de
|
||||||
|
- added rc.config.perl with variables:
|
||||||
|
CREATE_PERLLOCAL_POD="yes"
|
||||||
|
GENERATE_PERL_SYSTEM_INCLUDES="yes"
|
||||||
|
* Mon Jul 6 1998 ro@suse.de
|
||||||
|
- added SuSEconfig.perl and perllocal.SuSE
|
||||||
|
+ check if kernel-sources have changed and call h2ph
|
||||||
|
+ check installed modules and add/delete entries in perllocal.pod
|
||||||
|
* Thu Jan 22 1998 florian@suse.de
|
||||||
|
- use a fixed path as architecture name
|
||||||
|
* Tue Nov 11 1997 florian@suse.de
|
||||||
|
- fixed file list
|
||||||
|
- update to perl 5.004_04
|
||||||
|
* Tue Oct 14 1997 ro@suse.de
|
||||||
|
- ready for autobuild
|
||||||
|
updated file list
|
||||||
|
* Thu Oct 9 1997 florian@suse.de
|
||||||
|
- prepare for autobuild
|
||||||
|
* Tue May 20 1997 florian@suse.de
|
||||||
|
- update to version 5.004
|
||||||
|
- disable hooks to csh in perl, it is not installed on all systems
|
||||||
|
* Thu Jan 2 1997 bs@suse.de
|
||||||
|
h2ph call in doinst.sh added.
|
||||||
|
* Thu Jan 2 1997 florian@suse.de
|
||||||
|
update to version 5.003
|
||||||
|
security fix for suidperl
|
483
perl.spec
Normal file
483
perl.spec
Normal file
|
@ -0,0 +1,483 @@
|
||||||
|
#
|
||||||
|
# spec file for package perl
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022-2023 ZhuningOS
|
||||||
|
#
|
||||||
|
# icecream 0
|
||||||
|
|
||||||
|
|
||||||
|
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||||||
|
%if ! %{defined _fillupdir}
|
||||||
|
%define _fillupdir /var/adm/fillup-templates
|
||||||
|
%endif
|
||||||
|
|
||||||
|
Name: perl
|
||||||
|
Summary: The Perl interpreter
|
||||||
|
License: Artistic-1.0 or GPL-2.0+
|
||||||
|
Group: Development/Languages/Perl
|
||||||
|
Version: 5.26.1
|
||||||
|
Release: 150300.17.14.1
|
||||||
|
%define pversion 5.26.1
|
||||||
|
Url: http://www.perl.org/
|
||||||
|
Source: http://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
|
||||||
|
Patch2: perl-regexp-refoverflow.diff
|
||||||
|
Patch3: perl-nroff.diff
|
||||||
|
Patch4: perl-netcmdutf8.diff
|
||||||
|
Patch5: perl-HiRes.t-timeout.diff
|
||||||
|
Patch6: perl-saverecontext.diff
|
||||||
|
# PATCH-FIX-OPENSUSE perl-5.22.0_wrong_rpm_provides.diff Prevent generating bad RPM provides
|
||||||
|
Patch7: perl-5.22.0_wrong_rpm_provides.diff
|
||||||
|
Patch8: skip_time_hires.patch
|
||||||
|
Patch9: perl-incfix.diff
|
||||||
|
Patch11: perl-5.18.2-overflow.diff
|
||||||
|
# PATCH-FIX-OPENSUSE
|
||||||
|
Patch12: perl-reproducible.patch
|
||||||
|
Patch13: perl_skip_flaky_tests_powerpc.patch
|
||||||
|
Patch14: posix-sigaction.patch
|
||||||
|
Patch15: perl-archive-tar-dirtrav.diff
|
||||||
|
Patch16: perl-extended-charclass-assert.diff
|
||||||
|
Patch17: perl-regcomp-strchr-memchr.diff
|
||||||
|
Patch18: perl-reg-node-overrun.diff
|
||||||
|
Patch19: perl-setenv-integer-wrap.diff
|
||||||
|
Patch20: perl-fix2020.patch
|
||||||
|
Patch21: perl-study.diff
|
||||||
|
Patch22: perl-saltbits.diff
|
||||||
|
Patch23: perl-Stabilize-Socket-VERSION-comparisons.patch
|
||||||
|
Patch24: perl-file_path_rmtree_fchmod.diff
|
||||||
|
Patch25: perl-cpan_verify_cert.diff
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
PreReq: perl-base = %version
|
||||||
|
#PreReq: %fillup_prereq
|
||||||
|
BuildRequires: db-devel
|
||||||
|
BuildRequires: gdbm-devel
|
||||||
|
BuildRequires: libbz2-devel
|
||||||
|
BuildRequires: ncurses-devel
|
||||||
|
BuildRequires: xz
|
||||||
|
BuildRequires: zlib-devel
|
||||||
|
#Requires: gzip # needed in SuSEconfig.perl
|
||||||
|
Suggests: perl-doc = %version
|
||||||
|
Recommends: perl-core-DB_File
|
||||||
|
#
|
||||||
|
%if "%version" != "%pversion"
|
||||||
|
Provides: perl = %pversion-%release
|
||||||
|
%endif
|
||||||
|
Provides: perl-500
|
||||||
|
Provides: perl(:MODULE_COMPAT_%pversion)
|
||||||
|
%global versionlist %nil
|
||||||
|
Provides: perl-Filter-Simple = 0.93
|
||||||
|
Obsoletes: perl-Filter-Simple <= 0.93
|
||||||
|
Provides: perl-I18N-LangTags = 0.42
|
||||||
|
Obsoletes: perl-I18N-LangTags <= 0.42
|
||||||
|
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-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-Compress-Zlib = 2.074
|
||||||
|
Obsoletes: perl-Compress-Zlib <= 2.074
|
||||||
|
Provides: perl-IO-Compress-Base = 2.074
|
||||||
|
Obsoletes: perl-IO-Compress-Base <= 2.074
|
||||||
|
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-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-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-Parse-CPAN-Meta = 1.4417
|
||||||
|
Obsoletes: perl-Parse-CPAN-Meta <= 1.4417
|
||||||
|
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
|
||||||
|
|
||||||
|
%description
|
||||||
|
perl - Practical Extraction and Report Language
|
||||||
|
|
||||||
|
Perl is optimized for scanning arbitrary text files, extracting
|
||||||
|
information from those text files, and printing reports based on that
|
||||||
|
information. It is also good for many system management tasks. Perl is
|
||||||
|
intended to be practical (easy to use, efficient, and complete) rather
|
||||||
|
than beautiful (tiny, elegant, and minimal).
|
||||||
|
|
||||||
|
Some of the modules available on CPAN can be found in the "perl"
|
||||||
|
series.
|
||||||
|
|
||||||
|
%package base
|
||||||
|
Summary: The Perl interpreter
|
||||||
|
Group: Development/Languages/Perl
|
||||||
|
Provides: perl-Digest
|
||||||
|
Provides: perl-Digest-MD5
|
||||||
|
%if "%version" != "%pversion"
|
||||||
|
Provides: perl-base = %pversion-%release
|
||||||
|
%endif
|
||||||
|
# bug437293
|
||||||
|
%ifarch ppc64
|
||||||
|
Obsoletes: perl-64bit
|
||||||
|
%endif
|
||||||
|
#
|
||||||
|
|
||||||
|
%description base
|
||||||
|
perl - Practical Extraction and Report Language
|
||||||
|
|
||||||
|
Perl is optimized for scanning arbitrary text files, extracting
|
||||||
|
information from those text files, and printing reports based on that
|
||||||
|
information. It is also good for many system management tasks.
|
||||||
|
|
||||||
|
Perl is intended to be practical (easy to use, efficient, and complete)
|
||||||
|
rather than beautiful (tiny, elegant, and minimal).
|
||||||
|
|
||||||
|
This package contains only some basic modules and the perl binary
|
||||||
|
itself.
|
||||||
|
|
||||||
|
%package core-DB_File
|
||||||
|
Summary: Perl 5 interface to Berkeley DB
|
||||||
|
Group: Development/Languages/Perl
|
||||||
|
Requires: perl = %version-%release
|
||||||
|
|
||||||
|
%description core-DB_File
|
||||||
|
perl-core-DB_File - Perl 5 interface to Berkeley DB
|
||||||
|
|
||||||
|
Perl is optimized for scanning arbitrary text files, extracting
|
||||||
|
information from those text files, and printing reports based on that
|
||||||
|
information. It is also good for many system management tasks.
|
||||||
|
|
||||||
|
Perl is intended to be practical (easy to use, efficient, and complete)
|
||||||
|
rather than beautiful (tiny, elegant, and minimal).
|
||||||
|
|
||||||
|
This package contains perl's DB_File module.
|
||||||
|
|
||||||
|
%package doc
|
||||||
|
Summary: Perl Documentation
|
||||||
|
Group: Development/Languages/Perl
|
||||||
|
Requires: perl = %{version}
|
||||||
|
Provides: perl:/usr/share/man/man3/CORE.3pm.gz
|
||||||
|
%if 0%{?suse_version} >= 1120
|
||||||
|
BuildArch: noarch
|
||||||
|
%endif
|
||||||
|
Provides: perl-macros = 2.0
|
||||||
|
Obsoletes: perl-macros < 2.0
|
||||||
|
|
||||||
|
%description doc
|
||||||
|
Perl man pages and pod files.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q -n perl-%{pversion}
|
||||||
|
cp -p %{S:3} .
|
||||||
|
%patch0
|
||||||
|
%patch2
|
||||||
|
%patch3
|
||||||
|
%patch4
|
||||||
|
%patch5
|
||||||
|
%patch6
|
||||||
|
%patch7
|
||||||
|
%ifarch ppc ppc64 ppc64le
|
||||||
|
%patch8 -p1
|
||||||
|
%patch13 -p1
|
||||||
|
%endif
|
||||||
|
%patch9
|
||||||
|
%patch11
|
||||||
|
%patch12 -p1
|
||||||
|
%patch14 -p1
|
||||||
|
%patch15
|
||||||
|
%patch16
|
||||||
|
%patch17
|
||||||
|
%patch18
|
||||||
|
%patch19
|
||||||
|
%patch20
|
||||||
|
%patch21
|
||||||
|
%patch22
|
||||||
|
%patch23 -p1
|
||||||
|
%patch24
|
||||||
|
%patch25
|
||||||
|
|
||||||
|
%build
|
||||||
|
cp -a lib savelib
|
||||||
|
export SUSE_ASNEEDED=0
|
||||||
|
export BZIP2_LIB=%{_libdir}
|
||||||
|
export BZIP2_INCLUDE=%{_includedir}
|
||||||
|
export BUILD_BZIP2=0
|
||||||
|
options="-Doptimize='$RPM_OPT_FLAGS -Wall -pipe'"
|
||||||
|
%ifarch alpha
|
||||||
|
# -mieee needed for bad alpha gcc optimization
|
||||||
|
options="-Doptimize='$RPM_OPT_FLAGS -Wall -pipe -mieee'"
|
||||||
|
%endif
|
||||||
|
%ifarch ppc ppc64
|
||||||
|
options="$options -Duse64bitint"
|
||||||
|
%endif
|
||||||
|
# this needs an installed perl, sorry
|
||||||
|
archname=%(perl -V:archname | sed "s!.*='!!;s!'.*!!")
|
||||||
|
test -n "$archname"
|
||||||
|
versionlist=
|
||||||
|
for v in %{?versionlist} ; do
|
||||||
|
test "$v" == none || versionlist="$versionlist $v/$archname $v"
|
||||||
|
done
|
||||||
|
test -n "$versionlist" || versionlist=none
|
||||||
|
versionlist=${versionlist# }
|
||||||
|
# always use glibc's setenv
|
||||||
|
options="$options -Accflags='-DPERL_USE_SAFE_PUTENV'"
|
||||||
|
options="$options -Dotherlibdirs=/usr/lib/perl5/site_perl -Dinc_version_list='$versionlist'"
|
||||||
|
chmod 755 ./configure.gnu
|
||||||
|
./configure.gnu --prefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open -Duseshrplib=\'true\' $options
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
cp -p libperl.so savelibperl.so
|
||||||
|
cp -p lib/Config.pm saveConfig.pm
|
||||||
|
cp -p lib/Config_heavy.pl saveConfig_heavy.pl
|
||||||
|
##make clean > /dev/null
|
||||||
|
make clobber
|
||||||
|
rm -rf lib
|
||||||
|
mv savelib lib
|
||||||
|
./configure.gnu --prefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db -Di_dbm -Di_ndbm -Di_gdbm -Dd_dbm_open $options
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%check
|
||||||
|
%if !0%{?qemu_user_space_build}
|
||||||
|
export SUSE_ASNEEDED=0
|
||||||
|
make test
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%install
|
||||||
|
make install DESTDIR=$RPM_BUILD_ROOT
|
||||||
|
cp -a $RPM_BUILD_ROOT/usr/lib/perl5/site_perl $RPM_BUILD_ROOT/usr/lib/perl5/vendor_perl
|
||||||
|
cpa=`echo $RPM_BUILD_ROOT/usr/lib/perl5/*/*/CORE | sed -e 's@/CORE$@@'`
|
||||||
|
cp=`echo "$cpa" | sed -e 's@/[^/]*$@@'`
|
||||||
|
vpa=`echo $cpa | sed -e 's@/perl5/@/perl5/vendor_perl/@'`
|
||||||
|
vp=`echo "$vpa" | sed -e 's@/[^/]*$@@'`
|
||||||
|
install -d $vp/auto
|
||||||
|
install -d $vpa/auto
|
||||||
|
install -m 555 savelibperl.so $cpa/CORE/libperl.so
|
||||||
|
install -m 444 saveConfig.pm $cpa/Config.pm
|
||||||
|
install -m 444 saveConfig_heavy.pl $cpa/Config_heavy.pl
|
||||||
|
#install -d $RPM_BUILD_ROOT/var/adm/SuSEconfig/bin
|
||||||
|
#install -d $RPM_BUILD_ROOT/sbin/conf.d
|
||||||
|
#install -d $RPM_BUILD_ROOT%{_fillupdir}
|
||||||
|
#install -m 755 SuSE/perllocal.SuSE $RPM_BUILD_ROOT/usr/lib/perl5
|
||||||
|
#install -m 755 SuSE/SuSEconfig.perl $RPM_BUILD_ROOT/sbin/conf.d
|
||||||
|
#install -m 755 SuSE/sysconfig.suseconfig-perl $RPM_BUILD_ROOT%{_fillupdir}
|
||||||
|
# install macros.perl file
|
||||||
|
install -D -m 644 %{S:2} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/macros.perl
|
||||||
|
pushd /usr/include
|
||||||
|
( rpm -ql glibc-devel | fgrep '.h'
|
||||||
|
find /usr/include/asm/ -name \*.h
|
||||||
|
find /usr/include/asm-generic -name \*.h
|
||||||
|
find /usr/include/linux -name \*.h
|
||||||
|
) | while read f; do
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -I$cp -I$cpa $RPM_BUILD_ROOT/usr/bin/h2ph -d $vpa ${f/\/usr\/include\//} || :
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
d="`gcc -print-file-name=include`"
|
||||||
|
test -f "$d/stdarg.h" && (cd $d ; $RPM_BUILD_ROOT/usr/bin/perl -I$cp -I$cpa $RPM_BUILD_ROOT/usr/bin/h2ph -d $vpa stdarg.h stddef.h float.h)
|
||||||
|
# comment out bad warning from features.ph
|
||||||
|
sed -i -e '/requires. compiling. with. optimization/s/^/#/' $vpa/features.ph
|
||||||
|
# remove broken pm - we don't have the module
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/lib/perl5/*/Pod/Perldoc/ToTk.pm
|
||||||
|
# we don't need this in here
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/lib/perl5/*/*/CORE/libperl.a
|
||||||
|
#touch $RPM_BUILD_ROOT/usr/share/man/man3/perllocal.3pm
|
||||||
|
#touch $cpa/perllocal.pod
|
||||||
|
# test CVE-2007-5116
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -e '$r=chr(128)."\\x{100}";/$r/'
|
||||||
|
# test perl-regexp-refoverflow.diff, should not crash or hang
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -e 'eval "/\\6666666666/"'
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -e '0 =~ /0(?n)|()(()(()(?0)|(?0)))(0)/'
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -e '0 =~ /0(?n)|()(()((?0)|(?0)))0*\N0/'
|
||||||
|
$RPM_BUILD_ROOT/usr/bin/perl -e '"000000"=~/0(?0)|0(?|0|0)/'
|
||||||
|
%if 0
|
||||||
|
# remove unrelated target/os manpages
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlaix.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlamiga.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlapollo.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlbeos.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlbs2000.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlcygwin.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perldgux.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perldos.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlepoc.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlfreebsd.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlhpux.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlhurd.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlirix.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlmachten.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlmacos.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlmacosx.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlmint.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlnetware.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlopenbsd.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlos2.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlos390.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlos400.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlplan9.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlqnx.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlsolaris.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perltru64.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perluts.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlvmesa.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlvms.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlvos.1*
|
||||||
|
rm -f $RPM_BUILD_ROOT/usr/share/man/man1/perlwin32.1*
|
||||||
|
%endif
|
||||||
|
cat << EOF > perl-base-filelist
|
||||||
|
/usr/lib/perl5/%pversion/B/Deparse.pm
|
||||||
|
/usr/lib/perl5/%pversion/Carp.pm
|
||||||
|
/usr/lib/perl5/%pversion/Carp/
|
||||||
|
/usr/lib/perl5/%pversion/Class/
|
||||||
|
/usr/lib/perl5/%pversion/Config/
|
||||||
|
/usr/lib/perl5/%pversion/Digest.pm
|
||||||
|
/usr/lib/perl5/%pversion/Digest/
|
||||||
|
/usr/lib/perl5/%pversion/English.pm
|
||||||
|
/usr/lib/perl5/%pversion/Exporter.pm
|
||||||
|
/usr/lib/perl5/%pversion/Exporter/
|
||||||
|
/usr/lib/perl5/%pversion/File/
|
||||||
|
/usr/lib/perl5/%pversion/Getopt/
|
||||||
|
/usr/lib/perl5/%pversion/IPC/
|
||||||
|
/usr/lib/perl5/%pversion/Text/
|
||||||
|
/usr/lib/perl5/%pversion/Tie/Hash.pm
|
||||||
|
/usr/lib/perl5/%pversion/XSLoader.pm
|
||||||
|
/usr/lib/perl5/%pversion/warnings.pm
|
||||||
|
/usr/lib/perl5/%pversion/warnings/
|
||||||
|
/usr/lib/perl5/%pversion/AutoLoader.pm
|
||||||
|
/usr/lib/perl5/%pversion/FileHandle.pm
|
||||||
|
/usr/lib/perl5/%pversion/SelectSaver.pm
|
||||||
|
/usr/lib/perl5/%pversion/Symbol.pm
|
||||||
|
/usr/lib/perl5/%pversion/base.pm
|
||||||
|
/usr/lib/perl5/%pversion/bytes.pm
|
||||||
|
/usr/lib/perl5/%pversion/bytes_heavy.pl
|
||||||
|
/usr/lib/perl5/%pversion/constant.pm
|
||||||
|
/usr/lib/perl5/%pversion/fields.pm
|
||||||
|
/usr/lib/perl5/%pversion/feature.pm
|
||||||
|
/usr/lib/perl5/%pversion/integer.pm
|
||||||
|
/usr/lib/perl5/%pversion/locale.pm
|
||||||
|
/usr/lib/perl5/%pversion/overload.pm
|
||||||
|
/usr/lib/perl5/%pversion/overloading.pm
|
||||||
|
/usr/lib/perl5/%pversion/parent.pm
|
||||||
|
/usr/lib/perl5/%pversion/strict.pm
|
||||||
|
/usr/lib/perl5/%pversion/unicore/Heavy.pl
|
||||||
|
/usr/lib/perl5/%pversion/utf8.pm
|
||||||
|
/usr/lib/perl5/%pversion/utf8_heavy.pl
|
||||||
|
/usr/lib/perl5/%pversion/vars.pm
|
||||||
|
/usr/lib/perl5/%pversion/version.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Data/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Digest/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/File/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/List/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Scalar/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Dir.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/File.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Handle.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Pipe.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Poll.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Seekable.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Select.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Socket.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/IO/Socket/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/B.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Config.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Config_heavy.pl
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Cwd.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/DynaLoader.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Errno.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Fcntl.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/POSIX.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/Socket.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/attributes.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Data/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Digest/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Fcntl/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/File/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/IO/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/List/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Cwd/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/Socket/
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/POSIX/POSIX.so
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/lib.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/re.pm
|
||||||
|
EOF
|
||||||
|
{
|
||||||
|
sed -e 's/^/%%exclude /' perl-base-filelist
|
||||||
|
(cd $RPM_BUILD_ROOT
|
||||||
|
for i in usr/lib/perl5/*/pod/*; do
|
||||||
|
case $i in */perldiag.pod) ;;
|
||||||
|
*) echo "%%exclude /$i" ;;
|
||||||
|
esac
|
||||||
|
done)
|
||||||
|
} > perl-base-excludes
|
||||||
|
#%%post
|
||||||
|
#%%{fillup_only -an suseconfig}
|
||||||
|
|
||||||
|
%files base -f perl-base-filelist
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%license Copying Artistic
|
||||||
|
%dir /usr/lib/perl5
|
||||||
|
%dir /usr/lib/perl5/%pversion
|
||||||
|
%dir /usr/lib/perl5/%pversion/B
|
||||||
|
%dir /usr/lib/perl5/%pversion/*-linux-thread-multi*
|
||||||
|
%dir /usr/lib/perl5/%pversion/*-linux-thread-multi*/auto
|
||||||
|
%dir /usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/POSIX
|
||||||
|
/usr/bin/perl
|
||||||
|
/usr/bin/perl%pversion
|
||||||
|
%doc /usr/share/man/man1/perl.1.gz
|
||||||
|
|
||||||
|
%files -f perl-base-excludes
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%exclude /usr/bin/perl
|
||||||
|
%exclude /usr/bin/perl%pversion
|
||||||
|
%exclude /usr/lib/perl5/%pversion/*-linux-thread-multi*/DB_File.pm
|
||||||
|
%exclude /usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/DB_File
|
||||||
|
/usr/bin/*
|
||||||
|
/usr/lib/perl5/*
|
||||||
|
%config %{_sysconfdir}/rpm/macros.perl
|
||||||
|
#/sbin/conf.d/SuSEconfig.perl
|
||||||
|
#%{_fillupdir}/sysconfig.suseconfig-perl
|
||||||
|
#%ghost /usr/lib/perl*/*/*/perllocal.pod
|
||||||
|
#%ghost %doc /usr/share/man/man3/perllocal.3pm.gz
|
||||||
|
|
||||||
|
%files core-DB_File
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%license Copying Artistic
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/DB_File.pm
|
||||||
|
/usr/lib/perl5/%pversion/*-linux-thread-multi*/auto/DB_File
|
||||||
|
|
||||||
|
%files doc
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%doc README.macros
|
||||||
|
%exclude /usr/share/man/man1/perl.1.gz
|
||||||
|
%exclude /usr/lib/perl5/*/pod/perldiag.pod
|
||||||
|
%doc /usr/share/man/man1/*
|
||||||
|
%doc /usr/share/man/man3/*
|
||||||
|
%doc /usr/lib/perl5/*/pod
|
||||||
|
|
||||||
|
%changelog
|
130
perl_skip_flaky_tests_powerpc.patch
Normal file
130
perl_skip_flaky_tests_powerpc.patch
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
From: Michel Normand <normand@linux.vnet.ibm.com>
|
||||||
|
Subject: perl skip flaky tests powerpc
|
||||||
|
Date: Wed, 10 Jan 2018 12:55:38 +0100
|
||||||
|
|
||||||
|
skip flaky tests powerpc
|
||||||
|
as bypass https://bugzilla.suse.com/show_bug.cgi?id=1063176
|
||||||
|
|
||||||
|
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
+use Test::More skip_all => "ppc workers are too busy";
|
||||||
|
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
|
||||||
|
@@ -1,6 +1,6 @@
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
-use Test::More tests => 10;
|
||||||
|
+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/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 {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-use Test::More tests => 3;
|
||||||
|
+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
|
||||||
|
@@ -8,7 +8,7 @@ BEGIN {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-use Test::More tests => 6;
|
||||||
|
+use Test::More skip_all => "ppc workers are too busy";
|
||||||
|
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
|
||||||
|
@@ -11,6 +11,7 @@ use Config;
|
||||||
|
if ( !$Config{d_alarm} ) {
|
||||||
|
skip_all("alarm() not implemented on this platform");
|
||||||
|
}
|
||||||
|
+skip_all("ppc workers are too busy");
|
||||||
|
|
||||||
|
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
|
||||||
|
@@ -11,6 +11,7 @@ use strict;
|
||||||
|
use constant TRUE => ($^X, '-e', 'exit 0');
|
||||||
|
use Data::Dumper;
|
||||||
|
|
||||||
|
+skip_all("ppc workers are too busy");
|
||||||
|
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 {
|
||||||
|
skip_all("Win32 miniperl has no socket select")
|
||||||
|
if $^O eq "MSWin32" && is_miniperl();
|
||||||
|
|
||||||
|
+skip_all("ppc workers are too busy");
|
||||||
|
+
|
||||||
|
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 @@
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
-use Test::More tests => 5;
|
||||||
|
+use Test::More skip_all => "ppc workers are too busy";
|
||||||
|
BEGIN { push @INC, '.' }
|
||||||
|
use t::Watchdog;
|
||||||
|
|
15
posix-sigaction.patch
Normal file
15
posix-sigaction.patch
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
Index: perl-5.26.1/ext/POSIX/POSIX.xs
|
||||||
|
===================================================================
|
||||||
|
--- perl-5.26.1.orig/ext/POSIX/POSIX.xs
|
||||||
|
+++ perl-5.26.1/ext/POSIX/POSIX.xs
|
||||||
|
@@ -3158,6 +3158,10 @@ sigaction(sig, optaction, oldaction = 0)
|
||||||
|
/* Set up any desired flags. */
|
||||||
|
svp = hv_fetchs(action, "FLAGS", FALSE);
|
||||||
|
act.sa_flags = svp ? SvIV(*svp) : 0;
|
||||||
|
+#ifdef SA_SIGINFO
|
||||||
|
+ /* Perl_sighandler depends on the extra arguments. */
|
||||||
|
+ act.sa_flags |= SA_SIGINFO;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/* Don't worry about cleaning up *sigsvp if this fails,
|
||||||
|
* because that means we tried to disposition a
|
12
skip_time_hires.patch
Normal file
12
skip_time_hires.patch
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
Index: perl-5.18.0/dist/Time-HiRes/t/itimer.t
|
||||||
|
===================================================================
|
||||||
|
--- perl-5.18.0.orig/dist/Time-HiRes/t/itimer.t
|
||||||
|
+++ perl-5.18.0/dist/Time-HiRes/t/itimer.t
|
||||||
|
@@ -1,5 +1,7 @@
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
+use Test::More skip_all => "ppc workers are too busy";
|
||||||
|
+
|
||||||
|
sub has_symbol {
|
||||||
|
my $symbol = shift;
|
||||||
|
eval "use Time::HiRes qw($symbol)";
|
Loading…
Add table
Reference in a new issue