In perl.git, the branch maint-5.10 has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/9ee340c0a4d7fafbd35da28a7dbf9a64a3228de2?hp=11f90d967f869ebd6935c2ebee7eaff41ce9f53a>

- Log -----------------------------------------------------------------
commit 9ee340c0a4d7fafbd35da28a7dbf9a64a3228de2
Author: Robin Barker <[email protected]>
Date:   Tue Jun 23 14:51:45 2009 +0200

    Fix for RT #52552.
    
    This patch only taints for pack('a'/'A') which was the original bug. I
    guess the previous behaviour (pre-5.10.0) tainted on all tainted input.
    That more general behaviour may be recoverable - not sure what we want.
    
    (cherry picked from commit 3c4fb04a912b266806354630dd98a7e36a830fbe)

M       pp_pack.c
M       t/op/taint.t

commit 745eb3745e5d792c2b727c759ba3e8abf42bbc22
Author: David Mitchell <[email protected]>
Date:   Fri Jun 26 17:10:34 2009 +0100

    cherry-picking of 8267ab25ca messed up taint.t
    
    (chunk was inserted in wrong place)

M       t/op/taint.t

commit d2f7f004345151099ecda55ac3646964abcb9af1
Author: U-Adam-PC\Adam <a...@adam-pc.(none)>
Date:   Mon Jun 22 14:00:53 2009 -0400

    Added new required fields to makesis.pl
    
    (cherry picked from commit d2651550eafa22e7c4873d82394cbe163ac2dd50)

M       symbian/makesis.pl

commit 7264b0b13b213cc9df54bd3568efd7abe706d5e6
Author: Steve Peters <[email protected]>
Date:   Mon Jun 22 23:15:22 2009 -0500

    Add Porting/release_managers_guide.pod to MANIFEST
    
    (cherry picked from commit 68f62fdf7fe6ca672ef9024c62410f5e18575b94)

M       MANIFEST

commit b0185c19e226419541204933a59fd9aab648020d
Author: Nicholas Clark <[email protected]>
Date:   Sat Jun 13 21:43:30 2009 +0100

    Bring the joy of strict (and warnings) to perlmodlib.PL. Tweak some 
indenting.
    
    (cherry picked from commit 5b5041827ebfe6db62c72e5b64d221d66772b47a)

M       pod/perlmodlib.PL

commit 39c32c9e6bfe77954d3d8834ae29def20c16886b
Author: Gabor Szabo <[email protected]>
Date:   Mon Jun 22 15:55:29 2009 +0300

    typos, link to thread with ideas about testing stability of perl and CPAN
    
    (cherry picked from commit 1aff535472d727d11eb5c79d9c8b04646b6ce63a)

M       Porting/release_managers_guide.pod

commit 7976a3fe5e34bf58dff680193c6968c7bf303106
Author: Gabor Szabo <[email protected]>
Date:   Mon Jun 22 15:20:20 2009 +0300

    add release_managers_guide.pod
    
    (cherry picked from commit 7277a900f7ff66c9fa1da7237a80422fc315eeff)

A       Porting/release_managers_guide.pod

commit b4782b164474ebfc559e3a2a535c8a66a1cce783
Author: Jim Cromie <[email protected]>
Date:   Fri Jun 12 15:27:11 2009 -0600

    point illguts at perl.org
    
    (cherry picked from commit de10be12cd3b4d2e91c136c495230f49b31a4511)

M       pod/perlhack.pod
-----------------------------------------------------------------------

Summary of changes:
 MANIFEST                           |    1 +
 Porting/release_managers_guide.pod |  173 ++++++++++++++++++++++++++++++++++++
 pod/perlhack.pod                   |   10 ++-
 pod/perlmodlib.PL                  |   77 ++++++++--------
 pp_pack.c                          |    1 +
 symbian/makesis.pl                 |    5 +-
 t/op/taint.t                       |   39 ++++++---
 7 files changed, 250 insertions(+), 56 deletions(-)
 create mode 100644 Porting/release_managers_guide.pod

