user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 3/4] doc: update dependencies (+Storable, Data::Dumper)
Date: Wed,  3 Feb 2021 15:51:43 -0600	[thread overview]
Message-ID: <20210203215144.21535-4-e@80x24.org> (raw)
In-Reply-To: <20210203215144.21535-1-e@80x24.org>

The new IPC stuff doesn't work without Storable or Sereal.
Storable is part of the standard library since Perl 5.8, so
we'll put a hard dependency on it for distros that package
it separately.

Data::Dumper is also part of the standard library, and
PublicInbox::MboxReader uses it, and it's frequently useful
during development.

We'll also trim down INSTALL for standard library modules so
it's hopefully less daunting for new users.

Development dependencies are noted in HACKING, now.

Email::MIME is only used for maintainer tests, so it's only
documented in HACKING.
---
 HACKING     | 27 +++++++++++++++++++++
 INSTALL     | 69 ++++++++++++++++-------------------------------------
 Makefile.PL | 17 +++++--------
 3 files changed, 53 insertions(+), 60 deletions(-)

diff --git a/HACKING b/HACKING
index fbcfb552..0819fc16 100644
--- a/HACKING
+++ b/HACKING
@@ -59,6 +59,33 @@ directory for design decisions made during development.
 See Documentation/technical/ in the source tree for more details
 on specific topics, in particular data_structures.txt
 
+Optional packages for testing and development
+---------------------------------------------
+
+Optional packages testing and development:
+
+- Plack::Test                      deb: libplack-test-perl
+                                   pkg: p5-Plack
+                                   rpm: perl-Plack-Test
+
+- Plack::Test::ExternalServer      deb: libplack-test-externalserver-perl
+                                   pkg: p5-Plack-Test-ExternalServer
+
+- Test::Simple                     deb: perl-modules-5.$MINOR
+                                   pkg: perl5
+                                   rpm: perl-Test-Simple
+
+- XML::TreePP                      deb: libxml-treepp-perl
+                                   pkg: p5-XML-TreePP
+                                   rpm: perl-XML-TreePP
+
+Email::MIME is optional as of public-inbox v1.5.0 but still
+used for maintainer comparison tests:
+
+* Email::MIME                      deb: libemail-mime-perl
+                                   pkg: p5-Email-MIME
+                                   rpm: perl-Email-MIME
+
 Faster tests
 ------------
 
diff --git a/INSTALL b/INSTALL
index 36d89814..45829a80 100644
--- a/INSTALL
+++ b/INSTALL
@@ -31,23 +31,13 @@ To accept incoming mail into a public inbox, you'll likely want:
 * MTA - postfix is recommended (for public-inbox-mda)
 * SpamAssassin (spamc/spamd)   (for public-inbox-watch/public-inbox-mda)
 
-Beyond that, there is a long list of Perl modules required, starting with:
-
-* Digest::SHA                      typically installed with Perl
-                                   rpm: perl-Digest-SHA
+Beyond that, there is one non-standard Perl module required:
 
 * URI::Escape                      deb: liburi-perl
                                    pkg: p5-URI
                                    rpm: perl-URI
                                    (for HTML/Atom generation)
 
-Email::MIME will be optional as of public-inbox v1.5.0,
-it may still be used in maintainer comparison tests:
-
-* Email::MIME                      deb: libemail-mime-perl
-                                   pkg: p5-Email-MIME
-                                   rpm: perl-Email-MIME
-
 Plack and Date::Parse are optional as of public-inbox v1.3.0,
 but required for older releases:
 
@@ -72,8 +62,8 @@ Numerous optional modules are likely to be useful as well:
                                    rpm: perl-DBD-SQLite
                                    (for v2, IMAP, NNTP, or gzipped mboxes)
 
-- Search::Xapian                   deb: libsearch-xapian-perl
-                                   pkg: p5-Search-Xapian
+- Search::Xapian or Xapian(.pm)    deb: libsearch-xapian-perl
+                                   pkg: p5-Search-Xapian OR p5-Xapian
                                    rpm: perl-Search-Xapian
                                    (HTTP and IMAP search)
 
@@ -121,35 +111,19 @@ Numerous optional modules are likely to be useful as well:
                                    rpm: xapian-core
                                    (optional, for public-inbox-compact(1))
 
-The following modules are typically pulled in by dependencies listed
-above, so there is no need to explicitly install them:
+- Linux::Inotify2                  deb: liblinux-inotify2-perl
+                                   rpm: perl-Linux-Inotify2
+                                   (for public-inbox-watch and -imapd on Linux)
 
