user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 0/9] install updates
@ 2019-05-09  7:50  7% Eric Wong
  2019-05-09  7:50  4% ` [PATCH 1/9] INSTALL: update with FreeBSD pkg names and reorder Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2019-05-09  7:50 UTC (permalink / raw)
  To: meta

A couple of build and installation related updates
to clarify package dependencies.  The INSTALL document
is hopefully less intimidating, now.

I've found ci/deps.perl pretty useful; maybe even for
ordinary users on Debian and FreeBSD systems.

I still haven't tested on any RPM-based systems, yet;
but FreeBSD 11.2 and 12.0 on amd64 seem fine; along
with Debian sid.

Eric Wong (9):
  INSTALL: update with FreeBSD pkg names and reorder
  INSTALL: depend on Encode instead of Encode::MIME::Header
  INSTALL: note xapian-compact(1) tool
  t/purge.t: fix unreferenced variable
  doc: use bullet list for wwwlisting options
  doc: give txt files proper titles
  Makefile.PL: improve make(1) portability
  doc/include.mk: remove git use and redundant declarations
  ci: include some scripts to make CI easier

 Documentation/design_www.txt          |   2 +
 Documentation/hosted.txt              |   2 +
 Documentation/include.mk              |  31 +++-
 Documentation/public-inbox-config.pod |  16 +-
 Documentation/txt2pre                 |   3 +-
 INSTALL                               | 205 +++++++++++++--------
 MANIFEST                              |   4 +
 Makefile.PL                           |  17 +-
 ci/README                             |  33 ++++
 ci/deps.perl                          | 254 ++++++++++++++++++++++++++
 ci/profiles.sh                        |  72 ++++++++
 ci/run.sh                             |  21 +++
 t/purge.t                             |   2 +-
 13 files changed, 558 insertions(+), 104 deletions(-)
 create mode 100644 ci/README
 create mode 100755 ci/deps.perl
 create mode 100755 ci/profiles.sh
 create mode 100755 ci/run.sh

-- 
EW


^ permalink raw reply	[relevance 7%]

* [PATCH 1/9] INSTALL: update with FreeBSD pkg names and reorder
  2019-05-09  7:50  7% [PATCH 0/9] install updates Eric Wong
@ 2019-05-09  7:50  4% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-05-09  7:50 UTC (permalink / raw)
  To: meta

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


^ permalink raw reply related	[relevance 4%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-05-09  7:50  7% [PATCH 0/9] install updates Eric Wong
2019-05-09  7:50  4% ` [PATCH 1/9] INSTALL: update with FreeBSD pkg names and reorder Eric Wong

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).