Przeglądaj źródła

upgrading package: perl 5.8.0 -> 5.8.1

Ralf S. Engelschall 22 lat temu
rodzic
commit
b91f3346ac
2 zmienionych plików z 47 dodań i 105 usunięć
  1. 45 103
      perl/perl.patch
  2. 2 2
      perl/perl.spec

+ 45 - 103
perl/perl.patch

@@ -1,29 +1,30 @@
-"A security hole has been discovered in Safe.pm. When a Safe compartment
-has already been used, there's no guarantee that it's safe any longer,
-because there's a way for code executed within the Safe compartment to
-alter its operation mask. (Thus, programs that use a Safe compartment
-only once aren't affected by this bug.)"
+By default, the "vendor" area is not used, so Perl's installation
+procedure forgot to create its top-level paths, too. In OpenPKG we use
+the "vendor" area, so make sure it is created the same way the "site"
+area is.
 
---- ext/Opcode/Safe.pm.orig
-+++ ext/Opcode/Safe.pm
-@@ -213,7 +213,7 @@
-     # Create anon sub ref in root of compartment.
-     # Uses a closure (on $expr) to pass in the code to be executed.
-     # (eval on one line to keep line numbers as expected by caller)
--	my $evalcode = sprintf('package %s; sub { eval $expr; }', $root);
-+	my $evalcode = sprintf('package %s; sub { @_ = (); eval $expr; }', $root);
-     my $evalsub;
- 
- 	if ($strict) { use strict; $evalsub = eval $evalcode; }
-@@ -227,7 +227,7 @@
-     my $root = $obj->{Root};
- 
-     my $evalsub = eval
--	    sprintf('package %s; sub { do $file }', $root);
-+	    sprintf('package %s; sub { @_ = (); do $file }', $root);
-     return Opcode::_safe_call_sv($root, $obj->{Mask}, $evalsub);
- }
+Index: installperl
+--- installperl.orig	2003-09-02 15:40:21.000000000 +0200
++++ installperl	2003-09-26 09:23:15.000000000 +0200
+@@ -188,6 +188,8 @@
+ my $installarchlib = "$destdir$Config{installarchlib}";
+ my $installsitelib = "$destdir$Config{installsitelib}";
+ my $installsitearch = "$destdir$Config{installsitearch}";
++my $installvendorlib = "$destdir$Config{installvendorlib}";
++my $installvendorarch = "$destdir$Config{installvendorarch}";
+ my $installman1dir = "$destdir$Config{installman1dir}";
+ my $man1ext = $Config{man1ext};
+ my $libperl = $Config{libperl};
+@@ -378,6 +380,8 @@
+ mkpath($installarchlib, $verbose, 0777);
+ mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
+ mkpath($installsitearch, $verbose, 0777) if ($installsitearch);
++mkpath($installvendorlib, $verbose, 0777) if ($installvendorlib);
++mkpath($installvendorarch, $verbose, 0777) if ($installvendorarch);
  
+ if (chdir "lib") {
+     $do_installarchlib = ! samepath($installarchlib, '.');
+
 -----------------------------------------------------------------------------
 
 By default, the Perl module search order is "use lib, -I, PERL[5]LIB,
@@ -34,14 +35,15 @@ versions distributed with Perl (in "perl" area). Hence, we change
 the search order to a more reasonable one for OpenPKG: "use lib, -I,
 PERL[5]LIB, site, vendor, perl, other".
 
---- perl.c.orig	2002-07-09 21:41:43.000000000 +0200
-+++ perl.c	2003-09-03 14:08:25.000000000 +0200
-@@ -3679,39 +3679,6 @@
-     incpush(APPLLIB_EXP, TRUE, TRUE);
+Index: perl.c
+--- perl.c.orig	2003-09-11 23:42:33.000000000 +0200
++++ perl.c	2003-09-26 09:25:11.000000000 +0200
+@@ -3949,39 +3949,6 @@
+     incpush(APPLLIB_EXP, TRUE, TRUE, TRUE);
  #endif
  
 -#ifdef ARCHLIB_EXP
--    incpush(ARCHLIB_EXP, FALSE, FALSE);
+-    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
 -#endif
 -#ifdef MACOS_TRADITIONAL
 -    {
@@ -54,34 +56,34 @@ PERL[5]LIB, site, vendor, perl, other".
 -	
 -	Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
 -	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
--	    incpush(SvPVX(privdir), TRUE, FALSE);
+-	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
 -	Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
 -	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
--	    incpush(SvPVX(privdir), TRUE, FALSE);
+-	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
 -	
 -   	SvREFCNT_dec(privdir);
 -    }
 -    if (!PL_tainting)
--	incpush(":", FALSE, FALSE);
+-	incpush(":", FALSE, FALSE, TRUE);
 -#else
 -#ifndef PRIVLIB_EXP
 -#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
 -#endif
 -#if defined(WIN32)
--    incpush(PRIVLIB_EXP, TRUE, FALSE);
+-    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
 -#else
--    incpush(PRIVLIB_EXP, FALSE, FALSE);
+-    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
 -#endif
 -
  #ifdef SITEARCH_EXP
      /* sitearch is always relative to sitelib on Windows for
       * DLL-based path intuition to work correctly */
-@@ -3752,6 +3719,39 @@
-     incpush(PERL_VENDORLIB_STEM, FALSE, TRUE);
+@@ -4023,6 +3990,39 @@
+     incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE);
  #endif
  
 +#ifdef ARCHLIB_EXP
