/* not completely translated! */ RNEWS ----- Usage: RNEWS RNEWS is the centerpiece of the news system. It unpacks the news batches in the mail queue and distributes the news articles both to the local news tree and to remote sites. For the latter purpose, *.B files are created in the spool directories (see batch(1)). RNEWS supports a history feature that enables to reject articles that have already appeared (so-called "duplicates", or "dupes" for short). Other improvements on to the Mercury RNEWS program include: - Extended SYS file format (resembling CNEWS) - Clearly defined rules to determine what news articles are spooled to which sites (also resembling CNEWS) - No more choking on articles >64KB (as long as they fit into memory) - Only those articles that cannot be places elsewhere are put into the junk pseudo-newsgroup. - The full name of the local site (with the domain name) is written to the Path: line. - Frozen news are accepted, both in the internal ("funbatch") and the external ("rfnews", "frnews") format. External compressed news ("rcnews", "crnews") work, too. The NEWS.DEF file remains unchanged, so for the switch from Mercury RNEWS to Hermes RNEWS only the SYS and ACTIVE files must be adapted (not even that in same cases), and off you go! (see nhm(1)). /* out of time translating, switch to German */ Bevor ich das Format des ACTIVE- und SYS-Files beschreiben kann, muá ich kurz auf den Newsgroup-Pattern-Matcher ------------------------- eingehen. Er vergleicht einen Newsgroupnamen (instance), der z. B. aus der Newsgroups:-Zeile stammt, mit einem Newsgroupnamenmuser (pattern), das aus dem ACTIVE- oder SYS-File stammt. Distribution-Namen aus der Distribution:- Zeile werden ebenfalls mit Newsgroupnamenmustern verglichen (doch dazu sp„ter). Verglichen werden immer W”rter, das heiát Teile zwischen Punkten, nacheinander vom Anfang zum Ende. Ein Wort aus der instance paát auf ein Wort aus dem pattern, wenn bei W”rter gleich sind oder wenn das Wort aus dem pattern "all" oder "*" ist. Der Patternmatcher bewertet die šbereinstimmung von pattern und instance mit einer Zahl: 0 bedeutet keine šbereinstimmung, 1 oder h”her bedeutet šbereinstimmung. Dabei wird der Wert von 1 an jeweils fuer jedes ueberein- stimmende Wort, das im pattern nicht "*" oder "all", um 1 erh”ht. (Keine Panik, es kommt noch ein Beispiel, und wozu das gut ist, wird auch noch erkl„rt.) Grunds„tzlich darf das pattern nicht l„nger sein als die instance, sonst wird grunds„tzlich 0 (keine šbereinstimmung) zurueckgeliefert. Wenn die instance nach Ende des pattern noch weitere W”rter enth„lt, so „ndert das den šbereinstimmungswert nicht. Ausnahme: Wenn pattern mit einem Punkt endet (gewissermaáen mit einem leeren Wort), dann darf instance an dieser Stelle kein Wort mehr haben, muá also (in Worten) genausolang sein wie pattern vor dem abschlieáenden Punkt. Dabei wird der šbereinstimmungswert um eins erh”ht. Beispiele: pattern |instance |Wert --------------------------------+--------------------------------+---- all |comp.sources.atari.st | 1 comp |comp.sources.atari.st | 2 comp.*.atari.st |comp.sources.atari.st | 4 | | alt.romance |alt.romance | 3 alt.romance |alt.romance.chat | 3 alt.romance. |alt.romance | 4 alt.romance. |alt.romance.chat | 0 | | sub |sub.jokes | 2 sub |sub.jokes.d | 2 sub.* |sub.jokes | 2 sub.* |sub.jokes.d | 2 sub.*. |sub.jokes | 3 sub.*. |sub.jokes.d | 0 sub.*.* |sub.jokes | 0 sub.*.* |sub.jokes.d | 2 So. Nun k”nnen wir zum Format fuer das ACTIVE-File ----------- uebergehen. Das ACTIVE enth„lt Newsgroupmuster, die angeben, welche Gruppen lokal erlaubt sind. Damit eine Newsgroup angelegt werden kann (automatisch mit RNEWS oder manuell mit NHM newgroup=), muá ihr Name auf irgendeine Zeile im ACTIVE-File passen, also mit einer Zeile einen šbereinstimmungswert ueber 0 haben. Das SYS-File -------- sieht schon viel interessanter aus. Jede Zeile hat drei durch Doppel- punkte getrennte Felder. Wenn ein Feld mehr als einen String enhalten kann (das betrifft die ersten beiden Felder), dann k”nnen diese Strings mit Tabulatorzeichen, Leerzeichen, Schr„gstrich, Komma oder Semikolon getrennt werden. Reicht die L„nge einer Zeile nicht aus, so kann sie durch einen '\' am Ende fortgesetzt werden. Eventueller Whitespace am Anfang der n„chsten Zeile wird dann entfernt. Die Gesamtl„nge (inklusiver aller Fortsetzungs- zeilen) sollte aber nicht ueber 2040 Byte oder so liegen. Das erste Feld bezeichnet die Site, fuer die Zeile gelten soll. Es kann hinter dem "Hauptnamen", der mit dem ersten Namen der entsprechenden Zeile des XHOSTS-Files uebereinstimmen muá, noch "Nebennamen" enthalten. Ein Artikel wird auf keinen Fall an diese Site gespoolt, wenn irgendeiner der Namen im ersten Feld in der Path:-Zeile des Arikels vorkommt. Beispiels- weise kann hier als Nebenname der Name der Site mit Domain eingetragen werden. Das zweite Feld enth„lt die Newsgroupmuster, die bestimmen, ob ein Artikel an die betreffende Site gespoolt wird oder nicht. Steht unmittelbar vor dem Muster ein "!", so BEHINDERT das Muster das Spoolen, sonst BEGšNSTIGT es das Spoolen. Steht unmittelbar vor einem Muster ein "%", so BEGšNSTIGT das Muster das Spoolen dann, wenn der Artikel auf dieser Site erzeugt wurde, sonst wird es ignoriert. Die Bestimmung, ob gespoolt wird oder nicht, l„uft folgendermaáen ab: Zuerst wird jeder Newsgroupname aus der Newsgroups:-Zeile mit jedem Muster aus der SYS-File-Zeile verglichen. Je der h”chste šbereinstimmungswert der BEHINDERNDEN und der BEGšNSTIGENDEN Muster wird festgestellt. Nur wenn der BEGšNSTIGENDE Wert h”her ist als der BEHINDERNDE, kann gespoolt werden, sonst nicht. Wenn kein Name auf irgendein Muster paát, wird konsequenter- weise auch nicht gespoolt. Wenn der Artikel eine Distribution:-Zeile hat, wird jede Distribution mit allen Mustern verglichen, die keinen Punkt enthalten. Sind solche Muster nicht vorhanden, oder hat der Artikel keine Distribution:-Zeile, so geht RNEWS davon aus, daá die Distribution das Spoolen BEGšNSTIGT. Sonst l„uft der Vergleich genauso ab wie bei den Newsgroups, nur mit dem Unterschied, daá es ausreicht, wenn der BEGšNSTIGENDE Wert der Distribution mindestens so groá ist wie der BEHINDERNDE. Also: Das am besten zu einem Newsgroupnamen passende BEGšNSTIGENDE Muster muá einen H™HEREN šbereinstimmungswert als das am besten zu einem Newsgroup- namen passende BEHINDERNDE Muster UND Das am besten zu einer Distribution passende BEGšNSTIGENDE Muster darf KEINEN NIEDRIGEREN šbereinstimmungswert haben als das am besten zu einer Distribution passende BEHINDERNDE Muster, sonst wird nicht gespoolt. Dieses Verhalten ist im wesentlichen CNEWS-kompatibel. Nun noch das dritte Feld: Es enth„lt die Anzahl der Bits, mit denen die Batches komprimiert werden sollen. Ein 'c' davor ist optional. Statt dieser Zahl kann auch ein 'f' eingetragen werden. Dann werden die Batches mit FREEZE statt mit COMPRESS behandelt. Das Verfahren ist genau analog, das heiát (wer nicht weiá, wie ein komprimierter Newsbatch aussieht, bitte weglesen), daá der Batch dann nicht mit "#! cunbatch", sondern mit "#! funbatch" anf„ngt. Es ist noch ein anderes Verfahren, Newsbatches mit FREEZE zu behandeln, im Umlauf: siehe unten. Wahlweise kann hinter der Bitanzahl bzw. dem 'f' noch, durch einen Schr„gstrich abgeteilt, die Wunschgr”áe der Batches in Kilobyte (vor dem Komprimieren) stehen, der Standard ist 50 KB. Wird statt der Kennzeichnung der Komprimierungsart durch "#! cunbatch" oder "#! funbatch" die Weiterleitung an ein spezielles Kommando ("rfnews" statt "rnews"), so kann dieses Kommando hinter einem Gleichheitszeichen (!) an das letzte Feld angeh„ngt werden. Dadurch k”nnen auch Sites bedient werden, die "frnews" oder etwas „hnlich Hirntotes haben wollen. Der HERMES- RNEWS kann "rnews" (Einzelartikel, "#! rnews", "#! cunbatch", "!# funbatch"), "rfnews" bzw. "frnews" (frozen, sonst wie "rnews") and "rcnews" bzw. "crnews" (compressed, sonst wie "rnews") verstehen. Damit duerfte alles Gebr„uchliche erschlagen sein.