rpms/perl/F-10 02_fix_pod2html_dl, NONE, 1.1 07_fix_nullok, NONE, 1.1 08_fix_udp_typo, NONE, 1.1 09_fix_memory_debugging, NONE, 1.1 10_fix_h2ph_include_quote, NONE, 1.1 11_disable_vstring_warning, NONE, 1.1 15_fix_local_symtab, NONE, 1.1 16_fix_perlio_teardown_prototype, NONE, 1.1 17_fix_getopt_long_callback, NONE, 1.1 18_fix_bigint_floats, NONE, 1.1 25_fix_cgi_tempdir, NONE, 1.1 26_fix_pod2man_upgrade, NONE, 1.1 27_fix_sys_syslog_timeout, NONE, 1.1 28_fix_inplace_sort, NONE, 1.1 30_fix_freetmps, NONE, 1.1 31_fix_attributes_unknown_error, NONE, 1.1 32_fix_fork_rand, NONE, 1.1 34_fix_qr-memory-leak-2, NONE, 1.1 35_fix_file_path_rmtree_setuid, NONE, 1.1 36_fix_file_temp_cleanup, NONE, 1.1 37_fix_coredump_indicator, NONE, 1.1 38_fix_weaken_memleak, NONE, 1.1 perl-5.10.0-Archive-Extract-onlystdout.patch, NONE, 1.1 perl-5.10.0-Change34507.patch, NONE, 1.1 perl-5.10.0-reorderINC.patch, NONE, 1.1 perl-5.10.0-bz448392.patch, 1.1, 1.2 perl.spec, 1.203, 1.204 perl-5.10.0-Archive-Extract-0.26.patch, 1.2, NONE

Tom Callaway spot at fedoraproject.org
Wed Mar 11 22:02:02 UTC 2009


Author: spot

Update of /cvs/pkgs/rpms/perl/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22141/F-10

Modified Files:
	perl-5.10.0-bz448392.patch perl.spec 
Added Files:
	02_fix_pod2html_dl 07_fix_nullok 08_fix_udp_typo 
	09_fix_memory_debugging 10_fix_h2ph_include_quote 
	11_disable_vstring_warning 15_fix_local_symtab 
	16_fix_perlio_teardown_prototype 17_fix_getopt_long_callback 
	18_fix_bigint_floats 25_fix_cgi_tempdir 26_fix_pod2man_upgrade 
	27_fix_sys_syslog_timeout 28_fix_inplace_sort 30_fix_freetmps 
	31_fix_attributes_unknown_error 32_fix_fork_rand 
	34_fix_qr-memory-leak-2 35_fix_file_path_rmtree_setuid 
	36_fix_file_temp_cleanup 37_fix_coredump_indicator 
	38_fix_weaken_memleak 
	perl-5.10.0-Archive-Extract-onlystdout.patch 
	perl-5.10.0-Change34507.patch perl-5.10.0-reorderINC.patch 
Removed Files:
	perl-5.10.0-Archive-Extract-0.26.patch 
Log Message:
commit all my pending changes, including the reordered @INC and the fixes for 489204


--- NEW FILE 02_fix_pod2html_dl ---
Fix issue with (nested) definition lists in lib/Pod/Html.pm
- <dt> tags are not closed
- generated code contains spurious </li> closing tags
- when other (definition) lists are nested in a definition list, the
  indentation of sublevels gets messed up because of incorrect
  placement of <dt> tags

http://rt.perl.org/rt3/Public/Bug/Display.html?id=45211

Upstream change 32727.
diff -Naur --exclude=debian perl-5.10.0.orig/lib/Pod/Html.pm perl-5.10.0/lib/Pod/Html.pm
--- perl-5.10.0.orig/lib/Pod/Html.pm	2007-11-18 02:26:23.000000000 +1100
+++ perl-5.10.0/lib/Pod/Html.pm	2007-11-25 22:17:02.000000000 +1100
@@ -246,8 +246,8 @@
 my $Doindex;
 
 my $Backlink;
-my($Listlevel, @Listend);
-my $After_Lpar;
+my($Listlevel, @Listtype);
+my $ListNewTerm;
 use vars qw($Ignore);  # need to localize it later.
 
 my(%Items_Named, @Items_Seen);
@@ -286,7 +286,7 @@
     $Htmldir = "";	    	# The directory to which the html pages
 				# will (eventually) be written.
     $Htmlfile = "";		# write to stdout by default
-    $Htmlfileurl = "" ;		# The url that other files would use to
+    $Htmlfileurl = "";		# The url that other files would use to
 				# refer to this file.  This is only used
 				# to make relative urls that point to
 				# other files.
@@ -302,8 +302,9 @@
     $Doindex = 1;   	    	# non-zero if we should generate an index
     $Backlink = '';		# text for "back to top" links
     $Listlevel = 0;		# current list depth
-    @Listend = ();		# the text to use to end the list.
-    $After_Lpar = 0;            # set to true after a par in an =item
+    @Listtype = ();		# list types for open lists
+    $ListNewTerm = 0;		# indicates new term in definition list; used
+    				# to correctly open/close <dd> tags
     $Ignore = 1;		# whether or not to format text.  we don't
 				#   format text until we hit our first pod
 				#   directive.
@@ -519,7 +520,6 @@
 
     # now convert this file
     my $after_item;             # set to true after an =item
