Hello community,

here is the log from the commit of package perl for openSUSE:Factory checked in 
at 2013-09-05 23:23:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl (Old)
 and      /work/SRC/openSUSE:Factory/.perl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl/perl.changes        2013-08-13 
10:18:20.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl.new/perl.changes   2013-09-05 
23:23:01.000000000 +0200
@@ -1,0 +2,20 @@
+Wed Sep  4 10:30:50 CEST 2013 - [email protected]
+
+- add libperl_requires macro
+
+-------------------------------------------------------------------
+Tue Sep  3 15:30:23 CEST 2013 - [email protected]
+
+- 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
+
+-------------------------------------------------------------------

Old:
----
  perl-5.18.0.tar.gz

New:
----
  perl-5.18.1.tar.gz
  perl-incfix.diff
  perl-reg89.diff

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl.spec ++++++
--- /var/tmp/diff_new_pack.SbwEUN/_old  2013-09-05 23:23:04.000000000 +0200
+++ /var/tmp/diff_new_pack.SbwEUN/_new  2013-09-05 23:23:04.000000000 +0200
@@ -21,9 +21,9 @@
 Summary:        The Perl interpreter
 License:        Artistic-1.0 or GPL-2.0+
 Group:          Development/Languages/Perl
-Version:        5.18.0
+Version:        5.18.1
 Release:        0
-%define pversion 5.18.0
+%define pversion 5.18.1
 Url:            http://www.perl.org/
 Source:         http://www.cpan.org/src/5.0/perl-%{version}.tar.gz
 Source1:        %name-rpmlintrc
@@ -39,6 +39,8 @@
 Patch6:         perl-saverecontext.diff
 Patch7:         perl-db6.diff
 Patch8:         skip_time_hires.patch
+Patch9:         perl-reg89.diff
+Patch10:        perl-incfix.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 PreReq:         perl-base = %version
 #PreReq:         %fillup_prereq
@@ -56,6 +58,8 @@
 Provides:       perl-500
 Provides:       perl-Filter-Simple
 Provides:       perl(:MODULE_COMPAT_%pversion)
+%global versionlist 5.18.0
+Provides:       perl(:MODULE_COMPAT_5.18.0)
 Obsoletes:      perl-Filter-Simple
 Provides:       perl-I18N-LangTags
 Obsoletes:      perl-I18N-LangTags
@@ -169,6 +173,8 @@
 %ifarch ppc ppc64
 %patch8 -p1
 %endif
+%patch9
+%patch10
 
 %build
 cp -a lib savelib
@@ -184,9 +190,18 @@
 %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=none"
+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}
@@ -245,8 +260,8 @@
 #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
-$RPM_BUILD_ROOT/usr/bin/perl -e '/\6666666666/'
+# test perl-regexp-refoverflow.diff, should not crash or hang
+$RPM_BUILD_ROOT/usr/bin/perl -e 'eval "/\\6666666666/"'
 %if 0
 # remove unrelated target/os manpages
 rm $RPM_BUILD_ROOT/usr/share/man/man1/perlaix.1*

++++++ macros.perl ++++++
--- /var/tmp/diff_new_pack.SbwEUN/_old  2013-09-05 23:23:04.000000000 +0200
+++ /var/tmp/diff_new_pack.SbwEUN/_new  2013-09-05 23:23:04.000000000 +0200
@@ -31,6 +31,11 @@
 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-5.18.0.tar.gz -> perl-5.18.1.tar.gz ++++++
/work/SRC/openSUSE:Factory/perl/perl-5.18.0.tar.gz 
/work/SRC/openSUSE:Factory/.perl.new/perl-5.18.1.tar.gz differ: char 5, line 1

++++++ perl-incfix.diff ++++++
--- perl.c.orig 2013-09-03 15:36:39.767794693 +0000
+++ perl.c      2013-09-03 15:39:05.334794435 +0000
@@ -4423,11 +4423,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
@@ -4469,20 +4471,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 */
 
++++++ perl-reg89.diff ++++++
--- ./regcomp.c.orig    2013-09-03 14:34:06.277801336 +0000
+++ ./regcomp.c 2013-09-03 14:34:38.600801279 +0000
@@ -10643,7 +10643,7 @@ tryagain:
                     if (num < 1)
                         vFAIL("Reference to nonexistent or unclosed group");
                 }
