]> Sergey Matveev's repositories - public-inbox.git/commitdiff
Merge remote-tracking branch 'origin/master' into v2
authorEric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Wed, 18 Apr 2018 20:58:35 +0000 (20:58 +0000)
committerEric Wong (Contractor, The Linux Foundation) <e@80x24.org>
Wed, 18 Apr 2018 20:58:35 +0000 (20:58 +0000)
* origin/master:
  nntp: allow and ignore empty commands
  mbox: do not barf on queries which return no results
  nntp: fix NEWNEWS command
  searchview: fix non-numeric comparison
  Allow specification of the number of search results to return
  githttpbackend: avoid infinite loop on generic PSGI servers
  http: fix modification of read-only value
  extmsg: use news.gmane.org for Message-ID lookups
  extmsg: rework partial MID matching to favor current inbox
  Update the installation instructions with Fedora package names
  nntp: do not drain rbuf if there is a command pending
  nntp: improve fairness during XOVER and similar commands
  searchidx: do not modify Xapian DB while iterating
  Don't use LIMIT in UPDATE statements

1  2 
INSTALL
lib/PublicInbox/ExtMsg.pm
lib/PublicInbox/Msgmap.pm
lib/PublicInbox/NNTP.pm
lib/PublicInbox/SearchView.pm
t/nntpd.t
t/psgi_search.t

diff --cc INSTALL
index 11d844cf1c9e8c3b4de293d5de158f19fa9b16bc,d57696e7bcc69a70295f52428853f5edd7171a34..87aa696170d258f12ef01fa2f1e8bd8e1de42c27
+++ b/INSTALL
@@@ -34,29 -23,78 +23,97 @@@ To accept incoming mail into a public i
  * MTA - postfix is recommended (for public-inbox-mda)
  * SpamAssassin (spamc/spamd)   (for public-inbox-watch/public-inbox-mda)
  
- Optional Perl modules:
-   - Plack[1]                   libplack-perl
-   - URI::Escape[1]             liburi-perl
-   - Search::Xapian[2][3]       libsearch-xapian-perl
-   - IO::Compress::Gzip[3]      perl-modules (or libio-compress-perl)
-   - DBI[3]                     libdbi-perl
-   - DBD::SQLite[2][3]          libdbd-sqlite3-perl
-   - Danga::Socket[4]           libdanga-socket-perl
-   - Net::Server[5]             libnet-server-perl
-   - Filesys::Notify::Simple[6] libfilesys-notify-simple-perl
-   - Inline::C[7]               libinline-c-perl
-   - Plack::Middleware::ReverseProxy[8] libplack-middleware-reverseproxy-perl
-   - Plack::Middleware::Deflater[8] libplack-middleware-deflater-perl
- [1] - Optional, needed for serving/generating Atom and HTML pages
- [2] - Optional, only required for NNTP server
- [3] - Optional, needed for gzipped mbox support over HTTP
- [4] - Optional, needed for bundled HTTP and NNTP servers
- [5] - Optional, needed for standalone daemonization of HTTP+NNTP servers
- [6] - Optional, needed for public-inbox-watch Maildir watcher
- [7] - Optional, allows speeds up spawning on Linux (see public-inbox-daemon(8))
- [8] - Optional, recommended for PSGI interface
+ Beyond that, there is a long list of Perl modules required, starting with:
+ * Date::Parse                   deb: libdatetime-perl
+                                 rpm: perl-Time-ParseDate
+ * Email::MIME                   deb: libemail-mime-perl
+                                 rpm: perl-Email-MIME
+ * Email::MIME::ContentType      deb: libemail-mime-contenttype-perl
+                                 rpm: perl-Email-MIME-ContentType
+ * Encode::MIME::Header          deb: libencode-perl
+                                 rpm: perl-Encode
+ Where "deb" indicates package names for Debian-derived distributions and
+ "rpm" is for RPM-based distributions (only known to work on Fedora).
+ Numerous optional modules are likely to be useful as well:
+   - Plack                      deb: libplack-perl
+                                rpm: perl-Plack, perl-Plack-Test,
 -                                    perl-Plack-Middleware-ReverseProxy,
 -                                    perl-Plack-Middleware-Deflater
+                                (for HTML/Atom generation)
+   - URI::Escape                deb: liburi-perl
+                                rpm: perl-URI
+                                (for HTML/Atom generation)
+   - 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)
+   - Danga::Socket              deb: libdanga-socket-perl
+                                rpm: perl-Danga-Socket
+                                (for bundled HTTP and NNTP servers)
+   - Net::Server                deb: libnet-server-perl
+                                rpm: perl-Net-Server
+                                (for HTTP/NNTP servers as standalone daemons)
+   - 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 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)
++
+ 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.
++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).
++
++(*) we hope to drop this dependency someday
+ standard MakeMaker installation (Perl)
+ --------------------------------------
+ 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 install # root permissions may be needed
  
  When installing Search::Xapian, make sure the underlying Xapian
  installation is not affected by an index corruption bug:
Simple merge
Simple merge
Simple merge
index d038dfcac761912f9338783be5ea164469dcbdf7,1c4442e4d7b8a300775c817aac435b47da9abb56..5d500c1b2ee655c26c214e9f75e36d427ecc7b7b
@@@ -180,8 -181,10 +181,9 @@@ sub search_nav_top 
  sub search_nav_bot {
        my ($mset, $q) = @_;
        my $total = $mset->get_matches_estimated;
 -      my $nr = scalar $mset->items;
        my $o = $q->{o};
 -      my $end = $o + $nr;
+       my $l = $q->{l};
 +      my $end = $o + $mset->size;
        my $beg = $o + 1;
        my $rv = '</pre><hr><pre id=t>';
        if ($beg <= $end) {
diff --cc t/nntpd.t
Simple merge
diff --cc t/psgi_search.t
Simple merge