-    my $need_dd = 0;
     warn "Converting input file $Podfile\n" if $Verbose;
     foreach my $i (0..$#poddata){
 	$_ = $poddata[$i];
@@ -527,7 +527,6 @@
 	if (/^(=.*)/s) {	# is it a pod directive?
 	    $Ignore = 0;
 	    $after_item = 0;
-	    $need_dd = 0;
 	    $_ = $1;
 	    if (/^=begin\s+(\S+)\s*(.*)/si) {# =begin
 		process_begin($1, $2);
@@ -543,12 +542,12 @@
 		if (/^=(head[1-6])\s+(.*\S)/s) {	# =head[1-6] heading
 		    process_head( $1, $2, $Doindex && $index );
 		} elsif (/^=item\s*(.*\S)?/sm) {	# =item text
-		    $need_dd = process_item( $1 );
+		    process_item( $1 );
 		    $after_item = 1;
 		} elsif (/^=over\s*(.*)/) {		# =over N
 		    process_over();
 		} elsif (/^=back/) {		# =back
-		    process_back($need_dd);
+		    process_back();
 		} elsif (/^=for\s+(\S+)\s*(.*)/si) {# =for
 		    process_for($1,$2);
 		} else {
@@ -563,8 +562,14 @@
 	    next if $Ignore;
 	    next if @Begin_Stack && $Begin_Stack[-1] ne 'html';
 	    print HTML and next if @Begin_Stack && $Begin_Stack[-1] eq 'html';
-	    print HTML "<dd>\n" if $need_dd;
 	    my $text = $_;
+
+	    # Open tag for definition list as we have something to put in it
+	    if( $ListNewTerm ){
+		print HTML "<dd>\n";
+		$ListNewTerm = 0;
+	    }
+
 	    if( $text =~ /\A\s+/ ){
 		process_pre( \$text );
 	        print HTML "<pre>\n$text</pre>\n";
@@ -594,12 +599,8 @@
 		}
 		## end of experimental
 
-		if( $after_item ){
-		    $After_Lpar = 1;
-		}
 		print HTML "<p>$text</p>\n";
 	    }
-	    print HTML "</dd>\n" if $need_dd;
 	    $after_item = 0;
 	}
     }
@@ -1074,12 +1075,12 @@
 
 	# figure out what kind of item it is.
 	# Build string for referencing this item.
-	if ( $txt =~ /\A=item\s+\*\s*(.*)\Z/s ) { # bullet
+	if ( $txt =~ /\A=item\s+\*\s*(.*)\Z/s ) { # bulleted list
 	    next unless $1;
 	    $item = $1;
         } elsif( $txt =~ /\A=item\s+(?>\d+\.?)\s*(.*)\Z/s ) { # numbered list
 	    $item = $1;
-	} elsif( $txt =~ /\A=item\s+(.*)\Z/s ) { # plain item
+	} elsif( $txt =~ /\A=item\s+(.*)\Z/s ) { # definition list
 	    $item = $1;
 	} else {
 	    next;
@@ -1099,12 +1100,7 @@
     $tag =~ /head([1-6])/;
     my $level = $1;
 
-    if( $Listlevel ){
-	warn "$0: $Podfile: unterminated list at =head in paragraph $Paragraph.  ignoring.\n" unless $Quiet;
-        while( $Listlevel ){
-            process_back();
-        }
-    }
+    finish_list();
 
     print HTML "<p>\n";
     if( $level == 1 && ! $Top ){
@@ -1143,19 +1139,32 @@
         $name = anchorify($name);
 	print HTML qq{<a name="$name" class="item">}, process_text( \$otext ), '</a>';
     }
-    print HTML "</strong>\n";
+    print HTML "</strong>";
     undef( $EmittedItem );
 }
 
-sub emit_li {
+sub new_listitem {
     my( $tag ) = @_;
+    # Open tag for definition list as we have something to put in it
+    if( ($tag ne 'dl') && ($ListNewTerm) ){
+	print HTML "<dd>\n";
+	$ListNewTerm = 0;
+    }
+
     if( $Items_Seen[$Listlevel]++ == 0 ){
-	push( @Listend, "</$tag>" );
+	# start of new list
+	push( @Listtype, "$tag" );
 	print HTML "<$tag>\n";
+    } else {
+	# if this is not the first item, close the previous one
+	if ( $tag eq 'dl' ){
+	    print HTML "</dd>\n" unless $ListNewTerm;
+	} else {
+	    print HTML "</li>\n";
+	}
     }
-    my $emitted = $tag eq 'dl' ? 'dt' : 'li';
-    print HTML "<$emitted>";
-    return $emitted;
+    my $opentag = $tag eq 'dl' ? 'dt' : 'li';
+    print HTML "<$opentag>";
 }
 
 #
@@ -1163,7 +1172,6 @@
 #
 sub process_item {
     my( $otext ) = @_;
-    my $need_dd = 0; # set to 1 if we need a <dd></dd> after an item
 
     # lots of documents start a list without doing an =over.  this is
     # bad!  but, the proper thing to do seems to be to just assume
@@ -1173,43 +1181,41 @@
 	process_over();
     }
 
-    # formatting: insert a paragraph if preceding item has >1 paragraph
-    if( $After_Lpar ){
-	print HTML $need_dd ? "</dd>\n" : "</li>\n" if $After_Lpar;
-	$After_Lpar = 0;
-    }
-
     # remove formatting instructions from the text
     my $text = depod( $otext );
 
-    my $emitted; # the tag actually emitted, used for closing
-
     # all the list variants:
     if( $text =~ /\A\*/ ){ # bullet
-        $emitted = emit_li( 'ul' );
+        new_listitem( 'ul' );
         if ($text =~ /\A\*\s+(\S.*)\Z/s ) { # with additional text
             my $tag = $1;
             $otext =~ s/\A\*\s+//;
             emit_item_tag( $otext, $tag, 1 );
+            print HTML "\n";
         }
 
     } elsif( $text =~ /\A\d+/ ){ # numbered list
-        $emitted = emit_li( 'ol' );
+        new_listitem( 'ol' );
         if ($text =~ /\A(?>\d+\.?)\s*(\S.*)\Z/s ) { # with additional text
             my $tag = $1;
             $otext =~ s/\A\d+\.?\s*//;
             emit_item_tag( $otext, $tag, 1 );
+            print HTML "\n";
         }
 
     } else {			# definition list
-        $emitted = emit_li( 'dl' );
+        # new_listitem takes care of opening the <dt> tag
+        new_listitem( 'dl' );
         if ($text =~ /\A(.+)\Z/s ){ # should have text
             emit_item_tag( $otext, $text, 1 );
+	    # write the definition term and close <dt> tag
+	    print HTML "</dt>\n";
         }
-        $need_dd = 1;
+        # trigger opening a <dd> tag for the actual definition; will not
+        # happen if next paragraph is also a definition term (=item)
+        $ListNewTerm = 1;
     }
     print HTML "\n";
-    return $need_dd;
 }
 
 #
@@ -1219,30 +1225,31 @@
     # start a new list
     $Listlevel++;
     push( @Items_Seen, 0 );
-    $After_Lpar = 0;
 }
 
 #
 # process_back - process a pod back tag and convert it to HTML format.
 #
 sub process_back {
-    my $need_dd = shift;
     if( $Listlevel == 0 ){
 	warn "$0: $Podfile: unexpected =back directive in paragraph $Paragraph.  ignoring.\n" unless $Quiet;
 	return;
     }
 
-    # close off the list.  note, I check to see if $Listend[$Listlevel] is
+    # close off the list.  note, I check to see if $Listtype[$Listlevel] is
     # defined because an =item directive may have never appeared and thus
-    # $Listend[$Listlevel] may have never been initialized.
+    # $Listtype[$Listlevel] may have never been initialized.
     $Listlevel--;
-    if( defined $Listend[$Listlevel] ){
-	print HTML $need_dd ? "</dd>\n" : "</li>\n" if $After_Lpar;
-	print HTML $Listend[$Listlevel];
-        print HTML "\n";
-        pop( @Listend );
+    if( defined $Listtype[$Listlevel] ){
+        if ( $Listtype[$Listlevel] eq 'dl' ){
+            print HTML "</dd>\n" unless $ListNewTerm;
+        } else {
+            print HTML "</li>\n";
+        }
+        print HTML "</$Listtype[$Listlevel]>\n";
+        pop( @Listtype );
+        $ListNewTerm = 0;
     }
-    $After_Lpar = 0;
 
     # clean up item count
     pop( @Items_Seen );
@@ -2025,9 +2032,11 @@
 # after the entire pod file has been read and converted.
 #
 sub finish_list {
-    while ($Listlevel > 0) {
-	print HTML "</dl>\n";
-	$Listlevel--;
+    if( $Listlevel ){
+	warn "$0: $Podfile: unterminated list(s) at =head in paragraph $Paragraph.  ignoring.\n" unless $Quiet;
+	while( $Listlevel ){
+            process_back();
+        }
     }
 }
 
diff -Naur --exclude=debian perl-5.10.0.orig/lib/Pod/t/htmllink.t perl-5.10.0/lib/Pod/t/htmllink.t
--- perl-5.10.0.orig/lib/Pod/t/htmllink.t	2007-11-18 02:26:23.000000000 +1100
+++ perl-5.10.0/lib/Pod/t/htmllink.t	2007-11-25 22:17:02.000000000 +1100
@@ -108,24 +108,21 @@
 <h2><a name="section_three">section three</a></h2>
 <p>This is section three.</p>
 <dl>
-<dt><strong><a name="item1" class="item">item1</a></strong>
+<dt><strong><a name="item1" class="item">item1</a></strong></dt>
 
 <dd>
 <p>This is item one.</p>
 </dd>
-</li>
-<dt><strong><a name="item_2" class="item">item 2</a></strong>
+<dt><strong><a name="item_2" class="item">item 2</a></strong></dt>
 
 <dd>
 <p>This is item two.</p>
 </dd>
-</li>
-<dt><strong><a name="item_three" class="item">item three</a></strong>
+<dt><strong><a name="item_three" class="item">item three</a></strong></dt>
 
 <dd>
 <p>This is item three.</p>
 </dd>
-</li>
 </dl>
 
 </body>
diff -Naur --exclude=debian perl-5.10.0.orig/lib/Pod/t/htmlview.pod perl-5.10.0/lib/Pod/t/htmlview.pod
--- perl-5.10.0.orig/lib/Pod/t/htmlview.pod	2007-11-18 02:26:23.000000000 +1100
+++ perl-5.10.0/lib/Pod/t/htmlview.pod	2007-11-25 22:17:02.000000000 +1100
@@ -110,7 +110,7 @@
 
 =head1 TESTING FOR AND BEGIN
 
-=for html    <br>
+=for html    <br />
 <p>
 blah blah
 </p>
diff -Naur --exclude=debian perl-5.10.0.orig/lib/Pod/t/htmlview.t perl-5.10.0/lib/Pod/t/htmlview.t
--- perl-5.10.0.orig/lib/Pod/t/htmlview.t	2007-11-18 02:26:23.000000000 +1100
+++ perl-5.10.0/lib/Pod/t/htmlview.t	2007-11-25 22:17:02.000000000 +1100
@@ -86,17 +86,15 @@
 <h2><a name="new__"><code>new()</code></a></h2>
 <p>Constructor method.  Accepts the following config options:</p>
 <dl>
-<dt><strong><a name="foo" class="item">foo</a></strong>
+<dt><strong><a name="foo" class="item">foo</a></strong></dt>
 
 <dd>
 <p>The foo item.</p>
 </dd>
-</li>
-<dt><strong><a name="bar" class="item">bar</a></strong>
+<dt><strong><a name="bar" class="item">bar</a></strong></dt>
 
 <dd>
 <p>The bar item.</p>
-</dd>
 <p>This is a list within a list</p>
 <ul>
 <li>
@@ -106,30 +104,36 @@
 <p>The waz item.</p>
 </li>
 </ul>
-<dt><strong><a name="baz" class="item">baz</a></strong>
+</dd>
+<dt><strong><a name="baz" class="item">baz</a></strong></dt>
 
 <dd>
 <p>The baz item.</p>
 </dd>
-</li>
 </dl>
 <p>Title on the same line as the =item + * bullets</p>
 <ul>
 <li><strong><a name="black_cat" class="item"><code>Black</code> Cat</a></strong>
 
+</li>
 <li><strong><a name="sat_on_the" class="item">Sat <em>on</em> the</a></strong>
 
+</li>
 <li><strong><a name="mat" class="item">Mat<!></a></strong>
 
+</li>
 </ul>
 <p>Title on the same line as the =item + numerical bullets</p>
 <ol>
 <li><strong><a name="cat" class="item">Cat</a></strong>
 
+</li>
 <li><strong><a name="sat" class="item">Sat</a></strong>
 
+</li>
 <li><strong><a name="mat2" class="item">Mat</a></strong>
 
+</li>
 </ol>
 <p>No bullets, no title</p>
 <dl>
@@ -137,17 +141,14 @@
 <dd>
 <p>Cat</p>
 </dd>
-</li>
 <dt>
 <dd>
 <p>Sat</p>
 </dd>
-</li>
 <dt>
 <dd>
 <p>Mat</p>
 </dd>
-</li>
 </dl>
 <p>
 </p>
@@ -157,7 +158,7 @@
 </p>
 <hr />
 <h1><a name="testing_for_and_begin">TESTING FOR AND BEGIN</a></h1>
-<br>
+<br />
 <p>
 blah blah
 </p><p>intermediate text</p>


--- NEW FILE 07_fix_nullok ---
Change 33287 by nicholas at nicholas-pecuchet on 2008/02/12 11:52:30

	In Perl_load_module_nocontext(), ver can actually be NULL.
	In Perl_hv_copy_hints_hv(), ohv can actually be NULL.
	In Perl_sortsv(), Perl_sortsv_flags() and S_qsortsvu(), array can be
	NULL (if the number of elements to sort is <= 1).
	In Perl_save_nogv(), gv can not be NULL.
	In Perl_sv_cmp() and Perl_sv_cmp_locale(), both SVs can be NULL.
	In Perl_ptr_table_fetch(), the sv can be NULL.
	In PerlIO_set_ptrcnt(), ptr can be NULL.

diff -Naur --exclude=debian perl-5.10.0.orig/embed.fnc perl-5.10.0/embed.fnc
--- perl-5.10.0.orig/embed.fnc	2007-12-18 21:47:07.000000000 +1100
+++ perl-5.10.0/embed.fnc	2008-03-09 19:38:30.000000000 +1100
@@ -140,7 +140,7 @@
 Afnp	|OP*	|die_nocontext	|NN const char* pat|...
 Afnp	|void	|deb_nocontext	|NN const char* pat|...
 Afnp	|char*	|form_nocontext	|NN const char* pat|...
-Anp	|void	|load_module_nocontext|U32 flags|NN SV* name|NN SV* ver|...
+Anp	|void	|load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|...
 Afnp	|SV*	|mess_nocontext	|NN const char* pat|...
 Afnp	|void	|warn_nocontext	|NN const char* pat|...
 Afnp	|void	|warner_nocontext|U32 err|NN const char* pat|...
@@ -296,7 +296,7 @@
 Apd	|HV*	|gv_stashpvn	|NN const char* name|U32 namelen|I32 flags
 Apd	|HV*	|gv_stashsv	|NULLOK SV* sv|I32 flags
 Apd	|void	|hv_clear	|NULLOK HV* tb
-poM	|HV *	|hv_copy_hints_hv|NN HV *const ohv
+poM	|HV *	|hv_copy_hints_hv|NULLOK HV *const ohv
 Ap	|void	|hv_delayfree_ent|NN HV* hv|NULLOK HE* entry
 Abmd	|SV*	|hv_delete	|NULLOK HV* tb|NN const char* key|I32 klen \
 				|I32 flags
@@ -486,8 +486,8 @@
 Afp	|SV*	|mess		|NN const char* pat|...
 Ap	|SV*	|vmess		|NN const char* pat|NULLOK va_list* args
 EXp	|void	|qerror		|NN SV* err
-Apd	|void	|sortsv		|NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp
-Apd	|void	|sortsv_flags	|NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
+Apd	|void	|sortsv		|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp
+Apd	|void	|sortsv_flags	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
 Apd	|int	|mg_clear	|NN SV* sv
 Apd	|int	|mg_copy	|NN SV* sv|NN SV* nsv|NULLOK const char* key|I32 klen
 pd	|void	|mg_localize	|NN SV* sv|NN SV* nsv
@@ -768,7 +768,7 @@
 Ap	|void	|save_list	|NN SV** sarg|I32 maxsarg
 Ap	|void	|save_long	|NN long* longp
 Ap	|void	|save_mortalizesv|NN SV* sv
-Ap	|void	|save_nogv	|NULLOK GV* gv
+Ap	|void	|save_nogv	|NN GV* gv
 p	|void	|save_op
 Ap	|SV*	|save_scalar	|NN GV* gv
 Ap	|void	|save_pptr	|NN char** pptr
@@ -842,8 +842,8 @@
 pd	|I32	|sv_clean_all
 pd	|void	|sv_clean_objs
 Apd	|void	|sv_clear	|NN SV* sv
-Apd	|I32	|sv_cmp		|NN SV* sv1|NN SV* sv2
-Apd	|I32	|sv_cmp_locale	|NN SV* sv1|NN SV* sv2
+Apd	|I32	|sv_cmp		|NULLOK SV* sv1|NULLOK SV* sv2
+Apd	|I32	|sv_cmp_locale	|NULLOK SV* sv1|NULLOK SV* sv2
 #if defined(USE_LOCALE_COLLATE)
 Apd	|char*	|sv_collxfrm	|NN SV* sv|NN STRLEN* nxp
 #endif
@@ -1094,7 +1094,7 @@
 Ap	|yy_parser*|parser_dup	|NN const yy_parser *proto|NN CLONE_PARAMS* param
 #endif
 Apa	|PTR_TBL_t*|ptr_table_new
-ApR	|void*	|ptr_table_fetch|NN PTR_TBL_t *tbl|NN const void *sv
+ApR	|void*	|ptr_table_fetch|NN PTR_TBL_t *tbl|NULLOK const void *sv
 Ap	|void	|ptr_table_store|NN PTR_TBL_t *tbl|NULLOK const void *oldsv|NN void *newsv
 Ap	|void	|ptr_table_split|NN PTR_TBL_t *tbl
 Ap	|void	|ptr_table_clear|NULLOK PTR_TBL_t *tbl
@@ -1352,7 +1352,7 @@
 s	|I32	|sortcv		|NN SV *a|NN SV *b
 s	|I32	|sortcv_xsub	|NN SV *a|NN SV *b
 s	|I32	|sortcv_stacked	|NN SV *a|NN SV *b
-s	|void	|qsortsvu	|NN SV** array|size_t num_elts|NN SVCOMPARE_t compare
+s	|void	|qsortsvu	|NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t compare
 #endif
 
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
@@ -1623,7 +1623,8 @@
 Ap	|int	|PerlIO_flush		|NULLOK PerlIO *f
 Ap	|void	|PerlIO_clearerr	|NULLOK PerlIO *f
 Ap	|void	|PerlIO_set_cnt		|NULLOK PerlIO *f|int cnt
-Ap	|void	|PerlIO_set_ptrcnt	|NULLOK PerlIO *f|NN STDCHAR *ptr|int cnt
+Ap	|void	|PerlIO_set_ptrcnt	|NULLOK PerlIO *f|NULLOK STDCHAR *ptr \
+					|int cnt
 Ap	|void	|PerlIO_setlinebuf	|NULLOK PerlIO *f
 Ap	|SSize_t|PerlIO_read		|NULLOK PerlIO *f|NN void *buf|Size_t count
 Ap	|SSize_t|PerlIO_write		|NULLOK PerlIO *f|NN const void *buf|Size_t count
diff -Naur --exclude=debian perl-5.10.0.orig/proto.h perl-5.10.0/proto.h
--- perl-5.10.0.orig/proto.h	2007-12-18 21:47:08.000000000 +1100
+++ perl-5.10.0/proto.h	2008-03-09 19:49:22.000000000 +1100
@@ -260,8 +260,7 @@
 			__attribute__nonnull__(1);
 
 PERL_CALLCONV void	Perl_load_module_nocontext(U32 flags, SV* name, SV* ver, ...)
-			__attribute__nonnull__(2)
-			__attribute__nonnull__(3);
+			__attribute__nonnull__(2);
 
 PERL_CALLCONV SV*	Perl_mess_nocontext(const char* pat, ...)
 			__attribute__format__(__printf__,1,2)
@@ -678,9 +677,7 @@
 
 PERL_CALLCONV HV*	Perl_gv_stashsv(pTHX_ SV* sv, I32 flags);
 PERL_CALLCONV void	Perl_hv_clear(pTHX_ HV* tb);
-PERL_CALLCONV HV *	Perl_hv_copy_hints_hv(pTHX_ HV *const ohv)
-			__attribute__nonnull__(pTHX_1);
-
+PERL_CALLCONV HV *	Perl_hv_copy_hints_hv(pTHX_ HV *const ohv);
 PERL_CALLCONV void	Perl_hv_delayfree_ent(pTHX_ HV* hv, HE* entry)
 			__attribute__nonnull__(pTHX_1);
 
@@ -1303,11 +1300,9 @@
 			__attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void	Perl_sortsv(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp)
-			__attribute__nonnull__(pTHX_1)
 			__attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV void	Perl_sortsv_flags(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t cmp, U32 flags)
-			__attribute__nonnull__(pTHX_1)
 			__attribute__nonnull__(pTHX_3);
 
 PERL_CALLCONV int	Perl_mg_clear(pTHX_ SV* sv)
@@ -2079,7 +2074,9 @@
 PERL_CALLCONV void	Perl_save_mortalizesv(pTHX_ SV* sv)
 			__attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV void	Perl_save_nogv(pTHX_ GV* gv);
+PERL_CALLCONV void	Perl_save_nogv(pTHX_ GV* gv)
+			__attribute__nonnull__(pTHX_1);
+
 PERL_CALLCONV void	Perl_save_op(pTHX);
 PERL_CALLCONV SV*	Perl_save_scalar(pTHX_ GV* gv)
 			__attribute__nonnull__(pTHX_1);
@@ -2263,14 +2260,8 @@
 PERL_CALLCONV void	Perl_sv_clear(pTHX_ SV* sv)
 			__attribute__nonnull__(pTHX_1);
 
-PERL_CALLCONV I32	Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2)
-			__attribute__nonnull__(pTHX_1)
-			__attribute__nonnull__(pTHX_2);
-
-PERL_CALLCONV I32	Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2)
-			__attribute__nonnull__(pTHX_1)
-			__attribute__nonnull__(pTHX_2);
-
+PERL_CALLCONV I32	Perl_sv_cmp(pTHX_ SV* sv1, SV* sv2);
+PERL_CALLCONV I32	Perl_sv_cmp_locale(pTHX_ SV* sv1, SV* sv2);
 #if defined(USE_LOCALE_COLLATE)
 PERL_CALLCONV char*	Perl_sv_collxfrm(pTHX_ SV* sv, STRLEN* nxp)
 			__attribute__nonnull__(pTHX_1)
@@ -2936,8 +2927,7 @@
 
 PERL_CALLCONV void*	Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, const void *sv)
 			__attribute__warn_unused_result__
-			__attribute__nonnull__(pTHX_1)
-			__attribute__nonnull__(pTHX_2);
+			__attribute__nonnull__(pTHX_1);
 
 PERL_CALLCONV void	Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, const void *oldsv, void *newsv)
 			__attribute__nonnull__(pTHX_1)
