groupie
=======

Why another gateway program?
----------------------------

groupie is a partial replacement for Rich Salz's newsgate: specifically, it
currently contains a replacement for the mail2news program. (A replacement
for news2mail is in the pipeline.) While newsgate does everything it claims
to do and is now pleasantly stable, I found myself with a number of niggling
dissatisfactions with some aspects of its behaviour, and so decided that I
wanted to implement my own gateway package that would be free of these
problems. Some of these problems, and the design decisions I made as a
result of them, are as follows:

  * newsgate was designed at a time when those using it would already be
    competent mail and/or news administrators, and therefore adopts a "kit"
    approach. Nowadays, it is quite common for people running Unix systems
    at home (especially some variety of Linux or BSD) also to be running
    their own mail and news servers for private use. To quote newsgate's
    README slightly out of context:

      "Unfortunately, this is one of those things that you have to already
      know a fair bit about before you use it."

    groupie aims to have configuration which is simple for simple cases but
    provides flexibility for those who need it. (The Holy Grail, I suppose.)
    It also aims to be as package-friendly as possible: that is, most of the
    configuration should be self-contained, so that as little modification
    as possible need be made to the existing mail and news setup.

  * As far as I can see, mail2news cannot handle a message crossposted to
    several mailing lists in the way that I want, that is, crossposting the
    resultant article to several newsgroups. (I'm not an expert on
    configuring newsgate; it may be possible. However, see the point above.)
    On a number of related mailing lists I read, this can often be a severe
    barrier to understanding the flow of a conversation.

  * The newsgate copyright is described by its Debian GNU/Linux package
    maintainer as "unclear", and it is distributed in the non-free section
    of the Debian archive. I felt a package under a clearly free licence
    would be useful.

  * Even apart from the copyright issue, I didn't fancy the idea of
    extending newsgate to meet my needs, mainly because I think C is a
    horrible language in which to do what is essentially a pure
    text-processing job. Instead, groupie is written in Perl. This
    eliminates a large proportion of the class of bugs known as "buffer
    overruns", which have already been seen in earlier versions of newsgate.
    Of course, Perl has its own classic vulnerabilities, but nothing's
    perfect.

  * It should be possible to configure bidirectional gateways in one place.
    'Nuff said.

  * mail2news sends its output to inews by default, but this is slow and
    sends your load average sky-high when you try to process several hundred
    incoming messages at once (such as after a period of downtime, or on a
    busy site). rnews is a much better choice in my book, but requires some
    additional preprocessing. It can be done with mail2news, but again it's
    a kit solution.

  * mail2news strips all kinds of headers it doesn't know about, including
    To:, Cc:, and X-* headers. I like my filtering software to modify the
    messages it handles as little as possible.

  * Some mail transport agents have a habit of bouncing error messages from
    mail filters back to the sender. This should be avoided at all costs on
    mailing lists. I wanted the ability to send all errors to (say) the
    system log without having to write clumsy wrapper scripts.

System requirements
-------------------

  * Perl 5.004 or above (everyone should have at least this by now - if you
    don't, bug your system administrator);
  * The Date::Format, Mail::Address, and Net::Domain Perl modules (all
    available from CPAN, http://www.cpan.org/);
  * The Digest::MD5 module will be used if available to help generate
    message-ids;
  * A news server (INN recommended) if you actually want to post the
    articles mailtonews generates.

I expect there to be some additional requirements when newstomail is
written.

How much does groupie do?
-------------------------

At the moment, only the mail-to-news side of groupie has been written. (It's
incomplete, but it does work as it stands.) The news-to-mail side should not
in principle be particularly difficult to write, but once you implement both
you have to be very, very careful to avoid mail loops. I'm beginning to
think that implementing a history file is the easiest way to solve this
while stlil remaining self-contained; another possibility is the pseudo-site
that newsgate recommends people to use.

Still, a mail-to-news gateway is useful on its own, so I'm releasing this
into alpha testing. Good luck, save all your mail before you let groupie at
it, and let me know about any problems.

 -- Colin Watson <cjw44@flatline.org.uk>  Thu, 12 Oct 2000 18:27:29 +0100
