* [PATCH 3/5] updates around RPM packages on CentOS 7.x
2023-09-13 9:12 7% [PATCH 0/5] more deps and updates from portability Eric Wong
@ 2023-09-13 9:12 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2023-09-13 9:12 UTC (permalink / raw)
To: meta
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.
---
INSTALL | 3 +--
Makefile.PL | 25 ++++++++++++++-----------
install/deps.perl | 18 ++++++++++++------
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',
^ permalink raw reply related [relevance 7%]
* [PATCH 0/5] more deps and updates from portability
@ 2023-09-13 9:12 7% Eric Wong
2023-09-13 9:12 7% ` [PATCH 3/5] updates around RPM packages on CentOS 7.x Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2023-09-13 9:12 UTC (permalink / raw)
To: meta
install/deps.perl could become a useful tool for new users
since basically every tool is optional.
CentOS partitions the Perl standard library into having
circular dependencies which make no sense to me the more
I look at it.
5/5 was found to only be a problem my NetBSD VM.
Eric Wong (5):
INSTALL: update for 2023, NetBSD and OpenBSD
move deps.perl into new install/ directory
updates around RPM packages on CentOS 7.x
install/deps: safer defaults for regular users
t/xap_helper: improve reliability of TTIN/TTOU tests
INSTALL | 27 +++---
MANIFEST | 4 +-
Makefile.PL | 25 +++---
ci/README | 15 ++--
ci/profiles.perl | 66 +-------------
ci/run.sh | 3 +-
install/README | 12 +++
{ci => install}/deps.perl | 182 ++++++++++++++++++++++++--------------
install/os.perl | 78 ++++++++++++++++
t/xap_helper.t | 14 +--
10 files changed, 252 insertions(+), 174 deletions(-)
create mode 100644 install/README
rename {ci => install}/deps.perl (53%)
create mode 100644 install/os.perl
^ permalink raw reply [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2023-09-13 9:12 7% [PATCH 0/5] more deps and updates from portability Eric Wong
2023-09-13 9:12 7% ` [PATCH 3/5] updates around RPM packages on CentOS 7.x Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).