From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 1/9] INSTALL: update with FreeBSD pkg names and reorder
Date: Thu, 9 May 2019 07:50:55 +0000 [thread overview]
Message-ID: <20190509075103.27132-2-e@80x24.org> (raw)
In-Reply-To: <20190509075103.27132-1-e@80x24.org>
Fortunately, there is a pattern to most of these package names
in all distros I've tested (and hopefully other BSDs have them,
too).
Then, reorder the INSTALL document to mention the top-level
modules, first, so users can avoid needing to type extra
dependencies. However, we still list some implicit dependencies
in case the upstream package drops dependencies independently of
us.
Finally, Devel::Peek is not a dependency worth making optional
since it's bundled by Perl upstream. Fedora/RH-based distros
are the only one which turn it into a non-standard package when
Perl5 is installed.
---
INSTALL | 197 ++++++++++++++++++++++++++++++++--------------------
Makefile.PL | 8 +++
2 files changed, 128 insertions(+), 77 deletions(-)
diff --git a/INSTALL b/INSTALL
index fafaf57..99836c1 100644
--- a/INSTALL
+++ b/INSTALL
@@ -9,8 +9,8 @@ public-inbox is developed on Debian GNU/Linux systems and will
never depend on packages outside of the "main" component of
the "stable" distribution, currently Debian 9.x ("stretch")
-Most packages are available in other GNU/Linux distributions;
-and FreeBSD support can happen.
+Most packages are available in other GNU/Linux distributions
+and FreeBSD.
TODO: this still needs to be documented better,
also see the scripts/ and sa_config/ directories in the source tree
@@ -23,7 +23,7 @@ functionality. The core tools are, of course:
* Git (1.8.0+, 2.6+ for writing v2 repositories)
* Perl 5.10.1+
-* SQLite (needed for Xapian use)
+* DBD::SQLite (needed for NNTP, message threading, and v2 repositories)
To accept incoming mail into a public inbox, you'll likely want:
@@ -32,88 +32,131 @@ To accept incoming mail into a public inbox, you'll likely want:
Beyond that, there is a long list of Perl modules required, starting with:
-* Date::Parse deb: libtimedate-perl
- rpm: perl-Time-ParseDate
+* Date::Parse deb: libtimedate-perl
+ pkg: p5-TimeDate
+ rpm: perl-TimeDate
-* Email::MIME deb: libemail-mime-perl
- rpm: perl-Email-MIME
+* Devel::Peek deb: libperl5.$MINOR (e.g. libperl5.24)
+ pkg: perl5
+ rpm: perl-Devel-Peek
+ (typically installed alongside Perl5)
-* Email::MIME::ContentType deb: libemail-mime-contenttype-perl
- rpm: perl-Email-MIME-ContentType
+* Email::MIME deb: libemail-mime-perl
+ pkg: p5-Email-MIME
+ rpm: perl-Email-MIME
-* Encode::MIME::Header deb: libencode-perl
- rpm: perl-Encode
+* Encode::MIME::Header deb: libencode-perl
+ pkg: perl5
+ rpm: perl-Encode
-* Plack deb: libplack-perl
- rpm: perl-Plack, perl-Plack-Test,
- (for HTML/Atom generation)
+* Plack deb: libplack-perl
+ pkg: p5-Plack
+ rpm: perl-Plack, perl-Plack-Test,
+ (for HTML/Atom generation)
-* URI::Escape deb: liburi-perl
- rpm: perl-URI
- (for HTML/Atom generation)
+* URI::Escape deb: liburi-perl
+ pkg: p5-URI
+ rpm: perl-URI
+ (for HTML/Atom generation)
-Where "deb" indicates package names for Debian-derived distributions and
+Where "deb" indicates package names for Debian-derived distributions,
+"pkg" is for the FreeBSD package (maybe other common BSDs, too), and
"rpm" is for RPM-based distributions (only known to work on Fedora).
Numerous optional modules are likely to be useful as well:
- - Search::Xapian deb: libsearch-xapian-perl
- rpm: perl-Search-Xapian
- (for NNTP service or gzipped mbox over HTTP)
-
- - IO::Compress::Gzip deb: perl-modules (or libio-compress-perl)
- rpm: perl-PerlIO-gzip
- (for gzipped mbox over HTTP)
-
- - DBI deb: libdbi-perl
- rpm: perl-DBI
- (for gzipped mbox over HTTP)
-
- - DBD::SQLite deb: libdbd-sqlite3-perl
- rpm: perl-DBD-SQLite
- (for NNTP service or gzipped mbox over HTTP)
-
- - Net::Server deb: libnet-server-perl
- rpm: perl-Net-Server
- (for HTTP/NNTP servers as standalone daemons,
- not needed as systemd services)
-
- - Filesys::Notify::Simple deb: libfilesys-notify-simple-perl
- rpm: perl-Filesys-Notify-Simple
- (for public-inbox-watch)
-
- - Inline::C[7] deb: libinline-c-perl
- (speeds up spawning of git(1) on Linux
- (see public-inbox-daemon(8))
-
- - Plack::Middleware::ReverseProxy
-
- deb: libplack-middleware-reverseproxy-perl
- rpm: perl-Plack-Middleware-ReverseProxy
- (ensures redirects are correct when running
- behind nginx or Varnish)
-
- - Plack::Middleware::Deflater
-
- deb: libplack-middleware-deflater-perl
- rpm: perl-Plack-Middleware-Deflater
- (saves bandwidth on responses)
-
- - Socket6 deb: libsocket6-perl
- rpm: perl-Socket6
- (pulled in by SpamAssassin and Net::Server,
- only necessary if using IPv6 with
- Plack::Middleware::AccessLog or similar
- on Perl <= 5.12)
-
- - Crypt::CBC deb: libcrypt-cbc-perl
- (for the rarely-used PublicInbox::Unsubscribe)
-
-On Fedora systems, you'll probably also end up wanting
-perl-Test-HTTP-Server-Simple, perl-Devel-Peek, and perl-IPC-Run to run the
-test suite. On Debian systems, libxml-feed-perl and libipc-run-perl
-will aid in running the test suite (XML::Feed and IPC::Run respectively,
-on CPAN).
+- DBD::SQLite deb: libdbd-sqlite3-perl
+ pkg: p5-DBD-SQLite
+ rpm: perl-DBD-SQLite
+ (for v2, NNTP, or gzipped mboxes)
+
+- Search::Xapian deb: libsearch-xapian-perl
+ pkg: p5-Search-Xapian
+ rpm: perl-Search-Xapian
+ (for v2, HTTP search)
+
+- Net::Server deb: libnet-server-perl
+ pkg: pkg-Net-Server
+ rpm: perl-Net-Server
+ (for HTTP/NNTP background daemons,
+ not needed as systemd services or
+ foreground servers)
+
+- Inline::C[7] deb: libinline-c-perl
+ pkg: pkg-Inline-C
+ (speeds up process spawning on Linux,
+ see public-inbox-daemon(8))
+
+- Plack::Middleware::ReverseProxy deb: libplack-middleware-reverseproxy-perl
+ pkg: p5-Plack-Middleware-ReverseProxy
+ rpm: perl-Plack-Middleware-ReverseProxy
+ (ensures redirects are correct when running
+ behind nginx or Varnish)
+
+- Plack::Middleware::Deflater deb: libplack-middleware-deflater-perl
+ pkg: p5 -Plack-Middleware-Deflater
+ rpm: perl-Plack-Middleware-Deflater
+ (saves bandwidth on responses)
+
+* highlight deb: libhighlight-perl
+ (for syntax highlighting with coderepo)
+
+The following modules are typically pulled in by dependencies listed
+above, so there is no need to explicitly install them:
+
+- Email::MIME::ContentType deb: libemail-mime-contenttype-perl
+ pkg: p5-Email-MIME-ContentType
+ rpm: perl-Email-MIME-ContentType
+ (pulled in by Email::MIME)
+
+- Email::Simple deb: libemail-simple-perl
+ pkg: p5-Email-Simple
+ rpm: perl-Email-Simple
+ (pulled in by Email::MIME)
+
+- DBI deb: libdbi-perl
+ pkg: p5-DBI
+ rpm: perl-DBI
+ (pulled in by DBD::SQLite)
+
+- Filesys::Notify::Simple deb: libfilesys-notify-simple-perl
+ pkg: pkg-Filesys-Notify-Simple
+ rpm: perl-Filesys-Notify-Simple
+ (for public-inbox-watch, pulled in by Plack)
+
+- IO::Compress::Gzip deb: perl-modules (or libio-compress-perl)
+ rpm: perl-PerlIO-gzip
+ pkg: perl5
+ (for gzipped mbox over HTTP)
+
+Uncommonly needed modules:
+
+- Socket6 deb: libsocket6-perl
+ pkg: p5-Socket6
+ rpm: perl-Socket6
+ (pulled in by SpamAssassin and Net::Server,
+ only necessary if using IPv6 with
+ Plack::Middleware::AccessLog or similar
+ on Perl <= 5.12)
+
+- Crypt::CBC deb: libcrypt-cbc-perl
+ pkg: p5-Crypt-CBC
+ (for PublicInbox::Unsubscribe (rarely used))
+
+Optional packages testing and development:
+
+- IPC::Run deb: libipc-run-perl
+ pkg: p5-IPC-Run
+ rpm: perl-IPC-Run
+
+- 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)
--------------------------------------
@@ -137,8 +180,8 @@ public-inbox will never store unregeneratable data in Xapian
or any other search database we might use; Xapian corruption
will not destroy critical data.
-See the public-inbox-overview(7) man page for the next steps once the
-installation is complete.
+See the public-inbox-overview(7) man page for the next steps once
+the installation is complete.
Copyright
---------
diff --git a/Makefile.PL b/Makefile.PL
index 3bb0072..b857667 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -29,10 +29,18 @@ WriteMakefile(
# Keep this sorted and synced to the INSTALL document
'Date::Parse' => 0,
'Email::MIME' => 0,
+
+ # the following should be pulled in by Email::MIME:
'Email::MIME::ContentType' => 0,
'Email::Simple' => 0,
+
+ # "libencode-perl" on Debian, `perl5' on FreeBSD
'Encode::MIME::Header' => 0,
+ # libperl$PERL_VERSION on Debian, `perl5' on FreeBSD,
+ # but Fedora seems to need this separately
+ 'Devel::Peek' => 0,
+
# TODO: these should really be made optional...
'Plack' => 0,
'URI::Escape' => 0,
--
EW
next prev parent reply other threads:[~2019-05-09 7:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-09 7:50 [PATCH 0/9] install updates Eric Wong
2019-05-09 7:50 ` Eric Wong [this message]
2019-05-09 7:50 ` [PATCH 2/9] INSTALL: depend on Encode instead of Encode::MIME::Header Eric Wong
2019-05-09 7:50 ` [PATCH 3/9] INSTALL: note xapian-compact(1) tool Eric Wong
2019-05-09 7:50 ` [PATCH 4/9] t/purge.t: fix unreferenced variable Eric Wong
2019-05-09 7:50 ` [PATCH 5/9] doc: use bullet list for wwwlisting options Eric Wong
2019-05-09 7:51 ` [PATCH 6/9] doc: give txt files proper titles Eric Wong
2019-05-09 7:51 ` [PATCH 7/9] Makefile.PL: improve make(1) portability Eric Wong
2019-05-09 7:51 ` [PATCH 8/9] doc/include.mk: remove git use and redundant declarations Eric Wong
2019-05-09 7:51 ` [PATCH 9/9] ci: include some scripts to make CI easier 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=20190509075103.27132-2-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.
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).