]> Sergey Matveev's repositories - public-inbox.git/blobdiff - INSTALL
public-inbox 1.6.1 - minor bugfix release
[public-inbox.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 834376278bc216da76a586a1c88dd02028ba729f..9f05c3f622509ec4fc8832ea13d77a575d6fb1af 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -7,7 +7,8 @@ if they want to import mail into their personal inboxes.
 
 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")
+the "stable" distribution, currently Debian 10.x ("buster"),
+but older versions of Debian remain supported.
 
 Most packages are available in other GNU/Linux distributions
 and FreeBSD.
@@ -21,9 +22,9 @@ Requirements
 public-inbox requires a number of other packages to access its full
 functionality.  The core tools are, of course:
 
-* Git (1.8.0+, 2.6+ for writing v2 repositories)
+* Git (1.8.0+, 2.6+ for writing v2 inboxes)
 * Perl 5.10.1+
-* DBD::SQLite (needed for NNTP, message threading, and v2 repositories)
+* DBD::SQLite (needed for NNTP, message threading, and v2 inboxes)
 
 To accept incoming mail into a public inbox, you'll likely want:
 
@@ -32,23 +33,33 @@ 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
-                                   pkg: p5-TimeDate
-                                   rpm: perl-TimeDate
+* Digest::SHA                      typically installed with Perl
+                                   rpm: perl-Digest-SHA
+
+* 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:
+
 * Plack                            deb: libplack-perl
                                    pkg: p5-Plack
                                    rpm: perl-Plack, perl-Plack-Test,
                                    (for HTML/Atom generation)
 
-* URI::Escape                      deb: liburi-perl
-                                   pkg: p5-URI
-                                   rpm: perl-URI
-                                   (for HTML/Atom generation)
+- Date::Parse                      deb: libtimedate-perl
+                                   pkg: p5-TimeDate
+                                   rpm: perl-TimeDate
+                                   (for broken, mostly historical emails)
 
 Where "deb" indicates package names for Debian-derived distributions,
 "pkg" is for the FreeBSD package (maybe other common BSDs, too), and
@@ -64,7 +75,7 @@ Numerous optional modules are likely to be useful as well:
 - Search::Xapian                   deb: libsearch-xapian-perl
                                    pkg: p5-Search-Xapian
                                    rpm: perl-Search-Xapian
-                                   (for v2, HTTP search)
+                                   (HTTP search)
 
 - Net::Server                      deb: libnet-server-perl
                                    pkg: pkg-Net-Server
@@ -73,22 +84,22 @@ Numerous optional modules are likely to be useful as well:
                                     not needed as systemd services or
                                     foreground servers)
 
-- Inline::C[7]                     deb: libinline-c-perl
+- Inline::C                        deb: libinline-c-perl
                                    pkg: pkg-Inline-C
                                    (speeds up process spawning on Linux,
                                     see public-inbox-daemon(8))
 
+- Email::Address::XS               deb: libemail-address-xs-perl
+                                   pkg: pkg-Email-Address-XS
+                                   (correct parsing of tricky email
+                                    addresses, phrases and comments)
+
 - 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)
 
@@ -100,16 +111,6 @@ Numerous optional modules are likely to be useful as well:
 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)
-
 * Encode                           deb: libperl5.$MINOR (or libencode-perl)
                                    pkg: perl5
                                    rpm: perl-Encode
@@ -126,15 +127,14 @@ above, so there is no need to explicitly install them:
                                    (optional for stale FD cleanup in daemons,
                                     typically installed alongside Perl5)
 
-- 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)
+- Linux::Inotify2                  deb: liblinux-inotify2-perl
+                                   rpm: perl-Linux-Inotify2
+                                   (for public-inbox-watch on Linux)
 
-- IO::Compress::Gzip               deb: perl-modules (or libio-compress-perl)
-                                   rpm: perl-PerlIO-gzip
+- IO::Compress (::Gzip)            deb: perl-modules (or libio-compress-perl)
                                    pkg: perl5
-                                   (for gzipped mbox over HTTP)
+                                   rpm: perl-IO-Compress
+                                   (for gzipped mbox over HTTP, v2 format)
 
 Uncommonly needed modules:
 
@@ -152,28 +152,31 @@ Uncommonly needed modules:
 
 Optional packages testing and development:
 
-- IPC::Run                         deb: libipc-run-perl
-                                   pkg: p5-IPC-Run
-                                   rpm: perl-IPC-Run
+- Plack::Test                      deb: libplack-test-perl
+                                   pkg: p5-Plack
+                                   rpm: perl-Plack-Test
 
-- XML::Feed                        deb: libxml-feed-perl
-                                   pkg: p5-XML-Feed
-                                   rpm: perl-XML-Feed
+- Test::Simple                     deb: perl-modules-5.$MINOR
+                                   pkg: perl5
+                                   rpm: perl-Test-Simple
 
-- 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?)
+- XML::TreePP                      deb: libxml-treepp-perl
+                                   pkg: p5-XML-TreePP
+                                   rpm: perl-XML-TreePP
 
 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:
 
         perl Makefile.PL
         make
-        make test
+        make test    # see HACKING for faster tests for hackers
         make install # root permissions may be needed
 
 When installing Search::Xapian, make sure the underlying Xapian
@@ -193,5 +196,5 @@ the installation is complete.
 Copyright
 ---------
 
-Copyright 2013-2019 all contributors <meta@public-inbox.org>
+Copyright 2013-2020 all contributors <meta@public-inbox.org>
 License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>