# <mst> we must set PERL_AUTOINSTALL_PREFER_CPAN too
$ENV{PERL_AUTOINSTALL_PREFER_CPAN} = 1;
- system($^X, '-MExtUtils::MakeMaker 6.31', '-e1');
+ system($^X, '-MExtUtils::MakeMaker 6.74', '-e1');
my $eumm = $? >> 8;
system($^X, '-MExtUtils::Install 1.43', '-e1');
}
}
-use inc::Module::Install;
+require ExtUtils::MakeMaker;
+ExtUtils::MakeMaker->import;
+(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml';
-name 'local-lib';
-all_from 'lib/local/lib.pm';
+my %CONFIGURE_DEPS = ();
+my %BUILD_DEPS = ();
+my %TEST_DEPS = (
+ 'Test::More' => 0,
+);
+my %RUN_DEPS = (
+ 'ExtUtils::MakeMaker' => '6.74', # version PERL_MM_OPT is shell parsed
+ 'ExtUtils::Install' => '1.43', # version INSTALL_BASE was added
+ 'Module::Build' => '0.36', # PERL_MB_OPT
+ 'CPAN' => '1.82', # sudo support + CPAN::HandleConfig
+);
-requires 'ExtUtils::MakeMaker' => '6.31'; # version INSTALL_BASE was added
-requires 'ExtUtils::Install' => '1.43'; # ditto
-requires 'Module::Build' => '0.36'; # PERL_MB_OPT
+my %extra_info = (
+ 'meta-spec' => { version => 2 },
+ resources => {
+ repository => {
+ # r/w: p5sagit@git.shadowcat.co.uk:local-lib.git
+ url => 'git://git.shadowcat.co.uk/p5sagit/local-lib.git',
+ web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/local-lib.git',
+ type => 'git',
+ },
+ x_IRC => 'irc://irc.perl.org/#local-lib',
+ bugtracker => {
+ web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=local-lib',
+ mailto => 'bug-local-lib@rt.cpan.org',
+ },
+ license => [ 'http://dev.perl.org/licenses/' ],
+ },
+ prereqs => {
+ runtime => { requires => { perl => '5.8.1' } },
+ },
+);
-# don't bother fixing CPAN.pm if bootstrapped from cpanminus
-unless ($ENV{PERL5_CPANM_IS_RUNNING}) {
- my $required_CPAN = '1.82';
- requires 'CPAN' => $required_CPAN; # sudo support + CPAN::HandleConfig
+if ($bootstrapping) {
+ no warnings 'once';
+*MY::postamble = sub {
+ <<"END";
+PERL += $bootstrapping_args
+FULLPERL += $bootstrapping_args
+END
+ }
+}
+# don't bother fixing CPAN.pm if bootstrapped from cpanminus
+if ($ENV{PERL5_CPANM_IS_RUNNING}) {
+ delete $RUN_DEPS{CPAN};
+}
+else {
# No, really. See
# https://rt.cpan.org/Public/Bug/Display.html?id=23735
# for why CPAN now sets the CPANPLUS env var.
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)/) {
+ for my $setting (qw(
+ makepl_arg make_install_arg
+ mbuild_arg mbuild_install_arg mbuildpl_arg
+ )) {
+ my $value = $CPAN::Config->{$setting} or next;
+ if ($setting =~ /^make/
+ ? $value =~ /(?:PREFIX|INSTALL_BASE)/
+ : /(?:--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.
+WHOA THERE! It looks like you've got $CPAN::Config->{$setting} set in
+your CPAN config. This is known to cause problems with local::lib. Please
+either remove this setting or clear out your .cpan directory.
DEATH
}
}
require CPAN;
# Explode if it looks like requiring CPAN::HandleConfig should
# have worked, but didn't.
- die($error) if $CPAN::VERSION >= $required_CPAN;
+ die($error) if $CPAN::VERSION >= $RUN_DEPS{CPAN};
}
}
+chdir($cwd);
-if ($bootstrapping) {
- auto_install_now;
- postamble <<"END";
-PERL += $bootstrapping_args
-FULLPERL += $bootstrapping_args
-END
-} else {
- auto_install;
+@{$extra_info{prereqs}{runtime}{requires}}{keys %RUN_DEPS} = values %RUN_DEPS;
+
+# have to do this since old EUMM dev releases miss the eval $VERSION line
+my $eumm_version = eval $ExtUtils::MakeMaker::VERSION;
+my $mymeta_works = $eumm_version >= 6.57_07;
+my $mymeta = $eumm_version >= 6.57_02;
+
+my $has_test_requires = $eumm_version >= 6.63_03;
+
+my $has_meta_v2 = $eumm_version >= 6.57_10;
+if (! $has_meta_v2) {
+ %extra_info = ();
}
-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',
+if (not $has_test_requires) {
+ %BUILD_DEPS = (%BUILD_DEPS, %TEST_DEPS);
+ %TEST_DEPS = ();
+}
+if (not $mymeta_works) {
+ %RUN_DEPS = (%RUN_DEPS, %BUILD_DEPS);
+ %BUILD_DEPS = ();
+}
+
+WriteMakefile(
+ NAME => 'local::lib',
+ VERSION_FROM => 'lib/local/lib.pm',
+ CONFIGURE_REQUIRES => \%CONFIGURE_DEPS,
+ PREREQ_PM => {
+ %RUN_DEPS,
+ },
+ keys %BUILD_DEPS ? ( BUILD_REQUIRES => \%BUILD_DEPS ) : (),
+ keys %TEST_DEPS ? ( TEST_REQUIRES => \%TEST_DEPS ) : (),
+ META_ADD => \%extra_info,
+ META_MERGE => {
+ no_index => {
+ directory => [ 'xt' ]
+ },
+ },
+ ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()),
+ LICENSE => 'perl',
);
-WriteAll;