|
|
1.1 root 1: .ds h0 "USENET Version B Installation
2: .ds h1
3: .ds h2 %
4: .ds f0 "\*(vr
5: .ds f1
6: .ds f2 "October 27, 1986
7: .de Qp \" quoted command as hanging char
8: .lp "\\f3\\$1\\f1" \\$2
9: ..
10: .mt
11: USENET Version B Installation
12: .au
13: Matt Glickman
14: .ai
15: Computer Science Division
16: Department of Electrical Engineering and Computer Sciences
17: University of California
18: Berkeley, California 94720
19: .au
20: Revised by Mark Horton for version 2.10
21: Revised by Rick Adams for version 2.11
22: .hn
23: Introduction
24: .pg
25: This document is intended to help
26: a USENET site install and maintain the network news software.
27: Please ask questions of Rick Adams\*(dg;
28: .fn
29: \*(dg ARPANET: [email protected], UUCP: seismo!rick
30: .ef
31: such questions will help to point out areas that need
32: to be addressed here.
33: .pg
34: The overall order of things to do is:
35: .lp (a)
36: Find somebody to link up with.
37: You need a network connection of some kind,
38: for example,
39: ARPANET or UUCP.
40: If you must use UUCP and have no connections,
41: you must have at least a dialup and preferably a dialer,
42: and find someone willing to call your machine.
43: The USENET directory may be helpful in finding some other site geographically
44: near yours to hook up to.
45: .lp (b)
46: Create a
47: .i localize.sh
48: script to make local changes to the makefile and
49: .i defs.h
50: files. (Section 2 gives more details about creating
51: .i localize.sh \&.)
52: Once you're finished editing
53: .i localize.sh ,
54: create a
55: .i defs.h
56: and
57: .i Makefile
58: tailored
59: for your site with the command
60: .ce
61: sh localize.sh
62: Inspect
63: .i defs.h
64: and
65: .i Makefile
66: to ensure that all your local customizations
67: got into your final versions. If you saw a \*(lq?\*(rq when you ran
68: .i localize.sh ,
69: one or both of the files is certainly wrong. It's a good idea to
70: anchor the patterns in
71: .i localize.sh \&'s
72: .i ed (1)
73: scripts, especially in its
74: .i Makefile -editing
75: lines. For instance, use
76: .b /^UUXFLAGS/
77: instead of
78: .b /UUXFLAGS/ .
79: .lp (c)
80: Compile the software using the
81: .i make (1)
82: command.
83: .lp (d)
84: .i Su (1)
85: and type \*(lqmake install\*(rq.
86: This will copy the files out to the right place and
87: make directories containing most of the important files.
88: It will configure you in with a connection to
89: .cn oopsvax
90: via UUCP links.
91: This is undoubtedly wrong,
92: so you will have to configure links as needed.
93: If this is your initial installation or you are upgrading from a version older
94: than 2.11, do \*(lqmake update\*(rq.
95: This will cause various checks to be performed on important
96: files in
97: .b LIBDIR .
98: The results will be reported to you.
99: If you are not sure if you should do \*(lqmake update\*(rq, do it.
100: It will not hurt anything if you have already done it.
101: .lp (e)
102: After editing the configuration table,
103: get your contact at the other end of the link to add you to their netnews
104: .i sys
105: file.
106: .lp (f)
107: Post a message to the
108: .bi sysname "" \f3to.\fP
109: newsgroup which should be set up to go only to the site you are linked to,
110: as a test.
111: Have the other person send a message to your system using the same mechanism.
112: If this doesn't work,
113: find the problem and fix it.
114: (Please don't use
115: .ng misc.test
116: unless there is no alternative.
117: It is almost always possible to use
118: .ng test ,
119: or
120: .bi sysname "" \f3to.\fP
121: or some
122: .bi local \f3.test\fP
123: group,
124: instead of
125: .ng misc.test .)
126: .lp (g)
127: Fill out a USENET directory form (the file
128: .i dirform
129: in the
130: .i misc
131: directory).
132: Post a copy to the USENET newsgroup
133: .ng news.newsite
134: and mail a copy to
135: .i cbosgd!uucpmap .
136: .lp (h)
137: Format the document
138: .i "\\*(lqHow to Read the Network News\\*(rq"
139: (the file
140: .i howto.mn
141: in the
142: .i doc
143: directory),
144: the document
145: .i "\\*(lqHow to Use USENET Effectively\\*(rq"
146: (the file
147: .i manner.mn
148: in the
149: .i doc
150: directory)
151: and the document
152: .i "\\*(lqCopyright Law\\*(rq"
153: (the file
154: .i copyright.mn
155: in the
156: .i doc
157: directory)
158: and post them to your
159: .ng general
160: newsgroup with a long expiration date.
161: You can use
162: .i inews (1)
163: or
164: .i postnews (1)
165: to do this.
166: .lp (i)
167: It will probably be necessary to fix your uucp commands
168: to allow
169: .i rnews
170: and to support the
171: .op \-z
172: and
173: .op \-n
174: options (if you are lucky enought to have the source).
175: .hn
176: Installation
177: .hn 2
178: Configuration
179: .pg
180: Local configuration of the USENET
181: version B software requires you to edit a few files.
182: Most importantly,
183: the
184: .i defs.h
185: and
186: .i Makefile
187: files must be created from their templates
188: .i defs.dist
189: and
190: .i Makefile.dst .
191: You should create a shell script called
192: .i localize.sh
193: which copies the files and makes local changes to the copies.
194: Even for a completely vanilla site,
195: some changes will be necessary.
196: For example,
197: your script should start with
198: .i localize.v7
199: or
200: .i localize.usg .
201: You should include the name of the local organization
202: .b MYORG ) (
203: and the uid of the local news super user
204: .b ROOTID ). (
205: You should also choose how your hostname will be determined.
206: If you are a USG site,
207: define
208: .b UNAME
209: in
210: .i defs.h .
211: If you are
212: running 4.[23] BSD,
213: define
214: .b GHNAME
215: in
216: .i defs.h .
217: If you have your UUCP name in a file,
218: define
219: .b UUNAME
220: in
221: .i defs.h
222: to the name of that file.
223: Otherwise,
224: news will look in the file
225: .i /usr/include/whoami.h
226: for a line of the form
227: .sd c
228: #define sysname your-sysname
229: .ed
230: .pg
231: If you are running System 3 or System 5,
232: you are a USG site.
233: Otherwise,
234: unless you are in AT&T,
235: you are probably a V7 site.
236: The previously mentioned defines are the only modifications that are
237: .i necessary
238: to install news at your site.
239: However,
240: you will probably want to change some of the ones listed below.
241: If your compiler does not accept \*(lq(void)\*(rq,
242: the simplest thing to do is add \*(lq\-Dvoid=int\*(rq to the
243: .b CFLAGS
244: line in the
245: .i Makefile .
246: .pg
247: A sample localize shell script can be found in
248: .i localize.sample .
249: The most important parameters are:
250: .hn 3
251: ROOTID
252: .pg
253: The numerical uid of the person who is the news super user.
254: This should not be set to 0.
255: Normally it is set to the uid of the news contact person for the site.
256: If it is not defined,
257: the uid of
258: .b NOTIFY
259: will be looked up in
260: .i /etc/passwd
261: and used instead.
262: .hn 3
263: N_UMASK
264: .pg
265: Mask for
266: .i umask (2)
267: system call.
268: Set it to something like 022 for a secure system.
269: Unsecure systems might want 002 or 000.
270: This mask controls the mode of news files created by the software.
271: Insecure modes would allow people to edit the files directly.
272: .hn 3
273: DFLTEXP
274: .pg
275: The default number of seconds after which an article will expire.
276: Two weeks (1,209,600 seconds) is the default choice.
277: If you wish to expire articles faster than two weeks,
278: it is recommended that you use the
279: .op \-e
280: flag to expire instead of decreasing
281: .b DFLTEXP .
282: .hn 3
283: HISTEXP
284: .pg
285: Articles which were posted more than
286: .b HISTEXP
287: ago are considered too old and are moved into the
288: .ng junk
289: directory.
290: This is because they are too old to be in the history file,
291: so it is impossible to tell if they really should be accepted
292: or are endlessly looping around the network.
293: (This was theoretically possible before this feature was added.)
294: The articles are removed after
295: .b DFLTEXP
296: seconds,
297: but a copy of their
298: .hf Message-ID
299: is kept in the history file for
300: .b HISTEXP
301: seconds (the default is 4 weeks).
302: If you are a
303: .i leaf
304: node, you do not need to have
305: .b HISTEXP
306: longer than
307: .b DFLTEXP .
308: However, major nodes with more than one news feed should have
309: .b HISTEXP
310: set to the default 4 weeks if possible.
311:
312: .hn 3
313: DFLTSUB
314: .pg
315: The default subscription list.
316: If a user does not specify any list of newsgroups,
317: this will be used.
318: Popular choices are
319: .ng all
320: and
321: .ng general\f1,\fPall.general .
322: .hn 3
323: TMAIL
324: .pg
325: This is the version of the Berkeley
326: .i Mail (1)
327: program that has the
328: .op \-T
329: option.
330: If left undefined,
331: the
332: .op \-M
333: option to
334: .i readnews (1)
335: will be disabled.
336: .hn 3
337: ADMSUB
338: .pg
339: This newsgroup (or newsgroup list) will always be selected
340: unless the user specifies a newsgroup list that doesn't include
341: .b ADMSUB
342: on the command line.
343: That is,
344: as long as the user doesn't use the
345: .op \-n
346: flag to
347: .i readnews
348: on the command line,
349: .b ADMSUB
350: will always be selected.
351: This is usually set to
352: .ng general,all.announce .
353: (The intent of this parameter is to have certain newsgroups
354: which users are required to subscribe to.
355: A typical site might require
356: .op general .)
357: .hn 3
358: PAGE
359: .pg
360: The default program to which articles should be piped for paging.
361: This can be disabled or changed by the environment variable
362: .b PAGER .
363: If you have it,
364: the Berkeley
365: .i more (1)
366: command should be used,
367: since the
368: .op +
369: option allows the headers to be skipped.
370: .hn 3
371: NOTIFY
372: .pg
373: If defined,
374: this character string will be used as a user name to send mail
375: to in the event of certain control messages of interest.
376: (Currently these are
377: .b newgroup ,
378: .b rmgroup ,
379: .b sendsys ,
380: .b checkgroups ,
381: and
382: .b senduuname .)
383: As distributed,
384: mail will be sent to user
385: .i usenet .
386: It is recommended you create such a mailbox
387: (have it forwarded to yourself) if possible,
388: since this makes it easier for another site
389: to contact the site administrator for your site.
390: If you are unable to do this
391: .i e\f1.\fPg ., (
392: you are not the super user)
393: you should change this name to yourself.
394: Also,
395: messages about missing or extra newsgroups are mailed to this user
396: by the
397: .b checkgroups
398: control message.
399: .hn 3
400: DFTXMIT
401: .pg
402: This is the default command to use to transmit news
403: if no explicit command is given in the fourth field of the
404: .i sys
405: file.
406: It normally includes
407: .i uux (1)
408: with the
409: .op \-z
410: option.
411: You should install this modification to UUCP at once;
412: otherwise your users will be bombarded with annoying
413: .i uux
414: completion messages.
415: However,
416: you can turn this off to get news installed.
417: .hn 3
418: UXMIT
419: .pg
420: This is the default command used if the
421: .b U
422: flag is present in the flags portion of a
423: .i sys
424: file line.
425: In this case,
426: the second \*(lq%s\*(rq refers to the name of a file in the news spool area,
427: not a temporary file.
428: It can usually only be used
429: when local modifications are made to the uucp system,
430: such as the
431: .op \-c
432: option to
433: .i uux .
434: .hn 3
435: DFTEDITOR
436: .pg
437: This is the full path name of the default editor to use
438: during followups and replies.
439: It should be set to the most popular text editor on your system.
440: As distributed,
441: .i vi (1)
442: is used.
443: .hn 3
444: UUPROG
445: .pg
446: If this is defined,
447: it will be used as a command to run when the
448: .b senduuname
449: control message is sent around.
450: Otherwise the command
451: .i uuname (1)
452: will be run.
453: Normally,
454: this program should be placed in
455: .b LIBDIR .
456: .hn 3
457: MANUALLY
458: .pg
459: If this is defined,
460: incoming
461: .b rmgroup
462: messages will not automatically remove the group.
463: News will instead mail a message to
464: .b NOTIFY
465: advising that the group should be removed.
466: If you define
467: .b MANUALLY ,
468: you should have
469: .b NOTIFY
470: defined.
471: .b MANUALLY
472: is defined by default to protect you against
473: accidental or malicious removal of an important newsgroup.
474: .hn 3
475: NONEWGROUPS
476: .pg
477: If this is defined, incoming
478: .b newgroup
479: messages will not automatically create the group.
480: News will instead mail a message to
481: .b NOTIFY
482: advising that the group should be created.
483: If you define
484: .b NONEWGROUPS ,
485: you should have
486: .b NOTIFY
487: defined.
488: .b NONEWGROUPS
489: is undefined by default to make it easier to automatically maintain the
490: news system.
491: .hn 3
492: BATCH
493: .pg
494: If set,
495: this is the name of a program that will be used to unpack
496: batched articles (those beginning with the character \*(lq#\*(rq).
497: Batched articles normally are files reading
498: .sd c
499: #! rnews 1234
500: article containing 1234 characters
501: #! rnews 4321
502: article containing 4321 characters
503: \\&. . .
504: .ed
505: Batching is
506: .i strongly
507: recommended for increased efficiency on both sides.
508: .hn 3
509: SPOOLNEWS
510: .pg
511: If this is defined, all incoming news
512: .i inews "" (
513: or
514: .i rnews )
515: will be placed in the directory
516: .b SPOOLDIR \f2/.rnews\fP
517: for later processing by
518: .i "rnews \-U" .
519: This is useful when you want to appear to accept incoming news
520: as soon as it arrives (to get it out of the
521: .i uuxqt
522: queue for example), but want to defer the actual processing until
523: later. If you define this option, make sure you invoke
524: .i "rnews \-U"
525: from
526: .i crontab
527: regularly or you may wonder where your news is going!
528: .hn 3
529: LOCALNAME
530: .pg
531: Most systems have a full name database on line somewhere,
532: showing for each user what their full name is.
533: Most often this is in the gecos field of
534: .i /etc/passwd .
535: If your system has such a database,
536: .b LOCALNAME
537: should be left undefined.
538: If not,
539: define
540: .b LOCALNAME ,
541: and articles posted will only receive full names from local user information
542: specified in
543: .i NAME
544: or
545: .bi $HOME \f2/.name\fP
546: by the user.
547: If you have a nonstandard gcos format
548: (not
549: .i finger (1)
550: or RJE)
551: it will be necessary to make local changes to
552: .i fullname.c
553: as appropriate on your system.
554: .hn 3
555: INTERNET
556: .pg
557: If this is defined, replies will use the
558: .hf "From"
559: or
560: .hf "Reply-To"
561: headers of the news article.
562: Otherwise,
563: leave it disabled and replies will use the
564: .hf "Path"
565: header.
566: .pg
567: You can define this option even if your site does not understand
568: internet style headers. The file
569: .b LIBDIR \f2/mailpaths\fP
570: contains a line beginning with \*(lqinternet\*(rq.
571: The rest of this line is a string for printf to use to route your
572: mail to a site that does understand internet style headers. If your site
573: understands internet style headers, this string would just be \*(lq%s\*(rq.
574: If not, it might look like \*(lqseismo!%s\*(rq if
575: .i seismo
576: was your nearest site that understands that format.
577: .hn 3
578: MYDOMAIN
579: .pg
580: When generating internet addresses,
581: this domain will be appended to the local site name
582: to form mailing address domains.
583: For example,
584: on system
585: .cn ucbvax
586: with user
587: .i root ,
588: if
589: .b MYDOMAIN
590: is set to
591: .cf .UUCP ,
592: addresses generated will read
593: .cf [email protected] .
594: If
595: .b MYDOMAIN
596: is
597: .cf .Berkeley.EDU ,
598: the address would be
599: .cf [email protected] .
600: If your site is in more than one domain,
601: use your primary domain.
602: The domain always begins with a period. If your site name contains the
603: domain, everything after the first \*(lq.\*(rq will be stipped off to
604: get the news host name, so you still must define your domain name with
605: .b MYDOMAIN .
606: .hn 3
607: CHEAP
608: .pg
609: Do not
610: .i chown (1)
611: spool files to
612: .i news .
613: This will cause the owner of the file to be the person that started
614: the
615: .i inews
616: process.
617: This is used for obscure accounting reasons on some systems.
618: .hn 3
619: OLD
620: .pg
621: Define this if any of your USENET neighbors run
622: 2.9 or earlier versions of B news.
623: It will cause all headers written to contain two extra lines,
624: .hf Article-I.D.
625: and
626: .hf Posted ,
627: for downward compatibility.
628: Once all your neighbors have converted,
629: you can save disk space and transmission costs by turning this off.
630: It is strongly encouraged that they convert.
631: 2.11 is
632: .i much
633: faster than 2.9.
634: The performance difference is dramatic.
635: .hn 3
636: UNAME
637: .pg
638: Define this if the
639: .i uname (2)
640: system call is available locally,
641: even though you are not a USG system.
642: USG systems always have
643: .i uname (2)
644: available and ignore this setting.
645: .hn 3
646: GHNAME
647: .pg
648: Define this if the 4.[23] BSD
649: .i gethostname (2)
650: system call is available.
651: If neither
652: .b UNAME
653: or
654: .b GHNAME
655: is defined,
656: .i inews
657: will determine the name of the local system by reading
658: .i /usr/include/whoami.h .
659: .hn 3
660: UUNAME
661: .pg
662: Define this to be the name of the file in which you store
663: your UUCP name. (If you store your UUCP name in a file.)
664: .hn 3
665: V7MAIL
666: .pg
667: Define this if your system uses V7 mail conventions.
668: The V7 mail convention is that
669: a mailbox contains several messages concatenated,
670: each message beginning with a line reading
671: .hf "From \f2user date\fP"
672: and ending in a blank line.
673: If this is defined,
674: articles saved will have these lines added
675: so that mail can be used to look at saved news.
676: .hn 3
677: SORTACTIVE
678: .pg
679: Define this if you want the news groups presented in the order of each person's
680: .i .newsrc (5)
681: instead of the
682: .b active
683: file.
684: .hn 3
685: ZAPNOTES
686: .pg
687: Define this if you want old style notesfile id's in the body of the article
688: to be converted into
689: .hf Nf-ID
690: fields in the header and \*(lqOrphaned Responses\*(rq to be rejected.
691: .hn 3
692: DIGPAGE
693: .pg
694: If this is defined,
695: .i vnews (1)
696: will attempt to process the subarticles
697: of a digest instead of treating the article as one big file.
698: .hn 3
699: DOXREFS
700: .pg
701: Define this if you are using
702: .i rn (1).
703: .i Rn
704: uses this option to keep from showing the same article twice.
705: .hn 3
706: MULTICAST
707: .pg
708: If your transport mechanism supports multi-casting of messages,
709: define this.
710: Currently ACSNET is the only network that can handle this.
711: .hn 3
712: BSD4_2
713: .pg
714: Define this if you are running 4.2 or 4.3 BSD
715: .ux .
716: .hn 3
717: BSD4_1C
718: .pg
719: Define this if you are running 4.1C BSD
720: .ux .
721: .hn 3
722: LOCKF
723: .pg
724: Define this if your system supports the
725: .i lockf ()
726: system call as defined in the
727: .i "System V Interface Definition" .
728: Be warned, many System V
729: .ux
730: systems do not comply with the
731: .i SVID .
732: .pg
733: .hn 3
734: ALWAYSALIAS
735: .pg
736: Normally, the
737: .b LIBDIR \f2/aliases\fP
738: file is processed only for newsgroups that are not found in the
739: .b LIBDIR \f2/active\fP
740: file. If this is defined, the
741: .b LIBDIR \f2/aliases\fP
742: will be checked for
743: .b ALL
744: newsgroups. This is useful for a transition period when massive
745: newsgroup renaming is occurring, but should normally be undefined as
746: it is computationally expensive.
747: .hn 3
748: SENDMAIL
749: .pg
750: Use this program instead of
751: .i recmail (8)
752: for sending mail.
753: .hn 3
754: MMDF
755: .pg
756: Use MMDF instead of
757: .i recmail
758: for sending mail.
759: .hn 3
760: MYORG
761: .pg
762: This should be set to the name of your organization.
763: Please keep the name short,
764: because it will be printed,
765: along with the electronic address and full name of the author of each message.
766: Forty characters is probably a good upper bound on the length.
767: If the city and state or country of your organization are not obvious,
768: please try to include them.
769: If the organization name begins with a \*(lq/\*(rq,
770: it will be taken as the name of a file.
771: The first line in that file will be used as the organization.
772: This permits the same binary to be used on many different machines.
773: A good file name would be
774: .b LIBDIR \f2/organization\fP.
775: For example,
776: an organization might read
777: .cf "AT&T Bell Labs, Murray Hill" ,
778: .cf "U.C. Berkeley" ,
779: .cf MIT ,
780: or
781: .cf "Computer Corp. of America, Cambridge, Mass" .
782: .pg
783: .hn 3
784: HIDDENNET
785: .pg
786: If you want all your news to look like it came from a single machine
787: instead of from every machine on your local network,
788: define
789: .b HIDDENNET
790: to be the name of the machine you wish to pretend to be.
791: Make sure that you have you own machine defined as
792: .cn ME
793: in the sysfile
794: or you may get some unnecessary article retransmission.
795: .hn 3
796: NICENESS
797: .pg
798: If
799: .b NICENESS
800: is defined,
801: .i rnews
802: does a
803: .i nice (2)
804: to priority
805: .b NICENESS
806: before processing news.
807: .hn 3
808: FASCIST
809: .pg
810: If this is defined,
811: .i inews
812: checks to see if the posting user is allowed to
813: post to the given newsgroup. If the username is not in the file
814: .b LIBDIR \f2/authorized\fP
815: then the default newsgroup pattern in the symbol
816: .b FASCIST
817: is used.
818: .pg
819: The format of the file
820: .i authorized
821: is:
822: .br
823: .si
824: .sd
825: user:allowed groups
826: .ed
827: .ei
828: .br
829: For example:
830: .si
831: .sd
832: root:all.all,all
833: naughty_person:junk,talk.politics.misc
834: operator:!all.all,general,test,comp.unix.questions
835: .ed
836: .ei
837: .pg
838: An open environment could have
839: .b FASCIST
840: set to
841: .ng all
842: and then individual entries could be made in the authorized file
843: to prevent certain individuals from posting to such a wide
844: area.
845: .pg
846: Note that a distribution of
847: .ng all
848: does
849: .i not
850: mean to allow postings
851: only to local groups \-
852: .ng all
853: includes
854: .ng all.all .
855: Use
856: .ng all\f1,!\fPall.all
857: to get that behavior
858: .hn 3
859: SMALL_ADDRESS_SPACE
860: .pg
861: Define this if your machine has 16 bit (or smaller) pointers.
862: If you are on a
863: .pd ,
864: this is automatically defined.
865: .hn 3
866: ORGDISTRIB
867: .pg
868: This can be defined to be the name of the distribution that is \*(lqlocal\*(rq
869: to your organization. If a control message arrives with
870: .b ORGDISTRIB
871: as the distribution, it is believed and acted upon. This is useful
872: for organizations with one \*(lqmain\*(rq news machine and several
873: subordinate ones. All machines in that organization could define
874: .b NONEWGROUPS ,
875: .b MANUALLY
876: and also
877: .b ORGDISTRIB .
878: Then, when a control message arrives at the main machine, it would
879: be mailed to
880: .b NOTIFY .
881: If that person determined that it was a legitimate message, they could
882: resubmit the message to their local machine with a distribution of
883: .b ORGDISTRIB .
884: They would not have to submit this message to the other machines, as they
885: would believe it because of the distribution. They would reject
886: the control message if it had any other distribution.
887: .hn 2
888: Makefile
889: .pg
890: There are also a few parameters in the
891: .i Makefile
892: as well.
893: These are:
894: .hn 3
895: OSTYPE
896: .pg
897: This is the type of
898: .ux
899: system you are using.
900: It should be either
901: .b V7
902: or
903: .b USG .
904: Any BSD system is V7. Any System 3 or System 5 system is USG.
905: This is normally set by
906: .i localize.sh .
907: .hn 3
908: NEWSUSR
909: .pg
910: This is the owner (user name) of
911: .i inews .
912: If you are a superuser,
913: you should probably create a new user id (traditionally
914: .i news )
915: and use this id.
916: If you are not a superuser,
917: you can use your own user id.
918: If you are able to,
919: you should create a mail alias
920: .i usenet
921: and have mail to this alias forwarded to you.
922: This will make it easier for other sites to find the right person
923: in the presence of changing jobs and out of date or nonexistent directory pages.
924: .b NEWSUSR
925: and
926: .b ROOTID
927: do not need to represent the same user.
928: .hn 3
929: NEWSGRP
930: .pg
931: This is the group (name) to which
932: .i inews
933: belongs.
934: The same considerations as
935: .b NEWSUSR
936: apply.
937: .hn 3
938: SPOOLDIR
939: .pg
940: This directory contains subdirectories in which news articles will be stored.
941: It is normally
942: .i /usr/spool/news .
943: .pg
944: For each newsgroup (\f2e.g.\fP
945: .ng comp.unix )
946: there will be a subdirectory
947: .i /usr/spool/news/comp/unix
948: containing articles,
949: whose file names are sequential numbers,
950: .i e\f1.\fPg .,
951: .i /usr/spool/news/comp/unix/1 ,
952: etc.
953: .pg
954: Each article file is in a mail-compatible format.
955: It begins with a number of header lines,
956: followed by a blank line,
957: followed by the body of the article.
958: The format has deliberately been chosen to be compatible
959: with the ARPANET standard for mail documented in RFC 822.
960: .pg
961: You should place news in an area of the disk with enough free space
962: to hold the news you intend to keep on line.
963: The total volume of news in the network wide groups
964: currently runs about 1 Mbyte per day.
965: If you expire news after the default 2 weeks,
966: you will need about 14 Mbytes of disk space
967: (plus some extra as a safety margin and
968: to allow for increased traffic in the future).
969: If you only receive some of the newsgroups,
970: or expire news after a different interval,
971: these figures can be adjusted accordingly.
972: .hn 3
973: BATCHDIR
974: .pg
975: This directory will contain the list of articles to send to each system.
976: It is normally
977: .i /usr/spool/batch .
978: .hn 3
979: LIBDIR
980: .pg
981: This directory will contain various system files.
982: It is normally
983: .i /usr/lib/news .
984: .hn 3
985: BINDIR
986: .pg
987: This is the directory in which
988: .i readnews ,
989: .i postnews ,
990: .i vnews ,
991: and
992: .i checknews (1)
993: are to be installed.
994: This is normally
995: .i /usr/bin .
996: If you decide to set
997: .b BINDIR
998: to a local binary directory,
999: you should consider that the
1000: .i rnews
1001: command must be in a directory that can be found by
1002: .i uuxqt ,
1003: which normally only searches
1004: .i /bin
1005: and
1006: .i /usr/bin .
1007: .hn 3
1008: UUXFLAGS
1009: .pg
1010: These are the flags with which
1011: .i uux
1012: will be called.
1013: .hn 3
1014: LNRNEWS
1015: .pg
1016: This is the program used to link
1017: .i rnews
1018: and
1019: .i inews .
1020: If you have symbolic links,
1021: you can replace the \*(lqln\*(rq with \*(lqln \-s\*(rq.
1022: .hn 3
1023: SCCSID
1024: .pg
1025: If this is defined, sccs ids will be included in each file. If you
1026: are short on address space, don't define this.
1027: .hn
1028: FILES
1029: .pg
1030: This section lists the files in
1031: .b LIBDIR
1032: and comments briefly what they do.
1033: .hn 2
1034: active
1035: .pg
1036: This is a list of active newsgroups.
1037: It is automatically updated as new newsgroups come in.
1038: The order here is the order news is initially presented by
1039: .i readnews ,
1040: so you can edit this file to put important newsgroups first.
1041: If you have
1042: .b SORTACTIVE
1043: defined,
1044: after the first time the user invokes
1045: .i readnews ,
1046: it will be presented in the order of the user's
1047: .i .newsrc .
1048: Each line of the active file contains four fields,
1049: separated by a space:
1050: the newsgroup name,
1051: the highest local article number
1052: (for the most recently received article),
1053: the lowest local article number that has not yet expired,
1054: and a single character used to determine if the user can post to that newsgroup.
1055: If the character is
1056: \&\*(lqy\*(rq
1057: the user is permitted to post articles to that group.
1058: If the character is
1059: \&\*(lqn\*(rq
1060: the user is not permitted to post articles to that group.
1061: If the character is
1062: \&\*(lqm\*(rq
1063: the newsgroup is moderated and may not be posted to directly. Instead,
1064: articles posted to that newsgroup are automatically mailed to the moderator
1065: of that group.
1066: (This field takes the place of the
1067: .i ngfile
1068: in earlier versions of news.)
1069: Local article numbers begin at 1 and count sequentially
1070: within the newsgroup as articles are received.
1071: They do not usually correspond to local article numbers on other sites.
1072: The article numbers are always stored as a five digit number
1073: (with leading zeros) to allow updating of the file in place.
1074: .pg
1075: The active file should contain
1076: .ng all
1077: active world wide newsgroups.
1078: You should use the
1079: .i sys
1080: file to keep out unwanted newsgroups.
1081: .hn 2
1082: aliases
1083: .pg
1084: This file is used to map bad newsgroup names to the correct ones.
1085: (For example,
1086: .ng rec.jokes
1087: is mapped into
1088: .ng rec.humor ).
1089: Each line consists of two fields separated by white space.
1090: If the first field is found in the newsgroup list of the incoming article,
1091: it is changed to the second field.
1092: This change takes place in the article
1093: before it is passed on to other systems,
1094: not just locally.
1095: .hn 2
1096: batch
1097: .pg
1098: This program reads a list of filenames of articles
1099: and outputs the articles themselves.
1100: It is typically used by the shell script
1101: .i sendbatch .
1102: .hn 2
1103: caesar
1104: .pg
1105: This is a program to do Caesar decoding of rotated text,
1106: on a line by line basis.
1107: The standard input is copied to the standard output,
1108: rotating each line according to a static single letter frequency table.
1109: If an integer argument is given
1110: .i e\f1.\fPg ., (
1111: 13),
1112: every line is rotated by that argument,
1113: without regard to letter frequencies.
1114: This program is invoked by the
1115: .qp D
1116: .i readnews
1117: command.
1118: It is also used by
1119: .i postnews
1120: with the \*(lq13\*(rq argument to encode selected material for posting.
1121: .hn 2
1122: checkgroups
1123: .pg
1124: .i Checkgroups
1125: is a shell file to aid in automatically checking
1126: the accuracy of your active file.
1127: It is executed by the
1128: .b checkgroups
1129: control message and mails a list of out of date newsgroups
1130: to the person defined by
1131: .b NOTIFY .
1132: It also updates the
1133: .i newsgroups
1134: file that is used by
1135: .i postnews
1136: as a helpfile for newsgroup selection.
1137: .hn 2
1138: compress
1139: .pg
1140: This program does a modified Lempel-Ziv data compression. It is used by the
1141: compressed batching scheme.
1142: It averages 50% compression on a typical batch of news.
1143: .hn 2
1144: distributions
1145: .pg
1146: This is a list of distributions that are valid for your site.
1147: Each line has two fields separated by the first space on the line.
1148: The first field is the name of the distribution
1149: .i e\f1.\fPg ., (
1150: .ng usa ,
1151: .ng na ,
1152: etc.).
1153: The second field is text describing the distribution.
1154: As distributed,
1155: this file is only correct for sites in the USA.
1156: You should examine this file and add or delete the appropriate distributions.
1157: .hn 2
1158: encode
1159: .pg
1160: This program transforms an 8-bit binary file into a file suitable for
1161: sending over a link that only allows 7-bit characters. It is used
1162: by
1163: .b "sendbatch -c7."
1164: .hn 2
1165: errlog
1166: .pg
1167: This file contains the \*(lqimportant\*(rq error messages found in the log file.
1168: These errors usually indicate that something was wrong with an article.
1169: This file should be watched closely.
1170: The
1171: .i log
1172: file contains much more verbose information
1173: and it is often difficult to detect errors in it.
1174: .hn 2
1175: expire
1176: .pg
1177: This program expires old articles and archives them if archiving is selected.
1178: It is typically run once a day from
1179: .i cron (8).
1180: .hn 2
1181: help
1182: .pg
1183: This contains a list of commands printed when an illegal command is typed to
1184: .i readnews .
1185: .hn 2
1186: history
1187: .pg
1188: A list of every article that has come in to your system.
1189: It is used to reject articles that come in for the second time
1190: (presumably via a different path).
1191: This file will grow but is cleaned out by the
1192: .i expire (8)
1193: command.
1194: .hn 2
1195: history.d
1196: .pg
1197: On USG systems, this directory contains 10 files (history.[0-9]) which are
1198: used as part of a simple hashing algorithm to speed up history searches.
1199: Since V7 systems have DBM, this is not used on V7 systems.
1200: .hn 2
1201: history.dir,history.pag
1202: .pg
1203: These two files are used on V7 systems as a hashed version of
1204: .i history ,
1205: containing the message id's of all articles in history.
1206: They are only used if
1207: .b \-DDBM
1208: and
1209: .b \-ldbm
1210: appear in
1211: .i Makefile .
1212: .hn 2
1213: inews
1214: .pg
1215: This is the program that actually sends and receives news.
1216: All other news submitting programs interface eventually with it.
1217: It is not intended to be used directly by a human,
1218: so it is no longer in
1219: .b BINDIR .
1220: .hn 2
1221: log
1222: .pg
1223: If present,
1224: a log of articles processed and error conditions is kept here.
1225: This file grows without limit unless cleaned out periodically.
1226: The
1227: .i trimlib
1228: script in
1229: .i misc
1230: can be invoked by
1231: .i cron (8)
1232: daily or weekly to keep the log short.
1233: .hn 2
1234: mailpaths
1235: .pg
1236: This file contains the mail paths to a Usenet
1237: .i backbone
1238: site and a site that can handle
1239: .i internet
1240: style mail addresses.
1241: Each line consists of two fields. The first field is either the
1242: keyword
1243: .i backbone
1244: or the keyword
1245: .i internet .
1246: The second field is a string to be used by printf to create a mail
1247: path. As distributed, they are almost certainly wrong.
1248: You will need to modify the paths so they work from your site.
1249: .pg
1250: As an example, suppose that your site's closest
1251: .i backbone
1252: site was
1253: .i seismo
1254: and the closest site that understood the
1255: .i internet
1256: mail syntax was
1257: .i decuac .
1258: Your
1259: .i mailpaths
1260: file would look like:
1261: .si
1262: .sd
1263: backbone seismo!%s
1264: internet\ decuac!%s
1265: .ed
1266: .ei
1267: .pg
1268: The
1269: .i backbone
1270: path is used when posting articles to moderated groups. A mail
1271: alias exists on almost all backbone sites to forward mail to the proper
1272: moderator for the group. The mail aliases should always be up to
1273: date on these sites, so when a group changes moderators, only
1274: the backbone sites need to update any files. The mail alias is
1275: the newsgroups name with \*(lq.\*(rq changed to \*(lq\-\*(rq.
1276: Using the above example
1277: .i mailpaths
1278: file, a submission to comp.sources.unix would be mailed to
1279: seismo!comp-sources-unix, where it would be forwarded to the
1280: current moderator for that group.
1281: .pg
1282: The
1283: .i internet
1284: keyword is used when the
1285: .b INTERNET
1286: option is defined for replying to news articles. A site whose mailer
1287: does not understand
1288: .i internet
1289: syntax can (and should) define
1290: .b INTERNET
1291: so that mailed replies use the
1292: .i From:
1293: line of the article instead of the unreliable
1294: .i Path:
1295: line.
1296: .hn 2
1297: newsgroups
1298: .pg
1299: This file is displayed by
1300: .i postnews
1301: when a user hits
1302: .qp ?
1303: in response to its request for newsgroups.
1304: It is also used by
1305: .i vnews
1306: when it displays the newsgroup name.
1307: It is updated automatically by the
1308: .b checkgroups
1309: control message.
1310: .hn 2
1311: notify
1312: .pg
1313: This file allows a site administrator to
1314: declare which types of control messages they wish to notification on
1315: and which they
1316: don't. The format is two words separated by white space. The first word
1317: is the name of the control message type (like
1318: .b checkgroups ).
1319: The second word (if it exists) is the address to mail the notification to.
1320: If the second word does not exist then it is assumed that no mail is desired
1321: from this type of control message. If the
1322: .b LIBDIR \f2/notify\fP
1323: file doesn't contain any recognizable control message types or is empty, then
1324: it is assumed that no mail is desired from any type of control message.
1325: .pg
1326: The key word \*(lqall\*(rq may be used to select what address all known control
1327: message types should be sent to. Since parsing of the file is sequential, the
1328: key word \*(lqall\*(rq could be first in the file and specific declarations
1329: specifying differing addresses could follow which would override any previous
1330: listing.
1331: This example of
1332: .b LIBDIR \f2/notify\fP
1333: declares that mail will be sent to \*(lqusenet\*(rq
1334: for all control message types except the
1335: .b sendsys
1336: type.
1337: .b Sendsys
1338: messages will be sent to \*(lqsecurity\*(rq.
1339: .ta \w'checkgroups 'u
1340: .sd c
1341: # Comments are ok since unrecognized message types are ignored.
1342: all usenet
1343: sendsys security
1344: .ed
1345: This example will only send
1346: mail to \*(lqusenet\*(rq for the
1347: .b checkgroups
1348: type of control message. All others will not have any mail associated with
1349: them.
1350: .sd c
1351: # Comments are ok since unrecognized message types are ignored.
1352: checkgroups usenet
1353: .ed
1354: (This overrides the
1355: .b NOTIFY
1356: option in
1357: .i defs.h ).
1358: Having a null file is useful if one person administers several systems
1359: and does not want multiple copies of control message notifications.
1360: .hn 2
1361: oactive, ohistory, ohistory.dir, ohistory.pag
1362: .pg
1363: These are copies of the corresponding
1364: .i active ,
1365: .i history ,
1366: .i history.dir ,
1367: and
1368: .i history.pag
1369: files before
1370: .i expire
1371: ran.
1372: They are kept in case something happens to the originals.
1373: .hn 2
1374: recmail
1375: .pg
1376: This program can serve as a link between news and your local mailer.
1377: If you have
1378: .i sendmail (8),
1379: don't use
1380: .i recmail .
1381: .i Sendmail
1382: is much more useful.
1383: .hn 2
1384: recnews
1385: .pg
1386: A program which allows you to send mail to get news posted.
1387: You usually need to run
1388: .i sendmail
1389: or
1390: .i delivermail (8)
1391: to be able to use this.
1392: .hn 2
1393: recording
1394: .pg
1395: A list of newsgroup classes and filenames to display recordings for.
1396: The recording feature is analogous to the recordings played in some areas
1397: when you dial directory assistance,
1398: trying to be annoying and make you think twice.
1399: Recordings on certain newsgroups are intended to remind the user
1400: of the rules for the newsgroup,
1401: or,
1402: in the case of a company worried about letting proprietary information out,
1403: reminding authors that anything they say is seen outside the company
1404: and so proprietary information should not be included.
1405: .pg
1406: The file contains one line per recording.
1407: The line contains two fields,
1408: separated by a space.
1409: The first field is the newsgroup class
1410: .i e\f1.\fPg ., (
1411: .ng talk.all ),
1412: the second field is the name of the file containing the recorded message.
1413: If the file name does not begin with a slash,
1414: it will be searched for in
1415: .b LIBDIR .
1416: Sample recording files can be found in the
1417: .i misc
1418: directory.
1419: .hn 2
1420: rmgroup
1421: .pg
1422: This shell file should be used to remove any groups that are no longer used.
1423: .hn 2
1424: sendbatch
1425: .pg
1426: This shell file is used to send batched articles to other systems.
1427: It is typically run from
1428: .i cron (8).
1429: See the manual page for more details.
1430: .hn 2
1431: sendnews
1432: .pg
1433: A program to send news internally from one computer to another.
1434: It is useful if you must use mail links to transmit articles.
1435: .hn 2
1436: seq
1437: .pg
1438: This file contains the current sequence number for your system.
1439: It is used to generate unique article id's.
1440: .hn 2
1441: sys
1442: .pg
1443: This file contains a list of all your neighbors,
1444: which newsgroups they get,
1445: and how to send news to them.
1446: The format is documented below.
1447: .hn 2
1448: unbatch
1449: .pg
1450: This program is used to unbatch the incoming batched news
1451: and feed each article to
1452: .i rnews .
1453: It's horrible and will go away in the future.
1454: .hn 2
1455: users
1456: .pg
1457: A list of users that have read news on your system.
1458: .hn 2
1459: uurec
1460: .pg
1461: A program to receive news sent by
1462: .i sendnews (8).
1463: .hn 2
1464: vnews.help
1465: .pg
1466: This is the helpfile used by
1467: .i vnews .
1468: .hn 1
1469: Setting Up Links
1470: .pg
1471: There are two basic types of links for exchanging news:
1472: those that use mail and those that don't.
1473: The ones that use mail are more indirect,
1474: yet more versatile, while the ones that don't are simpler.
1475: The default method does not use mail, so that is discussed first.
1476: .hn 2
1477: Non-mail Links
1478: .pg
1479: The basic theory behind a non-mail link is that the
1480: .i rnews
1481: program is invoked on the remote system
1482: with the article being transmitted as the standard input.
1483: This is possible on several networks,
1484: but the most common implementation is via the UUCP network.
1485: Using the
1486: .i uux
1487: command,
1488: the command which is forked to the shell looks like:
1489: .sd c
1490: uux \- \-r \-z remotesys!rnews < article
1491: .ed
1492: This is the default transmission method.
1493: In order to set up such a link,
1494: obviously a UUCP link with the remote system must be in effect.
1495: In addition,
1496: .i rnews
1497: must be available and executable by
1498: .i uuxqt
1499: on the remote machine.
1500: In most cases,
1501: this means that
1502: .i rnews
1503: must be in
1504: .i /usr/bin
1505: so
1506: .i uux
1507: can find it.
1508: Also,
1509: the list of allowed UUCP commands (in
1510: .i /usr/src/usr.bin/uucp/uuxqt.c
1511: or
1512: .i /usr/lib/uucp/L.cmds ,
1513: depending on the version of UUCP)
1514: should be checked to make sure
1515: that
1516: .i rnews
1517: is an allowed command.
1518: .pg
1519: Other networks that allow remote execution include the BERKNET,
1520: BLICN
1521: .i usend (1)), (
1522: many Ethernets,
1523: and the NSC hyperchannel
1524: .i nusend (1)). (
1525: It is important,
1526: however,
1527: that a spooling mechanism be available.
1528: Otherwise,
1529: if system
1530: .cn A
1531: tries to send an article to system
1532: .cn B
1533: via a remote execution command,
1534: and
1535: .cn B
1536: is down,
1537: the article could be lost.
1538: Spooling arranges that the system will try again when
1539: .cn B
1540: comes back up.
1541: .hn 2
1542: Mail Links
1543: .pg
1544: When using mail to transmit articles,
1545: two intermediary programs are necessary.
1546: These are
1547: .i sendnews
1548: and
1549: .i uurec (8).
1550: The idea is that when system
1551: .cn A
1552: wants to send an article to system
1553: .cn B ,
1554: the
1555: .i sys
1556: file on system
1557: .cn A
1558: has an entry for system
1559: .cn B
1560: such as:
1561: .sd c
1562: \fBLIBDIR\fP/sendnews \-a rnews@B
1563: .ed
1564: which runs
1565: .i sendnews
1566: on the article.
1567: The
1568: .op \-a
1569: option specifies that the mail should be formatted for the ARPANET.
1570: .i Sendnews
1571: packages the article and mails it to
1572: .cf rnews@B .
1573: Somehow,
1574: the B system is expected to make sure that all mail to user
1575: .cf rnews
1576: is fed as input to the program
1577: .i uurec .
1578: This program unpackages it and invokes
1579: .i rnews .
1580: .pg
1581: The best way to get mail to
1582: .cf rnews
1583: fed into
1584: .i uurec
1585: is to use
1586: .i sendmail
1587: or
1588: .i delivermail ,
1589: if you are on a system running them.
1590: Create an alias in
1591: .i /usr/lib/aliases
1592: as follows:
1593: .sd c
1594: rnews: "|\fBLIBDIR\fP/uurec"
1595: .ed
1596: and
1597: .i sendmail
1598: will handle it.
1599: If you do not have a facility for forwarding mail to a program,
1600: you can gimmick your mailer to watch for it
1601: (using
1602: .i popen (3S),
1603: this is easy)
1604: or,
1605: if you don't want to do any programming,
1606: you can have
1607: .i cron (8)
1608: invoke
1609: .i uurec
1610: every hour with
1611: .i /usr/spool/mail/rnews
1612: as standard input.
1613: This solution is messier because
1614: .i uurec
1615: must potentially deal with multiple messages,
1616: something that has never been tested.
1617: .hn 1
1618: Format of the
1619: .bi sys
1620: file
1621: .pg
1622: To set up a link to another site,
1623: edit the
1624: .i sys
1625: file in
1626: .b LIBDIR .
1627: This file is similar to the
1628: .i L.sys
1629: file of UUCP.
1630: Each line contains four fields,
1631: separated by colons:
1632: .Lp (1)
1633: The system name of a site to which you forward news.
1634: Normally all systems you have links to will be
1635: included.
1636: You should also have a line for your own system.
1637: If this field is
1638: .cn ME,
1639: it will be used as if it were your local system name.
1640: If the system name is followed by a \*(lq/\*(rq, the article will not be
1641: forwarded to this system if it has already passed through any of the
1642: (comma separated) list of sites immediately following the \*(lq/\*(rq.
1643: For example, if the sysline was:
1644: .sd c
1645: yoursite/sitea,siteb,sitec:world,comp,sci,news,rec,misc,na,usa,to.yoursite::
1646: .ed
1647: the incoming article would only be forwarded to
1648: .i yoursite
1649: if it had not already been to any of
1650: .i sitea ,
1651: .i siteb ,
1652: or
1653: .i sitec .
1654: This is normally used to reduce the number of duplicate articles received
1655: at a site that has multiple main newsfeeds.
1656: .lp (2)
1657: The newsgroups to be forwarded to that site.
1658: This is a pattern of the same kind as a subscription list.
1659: Generally,
1660: you will list classes of newsgroups,
1661: that is,
1662: using
1663: .ng all
1664: for everything.
1665: A typical forwarding list for a new site would be
1666: .sd c
1667: world,comp,sci,news,rec,misc,soc,talk,na,usa,to.\f2sysname\fP
1668: .ed
1669: where
1670: .i sysname
1671: is the name of the remote system.
1672: (Of course, if you are not in the USA or North America,
1673: you would remove those distributions
1674: and replace them with the ones appropriate for you.)
1675: In particular,
1676: you don't want to forward
1677: .ng all
1678: since local newsgroups
1679: (those without dots)
1680: should not be sent.
1681: For the line describing your own system,
1682: this field describes the newsgroups your site will accept from remote sites.
1683: Thus,
1684: if another site insists on sending you a newsgroup you don't want,
1685: for example
1686: .ng rec.humor ,
1687: include
1688: .ng !rec.humor
1689: here.
1690: .lp (3)
1691: This field contains flags describing the connection.
1692: .Qp A
1693: indicates that the other site is running an A version of netnews.
1694: .Qp B
1695: indicates a B version.
1696: Leaving it empty defaults to
1697: .b B .
1698: If you are reading this document,
1699: you have a B version.
1700: Some existing sites run A versions.
1701: If you aren't sure,
1702: ask your contact at the other site,
1703: with whom you should be talking to set this up anyway.
1704: .Qp F
1705: indicates that the fourth field is the name of a file.
1706: The full path name of a file containing the article in
1707: .b SPOOL
1708: will be appended to this file. If the fourth field is blank, the filename
1709: .b BATCHDIR \f2/sysname\fP,
1710: (where
1711: .i sysname
1712: is specified in the first field) will be used.
1713: .Qp L
1714: prevents transmission unless the article was created on this site.
1715: If a number follows the
1716: .b L
1717: .i e\f1.\fPg ., (
1718: .b L3 ),
1719: sites less than that number of hops away will be considered local.
1720: (It is recommended that you feed an
1721: .b L
1722: link to a backbone site,
1723: to ensure that your submissions will be more likely
1724: to get to the entire network,
1725: even in the event of a local problem.
1726: Please make sure that a mail link exists too,
1727: so you can get replies.)
1728: .Qp H
1729: can be used to interpolate the history file into the command.
1730: .Qp S
1731: says to execute the transmission command directly
1732: instead of forking a shell.
1733: .Qp U
1734: arranges that the parameter to the optional \*(lq%s\*(rq
1735: in the command field to be filled in with a permanent file name from
1736: .b SPOOL
1737: instead of a temporary customized file name.
1738: .Qp M
1739: says to use multi-casting. Multi-casting is described in an appendix.
1740: .Qp I
1741: automatically defines the
1742: .b F
1743: flag. However, it puts the article's
1744: .i Message-Id
1745: into the file instead of the filename containing the article. This is
1746: used with the
1747: .i ihave/sendme
1748: control messages.
1749: .Qp m
1750: (lower case
1751: .b m
1752: not upper case
1753: .b M )
1754: modifies the newsgroup pattern match to only return true if it
1755: matches the pattern in the second field AND the group is moderated.
1756: For example, if your
1757: .i sys
1758: file looked like:
1759: .sd c
1760: avax:world,comp,sci:mF:/usr/spool/batch/avax.sendimmediately
1761: avax:world,comp,sci,rec,talk,misc,soc,to.avax:F
1762: .ed
1763: .ei
1764: any moderated articles in the newsgroups
1765: .ng comp
1766: or
1767: .ng sci
1768: would be placed in the file
1769: .i avax.sendimmediately
1770: in the
1771: .b SPOOL
1772: directory.
1773: All other news for that machine would be placed in the file
1774: .i avax .
1775: You could then transmit the articles in
1776: .i avax.sendimmediately
1777: more often than the rest of the news.
1778: .Qp u
1779: works like
1780: .b m
1781: except that it only matches un-moderated newsgroups.
1782: .Qp N
1783: indicates that news should be sent using the ihave/sendme protocol.
1784: It should not really be used anymore as
1785: .b I
1786: is much more efficient.
1787: .lp (4)
1788: This field is the command to be run to send news to the remote site.
1789: The article will be on the standard input.
1790: Leaving this field blank means an ordinary UUCP link is being used,
1791: that is,
1792: the command defaults to
1793: .sd c
1794: uux \- \-r \-z sysname!rnews
1795: .ed
1796: The
1797: .op \-
1798: option tells
1799: .i uux
1800: to expect input from the standard input.
1801: The
1802: .op \-z
1803: option is nonstandard \- you should add it
1804: (see the
1805: .i minus.z
1806: files in the uucp source directory).
1807: It shuts off the annoying message you would otherwise get mailed to you
1808: telling you that your article was broadcast successfully.
1809: To avoid using the
1810: .op \-z
1811: option,
1812: change the source or put the
1813: .i uux
1814: command in the fourth field.
1815: The
1816: .op \-r
1817: option tells
1818: .i uux
1819: not to call the other system once the job is queued.
1820: This turns out to ease the load on the system,
1821: at the expense of making news be transmitted a bit slower.
1822: The news will be sent when the next call is made;
1823: usually this means the next time mail is sent to or from your system.
1824: If this turns out to be unreasonably long,
1825: put a line in
1826: .i crontab
1827: to run
1828: .sd c
1829: /usr/lib/uucp/uucico \-r1 \-s\f1sysname\fP
1830: .ed
1831: every hour or so.
1832: .pg
1833: Here is a sample
1834: .i sys
1835: file for a site
1836: .cn myvax
1837: with connections to
1838: .cn yourvax
1839: where
1840: .cn myvax
1841: also passes news on to
1842: .cn downstream .
1843: We assume that
1844: .cn myvax
1845: and
1846: .cn downstream
1847: exchange a local newsgroup class
1848: .ng lng.all
1849: as well as the network wide newsgroups.
1850: News to
1851: .cn downstream
1852: is batched.
1853: We also assume that
1854: .cn myvax
1855: and
1856: .cn yourvax
1857: are in the USA,
1858: while
1859: .cn downstream
1860: is in Canada.
1861: .sd
1862: myvax:world,comp,sci,rec,news,misc,soc,talk,na,usa,lng,to
1863: yourvax:world,comp,sci,rec,news,misc,soc,talk,na,usa,to.yourvax
1864: downstream:world,comp,sci,rec,news,misc,soc,talk,na,lng,to.downstream:F
1865: .ed
1866: .hn
1867: Posting Methods
1868: .pg
1869: The basic method is
1870: .i postnews .
1871: This program will prompt you for the title,
1872: newsgroups,
1873: and distribution,
1874: then place you in the editor.
1875: (The system default
1876: .b EDITOR
1877: is used unless the environment variable
1878: .b EDITOR
1879: is set,
1880: overriding the system default.)
1881: The text should be typed after the blank line.
1882: The title and newsgroups are available for editing at the top of the buffer.
1883: Other header lines can be added,
1884: such as an expiration date or a distribution.
1885: When you write out the file and exit from the editor,
1886: you will be prompted for what to do next. Your choices are:
1887: .b w rite
1888: the message to a file,
1889: .b s end
1890: the message,
1891: .b l ist
1892: the message or
1893: .b e dit
1894: it again.
1895: .pg
1896: Another method is to use mail.
1897: This can only be done on systems that allow mail to a given name
1898: to be fed into an arbitrary program as input.
1899: This is easily done with the Berkeley
1900: .i delivermail
1901: or
1902: .i sendmail
1903: program,
1904: and not with any other mailer the author is familiar with.
1905: (It may be possible to painfully set this up with MMDF,
1906: provided the newsgroup name is no more than 8 characters long.)
1907: To use mail,
1908: set up an alias such as the following:
1909: .sd c
1910: sci.physics: "|\fBLIBDIR\fP/recnews sci.physics"
1911: .ed
1912: Whenever a user sends mail to
1913: .ng sci.physics ,
1914: this starts up the given shell command which calls
1915: .ng recnews
1916: with one argument,
1917: the name of the newsgroup.
1918: You need to create one alias for each newsgroup,
1919: and to keep the list up to date as new newsgroups are created.
1920: .i Recnews (8)
1921: will in turn invoke
1922: .i inews .
1923: .pg
1924: Note that there are problems with
1925: .i recnews .
1926: There is no way to use it to post to multiple newsgroups
1927: without creating separate articles
1928: (something frowned upon because it forces people
1929: to read the same thing more than once).
1930: Also,
1931: there is no way to make the recording feature
1932: (to remind people to not accidently divulge proprietary information)
1933: work when recnews is used.
1934: .hn
1935: Various considerations
1936: .hn 2
1937: Spooling
1938: .pg
1939: If
1940: .i expire
1941: is already running and
1942: .i inews
1943: or
1944: .i rnews
1945: is invoked, the incoming article will be saved in
1946: .b SPOOLDIR /\f2.rnews\fP
1947: for later processing by
1948: .i "rnews \-U" .
1949: This is to prevent the incoming article from getting
1950: \*(lqlost\*(rq and not being in the history file.
1951: .i Expire
1952: automatically runs
1953: .i "rnews \-U"
1954: when it has finished.
1955: If you have defined
1956: .b SPOOLNEWS ,
1957: you should also invoke
1958: .i "rnews \-U"
1959: from crontab on a regular basis.
1960: .pg
1961: If you are not using some type of \*(lqsystem\*(rq locking (\f2e.g. flock()\fP or
1962: \f2lockf()\fP) you must make sure that the various lock files are
1963: removed when the system is rebooted after a crash. You can put a line
1964: in
1965: .i /etc/rc
1966: to remove these lock files. The most important one is
1967: .b LIBDIR \f2/active.lock\fP.
1968: .hn 2
1969: Setuid bits
1970: .pg
1971: The current intended state of affairs is that
1972: .i inews
1973: runs setuid to
1974: .b NEWSUSR .
1975: The
1976: .i readnews
1977: and
1978: .i vnews
1979: programs do not need to be setuid.
1980: This makes it possible to write your own interface to read news instead of using
1981: .i readnews .
1982: (As distributed,
1983: .i inews
1984: is also setgid.
1985: I know of no good reason for this.)
1986: .hn 2
1987: Modes of Spool Directories
1988: .pg
1989: All the files should be writable by
1990: .b NEWSUSR .
1991: However,
1992: due to a glitch,
1993: you will probably have to make the
1994: .b SPOOLDIR
1995: and its subdirectories mode 777.
1996: It could be 755 except for one problem.
1997: When a new newsgroup comes in,
1998: .i inews
1999: will attempt to
2000: .i mkdir (1)
2001: a new subdirectory of
2002: .b SPOOLDIR
2003: for the newsgroup.
2004: Since both
2005: .i inews
2006: and
2007: .i mkdir
2008: are setuid,
2009: .i mkdir
2010: will use the uid of the person who ran
2011: .i inews
2012: instead of
2013: .b NEWSUSR
2014: when checking for permissions.
2015: If the directory mode isn't 777 the check will fail.
2016: 4.[23] BSD sites do not have this problem as
2017: .i mkdir ()
2018: is a system call and will create the directory with the \*(lqcorrect\*(rq
2019: ownership.
2020: Here are several alternatives if you don't want a 777 directory around:
2021: .hn 3
2022: Fix Real Uid
2023: .pg
2024: If
2025: .i inews
2026: is always run by
2027: .i cron
2028: or as
2029: .i root ,
2030: the real uid can be arranged to be
2031: .i root
2032: or
2033: .b NEWSUSR .
2034: This is a poor solution
2035: since it makes the local creation of new newsgroups
2036: require super user permissions,
2037: and is a potential security hole.
2038: If this approach is taken,
2039: care must be taken to ensure that the owner of the created directory is
2040: .b NEWSUSR .
2041: .hn 3
2042: Change the Kernel
2043: .pg
2044: .i Inews
2045: will do:
2046: .b setuid(geteuid())
2047: (see
2048: .i setuid (2)
2049: and
2050: .i geteuid (2))
2051: before it forks the
2052: .i mkdir .
2053: If your system permits this call,
2054: there will be no problem.
2055: In particular,
2056: Berkeley 4.0
2057: .ux
2058: and later systems allow this.
2059: An alternative change to the kernel is to automatically stack uids:
2060: when a setuid program is run,
2061: set the new real uid to the old effective uid.
2062: .hn 3
2063: Groups
2064: .pg
2065: You could have
2066: .i inews
2067: be setgid to
2068: .b NEWSGRP
2069: and all files writable by the group.
2070: This approach has been tested and the problem turns out to be that the
2071: .i mkdir
2072: command uses the
2073: .i access (2)
2074: system call to check permissions.
2075: Since
2076: .i access
2077: uses the real gid,
2078: you run into the same problem.
2079: .hn 3
2080: Another
2081: .bi Mkdir
2082: .pg
2083: You could create a version of
2084: .i mkdir
2085: that does less checking and put it in a directory that can only be accessed by
2086: .b NEWSUSR
2087: (mode 700,
2088: owned by
2089: .b NEWSUSR ).
2090: Have
2091: .i inews
2092: fork this
2093: .i mkdir .
2094: .hn 2
2095: Expiration dates
2096: .pg
2097: To get articles to expire automatically, put a line in
2098: .i crontab
2099: to run
2100: .sd c
2101: \fBLIBDIR\fP/expire
2102: .ed
2103: every night.
2104: This command deletes all expired news.
2105: The
2106: .op \-a
2107: .i newsgroups
2108: option causes all expired news to be archived under
2109: .i /usr/spool/oldnews
2110: depending on which newsgroups are selected.
2111: (See
2112: .i expire (8)
2113: for details.)
2114: .pg
2115: Sometimes news is not expired when it should be.
2116: Be sure to check that
2117: .i expire
2118: has permissions to unlink files,
2119: and that it is properly setuid to
2120: .b NEWSUSR .
2121: You can manually invoke
2122: .i expire
2123: with the
2124: .op \-v
2125: (verbose) option to find out what it's doing.
2126: Adding levels of verbosity
2127: .i e\f1.\fPg ., (
2128: .op \-v6 )
2129: will get more and more output.
2130: .hn 2
2131: Version to Version
2132: .pg
2133: Version B will understand incoming news in either version A or B format,
2134: automatically (presuming
2135: .b OLD
2136: is defined in defs.h).
2137: Version B
2138: will generate either format,
2139: depending on the flag in the third field of the
2140: .i sys
2141: line.
2142: Version A will not understand version B format.
2143: Thus,
2144: it is possible for two version B
2145: sites to communicate using version A
2146: format.
2147: This will work but is not a good idea,
2148: since the translation from B to A loses information
2149: (such as the expiration date)
2150: which will not be there when translated back to version B.
2151: .pg
2152: News from versions A and 2.9 B
2153: do not conform to the USENET interchange standard.
2154: 2.10 B (and later) supports the standard and will communicate with either A or 2.9 B news.
2155: A news is written (losing other header information) if
2156: A is in the flags for the system.
2157: If
2158: .b OLD
2159: is defined,
2160: 2.10 will write out headers with both standard
2161: .hf Date "" (
2162: .hf Message-ID )
2163: and 2.9
2164: .hf Posted "" (
2165: .hf Article-I.D. )
2166: lines so that either B system will properly handle the article.
2167: Incoming news is recognized by the first letter
2168: .qp A "" (
2169: for A news),
2170: or the lack of an
2171: .cf @
2172: in the
2173: .hf From
2174: line (2.9).
2175: Missing fields are constructed as well as possible
2176: from the available information.
2177: .hn 2
2178: Using the news reading program rn
2179: .pg
2180: You must have installed all posted patches to
2181: .i rn
2182: up to and including #30.
2183: Otherwise,
2184: .i rn
2185: will not work properly with news 2.11.
2186: .hn 2
2187: Distributions
2188: .pg
2189: News 2.11 is much more particular about handling distributions than
2190: previous versions. In particular, make sure that you have the distribution
2191: .i world
2192: in every line of your
2193: .i sys
2194: file unless you are specifically limiting the distribution and are
2195: sure you know what you are doing.
2196: .hn
2197: Control Messages
2198: .pg
2199: Some news systems will send you articles that are not for human consumption.
2200: They are messages to your news system called
2201: .i "control messages" .
2202: Such messages contain the
2203: .hf Control
2204: header.
2205: Older systems use newsgroups matching
2206: .ng all.all.ctl ,
2207: and this will still work,
2208: although the
2209: .hf Control
2210: header is preferred.
2211: Since the newsgroup name is used for distribution only,
2212: and is not checked to ensure it's in the active file,
2213: such newsgroup names can still be used.
2214: This makes it possible to post network wide control messages with
2215: .ng world.msg.ctl
2216: (or restricted broadcast such as
2217: .ng btl.msg.ctl )
2218: or messages for a particular system:
2219: .ng to.ucbvax.ctl .
2220: Messages are canceled,
2221: however,
2222: with a
2223: .hf Control
2224: line in a message to the same newsgroup(s)
2225: as the original message.
2226: .pg
2227: A control message contains a command and zero or more arguments
2228: (much like a
2229: .ux
2230: program).
2231: The subject of the article contains the command and arguments.
2232: The body of the article is usually ignored,
2233: although some messages can use it for additional text information.
2234: .hn 2
2235: ihave/sendme
2236: .pg
2237: Two control messages are
2238: .b ihave
2239: and
2240: .b sendme .
2241: These messages allow two participating sites to set up a link
2242: so that one site will tell the other site it has a given article
2243: and wait for a request before it actually sends it.
2244: The normal case is to send an entire article to a system,
2245: which consults the history file to see if the article has already been seen,
2246: and then throws it away if it has been seen before.
2247: .pg
2248: Use of these control messages can cut down on this wasted transmission,
2249: but if you have a polled UUCP connection,
2250: they can slow down receipt of news due to polling delays.
2251: It is up to each connected pair of sites whether they want to use this protocol.
2252: The choice is controlled by the
2253: .b I
2254: flag in the
2255: .i sys
2256: file.
2257: In the case of a leaf node
2258: (one with only one neighbor)
2259: there is no advantage to this protocol.
2260: Even if both sites are able to initiate a connection
2261: (have dialers or the link is hard wired)
2262: the
2263: .op \-r
2264: option on the
2265: .i uux
2266: can cause 2 hour or more delays in propagating news.
2267: If transmission time and phone bills dominate your costs,
2268: and you are sending news to several sites,
2269: and large article bodies dominate the costs
2270: (rather than the headers and the time spent by UUCP negotiating transmission)
2271: it is probably worthwhile to use
2272: .pa ihave/sendme .
2273: If your costs are dominated by CPU load from UUCP,
2274: or if you send news to a site that cannot get it from anywhere else,
2275: you probably do not want to use this protocol.
2276: The decision can be made independently for each site in your
2277: .i sys
2278: file.
2279: .pg
2280: To use the ihave/sendme protocol, you should have the
2281: .b I
2282: flag defined in the sys file for the remote site. For example:
2283: .sd c
2284: elsie:world,na,usa,comp,sci,news,rec,soc,misc,talk,to.elsie:IF
2285: .ed
2286: .pg
2287: Note that the fourth field must be blank.
2288: .pg
2289: Normally, a message arrives at this site, is found to be ok (i.e. it hasn't
2290: already been received), and is considered for retransmission to other
2291: sites. If the system you are sending to has the
2292: .B I
2293: flag defined, the Message-ID
2294: is saved in the file specified in the sys entry.
2295: .pg
2296: After a period of time,
2297: .sd c
2298: sendbatch \-i elsie
2299: .ed
2300: is run by
2301: .i cron (8).
2302: It takes this file, makes it into an
2303: .b ihave
2304: control message, and sends it to the other site.
2305: When the message is received on the other site, the Message-IDs
2306: are looked up, and if any of the messages have not been received, they are put
2307: into a
2308: .b sendme
2309: control message. When the
2310: .b ihave
2311: message has been fully processed,
2312: the
2313: .b sendme
2314: message is sent to the site that sent the
2315: .b ihave
2316: message.
2317: .pg
2318: When the orignal site receives the
2319: .b sendme
2320: message, it sends the requested articles in the format designated by the
2321: .i sys
2322: file (the
2323: .b I
2324: flag is ignored in this case). In this example, it would write into the
2325: file
2326: .b /usr/spool/batch/ \f2elsie\fP
2327: for later processing by
2328: .i sendbatch .
2329: .hn 2
2330: newgroup
2331: .pg
2332: This message has one or two arguments,
2333: the name of a newsgroup to be created and the second optional argument
2334: .i moderated .
2335: This allows special action to be taken locally when a new newsgroup is created.
2336: It is generated by the
2337: .op \-C
2338: option to
2339: .i inews .
2340: By default,
2341: the newsgroup is added to the active file,
2342: and mail is sent to the local contact advising that this has happened.
2343: The directory will be created when a message for that newsgroup arrives.
2344: If
2345: .b NONEWGROUPS
2346: is defined, the newsgroup will not be created and
2347: .b NOTIFY
2348: will be sent mail explaining how to do it manually.
2349: See the routine \*(lqc_newgroup\*(rq in
2350: .i control.c
2351: if you want something different to happen.
2352: (Note that,
2353: although the body of the message contains a brief description
2354: of the purpose of the group,
2355: this body is usually thrown away by existing software.)
2356: If the second argument is the keyword
2357: .i moderated ,
2358: the newsgroup is created moderated, else it is unmoderated.
2359: .hn 2
2360: rmgroup
2361: .pg
2362: This message has one argument,
2363: the name of a newsgroup to be removed.
2364: It is used for network-wide cancellation of a newsgroup.
2365: If
2366: .b MANUALLY
2367: is not defined,
2368: it will remove the articles,
2369: directory,
2370: and active file line for the group.
2371: There is a shell script
2372: .i rmgroup
2373: that does essentially the same thing as this message,
2374: but the shell script only removes the group locally.
2375: We recommend that you leave
2376: .b MANUALLY
2377: defined,
2378: and when you receive mail advising you of the demise of the newsgroup,
2379: you run
2380: .i rmgroup
2381: by hand.
2382: This will prevent accidental or malicious removal of a good newsgroup.
2383: .hn 2
2384: cancel
2385: .pg
2386: This message cancels a given article.
2387: It takes one argument,
2388: the message id of the article to cancel.
2389: It should be broadcast to the same newsgroup as the original article.
2390: If the article to be canceled is not present, the control message
2391: will not be propagated to downstream sites.
2392: .hn 2
2393: sendsys
2394: .pg
2395: The
2396: .i sys
2397: file is mailed to the originator of the message.
2398: There are no arguments.
2399: This is used for making maps.
2400: Since your
2401: .i sys
2402: file is public information,
2403: you should not remove or change this control message.
2404: .hn 2
2405: senduuname
2406: .pg
2407: The
2408: .i uuname
2409: program is run and the output is mailed to the originator of the message.
2410: There are no arguments.
2411: This was used for making UUCP maps.
2412: It is of questionable use any more.
2413: If you do not run UUCP or have sites in your
2414: .i L.sys
2415: which are a secret,
2416: you may wish to edit this.
2417: Note that only the output of
2418: .i uuname
2419: is mailed,
2420: not the contents of
2421: .i L.sys
2422: (which news does not have access to anyway).
2423: If you do make a change,
2424: you should arrange that some mail still is sent out
2425: to the originator of the message, so the originator will know your site
2426: received it. See the code in routine \*(lqc_senduuname\*(rq in
2427: .i control.c .
2428: .hn 2
2429: version
2430: .pg
2431: The local version name/number of the netnews software
2432: is mailed back to the originator of the control message.
2433: .hn 2
2434: checkgroups
2435: .pg
2436: This control message is an attempt at semi-automatic maintenance
2437: of the list of active news groups.
2438: This control messages takes the body of the article and pipes it into
2439: .bi LIBDIR \f2/checkgroups\fP.
2440: As mentioned previously,
2441: .bi LIBDIR \f2/checkgroups\fP
2442: will update the newsgroups file,
2443: add any missing newsgroups, and mail a message to
2444: .b NOTIFY
2445: about any old newsgroups that should be removed.
2446: It is expected that the person who maintains the list of active newsgroups
2447: will broadcast this control message on a regular basis.
2448: .hn 2
2449: Other Messages
2450: .pg
2451: Any unrecognized message will cause an error message to be mailed
2452: to the local news administrator.
2453: Additional messages may be defined as time goes on,
2454: such as messages to automatically update directories or maps.
2455: You should be willing to go into the code
2456: .i control.c ) (
2457: and add messages as they become standardized.
2458: .hn
2459: Maintenance
2460: .pg
2461: There are some things you should do periodically
2462: to keep your news system running smoothly.
2463: We hope to eventually automate all or most of this,
2464: but right now some of it must be done by hand.
2465: .pg
2466: The
2467: .i history
2468: and
2469: .i log
2470: files in your
2471: .b LIBDIR
2472: directory will grow.
2473: You should make sure that they are cleaned up periodically.
2474: The
2475: .bi LIBDIR \f2/expire\fP
2476: program will remove lines from history corresponding to deleted articles,
2477: but it is a good idea to check the file every few weeks
2478: to make sure it is not going wild.
2479: Be sure not to completely lose your history file when you clean it up,
2480: in case another neighbor tries to send you an article you recently got.
2481: (If you only get news from one site it is safe to clean it out completely.)
2482: .pg
2483: The log file is not automatically cleaned out by any netnews software,
2484: and will grow quickly.
2485: The
2486: .i misc/trimlib
2487: script can be installed in
2488: .bi LIBDIR \f2/trimlib\fP,
2489: and invoked regularly by
2490: .i cron (8).
2491: .pg
2492: You should also clean out old newsgroups that are no longer active.
2493: To remove a newsgroup
2494: .ng misc.foo ,
2495: you should run the shell script
2496: .i rmgroup
2497: with
2498: .b misc.foo
2499: as the argument.
2500: That is,
2501: .sd c
2502: \fBLIBDIR\fP/rmgroup misc.foo
2503: .ed
2504: .pg
2505: Note that clearing up UUCP constipation is another thing you'll have to do
2506: if you have flaky hardware or phone lines.
2507: If you have more than one connection,
2508: chances are that UUCP will get clogged up when one of your neighbors goes down
2509: for more than a few hours.
2510: Various spooling schemes are being worked on
2511: to help make the news/uucp system more robust,
2512: but one thing you can and should do,
2513: if you find your
2514: .i /usr/spool/uucp
2515: directory getting too big,
2516: is to install a subdirectory fix to UUCP.
2517: A quick and dirty version of this is available from Duke,
2518: which traps the file-oriented system calls
2519: at the assembly language level and maps,
2520: for example,
2521: D.fooA1234 into D.foo/D.fooA1234.
2522: Since the C. and
2523: .i local "" D.
2524: directories still get big,
2525: in practice this can still create some big directories,
2526: but the directories tend to be a factor of 5 smaller,
2527: resulting in a factor of 25 improvement to speed
2528: (since a directory traversal for all files is quadratic on
2529: .ux ).
2530: Right now, unless you have the uucp distributed with 4.3 BSD or the so called
2531: .i HoneyDanBer
2532: uucp,
2533: UUCP is the weak link in netnews distribution,
2534: and you should certainly keep an eye on it.
2535: .hn
2536: Creating New Newsgroups
2537: .pg
2538: As system news administrator,
2539: you are able to create newsgroups.
2540: To create a newsgroup,
2541: first make sure this is the right thing to do.
2542: Normally a suggestion is first posted to
2543: .ng news.groups\f1,\fPwhatever.relatedgroup
2544: for a world wide newsgroup
2545: .b whatever.relatedgroup "" (
2546: should be the group which you are proposing to sub-divide.
2547: For instance,
2548: to propose creating
2549: .ng rec.arts.tv.soaps ,
2550: post the original article to
2551: .ng rec.arts.tv\f1,\fPnews.groups .)
2552: Followups are made to
2553: .ng news.groups
2554: .i only .
2555: (You can force this by putting the line:
2556: .sd c
2557: Followup-To: news.groups
2558: .ed
2559: in the headers of your original posting.)
2560: If it is established that there is general interest in such a group,
2561: and a name is agreed on,
2562: then someone creates it by typing the command
2563: .sd c
2564: inews \-d local \-C \fInewsgroup\fP
2565: .ed
2566: This will create the active entry locally. The directory will be
2567: created automatically when the first article for that newsgroup is
2568: received.
2569: It will also prompt you for a paragraph describing the group and start up an
2570: .i inews
2571: to post a newgroup control message announcing the group.
2572: .pg
2573: You must be the super user to use the
2574: .op \-C
2575: option to
2576: .i inews .
2577: (That is, your uid must match
2578: .b ROOTID .
2579: It is recommended that you change
2580: .b ROOTID
2581: to your own uid so you don't have to
2582: .i su
2583: to create newsgroups.)
2584: If you change the distribution to be something other than local, the
2585: newgroups message will be sent to the specified distribution.
2586: .hn
2587: Conversion from A to B
2588: .pg
2589: If you are currently running version A on your system,
2590: note that B is incompatible with A.
2591: The files are stored in a different format
2592: (headers have mail like field names now).
2593: The directory organization is different
2594: (each newsgroup has a subdirectory of its own,
2595: and the file names are numbers rather than
2596: .i site\f1.\fPid
2597: pairs).
2598: There are no
2599: .i bitmap ,
2600: .i uindex ,
2601: or
2602: .i nindex
2603: files to be trashed
2604: (which articles have been read is stored in each users
2605: .i .newsrc
2606: file).
2607: The user interface is slightly different
2608: .i netnews (1) (news/
2609: is now called
2610: .i readnews ,
2611: news is posted using
2612: .i inews ,
2613: subscription is done by editing
2614: .i .newsrc ,
2615: the sense of the
2616: .op \-c
2617: option is reversed,
2618: news is presented in newsgroup order,
2619: the
2620: .op \-a
2621: and
2622: .op \-t
2623: options now probably need
2624: .op \-x
2625: as well,
2626: and there are many minor changes).
2627: .pg
2628: We decided not to provide a program to convert from version A to version B.
2629: Rather,
2630: the following strategy was adopted for conversion:
2631: .lp (1)
2632: Install the new news in a different spool directory from the old one.
2633: For example,
2634: you can use
2635: .i /usr/spool/newnews .
2636: You can change to the standard name later if you want.
2637: Get it to work for local messages.
2638: .lp (2)
2639: Post an article to newsgroup
2640: .b general
2641: with the old news announcing the change.
2642: Make available documentation such as the accompanying paper
2643: .i "How to Read the Network News"
2644: to the users.
2645: This article will be the last one in the old news.
2646: .lp (3)
2647: .i Chmod
2648: the old news directory to 555 to prevent any more news from being posted.
2649: (Actually,
2650: this will prevent the bitfile from being updated,
2651: so it may not be a good idea.)
2652: .lp (4)
2653: Replace the old
2654: .i rnews
2655: program with the new
2656: .i rnews
2657: program.
2658: .lp (5)
2659: Test it by having your neighbor send you a message.
2660: .lp (6)
2661: Wait a reasonable period for everyone to have read the final article
2662: with the old news.
2663: Perhaps a few weeks is right.
2664: .lp (7)
2665: Uninstall the old news.
2666: .pg
2667: Users will have to invoke
2668: .i readnews
2669: instead of
2670: .i netnews
2671: to read news.
2672: Depending on your old method of posting,
2673: this could be changed too.
2674: (If you were using mail,
2675: it does not need to be changed.)
2676: They will also have to fix their subscriptions.
2677: In general,
2678: they can type
2679: .sd c
2680: netnews \-s
2681: .ed
2682: to see what they subscribe to on the old system,
2683: and then create a file in their home directory called
2684: .i .newsrc
2685: containing
2686: .sd c
2687: options \-n \f2their subscription\fP
2688: .ed
2689: The format of the subscription pattern matching is the same as in A
2690: except that
2691: .ng ALL
2692: is replaced by
2693: .ng all
2694: (change to lower case).
2695: Something along the lines of this could be used to automate this:
2696: .sd c
2697: (echo \-n "options \-s" ; netnews \-s | sed s/ALL/all/) > .newsrc
2698: .ed
2699: .hn
2700: Conversion from 2.9 to 2.11
2701: .pg
2702: Conversion from 2.9 to 2.11 is not nearly as involved as an A to B conversion.
2703: The user interface does not change much,
2704: and the user
2705: .i .newsrc
2706: files are not affected.
2707: However,
2708: it is recommended that you do the conversion during a time
2709: when no news is received,
2710: so that incoming news will not get lost.
2711: One way to ensure this is to make
2712: .i /usr/bin/rnews
2713: be a shell script which saves the article in
2714: .bi $$ "" /usr/spool/innews/
2715: .bi $$ "" (
2716: is the process id of the particular shell and will be unique for each article).
2717: .pg
2718: The first step to conversion is to customize the sources.
2719: In the past,
2720: you had to take a fresh distribution and edit the
2721: .i defs.h
2722: file and
2723: .i Makefile
2724: to suit local preferences.
2725: If you had many local changes,
2726: or didn't record the local changes,
2727: upgrading could be annoying.
2728: 2.11 provides a mechanism to automate these changes.
2729: Create a shell script in the src directory called
2730: .i localize.sh .
2731: (You can use
2732: .i localize.sample
2733: as a template.)
2734: This shell script should copy
2735: .i defs.dist
2736: to
2737: .i defs.h ,
2738: and copy
2739: .i Makefile.dst
2740: to
2741: .i Makefile .
2742: It should
2743: .i chmod
2744: any files that need to be changed
2745: (often
2746: .i Makefile
2747: and
2748: .i defs.h )
2749: to a writable mode.
2750: Then it should invoke
2751: .i ed (1)
2752: on the files,
2753: making any necessary local changes.
2754: .pg
2755: The next step is to compile the software,
2756: with
2757: .i make (1).
2758: It may be necessary to update the
2759: .i localize.sh
2760: file until you are satisfied with the compilation.
2761: Note that after any change to the
2762: .i Makefile
2763: in
2764: .i localize.sh ,
2765: you should run
2766: .i localize.sh
2767: by hand.
2768: Otherwise,
2769: although make will run it for you,
2770: it will then continue to do the make with the old
2771: .i Makefile .
2772: .pg
2773: When the software is compiled,
2774: you should run the
2775: .i cvt.active.sh
2776: shell script,
2777: with the
2778: .i lib
2779: and
2780: .i spool
2781: directories as parameters.
2782: This will create a new active file in
2783: .bi LIBDIR \f2/active\fP.
2784: Then run
2785: .i cvt.links.sh
2786: with the
2787: .i lib
2788: and
2789: .i spool
2790: directories as parameters.
2791: Then run
2792: .i cvt.names.sh
2793: with the
2794: .i lib
2795: and
2796: .i spool
2797: directories as parameters.
2798: Old news will be linked into the new hierarchy
2799: while leaving links in the old hierarchy.
2800: If you were using the default library and spool directories,
2801: you would do the following:
2802: .sd
2803: sh cvt.active.sh \fBLIBDIR\fP /usr/spool/news
2804: sh cvt.links.sh \fBLIBDIR\fP /usr/spool/news
2805: sh cvt.names.sh \fBLIBDIR\fP /usr/spool/news
2806: .ed
2807: .pg
2808: The next step is to back up the old binaries:
2809: .sd
2810: mv \fBBINDIR\fP/rnews \fBBINDIR\fP/ornews
2811: \&...
2812: .ed
2813: and to install 2.11 with
2814: .sd c
2815: make install
2816: .ed
2817: Once it is installed,
2818: any incoming news will be placed into the new hierarchy but not the old one.
2819: The critical time window is between running the three shell files and
2820: installing the new software \-
2821: any incoming news between these two points will appear
2822: in only the old hierarchy and be lost to the new software.
2823: If any significant time elapses here,
2824: you should divert
2825: .i rnews
2826: into a separate spool directory as described above.
2827: .pg
2828: It is crucial that you run
2829: .i expire
2830: before any new news arrives.
2831: .i Expire
2832: will update several key files automatically.
2833: .pg
2834: Finally,
2835: test things by posting articles to
2836: .bi neighbor "" \f3to.\fP
2837: newsgroups and watching some incoming news,
2838: and announce the change to your users.
2839: .pg
2840: When you are satisfied that the conversion was successful,
2841: run the shell file
2842: .i cvt.clean.sh
2843: which will remove the old 2.9 news hierarchy.
2844: .hn
2845: Converting from 2.10.x to 2.11
2846: .pg
2847: Converting from version 2.10 or later to 2.11 requires no special
2848: intervention. All files are updated automatically when you do
2849: \*(lqmake update\*(rq.
2850: .bp
2851: .hu
2852: Appendix A: Setting up a Compressed, Batched Newsfeed
2853: .pg
2854: First,
2855: .b BATCH
2856: must have been
2857: .i #define 'd
2858: when you built the news system.
2859: To check,
2860: look in the file
2861: .i defs.h
2862: in the news source directory.
2863: .b BATCH
2864: should be defined as a program name (by default,
2865: .i unbatch ).
2866: If it's undefined or commented out,
2867: define it,
2868: re-make the news system,
2869: and install the new software.
2870: .pg
2871: You'll also need a working
2872: .i compress
2873: program.
2874: Use the one shipped with this news distribution,
2875: which is based on version 4.0.
2876: Your news neighbors should be running a compatible version of compress.
2877: Versions 3.0 and 4.0 are compatible with each other,
2878: but both are incompatible with versions 2.0 and earlier.
2879: .pg
2880: Update your
2881: .i sys
2882: file.
2883: First, add the
2884: .b F
2885: flag to the other news system's line. For instance,
2886: if your compressed-and-batched news feed is named
2887: .cn frobozz ,
2888: and its
2889: .i sys
2890: file entry looks like:
2891: .si
2892: .sd
2893: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,ca,to.frobozz
2894: .ed
2895: .ei
2896: then add the
2897: .b F
2898: flag as the third (colon-separated) field:
2899: .si
2900: .sd
2901: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,ca,to.frobozz:F
2902: .ed
2903: .ei
2904: Now the pathnames of articles to be sent will be stashed in a file.
2905: This file can be specified in the fourth field of the
2906: .i sys
2907: entry.
2908: Normally, you can just use the default of
2909: .bi BATCHDIR \f2/system\fP,
2910: (where
2911: .bi BATCHDIR
2912: is usually
2913: .i /usr/spool/batch
2914: and
2915: .i system
2916: is the name of the remote system,
2917: in this example
2918: .cn frobozz ).
2919: A name of that form is necessary:
2920: the
2921: .i sendbatch
2922: script,
2923: which sends the batched news,
2924: looks for a file name of this form
2925: to decide if there's news for the remote system.
2926: .pg
2927: Your completed
2928: .i sys
2929: file line should look something like:
2930: .si
2931: .sd
2932: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,to.frobozz:F
2933: .ed
2934: .ei
2935: .pg
2936: In your
2937: .i crontab
2938: file, find or create at least two news lines:
2939: one that runs nightly,
2940: and one that runs every hour or so.
2941: The nightly-run script should run
2942: .i expire ,
2943: trim log files,
2944: and perhaps compile weekly statistics
2945: that you post to a local-area newsgroup one day a week.
2946: The hourly-run script should complete the transmitting task
2947: with a line like:
2948: .sd c
2949: sendbatch -c frobozz
2950: .ed
2951: Make sure the script knows how to get to the directory in which
2952: .i sendbatch
2953: lives.
2954: You can either mention the directory in the script's
2955: .b PATH -setting
2956: line,
2957: or replace
2958: .i sendbatch
2959: with its full pathname.
2960: .i Sendbatch
2961: reads the files mentioned in
2962: .i /usr/spool/batch/frobozz ,
2963: batches them,
2964: optionally compresses them,
2965: sends them to the remote system,
2966: and arranges for remote processing.
2967: .pg
2968: This remote processing can be directed by another file in
2969: .b BATCHDIR .
2970: Make an executable file with a name of the form
2971: .bi BATCHDIR \f2/system\fP.cmd
2972: (for this example,
2973: .i /usr/spool/batch/frobozz.cmd ).
2974: Put a line in it specifying the command that the remote system
2975: should execute to unpack the news batches that your system will send.
2976: An example
2977: .i frobozz.cmd
2978: would be:
2979: .sd c
2980: uux - -r -z -n -gd frobozz!rnews
2981: .ed
2982: .pg
2983: Now your system will transmit compressed batches.
2984: The receiving side of the business is handled largely by a program called
2985: .i rnews ,
2986: which will call other programs in
2987: .b LIBDIR
2988: to do additional processing on the incoming batches.
2989: .pg
2990: Make sure there is an executable file called
2991: .i rnews
2992: in the
2993: .b BINDIR
2994: directory
2995: (check the
2996: .i Makefile
2997: for its actual location).
2998: It must be reachable by UUCP
2999: or by whatever transport you'll use to transfer the netnews.
3000: If you defined
3001: .b BINDIR
3002: as
3003: .i /usr/bin ,
3004: you should have no problems because
3005: .i uuxqt
3006: can already get there.
3007: If you defined it as a different directory,
3008: you may have to teach
3009: .i uuxqt
3010: to look in that directory;
3011: accomplishing this varies from system to system.
3012: On 4.[23] BSD, add the directory to the
3013: .b PATH=
3014: line of your UUCP
3015: .i L.cmds
3016: file.
3017: On System V,
3018: on the
3019: .i rnews
3020: line of your
3021: .i L.cmds
3022: file,
3023: add a comma followed by
3024: the remote system's name on that line.
3025: If yours is in
3026: .i /usr/bin/news/rnews ,
3027: your
3028: .i L.cmds
3029: file will look like:
3030: .si
3031: .sd
3032: [For 4.[23]BSD]
3033: PATH=/bin:/usr/bin:/usr/bin/news
3034: rnews
3035: .ed
3036: .sd
3037: [For System V]
3038: /usr/bin/news/rnews,frobozz
3039: .ed
3040: .ei
3041: Other systems have a similar file in the
3042: .i /usr/lib/uucp
3043: directory by which you can specify added programs
3044: and paths different from the defaults.
3045: HP-UX,
3046: for example,
3047: has a
3048: .i /usr/lib/uucp/COMMANDS
3049: file which expands
3050: .i uuxqt 's
3051: horizons.
3052: .i HoneyDanBer
3053: uucp
3054: .i a.k.a " AT&T Basic Networking Utilities)" (
3055: has a
3056: .i Permissions
3057: file that controls what is executed.
3058: In more restrictive cases,
3059: paths are compiled into
3060: .i uuxqt .
3061: If you can't modify any UUCP files,
3062: just put
3063: .i rnews
3064: in
3065: .i /usr/bin.
3066: .pg
3067: Tell the person at the other end of your newsfeed to use
3068: .i "sendbatch \-c"
3069: to send you news.
3070: Once that's in place,
3071: watch your UUCP
3072: .i LOGFILE
3073: and your news
3074: .i log
3075: and
3076: .i errlog
3077: files to ensure that news is being correctly received and unpacked
3078: on your system.
3079: .pg
3080: Older compressed batching systems will try to exec
3081: .i cunbatch
3082: instead of
3083: .i rnews .
3084: If you are still communicating with these, leave
3085: .i cunbatch
3086: in
3087: .b BINDIR
3088: until they have upgraded their software.
3089: .bp
3090: .hu
3091: Appendix B: MULTICAST
3092: .pg
3093: If this is defined (in
3094: .i defs.h )
3095: then two new flag characters
3096: become defined in the
3097: .i sys
3098: file.
3099: The first,
3100: and most important,
3101: of these is the
3102: .b M
3103: flag.
3104: .pg
3105: If the
3106: .b M
3107: flag is set on some line in the
3108: .i sys
3109: file,
3110: then the fourth field (transfer command) is redefined to become a
3111: .i multicast
3112: name.
3113: That is simply another system name,
3114: expected to be found in the first field of some line in the
3115: .i sys
3116: file (textually following the line containing the
3117: .b M
3118: flag).
3119: .pg
3120: When a news item is being retransmitted,
3121: if it should (according to the subscription list) be sent to a system
3122: that has the
3123: .b M
3124: flag set,
3125: then instead of a command being run immediately to transmit the news,
3126: the news system remembers the system name,
3127: along with the multicast name (fourth field).
3128: .pg
3129: Eventually the multicast system name is found in the first field of a sys
3130: file line. If its subscription list allows transmission of this news item,
3131: then its command will be executed.
3132: This command may have up to two \*(lq%s\*(rq substitutions in it.
3133: The second of those is replaced by the name of a file
3134: containing the news item (used with the
3135: .b U
3136: flag).
3137: The first is subjected to rather special treatment.
3138: The whole \*(lqword\*(rq (delimited by white space)
3139: containing that \*(lq%s\*(rq is duplicated as many times
3140: as there were systems with the
3141: .b M
3142: flag set that referenced this multicast name
3143: (which might be 0 times,
3144: causing that \*(lqword\*(rq to be omitted).
3145: In each of these duplicates,
3146: the \*(lq%s\*(rq is replaced by the name of a system.
3147: Note the multicast system name itself is not included in this process.
3148: Then the command is executed as usual.
3149: .pg
3150: The second flag available if the news system is built with
3151: .b MULTICAST
3152: defined is
3153: .b O .
3154: If this flag is set,
3155: then the sys file line will be ignored unless the system name is
3156: a multicast name from some earlier line with the
3157: .b M
3158: flag,
3159: and the news item is to be sent to that (earlier) system.
3160: This allows the subscription list for the multicast system name
3161: (which is likely to be a fake system name,
3162: invented just for this purpose)
3163: to be given a very wide subscription list
3164: (like
3165: .ng all )
3166: without any unusual effects.
3167: .pg
3168: Here is an example.
3169: Assume that you wish to forward
3170: .ng comp.unix
3171: to four people by mail.
3172: You could do this as ...
3173: .si
3174: .sd
3175: fred:comp.unix::mail fred
3176: harry:comp.unix::mail harry
3177: jane:comp.unix::mail jane
3178: tony:comp.unix::mail tony
3179: .ed
3180: .ei
3181: however this causes the mail program to be started 4 times,
3182: once for each recipient.
3183: On some systems starting the mail program is a very expensive operation.
3184: If
3185: .b MULTICAST
3186: is defined,
3187: an alternative method is
3188: .si
3189: .sd
3190: fred:comp.unix:M:tony
3191: harry:comp.unix:M:tony
3192: jane:comp.unix:M:tony
3193: tony:comp.unix::mail tony %s
3194: .ed
3195: .ei
3196: This would cause just one command to be run:
3197: \*(lqmail tony fred harry jane\*(rq.
3198: Note that \*(lqtony\*(rq must still be explicitly included in the argument
3199: list to the mail command;
3200: the \*(lq%s\*(rq does not expand to include
3201: the multicast \*(lqsystem name\*(rq itself.
3202: .pg
3203: A more useful way of doing this,
3204: which does not assume that all the mail readers
3205: will want to read the same newsgroups is as follows.
3206: .si
3207: .sd
3208: fred:comp.unix:M:Mail
3209: harry:sci.physics,sci.astro:M:Mail
3210: jane:comp.unix.wizards,soc.women:M:Mail
3211: tony:comp.unix,comp.unix.wizards,rec.humor:M:Mail
3212: Mail:all:O:mail %s
3213: .ed
3214: .ei
3215: .pg
3216: Now,
3217: if a news item in group
3218: .ng comp.unix
3219: was received,
3220: the command
3221: .sd c
3222: mail fred tony
3223: .ed
3224: would be executed.
3225: If the news were in both
3226: .ng comp.unix
3227: and
3228: .ng comp.unix.wizards
3229: then the command would be
3230: .sd c
3231: mail fred jane tony
3232: .ed
3233: .pg
3234: If a news item in
3235: .ng sci.med
3236: (which no-one gets by mail) arrives,
3237: then the \*(lqMail\*(rq line will be ignored,
3238: because of the
3239: .b O
3240: flag.
3241: \*(lqMail\*(rq is a fake system invented just so its \*(lqtransfer command\*(rq
3242: can be used to send news to the other recipients.
3243: .pg
3244: The same kind of technique can be used for normal transfer
3245: of news to other systems if your transport network supports
3246: a facility to send to many other systems in one command.
3247: (That is,
3248: if it has a multicast facility.)
3249: SunIII (the network used in Australia) has this ability,
3250: so a typical Australian
3251: .i sys
3252: file looks like
3253: .sd
3254: emuvax:world,aus,comp.sci:M:FakeName
3255: kremlin:world,aus,comp,sci:M:FakeName
3256: kanga:world,aus,comp.unix:M:FakeName
3257: FakeName:all:OUS:/bin/sendfile -NRSareporter -d%s -x%s
3258: .ed
3259: .pg
3260: A news item in
3261: .ng aus.general
3262: causes the following command
3263: .sd c
3264: /bin/sendfile -NRSareporter -demuvax -dkremlin -dkanga -x/usr/spool/...
3265: .ed
3266: to be executed.
3267: Just one command is run to send the news to three remote systems.
3268: .pg
3269: If a multicast system has the
3270: .b F
3271: flag set,
3272: then the name of a file containing the news is appended to the file
3273: whose name is in the fourth field,
3274: as usual.
3275: But on the same line,
3276: separated by spaces,
3277: will be appended the names of all the systems
3278: that referenced this multicast system.
3279: .pg
3280: For example,
3281: if the Australian site wanted to batch news,
3282: instead of sending it directly,
3283: it would simply change the last line of its
3284: .i sys
3285: file to
3286: .sd c
3287: FakeName:all:F:/usr/spool/batched/allsites
3288: .ed
3289: .pg
3290: Then a news item in
3291: .ng misc.jobs
3292: would cause the following line to be appended to
3293: .i /usr/spool/batched/allsites
3294: .sd c
3295: /usr/spool/news/misc/jobs/5542 emuvax kremlin
3296: .ed
3297: .pg
3298: This can then be processed later, in something like the normal manner.
3299: (Unfortunately no commands to do this processing are yet available.)
3300: .pg
3301: Caution: when
3302: .b MULTICAST
3303: is defined,
3304: the first \*(lq%s\*(rq in all transfer commands is used for multicast,
3305: regardless of whether or not the system name is ever used as the last field
3306: of some line with the
3307: .b M
3308: flag set.
3309: To use the
3310: .b U
3311: flag in such a case,
3312: a dummy \*(lq%s\*(rq should be used,
3313: it will simply be omitted from the command that is executed.
3314: .pg
3315: As an example,
3316: if a
3317: .i sys
3318: file line without
3319: .b MULTICAST
3320: defined was:
3321: .sd c
3322: foovax:comp,world,na,usa:U:uux - foovax!foonews <%s
3323: .ed
3324: with
3325: .b MULTICAST
3326: defined,
3327: it would need to be changed to:
3328: .sd c
3329: foovax:comp,world,na,usa:U:uux - foovax!foonews %s <%s
3330: .ed
3331: .pg
3332: Additional caution:
3333: The numbers of system names that may be used
3334: in this way are quite severly restricted.
3335: Typically there may only be about 10 multicast system names,
3336: and each of those is restricted to sending to no more than about 20 systems.
3337: These limits are dynamic
3338: (that is,
3339: the numbers counted are the number of multicast systems
3340: receiving any single news item,
3341: and the number of systems that each of those
3342: will actually cause this particular news item to be sent to).
3343: These limits should easily suffice for real news sending to remote systems;
3344: however they are not likely to suffice if you want to mail news to everyone
3345: on your host.
3346: .bp
3347: .hu
3348: Appendix C: Installing news on a Eunice system
3349: .pg
3350: Eunice does not have links. To get around this problem without
3351: wasting megabytes of disk space, links are simulated. Each article
3352: is stored under the directory corresponding to the first group on
3353: the Newsgroups line. The remaining directories contain a short
3354: file giving the name of the real file.
3355: .i Readnews
3356: and
3357: .i vnews
3358: know how to follow these links; so does
3359: .i rn
3360: if it is compiled with
3361: .b LINKART
3362: defined
3363: .i rn "" (
3364: is not included in this distibution).
3365: .pg
3366: If you expire different groups at different times, an article disappears
3367: when the first group in the Newsgroups line expires, even if it's cross
3368: posted to a group you retain longer. Also, the archival option for
3369: .i expire
3370: (\-a flag) does not work.
3371: .pg
3372: Eunice does not have the set-user-id bit. Instead, the VMS feature
3373: allowing installation of privileged images is used. inews and rnews
3374: must be installed with SYSPRV privilege. To allow VMS to install
3375: .i inews
3376: .i rnews "" (
3377: is a copy of it), it must be linked with the
3378: .i /notrace
3379: flag. Despite the documentation, this only seems to work if the
3380: VMS linker is used on VMS-format object files, as of Eunice version 4.2.
3381: So it is VERY IMPORTANT to type
3382: .i vmsobj
3383: before building news.
3384: .pg
3385: The DCL command file
3386: .i euninstal.com
3387: installs
3388: .i inews
3389: and
3390: .i rnews
3391: with the proper privileges. It is run by \*(lqmake install\*(rq as the last
3392: step. It is possible that it will fail because your system does
3393: not have sufficient global page table space or known file list
3394: entries. See the Eunice installation manual to learn how to increase
3395: the values of these parameters (you will have to reboot the system).
3396: .pg
3397: The
3398: .i euninstal.com
3399: script must be run every time the system is booted.
3400: I suggest invoking it from /etc/suchmod.com.
3401: .pg
3402: It is crucial that
3403: .b LIBDIR \f2/active\fP
3404: and
3405: .b LIBDIR \f2/seq\fP
3406: be in Unix format, as opposed to VMS format. Use
3407: .i etc/vmstounix
3408: to assure this.
3409: .pg
3410: Not all options have been tested; if you select options other than
3411: those set by the localize.vms script (except for obvious things like
3412: .B ORGNAME ,
3413: etc) I can't guarantee that it will work. In particular, I
3414: haven't attempted to define
3415: .b SPOOLNEWS
3416: or
3417: .b MULTICAST .
3418: That doesn't mean they won't work, just that I haven't tried them.
3419: .pg
3420: If you choose to run compressed batching, I recommend that you put
3421: .i cunbatch
3422: in your
3423: .i L.cmds
3424: file and have your news feed send
3425: compressed batches the \*(lqold\*(rq way, because this saves an exec, and
3426: forks and execs are so expensive on Eunice (the new way is for the
3427: first line to be #cunbatch, and have
3428: .i rnews
3429: exec
3430: .i cunbatch ).
3431: .pg
3432: If you have questions on Eunice and news contact:
3433: .sd c
3434: Joe Buck, Entropic Processing, Inc.
3435: .sp 1
3436: seismo!epiwrl!epimass!jbuck
3437: hplabs!oliveb!epimass!jbuck
3438: .ed
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.