[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#783404: jessie-pu: package perl/5.20.2-3+deb8u1



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
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 <ntyni@debian.org>  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 <tony@develop-help.com>
+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 <vega.james@gmail.com>
+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 <vega.james@gmail.com>
+
+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

Reply to: