Hello community,

here is the log from the commit of package perl-Devel-Confess for 
openSUSE:Factory checked in at 2015-04-18 10:40:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Devel-Confess (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Devel-Confess.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Devel-Confess"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Devel-Confess/perl-Devel-Confess.changes    
2015-02-08 11:43:00.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.perl-Devel-Confess.new/perl-Devel-Confess.changes   
    2015-04-18 10:40:16.000000000 +0200
@@ -1,0 +2,9 @@
+Thu Apr 16 20:03:13 UTC 2015 - co...@suse.com
+
+- updated to 0.007012
+   see /usr/share/doc/packages/perl-Devel-Confess/Changes
+
+  0.007012 - 2015-03-30
+    - avoid re-throwing errors during END on debugging perls
+
+-------------------------------------------------------------------

Old:
----
  Devel-Confess-0.007011.tar.gz

New:
----
  Devel-Confess-0.007012.tar.gz
  cpanspec.yml

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Devel-Confess.spec ++++++
--- /var/tmp/diff_new_pack.CVcZOQ/_old  2015-04-18 10:40:17.000000000 +0200
+++ /var/tmp/diff_new_pack.CVcZOQ/_new  2015-04-18 10:40:17.000000000 +0200
@@ -17,14 +17,15 @@
 
 
 Name:           perl-Devel-Confess
-Version:        0.007011
+Version:        0.007012
 Release:        0
 %define cpan_name Devel-Confess
 Summary:        Include stack traces on all warnings and errors
 License:        Artistic-1.0 or GPL-1.0+
 Group:          Development/Libraries/Perl
 Url:            http://search.cpan.org/dist/Devel-Confess/
-Source:         
http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz
+Source0:        
http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz
+Source1:        cpanspec.yml
 BuildArch:      noarch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  perl

++++++ Devel-Confess-0.007011.tar.gz -> Devel-Confess-0.007012.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/Changes 
new/Devel-Confess-0.007012/Changes
--- old/Devel-Confess-0.007011/Changes  2015-02-03 17:04:01.000000000 +0100
+++ new/Devel-Confess-0.007012/Changes  2015-03-30 22:56:43.000000000 +0200
@@ -1,5 +1,8 @@
 Release history for Devel-Confess
 
+0.007012 - 2015-03-30
+  - avoid re-throwing errors during END on debugging perls
+
 0.007011 - 2015-02-03
   - avoid triggering overloads when CLONEing
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/MANIFEST 
new/Devel-Confess-0.007012/MANIFEST
--- old/Devel-Confess-0.007011/MANIFEST 2015-02-03 17:04:24.000000000 +0100
+++ new/Devel-Confess-0.007012/MANIFEST 2015-03-30 22:57:07.000000000 +0200
@@ -10,6 +10,7 @@
 t/confess.t
 t/devel.t
 t/dump.t
+t/end-debugging.t
 t/global-destruct.t
 t/leak.t
 t/lib/capture.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/META.json 
new/Devel-Confess-0.007012/META.json
--- old/Devel-Confess-0.007011/META.json        2015-02-03 17:04:24.000000000 
+0100
+++ new/Devel-Confess-0.007012/META.json        2015-03-30 22:57:07.000000000 
+0200
@@ -4,7 +4,7 @@
       "haarg - Graham Knop (cpan:HAARG) <ha...@haarg.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter 
version 2.142690",
+   "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter 
version 2.143240",
    "license" : [
       "perl_5"
    ],
@@ -65,5 +65,5 @@
          "web" : "https://github.com/haarg/Devel-Confess";
       }
    },
-   "version" : "0.007011"
+   "version" : "0.007012"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/META.yml 
new/Devel-Confess-0.007012/META.yml
--- old/Devel-Confess-0.007011/META.yml 2015-02-03 17:04:24.000000000 +0100
+++ new/Devel-Confess-0.007012/META.yml 2015-03-30 22:57:07.000000000 +0200
@@ -8,7 +8,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 
2.142690'
+generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 
2.143240'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -26,4 +26,4 @@
   bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Devel-Confess
   license: http://dev.perl.org/licenses/
   repository: git://github.com/haarg/Devel-Confess
-version: '0.007011'
+version: '0.007012'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/lib/Devel/Confess/Builtin.pm 
new/Devel-Confess-0.007012/lib/Devel/Confess/Builtin.pm
--- old/Devel-Confess-0.007011/lib/Devel/Confess/Builtin.pm     2015-02-03 
17:03:35.000000000 +0100
+++ new/Devel-Confess-0.007012/lib/Devel/Confess/Builtin.pm     2015-03-30 
22:56:34.000000000 +0200
@@ -3,7 +3,7 @@
 use warnings FATAL => 'all';
 no warnings 'once';
 
-our $VERSION = '0.007011';
+our $VERSION = '0.007012';
 $VERSION = eval $VERSION;
 
 use Devel::Confess::_Util ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/lib/Devel/Confess/_Util.pm 
new/Devel-Confess-0.007012/lib/Devel/Confess/_Util.pm
--- old/Devel-Confess-0.007011/lib/Devel/Confess/_Util.pm       2015-01-26 
05:27:39.000000000 +0100
+++ new/Devel-Confess-0.007012/lib/Devel/Confess/_Util.pm       2015-03-30 
20:53:22.000000000 +0200
@@ -6,7 +6,7 @@
 
 use base 'Exporter';
 
-our @EXPORT = qw(blessed refaddr weaken longmess _str_val);
+our @EXPORT = qw(blessed refaddr weaken longmess _str_val _in_END);
 
 use Carp ();
 use Carp::Heavy ();