diff --git a/MANIFEST b/MANIFEST
index 54f78d8..97c0dd9 100755
--- a/MANIFEST
+++ b/MANIFEST
@@ -3730,6 +3730,7 @@ Porting/podtidy           Reformat pod using Pod::Tidy
 Porting/pumpkin.pod    Guidelines and hints for Perl maintainers
 Porting/README.y2038   Perl notes for the 2038 fix
 Porting/regcharclass.pl        Generate regcharclass.h from inline data
+Porting/release_managers_guide.pod     Release Manager's Guide
 Porting/sort_perldiag.pl       Keep our diagnostics orderly
 Porting/testall.atom           Cumulative profile with Third Degree
 Porting/thirdclean             Cleanup Third Degree reports
diff --git a/Porting/release_managers_guide.pod 
b/Porting/release_managers_guide.pod
new file mode 100644
index 0000000..30c28e3
--- /dev/null
+++ b/Porting/release_managers_guide.pod
@@ -0,0 +1,173 @@
+
+=head1 NAME
+
+release_managers_guide - Releasing a new version of perl 5.x
+
+=head1 SYNOPSIS
+
+The release process is primarily executed by the current pumpking.
+
+This document both helps as a check-list for the pumpking and is
+a base for ideas on how the various tasks could be automated or 
+distributed.
+
+The process has two major parts. In the first part 
+the pumpking needs to determine if the current head revision in Git
+is ready for shipment. The second part is the actual release 
+and packaging process.
+
+=head1 DETAILS
+
+=head2 Is it ready?
+
+In this step we need to make sure that:
+
+=over 4
+
+=item 1
+
+perl passes its own test suite and 
+
+=item 2
+
+CPAN works
+
+
+which comes down to:
+
+    for each module that fails its regression tests on $current
+      did it fail identically on $previous?
+      if yes, "SEP" (Somebody Else's Problem)
+      else work out why it failed (a bisect is useful for this)
+
+    attempt to group failure causes
+
+    for each failure cause
+      is that a regression?
+      if yes, figure out how to fix it
+        (more code? revert the code that broke it)
+      else
+        (presumably) it's relying on something un-or-under-documented
+        should the existing behaviour stay?
+          yes - goto "regression"
+          no - note it in perldelta as a significant bugfix
+          (also, try to inform the module's author)
+
+( TBD based on 
http://www.nntp.perl.org/group/perl.perl5.porters/2009/05/msg146680.html )
+
+=back
+
+
+=head2 The Actual release process
+
+The set of tasks that can be "scripted" for Perl 5
+
+=over 4
+
+=item 0
+
+so you think you have a source control in a state that won't break CPAN,
+at least not in "surprising" ways.
+
+=item 1
+
+As there are no regular smokes (yet - please fix?) find out about the state
+of VMS. If it's bad, think again.
+
+=item 2
+
+Re-read the perldelta to try to find any embarrassing typos
+
+=item 3
+
+Run Porting/makemeta
+
+=item 4
+
+[used to be run autodoc.pl, but I eliminated that]
+
+=item 5
+
+[used to be run pod/buildtoc, but I eliminated that]
+
+=item 6
+
+update module corelist, but we need to fix that
+
+[it has been holding perforce revisions for releases, but we can't know
+hashes in advance for git. We need to agree a plan to move to git tags]
+
+=item 7
+
+[update changes, but Dave has eliminated that]
+
+=item 8
+
+update patchlevel.h to remove all local patches
+
+=item 9
+
+make tarball with Porting/makerel
+
+=item 10
+
+copy tarball to some other machine x 2 [or more - IRC is good for this]
+
+=item 11
+
+check that ./Configure -des && make all test works in one place
+
+=item 12
+
+check that ./Configure ... && make all test_harness install works
+
+
+=item 13
+
+bootstrap the CPAN client on the clean install
+
+=item 14
+
+install CPANPLUS
+
+=item 15
+
+bootstrap the CPANPLUS client
+
+=item 16
+
+install an XS module
+
+=item 17
+
+if this is good, commit this.
+sit, and wait.
+
+=item 18
+
+do the smoke tests pass (particularly Win32)
+
+=item 19
+
+if yes, upload it to PAUSE. This is the point of no return
+
+=item 20
+
+mail p5p to announce it, with a quote I prepared earlier
+
+=item 21
+
+wait 24 hours or so
+
+=item 22
+
+post the announcement to use.perl.org
+
+=back
+
+=head1 SOURCE
+
+Based on 
http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2009-05/msg00608.html
+
+=cut
+
diff --git a/pod/perlhack.pod b/pod/perlhack.pod
index 72c2fc0..a0e9e02 100644
--- a/pod/perlhack.pod
+++ b/pod/perlhack.pod
@@ -321,10 +321,12 @@ might start to make sense - don't worry if it doesn't 
yet, because the
 best way to study it is to read it in conjunction with poking at Perl
 source, and we'll do that later on.
 
-You might also want to look at Gisle Aas's illustrated perlguts -
-there's no guarantee that this will be absolutely up-to-date with the
-latest documentation in the Perl core, but the fundamentals will be
-right. ( http://gisle.aas.no/perl/illguts/ )
+Gisle Aas's illustrated perlguts (aka: illguts) is wonderful, although
+a little out of date wrt some size details; the various SV structures
+have since been reworked for smaller memory footprint.  The
+fundamentals are right however, and the pictures are very helpful.
+
+http://www.perl.org/tpc/1998/Perl_Language_and_Modules/Perl%20Illustrated/ 
 
 =item L<perlxstut> and L<perlxs>
 
diff --git a/pod/perlmodlib.PL b/pod/perlmodlib.PL
index 99fca65..a013d26 100644
--- a/pod/perlmodlib.PL
+++ b/pod/perlmodlib.PL
@@ -1,5 +1,8 @@
 #!../miniperl
 
+use strict;
+use warnings;
+
 $ENV{LC_ALL} = 'C';
 
 use FindBin;
@@ -34,46 +37,44 @@ for my $filename (@files) {
        next;
     }
 
+    my ($name, $thing);
+    my $foundit = 0;
+    {
+       local $/ = "";
+       while (<MOD>) {
+           next unless /^=head1 NAME/;
+           $foundit++;
+           last;
+       }
+    }
+    unless ($foundit) {
+       warn "$filename missing =head1 NAME (OK if respective .pod exists)\n"
+           unless $Quiet;
+       next;
+    }
+    my $title = <MOD>;
+    chomp $title;
+    close MOD;
 
-     my ($name, $thing);
-     my $foundit=0;
-     {
-         local $/="";
-         while (<MOD>) {
-             next unless /^=head1 NAME/;
-             $foundit++;
-             last;
-         }
-     }
-     unless ($foundit) {
-         warn "$filename missing =head1 NAME (OK if respective .pod exists)\n"
-            unless $Quiet;
-         next;
-     }
-     my $title = <MOD>;
-     chomp($title);
-     close MOD;
-
-     ($name, $thing) = split / --? /, $title, 2;
-
-     unless ($name and $thing) {
-         warn "$filename missing name\n"  unless $name;
-         warn "$filename missing thing\n" unless $thing or $Quiet;
-         next;
-     }
-
-     $name =~ s/[^A-Za-z0-9_:\$<>].*//;
-     $name = $exceptions{$name} || $name;
-     $thing =~ s/^perl pragma to //i;
-     $thing = ucfirst($thing);
-     $title = "=item $name\n\n$thing\n\n";
-
-     if ($name =~ /[A-Z]/) {
-          push @mod, $title;
-     } else {
-          push @pragma, $title;
-     }
+    ($name, $thing) = split / --? /, $title, 2;
 
+    unless ($name and $thing) {
+       warn "$filename missing name\n"  unless $name;
+       warn "$filename missing thing\n" unless $thing or $Quiet;
+       next;
+    }
+
+    $name =~ s/[^A-Za-z0-9_:\$<>].*//;
+    $name = $exceptions{$name} || $name;
+    $thing =~ s/^perl pragma to //i;
+    $thing = ucfirst $thing;
+    $title = "=item $name\n\n$thing\n\n";
+
+    if ($name =~ /[A-Z]/) {
+       push @mod, $title;
+    } else {
+       push @pragma, $title;
+    }
 }
 
 # Much easier to special case it like this than special case the depending on
diff --git a/pp_pack.c b/pp_pack.c
index 0895c9b..d5fe13b 100644
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -2812,6 +2812,7 @@ S_pack_rec(pTHX_ SV *cat, tempsym_t* symptr, SV 
**beglist, SV **endlist )
            }
            memset(cur, datumtype == 'A' ? ' ' : '\0', len);
            cur += len;
+           SvTAINT(cat);
            break;
        }
        case 'B':
diff --git a/symbian/makesis.pl b/symbian/makesis.pl
index 377a7c7..270f6b4 100644
--- a/symbian/makesis.pl
+++ b/symbian/makesis.pl
@@ -16,7 +16,7 @@ my ($SYMBIAN_ROOT, $SYMBIAN_VERSION, $SDK_NAME, $SDK_VARIANT, 
$SDK_VERSION) =
 my $UID  = do "uid.pl" or die $@;
 my %PORT = %{ do "port.pl" or die $@ };
 
-my $ARM = 'thumb'; # TODO
+my $ARM = 'armv5';#'thumb'; # TODO
 my $S60SDK = $ENV{S60SDK}; # from sdk.pl
 my $S80SDK = $ENV{S80SDK}; # from sdk.pl
 my $S90SDK = $ENV{S90SDK}; # from sdk.pl
@@ -176,6 +176,9 @@ qq[;Supports Series 90 v1.1\n(0x101FBE05), 0, 0, 0, 
{"Series90ProductID"}\n] :
 ;
 #{"\u$target"},($uid),$MAJOR,$MINOR,$PATCH
 ;
+;Localised Vendor name
+%{"Vendor-EN"}
+;
 ; Private key and certificate (unused)
 ;
 ;* "\u$target.key", "\u$target.cer"
diff --git a/t/op/taint.t b/t/op/taint.t
index e459bb5..0ac02a6 100644
--- a/t/op/taint.t
+++ b/t/op/taint.t
@@ -17,7 +17,7 @@ use Config;
 use File::Spec::Functions;
 
 BEGIN { require './test.pl'; }
-plan tests => 298;
+plan tests => 301;
 
 $| = 1;
 
@@ -1253,6 +1253,21 @@ foreach my $ord (78, 163, 256) {
 }
 
 {
+    # 59998
+    sub cr { my $x = crypt($_[0], $_[1]); $x }
+    sub co { my $x = ~$_[0]; $x }
+    my ($a, $b);
+    $a = cr('hello', 'foo' . $TAINT);
+    $b = cr('hello', 'foo');
+    ok(tainted($a),  "tainted crypt");
+    ok(!tainted($b), "untainted crypt");
+    $a = co('foo' . $TAINT);
+    $b = co('foo');
+    ok(tainted($a),  "tainted complement");
+    ok(!tainted($b), "untainted complement");
+}
+
+{
     my @data = qw(bonk zam zlonk qunckkk);
     # Clearly some sort of usenet bang-path
     my $string = $TAINT . join "!", @data;
@@ -1288,19 +1303,17 @@ foreach my $ord (78, 163, 256) {
     }
 }
 
+# Bug RT #52552 - broken by change at git commit id f337b08
 {
-    # 59998
-    sub cr { my $x = crypt($_[0], $_[1]); $x }
-    sub co { my $x = ~$_[0]; $x }
-    my ($a, $b);
-    $a = cr('hello', 'foo' . $TAINT);
-    $b = cr('hello', 'foo');
-    ok(tainted($a),  "tainted crypt");
-    ok(!tainted($b), "untainted crypt");
-    $a = co('foo' . $TAINT);
-    $b = co('foo');
-    ok(tainted($a),  "tainted complement");
-    ok(!tainted($b), "untainted complement");
+    my $x = $TAINT. q{print "Hello world\n"};
+    my $y = pack "a*", $x;
+    ok(tainted($y), "pack a* preserves tainting");
+
+    my $z = pack "A*", q{print "Hello world\n"}.$TAINT;
+    ok(tainted($z), "pack A* preserves tainting");
+
+    my $zz = pack "a*a*", q{print "Hello world\n"}, $TAINT;
+    ok(tainted($zz), "pack a*a* preserves tainting");
 }
 
 # This may bomb out with the alarm signal so keep it last

--
Perl5 Master Repository

Reply via email to