my $pkg_fmt = shift;
@ARGV or die $usage, "\n";
+my @test_essential = qw(Test::Simple Plack::Test);
+
# package profiles
my $profiles = {
- # the smallest possible profile
+ # the smallest possible profile for testing
# TODO: trim this, Plack pulls in Filesys::Notify::Simple,
# and we don't need that for mda-only installs
essential => [ qw(
perl
Date::Parse
Devel::Peek
+ Digest::SHA
Email::Simple
Email::MIME
Email::MIME::ContentType
Encode
+ ExtUtils::MakeMaker
Filesys::Notify::Simple
Plack
URI::Escape
- ) ],
+ ), @test_essential ],
# everything optional for normal use
optional => [ qw(
xapian-compact
) ],
- # developer stuff
+ # optional developer stuff
devtest => [ qw(
IPC::Run
- Test::HTTP::Server::Simple
XML::Feed
curl
w3m
my @precious;
if ($^O eq 'freebsd') {
@precious = qw(perl curl Socket6 IO::Compress::Gzip);
+} elsif ($pkg_fmt eq 'rpm') {
+ @precious = qw(perl curl);
}
if (@precious) {
# bare minimum for v2
-$profiles->{v2essential} = [ @{$profiles->{essential}}, qw(
- DBD::SQLite
- DBI
- Search::Xapian
- xapian-compact
-) ];
+$profiles->{v2essential} = [ @{$profiles->{essential}}, qw(DBD::SQLite DBI) ];
# package names which can't be mapped automatically:
my $non_auto = {
deb => 'perl', # libperl5.XX, but the XX varies
pkg => 'perl5',
},
+ 'Digest::SHA' => {
+ deb => 'perl', # libperl5.XX, but the XX varies
+ pkg => 'perl5',
+ },
'Encode' => {
deb => 'perl', # libperl5.XX, but the XX varies
pkg => 'perl5',
rpm => 'perl-Encode',
},
+ 'ExtUtils::MakeMaker' => {
+ deb => 'perl', # perl-modules-5.xx
+ pkg => 'perl5',
+ rpm => 'perl-ExtUtils-MakeMaker',
+ },
'IO::Compress::Gzip' => {
deb => 'perl', # perl-modules-5.xx
pkg => 'perl5',
- rpm => 'perl-PerlIO-gzip',
+ rpm => 'perl-IO-Compress',
},
'DBD::SQLite' => { deb => 'libdbd-sqlite3-perl' },
+ 'Plack::Test' => {
+ deb => 'libplack-perl',
+ pkg => 'p5-Plack',
+ rpm => 'perl-Plack-Test',
+ },
'URI::Escape' => {
deb => 'liburi-perl',
pkg => 'p5-URI',
rpm => 'perl-URI',
},
+ 'Test::Simple' => {
+ deb => 'perl', # perl-modules-5.XX, but the XX varies
+ pkg => 'perl5',
+ rpm => 'perl-Test-Simple',
+ },
'highlight.pm' => {
deb => 'libhighlight-perl',
pkg => [],
root(qw(pkg install -y), @quiet, @pkg_install) if @pkg_install;
root(qw(pkg autoremove -y), @quiet);
# TODO: yum / rpm support
+} elsif ($pkg_fmt eq 'rpm') {
+ my @quiet = $ENV{V} ? () : ('-q');
+ exclude_uninstalled(\@pkg_remove);
+ root(qw(yum remove -y), @quiet, @pkg_remove) if @pkg_remove;
+ root(qw(yum install -y), @quiet, @pkg_install) if @pkg_install;
} else {
die "unsupported package format: $pkg_fmt\n";
}