-               if (!isg && (num < 0 || (num > 9 && num >= RExC_npar)))
+               if (!isg && num > 9 && num >= RExC_npar && *RExC_parse != '8' 
&& *RExC_parse != '9')
                     /* Probably a character specified in octal, e.g. \35 */
                    goto defchar;
                else {
@@ -10920,10 +10920,28 @@ tryagain:
                        p++;
                        ender = grok_bslash_c(*p++, UTF, SIZE_ONLY);
                        break;
-                   case '0': case '1': case '2': case '3':case '4':
+                    case '8': case '9': /* must be a backreference */
+                        --p;
+                        goto loopdone;
+                   case '1': case '2': case '3':case '4':
                    case '5': case '6': case '7':
-                       if (*p == '0' ||
-                           (isDIGIT(p[1]) && (U32)atoi(p) >= (U32)RExC_npar))
+                        /* When we parse backslash escapes there is ambiguity 
between
+                         * backreferences and octal escapes. Any escape from 
\1 - \9 is
+                         * a backreference, any multi-digit escape which does 
not start with
+                         * 0 and which when evaluated as decimal could refer 
to an already
+                         * parsed capture buffer is a backslash. Anything else 
is octal.
+                         *
+                         * Note this implies that \118 could be interpreted as 
118 OR as
+                         * "\11" . "8" depending on whether there were 118 
capture buffers
+                         * defined already in the pattern.
+                         */
+                        if ( !isDIGIT(p[1]) || atoi(p) <= RExC_npar )
+                        {  /* Not to be treated as an octal constant, go
+                                    find backref */
+                            --p;
+                            goto loopdone;
+                        }
+                   case '0':
                        {
                            I32 flags = PERL_SCAN_SILENT_ILLDIGIT;
                            STRLEN numlen = 3;
@@ -10942,11 +10960,6 @@ tryagain:
                                          form_short_octal_warning(p, numlen));
                             }
                        }
-                        else {  /* Not to be treated as an octal constant, go
-                                   find backref */
-                           --p;
-                           goto loopdone;
-                       }
                        if (PL_encoding && ender < 0x100)
                            goto recode_encoding;
                        break;
--- ./t/re/pat.t.orig   2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/pat.t        2013-09-03 14:34:13.645801323 +0000
@@ -20,7 +20,7 @@ BEGIN {
     require './test.pl';
 }
 
-plan tests => 472;  # Update this when adding/deleting tests.
+plan tests => 572;  # Update this when adding/deleting tests.
 
 run_tests() unless caller;
 
@@ -1380,6 +1380,23 @@ EOP
        is ($s, 'XXcdXXX&', 'RT #119125 with /x');
     }
 
+    {
+        # if we have 87 capture buffers defined then \87 should refer to the 
87th.
+        # test that this is true for 1..100
+        my $str= "aa";
+        for my $i (1..100) {
+            my $pat= "a";
+            $pat= "($pat)" for 1 .. $i;
+            $pat.="\\$i";
+            eval {
+                ok($str=~/$pat/,"\\$i works with $i buffers");
+                1;
+            } or do {
+                ok(0,"\\$i works with $i buffers");
+            };
+        }
+    }
+
 } # End of sub run_tests
 
 1;
--- ./t/re/re_tests.orig        2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/re_tests     2013-09-03 14:34:13.646801323 +0000
@@ -1487,9 +1487,9 @@ abc\N{def -       c       -       \\N{NAME} must be resolv
 [a\o{1000}]    \x{200} y       $&      \x{200}
 
 # The below were inserting a NULL
-\87    87      y       $&      87
-a\87   a87     y       $&      a87
-a\97   a97     y       $&      a97
+\87    87      c       -       Reference to nonexistent group in regex
+a\87   a87     c       -       Reference to nonexistent group in regex
+a\97   a97     c       -       Reference to nonexistent group in regex
 
 
 # The below was inserting a NULL into the character class.
--- ./t/re/reg_mesg.t.orig      2013-09-03 14:34:06.277801336 +0000
+++ ./t/re/reg_mesg.t   2013-09-03 14:34:13.646801323 +0000
@@ -174,6 +174,9 @@ my @death =
  'm/[\o]/' => 'Missing braces on \o{} {#} m/[\o{#}]/',
  'm/[\o{}]/' => 'Number with no digits {#} m/[\o{}{#}]/',
  'm/(?^-i:foo)/' => 'Sequence (?^-...) not recognized {#} m/(?^-{#}i:foo)/',
+ 'm/\87/' => 'Reference to nonexistent group {#} m/\87{#}/',
+ 'm/a\87/' => 'Reference to nonexistent group {#} m/a\87{#}/',
+ 'm/a\97/' => 'Reference to nonexistent group {#} m/a\97{#}/',
 );
 # Tests involving a user-defined charnames translator are in pat_advanced.t
 
@@ -200,9 +203,6 @@ my @warning = (
     '/\018/' => '\'\018\' resolved to \'\o{1}8\' {#} m/\018{#}/',
     '/[\08]/' => '\'\08\' resolved to \'\o{0}8\' {#} m/[\08{#}]/',
     '/[\018]/' => '\'\018\' resolved to \'\o{1}8\' {#} m/[\018{#}]/',
-    '/\87/' => 'Unrecognized escape \8 passed through {#} m/\8{#}7/',
-    '/a\87/' => 'Unrecognized escape \8 passed through {#} m/a\8{#}7/',
-    '/a\97/' => 'Unrecognized escape \9 passed through {#} m/a\9{#}7/',
     '/(?=a)*/' => '(?=a)* matches null string many times {#} m/(?=a)*{#}/',
     'my $x = \'\m\'; qr/a$x/' => 'Unrecognized escape \m passed through {#} 
m/a\m{#}/',
     '/\q/' => 'Unrecognized escape \q passed through {#} m/\q{#}/',
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to