system($^X, '-MExtUtils::Install 1.43', '-e1');
my $eui = $? >> 8;
+ system($^X, '-MModule::Build 0.36', '-e1');
+ my $mb = $? >> 8;
+
system($^X, '-MCPAN 1.82', '-e1');
my $cpan = $? >> 8;
my $cpan_command = '';
- system($^X, '-MCPAN', '-e',
+ my $did_cpan_config = 0;
+ my $cpan_config_command =
'my $done; require ExtUtils::MakeMaker;
my $orig = ExtUtils::MakeMaker->can("prompt");
*ExtUtils::MakeMaker::prompt = sub ($;$) {
delete @{$CPAN::Config}{keys %$CPAN::Config};
$CPAN::Config->{urllist} = $save;
CPAN::Config->init;
- }'
- );
+ }';
$ENV{PERL_MM_USE_DEFAULT} = 1;
if ($eui) {
$cpan_command .= 'install("ExtUtils::Install"); ';
}
+ if ($mb) {
+ $cpan_command .= 'install("Module::Build"); ';
+ }
if ($cpan) {
$cpan_command .= 'force("install","CPAN"); ';
}
if(length $cpan_command) {
+ system($^X, '-MCPAN', '-e', $cpan_config_command);
+ $did_cpan_config++;
system($^X, '-MCPAN', '-e', $cpan_command);
}
if ($cpan) {
# if we call this code directly, the changes get written to
# $BOOTSTRAP/lib/perl5/CPAN/Config.pm, not where the user expects them to
# be in their ~/.cpan/CPAN/MyConfig.pm.
+ system($^X, '-MCPAN', '-e', $cpan_config_command)
+ unless $did_cpan_config;
system($^X, '-MCPAN',
'-e',
q[CPAN::HandleConfig->load;],
requires 'ExtUtils::MakeMaker' => '6.31'; # version INSTALL_BASE was added
requires 'ExtUtils::Install' => '1.43'; # ditto
-requires 'ExtUtils::CBuilder'; # this and ParseXS are needed for MB C_support
-requires 'ExtUtils::ParseXS';
-requires 'Module::Build' => '0.28'; # lib -> lib/perl5 change
+requires 'Module::Build' => '0.36'; # PERL_MB_OPT
my $required_CPAN = '1.82';
requires 'CPAN' => $required_CPAN; # sudo support + CPAN::HandleConfig
# It will already be installed by the time we reach here if bootstrapping,
# otherwise, if we're running from CPAN then it will be installed soon
# enough, and we'll come back here..
- if (!$@) {
- CPAN::HandleConfig->load;
- for my $eumm_setting ( qw/makepl_arg make_install_arg/ ) {
- if ($CPAN::Config->{$eumm_setting} =~ /(?:PREFIX|INSTALL_BASE)/) {
- die "Possibly invalid config detected in $eumm_setting: " . $CPAN::Config->{$eumm_setting};
+ if (!$@ ) {
+ CPAN::HandleConfig->require_myconfig_or_config;
+ if ( $CPAN::Config ) {
+ for my $eumm_setting ( qw/makepl_arg make_install_arg/ ) {
+ if ($CPAN::Config->{$eumm_setting} =~ /(?:PREFIX|INSTALL_BASE)/) {
+ die <<"DEATH";
+WHOA THERE! It looks like you've got $CPAN::Config->{$eumm_setting} set. This is
+known to cause problems with local::lib. Please either remove this setting or
+clear out your .cpan directory.
+DEATH
+ }
}
- }
- for my $mb_setting (qw/mbuild_arg mbuild_install_arg mbuildpl_arg/) {
- if ($CPAN::Config->{$mb_setting} =~ /(?:--prefix|--install_base)/) {
- die "Possibly invalid config detected in $mb_setting: " . $CPAN::Config->{$mb_setting};
+ for my $mb_setting (qw/mbuild_arg mbuild_install_arg mbuildpl_arg/) {
+ if ($CPAN::Config->{$mb_setting} =~ /(?:--prefix|--install_base)/) {
+ die <<"DEATH";
+WHOA THERE! It looks like you've got $CPAN::Config->{$mb_setting} set. This is
+known to cause problems with local::lib. Please either remove this setting or
+clear out your .cpan directory.
+DEATH
+ }
}
}
}
auto_install;
}
chdir($cwd);
+resources(
+ # r/w: p5sagit@git.shadowcat.co.uk:local-lib.git
+ repository => 'git://git.shadowcat.co.uk/p5sagit/local-lib.git',
+ homepage => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git',
+ bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=local-lib',
+);
WriteAll;