Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 (MU) 9/23/84; site munnari.OZ
Path: utzoo!watmath!clyde!bonnie!akgua!sdcsvax!dcdwest!ittvax!decvax!mulga!munnari!kre
From: kre@munnari.OZ (Robert Elz)
Newsgroups: net.news.adm
Subject: Re: Re: admins-- please READ!
Message-ID: <620@munnari.OZ>
Date: Sat, 29-Dec-84 10:01:08 EST
Article-I.D.: munnari.620
Posted: Sat Dec 29 10:01:08 1984
Date-Received: Mon, 31-Dec-84 02:59:24 EST
References: <2107@nsc.UUCP> <617@munnari.OZ> <1401@dalcs.UUCP>
Reply-To: kre@munnari.OZ (Robert Elz)
Organization: Comp Sci, Melbourne Uni, Australia
Lines: 285

In article <1401@dalcs.UUCP> holmes@dalcs.UUCP (Ray Holmes) writes:
| 
| I am realy getting confused here....
| 
| Thus, my recomendation is to try all combinations in your "sys" file until
| one works -- should only take a few years.
| 

OK, here are the rules, as I understand them, which might
make it easier for a few people out there.  (If you have a weak
stomach - you probably should read no further - if you are
a news system administrator, you're NOT ALLOWED a weak
stomach - you better read this!)  Beware this is a LONG ARTICLE.

First point to note, is that with one exception (noted just below)
the news that you get depends on what's in your neighbours sys file,
not yours - so if you are missing things, you should talk to
your news feed about it.

First, the basic sys file format (I apologise to all of you who
know all this already, but since I've started this, I think I
should include as much info as I reasonably can)

There are 4 fields, separated by colons.  The first contains
a host name, or the word "ME" (without the quotes) which
is equivalent to your own host name, the second is the
subscription list, the third is transmission flags, and the
fourth (last) is the command to be used to transmit news.

The 'sys' file can contain comments, lines starting with a '#'
are comments, I advise their liberal use - make it easy for
yourself to remember what's going on later.

The first (non-comment) line in your sys file is normally
the one for your own site.  This line is the exception
mentioned above.  You can use it to prevent some newsgroups
being received at your host (but since your neighbour
is sending them anyway, and someone is paying the phone
bill, its usually nicer to ask your neighbour to simply
not send the news that you don't want - keep the ability
to refuse news for extreme cases).

The first field is your site name (the thing that 'uname'
or 'gethostname' returns on modern systems, whatever you
have configured into news as your hostname otherwise).
Alternatively, it can be ME.

The second field contains the newsgroups that you will
receive.  In the simple case, its usually quite safe
to use the word "all" here - to indicate that you are
willing to receive all newsgroups.

The third and fourth fields are not used in this entry.

So, the typical first line in a sys file is

	ME:all::

(not indented - I will show all examples indented in
this news item, the indentation is just for clarity).

Alteratively, you can specify the generic newsgroups
that you will receive.  There are a few classes of those
that you MUST include if you forward news to other sites
(especially sites that have no other news feed) or you
are in effect denying them news.  What those classes are
varies from location to location, but a basic minimum
for a site in the USA would be

	ME:net,mod,fa,usa,na,to::

That includes the basic "net" newsgroups (which includes
this item - if you haven't got that one there, you aren't
reading this!).  Also "mod" the moderated newsgroups - check
for this one, MAKE SURE its there (yes, right now, go
check it!).  "fa" is for news from the ARPANET.  "usa", "na"
and "to" are basically for distributions (though some
people have "to.xxx" newsgroups).

If you're unsure about what the local newsgroups are, ask
the contact at your news feed - if they don't know, then recurse.
(Many areas have additional local newsgroups, eg: in the
Bay Area in California, there are "ba" newsgroups, similarly
"dc" newsgroups in the Washington/Baltimore area)


All the other (non-comment) lines in your sys file provide
news feeds to other sites.  (Its also possible to arrange for
archiving of news (lbgm etc), feeding to programs (automatic
map updates), or mail to people who prefer to read news that
way, by lines in your sys file.  I don't propose to cover
any of those usages here).

In these lines, the first field contains the name of the
site that you will be sending news to.  Assuming that you're
going to use UUCP, then this should be the name that works
for sending to them via UUCP.

The second field is the list of newsgroups that you want to
send them.  Here "all" isn't a good idea, as you would end
up sending groups that are intended to be purely local to
your site (like "general").  Things are also complicated
a little here by differences between the various news versions.

The third any fourth fields are used for various effects.
The third contains single (capital) letter flags, that
either modify the meaning of the fourth field, or perform
some special action.  I don't propose to detail those
any further here.  The fourth field is (usually) the command that
will be used to forward the news.  If you leave that out
it will default to the command that you specified in defs.h
when you built the news system - usually unchanged from the
one distributed in defs.dist which is suitable for sending
news via UUCP.  With that in mind, I won't discuss it further
either.  Read the news manual pages (or the source!)

In the tutorial role that I intend this news to fill, I will
proceed to give some examples, and then analyze them...
In all of the following, THEM is the name of the site that
you are going to feed news to.

	THEM:net,mod,fa,na,usa,to.THEM::

This is a fairly standard generic entry for use in the USA
(assuming that THEM is also in the US).  You will be sending
all the major classes of news, and the major distributions.
Don't omit any of these, without a VERY good reason.
Again, you should determine what local area newsgroups exist,
and add those to the list.  "to.THEM" is included so that
you can send news with this as a Distribution, and have it
sent to your neighbour only - this is useful for testing
that you have set things up correctly.

	THEM:net,!net.jokes,mod,fa,na,usa,to.THEM::

