X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=ci%2Fdeps.perl;h=08722e1c41902275704a85b97f99be258192831d;hb=62f28026e624ed30d620063a0fa92cbedb7f6673;hp=32b0226e82a4e5efaa453404844d248b28abc91a;hpb=0b1de991a099b5e8b9a9e3e85b5eaaacc9362dbb;p=public-inbox.git diff --git a/ci/deps.perl b/ci/deps.perl index 32b0226e..08722e1c 100755 --- a/ci/deps.perl +++ b/ci/deps.perl @@ -9,33 +9,38 @@ my $usage = "$0 PKG_FMT PROFILE [PROFILE_MOD]"; my $pkg_fmt = shift; @ARGV or die $usage, "\n"; +my @test_essential = qw(Test::Simple); # we actually use Test::More + # 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( git 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( + Date::Parse BSD::Resource DBD::SQLite DBI IO::Compress::Gzip Inline::C Net::Server + Plack + Plack::Test Plack::Middleware::Deflater Plack::Middleware::ReverseProxy Search::Xapian @@ -44,10 +49,8 @@ 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) { @@ -84,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 => [], @@ -168,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"; }