[Bps-public-commit] r15954 - in SVN-Mirror/trunk: . inc/Module lib/SVN
clkao at bestpractical.com
clkao at bestpractical.com
Fri Sep 12 13:45:59 EDT 2008
Author: clkao
Date: Fri Sep 12 13:45:59 2008
New Revision: 15954
Removed:
SVN-Mirror/trunk/META.yml
SVN-Mirror/trunk/SIGNATURE
SVN-Mirror/trunk/inc/Module/Install/Scripts.pm
Modified:
SVN-Mirror/trunk/CHANGES
SVN-Mirror/trunk/MANIFEST
SVN-Mirror/trunk/Makefile.PL
SVN-Mirror/trunk/inc/Module/Install.pm
SVN-Mirror/trunk/inc/Module/Install/AutoInstall.pm
SVN-Mirror/trunk/inc/Module/Install/Base.pm
SVN-Mirror/trunk/inc/Module/Install/Can.pm
SVN-Mirror/trunk/inc/Module/Install/Fetch.pm
SVN-Mirror/trunk/inc/Module/Install/Include.pm
SVN-Mirror/trunk/inc/Module/Install/Makefile.pm
SVN-Mirror/trunk/inc/Module/Install/Metadata.pm
SVN-Mirror/trunk/inc/Module/Install/Win32.pm
SVN-Mirror/trunk/inc/Module/Install/WriteAll.pm
SVN-Mirror/trunk/lib/SVN/Mirror.pm
Log:
0.75
Modified: SVN-Mirror/trunk/CHANGES
==============================================================================
--- SVN-Mirror/trunk/CHANGES (original)
+++ SVN-Mirror/trunk/CHANGES Fri Sep 12 13:45:59 2008
@@ -1,3 +1,7 @@
+[Changes for 0.75 - Sep 13, 2008]
+
+* Modernize dist and fix signatures.
+
[Changes for 0.74 - June 1, 2008]
* Fix tests for svn 1.5.0.
Modified: SVN-Mirror/trunk/MANIFEST
==============================================================================
--- SVN-Mirror/trunk/MANIFEST (original)
+++ SVN-Mirror/trunk/MANIFEST Fri Sep 12 13:45:59 2008
@@ -1,7 +1,6 @@
inc/Module/Install.pm
inc/Module/Install/Metadata.pm
inc/Module/Install/Base.pm
-inc/Module/Install/Scripts.pm
inc/Module/Install/Makefile.pm
inc/Module/Install/Include.pm
inc/Module/Install/AutoInstall.pm
@@ -52,4 +51,3 @@
t/cvs-test-data/kuso/blah/Attic/zzzz,v
t/cvs-test-data/kuso/staticfile,v
t/cvs-test-data/kuso/addontrunk,v
-SIGNATURE Public-key signature (added by MakeMaker)
Modified: SVN-Mirror/trunk/Makefile.PL
==============================================================================
--- SVN-Mirror/trunk/Makefile.PL (original)
+++ SVN-Mirror/trunk/Makefile.PL Fri Sep 12 13:45:59 2008
@@ -30,8 +30,8 @@
include('ExtUtils::AutoInstall');
auto_install();
-
-WriteAll( sign => 1 );
+#sign(1);
+WriteAll( sign => 1);
die "SVN::Core $required_svn must be manually installed"
unless eval {require SVN::Core} && $SVN::Core::VERSION >= $required_svn;
Modified: SVN-Mirror/trunk/inc/Module/Install.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install.pm Fri Sep 12 13:45:59 2008
@@ -30,7 +30,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 = '0.74';
+ $VERSION = '0.77';
*inc::Module::Install::VERSION = *VERSION;
@inc::Module::Install::ISA = __PACKAGE__;
@@ -125,8 +125,10 @@
goto &$code unless $cwd eq $pwd;
}
$$sym =~ /([^:]+)$/ or die "Cannot autoload $who - $sym";
- unshift @_, ( $self, $1 );
- goto &{$self->can('call')} unless uc($1) eq $1;
+ unless ( uc($1) eq $1 ) {
+ unshift @_, ( $self, $1 );
+ goto &{$self->can('call')};
+ }
};
}
@@ -339,7 +341,10 @@
close FH or die "close($_[0]): $!";
}
-sub _version {
+# _version is for processing module versions (eg, 1.03_05) not
+# Perl versions (eg, 5.8.1).
+
+sub _version ($) {
my $s = shift || 0;
$s =~ s/^(\d+)\.?//;
my $l = $1 || 0;
@@ -348,6 +353,17 @@
return $l + 0;
}
+# Cloned from Params::Util::_CLASS
+sub _CLASS ($) {
+ (
+ defined $_[0]
+ and
+ ! ref $_[0]
+ and
+ $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*$/s
+ ) ? $_[0] : undef;
+}
+
1;
# Copyright 2008 Adam Kennedy.
Modified: SVN-Mirror/trunk/inc/Module/Install/AutoInstall.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/AutoInstall.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/AutoInstall.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
Modified: SVN-Mirror/trunk/inc/Module/Install/Base.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Base.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Base.pm Fri Sep 12 13:45:59 2008
@@ -1,7 +1,7 @@
#line 1
package Module::Install::Base;
-$VERSION = '0.74';
+$VERSION = '0.77';
# Suspend handler for "redefined" warnings
BEGIN {
@@ -45,6 +45,8 @@
$_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
}
+#line 101
+
sub is_admin {
$_[0]->admin->VERSION;
}
@@ -67,4 +69,4 @@
1;
-#line 138
+#line 146
Modified: SVN-Mirror/trunk/inc/Module/Install/Can.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Can.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Can.pm Fri Sep 12 13:45:59 2008
@@ -11,7 +11,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
@@ -39,6 +39,7 @@
return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
+ next if $dir eq '';
my $abs = File::Spec->catfile($dir, $_[1]);
return $abs if (-x $abs or $abs = MM->maybe_command($abs));
}
@@ -79,4 +80,4 @@
__END__
-#line 157
+#line 158
Modified: SVN-Mirror/trunk/inc/Module/Install/Fetch.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Fetch.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Fetch.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
Modified: SVN-Mirror/trunk/inc/Module/Install/Include.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Include.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Include.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
Modified: SVN-Mirror/trunk/inc/Module/Install/Makefile.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Makefile.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Makefile.pm Fri Sep 12 13:45:59 2008
@@ -7,7 +7,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
@@ -36,9 +36,9 @@
sub makemaker_args {
my $self = shift;
- my $args = ($self->{makemaker_args} ||= {});
- %$args = ( %$args, @_ ) if @_;
- $args;
+ my $args = ( $self->{makemaker_args} ||= {} );
+ %$args = ( %$args, @_ );
+ return $args;
}
# For mm args that take multiple space-seperated args,
@@ -110,13 +110,26 @@
$self->tests( join ' ', map { "$_/*.t" } sort keys %test_dir );
}
+sub sign {
+ my $self = shift;
+ return $self->{values}{sign} if defined wantarray and ! @_;
+ $self->{values}{sign} = ( @_ ? $_[0] : 1 );
+ return $self;
+}
+
sub write {
my $self = shift;
die "&Makefile->write() takes no arguments\n" if @_;
# Make sure we have a new enough
require ExtUtils::MakeMaker;
- $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION );
+
+ # 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.
+
+ $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ );
# Generate the
my $args = $self->makemaker_args;
@@ -175,7 +188,9 @@
my $user_preop = delete $args{dist}->{PREOP};
if (my $preop = $self->admin->preop($user_preop)) {
- $args{dist} = $preop;
+ foreach my $key ( keys %$preop ) {
+ $args{dist}->{$key} = $preop->{$key};
+ }
}
my $mm = ExtUtils::MakeMaker::WriteMakefile(%args);
@@ -242,4 +257,4 @@
__END__
-#line 371
+#line 386
Modified: SVN-Mirror/trunk/inc/Module/Install/Metadata.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Metadata.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Metadata.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION $ISCORE @ISA};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
$ISCORE = 1;
@ISA = qw{Module::Install::Base};
}
@@ -17,9 +17,7 @@
abstract
author
version
- license
distribution_type
- perl_version
tests
installdirs
};
@@ -30,13 +28,21 @@
requires
recommends
bundles
+ resources
+};
+
+my @resource_keys = qw{
+ homepage
+ bugtracker
+ repository
};
-sub Meta { shift }
-sub Meta_ScalarKeys { @scalar_keys }
-sub Meta_TupleKeys { @tuple_keys }
+sub Meta { shift }
+sub Meta_ScalarKeys { @scalar_keys }
+sub Meta_TupleKeys { @tuple_keys }
+sub Meta_ResourceKeys { @resource_keys }
-foreach my $key (@scalar_keys) {
+foreach my $key ( @scalar_keys ) {
*$key = sub {
my $self = shift;
return $self->{values}{$key} if defined wantarray and !@_;
@@ -45,12 +51,30 @@
};
}
+foreach my $key ( @resource_keys ) {
+ *$key = sub {
+ my $self = shift;
+ unless ( @_ ) {
+ return () unless $self->{values}{resources};
+ return map { $_->[1] }
+ grep { $_->[0] eq $key }
+ @{ $self->{values}{resources} };
+ }
+ return $self->{values}{resources}{$key} unless @_;
+ my $uri = shift or die(
+ "Did not provide a value to $key()"
+ );
+ $self->resources( $key => $uri );
+ return 1;
+ };
+}
+
sub requires {
my $self = shift;
while ( @_ ) {
my $module = shift or last;
my $version = shift || 0;
- push @{ $self->{values}->{requires} }, [ $module, $version ];
+ push @{ $self->{values}{requires} }, [ $module, $version ];
}
$self->{values}{requires};
}
@@ -60,7 +84,7 @@
while ( @_ ) {
my $module = shift or last;
my $version = shift || 0;
- push @{ $self->{values}->{build_requires} }, [ $module, $version ];
+ push @{ $self->{values}{build_requires} }, [ $module, $version ];
}
$self->{values}{build_requires};
}
@@ -70,7 +94,7 @@
while ( @_ ) {
my $module = shift or last;
my $version = shift || 0;
- push @{ $self->{values}->{configure_requires} }, [ $module, $version ];
+ push @{ $self->{values}{configure_requires} }, [ $module, $version ];
}
$self->{values}{configure_requires};
}
@@ -80,7 +104,7 @@
while ( @_ ) {
my $module = shift or last;
my $version = shift || 0;
- push @{ $self->{values}->{recommends} }, [ $module, $version ];
+ push @{ $self->{values}{recommends} }, [ $module, $version ];
}
$self->{values}{recommends};
}
@@ -90,11 +114,33 @@
while ( @_ ) {
my $module = shift or last;
my $version = shift || 0;
- push @{ $self->{values}->{bundles} }, [ $module, $version ];
+ push @{ $self->{values}{bundles} }, [ $module, $version ];
}
$self->{values}{bundles};
}
+# Resource handling
+my %lc_resource = map { $_ => 1 } qw{
+ homepage
+ license
+ bugtracker
+ repository
+};
+
+sub resources {
+ my $self = shift;
+ while ( @_ ) {
+ my $name = shift or last;
+ my $value = shift or next;
+ if ( $name eq lc $name and ! $lc_resource{$name} ) {
+ die("Unsupported reserved lowercase resource '$name'");
+ }
+ $self->{values}{resources} ||= [];
+ push @{ $self->{values}{resources} }, [ $name, $value ];
+ }
+ $self->{values}{resources};
+}
+
# Aliases for build_requires that will have alternative
# meanings in some future version of META.yml.
sub test_requires { shift->build_requires(@_) }
@@ -106,32 +152,68 @@
sub install_as_site { $_[0]->installdirs('site') }
sub install_as_vendor { $_[0]->installdirs('vendor') }
-sub sign {
- my $self = shift;
- return $self->{'values'}{'sign'} if defined wantarray and ! @_;
- $self->{'values'}{'sign'} = ( @_ ? $_[0] : 1 );
- return $self;
-}
-
sub dynamic_config {
my $self = shift;
unless ( @_ ) {
- warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
+ warn "You MUST provide an explicit true/false value to dynamic_config\n";
return $self;
}
$self->{values}{dynamic_config} = $_[0] ? 1 : 0;
- return $self;
+ return 1;
+}
+
+sub perl_version {
+ my $self = shift;
+ return $self->{values}{perl_version} unless @_;
+ my $version = shift or die(
+ "Did not provide a value to perl_version()"
+ );
+
+ # Convert triple-part versions (eg, 5.6.1 or 5.8.9) to
+ # numbers (eg, 5.006001 or 5.008009).
+
+ $version =~ s/^(\d+)\.(\d+)\.(\d+)$/sprintf("%d.%03d%03d",$1,$2,$3)/e;
+
+ $version =~ s/_.+$//;
+ $version = $version + 0; # Numify
+ unless ( $version >= 5.005 ) {
+ die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n";
+ }
+ $self->{values}{perl_version} = $version;
+ return 1;
+}
+
+sub license {
+ my $self = shift;
+ return $self->{values}{license} unless @_;
+ my $license = shift or die(
+ 'Did not provide a value to license()'
+ );
+ $self->{values}{license} = $license;
+
+ # Automatically fill in license URLs
+ if ( $license eq 'perl' ) {
+ $self->resources( license => 'http://dev.perl.org/licenses/' );
+ }
+
+ return 1;
}
sub all_from {
my ( $self, $file ) = @_;
unless ( defined($file) ) {
- my $name = $self->name
- or die "all_from called with no args without setting name() first";
+ my $name = $self->name or die(
+ "all_from called with no args without setting name() first"
+ );
$file = join('/', 'lib', split(/-/, $name)) . '.pm';
$file =~ s{.*/}{} unless -e $file;
- die "all_from: cannot find $file from $name" unless -e $file;
+ unless ( -e $file ) {
+ die("all_from cannot find $file from $name");
+ }
+ }
+ unless ( -f $file ) {
+ die("The path '$file' does not exist, or is not a file");
}
# Some methods pull from POD instead of code.
@@ -210,8 +292,8 @@
while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) {
$self->feature( $name, @$mods );
}
- return $self->{values}->{features}
- ? @{ $self->{values}->{features} }
+ return $self->{values}{features}
+ ? @{ $self->{values}{features} }
: ();
}
@@ -285,7 +367,7 @@
$self->module_name($module_name);
}
} else {
- die "Cannot determine name from $file\n";
+ die("Cannot determine name from $file\n");
}
}
@@ -344,8 +426,12 @@
my $license_text = $1;
my @phrases = (
'under the same (?:terms|license) as perl itself' => 'perl', 1,
+ 'GNU general public license' => 'gpl', 1,
'GNU public license' => 'gpl', 1,
+ 'GNU lesser general public license' => 'lgpl', 1,
'GNU lesser public license' => 'lgpl', 1,
+ 'GNU library general public license' => 'lgpl', 1,
+ 'GNU library public license' => 'lgpl', 1,
'BSD license' => 'bsd', 1,
'Artistic license' => 'artistic', 1,
'GPL' => 'gpl', 1,
@@ -371,6 +457,24 @@
return 'unknown';
}
+sub bugtracker_from {
+ my $self = shift;
+ my $content = Module::Install::_read($_[0]);
+ my @links = $content =~ m/L\<(http\:\/\/rt\.cpan\.org\/[^>]+)\>/g;
+ unless ( @links ) {
+ warn "Cannot determine bugtracker info from $_[0]\n";
+ return 0;
+ }
+ if ( @links > 1 ) {
+ warn "Found more than on rt.cpan.org link in $_[0]\n";
+ return 0;
+ }
+
+ # Set the bugtracker
+ bugtracker( $links[0] );
+ return 1;
+}
+
sub install_script {
my $self = shift;
my $args = $self->makemaker_args;
@@ -381,7 +485,7 @@
} elsif ( -d 'script' and -f "script/$_" ) {
push @$exe, "script/$_";
} else {
- die "Cannot find script '$_'";
+ die("Cannot find script '$_'");
}
}
}
Modified: SVN-Mirror/trunk/inc/Module/Install/Win32.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/Win32.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/Win32.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
Modified: SVN-Mirror/trunk/inc/Module/Install/WriteAll.pm
==============================================================================
--- SVN-Mirror/trunk/inc/Module/Install/WriteAll.pm (original)
+++ SVN-Mirror/trunk/inc/Module/Install/WriteAll.pm Fri Sep 12 13:45:59 2008
@@ -6,7 +6,7 @@
use vars qw{$VERSION @ISA $ISCORE};
BEGIN {
- $VERSION = '0.74';
+ $VERSION = '0.77';
@ISA = qw{Module::Install::Base};
$ISCORE = 1;
}
Modified: SVN-Mirror/trunk/lib/SVN/Mirror.pm
==============================================================================
--- SVN-Mirror/trunk/lib/SVN/Mirror.pm (original)
+++ SVN-Mirror/trunk/lib/SVN/Mirror.pm Fri Sep 12 13:45:59 2008
@@ -1,6 +1,6 @@
#!/usr/bin/perl
package SVN::Mirror;
-our $VERSION = '0.74';
+our $VERSION = '0.75';
use SVN::Core;
use SVN::Repos;
use SVN::Fs;
More information about the Bps-public-commit
mailing list