X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=ci%2Fdeps.perl;h=62870c1f99647992b2bbbf52e572c98b7feb58fe;hb=420fddb8b683637cc1fd39727896cac4a459c3b6;hp=e0fda01191c0be44d61ab876febdb01377607afe;hpb=7e2abe2d068367f2fcdf638a4482c953111df156;p=public-inbox.git diff --git a/ci/deps.perl b/ci/deps.perl index e0fda011..62870c1f 100755 --- a/ci/deps.perl +++ b/ci/deps.perl @@ -9,9 +9,11 @@ my $usage = "$0 PKG_FMT PROFILE [PROFILE_MOD]"; 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( @@ -19,14 +21,16 @@ my $profiles = { 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( @@ -44,10 +48,9 @@ my $profiles = { xapian-compact ) ], - # developer stuff + # optional developer stuff devtest => [ qw( IPC::Run - Test::HTTP::Server::Simple XML::Feed curl w3m @@ -58,6 +61,8 @@ my $profiles = { 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) { @@ -70,12 +75,7 @@ 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 = { @@ -89,22 +89,41 @@ 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 => [], @@ -173,6 +192,11 @@ if ($pkg_fmt eq 'deb') { 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"; }