about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2023-09-13 09:12:40 +0000
committerEric Wong <e@80x24.org>2023-09-14 10:06:24 +0000
commit8affa863b069186a367debcf695760a2df09d9ca (patch)
treee4504e120f272ed660fcc7d223f7bc5e58c7dd1e
parent7682d7645f579ba531717ba95c8f3d4ff63af53f (diff)
downloadpublic-inbox-8affa863b069186a367debcf695760a2df09d9ca.tar.gz
Add explicit dependencies on packages that are possible to
remove without removing the `perl' RPM from CentOS 7.x.
However, simplify deps.perl to avoid naming essential Perl
modules (e.g. `perl-Exporter') that cannot be removed
without removing the `perl' RPM entirely.

We can also drop `Socket6' from deps.perl since it's pulled
in as-needed by other packages and we try to avoid it in favor
of the (now-standard) IO::Socket::IP.
-rw-r--r--INSTALL3
-rw-r--r--Makefile.PL25
-rwxr-xr-xinstall/deps.perl18
3 files changed, 27 insertions, 19 deletions
diff --git a/INSTALL b/INSTALL
index 4f473b78..52bc9447 100644
--- a/INSTALL
+++ b/INSTALL
@@ -208,9 +208,8 @@ RPM-based distros split them out into separate packages:
 * autodie                          rpm: perl-autodie
 * Digest::SHA                      rpm: perl-Digest-SHA
 * Data::Dumper                     rpm: perl-Data-Dumper
-* Encode                           rpm: perl-Encode
 * IO::Compress                     rpm: perl-IO-Compress
-* Storable                         rpm: perl-Storable
+* Sys::Syslog                      rpm: perl-Sys-Syslog
 * Text::ParseWords                 rpm: perl-Text-Parsewords
 
 Copyright
diff --git a/Makefile.PL b/Makefile.PL
index d0652410..a04a3b75 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -150,15 +150,14 @@ WriteMakefile(
 
                 # perl-modules-5.xx or libperl5.xx in Debian-based
                 # part of "perl5" on FreeBSD
-                'autodie' => 0,
-                'Compress::Raw::Zlib' => 0,
-                'Compress::Zlib' => 0,
-                'Data::Dumper' => 0,
+                'autodie' => 0, # rpm: perl-autodie
+                'Compress::Raw::Zlib' => 0, # rpm: perl-Compress-Raw-Zlib
+                'Compress::Zlib' => 0, # rpm: perl-IO-Compress
+                'Data::Dumper' => 0, # rpm: perl-Data-Dumper
                 'Digest::SHA' => 0, # rpm: perl-Digest-SHA
-                'Encode' => 2.35, # 2.35 shipped with 5.10.1
-                'IO::Compress::Gzip' => 0,
-                'IO::Uncompress::Gunzip' => 0,
-                'Storable' => 0, # rpm: perl-Storable
+                'IO::Compress::Gzip' => 0, # rpm: perl-IO-Compress
+                'IO::Uncompress::Gunzip' => 0, # rpm: perl-IO-Compress
+                'Sys::Syslog' => 0, # rpm: perl-Sys-Syslog
                 'Text::ParseWords' => 0, # rpm: perl-Text-ParseWords
 
                 # Plack is needed for public-inbox-httpd and PublicInbox::WWW
@@ -170,12 +169,16 @@ WriteMakefile(
                 # users to install them.  See INSTALL
 
                 # All Perl installs I know about have these, but RH-based
-                # distros make them separate even though 'perl' pulls them in
+                # distros can separate these even if `perl' depends on them:
+                'constant' => 0, # rpm: perl-constant
+                'Encode' => 2.35, # rpm: perl-Encode # 2.35 shipped with 5.10.1
                 'File::Path' => 0,
                 'File::Temp' => '0.19', # for ->tmpdir support
-                'Getopt::Long' => 0,
-                'Exporter' => 0,
+                'Getopt::Long' => 0, # rpm: perl-Getopt-Long
+                'Exporter' => 0, # rpm: perl-Exporter
                 'IO::Poll' => 0,
+                'Storable' => 0, # rpm: perl-Storable
+                'Time::HiRes' => 0, # rpm: perl-Time-HiRes
                 # ExtUtils::MakeMaker # this file won't run w/o it...
         },
         MAN3PODS => \%man3,
diff --git a/install/deps.perl b/install/deps.perl
index e888cf30..a7b42607 100755
--- a/install/deps.perl
+++ b/install/deps.perl
@@ -35,12 +35,13 @@ my @test_essential = qw(Test::Simple); # we actually use Test::More
 my $profiles = {
         # the smallest possible profile for testing
         essential => [ qw(
+                autodie
                 git
                 perl
                 Digest::SHA
-                Encode
                 ExtUtils::MakeMaker
                 IO::Compress
+                Text::ParseWords
                 URI
                 ), @test_essential ],
 
@@ -58,7 +59,6 @@ my $profiles = {
                 Plack::Test
                 Plack::Middleware::ReverseProxy
                 Xapian
-                Socket6
                 highlight.pm
                 xapian-tools
                 ) ],
@@ -79,9 +79,9 @@ $profiles->{v2essential} = [ @{$profiles->{essential}}, qw(DBD::SQLite DBI) ];
 # dependencies to prevent essential package removal:
 my $non_auto = {
         git => {
-                pkg => [ qw(curl p5-Socket6 p5-TimeDate git) ],
+                pkg => [ qw(curl p5-TimeDate git) ],
                 rpm => [ qw(curl git) ],
-                pkg_add => [ qw(curl p5-Socket6 p5-Time-TimeDate git) ],
+                pkg_add => [ qw(curl p5-Time-TimeDate git) ],
         },
         perl => {
                 pkg => 'perl5',
@@ -132,8 +132,14 @@ my $non_auto = {
         },
 };
 
-# standard library stuff that CentOS 7.x (and presumably other RPM) split out:
-for (qw(Digest::SHA Encode ExtUtils::MakeMaker IO::Compress Test::Simple)) {
+# standard library stuff that CentOS 7.x (and presumably other RPM)
+# split out and can be removed without removing the `perl' RPM:
+for (qw(autodie Digest::SHA ExtUtils::MakeMaker IO::Compress Sys::Syslog
+                Test::Simple Text::ParseWords)) {
+        # n.b.: Compress::Raw::Zlib is pulled in by IO::Compress
+        # qw(constant Encode Getopt::Long Exporter Storable Time::HiRes)
+        # don't need to be here since it's impossible to have `perl'
+        # on CentOS 7.x without them.
         $non_auto->{$_} = {
                 deb => 'perl', # libperl5.XX, but the XX varies
                 pkg => 'perl5',