Pre-approval for perl/5.10.1-16
Niko Tyni
ntyni at debian.org
Sun Oct 31 15:01:20 UTC 2010
Hi release team,
would you be OK with some or all of these changes for Squeeze?
perl (5.10.1-16) UNRELEASED; urgency=low
* Improve LC_NUMERIC documentation. (Closes: #379329)
* Fix sprintf not to ignore LC_NUMERIC with constants. (Closes: #601549)
* Fix stack pointer corruption in pp_concat() with "use encoding".
(Closes: #596105)
Full debdiff attached.
Thanks for your work,
--
Niko Tyni ntyni at debian.org
-------------- next part --------------
diff -Nru perl-5.10.1/debian/changelog perl-5.10.1/debian/changelog
--- perl-5.10.1/debian/changelog 2010-10-06 21:45:02.000000000 +0300
+++ perl-5.10.1/debian/changelog 2010-10-31 15:13:01.000000000 +0200
@@ -1,3 +1,12 @@
+perl (5.10.1-16) UNRELEASED; urgency=low
+
+ * Improve LC_NUMERIC documentation. (Closes: #379329)
+ * Fix sprintf not to ignore LC_NUMERIC with constants. (Closes: #601549)
+ * Fix stack pointer corruption in pp_concat() with "use encoding".
+ (Closes: #596105)
+
+ -- Niko Tyni <ntyni at debian.org> Sun, 31 Oct 2010 14:05:08 +0200
+
perl (5.10.1-15) unstable; urgency=low
* Include the Text::Tabs license in debian/copyright. Thanks to "v.nix.is".
diff -Nru perl-5.10.1/debian/patches/fixes/assorted_docs.diff perl-5.10.1/debian/patches/fixes/assorted_docs.diff
--- perl-5.10.1/debian/patches/fixes/assorted_docs.diff 2010-10-06 21:46:28.000000000 +0300
+++ perl-5.10.1/debian/patches/fixes/assorted_docs.diff 2010-10-31 15:13:24.000000000 +0200
@@ -9,7 +9,7 @@
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/Math/BigInt/CalcEmu.pm b/lib/Math/BigInt/CalcEmu.pm
-index 79efac6..5810f5d 100644
+index 79efac6..5810f5db 100644
--- a/lib/Math/BigInt/CalcEmu.pm
+++ b/lib/Math/BigInt/CalcEmu.pm
@@ -295,7 +295,7 @@ Math::BigInt::CalcEmu - Emulate low-level math with BigInt code
diff -Nru perl-5.10.1/debian/patches/fixes/concat-stack-corruption.diff perl-5.10.1/debian/patches/fixes/concat-stack-corruption.diff
--- perl-5.10.1/debian/patches/fixes/concat-stack-corruption.diff 1970-01-01 02:00:00.000000000 +0200
+++ perl-5.10.1/debian/patches/fixes/concat-stack-corruption.diff 2010-10-31 15:13:28.000000000 +0200
@@ -0,0 +1,37 @@
+From: Niko Tyni <ntyni at debian.org>
+Subject: Fix stack pointer corruption in pp_concat() with 'use encoding'
+Bug-Debian: http://bugs.debian.org/596105
+Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78674
+Origin: upstream, http://perl5.git.perl.org/perl.git/commit/e3393f51d48d8b790e26324eb0336fac9689fa46
+
+If the stack is reallocated during pp_concat() and 'use encoding' in
+effect, the stack pointer gets corrupted, causing memory allocation bugs
+and the like.
+
+---
+ pp_hot.c | 3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/pp_hot.c b/pp_hot.c
+index c792812..65e893a 100644
+--- a/pp_hot.c
++++ b/pp_hot.c
+@@ -285,6 +285,8 @@ PP(pp_concat)
+ rbyte = !DO_UTF8(right);
+ }
+ if (lbyte != rbyte) {
++ /* sv_utf8_upgrade_nomg() may reallocate the stack */
++ PUTBACK;
+ if (lbyte)
+ sv_utf8_upgrade_nomg(TARG);
+ else {
+@@ -293,6 +295,7 @@ PP(pp_concat)
+ sv_utf8_upgrade_nomg(right);
+ rpv = SvPV_const(right, rlen);
+ }
++ SPAGAIN;
+ }
+ sv_catpvn_nomg(TARG, rpv, rlen);
+
+--
+tg: (daf8b46..) fixes/concat-stack-corruption (depends on: upstream)
diff -Nru perl-5.10.1/debian/patches/fixes/lc-numeric-docs.diff perl-5.10.1/debian/patches/fixes/lc-numeric-docs.diff
--- perl-5.10.1/debian/patches/fixes/lc-numeric-docs.diff 1970-01-01 02:00:00.000000000 +0200
+++ perl-5.10.1/debian/patches/fixes/lc-numeric-docs.diff 2010-10-31 15:13:27.000000000 +0200
@@ -0,0 +1,95 @@
+From: Niko Tyni <ntyni at debian.org>
+Subject: LC_NUMERIC documentation fixes
+Bug-Debian: http://bugs.debian.org/379329
+Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78452
+Origin: upstream, http://perl5.git.perl.org/perl.git/commit/903eb63f7d8d47a38971a8e9af7201b9927882cf
+
+LC_NUMERIC documentation updates fixing two errors:
+
+ - the early parts of perllocale.pod still say printf() uses LC_NUMERIC
+ with just 'use locale' when actually a POSIX::setlocale() call is
+ also needed
+
+ - format() hasn't used LC_NUMERIC unconditionally since 5.005_03
+ (commit 097ee67dff1c60f201bc09435bc6eaeeafcd8123).
+
+Test cases from the upstream commit dropped for the sake of simplicity.
+
+---
+ pod/perlform.pod | 20 ++++++++------------
+ pod/perllocale.pod | 15 ++++++---------
+ 2 files changed, 14 insertions(+), 21 deletions(-)
+
+diff --git a/pod/perlform.pod b/pod/perlform.pod
+index 3cfa1b7..df0f0a1 100644
+--- a/pod/perlform.pod
++++ b/pod/perlform.pod
+@@ -166,9 +166,9 @@ token on the first line. If an expression evaluates to a number with a
+ decimal part, and if the corresponding picture specifies that the decimal
+ part should appear in the output (that is, any picture except multiple "#"
+ characters B<without> an embedded "."), the character used for the decimal
+-point is B<always> determined by the current LC_NUMERIC locale. This
+-means that, if, for example, the run-time environment happens to specify a
+-German locale, "," will be used instead of the default ".". See
++point is determined by the current LC_NUMERIC locale if C<use locale> is in
++effect. This means that, if, for example, the run-time environment happens
++to specify a German locale, "," will be used instead of the default ".". See
+ L<perllocale> and L<"WARNINGS"> for more information.
+
+
+@@ -442,15 +442,11 @@ Lexical variables (declared with "my") are not visible within a
+ format unless the format is declared within the scope of the lexical
+ variable. (They weren't visible at all before version 5.001.)
+
+-Formats are the only part of Perl that unconditionally use information
+-from a program's locale; if a program's environment specifies an
+-LC_NUMERIC locale, it is always used to specify the decimal point
+-character in formatted output. Perl ignores all other aspects of locale
+-handling unless the C<use locale> pragma is in effect. Formatted output
+-cannot be controlled by C<use locale> because the pragma is tied to the
+-block structure of the program, and, for historical reasons, formats
+-exist outside that block structure. See L<perllocale> for further
+-discussion of locale handling.
++If a program's environment specifies an LC_NUMERIC locale and C<use
++locale> is in effect when the format is declared, the locale is used
++to specify the decimal point character in formatted output. Formatted
++output cannot be controlled by C<use locale> at the time when write()
++is called. See L<perllocale> for further discussion of locale handling.
+
+ Within strings that are to be displayed in a fixed length text field,
+ each control character is substituted by a space. (But remember the
+diff --git a/pod/perllocale.pod b/pod/perllocale.pod
+index 3c2b3ab..91060c4 100644
+--- a/pod/perllocale.pod
++++ b/pod/perllocale.pod
+@@ -115,8 +115,7 @@ ucfirst(), and lcfirst()) use C<LC_CTYPE>
+
+ =item *
+
+-B<The formatting functions> (printf(), sprintf() and write()) use
+-C<LC_NUMERIC>
++B<Format declarations> (format()) use C<LC_NUMERIC>
+
+ =item *
+
+@@ -967,13 +966,11 @@ system's implementation of the locale system than by Perl.
+
+ =head2 write() and LC_NUMERIC
+
+-Formats are the only part of Perl that unconditionally use information
+-from a program's locale; if a program's environment specifies an
+-LC_NUMERIC locale, it is always used to specify the decimal point
+-character in formatted output. Formatted output cannot be controlled by
+-C<use locale> because the pragma is tied to the block structure of the
+-program, and, for historical reasons, formats exist outside that block
+-structure.
++If a program's environment specifies an LC_NUMERIC locale and C<use
++locale> is in effect when the format is declared, the locale is used
++to specify the decimal point character in formatted output. Formatted
++output cannot be controlled by C<use locale> at the time when write()
++is called.
+
+ =head2 Freely available locale definitions
+
+--
+tg: (daf8b46..) fixes/lc-numeric-docs (depends on: upstream)
diff -Nru perl-5.10.1/debian/patches/fixes/lc-numeric-sprintf.diff perl-5.10.1/debian/patches/fixes/lc-numeric-sprintf.diff
--- perl-5.10.1/debian/patches/fixes/lc-numeric-sprintf.diff 1970-01-01 02:00:00.000000000 +0200
+++ perl-5.10.1/debian/patches/fixes/lc-numeric-sprintf.diff 2010-10-31 15:13:28.000000000 +0200
@@ -0,0 +1,29 @@
+From: Niko Tyni <ntyni at debian.org>
+Subject: Fix sprintf not to ignore LC_NUMERIC with constants
+Bug-Debian: http://bugs.debian.org/601549
+Bug: http://rt.perl.org/rt3/Ticket/Display.html?id=78632
+Origin: upstream, http://perl5.git.perl.org/perl.git/commit/b3fd61496ebc585b1115807e3195f17714662a09
+
+Don't fold constants in sprintf() if locales are used
+
+An upstream regression in 5.10.1 made sprintf() ignore LC_NUMERIC for
+numeric constants.
+
+---
+ op.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/op.c b/op.c
+index dc9fd64..a2481af 100644
+--- a/op.c
++++ b/op.c
+@@ -2466,6 +2466,7 @@ Perl_fold_constants(pTHX_ register OP *o)
+ case OP_SLE:
+ case OP_SGE:
+ case OP_SCMP:
++ case OP_SPRINTF:
+ /* XXX what about the numeric ops? */
+ if (PL_hints & HINT_LOCALE)
+ goto nope;
+--
+tg: (daf8b46..) fixes/lc-numeric-sprintf (depends on: upstream)
diff -Nru perl-5.10.1/debian/patches/patchlevel perl-5.10.1/debian/patches/patchlevel
--- perl-5.10.1/debian/patches/patchlevel 2010-10-06 21:46:31.000000000 +0300
+++ perl-5.10.1/debian/patches/patchlevel 2010-10-31 15:13:28.000000000 +0200
@@ -1,4 +1,4 @@
-Subject: List packaged patches for 5.10.1-15 in patchlevel.h
+Subject: List packaged patches for 5.10.1-16 in patchlevel.h
Origin: vendor
Bug-Debian: http://bugs.debian.org/567489
@@ -8,7 +8,7 @@
--- perl/patchlevel.bak
+++ perl/patchlevel.h
-@@ -133,0 +134,47 @@
+@@ -133,0 +134,50 @@
+ ,"DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts"
+ ,"DEBPKG:debian/cpan_config_path - Set location of CPAN::Config to /etc/perl as /usr may not be writable."
+ ,"DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN."
@@ -55,4 +55,7 @@
+ ,"DEBPKG:fixes/fcgi-test - Fix a failure in CGI/t/fast.t when FCGI is installed"
+ ,"DEBPKG:fixes/hurd-ccflags - http://bugs.debian.org/587901 Make hints/gnu.sh append to $ccflags rather than overriding them"
+ ,"DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts"
-+ ,"DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.10.1-15 in patchlevel.h"
++ ,"DEBPKG:fixes/lc-numeric-docs - http://bugs.debian.org/379329 [perl #78452] [903eb63] LC_NUMERIC documentation fixes"
++ ,"DEBPKG:fixes/lc-numeric-sprintf - http://bugs.debian.org/601549 [perl #78632] [b3fd614] Fix sprintf not to ignore LC_NUMERIC with constants"
++ ,"DEBPKG:fixes/concat-stack-corruption - http://bugs.debian.org/596105 [perl #78674] [e3393f5] Fix stack pointer corruption in pp_concat() with 'use encoding'"
++ ,"DEBPKG:patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.10.1-16 in patchlevel.h"
diff -Nru perl-5.10.1/debian/patches/series perl-5.10.1/debian/patches/series
--- perl-5.10.1/debian/patches/series 2010-10-06 21:46:31.000000000 +0300
+++ perl-5.10.1/debian/patches/series 2010-10-31 15:13:28.000000000 +0200
@@ -44,4 +44,7 @@
fixes/fcgi-test.diff -p1
fixes/hurd-ccflags.diff -p1
debian/squelch-locale-warnings.diff -p1
+fixes/lc-numeric-docs.diff -p1
+fixes/lc-numeric-sprintf.diff -p1
+fixes/concat-stack-corruption.diff -p1
patchlevel -p1
More information about the Perl-maintainers
mailing list