]> Sergey Matveev's repositories - public-inbox.git/blobdiff - ci/deps.perl
No ext_urls
[public-inbox.git] / ci / deps.perl
index ad2c11d28f6bc1a4e48799d4d6d8447ec3ad6d67..ae85986d622f87bd30563fc168f41fd128f3543d 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright (C) 2019 all contributors <meta@public-inbox.org>
+# Copyright (C) 2019-2021 all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 # Helper script for installing/uninstalling packages for CI use
 # Intended for use on non-production chroots or VMs since it
@@ -9,38 +9,31 @@ 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);
+my @test_essential = qw(Test::Simple); # we actually use Test::More
 
 # package profiles
 my $profiles = {
        # 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
+               IO::Compress::Gzip
+               URI
                ), @test_essential ],
 
        # everything optional for normal use
        optional => [ qw(
+               Date::Parse
                BSD::Resource
                DBD::SQLite
                DBI
-               IO::Compress::Gzip
                Inline::C
                Net::Server
-               Plack::Middleware::Deflater
+               Plack
+               Plack::Test
                Plack::Middleware::ReverseProxy
                Search::Xapian
                Socket6
@@ -50,17 +43,17 @@ my $profiles = {
 
        # optional developer stuff
        devtest => [ qw(
-               IPC::Run
-               XML::Feed
+               XML::TreePP
                curl
                w3m
+               Plack::Test::ExternalServer
                ) ],
 };
 
 # account for granularity differences between package systems and OSes
 my @precious;
 if ($^O eq 'freebsd') {
-       @precious = qw(perl curl Socket6 IO::Compress::Gzip IO::KQueue);
+       @precious = qw(perl curl Socket6 IO::Compress::Gzip);
 } elsif ($pkg_fmt eq 'rpm') {
        @precious = qw(perl curl);
 }
@@ -85,10 +78,6 @@ my $non_auto = {
                pkg => 'p5-TimeDate',
                rpm => 'perl-TimeDate',
        },
-       'Devel::Peek' => {
-               deb => 'perl', # libperl5.XX, but the XX varies
-               pkg => 'perl5',
-       },
        'Digest::SHA' => {
                deb => 'perl', # libperl5.XX, but the XX varies
                pkg => 'perl5',
@@ -114,7 +103,7 @@ my $non_auto = {
                pkg => 'p5-Plack',
                rpm => 'perl-Plack-Test',
        },
-       'URI::Escape' => {
+       'URI' => {
                deb => 'liburi-perl',
                pkg => 'p5-URI',
                rpm => 'perl-URI',
@@ -149,6 +138,9 @@ my (@pkg_install, @pkg_remove, %all);
 for my $ary (values %$profiles) {
        $all{$_} = \@pkg_remove for @$ary;
 }
+if ($^O eq 'freebsd') {
+       $all{'IO::KQueue'} = \@pkg_remove;
+}
 $profiles->{all} = [ keys %all ]; # pseudo-profile for all packages
 
 # parse the profile list from the command-line