@@ -3625,7 +3615,6 @@
 			__attribute__nonnull__(pTHX_2);
 
 STATIC void	S_qsortsvu(pTHX_ SV** array, size_t num_elts, SVCOMPARE_t compare)
-			__attribute__nonnull__(pTHX_1)
 			__attribute__nonnull__(pTHX_3);
 
 #endif
@@ -4245,9 +4234,7 @@
 PERL_CALLCONV int	Perl_PerlIO_flush(pTHX_ PerlIO *f);
 PERL_CALLCONV void	Perl_PerlIO_clearerr(pTHX_ PerlIO *f);
 PERL_CALLCONV void	Perl_PerlIO_set_cnt(pTHX_ PerlIO *f, int cnt);
-PERL_CALLCONV void	Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt)
-			__attribute__nonnull__(pTHX_2);
-
+PERL_CALLCONV void	Perl_PerlIO_set_ptrcnt(pTHX_ PerlIO *f, STDCHAR *ptr, int cnt);
 PERL_CALLCONV void	Perl_PerlIO_setlinebuf(pTHX_ PerlIO *f);
 PERL_CALLCONV SSize_t	Perl_PerlIO_read(pTHX_ PerlIO *f, void *buf, Size_t count)
 			__attribute__nonnull__(pTHX_2);


