Hello community,
here is the log from the commit of package perl-Class-Load-XS for
openSUSE:Factory checked in at 2013-06-13 17:32:00
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Class-Load-XS (Old)
and /work/SRC/openSUSE:Factory/.perl-Class-Load-XS.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Class-Load-XS"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Class-Load-XS/perl-Class-Load-XS.changes
2012-05-31 17:07:58.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Class-Load-XS.new/perl-Class-Load-XS.changes
2013-06-13 17:32:02.000000000 +0200
@@ -1,0 +2,16 @@
+Mon Jun 3 15:34:24 UTC 2013 - [email protected]
+
+- updated to 0.06
+ - Fixed some broken logic that lead to a segfault from the
+ 014-weird-constants.t test on some Perls (but unfortunately not the one I
+ test with by default). Reported by Chisel Wright (and several other
+ people). RT #80059.
+
+ - Require Class::Load 0.20 in the code (not just the distro metadata). This
+ keeps the tests in sync, and this module needed at least 0.11
+ anyway. Reported by Father Chrysostomos. RT #80002.
+
+ - Weird classes with either an ISA or VERSION constant (who does that?) would
+ cause the XS to blow up badly. Reported by Father Chrysostomos. RT #79998.
+
+-------------------------------------------------------------------
Old:
----
Class-Load-XS-0.04.tar.gz
New:
----
Class-Load-XS-0.06.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Class-Load-XS.spec ++++++
--- /var/tmp/diff_new_pack.BdaSpP/_old 2013-06-13 17:32:02.000000000 +0200
+++ /var/tmp/diff_new_pack.BdaSpP/_new 2013-06-13 17:32:02.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Class-Load-XS
#
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-Class-Load-XS
-Version: 0.04
+Version: 0.06
Release: 0
%define cpan_name Class-Load-XS
Summary: XS implementation of parts of Class::Load
@@ -29,8 +29,8 @@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Class::Load) >= 0.15
-BuildRequires: perl(Module::Build)
+BuildRequires: perl(Class::Load) >= 0.20
+BuildRequires: perl(Module::Build) >= 0.3601
BuildRequires: perl(Module::Implementation) >= 0.04
BuildRequires: perl(Test::Fatal)
BuildRequires: perl(Test::More) >= 0.88
@@ -40,7 +40,7 @@
#BuildRequires: perl(Class::Load::XS)
#BuildRequires: perl(Test::Class::Load)
#BuildRequires: perl(Test::Without::Module)
-Requires: perl(Class::Load) >= 0.15
+Requires: perl(Class::Load) >= 0.20
%{perl_requires}
%description
++++++ Class-Load-XS-0.04.tar.gz -> Class-Load-XS-0.06.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/Build.PL
new/Class-Load-XS-0.06/Build.PL
--- old/Class-Load-XS-0.04/Build.PL 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/Build.PL 2012-10-08 16:21:26.000000000 +0200
@@ -7,7 +7,6 @@
my %module_build_args = (
"build_requires" => {
- "Class::Load" => 0,
"Module::Build" => "0.3601",
"Module::Implementation" => "0.04",
"Test::Fatal" => 0,
@@ -24,13 +23,13 @@
"Dave Rolsky <autarch\@urth.org>"
],
"dist_name" => "Class-Load-XS",
- "dist_version" => "0.04",
+ "dist_version" => "0.06",
"license" => "artistic_2",
"module_name" => "Class::Load::XS",
"recommends" => {},
"recursive_test_files" => 1,
"requires" => {
- "Class::Load" => "0.15",
+ "Class::Load" => "0.20",
"XSLoader" => 0,
"strict" => 0,
"warnings" => 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/Changes
new/Class-Load-XS-0.06/Changes
--- old/Class-Load-XS-0.04/Changes 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/Changes 2012-10-08 16:21:26.000000000 +0200
@@ -1,3 +1,21 @@
+0.06 2012-10-08
+
+- Fixed some broken logic that lead to a segfault from the
+ 014-weird-constants.t test on some Perls (but unfortunately not the one I
+ test with by default). Reported by Chisel Wright (and several other
+ people). RT #80059.
+
+
+0.05 2012-10-07
+
+- Require Class::Load 0.20 in the code (not just the distro metadata). This
+ keeps the tests in sync, and this module needed at least 0.11
+ anyway. Reported by Father Chrysostomos. RT #80002.
+
+- Weird classes with either an ISA or VERSION constant (who does that?) would
+ cause the XS to blow up badly. Reported by Father Chrysostomos. RT #79998.
+
+
0.04 2012-02-08
- Some small test changes for the latest Module::Implementation and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/MANIFEST
new/Class-Load-XS-0.06/MANIFEST
--- old/Class-Load-XS-0.04/MANIFEST 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/MANIFEST 2012-10-08 16:21:26.000000000 +0200
@@ -23,6 +23,8 @@
t/010-isa-false-positive.t
t/011-without-xs.t
t/012-without-implementation.t
+t/013-errors.t
+t/014-weird-constants.t
t/lib/Class/Load/Error/DieAfterBeginIsa.pm
t/lib/Class/Load/Error/DieAfterIsa.pm
t/lib/Class/Load/Error/SyntaxErrorAfterIsa.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/META.json
new/Class-Load-XS-0.06/META.json
--- old/Class-Load-XS-0.04/META.json 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/META.json 2012-10-08 16:21:26.000000000 +0200
@@ -4,7 +4,7 @@
"Dave Rolsky <[email protected]>"
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300006, CPAN::Meta::Converter
version 2.113640",
+ "generated_by" : "Dist::Zilla version 4.300024, CPAN::Meta::Converter
version 2.120921",
"license" : [
"artistic_2"
],
@@ -26,21 +26,20 @@
},
"runtime" : {
"requires" : {
- "Class::Load" : "0.15",
- "XSLoader" : 0,
- "strict" : 0,
- "warnings" : 0
+ "Class::Load" : "0.20",
+ "XSLoader" : "0",
+ "strict" : "0",
+ "warnings" : "0"
}
},
"test" : {
"requires" : {
- "Class::Load" : 0,
"Module::Implementation" : "0.04",
- "Test::Fatal" : 0,
+ "Test::Fatal" : "0",
"Test::More" : "0.88",
- "Test::Requires" : 0,
- "constant" : 0,
- "version" : 0
+ "Test::Requires" : "0",
+ "constant" : "0",
+ "version" : "0"
}
}
},
@@ -56,6 +55,6 @@
"web" : "http://git.urth.org/Class-Load-XS.git"
}
},
- "version" : "0.04"
+ "version" : "0.06"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/META.yml
new/Class-Load-XS-0.06/META.yml
--- old/Class-Load-XS-0.04/META.yml 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/META.yml 2012-10-08 16:21:26.000000000 +0200
@@ -3,7 +3,6 @@
author:
- 'Dave Rolsky <[email protected]>'
build_requires:
- Class::Load: 0
Module::Build: 0.3601
Module::Implementation: 0.04
Test::Fatal: 0
@@ -14,18 +13,18 @@
configure_requires:
Module::Build: 0.3601
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300006, CPAN::Meta::Converter version
2.113640'
+generated_by: 'Dist::Zilla version 4.300024, CPAN::Meta::Converter version
2.120921'
license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: 1.4
name: Class-Load-XS
requires:
- Class::Load: 0.15
+ Class::Load: 0.20
XSLoader: 0
strict: 0
warnings: 0
resources:
bugtracker: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Load-XS
repository: git://git.urth.org/Class-Load-XS.git
-version: 0.04
+version: 0.06
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/README
new/Class-Load-XS-0.06/README
--- old/Class-Load-XS-0.04/README 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/README 2012-10-08 16:21:26.000000000 +0200
@@ -1,7 +1,7 @@
This archive contains the distribution Class-Load-XS,
-version 0.04:
+version 0.06:
XS implementation of parts of Class::Load
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/dist.ini
new/Class-Load-XS-0.06/dist.ini
--- old/Class-Load-XS-0.04/dist.ini 2012-02-08 20:50:17.000000000 +0100
+++ new/Class-Load-XS-0.06/dist.ini 2012-10-08 16:21:26.000000000 +0200
@@ -3,7 +3,7 @@
license = Artistic_2_0
copyright_holder = Dave Rolsky
-version = 0.04
+version = 0.06
[NextRelease]
format = %-8v %{yyyy-MM-dd}d
@@ -44,7 +44,4 @@
skip = Test::Spelling
skip = Test::Without::Module
-[Prereqs]
-Class::Load = 0.15
-
[@Git]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/lib/Class/Load/XS.pm
new/Class-Load-XS-0.06/lib/Class/Load/XS.pm
--- old/Class-Load-XS-0.04/lib/Class/Load/XS.pm 2012-02-08 20:50:17.000000000
+0100
+++ new/Class-Load-XS-0.06/lib/Class/Load/XS.pm 2012-10-08 16:21:26.000000000
+0200
@@ -1,11 +1,13 @@
package Class::Load::XS;
{
- $Class::Load::XS::VERSION = '0.04';
+ $Class::Load::XS::VERSION = '0.06';
}
use strict;
use warnings;
+use Class::Load 0.20;
+
use XSLoader;
XSLoader::load(
__PACKAGE__,
@@ -28,7 +30,7 @@
=head1 VERSION
-version 0.04
+version 0.06
=head1 SYNOPSIS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/lib/Class/Load/XS.xs
new/Class-Load-XS-0.06/lib/Class/Load/XS.xs
--- old/Class-Load-XS-0.04/lib/Class/Load/XS.xs 2012-02-08 20:50:17.000000000
+0100
+++ new/Class-Load-XS-0.06/lib/Class/Load/XS.xs 2012-10-08 16:21:26.000000000
+0200
@@ -119,32 +119,38 @@
if (hv_exists_ent (stash, KEY_FOR_VERSION, HASH_FOR_VERSION)) {
HE *version = hv_fetch_ent(stash, KEY_FOR_VERSION, 0,
HASH_FOR_VERSION);
- SV *version_sv;
- if (version && HeVAL(version) && (version_sv =
GvSV(HeVAL(version)))) {
- if (SvROK(version_sv)) {
- /* Any object is good enough, though this is most likely
- going to be a version object */
- if (sv_isobject(version_sv)) {
- XSRETURN_YES;
- }
- else {
- SV *version_sv_ref = SvRV(version_sv);
-
- if (SvOK(version_sv_ref)) {
+ if (version) {
+ SV *value = HeVAL(version);
+ SV *version_sv;
+ if (value && isGV(value) && (version_sv = GvSV(value))) {
+ if (SvROK(version_sv)) {
+ /* Any object is good enough, though this is most
+ likely going to be a version object */
+ if (sv_isobject(version_sv)) {
XSRETURN_YES;
}
+ else {
+ SV *version_sv_ref = SvRV(version_sv);
+
+ if (SvOK(version_sv_ref)) {
+ XSRETURN_YES;
+ }
+ }
+ }
+ else if (SvOK(version_sv)) {
+ XSRETURN_YES;
}
- }
- else if (SvOK(version_sv)) {
- XSRETURN_YES;
}
}
}
if (hv_exists_ent (stash, KEY_FOR_ISA, HASH_FOR_ISA)) {
HE *isa = hv_fetch_ent(stash, KEY_FOR_ISA, 0, HASH_FOR_ISA);
- if (isa && HeVAL(isa) && GvAV(HeVAL(isa)) &&
av_len(GvAV(HeVAL(isa))) != -1) {
- XSRETURN_YES;
+ if (isa) {
+ SV *value = HeVAL(isa);
+ if (value && isGV(value) && GvAV(value) && av_len(GvAV(value))
!= -1) {
+ XSRETURN_YES;
+ }
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/t/003-load-class.t
new/Class-Load-XS-0.06/t/003-load-class.t
--- old/Class-Load-XS-0.04/t/003-load-class.t 2012-02-08 20:50:17.000000000
+0100
+++ new/Class-Load-XS-0.06/t/003-load-class.t 2012-10-08 16:21:26.000000000
+0200
@@ -6,51 +6,92 @@
use Test::Class::Load ':all';
use Test::Fatal;
-ok(load_class('Class::Load::OK'), "loaded class OK");
-is($Class::Load::ERROR, undef);
+is( load_class('Class::Load::OK'), 'Class::Load::OK', 'loaded class OK' );
+is( $Class::Load::ERROR, undef, 'ERROR is undef' );
-like( exception {
- load_class('Class::Load::Nonexistent')
-}, qr{^Can't locate Class/Load/Nonexistent.pm in \@INC});
-like($Class::Load::ERROR, qr{^Can't locate Class/Load/Nonexistent.pm in
\@INC});
-
-ok(load_class('Class::Load::OK'), "loaded class OK");
-is($Class::Load::ERROR, undef);
-
-like( exception {
- load_class('Class::Load::SyntaxError')
-}, qr{^Missing right curly or square bracket at });
-like($Class::Load::ERROR, qr{^Missing right curly or square bracket at });
-
-ok(is_class_loaded('Class::Load::OK'));
-ok(!is_class_loaded('Class::Load::Nonexistent'));
-ok(!is_class_loaded('Class::Load::SyntaxError'));
+like(
+ exception {
+ load_class('Class::Load::Nonexistent');
+ },
+ qr{^Can't locate Class/Load/Nonexistent.pm in \@INC},
+ 'threw exception for nonexistent class'
+);
+
+like(
+ $Class::Load::ERROR,
+ qr{^Can't locate Class/Load/Nonexistent.pm in \@INC},
+ 'ERROR message for nonexistent class',
+);
+
+ok( load_class('Class::Load::OK'), 'loaded class OK' );
+is( $Class::Load::ERROR, undef, 'ERROR is undef' );
+
+like(
+ exception {
+ load_class('Class::Load::SyntaxError');
+ },
+ qr{^Missing right curly or square bracket at },
+ 'exception contains syntax error message'
+);
+
+like(
+ $Class::Load::ERROR,
+ qr{^Missing right curly or square bracket at },
+ 'ERROR contains syntax error message'
+);
+
+ok( is_class_loaded('Class::Load::OK') );
+ok( !is_class_loaded('Class::Load::Nonexistent') );
+ok( !is_class_loaded('Class::Load::SyntaxError') );
do {
+
package Class::Load::Inlined;
sub inlined { 1 }
};
-ok(load_class('Class::Load::Inlined'), "loaded class Inlined");
-is($Class::Load::ERROR, undef);
-ok(is_class_loaded('Class::Load::Inlined'));
-
-like( exception {
- load_class('Class::Load::VersionCheck', { -version => 43 })
-}, qr/^Class::Load::VersionCheck version 43 required/);
-
-ok(load_class('Class::Load::VersionCheck', { -version => 41 }),
- "loaded class with version check");
-
-ok(load_class('Class::Load::VersionCheck2', { -version => 41 }),
- "loaded class with version check");
-
-like( exception {
- load_class('Class::Load::VersionCheck2', { -version => 43 })
-}, qr/^Class::Load::VersionCheck2 version 43 required/);
-
-like( exception {
- load_class('__PACKAGE__')
-}, qr/__PACKAGE__\.pm.*\@INC/, 'errors sanely on __PACKAGE__.pm' );
+is(
+ load_class('Class::Load::Inlined'),
+ 'Class::Load::Inlined',
+ 'loaded class Inlined'
+);
+is( $Class::Load::ERROR, undef );
+ok( is_class_loaded('Class::Load::Inlined') );
+
+like(
+ exception {
+ load_class( 'Class::Load::VersionCheck', { -version => 43 } );
+ },
+ qr/^Class::Load::VersionCheck version 43 required/,
+ 'got expected error for load_class with explicit version'
+);
+
+is(
+ load_class( 'Class::Load::VersionCheck', { -version => 41 } ),
+ 'Class::Load::VersionCheck',
+ 'loaded class with version check'
+);
+
+is(
+ load_class( 'Class::Load::VersionCheck2', { -version => 41 } ),
+ 'Class::Load::VersionCheck2',
+ 'loaded class with version check'
+);
+
+like(
+ exception {
+ load_class( 'Class::Load::VersionCheck2', { -version => 43 } );
+ },
+ qr/^Class::Load::VersionCheck2 version 43 required/,
+ 'got expected error for load_class with explicit version (after class has
been loaded into memory)'
+);
+
+like(
+ exception {
+ load_class('__PACKAGE__');
+ },
+ qr/__PACKAGE__\.pm.*\@INC/,
+ 'errors sanely on __PACKAGE__.pm'
+);
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/t/013-errors.t
new/Class-Load-XS-0.06/t/013-errors.t
--- old/Class-Load-XS-0.04/t/013-errors.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Class-Load-XS-0.06/t/013-errors.t 2012-10-08 16:21:26.000000000
+0200
@@ -0,0 +1,123 @@
+use strict;
+use warnings;
+
+use Test::More 0.88;
+
+use lib 't/lib';
+use Test::Class::Load ':all';
+
+my $file = __FILE__;
+
+{
+# line 1
+ eval { load_class('Class::NonExistent') };
+ my $e = $@;
+
+ unlike(
+ $e,
+ qr/at .+Load\.pm line \d+/,
+ 'load_class exception does not refer to Class::Load internals'
+ );
+
+ unlike(
+ $e,
+ qr/at .+Runtime\.pm line \d+/,
+ 'load_class exception does not refer to Module::Runtime internals'
+ );
+
+ like(
+ $e,
+ qr/Can't locate [^\n]+ at \Q$file\E line 1/,
+ 'error appears from the spot that called load_class'
+ );
+}
+
+{
+ my ( $ok, $e ) = try_load_class('Class::NonExistent::Take2');
+
+ unlike(
+ $e,
+ qr/at .+Load\.pm line \d+/,
+ 'try_load_class exception does not refer to Class::Load internals'
+ );
+
+ unlike(
+ $e,
+ qr/at .+Runtime\.pm line \d+/,
+ 'try_load_class exception does not refer to Module::Runtime internals'
+ );
+}
+
+{
+# line 2
+ eval { load_first_existing_class('Class::NonExistent::Take3') };
+ my $e = $@;
+
+ unlike(
+ $e,
+ qr/at .+Load\.pm line \d+/,
+ 'load_first_existing_class exception does not refer to Class::Load
internals'
+ );
+
+ unlike(
+ $e,
+ qr/at .+Runtime\.pm line \d+/,
+ 'load_first_existing_class exception does not refer to Module::Runtime
internals'
+ );
+
+ like(
+ $e,
+ qr/Can't locate [^\n]+ at \Q$file\E line 2/,
+ 'error appears from the spot that called load_first_existing_class'
+ );
+}
+
+{
+# line 3
+ eval { load_first_existing_class('Class::Load::SyntaxError') };
+ my $e = $@;
+
+ unlike(
+ $e,
+ qr/at .+Load\.pm line \d+/,
+ 'load_first_existing_class exception does not refer to Class::Load
internals'
+ );
+
+ unlike(
+ $e,
+ qr/at .+Runtime\.pm line \d+/,
+ 'load_first_existing_class exception does not refer to Module::Runtime
internals'
+ );
+
+ like(
+ $e,
+ qr/Compilation failed .+? at \Q$file\E line 3/s,
+ 'error appears from the spot that called load_first_existing_class'
+ );
+}
+
+{
+# line 4
+ eval { load_optional_class('Class::Load::SyntaxError') };
+ my $e = $@;
+
+ unlike(
+ $e,
+ qr/at .+Load\.pm line \d+/,
+ 'load_optional_class exception does not refer to Class::Load internals'
+ );
+
+ unlike(
+ $e,
+ qr/at .+Runtime\.pm line \d+/,
+ 'load_optional_class exception does not refer to Module::Runtime
internals'
+ );
+
+ like(
+ $e,
+ qr/Compilation failed .+? at \Q$file\E line 4/s,
+ 'error appears from the spot that called load_optional_class'
+ );
+}
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-Load-XS-0.04/t/014-weird-constants.t
new/Class-Load-XS-0.06/t/014-weird-constants.t
--- old/Class-Load-XS-0.04/t/014-weird-constants.t 1970-01-01
01:00:00.000000000 +0100
+++ new/Class-Load-XS-0.06/t/014-weird-constants.t 2012-10-08
16:21:26.000000000 +0200
@@ -0,0 +1,34 @@
+use strict;
+use warnings;
+
+use Test::Fatal;
+use Test::More 0.88;
+
+use lib 't/lib';
+use Test::Class::Load ':all';
+
+{
+ package ConstantISA;
+
+ use constant ISA => 1;
+}
+
+is(
+ exception { is_class_loaded('ConstantISA') },
+ undef,
+ 'no error checking whether class with ISA constant is loaded'
+);
+
+{
+ package ConstantVERSION;
+
+ use constant VERSION => 1;
+}
+
+is(
+ exception { is_class_loaded('ConstantVERSION') },
+ undef,
+ 'no error checking whether class with VERSION constant is loaded'
+);
+
+done_testing();
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]