X-Git-Url: http://www.git.stargrave.org/?p=public-inbox.git;a=blobdiff_plain;f=INSTALL;h=9f05c3f622509ec4fc8832ea13d77a575d6fb1af;hp=0246299be05816b47e9ed47627446434b14dcf28;hb=refs%2Ftags%2Fv1.6.1;hpb=e220b8b2ee5cfd458167dc2c6c92726352c4c80e diff --git a/INSTALL b/INSTALL index 0246299b..9f05c3f6 100644 --- 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 @@ -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 +Copyright 2013-2020 all contributors License: AGPL-3.0+