r2246 - in packages/libmodule-install-perl/trunk: . debian
inc/Module inc/Module/Install lib/Module lib/Module/Install
lib/Module/Install/Admin lib/Module/Install/Makefile
Krzysztof Krzyzaniak
eloy at costa.debian.org
Mon Feb 27 08:53:04 UTC 2006
Author: eloy
Date: 2006-02-27 08:52:29 +0000 (Mon, 27 Feb 2006)
New Revision: 2246
Added:
packages/libmodule-install-perl/trunk/lib/Module/Install/Deprecated.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Philosophy.pod
Removed:
packages/libmodule-install-perl/trunk/lib/Module/Install-Philosophy.pod
Modified:
packages/libmodule-install-perl/trunk/Changes
packages/libmodule-install-perl/trunk/MANIFEST
packages/libmodule-install-perl/trunk/META.yml
packages/libmodule-install-perl/trunk/Makefile.PL
packages/libmodule-install-perl/trunk/debian/changelog
packages/libmodule-install-perl/trunk/debian/control
packages/libmodule-install-perl/trunk/inc/Module/AutoInstall.pm
packages/libmodule-install-perl/trunk/inc/Module/Install.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/AutoInstall.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Base.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Can.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Fetch.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Include.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Makefile.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Metadata.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/Win32.pm
packages/libmodule-install-perl/trunk/inc/Module/Install/WriteAll.pm
packages/libmodule-install-perl/trunk/lib/Module/AutoInstall.pm
packages/libmodule-install-perl/trunk/lib/Module/Install.pm
packages/libmodule-install-perl/trunk/lib/Module/Install.pod
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Bundle.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Find.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Include.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Makefile.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Manifest.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Metadata.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/ScanDeps.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/WriteAll.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/AutoInstall.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Base.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Build.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Bundle.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Can.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Compiler.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/External.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Fetch.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Include.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Inline.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/MakeMaker.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Name.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Version.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Metadata.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/PAR.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Run.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Scripts.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Share.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/Win32.pm
packages/libmodule-install-perl/trunk/lib/Module/Install/WriteAll.pm
Log:
eloy: new upstream release
Modified: packages/libmodule-install-perl/trunk/Changes
===================================================================
--- packages/libmodule-install-perl/trunk/Changes 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/Changes 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,5 +1,60 @@
-[Changes for 0.56 - ]
+[Changes for 0.57 - 2006-02-23]
+* Fixed a bug where a misnamed hash key was making the extensions
+ fruitlessly reload (or at least try to reload) every command call.
+
+* Fixed a pod bug for the requires_external_bin head2
+
+* Because external deps will need versioning eventually, we can
+ never provide a hash to requires_external, and so it's really
+ just supurfluous and invites more bugs. Removed.
+
+* Experimentally added support for the META.yaml dynamic_config flag.
+ We don't set ANY default value, because of a lack of clarity. It is
+ undocumented in the META.yaml spec, but false in Module::Build, which
+ is really really bad, as it leads to falsely assuming dynamic
+ Makefile.PLs are static when no dynamic_config is provided.
+
+ Personally, I think it should be static_config anyway, and we may well
+ change it to be that anyway.
+
+* Added support for requires_external_cc (requires a C compiler) that will
+ integrate with whatever central method we use later to signal to
+ whatever is calling Makefile.PL that there is a missing external
+ dependency. This will also be called by other methods if there is an
+ implicit dependency.
+
+* Synchronised all the module versions to all be 0.57.
+ This will be used a few versions down the line to add integrity testing
+ of Module::Install's own extension loading process.
+
+* Added a $VERSION and C<use strict> to the extensions that didn't have
+ one or both of the two already.
+
+* Fixed a number of minor bugs discovered after turning on C<use strict>.
+
+* Very carefully beginning to clean up some of the code so it's much more
+ boring (i.e. maintainable).
+
+* Changed recursion to always preference the installer we are currently
+ running under. So use CPAN.pm in CPAN.pm, and CPANPLUS in CPANPLUS.
+ This simplifies anti-dupe recursion algorithms, and dramatically
+ reduces memory use under CPAN.pm.
+
+* Documented the install_script command
+
+* Caught _install_cpanplus happily passing completely illegal CPAN.pm
+ config params to CPANPLUS, and worse, eval-wrapping the set_conf so
+ it could happily ignore errors.
+ Added _cpanplus_config to try and auto-convert CPAN config params to
+ CPANPLUS, and die if we can't. Add more translators as needed.
+
+* Moved the deprecated commands into their own module
+ Module::Install::Deprecated to stop them being included and reduce
+ package bloat.
+
+[Changes for 0.56 - 2006-02-12]
+
* Added experimental support for requires_external_bin to forcefully
require the installation of a script or command.
Modified: packages/libmodule-install-perl/trunk/MANIFEST
===================================================================
--- packages/libmodule-install-perl/trunk/MANIFEST 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/MANIFEST 2006-02-27 08:52:29 UTC (rev 2246)
@@ -12,7 +12,6 @@
inc/Module/Install/WriteAll.pm
lib/inc/Module/Install.pm
lib/Module/AutoInstall.pm
-lib/Module/Install-Philosophy.pod
lib/Module/Install.pm
lib/Module/Install.pod
lib/Module/Install/Admin.pm
@@ -30,6 +29,7 @@
lib/Module/Install/Bundle.pm
lib/Module/Install/Can.pm
lib/Module/Install/Compiler.pm
+lib/Module/Install/Deprecated.pm
lib/Module/Install/External.pm
lib/Module/Install/Fetch.pm
lib/Module/Install/Include.pm
@@ -40,6 +40,7 @@
lib/Module/Install/MakeMaker.pm
lib/Module/Install/Metadata.pm
lib/Module/Install/PAR.pm
+lib/Module/Install/Philosophy.pod
lib/Module/Install/Run.pm
lib/Module/Install/Scripts.pm
lib/Module/Install/Share.pm
Modified: packages/libmodule-install-perl/trunk/META.yml
===================================================================
--- packages/libmodule-install-perl/trunk/META.yml 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/META.yml 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,106 +4,116 @@
- example
- inc
- t
-generated_by: Module::Install version 0.56
+generated_by: Module::Install version 0.57
distribution_type: module
-version: 0.56
+version: 0.57
name: Module-Install
author: Audrey Tang <autrijus at autrijus.org>
license: perl
provides:
Module::Install::Fetch:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Fetch.pm
+ Module::Install::Deprecated:
+ version: 0.57
+ file: lib/Module/Install/Deprecated.pm
Module::Install::Bundle:
- version: 0.04
+ version: 0.57
file: lib/Module/Install/Bundle.pm
Module::Install::Admin::Bundle:
- version: 0.04
+ version: 0.57
file: lib/Module/Install/Admin/Bundle.pm
Module::Install::MakeMaker:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/MakeMaker.pm
Module::Install::Inline:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Inline.pm
Module::Install::External:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/External.pm
Module::Install::PAR:
+ version: 0.57
file: lib/Module/Install/PAR.pm
Module::Install::Include:
+ version: 0.57
file: lib/Module/Install/Include.pm
Module::Install::Build:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Build.pm
Module::Install::Admin::ScanDeps:
+ version: 0.57
file: lib/Module/Install/Admin/ScanDeps.pm
Module::Install::Admin::Manifest:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Admin/Manifest.pm
Module::Install::Admin:
- version: 0.56
+ version: 0.57
file: lib/Module/Install/Admin.pm
Module::Install::Base::FakeAdmin:
+ version: 0.57
file: lib/Module/Install/Base.pm
Module::Install::Metadata:
- version: 0.06
+ version: 0.57
file: lib/Module/Install/Metadata.pm
Module::Install::Makefile:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Makefile.pm
+ inc::Module::Install:
+ file: lib/inc/Module/Install.pm
Module::Install::Admin::WriteAll:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Admin/WriteAll.pm
- inc::Module::Install:
- file: lib/inc/Module/Install.pm
Module::Install::Base:
+ version: 0.57
file: lib/Module/Install/Base.pm
Module::Install::Admin::Find:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Admin/Find.pm
Module::Install::Makefile::Version:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Makefile/Version.pm
Module::Install:
- version: 0.56
+ version: 0.57
file: lib/Module/Install.pm
Module::Install::Win32:
- version: 0.02
+ version: 0.57
file: lib/Module/Install/Win32.pm
Module::Install::Admin::Makefile:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Admin/Makefile.pm
Module::Install::Admin::Metadata:
- version: 0.04
+ version: 0.57
file: lib/Module/Install/Admin/Metadata.pm
Module::Install::Makefile::Name:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Makefile/Name.pm
Module::AutoInstall:
version: 1.01
file: lib/Module/AutoInstall.pm
Module::Install::Can:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Can.pm
Module::Install::AutoInstall:
+ version: 0.57
file: lib/Module/Install/AutoInstall.pm
Module::Install::Run:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Run.pm
Module::Install::Admin::Include:
- version: 0.02
+ version: 0.57
file: lib/Module/Install/Admin/Include.pm
Module::Install::Scripts:
- version: 0.02
+ version: 0.57
file: lib/Module/Install/Scripts.pm
Module::Install::WriteAll:
+ version: 0.57
file: lib/Module/Install/WriteAll.pm
Module::Install::Compiler:
- version: 0.01
+ version: 0.57
file: lib/Module/Install/Compiler.pm
Module::Install::Share:
- version: 0.02
+ version: 0.57
file: lib/Module/Install/Share.pm
requires:
perl: 5.004
Modified: packages/libmodule-install-perl/trunk/Makefile.PL
===================================================================
--- packages/libmodule-install-perl/trunk/Makefile.PL 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/Makefile.PL 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,6 +4,7 @@
use lib 'lib'; # NOTE: Module::Install's Makefile.PL needs this statement
# to bootstrap itself. Other module distributions using
# Module::Install do not need it.
+
use inc::Module::Install;
name 'Module-Install';
Modified: packages/libmodule-install-perl/trunk/debian/changelog
===================================================================
--- packages/libmodule-install-perl/trunk/debian/changelog 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/debian/changelog 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,3 +1,10 @@
+libmodule-install-perl (0.57-1) unstable; urgency=low
+
+ * New upstream release
+ * debian/control - debhelper moved to Build-Depends
+
+ -- Krzysztof Krzyzaniak (eloy) <eloy at debian.org> Mon, 27 Feb 2006 09:50:11 +0100
+
libmodule-install-perl (0.56-1) unstable; urgency=low
* New upstream release
Modified: packages/libmodule-install-perl/trunk/debian/control
===================================================================
--- packages/libmodule-install-perl/trunk/debian/control 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/debian/control 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,7 +1,8 @@
Source: libmodule-install-perl
Section: perl
Priority: optional
-Build-Depends-Indep: perl (>= 5.8.0-7), debhelper (>= 4.0.2), libmodule-scandeps-perl, libpar-dist-perl, libarchive-tar-perl, libextutils-parsexs-perl, libmodule-build-perl, libalgorithm-diff-perl
+Build-Depends: debhelper (>= 4.0.2)
+Build-Depends-Indep: perl (>= 5.8.0-7), libmodule-scandeps-perl, libpar-dist-perl, libarchive-tar-perl, libextutils-parsexs-perl, libmodule-build-perl, libalgorithm-diff-perl
Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
Uploaders: Bastian Blank <waldi at debian.org>, Krzysztof Krzyzaniak (eloy) <eloy at debian.org>
Standards-Version: 3.6.2
Modified: packages/libmodule-install-perl/trunk/inc/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/AutoInstall.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/AutoInstall.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -6,7 +6,7 @@
use Cwd ();
use ExtUtils::MakeMaker ();
-#line 216
+#line 218
# special map on pre-defined feature sets
my %FeatureMap = (
@@ -88,7 +88,7 @@
# the workhorse
sub import {
my $class = shift;
- my @args = @_ or return;
+ my @args = @_ or return;
my $core_all;
print "*** $class version " . $class->VERSION . "\n";
@@ -234,22 +234,25 @@
# CPAN.pm is non-reentrant, so check if we're under it and have no CPANPLUS
sub _check_lock {
return unless @Missing;
- return if _has_cpanplus();
+ _load_cpan();
- require CPAN;
- CPAN::Config->load;
+ # Find the CPAN lock-file
my $lock = MM->catfile( $CPAN::Config->{cpan_home}, ".lock" );
+ return unless -f $lock;
- if ( -f $lock
- and open( LOCK, $lock )
- and ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
- and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore' )
- {
- print << '.';
+ # Check the lock
+ local *LOCK;
+ return unless open(LOCK, $lock);
+ if (
+ ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
+ and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore'
+ ) {
+ print <<'END_MESSAGE';
+
*** Since we're running under CPAN, I'll just let it take care
of the dependency's installation later.
-.
+END_MESSAGE
$UnderCPAN = 1;
}
@@ -294,10 +297,9 @@
@modules = @newmod;
}
- if ( _has_cpanplus() ) {
+ if ( ! $UnderCPAN and _has_cpanplus() ) {
_install_cpanplus( \@modules, \@config );
- }
- else {
+ } else {
_install_cpan( \@modules, \@config );
}
@@ -320,7 +322,7 @@
sub _install_cpanplus {
my @modules = @{ +shift };
- my @config = @{ +shift };
+ my @config = _cpanplus_config( @{ +shift } );
my $installed = 0;
require CPANPLUS::Backend;
@@ -333,21 +335,22 @@
# if we're root, set UNINST=1 to avoid trouble unless user asked for it.
my $makeflags = $conf->get_conf('makeflags') || '';
if ( UNIVERSAL::isa( $makeflags, 'HASH' ) ) {
-
# 0.03+ uses a hashref here
$makeflags->{UNINST} = 1 unless exists $makeflags->{UNINST};
- }
- else {
+ } else {
# 0.02 and below uses a scalar
$makeflags = join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+
}
$conf->set_conf( makeflags => $makeflags );
$conf->set_conf( prereqs => 1 );
+
+
while ( my ( $key, $val ) = splice( @config, 0, 2 ) ) {
- eval { $conf->set_conf( $key, $val ) };
+ $conf->set_conf( $key, $val );
}
my $modtree = $cp->module_tree;
@@ -372,15 +375,13 @@
if ( $rv and ( $rv->{ $obj->{module} } or $rv->{ok} ) ) {
print "*** $pkg successfully installed.\n";
$success = 1;
- }
- else {
+ } else {
print "*** $pkg installation cancelled.\n";
$success = 0;
}
$installed += $success;
- }
- else {
+ } else {
print << ".";
*** Could not find a version $ver or above for $pkg; skipping.
.
@@ -392,14 +393,34 @@
return $installed;
}
+sub _cpanplus_config {
+ my @config = ();
+ while ( @_ ) {
+ my ($key, $value) = (shift(), shift());
+ if ( $key eq 'prerequisites_policy' ) {
+ if ( $value eq 'follow' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_INSTALL();
+ } elsif ( $value eq 'ask' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_ASK();
+ } elsif ( $value eq 'ignore' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_IGNORE();
+ } else {
+ die "*** Cannot convert option $key = '$value' to CPANPLUS version.\n";
+ }
+ } else {
+ die "*** Cannot convert option $key to CPANPLUS version.\n";
+ }
+ }
+ return @config;
+}
+
sub _install_cpan {
my @modules = @{ +shift };
my @config = @{ +shift };
my $installed = 0;
my %args;
- require CPAN;
- CPAN::Config->load;
+ _load_cpan();
require Config;
if (CPAN->VERSION < 1.80) {
@@ -593,6 +614,19 @@
return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
}
+# Load CPAN.pm and it's configuration
+sub _load_cpan {
+ return if $CPAN::VERSION;
+ require CPAN;
+ if ( $CPAN::HandleConfig::VERSION ) {
+ # Newer versions of CPAN have a HandleConfig module
+ CPAN::HandleConfig->load;
+ } else {
+ # Older versions had the load method in Config directly
+ CPAN::Config->load;
+ }
+}
+
# compare two versions, either use Sort::Versions or plain comparison
sub _version_check {
my ( $cur, $min ) = @_;
@@ -713,4 +747,4 @@
__END__
-#line 943
+#line 979
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/AutoInstall.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/AutoInstall.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,6 +4,10 @@
use Module::Install::Base;
@ISA = qw{Module::Install::Base};
+$VERSION = '0.57';
+
+use strict;
+
sub AutoInstall { $_[0] }
sub run {
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Base.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Base.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Base.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,41 +1,45 @@
#line 1 "inc/Module/Install/Base.pm - lib/Module/Install/Base.pm"
package Module::Install::Base;
+$VERSION = '0.57';
+
# Suspend handler for "redefined" warnings
BEGIN {
my $w = $SIG{__WARN__};
$SIG{__WARN__} = sub { $w };
}
-#line 36
+### This is the ONLY module that shouldn't have strict on
+# use strict;
+#line 41
+
sub new {
my ($class, %args) = @_;
- foreach my $method (qw(call load)) {
+ foreach my $method ( qw(call load) ) {
*{"$class\::$method"} = sub {
- +shift->_top->$method(@_);
+ shift()->_top->$method(@_);
} unless defined &{"$class\::$method"};
}
- bless(\%args, $class);
+ bless( \%args, $class );
}
-#line 56
+#line 61
sub AUTOLOAD {
my $self = shift;
-
local $@;
my $autoload = eval { $self->_top->autoload } or return;
goto &$autoload;
}
-#line 72
+#line 76
sub _top { $_[0]->{_top} }
-#line 85
+#line 89
sub admin {
$_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
@@ -63,4 +67,4 @@
1;
-#line 134
+#line 138
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Can.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Can.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Can.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,13 +4,16 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
use Config ();
-use File::Spec ();
use ExtUtils::MakeMaker ();
+# This may introduce a 5.005 dependency, or at the very least it may
+# not bootstrap properly under 5.004.
+use File::Spec ();
+
# check if we can load some module
sub can_use {
my ($self, $mod, $ver) = @_;
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Fetch.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Fetch.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Fetch.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,7 +4,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
sub get_file {
my ($self, %args) = @_;
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Include.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Include.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Include.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,9 +4,28 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-sub include { +shift->admin->include(@_) };
-sub include_deps { +shift->admin->include_deps(@_) };
-sub auto_include { +shift->admin->auto_include(@_) };
-sub auto_include_deps { +shift->admin->auto_include_deps(@_) };
-sub auto_include_dependent_dists { +shift->admin->auto_include_dependent_dists(@_) }
+$VERSION = '0.57';
+
+use strict;
+
+sub include {
+ shift()->admin->include(@_);
+}
+
+sub include_deps {
+ shift()->admin->include_deps(@_);
+}
+
+sub auto_include {
+ shift()->admin->auto_include(@_);
+}
+
+sub auto_include_deps {
+ shift()->admin->auto_include_deps(@_);
+}
+
+sub auto_include_dependent_dists {
+ shift()->admin->auto_include_dependent_dists(@_);
+}
+
1;
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Makefile.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Makefile.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,19 +1,19 @@
#line 1 "inc/Module/Install/Makefile.pm - lib/Module/Install/Makefile.pm"
package Module::Install::Makefile;
+use strict 'vars';
use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
+use ExtUtils::MakeMaker ();
-$VERSION = '0.01';
+use vars qw{$VERSION @ISA};
+BEGIN {
+ $VERSION = '0.57';
+ @ISA = qw{Module::Install::Base};
+}
-use strict 'vars';
-use vars '$VERSION';
-
-use ExtUtils::MakeMaker ();
-
sub Makefile { $_[0] }
-sub prompt {
+sub prompt {
shift;
goto &ExtUtils::MakeMaker::prompt;
}
@@ -25,8 +25,19 @@
$args;
}
+# For mm args that take multiple space-seperated args,
+# append an argument to the current list.
+sub makemaker_append {
+ my $self = shift;
+ my $name = shift;
+ my $args = $self->makemaker_args;
+ $args->{name} = defined $args->{$name}
+ ? join( ' ', $args->{name}, @_ )
+ : join( ' ', @_ );
+}
+
sub build_subdirs {
- my $self = shift;
+ my $self = shift;
my $subdirs = $self->makemaker_args->{DIR} ||= [];
for my $subdir (@_) {
push @$subdirs, $subdir;
@@ -34,17 +45,17 @@
}
sub clean_files {
- my $self = shift;
+ my $self = shift;
my $clean = $self->makemaker_args->{clean} ||= {};
%$clean = (
%$clean,
- FILES => join(" ", grep length, $clean->{FILES}, @_),
+ FILES => join(' ', grep length, $clean->{FILES}, @_),
);
}
sub libs {
my $self = shift;
- my $libs = ref $_[0] ? shift : [shift];
+ my $libs = ref $_[0] ? shift : [ shift ];
$self->makemaker_args( LIBS => $libs );
}
@@ -124,7 +135,7 @@
local *MAKEFILE;
open MAKEFILE, '< Makefile' or die $!;
my $makefile = do { local $/; <MAKEFILE> };
- close MAKEFILE;
+ close MAKEFILE or die $!;
$makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /;
$makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g;
@@ -134,8 +145,10 @@
$makefile =~ s/^(PERL = .*)/$1 -Iinc/m;
open MAKEFILE, '> Makefile' or die $!;
- print MAKEFILE "$preamble$makefile$postamble";
- close MAKEFILE;
+ print MAKEFILE "$preamble$makefile$postamble" or die $!;
+ close MAKEFILE or die $!;
+
+ 1;
}
sub preamble {
@@ -146,7 +159,6 @@
sub postamble {
my ($self, $text) = @_;
-
$self->{postamble} ||= $self->admin->postamble;
$self->{postamble} .= $text if defined $text;
$self->{postamble}
@@ -156,4 +168,4 @@
__END__
-#line 288
+#line 295
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Metadata.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Metadata.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,7 +4,7 @@
use Module::Install::Base;
@ISA = qw{Module::Install::Base};
-$VERSION = '0.06';
+$VERSION = '0.57';
use strict 'vars';
@@ -60,6 +60,16 @@
return $self;
}
+sub dynamic_config {
+ my $self = shift;
+ unless ( @_ ) {
+ warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
+ return $self;
+ }
+ $self->{'values'}{'dynamic_config'} = $_[0] ? 1 : 0;
+ return $self;
+}
+
sub all_from {
my ( $self, $file ) = @_;
@@ -128,8 +138,7 @@
# The user used ->feature like ->features by passing in the second
# argument as a reference. Accomodate for that.
$mods = $_[0];
- }
- else {
+ } else {
$mods = \@_;
}
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/Win32.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/Win32.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/Win32.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,7 +4,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
+$VERSION = '0.57';
use strict;
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install/WriteAll.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install/WriteAll.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -4,6 +4,10 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
+$VERSION = '0.57';
+
+use strict;
+
sub WriteAll {
my $self = shift;
my %args = (
@@ -14,22 +18,20 @@
@_
);
- $self->sign(1) if $args{sign};
- $self->Meta->write if $args{meta};
+ $self->sign(1) if $args{sign};
+ $self->Meta->write if $args{meta};
$self->admin->WriteAll(%args) if $self->is_admin;
- if ($0 =~ /Build.PL$/i) {
+ if ( $0 =~ /Build.PL$/i ) {
$self->Build->write;
- }
- else {
+ } else {
$self->check_nmake if $args{check_nmake};
- $self->makemaker_args( PL_FILES => {} )
- unless $self->makemaker_args->{'PL_FILES'};
-
+ unless ( $self->makemaker_args->{'PL_FILES'} ) {
+ $self->makemaker_args( PL_FILES => {} );
+ }
if ($args{inline}) {
$self->Inline->write;
- }
- else {
+ } else {
$self->Makefile->write;
}
}
Modified: packages/libmodule-install-perl/trunk/inc/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/trunk/inc/Module/Install.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/inc/Module/Install.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,10 +3,16 @@
use 5.004;
use strict 'vars';
+
use vars qw{$VERSION};
BEGIN {
- # Don't forget to update Module::Install::Admin too!
- $VERSION = '0.56';
+ # All Module::Install core packages now require synchronised versions.
+ # This will be used to ensure we don't accidentally load old or
+ # different versions of modules.
+ # 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.57';
}
# inc::Module::Install must be loaded first
@@ -24,9 +30,9 @@
}
use Cwd ();
-use FindBin;
use File::Find ();
use File::Path ();
+use FindBin;
*inc::Module::Install::VERSION = *VERSION;
@inc::Module::Install::ISA = 'Module::Install';
@@ -74,11 +80,11 @@
sub preload {
my ($self) = @_;
- unless ( $self->{extentions} ) {
- $self->load_extensions(
- "$self->{prefix}/$self->{path}", $self
- );
- }
+ unless ( $self->{extensions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
my @exts = @{$self->{extensions}};
unless ( @exts ) {
@@ -86,18 +92,18 @@
@exts = $admin->load_all_extensions;
}
- my %seen_method;
+ my %seen;
foreach my $obj ( @exts ) {
while (my ($method, $glob) = each %{ref($obj) . '::'}) {
next unless defined *{$glob}{CODE};
next if $method =~ /^_/;
next if $method eq uc($method);
- $seen_method{$method}++;
+ $seen{$method}++;
}
}
my $caller = $self->_caller;
- foreach my $name (sort keys %seen_method) {
+ foreach my $name ( sort keys %seen ) {
*{"${caller}::$name"} = sub {
${"${caller}::AUTOLOAD"} = "${caller}::$name";
goto &{"${caller}::AUTOLOAD"};
@@ -126,7 +132,7 @@
$args{name} ||= $class;
$args{version} ||= $class->VERSION;
- unless ($args{path}) {
+ unless ( $args{path} ) {
$args{path} = $args{name};
$args{path} =~ s!::!/!g;
}
Modified: packages/libmodule-install-perl/trunk/lib/Module/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/AutoInstall.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/AutoInstall.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -14,27 +14,29 @@
In F<Makefile.PL>, with L<Module::Install> available on the author's system:
use inc::Module::Install;
-
- name ('Joe-Hacker');
- abstract ('Perl Interface to Joe Hacker');
- author ('Joe Hacker <joe at hacker.org>');
- include ('Module::AutoInstall');
-
- requires ('Module0'); # mandatory modules
- feature ('Feature1',
+
+ name 'Joe-Hacker';
+ abstract 'Perl Interface to Joe Hacker';
+ author 'Joe Hacker <joe at hacker.org>';
+ include 'Module::AutoInstall';
+
+ requires 'Module0'; # mandatory modules
+
+ feature 'Feature1',
-default => 0,
- 'Module2' => '0.1',
- );
- feature ('Feature2',
+ 'Module2' => '0.1';
+
+ feature 'Feature2',
-default => 0,
- 'Module3' => '1.0',
- );
+ 'Module3' => '1.0';
+
auto_install(
make_args => '--hello', # option(s) for CPAN::Config
force => 1, # pseudo-option to force install
do_once => 1, # skip previously failed modules
);
- &WriteAll;
+
+ WriteAll;
Invoking the resulting F<Makefile.PL>:
@@ -295,7 +297,7 @@
# the workhorse
sub import {
my $class = shift;
- my @args = @_ or return;
+ my @args = @_ or return;
my $core_all;
print "*** $class version " . $class->VERSION . "\n";
@@ -441,22 +443,25 @@
# CPAN.pm is non-reentrant, so check if we're under it and have no CPANPLUS
sub _check_lock {
return unless @Missing;
- return if _has_cpanplus();
+ _load_cpan();
- require CPAN;
- CPAN::Config->load;
+ # Find the CPAN lock-file
my $lock = MM->catfile( $CPAN::Config->{cpan_home}, ".lock" );
+ return unless -f $lock;
- if ( -f $lock
- and open( LOCK, $lock )
- and ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
- and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore' )
- {
- print << '.';
+ # Check the lock
+ local *LOCK;
+ return unless open(LOCK, $lock);
+ if (
+ ( $^O eq 'MSWin32' ? _under_cpan() : <LOCK> == getppid() )
+ and ( $CPAN::Config->{prerequisites_policy} || '' ) ne 'ignore'
+ ) {
+ print <<'END_MESSAGE';
+
*** Since we're running under CPAN, I'll just let it take care
of the dependency's installation later.
-.
+END_MESSAGE
$UnderCPAN = 1;
}
@@ -501,10 +506,9 @@
@modules = @newmod;
}
- if ( _has_cpanplus() ) {
+ if ( ! $UnderCPAN and _has_cpanplus() ) {
_install_cpanplus( \@modules, \@config );
- }
- else {
+ } else {
_install_cpan( \@modules, \@config );
}
@@ -527,7 +531,7 @@
sub _install_cpanplus {
my @modules = @{ +shift };
- my @config = @{ +shift };
+ my @config = _cpanplus_config( @{ +shift } );
my $installed = 0;
require CPANPLUS::Backend;
@@ -540,21 +544,22 @@
# if we're root, set UNINST=1 to avoid trouble unless user asked for it.
my $makeflags = $conf->get_conf('makeflags') || '';
if ( UNIVERSAL::isa( $makeflags, 'HASH' ) ) {
-
# 0.03+ uses a hashref here
$makeflags->{UNINST} = 1 unless exists $makeflags->{UNINST};
- }
- else {
+ } else {
# 0.02 and below uses a scalar
$makeflags = join( ' ', split( ' ', $makeflags ), 'UNINST=1' )
if ( $makeflags !~ /\bUNINST\b/ and eval qq{ $> eq '0' } );
+
}
$conf->set_conf( makeflags => $makeflags );
$conf->set_conf( prereqs => 1 );
+
+
while ( my ( $key, $val ) = splice( @config, 0, 2 ) ) {
- eval { $conf->set_conf( $key, $val ) };
+ $conf->set_conf( $key, $val );
}
my $modtree = $cp->module_tree;
@@ -579,15 +584,13 @@
if ( $rv and ( $rv->{ $obj->{module} } or $rv->{ok} ) ) {
print "*** $pkg successfully installed.\n";
$success = 1;
- }
- else {
+ } else {
print "*** $pkg installation cancelled.\n";
$success = 0;
}
$installed += $success;
- }
- else {
+ } else {
print << ".";
*** Could not find a version $ver or above for $pkg; skipping.
.
@@ -599,14 +602,34 @@
return $installed;
}
+sub _cpanplus_config {
+ my @config = ();
+ while ( @_ ) {
+ my ($key, $value) = (shift(), shift());
+ if ( $key eq 'prerequisites_policy' ) {
+ if ( $value eq 'follow' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_INSTALL();
+ } elsif ( $value eq 'ask' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_ASK();
+ } elsif ( $value eq 'ignore' ) {
+ $value = CPANPLUS::Internals::Constants::PREREQ_IGNORE();
+ } else {
+ die "*** Cannot convert option $key = '$value' to CPANPLUS version.\n";
+ }
+ } else {
+ die "*** Cannot convert option $key to CPANPLUS version.\n";
+ }
+ }
+ return @config;
+}
+
sub _install_cpan {
my @modules = @{ +shift };
my @config = @{ +shift };
my $installed = 0;
my %args;
- require CPAN;
- CPAN::Config->load;
+ _load_cpan();
require Config;
if (CPAN->VERSION < 1.80) {
@@ -800,6 +823,19 @@
return eval { require $file; $mod->VERSION } || ( $@ ? undef: 0 );
}
+# Load CPAN.pm and it's configuration
+sub _load_cpan {
+ return if $CPAN::VERSION;
+ require CPAN;
+ if ( $CPAN::HandleConfig::VERSION ) {
+ # Newer versions of CPAN have a HandleConfig module
+ CPAN::HandleConfig->load;
+ } else {
+ # Older versions had the load method in Config directly
+ CPAN::Config->load;
+ }
+}
+
# compare two versions, either use Sort::Versions or plain comparison
sub _version_check {
my ( $cur, $min ) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/AutoInstall.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Bundle.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Bundle.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Bundle.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.04';
+$VERSION = '0.57';
use strict;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Bundle.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Find.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Find.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Find.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
use File::Find ();
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Find.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Include.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Include.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Include.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
+$VERSION = '0.57';
sub include {
my ( $self, $pattern ) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Include.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Makefile.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Makefile.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict 'vars';
@@ -11,11 +11,11 @@
sub postamble {
my ($self, $text) = @_;
- my $class = ref($self);
- my $top_class = ref($self->_top);
+ my $class = ref($self);
+ my $top_class = ref($self->_top);
my $admin_class = join('::', @{$self->_top}{qw(name dispatch)});
- $self->{postamble} ||= << "END";
+ $self->{postamble} ||= << "END_MAKEFILE";
# --- $class section:
realclean purge ::
@@ -34,7 +34,8 @@
distsign ::
\tcpansign -s
-END
+END_MAKEFILE
+
$self->{postamble} .= $text if defined $text;
$self->{postamble};
}
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Makefile.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Manifest.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Manifest.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Manifest.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
use Cwd;
@@ -15,7 +15,7 @@
my ($self, $distdir) = @_;
return if $self->check_manifest;
- print << "END";
+ print <<"END_MESSAGE";
It appears that your MANIFEST does not contain the same components that
are currently in the 'inc' directory.
@@ -25,7 +25,7 @@
Remember to use the MANIFEST.SKIP file to control things that should not
end up in your MANIFEST. See 'perldoc ExtUtils::Manifest' for details.
-END
+END_MESSAGE
return if $self->prompt(
'Do you *really* want to continue making a distribution?', 'n'
) =~ /^[Yy]/;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Manifest.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Metadata.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/Metadata.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = 'Module::Install::Base';
-$VERSION = '0.04';
+$VERSION = '0.57';
use strict;
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/ScanDeps.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/ScanDeps.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/ScanDeps.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,6 +3,10 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
+$VERSION = '0.57';
+
+use strict;
+
sub scan_dependencies {
my ($self, $pkg, $perl_version) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/ScanDeps.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/WriteAll.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/WriteAll.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
sub WriteAll {
my ($self, %args) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin/WriteAll.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Admin.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Admin.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Admin.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,6 +1,6 @@
package Module::Install::Admin;
-$VERSION = '0.56';
+$VERSION = '0.57';
@ISA = 'Module::Install';
use strict 'vars';
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/AutoInstall.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/AutoInstall.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/AutoInstall.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,6 +3,10 @@
use Module::Install::Base;
@ISA = qw{Module::Install::Base};
+$VERSION = '0.57';
+
+use strict;
+
sub AutoInstall { $_[0] }
sub run {
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/AutoInstall.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Base.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Base.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Base.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,11 +1,16 @@
package Module::Install::Base;
+$VERSION = '0.57';
+
# Suspend handler for "redefined" warnings
BEGIN {
my $w = $SIG{__WARN__};
$SIG{__WARN__} = sub { $w };
}
+### This is the ONLY module that shouldn't have strict on
+# use strict;
+
=pod
=head1 NAME
@@ -38,13 +43,13 @@
sub new {
my ($class, %args) = @_;
- foreach my $method (qw(call load)) {
+ foreach my $method ( qw(call load) ) {
*{"$class\::$method"} = sub {
- +shift->_top->$method(@_);
+ shift()->_top->$method(@_);
} unless defined &{"$class\::$method"};
}
- bless(\%args, $class);
+ bless( \%args, $class );
}
=pod
@@ -57,7 +62,6 @@
sub AUTOLOAD {
my $self = shift;
-
local $@;
my $autoload = eval { $self->_top->autoload } or return;
goto &$autoload;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Base.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Build.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Build.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Build.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Bundle.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Bundle.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Bundle.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.04';
+$VERSION = '0.57';
use strict;
use Cwd ();
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Bundle.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Can.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Can.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Can.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,13 +3,16 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
use Config ();
-use File::Spec ();
use ExtUtils::MakeMaker ();
+# This may introduce a 5.005 dependency, or at the very least it may
+# not bootstrap properly under 5.004.
+use File::Spec ();
+
# check if we can load some module
sub can_use {
my ($self, $mod, $ver) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Can.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Compiler.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Compiler.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Compiler.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,44 +1,45 @@
package Module::Install::Compiler;
+use strict;
use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
+use File::Basename ();
-$VERSION = '0.01';
+use vars qw{$VERSION @ISA};
+BEGIN {
+ $VERSION = '0.57';
+ @ISA = qw{Module::Install::Base};
+}
-use strict;
-use File::Basename ();
-
-sub c_files {
+sub cc_files {
+ require Config;
my $self = shift;
- require Config;
- my $_o = $Config::Config{_o};
$self->makemaker_args(
- OBJECT => join ' ', map { substr($_, 0, -2) . $_o } @_
+ OBJECT => join ' ', map { substr($_, 0, -2) . $Config::Config{_o} } @_
);
}
-sub inc_paths {
+sub cc_inc_paths {
my $self = shift;
$self->makemaker_args(
INC => join ' ', map { "-I$_" } @_
);
}
-sub lib_paths {
+sub cc_lib_paths {
my $self = shift;
$self->makemaker_args(
LIBS => join ' ', map { "-L$_" } @_
);
}
-sub lib_links {
+sub cc_lib_links {
my $self = shift;
$self->makemaker_args(
LIBS => join ' ', $self->makemaker_args->{LIBS}, map { "-l$_" } @_
);
}
-sub optimize_flags {
+sub cc_optimize_flags {
my $self = shift;
$self->makemaker_args(
OPTIMIZE => join ' ', @_
@@ -46,3 +47,55 @@
}
1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+Module::Install::Compiler - Module::Install commands for interacting with the C compiler
+
+=head1 SYNOPSIS
+
+ To be completed
+
+=head1 DESCRIPTION
+
+Many Perl modules that contains C and XS code have fiendishly complex
+F<Makefile.PL> files, because L<ExtUtils::MakeMaker> doesn't itself provide
+a huge amount of assistance and automation in this area.
+
+B<Module::Install::Compiler> provides a number of commands that take care
+of common utility tasks, and try to take some of intricacy out of creating
+C and XS modules.
+
+=head1 COMMANDS
+
+To be completed
+
+=head1 SEE ALSO
+
+L<Module::Install>, L<ExtUtils::MakeMaker>
+
+=head1 AUTHORS
+
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>
+
+Based on original works by Brian Ingerson E<lt>ingy at cpan.orgE<gt>
+
+Documentated and refactored by Adam Kennedy E<lt>adamk at cpan.orgE<gt>
+
+=head1 COPYRIGHT
+
+Copyright 2002, 2003, 2004, 2006 by
+Audrey Tang E<lt>autrijus at autrijus.orgE<gt>,
+Brian Ingerson E<lt>ingy at cpan.orgE<gt>,
+Adam Kennedy E<lt>adamk at cpan.orgE<gt>
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+See L<http://www.perl.com/perl/misc/Artistic.html>
+
+=cut
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Compiler.pm
___________________________________________________________________
Name: svn:executable
+ *
Copied: packages/libmodule-install-perl/trunk/lib/Module/Install/Deprecated.pm (from rev 2245, packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Deprecated.pm)
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/External.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/External.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/External.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -5,36 +5,34 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
-sub requires_external {
- my ($self, $type, @args) = @_;
+sub requires_external_cc {
+ my $self = shift;
- # Check the dependency type
- unless ( defined $type and ! ref $type ) {
- die "Did not provide an external dependency type";
+ # We need a C compiler, use the can_cc method for this
+ unless ( $self->can_cc ) {
+ print "Unresolvable missing external dependency.\n";
+ print "This package requires a C compiler.\n";
+ print STDERR "NA: Unable to build distribution on this platform.\n";
+ exit(255);
}
- unless ( $type =~ /^\w+$/ ) {
- die "Invalid external dependency type '$type'";
- }
- my $method = 'requires_external_' . $type;
- unless ( $self->can($method) ) {
- die "External dependency type '$type' is not implemented (yet)";
- }
- # Hand off to the specific method
- $self->$method(@args);
+ # Unlike some of the other modules, while we need to specify a
+ # C compiler as a dep, it needs to be a build-time dependency.
+
+ 1;
}
sub requires_external_bin {
my ($self, $bin, $version) = @_;
if ( $version ) {
- die "requires_external_bin does not support versions (yet)";
+ die "requires_external_bin does not support versions yet";
}
- # Load the can_run package early
+ # Load the package containing can_run early,
# to avoid breaking the message below.
$self->load('can_run');
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Fetch.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Fetch.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Fetch.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
sub get_file {
my ($self, %args) = @_;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Fetch.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Include.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Include.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Include.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,9 +3,28 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-sub include { +shift->admin->include(@_) };
-sub include_deps { +shift->admin->include_deps(@_) };
-sub auto_include { +shift->admin->auto_include(@_) };
-sub auto_include_deps { +shift->admin->auto_include_deps(@_) };
-sub auto_include_dependent_dists { +shift->admin->auto_include_dependent_dists(@_) }
+$VERSION = '0.57';
+
+use strict;
+
+sub include {
+ shift()->admin->include(@_);
+}
+
+sub include_deps {
+ shift()->admin->include_deps(@_);
+}
+
+sub auto_include {
+ shift()->admin->auto_include(@_);
+}
+
+sub auto_include_deps {
+ shift()->admin->auto_include_deps(@_);
+}
+
+sub auto_include_dependent_dists {
+ shift()->admin->auto_include_dependent_dists(@_);
+}
+
1;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Include.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Inline.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Inline.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Inline.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
@@ -18,10 +18,10 @@
my $version = $self->version
or die "Please set version() or version_from() before calling &Inline->write\n";
- $version =~ /^\d\.\d\d$/ or die << "END";
+ $version =~ /^\d\.\d\d$/ or die <<"END_MESSAGE";
Invalid version '$version' for $name.
Must be of the form '#.##'. (For instance '1.23')
-END
+END_MESSAGE
$self->clean_files('_Inline', "$object.inl");
$self->build_requires('Inline' => 0.44); # XXX: check for existing? yagni?
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Inline.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/MakeMaker.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/MakeMaker.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/MakeMaker.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use ExtUtils::MakeMaker ();
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/MakeMaker.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Name.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Name.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Name.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
@@ -28,10 +28,10 @@
return if $self->module_name;
- my $name = MM->guess_name or die <<"END";
+ my $name = MM->guess_name or die <<"END_MESSAGE";
Can't determine a NAME for this distribution.
Please use the 'name' function in Makefile.PL.
-END
+END_MESSAGE
$name =~ s/-/::/g;
$self->module_name($name);
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Name.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Version.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Version.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Version.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
use strict;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile/Version.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,18 +1,18 @@
package Module::Install::Makefile;
+use strict 'vars';
use Module::Install::Base;
- at ISA = qw(Module::Install::Base);
+use ExtUtils::MakeMaker ();
-$VERSION = '0.01';
+use vars qw{$VERSION @ISA};
+BEGIN {
+ $VERSION = '0.57';
+ @ISA = qw{Module::Install::Base};
+}
-use strict 'vars';
-use vars '$VERSION';
-
-use ExtUtils::MakeMaker ();
-
sub Makefile { $_[0] }
-sub prompt {
+sub prompt {
shift;
goto &ExtUtils::MakeMaker::prompt;
}
@@ -24,8 +24,19 @@
$args;
}
+# For mm args that take multiple space-seperated args,
+# append an argument to the current list.
+sub makemaker_append {
+ my $self = shift;
+ my $name = shift;
+ my $args = $self->makemaker_args;
+ $args->{name} = defined $args->{$name}
+ ? join( ' ', $args->{name}, @_ )
+ : join( ' ', @_ );
+}
+
sub build_subdirs {
- my $self = shift;
+ my $self = shift;
my $subdirs = $self->makemaker_args->{DIR} ||= [];
for my $subdir (@_) {
push @$subdirs, $subdir;
@@ -33,17 +44,17 @@
}
sub clean_files {
- my $self = shift;
+ my $self = shift;
my $clean = $self->makemaker_args->{clean} ||= {};
%$clean = (
%$clean,
- FILES => join(" ", grep length, $clean->{FILES}, @_),
+ FILES => join(' ', grep length, $clean->{FILES}, @_),
);
}
sub libs {
my $self = shift;
- my $libs = ref $_[0] ? shift : [shift];
+ my $libs = ref $_[0] ? shift : [ shift ];
$self->makemaker_args( LIBS => $libs );
}
@@ -123,7 +134,7 @@
local *MAKEFILE;
open MAKEFILE, '< Makefile' or die $!;
my $makefile = do { local $/; <MAKEFILE> };
- close MAKEFILE;
+ close MAKEFILE or die $!;
$makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /;
$makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g;
@@ -133,8 +144,10 @@
$makefile =~ s/^(PERL = .*)/$1 -Iinc/m;
open MAKEFILE, '> Makefile' or die $!;
- print MAKEFILE "$preamble$makefile$postamble";
- close MAKEFILE;
+ print MAKEFILE "$preamble$makefile$postamble" or die $!;
+ close MAKEFILE or die $!;
+
+ 1;
}
sub preamble {
@@ -145,7 +158,6 @@
sub postamble {
my ($self, $text) = @_;
-
$self->{postamble} ||= $self->admin->postamble;
$self->{postamble} .= $text if defined $text;
$self->{postamble}
@@ -159,11 +171,6 @@
Module::Install::MakeMaker - Extension Rules for ExtUtils::MakeMaker
-=head1 VERSION
-
-This document describes version 0.01 of Module::Install::MakeMaker, released
-March 1, 2003.
-
=head1 SYNOPSIS
In your F<Makefile.PL>:
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Makefile.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Metadata.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Metadata.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Metadata.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw{Module::Install::Base};
-$VERSION = '0.06';
+$VERSION = '0.57';
use strict 'vars';
@@ -59,6 +59,16 @@
return $self;
}
+sub dynamic_config {
+ my $self = shift;
+ unless ( @_ ) {
+ warn "You MUST provide an explicit true/false value to dynamic_config, skipping\n";
+ return $self;
+ }
+ $self->{'values'}{'dynamic_config'} = $_[0] ? 1 : 0;
+ return $self;
+}
+
sub all_from {
my ( $self, $file ) = @_;
@@ -127,8 +137,7 @@
# The user used ->feature like ->features by passing in the second
# argument as a reference. Accomodate for that.
$mods = $_[0];
- }
- else {
+ } else {
$mods = \@_;
}
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Metadata.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/PAR.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/PAR.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/PAR.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,30 +3,33 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
+$VERSION = '0.57';
+
+use strict;
+
sub par_base {
my ($self, $base, $file) = @_;
- my $class = ref($self);
+ my $class = ref($self);
my $inc_class = join('::', @{$self->_top}{qw(prefix name)});
my $ftp_base;
- if (defined $base and length $base) {
- if ($base =~ m!^(([A-Z])[A-Z])[-_A-Z]+\Z!) {
+ if ( defined $base and length $base ) {
+ if ( $base =~ m!^(([A-Z])[A-Z])[-_A-Z]+\Z! ) {
$self->{mailto} = "$base\@cpan.org";
$ftp_base = "ftp://ftp.cpan.org/pub/CPAN/authors/id/$2/$1/$base";
- $base = "http://www.cpan.org/authors/id/$2/$1/$base";
- }
- elsif ($base !~ m!^(\w+)://!) {
+ $base = "http://www.cpan.org/authors/id/$2/$1/$base";
+ } elsif ( $base !~ m!^(\w+)://! ) {
die "Cannot recognize path '$base'; please specify an URL or CPAN ID";
}
- $base .= '/' unless $base =~ m!/\Z!;
+ $base .= '/' unless $base =~ m!/\Z!;
$ftp_base .= '/' unless $ftp_base =~ m!/\Z!;
}
require Config;
my $suffix = "$Config::Config{archname}-$Config::Config{version}.par";
- unless ($file ||= $self->{file}) {
- my $name = $self->name or return;
+ unless ( $file ||= $self->{file} ) {
+ my $name = $self->name or return;
my $version = $self->version or return;
$name =~ s!::!-!g;
$self->{file} = $file = "$name-$version-$suffix";
@@ -36,15 +39,15 @@
$perl = Win32::GetShortPathName($perl)
if $perl =~ / / and defined &Win32::GetShortPathName;
- $self->preamble(<<"END") if $base;
+ $self->preamble(<<"END_MAKEFILE") if $base;
# --- $class section:
all ::
\t\@$perl -M$inc_class -e \"extract_par(q($file))\"
-END
+END_MAKEFILE
- $self->postamble(<<"END");
+ $self->postamble(<<"END_MAKEFILE");
# --- $class section:
$file: all test
@@ -56,11 +59,11 @@
par-upload :: $file
\tcpan-upload -verbose $file
-END
+END_MAKEFILE
- $self->{url} = $base;
+ $self->{url} = $base;
$self->{ftp_url} = $ftp_base;
- $self->{suffix} = $suffix;
+ $self->{suffix} = $suffix;
return $self;
}
@@ -68,7 +71,7 @@
sub fetch_par {
my ($self, $url, $file, $quiet) = @_;
$url = $self->{url} || $self->par_base($url)->{url};
- $ftp_url = $self->{ftp_url};
+ my $ftp_url = $self->{ftp_url};
$file ||= $self->{file};
return $file if -f $file or $self->get_file(
@@ -77,13 +80,13 @@
);
require Config;
- print << "END" if $self->{mailto} and !$quiet;
+ print <<"END_MESSAGE" if $self->{mailto} and ! $quiet;
*** No installation package available for your architecture.
However, you may wish to generate one with '$Config::Config{make} par' and send
it to <$self->{mailto}>, so other people on the same platform
can benefit from it.
*** Proceeding with normal installation...
-END
+END_MESSAGE
return;
}
@@ -91,14 +94,13 @@
my ($self, $file) = @_;
return unless -f $file;
- if (eval { require Archive::Zip; 1 }) {
+ if ( eval { require Archive::Zip; 1 } ) {
my $zip = Archive::Zip->new;
return unless $zip->read($file) == Archive::Zip::AZ_OK()
and $zip->extractTree('', 'blib/') == Archive::Zip::AZ_OK();
+ } elsif ( $self->can_run('unzip') ) {
+ return if system( unzip => $file, qw(-d blib) );
}
- elsif ($self->can_run('unzip')) {
- return if system(unzip => $file, qw(-d blib));
- }
local *PM_TO_BLIB;
open PM_TO_BLIB, '> pm_to_blib' or die $!;
@@ -114,7 +116,7 @@
return;
}
- return PAR::Dist::blib_to_par(dist => $file);
+ return PAR::Dist::blib_to_par( dist => $file );
}
1;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/PAR.pm
___________________________________________________________________
Name: svn:executable
+ *
Copied: packages/libmodule-install-perl/trunk/lib/Module/Install/Philosophy.pod (from rev 2245, packages/libmodule-install-perl/branches/upstream/current/lib/Module/Install/Philosophy.pod)
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Run.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Run.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Run.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.01';
+$VERSION = '0.57';
# eventually move the ipc::run / open3 stuff here.
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Run.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Scripts.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Scripts.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Scripts.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
+$VERSION = '0.57';
use strict;
use File::Basename ();
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Scripts.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Share.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Share.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Share.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
+$VERSION = '0.57';
use strict;
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/Win32.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/Win32.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/Win32.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,7 +3,7 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
-$VERSION = '0.02';
+$VERSION = '0.57';
use strict;
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/Win32.pm
___________________________________________________________________
Name: svn:executable
+ *
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install/WriteAll.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install/WriteAll.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install/WriteAll.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -3,6 +3,10 @@
use Module::Install::Base;
@ISA = qw(Module::Install::Base);
+$VERSION = '0.57';
+
+use strict;
+
sub WriteAll {
my $self = shift;
my %args = (
@@ -13,22 +17,20 @@
@_
);
- $self->sign(1) if $args{sign};
- $self->Meta->write if $args{meta};
+ $self->sign(1) if $args{sign};
+ $self->Meta->write if $args{meta};
$self->admin->WriteAll(%args) if $self->is_admin;
- if ($0 =~ /Build.PL$/i) {
+ if ( $0 =~ /Build.PL$/i ) {
$self->Build->write;
- }
- else {
+ } else {
$self->check_nmake if $args{check_nmake};
- $self->makemaker_args( PL_FILES => {} )
- unless $self->makemaker_args->{'PL_FILES'};
-
+ unless ( $self->makemaker_args->{'PL_FILES'} ) {
+ $self->makemaker_args( PL_FILES => {} );
+ }
if ($args{inline}) {
$self->Inline->write;
- }
- else {
+ } else {
$self->Makefile->write;
}
}
Property changes on: packages/libmodule-install-perl/trunk/lib/Module/Install/WriteAll.pm
___________________________________________________________________
Name: svn:executable
+ *
Deleted: packages/libmodule-install-perl/trunk/lib/Module/Install-Philosophy.pod
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install-Philosophy.pod 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install-Philosophy.pod 2006-02-27 08:52:29 UTC (rev 2246)
@@ -1,187 +0,0 @@
-=head1 NAME
-
-Module::Install-Philosophy - The idea behind Module::Install
-
-=head1 SYNOPSIS
-
-This document describes the personal philosophy behind the creation of
-B<CPAN::MakeMaker> (the predecessor of B<Module::Install>). The views
-expressed here belong to Brian Ingerson; if they are not of interest to
-you, you can safely ignore this document.
-
-=head1 I HAVE A DREAM
-
-I say to you today, my friends, that in spite of the difficulties and
-frustrations of the moment, I still have a dream. It is a dream deeply
-rooted in the Perl Module dream.
-
-I have a dream that one day this community will rise up and live out the
-true meaning of its creed: "We hold these truths to be self-evident:
-that all Perl authors are created equal."
-
-I have a dream that one day even the state of the C<CGI::> namespace, a
-desert state, sweltering with the heat of injustice and oppression, will
-be transformed into an oasis of freedom and justice.
-
-I have a dream that my four modules will one day live in an archive
-where they will not be judged by the number of their prerequisites but
-by the content of their source code.
-
-I have a dream today.
-
-=head1 DESCRIPTION
-
-The above is obviously a mutation of the monumental speech by great
-Martin Luther King (L<http://web66.coled.umn.edu/new/MLK/MLK.html>).
-While the contexts are vastly different, I feel that there are some
-serious parallelisms.
-
-The CPAN has become a place that is not free of injustice. This
-situation has arisen not out of directed oppression, but from a failure
-of our community to keep its tools sharp. It is the culmination of many
-small decisions made in the name of practicality. This is a sad state
-for an institution that was created to allow all interested people to
-contribute equally to the best of their ability.
-
-This assertion is rooted in my personal experience as an author. When I
-created my first Perl module, Inline.pm, I knew that I had done
-something important. But how was I to make a dent in vast Perl
-community?
-
-As a complete unknown in the Perl community, my voice did not travel
-far. I repeatedly tried to get even an acknowledgment from the gurus
-familiar with XS. No success. I resorted to sending messages with
-ridiculous subjects to C<modules at perl.org>.
-(L<http://www.xray.mpe.mpg.de/mailing-lists/modules/2000-08/msg00078.html>)
-No response. Through sheer determination and shameless self-promotion I
-eventually got the word out, and I hope the world is a slightly better
-place for it.
-
-Since then, Inline has won awards and I have had the privilege to meet almost
-all of Perl's finest. But I still remember the pain of starting out, and
-want to help invite more people into this wonderful world.
-
-One thing I have learned from experience is that the Perl community (and
-throw in the Python and Ruby people as well) is a small drop in the vast
-ocean of programming. It's a giant pot of Java out there; and a sea of
-C. Perl may not be the biggest fish, but with some care and cunning we
-could become a much bigger school.
-
-These are the current problems that I see with CPAN and the core modules:
-
-=over 4
-
-=item * New Modules don't help Older Perls
-
-If I were to guess what percent of all Perl5 installations were at the
-current release level (5.8.0 in October 2002) I would say 3-5%. That may
-even be generous. I'd say that over 40% of installations might still be
-at 5.005 or earlier.
-
-The biggest problem with adding a module to the core is that it only
-helps a small subset of Perl users for a long long time. Worse yet, a
-good module author will still probably avoid using the core additions as
-prerequisites, because they want their new module to work as well on
-5.005 as on 5.8.
-
-CPAN::MakeMaker should be able to help in this regard. For example,
-instead of putting Inline.pm into the core for 5.9, I can now
-effectively get it into the core for every version of Perl that
-Inline supports.
-
-=item * Author Exclusiveness
-
-Not just anybody can get a module into the core. It seems you have to
-know people in high places. If I were a brilliant new talent with a
-great new module, it would have a harder time getting the ear of the
-pumpking, then if I were, say, Damian Conway. In fact, I probably
-wouldn't even know where to start.
-
-=item * Reduced Competition
-
-One comment I've heard from some very good Perl programmers is
-"Everything important has already been done". Their feeling is that
-even though a module is suboptimal, it would be a waste of time to
-write a competing module. Who would use it instead of the one already
-in the core?
-
-When I write a competing module, I know that I have to make it at least
-twice as good as the existing one to even get noticed. That's not a bad
-thing, but should everybody be forced into that situation?
-
-For example, let's say that you have created a really useful CGI script.
-Let's also say that it makes use of your own B<CGI::Special> module,
-because B<CGI.pm> doesn't meet your needs. Even though your script might be
-generally useful and worth sharing, the fact that it requires a
-non-standard module can only negatively affect its acceptance. Trying to
-get general acceptance for the superior B<CGI::Special> module will be
-harder still.
-
-Core modules are assumed by the general public to be "Best of Breed".
-While this may be true for some modules at some point in time, it keeps
-talented people from attempting to "breed" something better.
-
-=item * Core Bloat
-
-Every time we add a module to the core it gets bigger and bigger. And we
-can't ever remove modules from the core, once they've been added.
-
-If I had my druthers, we'd remove all modules from the core that weren't
-necessary for either running Perl or installing modules. Of course, we'd
-need to set things up so that installing modules was so easy, that it
-could be done on the fly if necessary. Is this easily accomplishable?
-Nope. Is it impossible? Nope. We have the best language in the world to
-help us do it!
-
-=item * Maintenance Bitrot
-
-Believe it or not, Perl authors can sometimes acquire a "Life Beyond
-Perl". They get families or new hobbies or even hit by a bus. (This
-would be a "Death Beyond Perl".) The fact is, that once somebody writes
-a piece of code and shares it with the world, they are expected to
-maintain it for all time.
-
-That is being generous. There are others that think that once their
-module has become popular or made it into the core, they don't need to
-keep fixing and improving it. I have personally been guilty of this sin.
-
-And then there's the Damian Conway Effect. This plagues the exceptional
-authors who are so innovative and prolific they simply don't have time
-to maintain everything they have written.
-
-=back
-
-I initially formalized these opinions at the YAPC (Yet Another Perl
-Conference) in June 2001. Since then I have been trying to think of
-technological solutions to fix these social problems.
-
-One idea was dubbed NAPC. NAPC is CPAN backwards. It is a large system
-of precompiled modules that can be installed on the fly, with the goal
-of reducing the number of modules in the core. NAPC hasn't got started
-yet. I'd still like to do it someday, but it's a big problem with a lot
-of issues.
-
-B<CPAN::MakeMaker> (and now B<Module::Install>) on the other hand, is
-simple and ultimately flexible. It should work with all of the existing
-CPAN processes without requiring any changes from them. And new features
-can be continuously added. Even though it doesn't scratch all of my
-philosophical CPAN itches, it's a good start.
-
-=head1 CONCLUSION
-
-This is all just food for thought. Take it with a pinch of salt.
-
-=head1 AUTHOR
-
-Brian Ingerson E<lt>INGY at cpan.orgE<gt>
-
-=head1 COPYRIGHT
-
-Copyright (c) 2002. Brian Ingerson. All rights reserved.
-
-This document is free documentation; you can redistribute it and/or
-modify it under the same terms as Perl itself.
-
-See L<http://www.perl.com/perl/misc/Artistic.html>
-
-=cut
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install.pm
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install.pm 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install.pm 2006-02-27 08:52:29 UTC (rev 2246)
@@ -2,10 +2,16 @@
use 5.004;
use strict 'vars';
+
use vars qw{$VERSION};
BEGIN {
- # Don't forget to update Module::Install::Admin too!
- $VERSION = '0.56';
+ # All Module::Install core packages now require synchronised versions.
+ # This will be used to ensure we don't accidentally load old or
+ # different versions of modules.
+ # 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.57';
}
# inc::Module::Install must be loaded first
@@ -23,9 +29,9 @@
}
use Cwd ();
-use FindBin;
use File::Find ();
use File::Path ();
+use FindBin;
*inc::Module::Install::VERSION = *VERSION;
@inc::Module::Install::ISA = 'Module::Install';
@@ -73,11 +79,11 @@
sub preload {
my ($self) = @_;
- unless ( $self->{extentions} ) {
- $self->load_extensions(
- "$self->{prefix}/$self->{path}", $self
- );
- }
+ unless ( $self->{extensions} ) {
+ $self->load_extensions(
+ "$self->{prefix}/$self->{path}", $self
+ );
+ }
my @exts = @{$self->{extensions}};
unless ( @exts ) {
@@ -85,18 +91,18 @@
@exts = $admin->load_all_extensions;
}
- my %seen_method;
+ my %seen;
foreach my $obj ( @exts ) {
while (my ($method, $glob) = each %{ref($obj) . '::'}) {
next unless defined *{$glob}{CODE};
next if $method =~ /^_/;
next if $method eq uc($method);
- $seen_method{$method}++;
+ $seen{$method}++;
}
}
my $caller = $self->_caller;
- foreach my $name (sort keys %seen_method) {
+ foreach my $name ( sort keys %seen ) {
*{"${caller}::$name"} = sub {
${"${caller}::AUTOLOAD"} = "${caller}::$name";
goto &{"${caller}::AUTOLOAD"};
@@ -125,7 +131,7 @@
$args{name} ||= $class;
$args{version} ||= $class->VERSION;
- unless ($args{path}) {
+ unless ( $args{path} ) {
$args{path} = $args{name};
$args{path} =~ s!::!/!g;
}
Modified: packages/libmodule-install-perl/trunk/lib/Module/Install.pod
===================================================================
--- packages/libmodule-install-perl/trunk/lib/Module/Install.pod 2006-02-27 08:49:57 UTC (rev 2245)
+++ packages/libmodule-install-perl/trunk/lib/Module/Install.pod 2006-02-27 08:52:29 UTC (rev 2246)
@@ -16,26 +16,21 @@
# Load the Module::Install bundled in ./inc/
use inc::Module::Install;
- # The name of your distribution
+ # Define metadata
name 'Your-Module';
-
- # Get most of the details from the primary module
all_from 'lib/Your/Module.pm';
+ # Specific dependencies
requires 'Carp' => 0;
requires 'File::Spec' => '0.80';
-
build_requires 'Test::More' => '0.42';
-
recommends 'Your::OtherModule' => '0.01';
-
- # Do not index our example modules
+
no_index directory => 'demos';
- # Auto-install all dependencies from CPAN
- auto_install;
+ install_script 'bin/myscript';
- # Generate the Makefile
+ auto_install;
WriteAll;
Quickly upgrade a legacy L<ExtUtil::MakeMaker> installer:
@@ -108,7 +103,7 @@
(L<http://www.tpj.com/issues/>).
For a B<lot> more information, and some personal opinions on the module
-and its creation, see L<Module::Install-Philosophy>.
+and its creation, see L<Module::Install::Philosophy>.
=head1 COMMON COMMANDS
@@ -324,6 +319,44 @@
is done once by the packager, and so the C<build_requires> dependency
can be safely ignored by the binary package.
+=head2 requires_external_bin
+
+ requires_external_bin 'cvs';
+
+As part of its role as the dominant "glue" language, a lot of Perl
+modules run commands or programs on the host system.
+
+The C<requires_external_bin> command is used to verify that a particular
+command is available on the host system.
+
+Unlike a missing Perl module, a missing external binary is unresolvable
+at make-time, and so the F<Makefile.PL> run will abort with a "NA"
+(Not Applicable) result.
+
+In future, this command will also add additional information to the
+metadata for the dist, so that auto-packagers for particular operating
+system are more-easily able to auto-discover the appropriate non-Perl
+packages needed as a dependency.
+
+=head2 install_script
+
+ install_script 'bin/scriptname'
+
+The C<install_script> command provides support for the installation of
+scripts that will become available at the console on both Unix and
+Windows (by wrapping it up as a .bat file).
+
+Note that is it normal to B<not> put a .pl on the end of such scripts,
+so that they feel more natural when being used.
+
+In the example above, the F<bin/scriptname> program could be run after
+the installation just by doing the following.
+
+ > scriptname
+ Running scriptname 0.01...
+
+ >
+
=head2 no_index
no_index directory => 'examples';
@@ -347,25 +380,6 @@
To summarise, if you can see it on L<http://search.cpan.org/> and you
shouldn't be able to, you need a C<no_index> entry.
-head2 requires_external_bin
-
- requires_external_bin 'cvs';
-
-As part of its role as the dominant "glue" language, a lot of Perl
-modules run commands or programs on the host system.
-
-The C<requires_external_bin> command is used to verify that a particular
-command is available on the host system.
-
-Unlike a missing Perl module, a missing external binary is unresolvable
-at make-time, and so the F<Makefile.PL> run will abort with a "NA"
-(Not Applicable) result.
-
-In future, this command will also add additional information to the
-metadata for the dist, so that auto-packagers for particular operating
-system are more-easily able to auto-discover the appropriate non-Perl
-packages needed as a dependency.
-
=head2 WriteAll
The C<WriteAll> command is generally the last command; it writes out
@@ -613,6 +627,10 @@
installation tricks, you can create a specific module to abstract
away this complexity.
+=head2 Module::Install isn't at 1.00 yet, is it safe to use yet?
+
+...
+
=head1 COOKBOOK / EXAMPLES
The following are some real-life examples of F<Makefile.PL> files
@@ -656,7 +674,7 @@
=head1 SEE ALSO
-L<Module::Install-Philosophy>
+L<Module::Install::Philosophy>
L<inc::Module::Install>
@@ -668,52 +686,16 @@
L<Module::Install::Build>
-L<Module::Install::Directives>
-
-L<Module::Install::Fetch>
-
-L<Module::Install::Include>
-
L<Module::Install::MakeMaker>
-L<Module::Install::Makefile>
+L<Module::Install::Share>
-L<Module::Install::Makefile::CleanFiles>
-
-L<Module::Install::Makefile::Name>
-
-L<Module::Install::Makefile::Version>
-
-L<Module::Install::Metadata>
-
-L<Module::Install::PAR>
-
-L<Module::Install::Run>
-
-L<Module::Install::Scripts>
-
-L<Module::Install::Win32>
-
-L<Module::Install::WriteAll>
-
L<Module::Install::Admin>
-L<Module::Install::Admin::Bundle>
-
-L<Module::Install::Admin::Find>
-
L<Module::Install::Admin::Include>
-L<Module::Install::Admin::Makefile>
-
L<Module::Install::Admin::Manifest>
-L<Module::Install::Admin::Metadata>
-
-L<Module::Install::Admin::ScanDeps>
-
-L<Module::Install::Admin::WriteAll>
-
L<CPAN::MakeMaker>, L<Inline::MakeMaker>
L<ExtUtils::MakeMaker>, L<Module::Build>
More information about the Pkg-perl-cvs-commits
mailing list