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
------------
* 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:
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)
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
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)
--------------------------------------
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
---------
# 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