Date | Commit message (Collapse) |
|
The "2" is important, since "Linux::Inotify" without the "2"
is not available from Debian 9/10 or CentOS 7.x and seems
unmaintained.
|
|
1.3.0 isn't out, yet, and sometimes folks will rely on
INSTALL on our website while installing older versions,
so try to clarify that.
|
|
Some users just want to run -mda, -watch, and/or -nntpd.
Let them run just those without forcing them to pull in a
bunch of dependencies.
|
|
-mda should not be dealing with broken Date: headers
nowadays, and deprioritize it in our documentation and
internal checks.
|
|
We can replace the GNU-isms for building docs with Perl5
equivalents. The only downside is the resulting Makefile
gets larger, but that's the price of portability.
|
|
It's no longer needed and we're able to speed up some
of our tests as a result.
|
|
Jan Kiszka reported high polling frequency when using -watch.
It turns out OS-specific packages for Filesys::Notify::Simple do
not pull in interfaces to use kqueue or inotify, which are
required to perform power-efficient event-based wakeups on
Maildir writes.
Fix the name of the Filesys::Notify::Simple for FreeBSD while
we're at it.
Link: https://public-inbox.org/meta/c85803c6-6d77-a300-491a-9f310dd284c1@web.de/
|
|
ExtUtils::MakeMaker uses non-POSIX '::', at least; and
our own Documentation/include.mk and our postamble are
written for GNU make.
GNU make is also more widely-installed and available than any
other make; even if I'm not generally a fan of GNU-isms.
|
|
Digest::SHA is the most notable missing package at runtime
for a minimal system.
Tests don't run at all without Test::Simple (or Test::More).
Plack::Test is also a separate package, too...
Also, the package for IO::Compress::Gzip should be IO::Compress;
as perl-PerlIO-gzip is a different thing entirely which is not
relevant to our needs.
Test::HTTP::Server::Simple doesn't seem required at all for Plack
tests.
ExtUtils::MakeMaker needs to be documented as a install dependency
for people installing this, too; since AFAIK public-inbox is not
yet in any distros.
|
|
* origin/xap-optional:
admin: improve warnings and errors for missing modules
searchidx: do not create empty Xapian partitions for basic
lazy load Xapian and make it optional for v2
www: use Inbox->over where appropriate
nntp: use Inbox->over directly
inbox: add ->over method to ease access
|
|
It's only useful for a corner case in long-running daemons when
an admin decides to compact or vacuum a Xapian or SQLite DB.
As a result, other scripts should run slightly faster. For
instance, this saves about 80ms (2.710s => 2.630s) in t/mda.t
on my remote workstation.
While we're at it, make sure EvCleanup is properly require'd
in Daemon.pm and HTTP.pm and document our use of Devel::Peek.
|
|
More tests work without Search::Xapian, now.
Usability issues still need to be fixed
|
|
The Perl Xapian bindings do not support compacting, yet,
so we rely on the xapian-compact tool.
|
|
Email::MIME uses Encode::MIME::Header and depends on that
appropriately; however we depend on other parts of the Encode
distribution, but that's bundled with Perl by upstream, anyways;
and should place no additional burden on users.
|
|
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.
|
|
* origin/danga-bundle:
DS: epoll: fix misordered EPOLL_CTL_DEL call
DS: drop unused "_undef" sub
syscall: drop readahead wrapper
build: do not manify DS and Syscall pods
DS: handle EINTR in IO::Poll path, too
DS: workaround IO::Kqueue EINTR (mis-)handling
DS: drop profiling support
DS: remove unused fields and functions
listener: use EPOLLEXCLUSIVE for listen sockets
bundle Danga::Socket and Sys::Syscall
|
|
These modules are unmaintained upstream at the moment, but I'll
be able to help with the intended maintainer once/if CPAN
ownership is transferred. OTOH, we've been waiting for that
transfer for several years, now...
Changes I intend to make:
* EPOLLEXCLUSIVE for Linux
* remove unused fields wasting memory
* kqueue bugfixes e.g. https://rt.cpan.org/Ticket/Display.html?id=116615
* accept4 support
And some lower priority experiments:
* switch to EV_ONESHOT / EPOLLONESHOT (incompatible changes)
* nginx-style buffering to tmpfile instead of string array
* sendfile off tmpfile buffers
* io_uring maybe?
|
|
I mainly want to start using the '//' (defined-or) operator to
simplify code, and Perl 5.10.1 is roughly a decade old at this
point.
"given/when" would've be nice, but it's future is in doubt AFAIK.
I also started using the 'parent' module in WwwHighlight, and
'autodie' in UserContent.pm, both of which were only distributed
with Perl since 5.10.1; and testing with ancient
versions/distros is time-consuming.
Anyways, I think this a small-enough jump to not break any
existing installations, given we already depend on fairly
recent versions of git and Xapian.
Maybe we can use more newish Perl features in the future...
|
|
I basically forgot about this module, but "make syntax" on a
new chroot trips it up.
|
|
Users on Perl 5.14+ are common, so we can try the bundled Socket
(not "Socket6") module before attempting Socket6 for IPv6.
|
|
This allows v1 tests to continue working on git 1.8.0 for
now. This allows git 2.1.4 packaged with Debian 8 ("jessie")
to run old tests, at least.
I suppose it's safe to drop Debian 7 ("wheezy") due to our
dependency on git 1.8.0 for "merge-base --is-ancestor".
Writing V2 repositories requires git 2.6 for "get-mark"
support, so mask out tests for older gits.
|
|
Also, move Socket6 down since it's usually pulled in as
a dependency of Net::Server or SpamAssassin; and we can
fail gracefully without it.
|
|
So yes, both "libdatetime-perl" and "libtimedate-perl" exist
in Debian. We want the latter for the Date::Parse module.
(And the former pulls in THIRTY-SEVEN dependencies on a fresh
sid chroot, ohg yrsgcnq vf abg bar bs gurz).
|
|
Remove confusing documentation around ssoma now that we
have NNTP and downloadable mbox support.
Only lightly-checked for grammar and speling, and not yet
formatting. Edits, corrections and addendums expected :>
|
|
They really shouldn't be... Also, it seems like eliminating IPC::Run
is not going to be worth the effort.
|
|
|
|
* 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
|
|
Add a few more details and (especially) the Fedora package names. I also
took the liberty of reorganizing things slightly while I was there.
|
|
I've missed a few things over time :x
|
|
Using update-copyrights from gnulib
While we're at it, use the SPDX identifier for AGPL-3.0+ to
ease mechanical processing.
|
|
Introduce our own SearchThread class for threading messages.
This should allow us to specialize and optimize away objects
in future commits.
|
|
Not everybody needs to run an -mda or -watch
|
|
And improve documentation for existing dependencies, too.
|
|
We no longer depend on it for the core code, and tests
are optional for users. Hopefully this makes this
easier-to-install.
|
|
Debian 8.5 is out and fixes the Xapian corruption bug, so
no need to recommend jessie-backports anymore.
ref: https://www.debian.org/News/2016/20160604
|
|
This removes the Email::Filter dependency as well as the
signature-breaking scrubber code. We now prefer to
reject unacceptable messages and grudgingly (and blindly)
mirror messages we're not the primary endpoint for.
|
|
We still pull it in via Email::LocalDelivery, but that
dependency will go away, soon.
|
|
Thanks to Let's Encrypt and getssl, we can afford to have
HTTPS for our own hosting, and www.gnu.org has been accessible
over HTTPS for a long while.
While we're at it, update the copyright years, too.
|
|
Ugh, this is a nasty corruption bug and I can't recommend
this project for Debian 8.0 users without documenting this.
|
|
git has stricter requirements for ident names (no '<>')
which Email::Address allows.
Even in 1.908, Email::Address also has an incomplete fix for
CVE-2015-7686 with a DoS-able regexp for comments. Since we
don't care for or need all the RFC compliance of Email::Address,
avoiding it entirely may be preferable.
Email::Address will still be installed as a requirement for
Email::MIME, but it is only used by the
Email::MIME::header_str_set which we do not use
|
|
By converting to using ourt git-fast-import-based Import
module. This should allow us to be more easily installed.
|
|
Non-socket activation users will want to install Net::Server
for daemonization, pid file writing, and user/group switching.
|
|
Relying on Plack::Handler::CGI is much easier for long-term
maintenance and development.
Nowadays, we even include our own httpd implementation to
facilitate easier deployment with PSGI/Plack.
|
|
Add a few newlines for readability (perhaps at the expense of
economy). Stop mentioning "Open Source" as it is redundant
and "Free Software" fits our goals, better.
|
|
We'll continue developing and supporting ssoma, but it's unlikely to
gain much adoption in its current form; so stop cluttering up our
own README with it.
|
|
We don't have something like CGI or Plack to build an NNTP
server on top on, so we implemented one using Danga::Socket
for epoll/kqueue abstraction.
|
|
They're optional, but probably highly useful.
|
|
In the future, it should be possible to use this:
git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \
UPDATE_COPYRIGHT_USE_INTERVALS=2 \
xargs /path/to/gnulib/build-aux/update-copyright
|
|
We will attempt to generate Atom feeds "by hand" as the
XML::Atom::SimpleFeed API does not support streaming output.
Since email is large and servers are small, this should prevent
wasting memory when we generate larger feeds.
Of course, we hope clients use SAX parsers capable of handling
large streams without slurping.
|
|
Otherwise folks won't get downloadable mboxes
|