diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/dc-dlvr-spam-flow.txt | 2 | ||||
-rw-r--r-- | Documentation/include.mk | 9 | ||||
-rw-r--r-- | Documentation/public-inbox-mda.pod | 25 | ||||
-rw-r--r-- | Documentation/public-inbox-overview.pod | 68 |
4 files changed, 74 insertions, 30 deletions
diff --git a/Documentation/dc-dlvr-spam-flow.txt b/Documentation/dc-dlvr-spam-flow.txt index 81aba766..d151d272 100644 --- a/Documentation/dc-dlvr-spam-flow.txt +++ b/Documentation/dc-dlvr-spam-flow.txt @@ -45,4 +45,4 @@ delivery path as well as removing the message from the git tree. * spamc / spamd - SpamAssassin: http://spamassassin.apache.org/ * report-spam / dc-dlvr - distributed with public-inbox in the scripts/ - directory: git clone https://public-inbox.org/ public-inbox + directory: git clone https://public-inbox.org/public-inbox.git diff --git a/Documentation/include.mk b/Documentation/include.mk index 4af8d455..1460604d 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -13,7 +13,6 @@ MAN = man # this is "xml" on FreeBSD and maybe some other distros: XMLSTARLET = xmlstarlet -AWK = awk # same as pod2text COLUMNS = 76 @@ -89,11 +88,9 @@ doc_install :: install-man %.1 %.5 %.7 %.8 : Documentation/%.pod $(podman) -s $(subst .,,$(suffix $@)) $< $@+ && mv $@+ $@ -# n.b. not sure if our usage of man(1) is portable or not, so not -# enabled by default "check" target: -# check :: check-man -check_man = @echo CHECK80 $<;COLS=80 $(MAN) ./$^ | \ - $(AWK) 'length>80{print;err=1}END{exit(err)}' >&2 +check :: check-man +check_man = @echo CHECK80 $<;COLUMNS=80 $(MAN) ./$^ | \ + $(AWK) '{gsub(/\b./,"")}length>80{print;err=1}END{exit(err)}' >&2 %.1.cols : %.1; $(check_man) %.5.cols : %.5; $(check_man) diff --git a/Documentation/public-inbox-mda.pod b/Documentation/public-inbox-mda.pod index 921b7a15..01bb8476 100644 --- a/Documentation/public-inbox-mda.pod +++ b/Documentation/public-inbox-mda.pod @@ -16,6 +16,31 @@ By default, it relies on L<spamc(1)> for filtering mail, but may be disabled via L<public-inbox-config(5)/publicinboxmda.spamcheck> +=head1 OPTIONS + +=over 8 + +=item --no-precheck + +By default, public-inbox-mda does some simple checks before +invoking L<spamc(1)> since it is intended to receive mail before +it goes to a mailing list. + +However, some users prefer to use public-inbox-mda to mirror +mailing lists. This option exists to support those users. + +Using this option, the following prechecks are disabled: + + * multiple Message-IDs + * non-existent Message-IDs + * Message-IDs longer than 244 characters long + * From: header shorter than 3 characters + * Subject: header shorter than 2 characters + * unusable Date: headers + * inbox address specified in To: or Cc: header + +=back + =head1 ENVIRONMENT =over 8 diff --git a/Documentation/public-inbox-overview.pod b/Documentation/public-inbox-overview.pod index 46060d0c..91d4a88e 100644 --- a/Documentation/public-inbox-overview.pod +++ b/Documentation/public-inbox-overview.pod @@ -4,7 +4,7 @@ public-inbox-overview - an overview of public-inbox =head1 DESCRIPTION -public-inbox consists of many parts which may be used +public-inbox consists of many pieces which may be used independently or in conjunction of each other for: =over 4 @@ -15,11 +15,11 @@ Mirroring existing public-inboxes. =item 2 -Mirroring mailing lists directly. +Mirroring mailing lists. =item 3 -Hosting standalone. +Hosting standalone inboxes. =back @@ -30,35 +30,52 @@ started. Your mirror will remain dependent on the REMOTE_URL you are mirroring and you only need to use two new commands in addition to common L<git(1)> commands. - git clone --mirror REMOTE_URL /path/to/repo.git +Instructions are different depending on whether the inbox +is L<public-inbox-v1-format(5)> or L<public-inbox-v2-format(5)>. +See the "Archives are clonable:" part of the WWW interface +of a given inbox for cloning instructions specific to +that inbox. The instructions are roughly: - # The following should create the necessary entry in - # ~/.public-inbox/config - public-inbox-init NAME /path/to/repo.git MY_URL LIST_ADDRESS + # for v1 inboxes: + git clone --mirror URL INBOX_DIR - # Optional but strongly recommended for hosting HTTP - # (and required for NNTP) - # enable search (requires Search::Xapian and DBD::SQLite) - public-inbox-index /path/to/repo.git + # for v2 inboxes (each epoch needs to be cloned): + git clone --mirror URL/EPOCH INBOX_DIR/git/EPOCH.git - # Periodically update the repo with the following commands - # to update the git repo and index new messages: - cd /path/to/repo.git && git fetch && public-inbox-index + # The following should create the necessary entry in + # ~/.public-inbox/config, use "-V2" only for v2 inboxes: + public-inbox-init [-V2] NAME INBOX_DIR MY_URL LIST_ADDRESS -See L</"Hosting public-inboxes"> below for info on how to expose + # Optional but strongly recommended for hosting HTTP + # (and required for NNTP) + # enable overview (requires DBD::SQLite) and, if Search::Xapian is + # available, search: + public-inbox-index INBOX_DIR + + # Periodically fetch the repo using git-fetch(1) + # for v1 inboxes: + git --git-dir=INBOX_DIR fetch + + # for v2 (in most cases, only the newest epoch needs to be fetched): + git --git-dir=INBOX_DIR/git/EPOCH.git fetch + + # index new messages after fetching: + public-inbox-index INBOX_DIR + +See L</"Serving public-inboxes"> below for info on how to expose your mirror to other readers. -=head2 Mirroring mailing lists directly +=head2 Mirroring mailing lists -Mirroring existing mailing lists may be done by any reader +Mirroring mailing lists may be done by any reader of a mailing list using L<public-inbox-watch(1)>. # This will create a new git repository: - public-inbox-init NAME /path/to/repo.git MY_URL LIST_ADDRESS + public-inbox-init -V2 NAME INBOX_DIR MY_URL LIST_ADDRESS Then, see the L<public-inbox-watch(1)> manual for configuring -C<watch>, C<watchheader>, and the optional C<spamcheck> and -C<watchspam> entries. +C<watch>, C<watchheader>, C<listid> and the optional C<spamcheck> +and C<watchspam> entries. You will need to leave L<public-inbox-watch(1)> running to keep the mailbox up-to-date as messages are delivered to @@ -69,15 +86,20 @@ is recommended. L<public-inbox-watch(1)> will automatically maintain the indices if they were created by L<public-inbox-index(1)> - public-inbox-index /path/to/repo.git + public-inbox-index INBOX_DIR + +Instead of using L<public-inbox-watch(1)>, using +L<public-inbox-mda(1)> with the C<--no-precheck> option and +relying on the C<listid> directive in L<public-inbox-config(5)> +is also an option. -=head2 Hosting standalone +=head2 Hosting standalone inboxes Using L<public-inbox-init(1)> to initialize the inbox as in the other methods is recommended. See L<public-inbox-mda(1)> for more details; but this also requires MTA-specific knowledge. -=head2 Hosting public-inboxes +=head2 Serving public-inboxes Since public-inboxes are git repositories, they may be served to remote clients via L<git-daemon(1)> as well as specialized HTTP |