Package: release.debian.org Severity: normal Tags: jessie User: [email protected] Usertags: pu
Hi, and many thanks for your work on the jessie release! I'd like to fix #779357 in a point update. Debdiff attached Please let me know if I can upload. -- System Information: Debian Release: 8.0 APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=fi_FI.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)
diff -Nru perl-5.20.2/debian/changelog perl-5.20.2/debian/changelog --- perl-5.20.2/debian/changelog 2015-03-29 17:20:50.000000000 +0300 +++ perl-5.20.2/debian/changelog 2015-04-26 20:21:50.000000000 +0300 @@ -1,3 +1,10 @@ +perl (5.20.2-3+deb8u1) UNRELEASED; urgency=medium + + * Make the perl debugger work with threaded programs again. + Thanks to James McCoy. (Closes: #779357) + + -- Niko Tyni <[email protected]> Sun, 26 Apr 2015 20:20:06 +0300 + perl (5.20.2-3) unstable; urgency=medium * Improve the error message when a path is inaccessible during diff -Nru perl-5.20.2/debian/patches/fixes/array-cloning.diff perl-5.20.2/debian/patches/fixes/array-cloning.diff --- perl-5.20.2/debian/patches/fixes/array-cloning.diff 1970-01-01 02:00:00.000000000 +0200 +++ perl-5.20.2/debian/patches/fixes/array-cloning.diff 2015-04-26 20:21:42.000000000 +0300 @@ -0,0 +1,57 @@ +From 531ec0bc39500f3036f2e81bb4e30e6ff45caf8b Mon Sep 17 00:00:00 2001 +From: Tony Cook <[email protected]> +Date: Tue, 14 Apr 2015 15:59:03 +1000 +Subject: fix cloning arrays with unused elements + +ce0d59fd changed arrays to use NULL instead of &PL_sv_undef for +unused elements, unfortunately it missed updating sv_dup_common()'s +initialization of unused elements, leaving them as &PL_sv_undef. + +This resulted in modification of read only value errors at runtime. + +Origin: upstream, http://perl5.git.perl.org/perl.git/commit/902d16915db2735c3a41f15ef8d95cf300c31801 +Bug: https://rt.perl.org/Public/Bug/Display.html?id=124127 +Bug-Debian: https://bugs.debian.org/779357 +Patch-Name: fixes/array-cloning.diff +--- + sv.c | 2 +- + t/op/threads.t | 8 +++++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/sv.c b/sv.c +index af393bd..06db7d9 100644 +--- a/sv.c ++++ b/sv.c +@@ -12698,7 +12698,7 @@ S_sv_dup_common(pTHX_ const SV *const sstr, CLONE_PARAMS *const param) + } + items = AvMAX((const AV *)sstr) - AvFILLp((const AV *)sstr); + while (items-- > 0) { +- *dst_ary++ = &PL_sv_undef; ++ *dst_ary++ = NULL; + } + } + else { +diff --git a/t/op/threads.t b/t/op/threads.t +index 67b5f4a..bec210b 100644 +--- a/t/op/threads.t ++++ b/t/op/threads.t +@@ -9,7 +9,7 @@ BEGIN { + skip_all_without_config('useithreads'); + skip_all_if_miniperl("no dynamic loading on miniperl, no threads"); + +- plan(27); ++ plan(28); + } + + use strict; +@@ -403,4 +403,10 @@ fresh_perl_is( + 'no crash when deleting $::{INC} in thread' + ); + ++fresh_perl_is(<<'CODE', 'ok', 'no crash modifying extended array element'); ++use threads; ++my @a = 1; ++threads->create(sub { $#a = 1; $a[1] = 2; print qq/ok\n/ })->join; ++CODE ++ + # EOF diff -Nru perl-5.20.2/debian/patches/fixes/perldb-threads.diff perl-5.20.2/debian/patches/fixes/perldb-threads.diff --- perl-5.20.2/debian/patches/fixes/perldb-threads.diff 1970-01-01 02:00:00.000000000 +0200 +++ perl-5.20.2/debian/patches/fixes/perldb-threads.diff 2015-04-26 20:21:42.000000000 +0300 @@ -0,0 +1,41 @@ +From be07711644372b791211e184a2cc43ebc17873f1 Mon Sep 17 00:00:00 2001 +From: James McCoy <[email protected]> +Date: Thu, 19 Mar 2015 22:55:18 -0400 +Subject: lib/perl5db.pl: Restore noop lock prototype + +cde405a6b9b86bd8110f63531b42d89590a4c56e removed the lock prototype +"because it's already a do-nothing weak keyword without threads". +However, that causes "perl -d threaded-script.pl" to complain + + lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 4101. + BEGIN failed--compilation aborted at threaded-script.pl line 2. + lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 2514. + END failed--call queue aborted at threaded-script.pl line 2. + Unbalanced scopes: 3 more ENTERs than LEAVEs + +because threaded-script.pl's importing of threads::shared enable's +lock()'s non-noop behavior. Restoring the lock() prototype fixes the +inconsistency between lock() and share() usage. + +Signed-off-by: James McCoy <[email protected]> + +Origin: upstream, http://perl5.git.perl.org/perl.git/commit/41ef2c66e0da6dfb04ded81b979f7081007a1add +Bug: https://rt.perl.org/Public/Bug/Display.html?id=124127 +Bug-Debian: https://bugs.debian.org/779357 +Patch-Name: fixes/perldb-threads.diff +--- + lib/perl5db.pl | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/perl5db.pl b/lib/perl5db.pl +index 6ac4d36..f962fb8 100644 +--- a/lib/perl5db.pl ++++ b/lib/perl5db.pl +@@ -866,6 +866,7 @@ BEGIN { + lock($DBGR); + print "Threads support enabled\n"; + } else { ++ *lock = sub(*) {}; + *share = sub(\[$@%]) {}; + } + } diff -Nru perl-5.20.2/debian/patches/series perl-5.20.2/debian/patches/series --- perl-5.20.2/debian/patches/series 2015-03-29 15:48:50.000000000 +0300 +++ perl-5.20.2/debian/patches/series 2015-04-26 20:21:42.000000000 +0300 @@ -38,3 +38,5 @@ fixes/hurd_socket_recv_todo.diff fixes/regexp-performance.diff fixes/failed_require_diagnostics.diff +fixes/array-cloning.diff +fixes/perldb-threads.diff

