From: Michael Tremer Date: Thu, 22 Apr 2010 22:15:09 +0000 (+0200) Subject: toolchain: Sync perl patches with those from core package. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=22cef36eb7dd760ad5294766536a79ba6102af5f;p=ipfire-3.x.git toolchain: Sync perl patches with those from core package. --- diff --git a/pkgs/toolchain/perl/patches/perl-5.10.1-USE_MM_LD_RUN_PATH.patch b/pkgs/toolchain/perl/patches/perl-5.10.1-USE_MM_LD_RUN_PATH.patch deleted file mode 100644 index adedbb15f..000000000 --- a/pkgs/toolchain/perl/patches/perl-5.10.1-USE_MM_LD_RUN_PATH.patch +++ /dev/null @@ -1,109 +0,0 @@ -diff -up perl-5.10.1/lib/ExtUtils/MM_Unix.pm.runpath perl-5.10.1/lib/ExtUtils/MM_Unix.pm ---- perl-5.10.1/lib/ExtUtils/MM_Unix.pm.runpath 2009-11-18 16:08:45.000000000 +0100 -+++ perl-5.10.1/lib/ExtUtils/MM_Unix.pm 2009-11-18 16:09:32.000000000 +0100 -@@ -944,7 +944,7 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $ - } - - my $ld_run_path_shell = ""; -- if ($self->{LD_RUN_PATH} ne "") { -+ if (($self->{LD_RUN_PATH} ne "") && ($self->{USE_MM_LD_RUN_PATH})) { - $ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" '; - } - -diff -up perl-5.10.1/lib/ExtUtils/Liblist.pm.runpath perl-5.10.1/lib/ExtUtils/Liblist.pm ---- perl-5.10.1/lib/ExtUtils/Liblist.pm.runpath 2009-11-18 16:08:45.000000000 +0100 -+++ perl-5.10.1/lib/ExtUtils/Liblist.pm 2009-11-18 16:09:32.000000000 +0100 -@@ -88,6 +88,11 @@ libraries. LD_RUN_PATH is a colon separ - in LDLOADLIBS. It is passed as an environment variable to the process - that links the shared library. - -+Fedora extension: This generation of LD_RUN_PATH is disabled by default. -+To use the generated LD_RUN_PATH for all links, set the USE_MM_LD_RUN_PATH -+MakeMaker object attribute / argument, (or set the $USE_MM_LD_RUN_PATH -+environment variable). -+ - =head2 BSLOADLIBS - - List of those libraries that are needed but can be linked in -diff -up perl-5.10.1/lib/ExtUtils/MakeMaker.pm.runpath perl-5.10.1/lib/ExtUtils/MakeMaker.pm ---- perl-5.10.1/lib/ExtUtils/MakeMaker.pm.runpath 2009-11-18 16:08:45.000000000 +0100 -+++ perl-5.10.1/lib/ExtUtils/MakeMaker.pm 2009-11-18 16:32:50.000000000 +0100 -@@ -262,7 +262,7 @@ sub full_setup { - PERL_SRC PERM_DIR PERM_RW PERM_RWX - PL_FILES PM PM_FILTER PMLIBDIRS PMLIBPARENTDIRS POLLUTE PPM_INSTALL_EXEC - PPM_INSTALL_SCRIPT PREREQ_FATAL PREREQ_PM PREREQ_PRINT PRINT_PREREQ -- SIGN SKIP TYPEMAPS VERSION VERSION_FROM XS XSOPT XSPROTOARG -+ SIGN SKIP TYPEMAPS USE_MM_LD_RUN_PATH VERSION VERSION_FROM XS XSOPT XSPROTOARG - XS_VERSION clean depend dist dynamic_lib linkext macro realclean - tool_autosplit - -@@ -406,7 +406,27 @@ sub new { - # PRINT_PREREQ is RedHatism. - if ("@ARGV" =~ /\bPRINT_PREREQ\b/) { - $self->_PRINT_PREREQ; -- } -+ } -+ -+ # USE_MM_LD_RUN_PATH - another RedHatism to disable automatic RPATH generation -+ if ( ( ! $self->{USE_MM_LD_RUN_PATH} ) -+ &&( ("@ARGV" =~ /\bUSE_MM_LD_RUN_PATH(=([01]))?\b/) -+ ||( exists( $ENV{USE_MM_LD_RUN_PATH} ) -+ &&( $ENV{USE_MM_LD_RUN_PATH} =~ /([01])?$/ ) -+ ) -+ ) -+ ) -+ { -+ my $v = $1; -+ if( $v ) -+ { -+ $v = ($v=~/=([01])$/)[0]; -+ }else -+ { -+ $v = 1; -+ }; -+ $self->{USE_MM_LD_RUN_PATH}=$v; -+ }; - - print STDOUT "MakeMaker (v$VERSION)\n" if $Verbose; - if (-f "MANIFEST" && ! -f "Makefile"){ -@@ -2319,6 +2339,40 @@ precedence. A typemap in the current di - precedence, even if it isn't listed in TYPEMAPS. The default system - typemap has lowest precedence. - -+=item USE_MM_LD_RUN_PATH -+ -+boolean -+The Fedora perl MakeMaker distribution differs from the standard -+upstream release in that it disables use of the MakeMaker generated -+LD_RUN_PATH by default, UNLESS this attribute is specified , or the -+USE_MM_LD_RUN_PATH environment variable is set during the MakeMaker run. -+ -+The upstream MakeMaker will set the ld(1) environment variable LD_RUN_PATH -+to the concatenation of every -L ld(1) option directory in which a -l ld(1) -+option library is found, which is used as the ld(1) -rpath option if none -+is specified. This means that, if your application builds shared libraries -+and your MakeMaker application links to them, that the absolute paths of the -+libraries in the build tree will be inserted into the RPATH header of all -+MakeMaker generated binaries, and that such binaries will be unable to link -+to these libraries if they do not still reside in the build tree directories -+(unlikely) or in the system library directories (/lib or /usr/lib), regardless -+of any LD_LIBRARY_PATH setting. So if you specified -L../mylib -lmylib , and -+ your 'libmylib.so' gets installed into /some_directory_other_than_usr_lib, -+ your MakeMaker application will be unable to link to it, even if LD_LIBRARY_PATH -+is set to include /some_directory_other_than_usr_lib, because RPATH overrides -+LD_LIBRARY_PATH. -+ -+So for Fedora MakeMaker builds LD_RUN_PATH is NOT generated by default for -+every link. You can still use explicit -rpath ld options or the LD_RUN_PATH -+environment variable during the build to generate an RPATH for the binaries. -+ -+You can set the USE_MM_LD_RUN_PATH attribute to 1 on the MakeMaker command -+line or in the WriteMakefile arguments to enable generation of LD_RUN_PATH -+for every link command. -+ -+USE_MM_LD_RUN_PATH will default to 1 (LD_RUN_PATH will be used) IF the -+$USE_MM_LD_RUN_PATH environment variable is set during a MakeMaker run. -+ - =item VENDORPREFIX - - Like PERLPREFIX, but only for the vendor install locations. diff --git a/pkgs/toolchain/perl/patches/perl-5.10.1-utf8-1.patch b/pkgs/toolchain/perl/patches/perl-5.10.1-utf8-1.patch deleted file mode 100644 index bc9580f1c..000000000 --- a/pkgs/toolchain/perl/patches/perl-5.10.1-utf8-1.patch +++ /dev/null @@ -1,167 +0,0 @@ -Submitted By: Robert Connolly (ashes) -Date: 2010-02-24 -Initial Package Version: 5.10.1 -Upstream Status: From upstream -Origin: Git -http://perl5.git.perl.org/perl.git/patch/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4 -Description: Bug fix for invalid utf-8 characters causing Perl to crash. - -http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3626 - -From 0abd0d78a73da1c4d13b1c700526b7e5d03b32d4 Mon Sep 17 00:00:00 2001 -From: Yves Orton -Date: Sun, 25 Oct 2009 20:37:08 +0100 -Subject: [PATCH] disable non-unicode case insensitive trie matching - -Also revert 8902bb05b18c9858efa90229ca1ee42b17277554 as it merely -masked one symptom of the deeper problems. - -Also fixes RT #69973, which was a segfault which was exposed by -8902bb05, see the ticket for further details. - -http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973 - -At the code of this is the problem that in unicode matching a bunch -of code points have case folding rules beyond just A-Z/a-z. Since -the case folding rules are decided at runtime by the string, we cant -use the same TRIE tables for both unicode/non-unicode matching. - -Until this is reconciled or some other solution is found case insensitive -matching only gets the TRIE optimisation when the pattern is uniocde. - -From CaseFolding.txt: - -00B5; C; 03BC; # MICRO SIGN -00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE -00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE -00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX -00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE -00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS -00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE -00C6; C; 00E6; # LATIN CAPITAL LETTER AE -00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA -00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE -00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE -00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX -00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS -00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE -00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE -00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX -00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS -00D0; C; 00F0; # LATIN CAPITAL LETTER ETH -00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE -00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE -00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE -00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX -00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE -00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS -00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE -00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE -00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE -00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX -00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS -00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE -00DE; C; 00FE; # LATIN CAPITAL LETTER THORN -00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S ---- - ext/re/t/regop.t | 12 ++++++------ - regcomp.c | 17 +++++++++++------ - regexec.c | 9 ++------- - 3 files changed, 19 insertions(+), 19 deletions(-) - -diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t -index 9118bf6..46e6ec0 100644 ---- a/ext/re/t/regop.t -+++ b/ext/re/t/regop.t -@@ -231,12 +231,12 @@ anchored "ABC" at 0 - #Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."...... - %MATCHED% - floating ""$ at 3..4 (checking floating) --1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0] --stclass EXACTF <.> minlen 3 --Found floating substr ""$ at offset 30... --Does not contradict STCLASS... --Guessed: match at offset 26 --Matching stclass EXACTF <.> against ".exe" -+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0] -+#stclass EXACTF <.> minlen 3 -+#Found floating substr ""$ at offset 30... -+#Does not contradict STCLASS... -+#Guessed: match at offset 26 -+#Matching stclass EXACTF <.> against ".exe" - --- - #Compiling REx "[q]" - #size 12 nodes Got 100 bytes for offset annotations. -diff --git a/regcomp.c b/regcomp.c -index 6e9fa26..eb5f12f 100644 ---- a/regcomp.c -+++ b/regcomp.c -@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp, - } - } else { - /* -- Currently we assume that the trie can handle unicode and ascii -- matches fold cased matches. If this proves true then the following -- define will prevent tries in this situation. -- -- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT) --*/ -+ Currently we do not believe that the trie logic can -+ handle case insensitive matching properly when the -+ pattern is not unicode (thus forcing unicode semantics). -+ -+ If/when this is fixed the following define can be swapped -+ in below to fully enable trie logic. -+ - #define TRIE_TYPE_IS_SAFE 1 -+ -+*/ -+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT) -+ - if ( last && TRIE_TYPE_IS_SAFE ) { - make_trie( pRExC_state, - startbranch, first, cur, tail, count, -diff --git a/regexec.c b/regexec.c -index 402ede3..ec09c28 100644 ---- a/regexec.c -+++ b/regexec.c -@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos, - - #define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \ - uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ -- UV uvc_unfolded = 0; \ - switch (trie_type) { \ - case trie_utf8_fold: \ - if ( foldlen>0 ) { \ -- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \ -+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \ - foldlen -= len; \ - uscan += len; \ - len=0; \ - } else { \ -- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \ -+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \ - uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \ - foldlen -= UNISKIP( uvc ); \ - uscan = foldbuf + UNISKIP( uvc ); \ -@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ - uvc = (UV)*uc; \ - len = 1; \ - } \ -- \ - if (uvc < 256) { \ - charid = trie->charmap[ uvc ]; \ - } \ -@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \ - charid = (U16)SvIV(*svpp); \ - } \ - } \ -- if (!charid && trie_type == trie_utf8_fold && !UTF) { \ -- charid = trie->charmap[uvc_unfolded]; \ -- } \ - } STMT_END - - #define REXEC_FBC_EXACTISH_CHECK(CoNd) \ --- -1.6.5.2.74.g610f9.dirty -