about summary refs log tree commit homepage
path: root/Makefile.PL
DateCommit message (Collapse)
2020-02-10public-inbox 1.3.0 v1.3.0
2020-02-06treewide: run update-copyrights from gnulib for 2019
I didn't wait until September to do it, this year!
2020-02-06doc: remove .x/ subdirectory for Xapian manpages
There's no need to keep Xapian manpage renderings in a separate subdirectory, after all. Eliminating this difference between the local FS and URL path will allow relative URLs to the Xapian manpages in our local HTML documentation to work smoothly, since there was never any ".x/" path component for files served from public-inbox.org
2020-02-06doc: add data flow diagram using Graph::Easy
Maybe this can make it easier for new and potential users to understand what's going on.
2020-01-25website: omit technical/ and other subdirs
We don't need to clutter the website with unnecessary technical information. Anybody who reads the technical/ directory should be looking at our source code, anyways; and we also have cgit and gitweb mirrors.
2020-01-25website: re-add top-level files
I noticed the TODO was out-of-date on the website, among some other things. This was broken in moving GNU-isms in the Makefile to Perl.
2020-01-25doc: avoid needless rebuilds of NEWS
Repeatedly rebuilding `NEWS' because the mtime of `NEWS' is synched to the latest release .eml is a bit annoying, but necessary to save bandwidth for the website. So we'll also update the mtime of the source .eml file when reading them. It's kinda gross to be setting mtimes of source .eml files in Documentation/RelNotes/, but I can't think of anything better at the moment...
2020-01-11make Filesys::Notify::Simple optional
It's only used by us in public-inbox-watch, and maybe not for long. It's in most installations because Plack pulls it in though, but Plack is no longer required.
2020-01-11make Plack optional for non-WWW and non-httpd users
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.
2020-01-06treewide: "require" + "use" cleanup and docs
There's a bunch of leftover "require" and "use" statements we no longer need and can get rid of, along with some excessive imports via "use". IO::Handle usage isn't always obvious, so add comments describing why a package loads it. Along the same lines, document the tmpdir support as the reason we depend on File::Temp 0.19, even though every Perl 5.10.1+ user has it. While we're at it, favor "use" over "require", since it it gives us extra compile-time checking.
2020-01-03build: allow "check" to work in non-git subdirs of worktrees
Some people will place the contents of an unpacked tarball inside another directory controlled by git (e.g. a ports tree or even git-versioned home directory). "git ls-files" will succeed in those cases, so we must check for the existence of a ".git" dir, instead.
2020-01-02build: fix xapian-* manpage generation
extman.perl requires the name of its target
2019-12-19t/run.perl: to avoid repeated process spawning for *.t
Spawning a new Perl interpreter for every test case means Perl has to reparse and recompile every single file it needs, costing us performance and development time. Now that we've modified our code to avoid global state, we can preload everything we need. The new "check-run" test target is now 20-30% faster than the original "check" target.
2019-12-18Makefile.PL: sort target and var lists
Sorting makes it easier to review the generated result.
2019-12-17Makefile.PL: allow overriding "prove" from make CLI
Development versions of Perl install "prove$VERSION" where $VERSION is something like "5.31.7". This makes it easier to test everything we have against development versions of Perl5. Note: I could not find a way to get quoting right to use the "--exec $(PERL)" option of prove(1), but that would be the best option for working transparently after running: perl5.31.7 Makefile.PL
2019-12-12Makefile.PL: fix "dsyn" target
The "dsyn" target needs to remain working, despite still being dependent on GNU-isms at the moment. Fixes: 73fe3421f1ecbdc8 ("build: support doc generation w/o GNU make")
2019-12-12Date::Parse is now optional
-mda should not be dealing with broken Date: headers nowadays, and deprioritize it in our documentation and internal checks.
2019-12-11build: support doc generation w/o GNU make
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.
2019-11-27Makefile.PL: MANIFEST dependency fix
We need to force an update to Makefile (not Makefile.PL) when MANIFEST changes. Since "Makefile" (aka. "$(FIRST_MAKEFILE)") is already a single-colon make target; we can't create a double-colon rule to augment it. So we'll continue using a "Makefile.PL" rule, but have it recreate the resulting Makefile Finally, change the "check" target to use "prove -b" instead of "prove -l" so we test against "blib/lib", since what's in the "blib" dir will be installed. Fixes: 4c20de0694d06ff3 ("Makefile.PL: add dependency on MANIFEST contents")
2019-11-24check for File::Temp 0.19 for ->newdir method
This is distributed with Perl 5.10.1 and onwards, so it should not be an installation burden for any users. I'm planning to move away from tempdir() entirely and use File::Temp->newdir to remove dependencies on END{} blocks.
2019-11-03public-inbox v1.2.0 v1.2.0
2019-10-09doc: PublicInbox::SaPlugin::ListMirror manpage
This is a plugin for SpamAssassin that happens to be quite useful in keeping spam off lists I mirror. Hopefully more people can find it useful now that it has a manpage.
2019-10-07Makefile.PL: add dependency on MANIFEST contents
This prevents breakage when running installed scripts when a user fetches from git and forgets to run "perl Makefile.PL" before "make install".
2019-09-09run update-copyrights from gnulib for 2019
2019-06-24Makefile: skip DSKQXS in global syntax check
IO::KQueue isn't easily installable on Linux systems.
2019-06-14Makefile.PL: add test scripts to syntax checks
I make syntax errors all the time :x
2019-06-13Makefile.PL: "dsyn" target to check syntax of changed files
We have lots of files and syntax-checking every single one of them is slow. Enable "perl -w" in the existing syntax check while we're at it.
2019-06-13doc: update dependencies for CentOS 7.x
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.
2019-05-29Makefile.PL: enable prove warnings
We already "use warnings" everywhere, but could miss some spots. This ought to cover that, and usually Perl module authors are consistent about avoiding warnings that we won't clutter our test outputs.
2019-05-29Makefile.PL: allow `N' variable to be set in local config.mak
This can useful for limiting test resource use without relying on remembering the variable command-line.
2019-05-15remove hard Devel::Peek dependency and lazy load for daemons
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.
2019-05-08Makefile.PL: improve make(1) portability
The `shell' function appears missing, so we'll rely on Bourne shell expansioN, instead. Use "$?" instead of "$<" since the latter is only specified for inference and .DEFAULT rules, not target rules. Tested on FreeBSD make(1) and bmake(1) on Debian.
2019-05-08INSTALL: depend on Encode instead of Encode::MIME::Header
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.
2019-05-08INSTALL: update with FreeBSD pkg names and reorder
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.
2019-05-08build: do not manify DS and Syscall pods
We don't need to increase our install footprint with documentation from our internals (which will surely change).
2019-01-20$INBOX/_/text/color/ and sample user-side CSS
Since we now support more CSS classes for coloring, give this feature more visibility.
2019-01-02INSTALL: note Plack and URI::Escape are required at the moment
They really shouldn't be... Also, it seems like eliminating IPC::Run is not going to be worth the effort.
2018-06-13Makefile.PL: do not depend on git
Otherwise, things do not work from a tarball distribution. Reported-by: Leah Neukirchen <leah@vuxu.org> https://public-inbox.org/meta/871sdfzy80.fsf@gmail.com/
2018-05-09public-inbox 1.1.0-pre1 v1.1.0-pre1
Pre-release for v2 repository support. Thanks to The Linux Foundation for supporting this work!
2018-02-08public-inbox 1.0.0 v1.0.0
Might as well, this release is mostly to serve as a checkpoint for the start of new development on v2 stuff mentioned in the TODO.
2018-02-07update copyrights for 2018
Using update-copyrights from gnulib While we're at it, use the SPDX identifier for AGPL-3.0+ to ease mechanical processing.
2016-10-05thread: remove Mail::Thread dependency
Introduce our own SearchThread class for threading messages. This should allow us to specialize and optimize away objects in future commits.
2016-06-20MANIFEST: update with recent changes
And add a check-manifest target to the Makefile to ensure we're up-to-date with git (but do not depend on git).
2016-06-17remove dependency on IPC::Run
We no longer depend on it for the core code, and tests are optional for users. Hopefully this makes this easier-to-install.
2016-06-15mda: hook up new filter functionality
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.
2016-06-15drop dependency on File::Path::Expand
We still pull it in via Email::LocalDelivery, but that dependency will go away, soon.
2016-05-28Makefile.PL: allow N to be overridden
Relying on the number of processors isn't a great idea since some of our tests rely on delays to test blocking and slow client behavior.
2016-05-25remove Email::Address dependency
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
2016-05-14import ssoma-replay example script I've been using
Unfortunately, most users still prefer their mail delivered over SMTP; so we'll at least document mlmmj integration for now until we can popularize pull-based reading over POP3/NNTP/ssoma.
2016-05-14build: support eatmydata in "make check" target by default
This should help poor developers who still use rotating disks on cheap netbooks.