user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* watch a simple dir
@ 2021-02-26 14:38 Konstantin Ryabitsev
  2021-02-26 19:29 ` Konstantin Ryabitsev
  2021-02-26 19:38 ` Eric Wong
  0 siblings, 2 replies; 3+ messages in thread
From: Konstantin Ryabitsev @ 2021-02-26 14:38 UTC (permalink / raw)
  To: meta

Hello:

I'm playing around with using public-inbox as the archiving subsystem for
mlmmj. I know it's possible to simply configure a local address to deliver to
public-inbox-mda [1], but I wonder if there's a way to reduce complexity and
simply configure public-inbox-watch to monitor mlmmj's "archive" directory for
any new files, similar to how it would monitor a maildir:

- it's a simple flat dir of numeric files corresponding to the number of the
  message in the index
- each message is a valid rfc2822 document -- in fact, if I copy them into the
  "new" folder of any maildir, I can read them with mutt
- however, if I use symlink trickery to make mlmmj deliver into "new" or "cur"
  of a maildir monitored by public-inbox-watch, they are ignored -- so things
  are not as easy as that. :) Probably, it expects to have more complex
  filenames instead of just a number, but I didn't dig too deep.

So, any way to make this work either by tricking public-inbox-watch to
recognize these as valid maildir entries, or by teaching it to monitor simple
additions to a dir as parallel scheme to maildir:?

-K

[1] adding an extra hop to deliver to public-inbox-mda, or to a maildir
monitored by public-inbox-watch adds another entry into the postfix queue,
bloats the headers by adding more Received: lines and generally seems like an
inefficient way to basically copy a file that already exists on the filesystem


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: watch a simple dir
  2021-02-26 14:38 watch a simple dir Konstantin Ryabitsev
@ 2021-02-26 19:29 ` Konstantin Ryabitsev
  2021-02-26 19:38 ` Eric Wong
  1 sibling, 0 replies; 3+ messages in thread
From: Konstantin Ryabitsev @ 2021-02-26 19:29 UTC (permalink / raw)
  To: meta

On Fri, 26 Feb 2021 at 09:38, Konstantin Ryabitsev
<konstantin@linuxfoundation.org> wrote:
> - it's a simple flat dir of numeric files corresponding to the number of the
>   message in the index
> - each message is a valid rfc2822 document -- in fact, if I copy them into the
>   "new" folder of any maildir, I can read them with mutt
> - however, if I use symlink trickery to make mlmmj deliver into "new" or "cur"
>   of a maildir monitored by public-inbox-watch, they are ignored -- so things
>   are not as easy as that. :) Probably, it expects to have more complex
>   filenames instead of just a number, but I didn't dig too deep.

Ah, looks like this was only a limitation of v1.6.1 -- master doesn't
require that filenames in new/ contain a :2 (which is not a
requirement for maildir files in "new/" -- they merely need to be
unique; the :2, part is required for cur/ entries for adding flags).

So, this will work out just fine as long as this behaviour doesn't go
back to what is in 1.6.1 (which it shouldn't). Simply symlinking
/var/spool/mlmmj/<listname>/archive to <some-maildir-elsewhere>/new is
sufficient to automatically add mlmmj messages to the public-inbox
archive and, as an added bonus, this will properly respect
control/noarchive settings.

Me pleased.

-K

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: watch a simple dir
  2021-02-26 14:38 watch a simple dir Konstantin Ryabitsev
  2021-02-26 19:29 ` Konstantin Ryabitsev
@ 2021-02-26 19:38 ` Eric Wong
  1 sibling, 0 replies; 3+ messages in thread
From: Eric Wong @ 2021-02-26 19:38 UTC (permalink / raw)
  To: Konstantin Ryabitsev; +Cc: meta

Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> Hello:
> 
> I'm playing around with using public-inbox as the archiving subsystem for
> mlmmj. I know it's possible to simply configure a local address to deliver to
> public-inbox-mda [1], but I wonder if there's a way to reduce complexity and
> simply configure public-inbox-watch to monitor mlmmj's "archive" directory for
> any new files, similar to how it would monitor a maildir:
> 
> - it's a simple flat dir of numeric files corresponding to the number of the
>   message in the index
> - each message is a valid rfc2822 document -- in fact, if I copy them into the
>   "new" folder of any maildir, I can read them with mutt

It's actually an MH directory w/o .mh_sequences.  I was actually
just looking into MH support the other night for lei(*); and
ezmlm (which mlmmj is based on) seems to do a similar thing.

> - however, if I use symlink trickery to make mlmmj deliver into "new" or "cur"
>   of a maildir monitored by public-inbox-watch, they are ignored -- so things
>   are not as easy as that. :) Probably, it expects to have more complex
>   filenames instead of just a number, but I didn't dig too deep.

> So, any way to make this work either by tricking public-inbox-watch to
> recognize these as valid maildir entries, or by teaching it to monitor simple
> additions to a dir as parallel scheme to maildir:?

Adding ":" to the end of the link should work for "new"...

public-inbox.git actually just relaxed the check for "new" to
not require the ":" which I believe is more correct.

"cur" requires a ":2,$FLAG_CHARS" suffix.

> -K
> 
> [1] adding an extra hop to deliver to public-inbox-mda, or to a maildir
> monitored by public-inbox-watch adds another entry into the postfix queue,
> bloats the headers by adding more Received: lines and generally seems like an
> inefficient way to basically copy a file that already exists on the filesystem

Understood.  I'll probably add MH support to -watch after it
hits lei.  But I've also got a lot on my plate and probably not
a lot of time to do it...


On a side note; MH is actually the least parallel-friendly of
the mail formats for writing.  I'm not sure if there's any
standardized locking scheme for it.

At least mutt has no locking for writing .mh_sequences, so
it seems possible for parallel process to clobber per-message
flags.

Choosing the next sequence number for delivery seems to require
a O(n) readdir scan for every message delivered (and "n"
increases for every new message).

mlmmj has an archive/../index file to keep the highest number,
at least; but most implementations do not.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-02-26 19:38 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-26 14:38 watch a simple dir Konstantin Ryabitsev
2021-02-26 19:29 ` Konstantin Ryabitsev
2021-02-26 19:38 ` Eric Wong

Code repositories for project(s) associated with this inbox:

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).