-* Encode                           deb: libperl5.$MINOR (or libencode-perl)
-                                   pkg: perl5
-                                   rpm: perl-Encode
-                                   (likely installed with Perl)
+The following module is typically pulled in by dependencies listed
+above, so there is no need to explicitly install them:
 
 - DBI                              deb: libdbi-perl
                                    pkg: p5-DBI
                                    rpm: perl-DBI
                                    (pulled in by DBD::SQLite)
 
-* Devel::Peek                      deb: libperl5.$MINOR (e.g. libperl5.24)
-                                   pkg: perl5
-                                   rpm: perl-Devel-Peek
-                                   (optional for stale FD cleanup in daemons,
-                                    typically installed alongside Perl5)
-
-- Linux::Inotify2                  deb: liblinux-inotify2-perl
-                                   rpm: perl-Linux-Inotify2
-                                   (for public-inbox-watch and -imapd on Linux)
-
-- IO::Compress (::Gzip)            deb: perl-modules (or libio-compress-perl)
-                                   pkg: perl5
-                                   rpm: perl-IO-Compress
-                                   (for gzipped mbox over HTTP, v2 format)
-
-Uncommonly needed modules:
+Uncommonly needed modules (see HACKING for development-only modules):
 
 - Socket6                          deb: libsocket6-perl
                                    pkg: p5-Socket6
@@ -163,20 +137,6 @@ Uncommonly needed modules:
                                    pkg: p5-Crypt-CBC
                                    (for PublicInbox::Unsubscribe (rarely used))
 
-Optional packages testing and development:
-
-- 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::TreePP                      deb: libxml-treepp-perl
-                                   pkg: p5-XML-TreePP
-                                   rpm: perl-XML-TreePP
-
 standard MakeMaker installation (Perl)
 --------------------------------------
 
@@ -206,6 +166,17 @@ will not destroy critical data.
 See the public-inbox-overview(7) man page for the next steps once
 the installation is complete.
 
+The following required packages are part of the Perl standard
+library.  Debian-based distros put them in "libperl5.$MINOR" or
+"perl-modules-5.$MINOR"; and FreeBSD puts them in "perl5".
+RPM-based distros split them out into separate packages:
+
+* 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
+
 Copyright
 ---------
 
diff --git a/Makefile.PL b/Makefile.PL
index f1910c47..b9e0a8cd 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -145,24 +145,19 @@ WriteMakefile(
 		# We also depend on git.
 		# Keep this sorted and synced to the INSTALL document
 
-		# libperl$PERL_VERSION,
-		# `perl5' on FreeBSD
-		# perl-Digest-SHA on RH-based
-		'Digest::SHA' => 0,
-
-		# libperl$PERL_VERSION or libencode-perl on Debian,
-		# `perl5' on FreeBSD
-		'Encode' => 2.35, # 2.35 shipped with 5.10.1
-
-		# libperl$PERL_VERSION + perl-modules-$PERL_VERSION
+		# perl-modules-5.xx or libperl5.xx in Debian-based
+		# part of "perl5" on FreeBSD
 		'Compress::Raw::Zlib' => 0,
 		'Compress::Zlib' => 0,
+		'Data::Dumper' => 0,
+		'Digest::SHA' => 0, # rpm: perl-Digest-SHA
+		'Encode' => 2.35, # 2.35 shipped with 5.10.1
 		'IO::Compress::Gzip' => 0,
+		'Storable' => 0, # rpm: perl-Storable
 
 		# Plack is needed for public-inbox-httpd and PublicInbox::WWW
 		# 'Plack' => 0,
 
-		# TODO: this should really be made optional...
 		'URI::Escape' => 0,
 
 		# We have more test dependencies, but do not force

  parent reply	other threads:[~2021-02-03 21:51 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-03 21:51 [PATCH 0/4] doc and dependency updates Eric Wong
2021-02-03 21:51 ` [PATCH 1/4] HACKING: use "just-ahead-of-time" to describe Inline::C Eric Wong
2021-02-03 21:51 ` [PATCH 2/4] spawn: merge common C code together Eric Wong
2021-02-03 21:51 ` Eric Wong [this message]
2021-02-03 21:51 ` [PATCH 4/4] tests: guard against missing DBD::SQLite Eric Wong

Reply instructions:

You may reply publicly 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=20210203215144.21535-4-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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).