From f4dbd80157bd785cf5d863d517b7334bd2795bab Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 13 Jun 2019 02:26:30 +0000 Subject: doc: update dependencies for CentOS 7.x Digest::SHA is the most notable missing package at runtime for a minimal system. Tests don't run at all without Test::Simple (or Test::More). Plack::Test is also a separate package, too... Also, the package for IO::Compress::Gzip should be IO::Compress; as perl-PerlIO-gzip is a different thing entirely which is not relevant to our needs. Test::HTTP::Server::Simple doesn't seem required at all for Plack tests. ExtUtils::MakeMaker needs to be documented as a install dependency for people installing this, too; since AFAIK public-inbox is not yet in any distros. --- INSTALL | 22 ++++++++++++++++------ Makefile.PL | 13 +++++++++++++ ci/deps.perl | 32 +++++++++++++++++++++++++++----- 3 files changed, 56 insertions(+), 11 deletions(-) diff --git a/INSTALL b/INSTALL index 0246299b..a661c776 100644 --- a/INSTALL +++ b/INSTALL @@ -36,6 +36,9 @@ Beyond that, there is a long list of Perl modules required, starting with: pkg: p5-TimeDate rpm: perl-TimeDate +* Digest::SHA typically installed with Perl + rpm: perl-Digest-SHA + * Email::MIME deb: libemail-mime-perl pkg: p5-Email-MIME rpm: perl-Email-MIME @@ -132,8 +135,8 @@ above, so there is no need to explicitly install them: (for public-inbox-watch, pulled in by Plack) - IO::Compress::Gzip deb: perl-modules (or libio-compress-perl) - rpm: perl-PerlIO-gzip pkg: perl5 + rpm: perl-IO-Compress (for gzipped mbox over HTTP) Uncommonly needed modules: @@ -156,18 +159,25 @@ Optional packages testing and development: pkg: p5-IPC-Run rpm: perl-IPC-Run +- Plack::Test deb: libplack-test-perl + pkg: p5-Plack + rpm: perl-Plack-Test + +- Test::Simple deb: perl-modules-5.$MINOR + pkg: perl5 + rpm: perl-Test-Simple + - XML::Feed deb: libxml-feed-perl pkg: p5-XML-Feed rpm: perl-XML-Feed -- Test::HTTP::Server::Simple deb: libtest-http-server-simple-perl - pkg: p5-Test-HTTP-Server-Simple - rpm: perl-Test-HTTP-Server-Simple - (XXX is this really needed?) - standard MakeMaker installation (Perl) -------------------------------------- +To use MakeMaker, you need to ensure ExtUtils::MakeMaker is available. +This is typically installed with Perl, but RPM-based systems will likely +need to install the `perl-ExtUtils-MakeMaker' package. + Once the dependencies are installed, you should be able to build and install the system (into /usr/local) with: diff --git a/Makefile.PL b/Makefile.PL index b1274ad1..341d42af 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -28,6 +28,11 @@ WriteMakefile( # We also depend on git. # Keep this sorted and synced to the INSTALL document 'Date::Parse' => 0, + + # libperl$PERL_VERSION, + # `perl5' on FreeBSD + # perl-Digest-SHA on RH-based + 'Digest::SHA' => 0, 'Email::MIME' => 0, # the following should be pulled in by Email::MIME: @@ -44,6 +49,14 @@ WriteMakefile( # We have more test dependencies, but do not force # 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 + 'File::Path' => 0, + 'File::Temp' => 0, + 'Getopt::Long' => 0, + 'Exporter' => 0, + # ExtUtils::MakeMaker # this file won't run w/o it... }, MAN3PODS => \%man3, ); diff --git a/ci/deps.perl b/ci/deps.perl index faca4590..62870c1f 100755 --- a/ci/deps.perl +++ b/ci/deps.perl @@ -9,9 +9,11 @@ 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); + # 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( @@ -19,14 +21,16 @@ my $profiles = { 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( @@ -44,10 +48,9 @@ my $profiles = { xapian-compact ) ], - # developer stuff + # optional developer stuff devtest => [ qw( IPC::Run - Test::HTTP::Server::Simple XML::Feed curl w3m @@ -86,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 => [], -- cgit v1.2.3-24-ge0c7