Hello community, here is the log from the commit of package perl-Class-C3 for openSUSE:Factory checked in at 2018-04-25 10:00:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Class-C3 (Old) and /work/SRC/openSUSE:Factory/.perl-Class-C3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Class-C3" Wed Apr 25 10:00:42 2018 rev:22 rq:599322 version:0.34 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Class-C3/perl-Class-C3.changes 2017-05-03 15:57:39.820214861 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Class-C3.new/perl-Class-C3.changes 2018-04-25 10:00:52.731883391 +0200 @@ -1,0 +2,10 @@ +Fri Apr 20 05:06:19 UTC 2018 - [email protected] + +- updated to 0.34 + see /usr/share/doc/packages/perl-Class-C3/Changes + + 0.34 - 2018-04-19 + - update bundled ExtUtils::HasCompiler to 0.021 + - fix some examples in pod + +------------------------------------------------------------------- Old: ---- Class-C3-0.33.tar.gz New: ---- Class-C3-0.34.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Class-C3.spec ++++++ --- /var/tmp/diff_new_pack.kANV90/_old 2018-04-25 10:00:53.339861085 +0200 +++ /var/tmp/diff_new_pack.kANV90/_new 2018-04-25 10:00:53.339861085 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Class-C3 # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX 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,11 +17,11 @@ Name: perl-Class-C3 -Version: 0.33 +Version: 0.34 Release: 0 %define cpan_name Class-C3 Summary: Pragma to Use the C3 Method Resolution Order Algorithm -License: Artistic-1.0 or GPL-1.0+ +License: Artistic-1.0 OR GPL-1.0-or-later Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Class-C3/ Source0: https://cpan.metacpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz ++++++ Class-C3-0.33.tar.gz -> Class-C3-0.34.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/Changes new/Class-C3-0.34/Changes --- old/Class-C3-0.33/Changes 2017-04-23 23:58:48.000000000 +0200 +++ new/Class-C3-0.34/Changes 2018-04-19 18:26:49.000000000 +0200 @@ -1,5 +1,9 @@ Revision history for Perl extension Class::C3. +0.34 - 2018-04-19 + - update bundled ExtUtils::HasCompiler to 0.021 + - fix some examples in pod + 0.33 - 2017-04-23 - update bundled ExtUtils::HasCompiler to 0.017 - moved repository to Moose GitHub org diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/META.json new/Class-C3-0.34/META.json --- old/Class-C3-0.33/META.json 2017-04-23 23:59:18.000000000 +0200 +++ new/Class-C3-0.34/META.json 2018-04-19 18:27:00.000000000 +0200 @@ -4,13 +4,13 @@ "Stevan Little, <[email protected]>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005", + "generated_by" : "ExtUtils::MakeMaker version 7.3, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" + "version" : 2 }, "name" : "Class-C3", "no_index" : { @@ -65,6 +65,6 @@ "web" : "https://github.com/moose/Class-C3" } }, - "version" : "0.33", - "x_serialization_backend" : "JSON::PP version 2.27300" + "version" : "0.34", + "x_serialization_backend" : "JSON::PP version 2.97001" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/META.yml new/Class-C3-0.34/META.yml --- old/Class-C3-0.33/META.yml 2017-04-23 23:59:18.000000000 +0200 +++ new/Class-C3-0.34/META.yml 2018-04-19 18:27:00.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150005' +generated_by: 'ExtUtils::MakeMaker version 7.3, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -28,5 +28,5 @@ homepage: https://metacpan.org/release/Class-C3 license: http://dev.perl.org/licenses/ repository: https://github.com/moose/Class-C3.git -version: '0.33' +version: '0.34' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/README new/Class-C3-0.34/README --- old/Class-C3-0.33/README 2017-04-23 23:59:18.000000000 +0200 +++ new/Class-C3-0.34/README 2018-04-19 18:27:00.000000000 +0200 @@ -185,9 +185,9 @@ package ClassD; use base ('ClassB', 'ClassC'); use Class::C3; - sub foo { 'D::foo => ' . (shift)->next::method() } + sub foo { 'ClassD::foo => ' . (shift)->next::method() } - print D->foo; # prints out "D::foo => B::foo => C::foo => A::foo" + print ClassD->foo; # prints out "ClassD::foo => ClassB::foo => ClassC::foo => ClassA::foo" A few things to note. First, we do not require you to add on the method name to the "next::method" call (this is unlike "NEXT::" and "SUPER::" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/inc/ExtUtils/HasCompiler.pm new/Class-C3-0.34/inc/ExtUtils/HasCompiler.pm --- old/Class-C3-0.33/inc/ExtUtils/HasCompiler.pm 2017-04-23 22:27:36.000000000 +0200 +++ new/Class-C3-0.34/inc/ExtUtils/HasCompiler.pm 2017-08-13 14:39:05.000000000 +0200 @@ -1,10 +1,10 @@ package ExtUtils::HasCompiler; -$ExtUtils::HasCompiler::VERSION = '0.017'; +$ExtUtils::HasCompiler::VERSION = '0.021'; use strict; use warnings; use base 'Exporter'; -our @EXPORT_OK = qw/can_compile_loadable_object/; +our @EXPORT_OK = qw/can_compile_loadable_object can_compile_static_library can_compile_extension/; our %EXPORT_TAGS = (all => \@EXPORT_OK); use Config; @@ -75,23 +75,14 @@ my ($source_handle, $source_name) = tempfile('TESTXXXX', DIR => $tempdir, SUFFIX => '.c', UNLINK => 1); my $basename = basename($source_name, '.c'); - - my $shortname = '_Loadable' . $counter++; - my $package = "ExtUtils::HasCompiler::$shortname"; - printf $source_handle $loadable_object_format, $basename, $package or do { carp "Couldn't write to $source_name: $!"; return }; - close $source_handle or do { carp "Couldn't close $source_name: $!"; return }; - my $abs_basename = catfile($tempdir, $basename); - my $object_file = $abs_basename . $config->get('_o'); - my $loadable_object = $abs_basename . '.' . $config->get('dlext'); - my $incdir = catdir($config->get('archlibexp'), 'CORE'); - my ($cc, $ccflags, $optimize, $cccdlflags, $ld, $ldflags, $lddlflags, $libperl, $perllibs) = map { $config->get($_) } qw/cc ccflags optimize cccdlflags ld ldflags lddlflags libperl perllibs/; + my ($cc, $ccflags, $optimize, $cccdlflags, $ld, $ldflags, $lddlflags, $libperl, $perllibs, $archlibexp, $_o, $dlext) = map { $config->get($_) } qw/cc ccflags optimize cccdlflags ld ldflags lddlflags libperl perllibs archlibexp _o dlext/; + + my $incdir = catdir($archlibexp, 'CORE'); + my $object_file = $abs_basename.$_o; + my $loadable_object = "$abs_basename.$dlext"; - if ($prelinking{$^O}) { - require ExtUtils::Mksymlists; - ExtUtils::Mksymlists::Mksymlists(NAME => $basename, FILE => $abs_basename, IMPORTS => {}); - } my @commands; if ($^O eq 'MSWin32' && $cc =~ /^cl/) { push @commands, qq{$cc $ccflags $cccdlflags $optimize /I "$incdir" /c $source_name /Fo$object_file}; @@ -127,6 +118,16 @@ push @commands, qq{$ld $object_file -o $loadable_object $lddlflags @extra}; } + if ($prelinking{$^O}) { + require ExtUtils::Mksymlists; + ExtUtils::Mksymlists::Mksymlists(NAME => $basename, FILE => $abs_basename, IMPORTS => {}); + } + + my $shortname = '_Loadable' . $counter++; + my $package = "ExtUtils::HasCompiler::$shortname"; + printf $source_handle $loadable_object_format, $basename, $package or do { carp "Couldn't write to $source_name: $!"; return }; + close $source_handle or do { carp "Couldn't close $source_name: $!"; return }; + for my $command (@commands) { print $output "$command\n" if not $args{quiet}; system $command and do { carp "Couldn't execute $command: $!"; return }; @@ -152,6 +153,54 @@ } } +my %static_unsupported_on = map { $_ => 1 } qw/VMS aix MSWin32 cygwin/; +sub can_compile_static_library { + my %args = @_; + + my $output = $args{output} || \*STDOUT; + + my $config = $args{config} || 'ExtUtils::HasCompiler::Config'; + return if $config->get('useshrplib') eq 'true'; + + my ($source_handle, $source_name) = tempfile('TESTXXXX', DIR => $tempdir, SUFFIX => '.c', UNLINK => 1); + my $basename = basename($source_name, '.c'); + my $abs_basename = catfile($tempdir, $basename); + + my ($cc, $ccflags, $optimize, $ar, $full_ar, $ranlib, $archlibexp, $_o, $lib_ext) = map { $config->get($_) } qw/cc ccflags optimize ar full_ar ranlib archlibexp _o lib_ext/; + my $incdir = catdir($archlibexp, 'CORE'); + my $object_file = "$abs_basename$_o"; + my $static_library = $abs_basename.$lib_ext; + + my @commands; + if ($static_unsupported_on{$^O}) { + return; + } + else { + my $my_ar = length $full_ar ? $full_ar : $ar; + push @commands, qq{$cc $ccflags $optimize "-I$incdir" -c $source_name -o $object_file}; + push @commands, qq{$my_ar cr $static_library $object_file}; + push @commands, qq{$ranlib $static_library} if $ranlib ne ':'; + } + + my $shortname = '_Loadable' . $counter++; + my $package = "ExtUtils::HasCompiler::$shortname"; + printf $source_handle $loadable_object_format, $basename, $package or do { carp "Couldn't write to $source_name: $!"; return }; + close $source_handle or do { carp "Couldn't close $source_name: $!"; return }; + + for my $command (@commands) { + print $output "$command\n" if not $args{quiet}; + system $command and do { carp "Couldn't execute $command: $!"; return }; + } + return 1; +} + +sub can_compile_extension { + my %args = @_; + $args{config} ||= 'ExtUtils::HasCompiler::Config'; + my $linktype = $args{linktype} || ($args{config}->get('usedl') ? 'dynamic' : 'static'); + return $linktype eq 'static' ? can_compile_static_library(%args) : can_compile_loadable_object(%args); +} + sub ExtUtils::HasCompiler::Config::get { my (undef, $key) = @_; return $ENV{uc $key} || $Config{$key}; @@ -173,7 +222,17 @@ =head1 VERSION -version 0.017 +version 0.021 + +=head1 SYNOPSIS + + use ExtUtils::HasCompiler 'can_compile_extension'; + if (can_compile_extension()) { + ... + } + else { + ... + } =head1 DESCRIPTION @@ -203,6 +262,34 @@ =back +=head2 can_compile_static_library(%opts) + +This checks if the system can compile and link a perl static library. It does not check it it can compile a new perl with it. It may take the following options: + +=over 4 + +=item * quiet + +Do not output the executed compilation commands. + +=item * config + +An L<ExtUtils::Config|ExtUtils::Config> (compatible) object for configuration. + +=back + +=head2 can_compile_extension(%opts) + +This will call either C<can_compile_loadable_object>, or C<can_compile_static_library>, depending on which is the default on your configuration. In addition to the arguments listed above, it can take one more optional argument: + +=over 4 + +=item * linktype + +This will force the linktype to be either static or dynamic. Dynamic compilation on a static perl won't work, but static libraries can be viable on a dynamic perl. + +=back + =head1 AUTHOR Leon Timmermans <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/lib/Class/C3/next.pm new/Class-C3-0.34/lib/Class/C3/next.pm --- old/Class-C3-0.33/lib/Class/C3/next.pm 2017-04-23 23:58:08.000000000 +0200 +++ new/Class-C3-0.34/lib/Class/C3/next.pm 2018-04-19 18:26:46.000000000 +0200 @@ -7,7 +7,7 @@ use Scalar::Util 'blessed'; -our $VERSION = '0.33'; +our $VERSION = '0.34'; our %METHOD_CACHE; @@ -66,7 +66,7 @@ use warnings; no warnings 'redefine'; # for 00load.t w/ core support -our $VERSION = '0.33'; +our $VERSION = '0.34'; sub method { (next::method($_[0]) || return)->(@_) } @@ -90,9 +90,9 @@ =head1 AUTHOR -Stevan Little, E<lt>[email protected]<gt> +Stevan Little, <[email protected]> -Brandon L. Black, E<lt>[email protected]<gt> +Brandon L. Black, <[email protected]> =head1 COPYRIGHT AND LICENSE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Class-C3-0.33/lib/Class/C3.pm new/Class-C3-0.34/lib/Class/C3.pm --- old/Class-C3-0.33/lib/Class/C3.pm 2017-04-23 23:58:08.000000000 +0200 +++ new/Class-C3-0.34/lib/Class/C3.pm 2018-04-19 18:26:46.000000000 +0200 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '0.33'; +our $VERSION = '0.34'; our $C3_IN_CORE; our $C3_XS; @@ -419,9 +419,9 @@ package ClassD; use base ('ClassB', 'ClassC'); use Class::C3; - sub foo { 'D::foo => ' . (shift)->next::method() } + sub foo { 'ClassD::foo => ' . (shift)->next::method() } - print D->foo; # prints out "D::foo => B::foo => C::foo => A::foo" + print ClassD->foo; # prints out "ClassD::foo => ClassB::foo => ClassC::foo => ClassA::foo" A few things to note. First, we do not require you to add on the method name to the C<next::method> call (this is unlike C<NEXT::> and C<SUPER::> which do require that). This helps to enforce the rule