-+    incpush(ARCHLIB_EXP, FALSE, FALSE);
++    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE);
 +#endif
 +#ifdef MACOS_TRADITIONAL
 +    {
@@ -94,85 +96,25 @@ PERL[5]LIB, site, vendor, perl, other".
 +	
 +	Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
 +	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
-+	    incpush(SvPVX(privdir), TRUE, FALSE);
++	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
 +	Perl_sv_setpvf(aTHX_ privdir, "%ssite_perl:", macperl);
 +	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
-+	    incpush(SvPVX(privdir), TRUE, FALSE);
++	    incpush(SvPVX(privdir), TRUE, FALSE, TRUE);
 +	
 +   	SvREFCNT_dec(privdir);
 +    }
 +    if (!PL_tainting)
-+	incpush(":", FALSE, FALSE);
++	incpush(":", FALSE, FALSE, TRUE);
 +#else
 +#ifndef PRIVLIB_EXP
 +#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
 +#endif
 +#if defined(WIN32)
-+    incpush(PRIVLIB_EXP, TRUE, FALSE);
++    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE);
 +#else
-+    incpush(PRIVLIB_EXP, FALSE, FALSE);
++    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE);
 +#endif
 +
  #ifdef PERL_OTHERLIBDIRS
-     incpush(PERL_OTHERLIBDIRS, TRUE, TRUE);
+     incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE);
  #endif
-
------------------------------------------------------------------------------
-
-By default, the "vendor" area is not used, so Perl's installation
-procedure forgot to create its top-level paths, too. In OpenPKG we use
-the "vendor" area, so make sure it is created the same way the "site"
-area is.
-
---- installperl.orig	2002-07-16 20:57:32.000000000 +0200
-+++ installperl	2003-09-03 14:27:11.000000000 +0200
-@@ -174,6 +174,8 @@
- my $installarchlib = $Config{installarchlib};
- my $installsitelib = $Config{installsitelib};
- my $installsitearch = $Config{installsitearch};
-+my $installvendorlib = $Config{installvendorlib};
-+my $installvendorarch = $Config{installvendorarch};
- my $installman1dir = $Config{installman1dir};
- my $man1ext = $Config{man1ext};
- my $libperl = $Config{libperl};
-@@ -336,6 +338,8 @@
- mkpath($installarchlib, $verbose, 0777);
- mkpath($installsitelib, $verbose, 0777) if ($installsitelib);
- mkpath($installsitearch, $verbose, 0777) if ($installsitearch);
-+mkpath($installvendorlib, $verbose, 0777) if ($installvendorlib);
-+mkpath($installvendorarch, $verbose, 0777) if ($installvendorarch);
- 
- if (chdir "lib") {
-     $do_installarchlib = ! samepath($installarchlib, '.');
- 
------------------------------------------------------------------------------
-
-http://stein.cshl.org/WWW/software/CGI/
-    under "Revision History" find "Fixed cross-site scripting bug
-    reported by obscure" note attached to Version 2.94. A quick fix was
-    introduced in 2.94. It was replaced by a more careful patch in 2.99.
-
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0615
-    Cross-site scripting (XSS) vulnerability in start_form() of CGI.pm
-    allows remote attackers to insert web script via a URL that is fed
-    into the form's action parameter
-
-This is a backport of the 2.99 patch for 2.81 which is the version
-embedded with perl 5.8.0
-
---- lib/CGI.pm.orig	2003-09-15 14:09:34.000000000 +0200
-+++ lib/CGI.pm	2003-09-15 14:16:26.000000000 +0200
-@@ -1533,8 +1533,11 @@
-     $enctype = $enctype || &URL_ENCODED;
-     unless (defined $action) {
-        $action = $self->url(-absolute=>1,-path=>1);
--       $action .= "?$ENV{QUERY_STRING}" if $ENV{QUERY_STRING};
-+       if (length($ENV{QUERY_STRING})>0) {
-+           $action .= "?".$self->escapeHTML($ENV{QUERY_STRING},1);
-+       }
-     }
-+    $action = escape($action);
-     $action = qq(action="$action");
-     my($other) = @other ? " @other" : '';
-     $self->{'.parametersToAdd'}={};
-

+ 2 - 2
perl/perl.spec

@@ -32,8 +32,8 @@ Packager:     The OpenPKG Project
 Distribution: OpenPKG [CORE]
 Group:        Language
 License:      GPL/Artistic
-Version:      5.8.0
-Release:      20030915
+Version:      5.8.1
+Release:      20030926
 
 #   list of sources
 Source0:      ftp://ftp.cpan.org/pub/CPAN/src/perl-%{version}.tar.gz