CPAN
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
Archive::Tar
Archive::Zip
CPAN::Checksums
CPAN::Meta
CPAN::Meta::YAML
CPAN::Perl::Releases
Compress::Bzip2
Compress::Zlib
Data::Dumper
Digest::SHA
Digest::MD5
Expect
Exporter
Exporter::Heavy
ExtUtils::CBuilder
File::Copy
File::HomeDir
File::Spec
File::Temp
File::Which
HTTP::Tiny
IO::Compress::Base
IO::Zlib
JSON::PP
Log::Log4perl
LWP::UserAgent
MIME::Base64
Module::Build
Module::Signature
Net::FTP
Parse::CPAN::Meta
Pod::Perldoc
Pod::Perldoc::ToMan
Scalar::Util
Socket
Term::ReadKey
Term::ReadLine::Perl
Test::More
Text::Glob
Text::ParseWords
Text::Wrap
YAML
YAML::Syck
YAML::XS
)) {
eval "require $interesting_module";
if (!$@) {
$prereq_pm->{$interesting_module} ||= 0;
}
}
unless (exists $prereq_pm->{"LWP::UserAgent"} && $] ge '5.006') {
# allow bootstrap with pure perl HTTP, but skip if we have LWP::UserAgent already installed
$prereq_pm->{'HTTP::Tiny'} = '0.005';
}
if ($HAVE_FILE_SPEC) {
# import PAUSE public key to user's keychain
require Config;
my $dir;
for $dir (split /$Config::Config{path_sep}/, $ENV{PATH}) {
my $abs = File::Spec->catfile($dir, 'gpg');
my $cmd;
if ($cmd = MM->maybe_command($abs)) {
print "Importing PAUSE public key into your GnuPG keychain... ";
system($cmd, '--quiet', '--import', <PAUSE*.pub>);
print "done!\n";
print "(You may wish to trust it locally with 'gpg --lsign-key $FINGERPRINT')\n";
last;
}
}
}
if ($HAVE_FILE_SPEC) {
my $have_distroprefs = -d "distroprefs";
my $have_notinchecksums = -f File::Spec->catdir("t","CPAN","authors","id","A","AN","ANDK","NotInChecksums-0.000.tar.gz");
if ($HAVE_MAKE && $have_distroprefs && !$have_notinchecksums) {
warn <<EOW;
####-Note-for-repository-users-####
Please try
make touchtestdistros
before running 'make test'
It should build NotInChecksums-0.000.tar.gz
and correct timestamps for tarballs from the repository
and thus enable a smooth 'make test' experience
####-Note-for-repository-users-####
EOW
}
}
my @sign = (MM->can("signature_target") ? (SIGN => 1) : ());
WriteMakefile(
INSTALLDIRS => ($] < 5.012) ? "perl" : "site",
NAME => 'CPAN',
VERSION => $version,
EXE_FILES => [qw(scripts/cpan scripts/cpan-mirrors)],
PREREQ_PM => $prereq_pm,
($ExtUtils::MakeMaker::VERSION >= 6.3002 ?
(LICENSE => "perl") : (),
),
($ExtUtils::MakeMaker::VERSION >= 6.48 ?
(MIN_PERL_VERSION => '5.006002') : (),
),
clean => {
FILES => "lib/CPAN/Config.pm t/dot-cpan/FTPstats.yml cpan-home t/dot-cpan*",
},
@sign,
($] >= 5.005 ?
(
ABSTRACT_FROM => 'lib/CPAN.pm', # retrieve abstract from module
AUTHOR => 'Andreas Koenig <andreas.koenig.gmwojprw@franz.ak.mind.de>') : (),
),
dist => {
DIST_DEFAULT => join(" ", # note: order matters!
"verify-no-subdir",
"verify-changes-date",
"verify-changes-version",
"kwalify-distroprefs-straight",
"Makefile",
"no_CR",
"META.yml",
"setversion",
"README",
"testdistros",
"all",
"tardist",
),
Makefile.PL view on Meta::CPAN
release :: disttest
[ -e META.json ]
ls -l $(DISTVNAME).tar$(SUFFIX)
rm -rf $(DISTVNAME)
$(NOECHO) $(ECHO) '#### Suggested next steps (if all looks good):'
$(NOECHO) $(ECHO) '#### Consider "make pull-request" for perl5-porters'
$(NOECHO) $(ECHO) make reversion AGAINST_TAG=__previous_release__
$(NOECHO) $(ECHO) git tag -m '"This is $(VERSION)"' '"$(VERSION)"'
$(NOECHO) $(ECHO) ' git push --tags origin master'
reversion:
$(NOECHO) $(ECHO) AGAINST_TAG=$(AGAINST_TAG)
$(PERL) dagolden-reversion-gist.pl $(AGAINST_TAG)
snapshot : Makefile no_CR META.yml README testdistros all tardist
# 16=Distribution; 32=Bundle; 32768=Queue
depefails:
$(PERL) -Ilib -MCPAN -e 'CPAN::HandleConfig->load;$$CPAN::DEBUG|=16;$$CPAN::DEBUG|=32;$$CPAN::DEBUG|=32768;install(qw(CPAN::Test::Dummy::Perl5::Build::DepeFails));'
logs/.exists :
mkdir -p logs
touch $@
run :
$(PERL) -Ilib -MCPAN -eshell
run_testenv_db :
$(PERL) -Ilib -It -MCPAN::MyConfig -MCPAN -deshell
record-session :
$(PERL) -Ilib -MCPAN -e '$$CPAN::Suppress_readline=$$CPAN::Echo_readline=1;shell' | tee ttt.out
run-with-sqlite :
$(PERL) -I$$HOME/.cpan -Ilib -MCPAN::SQLite -MCPAN::MyConfig -MCPAN -e '$$CPAN::Config->{use_sqlite}++; $$CPAN::Config->{sqlite_dbname}="cpandb-sqlite"; shell'
testrun_very_offline : rm_mirrored_by run_emu_offline
testrun_emu_offline :
$(PERL) -I$$HOME/.cpan -Ilib -MCPAN::MyConfig -MCPAN -e '@CPAN::Defaultsites = qw(file:///dev/null); $$CPAN::Config->{urllist} = []; shell'
rm_mirrored_by :
rm -f $$HOME/.cpan/sources/MIRRORED.BY*
testrun_http_only :
$(PERL) -I$$HOME/.cpan -Ilib -MCPAN::MyConfig -MCPAN -e '$$CPAN::Config->{urllist} = [qw(http://www.planet-elektronik.de/CPAN/)]; shell'
urllist :
$(PERL) -Ilib -MCPAN -MCPAN::FirstTime -e 'CPAN::FirstTime::init("$$ENV{HOME}/.cpan/CPAN/MyConfig", args => [qw(urllist)])'
runadmin :
$(PERL) -Ilib -MCPAN::Admin -eshell
rundb :
$(PERL) -Ilib -MCPAN -deshell
sign:
cpansign -s
show-batch-signing-keys:
for f in PAUSE*.pub; do echo "++++$$f++++"; gpg --verbose --with-colons $$f; done
show-imported:
gpg --list-sigs --with-colons $$FINGERPRINT
# seems to need at least gnupg 1.4.2:
upload-batch-signing-key:
gpg --send-key $$FINGERPRINT
download-batch-signing-key:
gpg --keyserver hkp://pgpkeys.eu --recv-key $$FINGERPRINT
export-armor-batch-signing-key:
gpg --export --armor $$FINGERPRINT
howto-release:
@$(ECHO) make ci dist \&\& make release
META.yml: metafile
$(CP) $(DISTVNAME)/META.yml ./META.yml
-$(CP) $(DISTVNAME)/META.json ./META.json
install-devel-cover-unless-uptodate:
$(PERL) -Ilib -MCPAN -e 'CPAN::Shell->install("/home/src/perl/devel-cover/SVN/.") unless CPAN::Shell->expand("Module","Devel::Cover")->uptodate'
install-devel-cover-unconditionally:
$(PERL) -Ilib -MCPAN -e 'CPAN::Shell->install("/home/src/perl/devel-cover/SVN/.")'
testcover: testdistros install-devel-cover-unless-uptodate
:>SIGNATURE
$(PERL) -MDevel::Cover -e 0
`dirname $(PERL)`/cover -delete
HARNESS_PERL_SWITCHES=-MDevel::Cover $(MAKE) test
`dirname $(PERL)`/cover
man:
$(PERL)doc -F lib/CPAN.pm
TESTDISTROS = \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Build-1.03.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Build-DepeFails-1.02.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Build-Fails-1.03.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-BuildOrMake-1.02.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-1.05.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-CircDepeOne-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-CircDepeTwo-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-CircDepeThree-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-ConfReq-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Expect-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Failearly-1.02.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Features-1.06.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-TimeSkew-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-UnsatPrereq-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-CircularPrereq-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-OptionalPrereq-1.00.tar.gz \
t/CPAN/authors/id/A/AN/ANDK/CPAN-Test-Dummy-Perl5-Make-Zip-1.03.zip
NOTINCHECKSUMS = \
t/CPAN/authors/id/A/AN/ANDK/NotInChecksums-0.000.tar.gz
testdistros: $(TESTDISTROS) $(NOTINCHECKSUMS)
touchtestdistros: $(NOTINCHECKSUMS)
touch $(TESTDISTROS)
# sorry, unix centric (and only makes sense on a working copy of the
# repository; else 'make test TEST_FILES=t/30shell.t TEST_VERBOSE=1'
# will do)
testshell-with-protocol: testdistros
$(PERL) -e 'for ("protocols"){-d $$_ or mkdir $$_, 0755}'
$(MAKE) test TEST_FILES=t/30shell.t TEST_VERBOSE=1 PERL='$(PERL)' | \
tee protocols/make-test-`date +%Y%m%dT%H%M%S`
ls -lt protocols | head
( run in 0.929 second using v1.01-cache-2.11-cpan-df04353d9ac )