--- NEW FILE 08_fix_udp_typo ---
Fix a typo in the predefined common protocols to make "udp" resolve
without netbase. Upstream change 33554.

diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
index f8bb338..2f0e5d1 100644
--- a/ext/IO/lib/IO/Socket/INET.pm
+++ b/ext/IO/lib/IO/Socket/INET.pm
@@ -27,7 +27,7 @@ my %socket_type = ( tcp  => SOCK_STREAM,
 		  );
 my %proto_number;
 $proto_number{tcp}  = Socket::IPPROTO_TCP()  if defined &Socket::IPPROTO_TCP;
-$proto_number{upd}  = Socket::IPPROTO_UDP()  if defined &Socket::IPPROTO_UDP;
+$proto_number{udp}  = Socket::IPPROTO_UDP()  if defined &Socket::IPPROTO_UDP;
 $proto_number{icmp} = Socket::IPPROTO_ICMP() if defined &Socket::IPPROTO_ICMP;
 my %proto_name = reverse %proto_number;
 


--- NEW FILE 09_fix_memory_debugging ---
Fix a segmentation fault with 'debugperl -Dm'. Upstream change 33388.

diff --git a/perl.c b/perl.c
index e0bc0e7..c5a2070 100644
--- a/perl.c
+++ b/perl.c
@@ -1364,10 +1364,17 @@ perl_free(pTHXx)
 	 */
 	const char * const s = PerlEnv_getenv("PERL_DESTRUCT_LEVEL");
 	if (!s || atoi(s) == 0) {
+	    const U32 old_debug = PL_debug;
 	    /* Emulate the PerlHost behaviour of free()ing all memory allocated in this
 	       thread at thread exit.  */
+	    if (DEBUG_m_TEST) {
+		PerlIO_puts(Perl_debug_log, "Disabling memory debugging as we "
+			    "free this thread's memory\n");
+		PL_debug &= ~ DEBUG_m_FLAG;
+	    }
 	    while(aTHXx->Imemory_debug_header.next != &(aTHXx->Imemory_debug_header))
 		safesysfree(sTHX + (char *)(aTHXx->Imemory_debug_header.next));
+	    PL_debug = old_debug;
 	}
     }
 #endif
diff --git a/util.c b/util.c
index 62fd7ba..d8796cf 100644
--- a/util.c
+++ b/util.c
@@ -178,11 +178,11 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
     ptr = (Malloc_t)PerlMem_realloc(where,size);
     PERL_ALLOC_CHECK(ptr);
 
-    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) rfree\n",PTR2UV(where),(long)PL_an++));
-    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) realloc %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)size));
-
-    if (ptr != NULL) {
+    /* MUST do this fixup first, before doing ANYTHING else, as anything else
+       might allocate memory/free/move memory, and until we do the fixup, it
+       may well be chasing (and writing to) free memory.  */
 #ifdef PERL_TRACK_MEMPOOL
+    if (ptr != NULL) {
 	struct perl_memory_debug_header *const header
 	    = (struct perl_memory_debug_header *)ptr;
 
@@ -198,7 +198,17 @@ Perl_safesysrealloc(Malloc_t where,MEM_SIZE size)
 	header->prev->next = header;
 
         ptr = (Malloc_t)((char*)ptr+sTHX);
+    }
 #endif
+
+    /* In particular, must do that fixup above before logging anything via
+     *printf(), as it can reallocate memory, which can cause SEGVs.  */
+
+    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) rfree\n",PTR2UV(where),(long)PL_an++));
+    DEBUG_m(PerlIO_printf(Perl_debug_log, "0x%"UVxf": (%05ld) realloc %ld bytes\n",PTR2UV(ptr),(long)PL_an++,(long)size));
+
+
+    if (ptr != NULL) {
 	return ptr;
     }
     else if (PL_nomemok)


--- NEW FILE 10_fix_h2ph_include_quote ---
Allow the quote mark delimiter also for those #include directives chased with 
"h2ph -a". Debian bug #479762.

Also add the directory prefix of the current file when the quote syntax is
used; 'require' will only look in @INC, not the current directory.

Upstream change 33835.
diff --git a/utils/h2ph.PL b/utils/h2ph.PL
index 0bfea18..a3ff285 100644
--- a/utils/h2ph.PL
+++ b/utils/h2ph.PL
@@ -85,7 +85,7 @@ sub reindent($) {
 }
 
 my ($t, $tab, %curargs, $new, $eval_index, $dir, $name, $args, $outfile);
