NEWS(5) UNIX System V(12 Sept 1990) NEWS(5)
NAME
news - USENET network news articles, batches, related files
DESCRIPTION
There are two formats of news articles: A and B. A format is obsolete,
but looks like this:
Aarticle-ID
newsgroups
path
date
title
Body of article
A B format article consists of a series of headers and then the body. A
header line is defined (approximately) as a line at the start of the
article or immediately following a header line with a capital letter as
the first character and a colon immediately following the first word, of
alphanumerics and dashes, on the line (a specialisation of RFC 822
format). Continued headers are as per RFC 822. Unrecognized headers are
ignored. News is stored in the same format transmitted, see ``Standard
for the Interchange of USENET Messages'' (RFC 1036 nee 850) for a full
description. The following headers are among those recognized:
From: user@host.domain[.domain ...] ( Full Name)
Newsgroups: news groups
Message-ID: <Unique RFC822 message-id>
Subject: descriptive title
Date: date posted
Expires: expiration date
Reply-To: address for mail replies
References: Message-ID of article this is a follow-up to.
Control: text of a control message
Here is an example of an article:
Path: att!eagle!jerry
From: jerry@eagle.uucp (Jerry Schwarz)
Newsgroups: news.announce
Subject: Usenet Etiquette -- Please Read
Message-ID: <642@eagle.UUCP>
Date: Friday, 19 Nov 82 16:14:55 EST
Followup-To: news.misc
Expires: Saturday, 1 Jan 83 00:00:00 EST
Organization: Bell Labs, Murray Hill
The body of the article comes here, after an empty line.
A news batch consists of zero or more articles, each preceded by a line
of the form
10/89 Page 1
NEWS(5) UNIX System V(12 Sept 1990) NEWS(5)
#! rnews byte-count
where byte-count is the number of bytes in the following article, where
each newline is counted as a single byte, even if it is stored as a CR-LF
or some other representation. Spaces are significant: one before and
one after rnews. News batches are usually transmitted compressed.
Various peculiar optional encapsulations of news batches exist which
consist of doing something to the (probably compressed) batch, then
prepending a #! goo line to the output, where goo reflects the form of
encapsulation; known values of goo include cunbatch (the null
encapsulation), and c7unbatch (encode the batch using only seven bits per
character).
The sys file line has four fields, each separated by colons:
system-
name/exclusion1,exclusion2...:subscriptions/distributions:flags:transmission
command
A # as the first character in a line denotes a comment. Empty lines are
ignored. A logical line may be continued to the next physical line by
putting a \ at the end of the current physical line. Spaces are
permitted in sys only in comments, transmission command when it really is
a command and not a filename, and, for B news compatibility, at the start
of a continuation line (after a \ and a newline).
Of the sys fields, only the system-name need be present. If a field and
all the fields after it are omitted, the colon immediately before that
field and all the colons after it may be omitted too. The optional
subfields (exclusions and distributions) and their leading slashes may be
omitted.
The system name is the name of the system being sent to, and is checked
against site names in Path: headers to avoid sending an article back to
a site that has seen it. The exclusions are also checked against the
Path: header and articles are not sent to system name if they have
visited any of the exclusions.
The special system name ME stands for the name of the machine news is
running on, as determined from /usr/dell/cnews/lib/whoami. (The ME line,
or a line whose system name is explicitly that of the machine news is
running on, has a rather different meaning from that of the other sys
file lines: its subscriptions subfield identifies the newsgroups that
this site subscribes to (i.e. is willing to receive), and its other
fields and subfields are ignored.)
subscriptions is a comma-separated list of newsgroup patterns specifying
the newsgroups to be transmitted to the system; each newsgroup from the
Newsgroups: header of each article is matched against the pattern list,
and if any newsgroup matches the pattern list, the article is
transmitted. The rules for matching a newsgroup against a single pattern
Page 2 10/89
NEWS(5) UNIX System V(12 Sept 1990) NEWS(5)
are:
0216264.el.if0=0 .nr i0 144u
⊕
words in a newsgroup or a pattern are delimited by periods;
⊕ words of a pattern and a newsgroup match only if they are
identical, except that the word all in a pattern matches any
newsgroup word;
⊕ a newsgroup is matched against a pattern word by word, and all
words must match for the newsgroup to match that pattern;
⊕ if the pattern has fewer words than the newsgroup, the pattern is
implicitly extended to the same number of words by appending .all
as many times as necessary;
⊕ if the newsgroup has fewer words than the pattern, the newsgroup
does not match the pattern;
⊕ if pattern matches a newsgroup, !pattern mismatches that newsgroup.
A newsgroup matches a pattern list if, and only if, it matches at least
one of the patterns and:
0216264.el.if0=0 .nr i0 144u
⊕
the newsgroup does not mismatch any of the patterns, or
⊕ the longest matched pattern is longer than the longest mismatched
pattern (length is measured in number of words, with each explicit
occurrence of all counted as slightly less than one word, and does
not include the implicit extension of patterns with .all).
Note that order in the lists is not significant, and that ties are broken
in favor of not matching. An example: comp,comp.sys.sun,!comp.sys
matches all the comp groups, except the comp.sys groups but including
comp.sys.sun.
The distributions in the Distribution: header are similarly matched
against the distributions. If no distributions are supplied,
Distribution: will be matched against the subscriptions instead. (The
Distribution: header is ignored when receiving news; it is only
significant when sending.)
Note that some older news software reportedly attached magical
significance to the distributions ``world'' and ``local''; C News treats
them as ordinary distribution names with no special properties (except
that ``world'' is the default distribution of an article if none appears
explicitly). For example, a distributions list like all,!local will not
10/89 Page 3
NEWS(5) UNIX System V(12 Sept 1990) NEWS(5)
prevent local articles from being sent unless they contain explicit
Distribution: local lines.
The flags are a set of letters describing how the article should be
transmitted. Valid flags include f (interpret transmission command as a
file name and write the name and size in bytes of each article on the end
of it), F (like f but omit the size), I (like F but write Message-ID:s
instead of filenames), n (like F but write a Message-ID: after each
filename), Ln (only send articles generated within n hops of here; 0 is
the default value for n), m (transmit only moderated groups), u (transmit
only unmoderated groups). There are other obsolete ones.
The transmission command is executed by the shell with the article to be
transmitted as the standard input. The default is `uux - -z -r
sysname!rnews' for a command; the PATH searched includes
/usr/dell/cnews/newsbin/relay, so that the commands described in
newsmail(8) are available as alternatives to uux. If one of the flags
has caused this field to be taken as a filename, the default is
/var/spool/news/out.going/sysname/togo; if a filename is given but it
does not start with `/', it is assumed to be relative to the
/var/spool/news/out.going directory.
Some examples:
# line indicating what we are willing to receive; note local groups on end
ME:comp,news,sci,rec,misc,soc,talk,to,can,ont,tor,ut
# sample insignificant feed not using batching
huey:news.config,to.huey/all::uux - -r -gd huey!rnews
# sample major batched feed, including (unnecessary) explicit file name
dewey:comp,news,sci,rec,misc,soc,talk,to.dewey,can,ont,tor,ut/all:f:dewey/togo
# sample long-haul feed; note no local groups
donald:comp,news,sci,rec,misc,soc,talk,to.donald/all:f:
# sample local-postings-only feed direct to major site (gets them out fast)
scrooge:comp,news,sci,rec,misc,soc,talk,to.scrooge/all:Lf:
# sample ihave/sendme link
# Send ihave telling louie what we have -- batcher turns the batch into a
# giant control message and posts it to "to.louie". (#1)
louie:rec.music.synth/all,!sendme,!ihave:I:louie.ihave/togo
# Send sendme in response to ihave from louie -- again, turned by batcher
# into giant control message posted to "to.louie". (#3)
louie-send-ids:to.louie/ihave:I:louie.sendme/togo
# Transmit said giant control messages by normal batching. (#2,#4)
louie-ctl:to.louie/all,!sendme,!ihave:f:louie/togo
# Send articles in response to sendme messages from louie. (#5)
louie-real:to.louie/sendme:f:louie/togo
# Actually the last two could be combined.
(The ``to.sysname'' groups are normal newsgroups used for testing
individual news feeds.)
Page 4 10/89
NEWS(5) UNIX System V(12 Sept 1990) NEWS(5)
Somewhere in the sys file, there must be a line for the host system.
This line has no flags or commands.
The active file contains one line per locally-valid news group. Each
line consists of four blank-separated fields: newsgroup name, highest
local article number assigned, lowest local article number in use
(approximately), and a flag. Both article-number fields are at least
five digits wide. (Some older news software may expect exactly five
digits.) The current flag values are y (a normal unmoderated group), n
(like y but local postings disallowed), m (a normal moderated group), x
(a locally-disabled group, no articles will be filed here), and =
(followed by the real group under which to file articles in this group;
articles are treated exactly as if their Newsgroups: header specified
the real group instead of the original one; highest and lowest fields are
ignored). An example:
comp.org.usrgroup 0000000006 00004 y
talk.bizarre 0000296123 292136 n
comp.sys.sun 0000000175 00173 m
list.sun-spots 0000000076 00076 =comp.sys.sun
comp.os.vms 0000000000 00000 x
The history file contains one line for each article received. Each line
consists of three tab-separated fields: a Message-ID:, the arrival time
as seconds since midnight, Jan 1, 1970 and the Expires: value (a dash
indicates there was none) separated by a tilde, and the list of links to
this article. If an article has been expired or cancelled without being
seen first, the list of links and the tab before it are omitted. An
example:
<3451@hcr.UUCP> 581905588~- comp.text/1317 comp.sources.wanted/4200
<9383@alice.UUCP> 611934511~-
SEE ALSO
checknews(1), compress(1), inews(1), postnews(1), readnews(1), rn(1),
vnews(1), getdate(3), expire(8), newsbatch(8), newsmail(8), relaynews(8),
recnews(8), rnews(8), sendnews(8), uurec(8), newsinvaders(9.1)
ARPA Internet RFCs 1036 and 850
BUGS
B format articles must not start with A, to distinguish them from A
format, which is only a problem if moderators put Approved: first.
Control: and Newsgroups: are not required to be the first headers, if
present.
People insist on making their whacko local encapsulation schemes
(cunbatch, etc.) rnews's problem.
One could argue that RFC 822 is less than an ideal base for article
format.
10/89 Page 5