This is similar to the above, except that (presumably after a
request from your neighbour) you are not going to send net.jokes
(or any subgroups it may have now, or ever after).  This is
the right way to send all but a few groups to THEM (even though
it doesn't quite work always in 2.10.1 - see below).

Note:
	THEM:!net.jokes,net,mod,fa,na,usa,to.THEM::

is not equivalent - in fact, this is the same as the first
example above.  The list of newsgroups in the subscription
list is scanned left to right - later entries take precedence
over earlier ones, so in this case, net.jokes would still
be sent.  The general rule is, put generic things towards
the left, and specific things towards the right.  The more
specific they get, the further right you should move them.


	THEM:net.unix-wizards::

This is an example of an attempt to send only one group
to THEM.  This is an incorrect example, and its what started
this discussion [see below though before flaming].  Why its
incorrect motivates a discussion of the role of 'Distribution' lines.

Here's where things start getting complex.  If you're running
2.10.1 (or earlier systems - I'm not sure how much earlier
things can get before the rules change again), and some news
appears (from your news feed, or created locally) that contains
a Distribution line, then that Distribution line replaces the
Newsgroups line when you decide where the news should be sent.
(That is, Distribution specifies where the article will go,
whereas Newsgroups specifies which groups it will appear in
when people read it).  So, with the above sys file line, if
an article appears with a header like

	Newsgroups: net.unix-wizards
	Distribution: net

You won't send it to THEM, because you don't send "net",
only "net.unix-wizards".

This has suddenly become important, because 2.10.2 has a slightly
different view of what Distribution means, and likes to generate
headers just like that whenever someone posts anything to
net.unix-wizards with the intention that it be read everywhere.

A fix, that semi-works, is to do what was suggested in the
newsitem that this is a multi-level followup to.  That is
change your sys file to

	THEM:net,!net.all,net.unix-wizards::

This means that you will send "net", but nothing in subgroups of
net, except for net.unix-wizards.  For articles that don't have
Distribution lines, this changes nothing.  For articles
that do have distribution lines, the "net" in the
distribution will match "net", "!net.all" won't exclude
it (there's no subgroup on the distribution), and the article
will be sent.  Its worth saying here, that "net" 'matches'
"net" itself, and "net.xxx" where "xxx" can be anything
at all.  "net.all" matches only "net.xxx" (for all xxx's)
but misses "net" itself.

But here's the side effect - since in 2.10.1 the Distribution
line (if it exists) is the sole control of where news will be
sent, you will end up sending *any* article with a distribution
line of "net", regardless of which newsgroup its in.  That
is probably better than not sending some articles, but isn't
what was really intended either.

Now, if you're running 2.10.2 things are a little different.
2.10.2 uses "Distribution" to *limit* where an article will
be sent, rather than to *specify* where it will be sent.
So, the above "side-effect" doesn't occur, THEM will only
get net.unix-wizards articles.

But there's more - with 2.10.2, the Distribution line is
not used at all if it is (in essence) a prefix of any of
the groups in the Newsgroups line.  So, in the above news
header, the "Distribution" line at a 2.10.2 site is ignored.
That means that above, where I said that the example was
incorrect, I was misleading you ... it would work if you
are running 2.10.2

Now, of course, 2.10.2 isn't prefect in this area either.
If the article header was
	Newsgroups: net.unix-wizards,ba.unix
	Distribution: ba
then you would expect the "ba" distribution to apply, and
so not send the article to THEM.  But, "ba" is a prefix of
"ba.unix" (ba.unix matches ba in news matching syntax), so
2.10.2 simply ignores the distribution line, and so sends
the article to THEM for you.  Well, you can't have everything...

[Aside: a fix for 2.10.2 was posted just a couple of days
ago that will solve this problem - I hope it will be solved
in 2.10.3  The fix was in <701@rocksvax.UUCP> in net.news
and net.sources.bugs.  It causes the rule about "prefix
of the Newsgroups" to go away, and instead, sends the
article if the group matches, and either the distribution
matches the subscription, or the subscription matches
the distribution (a subscription of net.unix-wizards
would match a distribution of net)  I haven't tried
the fix, but it looks fairly good to me].

Round about now, things seem to be looking pretty bleak.
There is simply no way to get your sys file right!

However, don't lose heart, the vast majority or sites never
need to worry about any of this - just use the first example
I gave, and all will be fine.  But remember to watch for
the formation of new top-level groups (net wide, or local
to your area) and add them as they appear - that isn't very
often!

If you really do need to limit what you send to other sites,
then my advice is to run 2.10.2.  The problem there occurs
much less often than the problems with 2.10.1, and does much
less harm.  (You send out a very few extra articles to your neighbour,
if he's running 2.10.2 his news system will delete the superflous
group from the header, then the Distribution line will no longer
be ignored, and as he shouldn't be sending that (to him) unknown
Distribution to his neighbours, the article will go no further.
If he's running 2.10.1 then the Distribution will simply be
something he sends nowhere, and again, the article will halt).

When 2.10.3 appears, everyone should upgrade to it [some hope].

If you must stick with 2.10.1 (or earlier), then you should
add the "net,!net.all" magic string to all sys file lines
that contain limited subscription lists.  Some extra articles
will end up being sent, but at least you won't be denying
your neighbour articles that he thinks you are sending him.

I hope that there's someone out there that this might help,
at the very least by explaining some of the weird behaviour
that's been occurring in the past few months.

It might also provide an opportunity for discussion on exactly
what Distribution should do.  I feel that the 2.10.2 interpretation
is the right one, or at least the more useful one (the 2.10.1
variety allowed you to send articles to sites that didn't really
want them).

Robert Elz				decvax!mulga!kre

ps: all of the above applies to B news 2.10 (and varieties
thereof only).  I take no responsibility for how any of
it might relate to A news, 2.8, 2.9, or UNSW news.