about summary refs log tree commit homepage
path: root/ci
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-09-08 22:31:12 +0000
committerEric Wong <e@80x24.org>2023-09-08 23:33:41 +0000
commitd8a3bb57a2c90c73aafdf68509a830c144a3517c (patch)
tree0d681062970a0bf04e472bbe15bfd180eea6398f /ci
parent053ffb197e57c477bc21c0c4aa71bb3a741cff9a (diff)
downloadpublic-inbox-d8a3bb57a2c90c73aafdf68509a830c144a3517c.tar.gz
git depends on p5-TimeDate on FreeBSD, too, so ensure git
doesn't get uninstalled on FreeBSD.  Instead of making
@precious a separate array, we can actually stuff dependencies
into the $non_auto map and save us some code.

We can also eliminate some duplication in $non_auto by
populating the Perl standard library packages in a loop.
Diffstat (limited to 'ci')
-rwxr-xr-xci/deps.perl59
1 files changed, 16 insertions, 43 deletions
diff --git a/ci/deps.perl b/ci/deps.perl
index ea46b789..68b602ef 100755
--- a/ci/deps.perl
+++ b/ci/deps.perl
@@ -54,32 +54,18 @@ my $profiles = {
                 ) ],
 };
 
-# account for granularity differences between package systems and OSes
-# curl, TimeDate (Date::Parse) and Socket6 are dependencies of git on
-# some/most OSes
-my @precious = do {
-        if ($^O eq 'freebsd') { qw(curl Socket6) }
-        elsif ($pkg_fmt eq 'rpm') { qw(curl) }
-        # OpenBSD git depends on Date::Parse (p5-Time-TimeDate) indirectly,
-        elsif ($^O eq 'openbsd') { qw(curl Socket6 Date::Parse) }
-        else { () }
-};
-
-if (@precious) {
-        my $re = join('|', map { quotemeta($_) } @precious);
-        for my $list (values %$profiles) {
-                @$list = grep(!/\A(?:$re)\z/, @$list);
-        }
-        push @{$profiles->{essential}}, @precious;
-}
-
-
 # bare minimum for v2
 $profiles->{v2essential} = [ @{$profiles->{essential}}, qw(DBD::SQLite DBI) ];
 
-# package names which can't be mapped automatically:
+# package names which can't be mapped automatically and explicit
+# dependencies to prevent essential package removal:
 my $non_auto = {
-        'perl' => {
+        git => {
+                pkg => [ qw(curl p5-Socket6 p5-TimeDate git) ],
+                rpm => [ qw(curl git) ],
+                pkg_add => [ qw(curl p5-Socket6 p5-Time-TimeDate git) ],
+        },
+        perl => {
                 pkg => 'perl5',
                 pkg_add => [], # Perl is part of OpenBSD base
         },
@@ -89,22 +75,6 @@ my $non_auto = {
                 rpm => 'perl-TimeDate',
                 pkg_add => 'p5-Time-TimeDate',
         },
-        'Digest::SHA' => {
-                deb => 'perl', # libperl5.XX, but the XX varies
-                pkg => 'perl5',
-        },
-        'Encode' => {
-                deb => 'perl', # libperl5.XX, but the XX varies
-                pkg => 'perl5',
-        },
-        'ExtUtils::MakeMaker' => {
-                deb => 'perl', # perl-modules-5.xx
-                pkg => 'perl5',
-        },
-        'IO::Compress' => {
-                deb => 'perl', # perl-modules-5.xx
-                pkg => 'perl5',
-        },
         'Inline::C' => {
                 pkg_add => 'p5-Inline', # tested OpenBSD 7.3
                 rpm => 'perl-Inline', # for CentOS 7.x, at least
@@ -119,10 +89,6 @@ my $non_auto = {
                 pkg_add => [qw(xapian-core xapian-bindings-perl)],
                 rpm => 'Search::Xapian', # 3rd-party repo
         },
-        'Test::Simple' => {
-                deb => 'perl', # perl-modules-5.XX, but the XX varies
-                pkg => 'perl5',
-        },
         'highlight.pm' => {
                 deb => 'libhighlight-perl',
                 pkg => [],
@@ -143,7 +109,14 @@ my $non_auto = {
         },
 };
 
-# OpenBSD and FreeBSD both use "p5-".($CPAN_NAME =~ s/::/-/gr)
+# standard library stuff that CentOS 7.x (and presumably other RPM) split out:
+for (qw(Digest::SHA Encode ExtUtils::MakeMaker IO::Compress Test::Simple)) {
+        $non_auto->{$_} = {
+                deb => 'perl', # libperl5.XX, but the XX varies
+                pkg => 'perl5',
+        };
+}
+
 if ($pkg_fmt eq 'pkg_add') {
         for my $name (keys %$non_auto) {
                 my $fbsd_pkg = $non_auto->{$name}->{pkg};