user/dev discussion of public-inbox itself
 help / color / Atom feed
From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH] doc: update dependencies for CentOS 7.x
Date: Thu, 13 Jun 2019 02:26:30 +0000
Message-ID: <20190613022630.29873-1-e@80x24.org> (raw)

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 => [],
-- 
EW


                 reply index

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190613022630.29873-1-e@80x24.org \
    --to=e@80x24.org \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

user/dev discussion of public-inbox itself

Archives are clonable:
	git clone --mirror https://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
	nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.org/gmane.mail.public-inbox.general

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/ public-inbox