-my ($incl, $incl_type, $next);
+my ($incl, $incl_type, $incl_quote, $next);
 while (defined (my $file = next_file())) {
     if (-l $file and -d $file) {
         link_if_possible($file) if ($opt_l);
@@ -186,9 +186,10 @@ while (defined (my $file = next_file())) {
                       print OUT $t,"unless(defined(\&$name)) {\n    sub $name () {\t",$new,";}\n}\n";
 		    }
 		}
-	    } elsif (/^(include|import|include_next)\s*[<\"](.*)[>\"]/) {
+	    } elsif (/^(include|import|include_next)\s*([<\"])(.*)[>\"]/) {
                 $incl_type = $1;
-                $incl = $2;
+                $incl_quote = $2;
+                $incl = $3;
                 if (($incl_type eq 'include_next') ||
                     ($opt_e && exists($bad_file{$incl}))) {
                     $incl =~ s/\.h$/.ph/;
@@ -221,6 +222,10 @@ while (defined (my $file = next_file())) {
 			   "warn(\$\@) if \$\@;\n");
                 } else {
                     $incl =~ s/\.h$/.ph/;
+                    # copy the prefix in the quote syntax (#include "x.h") case
+                    if ($incl !~ m|/| && $incl_quote eq q{"} && $file =~ m|^(.*)/|) {
+                        $incl = "$1/$incl";
+                    }
 		    print OUT $t,"require '$incl';\n";
                 }
 	    } elsif (/^ifdef\s+(\w+)/) {
@@ -724,8 +729,13 @@ sub queue_includes_from
                 $line .= <HEADER>;
             }
 
-            if ($line =~ /^#\s*include\s+<(.*?)>/) {
-                push(@ARGV, $1) unless $Is_converted{$1};
+            if ($line =~ /^#\s*include\s+([<"])(.*?)[>"]/) {
+                my ($delimiter, $new_file) = ($1, $2);
+                # copy the prefix in the quote syntax (#include "x.h") case
+                if ($delimiter eq q{"} && $file =~ m|^(.*)/|) {
+                    $new_file = "$1/$new_file";
+                }
+                push(@ARGV, $new_file) unless $Is_converted{$new_file};
             }
         }
     close HEADER;


--- NEW FILE 11_disable_vstring_warning ---
Disable the "v-string in use/require is non-portable" warning (again).

Upstream change 32910, Debian bug #479863

diff --git a/ext/B/B/Deparse.pm b/ext/B/B/Deparse.pm
index 77ae15f..7092830 100644
--- a/ext/B/B/Deparse.pm
+++ b/ext/B/B/Deparse.pm
@@ -1456,7 +1456,6 @@ sub declare_hints {
 my %ignored_hints = (
     'open<' => 1,
     'open>' => 1,
-    'v_string' => 1,
     );
 
 sub declare_hinthash {
diff --git a/pod/perldiag.pod b/pod/perldiag.pod
index 1dd79a3..29d3cd6 100644
--- a/pod/perldiag.pod
+++ b/pod/perldiag.pod
@@ -4935,18 +4935,6 @@ the version number.
 (W misc) The version string contains invalid characters at the end, which
 are being ignored.
 
-=item v-string in use/require is non-portable
-
-(W portable) The use of v-strings is non-portable to older, pre-5.6, Perls.
-If you want your scripts to be backward portable, use the floating
-point version number: for example, instead of C<use 5.6.1> say
-C<use 5.006_001>. This of course won't make older Perls suddenly start
-understanding newer features, but at least they will show a sensible
-error message indicating the required minimum version.
-
-This warning is suppressed if the C<use 5.x.y> is preceded by a
-C<use 5.006> (see C<use VERSION> in L<perlfunc/use>).
-
 =item Warning: something's wrong
 
 (W) You passed warn() an empty string (the equivalent of C<warn "">) or
diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod
index a779b3b..d64e7a1 100644
--- a/pod/perlfunc.pod
+++ b/pod/perlfunc.pod
@@ -6855,22 +6855,16 @@ of perl older than the specified one.
 
 Specifying VERSION as a literal of the form v5.6.1 should generally be
 avoided, because it leads to misleading error messages under earlier
-versions of Perl that do not support this syntax.  The equivalent numeric
-version should be used instead.
-
-Alternatively, you can use a numeric version C<use 5.006> followed by a
-v-string version like C<use v5.10.1>, to avoid the unintuitive C<use
-5.010_001>. (older perl versions fail gracefully at the first C<use>,
-later perl versions understand the v-string syntax in the second).
+versions of Perl (that is, prior to 5.6.0) that do not support this
+syntax.  The equivalent numeric version should be used instead.
 
     use v5.6.1;		# compile time version check
     use 5.6.1;		# ditto
     use 5.006_001;	# ditto; preferred for backwards compatibility
-    use 5.006; use 5.6.1;	# ditto, for compatibility and readability
 
 This is often useful if you need to check the current Perl version before
-C<use>ing library modules that have changed in incompatible ways from
-older versions of Perl.  (We try not to do this more than we have to.)
+C<use>ing library modules that won't work with older versions of Perl.
+(We try not to do this more than we have to.)
 
 Also, if the specified perl version is greater than or equal to 5.9.5,
 C<use VERSION> will also load the C<feature> pragma and enable all
diff --git a/pp_ctl.c b/pp_ctl.c
index 64157f3..7a377f0 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -3076,14 +3076,6 @@ PP(pp_require)
 
     sv = POPs;
     if ( (SvNIOKp(sv) || SvVOK(sv)) && PL_op->op_type != OP_DOFILE) {
-	if ( SvVOK(sv) && ckWARN(WARN_PORTABLE) ) {	/* require v5.6.1 */
-	    HV * hinthv = GvHV(PL_hintgv);
-	    SV ** ptr = NULL;
-	    if (hinthv) ptr = hv_fetchs(hinthv, "v_string", FALSE);
-	    if ( !(ptr && *ptr && SvIOK(*ptr) && SvIV(*ptr)) )
-		Perl_warner(aTHX_ packWARN(WARN_PORTABLE),
-                        "v-string in use/require non-portable");
-	}
 	sv = new_version(sv);
 	if (!sv_derived_from(PL_patchlevel, "version"))
 	    upg_version(PL_patchlevel, TRUE);
@@ -3135,26 +3127,14 @@ PP(pp_require)
 
         /* We do this only with use, not require. */
 	if (PL_compcv &&
-	  /* If we request a version >= 5.6.0, then v-string are OK
-	     so set $^H{v_string} to suppress the v-string warning */
-	    vcmp(sv, sv_2mortal(upg_version(newSVnv(5.006), FALSE))) >= 0) {
-	  HV * hinthv = GvHV(PL_hintgv);
-	  if( hinthv ) {
-	      SV *hint = newSViv(1);
-	      (void)hv_stores(hinthv, "v_string", hint);
-	      /* This will call through to Perl_magic_sethint() which in turn
-		 sets PL_hints correctly.  */
-	      SvSETMAGIC(hint);
-	  }
 	  /* If we request a version >= 5.9.5, load feature.pm with the
 	   * feature bundle that corresponds to the required version. */
-	  if (vcmp(sv, sv_2mortal(upg_version(newSVnv(5.009005), FALSE))) >= 0) {
+		vcmp(sv, sv_2mortal(upg_version(newSVnv(5.009005), FALSE))) >= 0) {
 	    SV *const importsv = vnormal(sv);
 	    *SvPVX_mutable(importsv) = ':';
 	    ENTER;
 	    Perl_load_module(aTHX_ 0, newSVpvs("feature"), NULL, importsv, NULL);
 	    LEAVE;
-	  }
 	}
 
 	RETPUSHYES;
diff --git a/t/lib/warnings/pp_ctl b/t/lib/warnings/pp_ctl
index 923d54c..afaf0a7 100644
--- a/t/lib/warnings/pp_ctl
+++ b/t/lib/warnings/pp_ctl
@@ -222,18 +222,6 @@ EXPECT
 Use of uninitialized value $foo in print at (eval 1) line 1.
 ########
 # pp_ctl.c
-use warnings 'portable';
-eval 'use 5.6.1';
-EXPECT
-v-string in use/require non-portable at (eval 1) line 2.
-########
-# pp_ctl.c
-use warnings 'portable';
-eval 'use v5.6.1';
-EXPECT
-v-string in use/require non-portable at (eval 1) line 2.
-########
-# pp_ctl.c
 use warnings;
 {
     no warnings;
@@ -245,15 +233,3 @@ EXPECT
 use warnings;
 eval 'use 5.006; use 5.10.0';
 EXPECT
-########
-# pp_ctl.c
-use warnings;
-eval '{use 5.006;} use 5.10.0';
-EXPECT
-v-string in use/require non-portable at (eval 1) line 2.
-########
-# pp_ctl.c
-use warnings;
-eval 'use vars; use 5.10.0';
-EXPECT
-v-string in use/require non-portable at (eval 1) line 2.


--- NEW FILE 15_fix_local_symtab ---
Fix a segmentation fault occurring in the mod_perl2 test suite. (Closes: #475498)

Upstream change #33807 backported from blead.

[perl #52740]
diff --git a/sv.c b/sv.c
index 718e305..fe36438 100644
--- a/sv.c
+++ b/sv.c
@@ -3557,8 +3557,10 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV *sstr, I32 flags)
 		GvMULTI_on(dstr);
 		return;
 	    }
-	    glob_assign_glob(dstr, sstr, dtype);
-	    return;
+	    if (isGV_with_GP(sstr)) {
+		glob_assign_glob(dstr, sstr, dtype);
+		return;
+	    }
 	}
 
 	if (dtype >= SVt_PV) {


--- NEW FILE 16_fix_perlio_teardown_prototype ---
Fix the PerlIO_teardown prototype to suppress a compiler warning. (Closes: #479540)

Part of upstream change 33370, also in maint-5.10.
diff --git a/perl.h b/perl.h
index e48f768..abcae45 100644
--- a/perl.h
+++ b/perl.h
@@ -3966,7 +3966,7 @@ typedef Sighandler_t Sigsave_t;
 #endif
 
 #ifdef USE_PERLIO
-EXTERN_C void PerlIO_teardown();
+EXTERN_C void PerlIO_teardown(void);
 # ifdef USE_ITHREADS
 #  define PERLIO_INIT MUTEX_INIT(&PL_perlio_mutex)
 #  define PERLIO_TERM 				\
diff --git a/perlio.c b/perlio.c
index 76fe225..b94acb0 100644
--- a/perlio.c
+++ b/perlio.c
@@ -2413,7 +2413,7 @@ PerlIO_cleanup(pTHX)
     }
 }
 
-void PerlIO_teardown() /* Call only from PERL_SYS_TERM(). */
+void PerlIO_teardown(void) /* Call only from PERL_SYS_TERM(). */
 {
     dVAR;
 #if 0
diff --git a/perliol.h b/perliol.h
index 756db2d..caba999 100644
--- a/perliol.h
+++ b/perliol.h
@@ -170,7 +170,7 @@ PERL_EXPORT_C void PerlIO_list_free(pTHX_ PerlIO_list_t *list);
 
 /* PerlIO_teardown doesn't need exporting, but the EXTERN_C is needed
  * for compiling as C++.  Must also match with what perl.h says. */
-EXTERN_C void PerlIO_teardown();
+EXTERN_C void PerlIO_teardown(void);
 
 /*--------------------------------------------------------------------------------------*/
 /* Generic, or stub layer functions */


--- NEW FILE 17_fix_getopt_long_callback ---
Remove numeric overloading of Getopt::Long callback functions. (Closes: #479434)

The numeric overloading introduced in Getopt::Long 2.36 broke
lintian and libvcp-perl.

Dual-lived module, fixed on the CPAN side in 2.37_01.

[rt.cpan.org #35759]
diff --git a/lib/Getopt/Long.pm b/lib/Getopt/Long.pm
index f44e615..b5f94b1 100644
--- a/lib/Getopt/Long.pm
+++ b/lib/Getopt/Long.pm
@@ -1483,7 +1483,6 @@ sub name {
 use overload
   # Treat this object as an oridinary string for legacy API.
   '""'	   => \&name,
-  '0+'	   => sub { 0 },
   fallback => 1;
 
 1;


--- NEW FILE 18_fix_bigint_floats ---
Fix Math::BigFloat::sqrt() breaking with too many digits. (Closes: #417528)

Dual-lived module, fixed on the CPAN side in 1.89.

Integrated with the other 1.89 changes in blead as change 33715
and maint-5.10 as change 33821.

[rt.cpan.org #34459]
diff --git a/lib/Math/BigFloat.pm b/lib/Math/BigFloat.pm
index 6e1ecc8..1c1fba8 100644
--- a/lib/Math/BigFloat.pm
+++ b/lib/Math/BigFloat.pm
@@ -2142,8 +2142,9 @@ sub bsqrt
   # But we need at least $scale digits, so calculate how many are missing
   my $shift = $scale - $digits;
 
-  # That should never happen (we take care of integer guesses above)
-  # $shift = 0 if $shift < 0; 
+  # This happens if the input had enough digits 
+  # (we take care of integer guesses above)
+  $shift = 0 if $shift < 0; 
 
   # Multiply in steps of 100, by shifting left two times the "missing" digits
   my $s2 = $shift * 2;
diff --git a/lib/Math/BigInt/t/mbimbf.t b/lib/Math/BigInt/t/mbimbf.t
index fae3c8c..88201e1 100644
--- a/lib/Math/BigInt/t/mbimbf.t
+++ b/lib/Math/BigInt/t/mbimbf.t
@@ -32,7 +32,7 @@ BEGIN
   print "# INC = @INC\n";
 
   plan tests => 684 
-    + 23;		# own tests
+    + 26;		# own tests
   }
 
 use Math::BigInt 1.70;
@@ -100,3 +100,9 @@ $x = Math::BigFloat->new(100);
 $x = $x->blog(Math::BigInt->new(10));
 
 ok ($x,2);
+
+for my $i (80,88,100) {
+    $x = Math::BigFloat->new("1." . ("0" x $i) . "1");
+    $x = $x->bsqrt;
+    ok ($x, 1);
+}


--- NEW FILE 25_fix_cgi_tempdir ---
Fix tainted usage of $ENV{TMPDIR} as an sprintf format in CGI.pm. (Closes: #494679)

[rt.perl.org #50322]
Bleadperl change 33143.

Note that the inconsistent usage of backslashes doesn't matter, as
the whole thing is eval'd in.
diff --git a/lib/CGI.pm b/lib/CGI.pm
index c0158cb..1bc74a3 100644
--- a/lib/CGI.pm
+++ b/lib/CGI.pm
@@ -4032,7 +4032,7 @@ sub new {
     my $filename;
     find_tempdir() unless -w $TMPDIRECTORY;
     for (my $i = 0; $i < $MAXTRIES; $i++) {
-	last if ! -f ($filename = sprintf("${TMPDIRECTORY}${SL}CGItemp%d",$sequence++));
+	last if ! -f ($filename = sprintf("\%s${SL}CGItemp%d",$TMPDIRECTORY,$sequence++));
     }
     # check that it is a more-or-less valid filename
     return unless $filename =~ m!^([a-zA-Z0-9_ \'\":/.\$\\-]+)$!;


***** Error reading new file: [Errno 2] No such file or directory: '26_fix_pod2man_upgrade'

--- NEW FILE 27_fix_sys_syslog_timeout ---
Fix Sys::Syslog slowness when logging with non-native mechanisms. (Closes: #498776)

Revert the 0.25 second timeout change that was added in 0.19 to address
an OSX problem with UDP sockets and ICMP responses.

Fixed upstream in Sys::Syslog 0.25, which changes the timeout default
to 0 again on non-OSX hosts and makes it configurable with setlogsock().
diff --git a/ext/Sys/Syslog/Syslog.pm b/ext/Sys/Syslog/Syslog.pm
index 899f25b..7037e18 100644
--- a/ext/Sys/Syslog/Syslog.pm
+++ b/ext/Sys/Syslog/Syslog.pm
@@ -741,7 +741,7 @@ sub connection_ok {
 
     my $rin = '';
     vec($rin, fileno(SYSLOG), 1) = 1;
-    my $ret = select $rin, undef, $rin, 0.25;
+    my $ret = select $rin, undef, $rin, 0;
     return ($ret ? 0 : 1);
 }
 


--- NEW FILE 28_fix_inplace_sort ---
Fix memory corruption with in-place sorting. (Closes: #498769)

[perl #54758]

Fixed in bleadperl by change 33937.
diff --git a/pp_sort.c b/pp_sort.c
index 582b811..1d38bc3 100644
--- a/pp_sort.c
+++ b/pp_sort.c
@@ -1553,11 +1553,12 @@ PP(pp_sort)
 	max = AvFILL(av) + 1;
 	if (SvMAGICAL(av)) {
 	    MEXTEND(SP, max);
-	    p2 = SP;
 	    for (i=0; i < max; i++) {
 		SV **svp = av_fetch(av, i, FALSE);
 		*SP++ = (svp) ? *svp : NULL;
 	    }
+	    SP--;
+	    p1 = p2 = SP - (max-1);
 	}
 	else {
 	    if (SvREADONLY(av))
@@ -1713,7 +1714,7 @@ PP(pp_sort)
 	SvREADONLY_off(av);
     else if (av && !sorting_av) {
 	/* simulate pp_aassign of tied AV */
-	SV** const base = ORIGMARK+1;
+	SV** const base = MARK+1;
 	for (i=0; i < max; i++) {
 	    base[i] = newSVsv(base[i]);
 	}


--- NEW FILE 30_fix_freetmps ---
Revert an incorrect substitution optimization introduced in 5.10.0. (Closes: #501178)

[perl #52658]

Bug introduced by upstream change 26334, reverted with change 33685 in blead
and 33732 in maint-5.10.
diff --git a/pp_ctl.c b/pp_ctl.c
index 7a377f0..88269a7 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -218,7 +218,6 @@ PP(pp_substcont)
 	if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs))
 	    cx->sb_rxtainted |= 2;
 	sv_catsv(dstr, POPs);
-	FREETMPS; /* Prevent excess tmp stack */
 
 	/* Are we done */
 	if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig,


--- NEW FILE 31_fix_attributes_unknown_error ---
Fix 'Unknown error' messages with attribute.pm. (Closes: #488088)

[perl #49472]
blead change 33265

From: Dave Mitchell <davem at fdisolutions.com>
Date: Sat, 9 Feb 2008 14:56:23 +0000
Subject: [PATCH] [perl #49472] Attributes + Unkown Error
 An errored attribute sub still processes the attributes,
 which require's attribute.pm, so make sure the error state is
 passed to the new require

p4raw-id: //depot/perl at 33265
---
 t/comp/require.t |   16 +++++++++++++++-
 toke.c           |    1 +
 2 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/t/comp/require.t b/t/comp/require.t
index af5e4b2..0746b3b 100755
--- a/t/comp/require.t
+++ b/t/comp/require.t
@@ -15,7 +15,7 @@ krunch.pm krunch.pmc whap.pm whap.pmc);
 
 my $Is_EBCDIC = (ord('A') == 193) ? 1 : 0;
 my $Is_UTF8   = (${^OPEN} || "") =~ /:utf8/;
-my $total_tests = 49;
+my $total_tests = 50;
 if ($Is_EBCDIC || $Is_UTF8) { $total_tests -= 3; }
 print "1..$total_tests\n";
 
@@ -258,6 +258,20 @@ EOT
     }
 }
 
+#  [perl #49472] Attributes + Unkown Error
+
+{
+    do_require
+	'use strict;sub MODIFY_CODE_ATTRIBUTE{} sub f:Blah {$nosuchvar}';
+    my $err = $@;
+    $err .= "\n" unless $err =~ /\n$/;
+    unless ($err =~ /Global symbol "\$nosuchvar" requires /) {
+	$err =~ s/^/# /mg;
+	print "${err}not ";
+    }
+    print "ok ", ++$i, " [perl #49472]\n";
+}
+
 ##########################################
 # What follows are UTF-8 specific tests. #
 # Add generic tests before this point.   #
diff --git a/toke.c b/toke.c
index 2ae8b75..ecee902 100644
--- a/toke.c
+++ b/toke.c
@@ -692,6 +692,7 @@ Perl_lex_start(pTHX_ SV *line, PerlIO *rsfp, bool new_filter)
 #else
     parser->nexttoke = 0;
 #endif
+    parser->error_count = oparser ? oparser->error_count : 0;
     parser->copline = NOLINE;
     parser->lex_state = LEX_NORMAL;
     parser->expect = XSTATE;
-- 
1.5.6.5



--- NEW FILE 32_fix_fork_rand ---
Stop t/op/fork.t relying on rand(). (Closes: #317843)

[perl #53238]
blead change 33749

From: David Dick <perlbug-followup at perl.org>
Date: Tue, 22 Apr 2008 21:12:42 -0700
Subject: [PATCH] [perl #53238] Patch to stop t/op/fork.t relying on rand
 From: David Dick (via RT) <perlbug-followup at perl.org>
 Message-ID: <rt-3.6.HEAD-23612-1208949161-1511.53238-75-0 at perl.org>

p4raw-id: //depot/perl at 33749
---
 t/op/fork.t |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/t/op/fork.t b/t/op/fork.t
index 7318449..a19b260 100755
--- a/t/op/fork.t
+++ b/t/op/fork.t
@@ -445,16 +445,14 @@ pipe(RDR,WTR) or die $!;
 my $pid = fork;
 die "fork: $!" if !defined $pid;
 if ($pid == 0) {
-    my $rand_child = rand;
     close RDR;
-    print WTR $rand_child, "\n";
+    print WTR "STRING_FROM_CHILD\n";
     close WTR;
 } else {
-    my $rand_parent = rand;
     close WTR;
-    chomp(my $rand_child  = <RDR>);
+    chomp(my $string_from_child  = <RDR>);
     close RDR;
-    print $rand_child ne $rand_parent, "\n";
+    print $string_from_child eq "STRING_FROM_CHILD", "\n";
 }
 EXPECT
 1
-- 
1.5.6.5



--- NEW FILE 34_fix_qr-memory-leak-2 ---
Fix memory leak with qr//. (Closes: #503975)

Adapted from upstream change 34506.
diff --git a/pp_hot.c b/pp_hot.c
index 57fa328..4a4e9e8 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1198,6 +1198,9 @@ PP(pp_qr)
     if (rx->extflags & RXf_TAINTED)
         SvTAINTED_on(rv);
     sv_magic(sv,(SV*)ReREFCNT_inc(rx), PERL_MAGIC_qr,0,0);
+    if (pkg) {
+	SvREFCNT_dec(pkg);
+    }
     XPUSHs(rv);
     RETURN;
 }


--- NEW FILE 35_fix_file_path_rmtree_setuid ---
[SECURITY] CVE-2005-0448 revisited: File::Path::rmtree no longer allows creating of setuid files. (Closes: #286905)

This vulnerability was fixed in 5.8.4-7 but re-introduced in 5.8.8-1.
It's also present in File::Path 2.xx, up to and including 2.07 which
has only a partial fix.
diff --git a/lib/File/Path.pm b/lib/File/Path.pm
index f20424d..3c0e417 100644
--- a/lib/File/Path.pm
+++ b/lib/File/Path.pm
@@ -316,10 +316,8 @@ sub _rmtree {
                     print "skipped $root\n" if $arg->{verbose};
                     next ROOT_DIR;
                 }
-                if (!chmod $perm | 0700, $root) {
-                    if ($Force_Writeable) {
-                        _error($arg, "cannot make directory writeable", $canon);
-                    }
+                if ($Force_Writeable && !chmod $perm | 0700, $root) {
+                    _error($arg, "cannot make directory writeable", $canon);
                 }
                 print "rmdir $root\n" if $arg->{verbose};
                 if (rmdir $root) {
@@ -328,7 +326,7 @@ sub _rmtree {
                 }
                 else {
                     _error($arg, "cannot remove directory", $canon);
-                    if (!chmod($perm, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
+                    if ($Force_Writeable && !chmod($perm, ($Is_VMS ? VMS::Filespec::fileify($root) : $root))
                     ) {
                         _error($arg, sprintf("cannot restore permissions to 0%o",$perm), $canon);
                     }


--- NEW FILE 36_fix_file_temp_cleanup ---
Make File::Temp warn on cleaning up the current working directory at exit instead of bailing out. (Closes: #479317)

Adapted from File-Temp 0.21.
[rt.cpan.org #35779]
diff --git a/lib/File/Temp.pm b/lib/File/Temp.pm
index b933963..ccc2316 100644
--- a/lib/File/Temp.pm
+++ b/lib/File/Temp.pm
@@ -890,7 +890,12 @@ sub _can_do_level {
 		  @{ $dirs_to_unlink{$$} } : () );
       foreach my $dir (@dirs) {
 	if (-d $dir) {
-	  rmtree($dir, $DEBUG, 0);
+          # Some versions of rmtree will abort if you attempt to remove
+          # the directory you are sitting in. We protect that and turn it
+          # into a warning. We do this because this occurs during
+          # cleanup and so can not be caught by the user.
+          eval { rmtree($dir, $DEBUG, 0); };
+          warn $@ if ($@ && $^W);
 	}
       }
 
@@ -2234,6 +2239,12 @@ srand(EXPR) in each child else all the children will attempt to walk
 through the same set of random file names and may well cause
 themselves to give up if they exceed the number of retry attempts.
 
+=head2 Directory removal
+
+Note that if you have chdir'ed into the temporary directory and it is
+subsequently cleaned up in the END block, then you will get a warning
+from File::Path::rmtree().
+
 =head2 BINMODE
 
 The file returned by File::Temp will have been opened in binary mode


--- NEW FILE 37_fix_coredump_indicator ---
Fix $? when dumping core. (Closes: #509041)

WCOREDUMP is in <sys/wait.h>

Without this, $? & 128 doesn't get set properly on some (glibc) systems
when dumping core.
diff --git a/perl.h b/perl.h
index abcae45..ebf57cd 100644
--- a/perl.h
+++ b/perl.h
@@ -663,6 +663,11 @@ register struct op *Perl_op asm(stringify(OP_IN_REGISTER));
 #   include <unistd.h>
 #endif
 
+/* for WCOREDUMP */
+#ifdef I_SYS_WAIT
+#   include <sys/wait.h>
+#endif
+
 #ifdef __SYMBIAN32__
 #   undef _SC_ARG_MAX /* Symbian has _SC_ARG_MAX but no sysconf() */
 #endif


--- NEW FILE 38_fix_weaken_memleak ---
Fix a memory leak with Scalar::Util::weaken(). (Closes: #506324)

Upstream change 34209:

DBI memory leak in 5.10.0 due to change 26530

A weakref to a HV would leak, because the xhv_backreferences
array is created with a refcount of 2 (to avoid premature freeing
during global destruction), but the RC was only decremented once
when the parent HV was freed.
Also, when thread cloned, the new array was being created with a
RC of 1, rather than 2, which coincidentally worked due to the
first bug.

p4raw-id: //depot/perl at 34209
diff --git a/hv.c b/hv.c
index c8279d8..80adc1f 100644
--- a/hv.c
+++ b/hv.c
@@ -1961,6 +1961,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
     if (av) {
 	HvAUX(hv)->xhv_backreferences = 0;
 	Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av);
+	SvREFCNT_dec(av);
     }
 }
 
diff --git a/sv.c b/sv.c
index fe36438..7eb088b 100644
--- a/sv.c
+++ b/sv.c
@@ -10265,10 +10265,11 @@ Perl_sv_dup(pTHX_ const SV *sstr, CLONE_PARAMS* param)
 			daux->xhv_eiter = saux->xhv_eiter
 			    ? he_dup(saux->xhv_eiter,
 					(bool)!!HvSHAREKEYS(sstr), param) : 0;
+			/* backref array needs refcnt=2; see sv_add_backref */
 			daux->xhv_backreferences =
 			    saux->xhv_backreferences
 				? (AV*) SvREFCNT_inc(
-					sv_dup((SV*)saux->xhv_backreferences, param))
+					sv_dup_inc((SV*)saux->xhv_backreferences, param))
 				: 0;
 
                         daux->xhv_mro_meta = saux->xhv_mro_meta

perl-5.10.0-Archive-Extract-onlystdout.patch:

--- NEW FILE perl-5.10.0-Archive-Extract-onlystdout.patch ---
diff -up perl-5.10.0/lib/Archive/Extract.pm.BAD perl-5.10.0/lib/Archive/Extract.pm
--- perl-5.10.0/lib/Archive/Extract.pm.BAD	2009-03-10 15:25:06.000000000 -0400
+++ perl-5.10.0/lib/Archive/Extract.pm	2009-03-10 15:25:11.000000000 -0400
@@ -550,12 +550,19 @@ sub _untar_bin {
                              $self->bin_tar, '-tf', '-'] :
             [$self->bin_tar, '-tf', $self->archive];
 
-        ### run the command ###
+        ### run the command
+        ### newer versions of 'tar' (1.21 and up) now print record size
+        ### to STDERR as well if v OR t is given (used to be both). This
+        ### is a 'feature' according to the changelog, so we must now only
+        ### inspect STDOUT, otherwise, failures like these occur:
+        ### nntp.perl.org/group/perl.cpan.testers/2009/02/msg3230366.html 
         my $buffer = '';
-        unless( scalar run( command => $cmd,
+        my @out     = run(  command => $cmd, 
                             buffer  => \$buffer,
-                            verbose => $DEBUG )
-        ) {
+                            verbose => $DEBUG ); 
+
+        ### command was unsuccessful
+        unless( $out[0] ) { 
             return $self->_error(loc(
                             "Error listing contents of archive '%1': %2",
                             $self->archive, $buffer ));
@@ -578,7 +585,8 @@ sub _untar_bin {
                                             \s+ [\d,.]+ \s tape \s blocks
                                         |x ? $1 : $_);
 
-                    } split $/, $buffer;
+                    ### only STDOUT, see above 
+                    } map { split $/, $_ } @{$out[3]};
 
             ### store the files that are in the archive ###
             $self->files(\@files);

perl-5.10.0-Change34507.patch:

--- NEW FILE perl-5.10.0-Change34507.patch ---
diff -up perl-5.10.0/regcomp.c.34507 perl-5.10.0/regcomp.c
--- perl-5.10.0/regcomp.c.34507	2009-03-09 08:44:12.000000000 -0400
+++ perl-5.10.0/regcomp.c	2009-03-09 08:45:36.000000000 -0400
@@ -8239,6 +8239,9 @@ parseit:
         *STRING(ret)= (char)value;
         STR_LEN(ret)= 1;
         RExC_emit += STR_SZ(1);
+        if (listsv) {
+            SvREFCNT_dec(listsv);
+        }
         return ret;
     }
     /* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */

perl-5.10.0-reorderINC.patch:

--- NEW FILE perl-5.10.0-reorderINC.patch ---
diff -up perl-5.10.0/perl.c.BAD perl-5.10.0/perl.c
--- perl-5.10.0/perl.c.BAD	2009-03-09 09:55:05.000000000 -0400
+++ perl-5.10.0/perl.c	2009-03-09 10:00:41.000000000 -0400
@@ -4753,9 +4753,6 @@ S_init_perllib(pTHX)
     incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
 #endif
 
-#ifdef ARCHLIB_EXP
-    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
-#endif
 #ifdef MACOS_TRADITIONAL
     {
 	Stat_t tmpstatbuf;
@@ -4764,6 +4761,10 @@ S_init_perllib(pTHX)
 	
 	if (!macperl)
 	    macperl = "";
+
+#ifdef ARCHLIB_EXP
+        incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+#endif
 	
 	Perl_sv_setpvf(aTHX_ privdir, "%slib:", macperl);
 	if (PerlLIO_stat(SvPVX(privdir), &tmpstatbuf) >= 0 && S_ISDIR(tmpstatbuf.st_mode))
@@ -4777,14 +4778,6 @@ S_init_perllib(pTHX)
     if (!PL_tainting)
 	incpush(":", FALSE, FALSE, TRUE, FALSE);
 #else
-#ifndef PRIVLIB_EXP
-#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
-#endif
-#if defined(WIN32)
-    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE);
-#else
-    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
-#endif
 
 #ifdef SITEARCH_EXP
     /* sitearch is always relative to sitelib on Windows for
@@ -4828,6 +4821,19 @@ S_init_perllib(pTHX)
     incpush(PERL_VENDORLIB_STEM, FALSE, TRUE, TRUE, TRUE);
 #endif
 
+#ifdef ARCHLIB_EXP
+    incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+#endif
+
+#ifndef PRIVLIB_EXP
+#  define PRIVLIB_EXP "/usr/local/lib/perl5:/usr/local/lib/perl"
+#endif
+#if defined(WIN32)
+    incpush(PRIVLIB_EXP, TRUE, FALSE, TRUE, TRUE);
+#else
+    incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
+#endif
+
 #ifdef PERL_OTHERLIBDIRS
     incpush(PERL_OTHERLIBDIRS, TRUE, TRUE, TRUE, TRUE);
 #endif

perl-5.10.0-bz448392.patch:

Index: perl-5.10.0-bz448392.patch
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-10/perl-5.10.0-bz448392.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- perl-5.10.0-bz448392.patch	26 May 2008 15:09:24 -0000	1.1
+++ perl-5.10.0-bz448392.patch	11 Mar 2009 22:01:32 -0000	1.2
@@ -1,12 +1,36 @@
-diff -up perl-5.10.0/mg.c.crr perl-5.10.0/mg.c
---- perl-5.10.0/mg.c.crr	2007-12-18 11:47:08.000000000 +0100
-+++ perl-5.10.0/mg.c	2008-05-26 15:28:17.000000000 +0200
-@@ -1543,7 +1543,7 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *m
+diff -up perl-5.10.0/mg.c.BAD perl-5.10.0/mg.c
+--- perl-5.10.0/mg.c.BAD	2009-03-11 13:10:22.000000000 -0400
++++ perl-5.10.0/mg.c	2009-03-11 13:08:54.000000000 -0400
+@@ -1543,10 +1543,11 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *m
      stash = GvSTASH(
          SvTYPE(mg->mg_obj) == SVt_PVGV
              ? (GV*)mg->mg_obj
 -            : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
-+	    : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
++            : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
      );
  
-     mro_isa_changed_in(stash);
+-    mro_isa_changed_in(stash);
++    if (stash)
++        mro_isa_changed_in(stash);
+ 
+     return 0;
+ }
+--- a/t/mro/pkg_gen.t
++++ b/t/mro/pkg_gen.t
+@@ -4,7 +4,7 @@ use strict;
+ use warnings;
+ 
+ chdir 't' if -d 't';
+-require q(./test.pl); plan(tests => 6);
++require q(./test.pl); plan(tests => 7);
+ 
+ {
+     package Foo;
+@@ -34,3 +34,7 @@ is(mro::get_pkg_gen('Foo'), 1, "pkg_gen 1 for undef %Pkg::");
+ 
+ delete $::{"Foo::"};
+ is(mro::get_pkg_gen('Foo'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
++
++delete $::{"Quux::"};
++push @Quux::ISA, "Woot"; # should not segfault
++ok(1, "No segfault on modification of ISA in a deleted stash");


Index: perl.spec
===================================================================
RCS file: /cvs/pkgs/rpms/perl/F-10/perl.spec,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -r1.203 -r1.204
--- perl.spec	16 Feb 2009 18:27:30 -0000	1.203
+++ perl.spec	11 Mar 2009 22:01:32 -0000	1.204
@@ -7,7 +7,7 @@
 
 Name:           perl
 Version:        %{perl_version}
-Release:        56%{?dist}
+Release:        57%{?dist}
 Epoch:          %{perl_epoch}
 Summary:        Practical Extraction and Report Language
 Group:          Development/Languages
@@ -125,6 +125,104 @@
 Patch32:	perl-5.10.0-ArchiveTar1.40.patch
 Patch33:	perl-5.10.0-PerlIO-via-change34025.patch
 
+# Change 34507: Fix memory leak in single-char character class optimization
+Patch34:        perl-5.10.0-Change34507.patch
+
+# Reorder @INC: Based on: http://github.com/rafl/perl/commit/b9ba2fadb18b54e35e5de54f945111a56cbcb249
+Patch35:	perl-5.10.0-reorderINC.patch
+
+# Fix from Archive::Extract maintainer to only look at stdout
+# We need this because we're using tar >= 1.21
+Patch36:	perl-5.10.0-Archive-Extract-onlystdout.patch
+
+### Debian Patches ###
+
+# Fix issue with (nested) definition lists in lib/Pod/Html.pm
+# Upstream change 32727
+Patch40:	02_fix_pod2html_dl
+
+# Fix NULLOK items
+# Upstream change 33287
+Patch41:	07_fix_nullok
+
+# Fix a typo in the predefined common protocols to make "udp" resolve without netbase
+# Upstream change 33554
+Patch42:	08_fix_udp_typo
+
+# Fix a segmentation fault with 'debugperl -Dm'.
+# Upstream change 33388
+Patch43:	09_fix_memory_debugging
+
+# Allow the quote mark delimiter also for those #include directives chased with "h2ph -a".
+# Also add the directory prefix of the current file when the quote syntax is used;
+# 'require' will only look in @INC, not the current directory.
+# Upstream change 33835
+Patch44:	10_fix_h2ph_include_quote
+
+# Disable the "v-string in use/require is non-portable" warning.
+# Upstream change 32910
+Patch45:	11_disable_vstring_warning
+
+# Fix a segmentation fault occurring in the mod_perl2 test suite.
+# Upstream change 33807
+Patch46:	15_fix_local_symtab
+
+# Fix the PerlIO_teardown prototype to suppress a compiler warning.
+# Upstream change 33370
+Patch47:	16_fix_perlio_teardown_prototype
+
+# Remove numeric overloading of Getopt::Long callback functions.
+# Dual-lived module, fixed on the CPAN side in 2.37_01.
+Patch48:	17_fix_getopt_long_callback
+
+# Fix Math::BigFloat::sqrt() breaking with too many digits.
+# Upstream change 33821
+Patch49:	18_fix_bigint_floats
+
+# Upgrade to Pod::Man 2.18 for utf8 functionality in pod2man
+Patch50:	26_fix_pod2man_upgrade
+
+# Fix Sys::Syslog slowness when logging with non-native mechanisms.
+# Fixed upstream in Sys::Syslog 0.25
+Patch51:	27_fix_sys_syslog_timeout
+
+# Fix memory corruption with in-place sorting.
+# Upstream change 33937
+Patch52:	28_fix_inplace_sort
+
+# Revert an incorrect substitution optimization introduced in 5.10.0.
+# Bug introduced by upstream change 26334, reverted with change 33685 in blead and 33732 in maint-5.10.
+Patch53:	30_fix_freetmps
+
+# Fix 'Unknown error' messages with attribute.pm.
+# Upstream change 33265
+Patch54:	31_fix_attributes_unknown_error
+
+# Stop t/op/fork.t relying on rand().
+# Upstream change 33749
+Patch55:	32_fix_fork_rand
+
+# Fix memory leak with qr//.
+# Adapted from upstream changhe 34506.
+Patch56:	34_fix_qr-memory-leak-2
+
+# CVE-2005-0448 revisited: File::Path::rmtree no longer allows creating of setuid files.
+Patch57:	35_fix_file_path_rmtree_setuid
+
+# Make File::Temp warn on cleaning up the current working directory at exit instead of bailing out.
+# Adapted from File::Temp 0.21
+Patch58:	36_fix_file_temp_cleanup
+
+# Fix $? when dumping core.
+Patch59:	37_fix_coredump_indicator
+
+# Fix a memory leak with Scalar::Util::weaken().
+# Upstream change 34209
+Patch60:	38_fix_weaken_memleak
+
+### End of Debian Patches ###
+
+
 BuildRoot:      %{_tmppath}/%{name}-%{perl_version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires:  tcsh, dos2unix, man, groff
 BuildRequires:  gdbm-devel, db4-devel, zlib-devel
@@ -865,6 +963,32 @@
 %patch31 -p1
 %patch32 -p1
 %patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+
+### Debian patches ###
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
+%patch48 -p1
+%patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
+%patch53 -p1
+%patch54 -p1
+%patch55 -p1
+%patch56 -p1
+%patch57 -p1
+%patch58 -p1
+%patch59 -p1
+%patch60 -p1
 
 #
 # Candidates for doc recoding (need case by case review):
@@ -980,7 +1104,6 @@
 make %{?_smp_mflags}
 %endif
 
-
 %install
 rm -rf $RPM_BUILD_ROOT
 make install DESTDIR=$RPM_BUILD_ROOT
@@ -1104,6 +1227,30 @@
 perl -x patchlevel.h '33897 Replaced the WEXITSTATUS, WIFEXITED, WIFSIGNALED, WIFSTOPPED, WSTOPSIG'
 perl -x patchlevel.h 'Fedora Patch32: CVE-2007-4829 Update Archive::Tar to 1.40'
 perl -x patchlevel.h '54934 Change 34025 refcount of the globs generated by PerlIO::via balanced'
+perl -x patchlevel.h '34507 Fix memory leak in single-char character class optimization'
+perl -x patchlevel.h 'Fedora Patch35: Reorder @INC, based on b9ba2fadb18b54e35e5de54f945111a56cbcb249'
+perl -x patchlevel.h 'Fedora Patch36: Fix from Archive::Extract maintainer to only look at stdout from tar'
+perl -x patchlevel.h '32727 Fix issue with (nested) definition lists in lib/Pod/Html.pm'
+perl -x patchlevel.h '33287 Fix NULLOK items'
+perl -x patchlevel.h '33554 Fix a typo in the predefined common protocols to make "udp" resolve without netbase'
+perl -x patchlevel.h '33388 Fix a segmentation fault with debugperl -Dm'
+perl -x patchlevel.h '33835 Allow the quote mark delimiter also for those #include directives chased with h2ph -a.'
+perl -x patchlevel.h '32910 Disable the v-string in use/require is non-portable warning.'
+perl -x patchlevel.h '33807 Fix a segmentation fault occurring in the mod_perl2 test suite.'
+perl -x patchlevel.h '33370 Fix the PerlIO_teardown prototype to suppress a compiler warning.'
+perl -x patchlevel.h 'Fedora Patch48: Remove numeric overloading of Getopt::Long callback functions.'
+perl -x patchlevel.h '33821 Fix Math::BigFloat::sqrt() breaking with too many digits.'
+perl -x patchlevel.h 'Fedora Patch50: Upgrade to Pod::Man 2.18 for utf8 functionality in pod2man'
+perl -x patchlevel.h 'Fedora Patch51: Fix Sys::Syslog slowness when logging with non-native mechanisms'
+perl -x patchlevel.h '33937 Fix memory corruption with in-place sorting'
+perl -x patchlevel.h '33732 Revert an incorrect substitution optimization introduced in 5.10.0'
+perl -x patchlevel.h '33265 Fix Unknown error messages with attribute.pm.'
+perl -x patchlevel.h '33749 Stop t/op/fork.t relying on rand()'
+perl -x patchlevel.h '34506 Fix memory leak with qr//'
+perl -x patchlevel.h 'Fedora Patch57: File::Path::rmtree no longer allows creating of setuid files.'
+perl -x patchlevel.h 'Fedora Patch58: Make File::Temp warn on cleaning up the current working directory at exit instead of bailing out.'
+perl -x patchlevel.h 'Fedora Patch59: Fix $? when dumping core'
+perl -x patchlevel.h '34209 Fix a memory leak with Scalar::Util::weaken()'
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -1711,6 +1858,12 @@
 
 # Old changelog entries are preserved in CVS.
 %changelog
+* Wed Mar 11 2009 Tom "spot" Callaway <tcallawa at redhat.com> - 4:5.10.0-57
+- apply Change 34507: Fix memory leak in single-char character class optimization
+- Reorder @INC, based on b9ba2fadb18b54e35e5de54f945111a56cbcb249
+- fix Archive::Extract to fix test failure caused by tar >= 1.21
+- Merge useful Debian patches
+
 * Mon Feb 16 2009 Tom "spot" Callaway <tcallawa at redhat.com> - 4:5.10.0-56
 - add /usr/lib/perl5/site_perl to otherlibs (bz 484053)
 


--- perl-5.10.0-Archive-Extract-0.26.patch DELETED ---




More information about the fedora-extras-commits mailing list