@@ -97,20 +97,55 @@
 {
   if (defined ${^GLOBAL_PHASE}) {
     eval q{
-      sub _global_destruction () { ${^GLOBAL_PHASE} eq q[DESTRUCT] };
+      sub _global_destruction () { ${^GLOBAL_PHASE} eq q[DESTRUCT] }
+      sub _in_END () { ${^GLOBAL_PHASE} eq "END" }
       1;
     } or die $@;
   }
   else {
     eval q{
-      our $gd;
+      # this is slightly a lie, but accurate enough for our purposes
+      our $global_phase = 'RUN';
+
       sub _global_destruction () {
-        if (!$gd) {
-          local $SIG{__WARN__} = sub { $gd = $_[0] =~ /global 
destruction\.\n\z/ };
+        if ($global_phase ne 'DESTRUCT') {
+          local $SIG{__WARN__} = sub {
+            $global_phase = 'DESTRUCT' if $_[0] =~ /global destruction\.\n\z/
+          };
           warn 1;
         }
-        $gd;
+        $global_phase eq 'DESTRUCT';
+      }
+
+      sub _in_END () {
+        if ($global_phase eq 'RUN' && $^S) {
+          # END blocks are FILO so we can't install one to run first.
+          # only way to detect END reliably seems to be by using caller.
+          # I hate this but it seems to be the best available option.
+          # The top two frames will be an eval and the END block.
+          my $i;
+          1 while CORE::caller(++$i);
+          if ($i > 2) {
+            my @top = CORE::caller($i - 1);
+            my @next = CORE::caller($i - 2);
+            if (
+              $top[3] eq '(eval)'
+              && $next[3] =~ /::END$/
+              && $top[2] == $next[2]
+              && $top[1] eq $next[1]
+              && $top[0] eq 'main'
+              && $next[0] eq 'main'
+            ) {
+              $global_phase = 'END';
+            }
+          }
+        }
+        $global_phase eq 'END';
+      }
+      END {
+        $global_phase = 'END';
       }
+
       1;
     } or die $@;
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/lib/Devel/Confess.pm 
new/Devel-Confess-0.007012/lib/Devel/Confess.pm
--- old/Devel-Confess-0.007011/lib/Devel/Confess.pm     2015-02-03 
17:03:35.000000000 +0100
+++ new/Devel-Confess-0.007012/lib/Devel/Confess.pm     2015-03-30 
22:56:34.000000000 +0200
@@ -9,25 +9,35 @@
   }
   *_CAN_USE_INFORMATIVE_NAMES
     = $can_use_informative_names ? sub () { 1 } : sub () { 0 };
-  *_BROKEN_CLONED_DESTROY_REBLESS
-    = ($] >= 5.008009 && $] < 5.010000) ? sub () { 1 } : sub () { 0 };
-  *_BROKEN_CLONED_GLOB_UNDEF
-    = ($] > 5.008009 && $] <= 5.010000) ? sub () { 1 } : sub () { 0 };
-  *_BROKEN_SIG_DELETE
-    = ($] < 5.008008) ? sub () { 1 } : sub () { 0 };
 }
 
 use 5.006;
 use strict;
 use warnings;
+no warnings 'once';
 
-our $VERSION = '0.007011';
+our $VERSION = '0.007012';
 $VERSION = eval $VERSION;
 
 use Carp ();
 use Symbol ();
-use Devel::Confess::_Util qw(blessed refaddr weaken longmess _str_val);
-BEGIN { *_can = \&UNIVERSAL::can; }
+use Devel::Confess::_Util qw(blessed refaddr weaken longmess _str_val _in_END);
+use Config ();
+BEGIN {
+  *_can = \&UNIVERSAL::can;
+
+  *_BROKEN_CLONED_DESTROY_REBLESS
+    = ($] >= 5.008009 && $] < 5.010000) ? sub () { 1 } : sub () { 0 };
+  *_BROKEN_CLONED_GLOB_UNDEF
+    = ($] > 5.008009 && $] <= 5.010000) ? sub () { 1 } : sub () { 0 };
+  *_BROKEN_SIG_DELETE
+    = ($] < 5.008008) ? sub () { 1 } : sub () { 0 };
+  my $debugging = defined &Config::non_bincompat_options
+    ? (Config::non_bincompat_options() =~ /\bDEBUGGING\b/)
+    : ($Config::Config{ccflags} =~ /-DDEBUGGING\b/);
+  *_DEBUGGING
+    = $debugging ? sub () { 1 } : sub () { 0 };
+}
 
 $Carp::Internal{+__PACKAGE__}++;
 
@@ -173,6 +183,12 @@
     $sig->(join('', @convert));
   }
   _colorize(\@convert, 31) if $OPTIONS{color} && !$^S;
+  if (_DEBUGGING && _in_END) {
+    local $SIG{__WARN__};
+    warn @convert;
+    $! ||= 1;
+    return;
+  }
   die @convert;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Devel-Confess-0.007011/t/end-debugging.t 
new/Devel-Confess-0.007012/t/end-debugging.t
--- old/Devel-Confess-0.007011/t/end-debugging.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/Devel-Confess-0.007012/t/end-debugging.t        2015-03-30 
20:53:22.000000000 +0200
@@ -0,0 +1,14 @@
+use strict;
+use warnings;
+use Test::More tests => 1;
+use t::lib::capture;
+
+@CAPTURE_OPTS = ('-MDevel::Confess');
+
+unlike capture <<"END_CODE", qr/Assertion failed/, "die in END";
+sub error {
+#line 1 test-block.pl
+  die "error in something";
+}
+END { error() }
+END_CODE

++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#no_testing: broken upstream
#sources:
#  - source1
#  - source2
#patches:
#  foo.patch: -p1
#  bar.patch:
#preamble: |-
# BuildRequires:  gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s,  *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL 
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: -
#./Build build flags=%{?_smp_mflags} --myflag

Reply via email to