about summary refs log tree commit homepage
DateCommit message (Collapse)
2019-10-30wwwlisting: fix spelling and clarify sub location
Spell "Schwartzian" correctly, and clarify the location of "modified" since we have multiple subs named "modified"
2019-10-30Merge branch 'learn'
* learn: doc: add public-inbox-learn(1) manpage mda: support multiple List-ID matches mda: prepare for multiple destinations inboxwritable: add assert_usable_dir sub mda: skip MIME parsing if spam mda: hoist out mda_filter_adjust filter/base: remove MAX_MID_SIZE constant mda: hoist out List-ID handling and reuse in -learn learn: hoist out remove_or_add subroutine learn: GIT_COMMITTER_<NAME|EMAIL> may be "" or "0" learn: update usage statement learn: only map recipient list on "ham" or "rm" learn: support multiple To/Cc headers
2019-10-30doc: add public-inbox-learn(1) manpage
Tools intended for end users need manpages.
2019-10-30mda: support multiple List-ID matches
While it's not RFC2919-conformant, mail software can theoretically set multiple List-ID headers. Deliver to all inboxes which match a given List-ID since that's likely the intended. Cc: Eric W. Biederman <ebiederm@xmission.com> Link: https://public-inbox.org/meta/87pniltscf.fsf@x220.int.ebiederm.org/
2019-10-30mda: prepare for multiple destinations
Multiple List-ID headers will be supported in the next commit
2019-10-30inboxwritable: add assert_usable_dir sub
And use it for mda, since "0" could be a usable directory if somebody insists on using relative paths...
2019-10-30mda: skip MIME parsing if spam
We don't want to waste cycles parsing the message for MIME bits if it's spam.
2019-10-30mda: hoist out mda_filter_adjust
It makes it easier to document the default -mda behavior is stricter than normal, including "public-inbox-learn ham"
2019-10-30filter/base: remove MAX_MID_SIZE constant
We don't need it in the filter, here, since we have one in the MDA package.
2019-10-30mda: hoist out List-ID handling and reuse in -learn
It's now possible to inject false-positive ham into an inbox the same way -mda does via List-ID.
2019-10-30learn: hoist out remove_or_add subroutine
We'll be reusing it for List-ID processing in the next commit.
2019-10-30learn: GIT_COMMITTER_<NAME|EMAIL> may be "" or "0"
Users may be zeroes or blanks.
2019-10-30learn: update usage statement
Use <foo|bar> since that seems to be the favored notation for required command args (taking a hint from git(1) manpage). While we're at it, remove the space after '<' for the redirect to match git.git coding style.
2019-10-30learn: only map recipient list on "ham" or "rm"
It's assumed that "spam" can end up anywhere due to Bcc:, so we need to scan every single inbox. However, "rm" is usually more targeted and and "ham" obviously only belongs in some inboxes.
2019-10-30learn: support multiple To/Cc headers
It's possible to specify these headers multiple times, and PublicInbox::MDA->precheck takes that into account, so -learn should, too.
2019-10-30Merge remote-tracking branch 'origin/multi-mid'
* origin/multi-mid: view: show X-Alt-Message-ID in permalink view, too index: allow search/lookups on X-Alt-Message-ID linkify: support adding "(raw)" link for Message-IDs view: improve warning for multiple Message-IDs view: move '<' and '>' outside <a> view: display redundant headers in permalink search: support multiple From/To/Cc/Subject headers
2019-10-30HACKING: add a note about avoiding recursion
Bad things happen when user data can control our stack size.
2019-10-28view: show X-Alt-Message-ID in permalink view, too
Since we index X-Alt-Message-ID (because we need to placate some NNTP clients), we now display it as well, since that Message-ID could be the X-Alt-Message-ID that the reader is actually interested in.
2019-10-28index: allow search/lookups on X-Alt-Message-ID
Since we replace extra Message-ID headers with X-Alt-Message-ID to placate NNTP clients, we should allow searching and indexing on X-Alt-Message-ID just like we do with Message-ID.
2019-10-28linkify: support adding "(raw)" link for Message-IDs
And use it for the per-message permalink display.
2019-10-28view: improve warning for multiple Message-IDs
"refer" is not the correct term, here; since that would mean multiple messages have the current message in the "References:" header, and that's a normal occurence. Instead, we need to warn the reader that the given message itself has multiple Message-IDs.
2019-10-28view: move '<' and '>' outside <a>
Browsers may underline '<' and '>' in links, which may be confused with '≤' and '≥'. So have the Message-ID header display follow what we do with In-Reply-To headers and move the "&lt;" and "&gt;" outside of <a> in the HTML.
2019-10-28view: display redundant headers in permalink
Mail headers can contain multiple headers of any type, so ensure we don't hide any information we're getting in the per-message permalink views. This means it's possible to have multiple From, Date, To, Cc, Subject, and In-Reply-To headers displayed. The thread indices are a special case, I guess, since we run out of space on the line if the headers too long and tools like mutt only show the first one.
2019-10-28search: support multiple From/To/Cc/Subject headers
We can easily support searching on messages with multiple From/To/Cc/Subject headers just like we do with multiple Message-ID headers. This matches the normal mutt pager display behavior.
2019-10-23Merge branch 'regen'
* regen: v2writable: use msgmap as multi_mid queue v2writable: move git->cleanup to the correct place v2writable: reindex handles 3-headered monsters v2writable: improve "num_for" API and disambiguate v2writable: set unindexed article number
2019-10-22doc: clean-doc: remove generated standards.txt
I need to remove all the generated documentation files before running "git-set-file-times" for rsync to our website.
2019-10-22syscall: get rid of sendfile wrappers for now
I'm not sure they'll make a measurable difference or will be worth the effort in the future given the prevalance of HTTPS and giant socket buffers. Using Inline::C for this may make more sense in the future, too, especially if we want to be able to use GnuTLS.
2019-10-22hval: remove new_oneline
commit 476fc666c223f0fb ('reduce "PublicInbox::Hval->new_oneline" use') was mis-titled, since it completely eliminated ->new_oneline use.
2019-10-22git: remove src_blob_url
This was intended for solver, but it's unused since commit 915cd090798069a4 ("solver: switch patch application to use a callback")
2019-10-22watchmaildir: remove redundant _path_to_mime
InboxWritable::maildir_path_load exists and we may support it for use with standalone scripts.
2019-10-22inboxwritable: import_maildir uses maildir_path_load
I'm not sure if this will get used anywhere, but at least call a function which exists in dead code.
2019-10-22www: remove unused ctx_get sub
This hasn't been used since commit 48b21cb662c1e17b7 in 2016: ("declare Inbox object for reusability")
2019-10-22overidx: remove unused delete_articles sub
This hasn't been used since commit 1b7e935ab1690e28 ("searchidx: fix incremental index with indexlevel=basic on v1")
2019-10-22v2writable: use msgmap as multi_mid queue
Instead of storing Message-IDs in the Msgmap object, we can store the blob OID. For initial indexing of mirrors, this lets us preserve $sync->{regen} by storing the intended article number in the queue. On --reindex, the article number we store in Msgmap is ignored but only used for ordering purposes. This also allows us to avoid ENOMEM errors if somebody abuses our system by reusing Message-IDs; but we now risk ENOSPC instead (but systems tend to have more FS storage than RAM).
2019-10-22v2writable: move git->cleanup to the correct place
We need to stop the git process to avoid leaking FDs to Xapian if we recurse ->index_sync on reindex.
2019-10-21v2writable: reindex handles 3-headered monsters
And maybe 8-headered ones, too... I noticed --reindex failing on the linux-renesas-soc mirror due one 3-headed monster of a message having 3 sets of headers; while another normal message had a Message-ID that matched one of the 3 IDs of the 3-headed monster. We still try to do the majority of indexing backwards, but we defer indexing multi-Message-ID'd messages until the end to ensure we get all the "good" messages in before we process the multi-headered ones. Link: https://public-inbox.org/meta/20191016211415.GA6084@dcvr/
2019-10-21v2writable: improve "num_for" API and disambiguate
Make it obvious that we're not the Msgmap sub and return an array because it's less awkward than providing a modifiable ref to a function to write to.
2019-10-21v2writable: set unindexed article number
We'll actually use the keys of this hash in future commits.
2019-10-21doc: update 1.2 work-in-progress release notes
Will be updating this further after some reindex and multi-header bugs are fixed.
2019-10-21TODO: DHT (distributed hash table) for Message-IDs
This would encourage SPOF avoidance. It would also make it easier to do "Certificate Transparency"-style attestation of messages.
2019-10-18examples/grok-pull.post_update_hook: fix config detection
We need to account for both the old ("mainrepo") and new ("inboxdir") names. But "dir" was just a search+replace error and we don't use that outside of "coderepo.dir".
2019-10-17TODO: add a few more items around coderepos
Going where no email client/tool has gone before...
2019-10-17doc: v2-format: get man output under 80 cols
We need to better ensure our manpage output is readable with a standard terminal width. And fix some wording while we're at it: * use "inbox" instead of "list" for our storage * replace the last "$PART" reference with "$SHARD"
2019-10-17public-inbox-v2-format(5): fix formatting
This was being rendered as a paragraph, so line breaks weren't preserved and it was unreadable in man.
2019-10-17Merge remote-tracking branch 'origin/inboxdir'
* origin/inboxdir: config: remove redundant inboxdir check config: support "inboxdir" in addition to "mainrepo" examples/grok-pull.post_update_hook: use "inbox_dir"
2019-10-17doc: enable "check-man" target via "check" in gmake
man(1) on FreeBSD supports pathnames as operands just fine, so there's hope other BSDs follow suit and we can enable this check target everywhere.
2019-10-17doc: avoid [<directory>] arg for git-clone(1)
While it is possible to host source code from the root of a URL using git-http-backend(1), the lack of pathname in the URL can also be confusing to users. So just add the path name of the project into the URL itself so users can invoke "git clone" with one command-line argument instead of two. Of course, previously documented URLs continue to work as normal.
2019-10-17doc: update public-inbox-overview(7) for v2
The overview was v1-specific and probably confusing/misleading to new users since v2 is favored. Hopefully improve wording while we're at it and avoid overloading terms like "parts" (which could be confused with Xapian "shards"). Using the word "directly" after "Mirroring mailing lists" did not make sense to me, either.
2019-10-16doc: check-man: use COLUMNS env for width
That's the environment documented in ncurses(3) and man(1) from the man-db.nongnu.org distribution of man.
2019-10-16config: remove redundant inboxdir check
This was causing compatibility problems for old configs when using public-inbox-nntpd.