Hello community, here is the log from the commit of package perl-MooseX-TransactionalMethods for openSUSE:Factory checked in at 2015-04-15 16:26:08 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-MooseX-TransactionalMethods (Old) and /work/SRC/openSUSE:Factory/.perl-MooseX-TransactionalMethods.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-MooseX-TransactionalMethods" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-MooseX-TransactionalMethods/perl-MooseX-TransactionalMethods.changes 2012-01-04 07:28:21.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-MooseX-TransactionalMethods.new/perl-MooseX-TransactionalMethods.changes 2015-04-15 16:26:09.000000000 +0200 @@ -1,0 +2,6 @@ +Tue Apr 14 18:19:15 UTC 2015 - co...@suse.com + +- updated to 0.009 + see /usr/share/doc/packages/perl-MooseX-TransactionalMethods/Changes + +------------------------------------------------------------------- Old: ---- MooseX-TransactionalMethods-0.008.tar.gz New: ---- MooseX-TransactionalMethods-0.009.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-MooseX-TransactionalMethods.spec ++++++ --- /var/tmp/diff_new_pack.UR8NkW/_old 2015-04-15 16:26:09.000000000 +0200 +++ /var/tmp/diff_new_pack.UR8NkW/_new 2015-04-15 16:26:09.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-MooseX-TransactionalMethods # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 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 @@ -15,44 +15,26 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + Name: perl-MooseX-TransactionalMethods -Version: 0.008 +Version: 0.009 Release: 0 %define cpan_name MooseX-TransactionalMethods Summary: Syntax sugar for transactional methods License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/MooseX-TransactionalMethods/ -Source: http://www.cpan.org/authors/id/D/DR/DRUOSO/%{cpan_name}-%{version}.tar.gz +Source: http://www.cpan.org/authors/id/M/MJ/MJG/%{cpan_name}-%{version}.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: perl(Moose) >= 1.21 +BuildRequires: perl(Sub::Name) BuildRequires: perl(aliased) -#BuildRequires: perl(CPANPLUS::Backend) -#BuildRequires: perl(inc::Module::Install) >= 0.91 -#BuildRequires: perl(JSON) -#BuildRequires: perl(LWP::Simple) -#BuildRequires: perl(Module::AutoInstall) -#BuildRequires: perl(Module::Build) -#BuildRequires: perl(Module::Install::Base) -#BuildRequires: perl(Moose::Exporter) -#BuildRequires: perl(Moose::Role) -#BuildRequires: perl(Moose::Util::MetaRole) -#BuildRequires: perl(Moose::Util::TypeConstraints) -#BuildRequires: perl(MooseX::Meta::Method::Transactional) -#BuildRequires: perl(MooseX::Meta::Method::Transactional::Meta::Role) -#BuildRequires: perl(MooseX::TransactionalMethods) -#BuildRequires: perl(mro) -#BuildRequires: perl(My::ClassTest1) -#BuildRequires: perl(OtherRole) -#BuildRequires: perl(Parse::CPAN::Meta) -#BuildRequires: perl(Sub::Name) -#BuildRequires: perl(Test::Moose) -#BuildRequires: perl(YAML::Tiny) -Requires: perl(aliased) Requires: perl(Moose) >= 1.21 +Requires: perl(Sub::Name) +Requires: perl(aliased) %{perl_requires} %description @@ -76,6 +58,6 @@ %files -f %{name}.files %defattr(-,root,root,755) -%doc README +%doc Changes README %changelog ++++++ MooseX-TransactionalMethods-0.008.tar.gz -> MooseX-TransactionalMethods-0.009.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/Changes new/MooseX-TransactionalMethods-0.009/Changes --- old/MooseX-TransactionalMethods-0.008/Changes 1970-01-01 01:00:00.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/Changes 2015-03-26 18:12:56.000000000 +0100 @@ -0,0 +1,27 @@ +Changes for MooseX::TransactionalMethods + +0.09 2015-03-26 + + - fixed: add dependency on 'Sub::Name' module. + + - added: 'use strict; use warnings;' to + MooseX::Meta::Method::Transactional (for the benefit of + CPANTS quality metrics). + + - added: this change log. + +0.08 2010-11-29 + + - fixed: typo in previous version required wrong version of Moose. + +0.07 2010-11-25 + + - fixed: Moose 1.15 to 1.20 broke this module, so now require Moose 1.21. + +0.06 2010-05-14 + + - fixed: add dependency on 'aliased' module. + +0.05 2010-05-05 + + - first stable release. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/MANIFEST new/MooseX-TransactionalMethods-0.009/MANIFEST --- old/MooseX-TransactionalMethods-0.008/MANIFEST 2010-11-24 20:35:51.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/MANIFEST 2015-03-26 18:42:21.000000000 +0100 @@ -15,6 +15,7 @@ lib/MooseX/Meta/Method/Transactional/Application/ToInstance.pm lib/MooseX/Meta/Method/Transactional/Meta/Role.pm lib/MooseX/TransactionalMethods.pm +Changes Makefile.PL MANIFEST META.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/META.yml new/MooseX-TransactionalMethods-0.009/META.yml --- old/MooseX-TransactionalMethods-0.008/META.yml 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/META.yml 2015-03-26 18:43:57.000000000 +0100 @@ -3,11 +3,12 @@ author: - 'Daniel Ruoso <dan...@ruoso.com>' build_requires: - ExtUtils::MakeMaker: 6.42 + ExtUtils::MakeMaker: 6.36 configure_requires: - ExtUtils::MakeMaker: 6.42 + ExtUtils::MakeMaker: 6.36 distribution_type: module -generated_by: 'Module::Install version 1.00' +dynamic_config: 1 +generated_by: 'Module::Install version 1.14' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -18,9 +19,10 @@ - inc - t requires: - Moose: 1.21 + Moose: '1.21' + Sub::Name: 0 aliased: 0 resources: license: http://dev.perl.org/licenses/ - repository: http://github.com/ruoso/MooseX-TransactionalMethods/ -version: 0.008 + repository: http://github.com/mjg17/MooseX-TransactionalMethods/ +version: 0.009 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/Makefile.PL new/MooseX-TransactionalMethods-0.009/Makefile.PL --- old/MooseX-TransactionalMethods-0.008/Makefile.PL 2010-11-29 13:45:56.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/Makefile.PL 2015-03-26 18:42:21.000000000 +0100 @@ -5,9 +5,10 @@ requires 'Moose' => '1.21'; requires 'aliased' => '0'; +requires 'Sub::Name' => '0'; auto_install; -resources repository => 'http://github.com/ruoso/MooseX-TransactionalMethods/'; +resources repository => 'http://github.com/mjg17/MooseX-TransactionalMethods/'; WriteAll; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/AutoInstall.pm new/MooseX-TransactionalMethods-0.009/inc/Module/AutoInstall.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/AutoInstall.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/AutoInstall.pm 2015-03-26 18:43:56.000000000 +0100 @@ -3,11 +3,12 @@ use strict; use Cwd (); +use File::Spec (); use ExtUtils::MakeMaker (); use vars qw{$VERSION}; BEGIN { - $VERSION = '1.03'; + $VERSION = '1.14'; } # special map on pre-defined feature sets @@ -17,11 +18,14 @@ ); # various lexical flags -my ( @Missing, @Existing, %DisabledTests, $UnderCPAN, $HasCPANPLUS ); +my ( @Missing, @Existing, %DisabledTests, $UnderCPAN, $InstallDepsTarget, $HasCPANPLUS ); my ( - $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps + $Config, $CheckOnly, $SkipInstall, $AcceptDefault, $TestOnly, $AllDeps, + $UpgradeDeps ); -my ( $PostambleActions, $PostambleUsed ); +my ( $PostambleActions, $PostambleActionsNoTest, $PostambleActionsUpgradeDeps, + $PostambleActionsUpgradeDepsNoTest, $PostambleActionsListDeps, + $PostambleActionsListAllDeps, $PostambleUsed, $NoTest); # See if it's a testing or non-interactive session _accept_default( $ENV{AUTOMATED_TESTING} or ! -t STDIN ); @@ -31,6 +35,10 @@ $AcceptDefault = shift; } +sub _installdeps_target { + $InstallDepsTarget = shift; +} + sub missing_modules { return @Missing; } @@ -63,6 +71,11 @@ __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) ); exit 0; } + elsif ( $arg =~ /^--upgradedeps=(.*)$/ ) { + $UpgradeDeps = 1; + __PACKAGE__->install( $Config, @Missing = split( /,/, $1 ) ); + exit 0; + } elsif ( $arg =~ /^--default(?:deps)?$/ ) { $AcceptDefault = 1; } @@ -102,7 +115,7 @@ print "*** $class version " . $class->VERSION . "\n"; print "*** Checking for Perl dependencies...\n"; - my $cwd = Cwd::cwd(); + my $cwd = Cwd::getcwd(); $Config = []; @@ -125,7 +138,7 @@ # check entirely since we don't want to have to load (and configure) # an old CPAN just for a cosmetic message - $UnderCPAN = _check_lock(1) unless $SkipInstall; + $UnderCPAN = _check_lock(1) unless $SkipInstall || $InstallDepsTarget; while ( my ( $feature, $modules ) = splice( @args, 0, 2 ) ) { my ( @required, @tests, @skiptests ); @@ -153,7 +166,7 @@ $modules = [ %{$modules} ] if UNIVERSAL::isa( $modules, 'HASH' ); unshift @$modules, -default => &{ shift(@$modules) } - if ( ref( $modules->[0] ) eq 'CODE' ); # XXX: bugward combatability + if ( ref( $modules->[0] ) eq 'CODE' ); # XXX: bugward compatibility while ( my ( $mod, $arg ) = splice( @$modules, 0, 2 ) ) { if ( $mod =~ m/^-(\w+)$/ ) { @@ -175,7 +188,7 @@ } # XXX: check for conflicts and uninstalls(!) them. - my $cur = _load($mod); + my $cur = _version_of($mod); if (_version_cmp ($cur, $arg) >= 0) { print "loaded. ($cur" . ( $arg ? " >= $arg" : '' ) . ")\n"; @@ -207,6 +220,7 @@ $CheckOnly or ($mandatory and $UnderCPAN) or $AllDeps + or $InstallDepsTarget or _prompt( qq{==> Auto-install the } . ( @required / 2 ) @@ -237,10 +251,17 @@ } } - if ( @Missing and not( $CheckOnly or $UnderCPAN ) ) { + if ( @Missing and not( $CheckOnly or $UnderCPAN) ) { require Config; - print -"*** Dependencies will be installed the next time you type '$Config::Config{make}'.\n"; + my $make = $Config::Config{make}; + if ($InstallDepsTarget) { + print +"*** To install dependencies type '$make installdeps' or '$make installdeps_notest'.\n"; + } + else { + print +"*** Dependencies will be installed the next time you type '$make'.\n"; + } # make an educated guess of whether we'll need root permission. print " (You may need to do that as the 'root' user.)\n" @@ -271,6 +292,10 @@ sub _check_lock { return unless @Missing or @_; + if ($ENV{PERL5_CPANM_IS_RUNNING}) { + return _running_under('cpanminus'); + } + my $cpan_env = $ENV{PERL5_CPAN_IS_RUNNING}; if ($ENV{PERL5_CPANPLUS_IS_RUNNING}) { @@ -320,17 +345,26 @@ my $i; # used below to strip leading '-' from config keys my @config = ( map { s/^-// if ++$i; $_ } @{ +shift } ); - my ( @modules, @installed ); - while ( my ( $pkg, $ver ) = splice( @_, 0, 2 ) ) { + my ( @modules, @installed, @modules_to_upgrade ); + while (my ($pkg, $ver) = splice(@_, 0, 2)) { - # grep out those already installed - if ( _version_cmp( _load($pkg), $ver ) >= 0 ) { - push @installed, $pkg; - } - else { - push @modules, $pkg, $ver; - } - } + # grep out those already installed + if (_version_cmp(_version_of($pkg), $ver) >= 0) { + push @installed, $pkg; + if ($UpgradeDeps) { + push @modules_to_upgrade, $pkg, $ver; + } + } + else { + push @modules, $pkg, $ver; + } + } + + if ($UpgradeDeps) { + push @modules, @modules_to_upgrade; + @installed = (); + @modules_to_upgrade = (); + } return @installed unless @modules; # nothing to do return @installed if _check_lock(); # defer to the CPAN shell @@ -363,7 +397,7 @@ # see if we have successfully installed them while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) { - if ( _version_cmp( _load($pkg), $ver ) >= 0 ) { + if ( _version_cmp( _version_of($pkg), $ver ) >= 0 ) { push @installed, $pkg; } elsif ( $args{do_once} and open( FAILED, '>> .#autoinstall.failed' ) ) { @@ -463,6 +497,11 @@ } else { die "*** Cannot convert option $key = '$value' to CPANPLUS version.\n"; } + push @config, 'prereqs', $value; + } elsif ( $key eq 'force' ) { + push @config, $key, $value; + } elsif ( $key eq 'notest' ) { + push @config, 'skiptest', $value; } else { die "*** Cannot convert option $key to CPANPLUS version.\n"; } @@ -497,10 +536,14 @@ # set additional options while ( my ( $opt, $arg ) = splice( @config, 0, 2 ) ) { ( $args{$opt} = $arg, next ) - if $opt =~ /^force$/; # pseudo-option + if $opt =~ /^(?:force|notest)$/; # pseudo-option $CPAN::Config->{$opt} = $arg; } + if ($args{notest} && (not CPAN::Shell->can('notest'))) { + die "Your version of CPAN is too old to support the 'notest' pragma"; + } + local $CPAN::Config->{prerequisites_policy} = 'follow'; while ( my ( $pkg, $ver ) = splice( @modules, 0, 2 ) ) { @@ -519,8 +562,16 @@ delete $INC{$inc}; } - my $rv = $args{force} ? CPAN::Shell->force( install => $pkg ) - : CPAN::Shell->install($pkg); + my $rv = do { + if ($args{force}) { + CPAN::Shell->force( install => $pkg ) + } elsif ($args{notest}) { + CPAN::Shell->notest( install => $pkg ) + } else { + CPAN::Shell->install($pkg) + } + }; + $rv ||= eval { $CPAN::META->instance( 'CPAN::Distribution', $obj->cpan_file, ) ->{install} @@ -564,7 +615,7 @@ require Cwd; require File::Spec; - my $cwd = File::Spec->canonpath( Cwd::cwd() ); + my $cwd = File::Spec->canonpath( Cwd::getcwd() ); my $cpan = File::Spec->canonpath( $CPAN::Config->{cpan_home} ); return ( index( $cwd, $cpan ) > -1 ); @@ -575,7 +626,7 @@ my $ver = shift; return - if _version_cmp( _load($class), $ver ) >= 0; # no need to upgrade + if _version_cmp( _version_of($class), $ver ) >= 0; # no need to upgrade if ( _prompt( "==> A newer version of $class ($ver) is required. Install?", @@ -660,16 +711,30 @@ # load a module and return the version it reports sub _load { - my $mod = pop; # class/instance doesn't matter + my $mod = pop; # method/function doesn't matter my $file = $mod; - $file =~ s|::|/|g; $file .= '.pm'; - local $@; return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 ); } +# report version without loading a module +sub _version_of { + my $mod = pop; # method/function doesn't matter + my $file = $mod; + $file =~ s|::|/|g; + $file .= '.pm'; + foreach my $dir ( @INC ) { + next if ref $dir; + my $path = File::Spec->catfile($dir, $file); + next unless -e $path; + require ExtUtils::MM_Unix; + return ExtUtils::MM_Unix->parse_version($path); + } + return undef; +} + # Load CPAN.pm and it's configuration sub _load_cpan { return if $CPAN::VERSION and $CPAN::Config and not @_; @@ -763,6 +828,35 @@ : "\$(NOECHO) \$(NOOP)" ); + my $deps_list = join( ',', @Missing, @Existing ); + + $PostambleActionsUpgradeDeps = + "\$(PERL) $0 --config=$config --upgradedeps=$deps_list"; + + my $config_notest = + join( ',', (UNIVERSAL::isa( $Config, 'HASH' ) ? %{$Config} : @{$Config}), + 'notest', 1 ) + if $Config; + + $PostambleActionsNoTest = ( + ($missing and not $UnderCPAN) + ? "\$(PERL) $0 --config=$config_notest --installdeps=$missing" + : "\$(NOECHO) \$(NOOP)" + ); + + $PostambleActionsUpgradeDepsNoTest = + "\$(PERL) $0 --config=$config_notest --upgradedeps=$deps_list"; + + $PostambleActionsListDeps = + '@$(PERL) -le "print for @ARGV" ' + . join(' ', map $Missing[$_], grep $_ % 2 == 0, 0..$#Missing); + + my @all = (@Missing, @Existing); + + $PostambleActionsListAllDeps = + '@$(PERL) -le "print for @ARGV" ' + . join(' ', map $all[$_], grep $_ % 2 == 0, 0..$#all); + return %args; } @@ -797,11 +891,15 @@ sub postamble { $PostambleUsed = 1; + my $fragment; - return <<"END_MAKE"; + $fragment .= <<"AUTO_INSTALL" if !$InstallDepsTarget; config :: installdeps \t\$(NOECHO) \$(NOOP) +AUTO_INSTALL + + $fragment .= <<"END_MAKE"; checkdeps :: \t\$(PERL) $0 --checkdeps @@ -809,12 +907,28 @@ installdeps :: \t$PostambleActions +installdeps_notest :: +\t$PostambleActionsNoTest + +upgradedeps :: +\t$PostambleActionsUpgradeDeps + +upgradedeps_notest :: +\t$PostambleActionsUpgradeDepsNoTest + +listdeps :: +\t$PostambleActionsListDeps + +listalldeps :: +\t$PostambleActionsListAllDeps + END_MAKE + return $fragment; } 1; __END__ -#line 1071 +#line 1197 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/AutoInstall.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/AutoInstall.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/AutoInstall.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/AutoInstall.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -73,6 +73,17 @@ ); } +sub installdeps_target { + my ($self, @args) = @_; + + $self->include('Module::AutoInstall'); + require Module::AutoInstall; + + Module::AutoInstall::_installdeps_target(1); + + $self->auto_install(@args); +} + sub auto_install_now { my $self = shift; $self->auto_install(@_); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Base.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Base.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Base.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Base.pm 2015-03-26 18:43:56.000000000 +0100 @@ -4,7 +4,7 @@ use strict 'vars'; use vars qw{$VERSION}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; } # Suspend handler for "redefined" warnings diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Can.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Can.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Can.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Can.pm 2015-03-26 18:43:56.000000000 +0100 @@ -3,13 +3,12 @@ use strict; use Config (); -use File::Spec (); use ExtUtils::MakeMaker (); use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -29,7 +28,7 @@ eval { require $mod; $pkg->VERSION($ver || 0); 1 }; } -# check if we can run some command +# Check if we can run some command sub can_run { my ($self, $cmd) = @_; @@ -38,14 +37,88 @@ for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { next if $dir eq ''; - my $abs = File::Spec->catfile($dir, $_[1]); + require File::Spec; + my $abs = File::Spec->catfile($dir, $cmd); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } return; } -# can we locate a (the) C compiler +# Can our C compiler environment build XS files +sub can_xs { + my $self = shift; + + # Ensure we have the CBuilder module + $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 ); + + # Do we have the configure_requires checker? + local $@; + eval "require ExtUtils::CBuilder;"; + if ( $@ ) { + # They don't obey configure_requires, so it is + # someone old and delicate. Try to avoid hurting + # them by falling back to an older simpler test. + return $self->can_cc(); + } + + # Do we have a working C compiler + my $builder = ExtUtils::CBuilder->new( + quiet => 1, + ); + unless ( $builder->have_compiler ) { + # No working C compiler + return 0; + } + + # Write a C file representative of what XS becomes + require File::Temp; + my ( $FH, $tmpfile ) = File::Temp::tempfile( + "compilexs-XXXXX", + SUFFIX => '.c', + ); + binmode $FH; + print $FH <<'END_C'; +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +int main(int argc, char **argv) { + return 0; +} + +int boot_sanexs() { + return 1; +} + +END_C + close $FH; + + # Can the C compiler access the same headers XS does + my @libs = (); + my $object = undef; + eval { + local $^W = 0; + $object = $builder->compile( + source => $tmpfile, + ); + @libs = $builder->link( + objects => $object, + module_name => 'sanexs', + ); + }; + my $result = $@ ? 0 : 1; + + # Clean up all the build files + foreach ( $tmpfile, $object, @libs ) { + next unless defined $_; + 1 while unlink; + } + + return $result; +} + +# Can we locate a (the) C compiler sub can_cc { my $self = shift; my @chunks = split(/ /, $Config::Config{cc}) or return; @@ -78,4 +151,4 @@ __END__ -#line 156 +#line 236 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Fetch.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Fetch.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Fetch.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Fetch.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Include.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Include.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Include.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Include.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Makefile.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Makefile.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Makefile.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Makefile.pm 2015-03-26 18:43:56.000000000 +0100 @@ -8,7 +8,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -133,7 +133,7 @@ return $args; } -# For mm args that take multiple space-seperated args, +# For mm args that take multiple space-separated args, # append an argument to the current list. sub makemaker_append { my $self = shift; @@ -215,18 +215,22 @@ require ExtUtils::MakeMaker; if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) { - # MakeMaker can complain about module versions that include - # an underscore, even though its own version may contain one! - # Hence the funny regexp to get rid of it. See RT #35800 - # for details. - my $v = $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/; - $self->build_requires( 'ExtUtils::MakeMaker' => $v ); - $self->configure_requires( 'ExtUtils::MakeMaker' => $v ); + # This previous attempted to inherit the version of + # ExtUtils::MakeMaker in use by the module author, but this + # was found to be untenable as some authors build releases + # using future dev versions of EU:MM that nobody else has. + # Instead, #toolchain suggests we use 6.59 which is the most + # stable version on CPAN at time of writing and is, to quote + # ribasushi, "not terminally fucked, > and tested enough". + # TODO: We will now need to maintain this over time to push + # the version up as new versions are released. + $self->build_requires( 'ExtUtils::MakeMaker' => 6.59 ); + $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 ); } else { # Allow legacy-compatibility with 5.005 by depending on the # most recent EU:MM that supported 5.005. - $self->build_requires( 'ExtUtils::MakeMaker' => 6.42 ); - $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 ); + $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 ); + $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 ); } # Generate the MakeMaker params @@ -241,7 +245,6 @@ 'all_from' if you prefer) in Makefile.PL. EOT - $DB::single = 1; if ( $self->tests ) { my @tests = split ' ', $self->tests; my %seen; @@ -412,4 +415,4 @@ __END__ -#line 541 +#line 544 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Metadata.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Metadata.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Metadata.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Metadata.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } @@ -151,15 +151,21 @@ sub install_as_vendor { $_[0]->installdirs('vendor') } sub dynamic_config { - my $self = shift; - unless ( @_ ) { - warn "You MUST provide an explicit true/false value to dynamic_config\n"; - return $self; + my $self = shift; + my $value = @_ ? shift : 1; + if ( $self->{values}->{dynamic_config} ) { + # Once dynamic we never change to static, for safety + return 0; } - $self->{values}->{dynamic_config} = $_[0] ? 1 : 0; + $self->{values}->{dynamic_config} = $value ? 1 : 0; return 1; } +# Convenience command +sub static_config { + shift->dynamic_config(0); +} + sub perl_version { my $self = shift; return $self->{values}->{perl_version} unless @_; @@ -170,7 +176,7 @@ # Normalize the version $version = $self->_perl_version($version); - # We don't support the reall old versions + # We don't support the really old versions unless ( $version >= 5.005 ) { die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; } @@ -341,7 +347,7 @@ ^ \s* package \s* ([\w:]+) - \s* ; + [\s|;]* /ixms ) { my ($name, $module_name) = ($1, $1); @@ -515,6 +521,7 @@ 'GNU Free Documentation license' => 'unrestricted', 1, 'GNU Affero General Public License' => 'open_source', 1, '(?:Free)?BSD license' => 'bsd', 1, + 'Artistic license 2\.0' => 'artistic_2', 1, 'Artistic license' => 'artistic', 1, 'Apache (?:Software )?license' => 'apache', 1, 'GPL' => 'gpl', 1, @@ -550,9 +557,9 @@ sub _extract_bugtracker { my @links = $_[0] =~ m#L<( - \Qhttp://rt.cpan.org/\E[^>]+| - \Qhttp://github.com/\E[\w_]+/[\w_]+/issues| - \Qhttp://code.google.com/p/\E[\w_\-]+/issues/list + https?\Q://rt.cpan.org/\E[^>]+| + https?\Q://github.com/\E[\w_]+/[\w_]+/issues| + https?\Q://code.google.com/p/\E[\w_\-]+/issues/list )>#gx; my %links; @links{@links}=(); @@ -581,7 +588,7 @@ sub requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); - my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; + my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; @@ -698,7 +705,7 @@ my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; - # Overwrite the non-configure dependency hashs + # Overwrite the non-configure dependency hashes delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Win32.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Win32.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/Win32.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/Win32.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install/WriteAll.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install/WriteAll.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install/WriteAll.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install/WriteAll.pm 2015-03-26 18:43:56.000000000 +0100 @@ -6,7 +6,7 @@ use vars qw{$VERSION @ISA $ISCORE}; BEGIN { - $VERSION = '1.00'; + $VERSION = '1.14'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/inc/Module/Install.pm new/MooseX-TransactionalMethods-0.009/inc/Module/Install.pm --- old/MooseX-TransactionalMethods-0.008/inc/Module/Install.pm 2010-11-29 13:47:32.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/inc/Module/Install.pm 2015-03-26 18:43:56.000000000 +0100 @@ -17,7 +17,7 @@ # 3. The ./inc/ version of Module::Install loads # } -use 5.005; +use 5.006; use strict 'vars'; use Cwd (); use File::Find (); @@ -31,7 +31,7 @@ # This is not enforced yet, but will be some time in the next few # releases once we can make sure it won't clash with custom # Module::Install extensions. - $VERSION = '1.00'; + $VERSION = '1.14'; # Storage for the pseudo-singleton $MAIN = undef; @@ -156,10 +156,10 @@ sub autoload { my $self = shift; my $who = $self->_caller; - my $cwd = Cwd::cwd(); + my $cwd = Cwd::getcwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { - my $pwd = Cwd::cwd(); + my $pwd = Cwd::getcwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; @@ -239,7 +239,7 @@ # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); - unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { + unless ( Cwd::abs_path(Cwd::getcwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; @@ -338,7 +338,7 @@ if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { my $content = Module::Install::_read($subpath . '.pm'); my $in_pod = 0; - foreach ( split //, $content ) { + foreach ( split /\n/, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text @@ -378,6 +378,7 @@ sub _read { local *FH; open( FH, '<', $_[0] ) or die "open($_[0]): $!"; + binmode FH; my $string = do { local $/; <FH> }; close FH or die "close($_[0]): $!"; return $string; @@ -386,6 +387,7 @@ sub _read { local *FH; open( FH, "< $_[0]" ) or die "open($_[0]): $!"; + binmode FH; my $string = do { local $/; <FH> }; close FH or die "close($_[0]): $!"; return $string; @@ -416,6 +418,7 @@ sub _write { local *FH; open( FH, '>', $_[0] ) or die "open($_[0]): $!"; + binmode FH; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } @@ -425,6 +428,7 @@ sub _write { local *FH; open( FH, "> $_[0]" ) or die "open($_[0]): $!"; + binmode FH; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } @@ -434,7 +438,7 @@ # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). -sub _version ($) { +sub _version { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { @@ -450,12 +454,12 @@ return $l + 0; } -sub _cmp ($$) { - _version($_[0]) <=> _version($_[1]); +sub _cmp { + _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS -sub _CLASS ($) { +sub _CLASS { ( defined $_[0] and @@ -467,4 +471,4 @@ 1; -# Copyright 2008 - 2010 Adam Kennedy. +# Copyright 2008 - 2012 Adam Kennedy. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/lib/MooseX/Meta/Method/Transactional.pm new/MooseX-TransactionalMethods-0.009/lib/MooseX/Meta/Method/Transactional.pm --- old/MooseX-TransactionalMethods-0.008/lib/MooseX/Meta/Method/Transactional.pm 2010-11-24 20:35:51.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/lib/MooseX/Meta/Method/Transactional.pm 2015-03-26 15:09:53.000000000 +0100 @@ -1,4 +1,8 @@ package MooseX::Meta::Method::Transactional; + +use strict; # keep CPANTS Kwalitee happy +use warnings; # keep CPANTS Kwalitee happy + use MooseX::Meta::Method::Transactional::Meta::Role; use Moose::Util::TypeConstraints; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/MooseX-TransactionalMethods-0.008/lib/MooseX/TransactionalMethods.pm new/MooseX-TransactionalMethods-0.009/lib/MooseX/TransactionalMethods.pm --- old/MooseX-TransactionalMethods-0.008/lib/MooseX/TransactionalMethods.pm 2010-11-29 13:46:13.000000000 +0100 +++ new/MooseX-TransactionalMethods-0.009/lib/MooseX/TransactionalMethods.pm 2015-03-26 18:12:56.000000000 +0100 @@ -4,7 +4,7 @@ use aliased 'MooseX::Meta::Method::Transactional'; use Sub::Name; -our $VERSION = 0.008; +our $VERSION = 0.009; Moose::Exporter->setup_import_methods ( with_meta => [ 'transactional' ],