|
|
1.1 root 1:
2:
3:
4:
5:
6:
7:
8:
9:
10: UUUUSSSSEEEENNNNEEEETTTT VVVVeeeerrrrssssiiiioooonnnn BBBB IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn
11:
12:
13: Matt Glickman
14:
15: Computer Science Division
16: Department of Electrical Engineering and Computer Sciences
17: University of California
18: Berkeley, California 94720
19:
20:
21: Revised by Mark Horton
22:
23:
24:
25:
26:
27:
28: _1. _I_n_t_r_o_d_u_c_t_i_o_n
29:
30: This document is intended to help a USENET site install
31: and maintain the network news software. Please ask ques-
32: tions of the author or of Mark Horton, such questions will
33: help to point out areas that need to be addressed here.
34:
35: The overall order of things to do is:
36:
37: (a) Find somebody to link up with. You need a network con-
38: nection of some kind, for example ARPANET or UUCP. You
39: cannot get a link to Berkeley, sorry. If you must use
40: UUCP and have no connections, you must have at least a
41: dialup and preferably a dialer, and find someone wil-
42: ling to call your machine. The USENET directory may be
43: helpful in finding some other site geographically near
44: yours to hook up to.
45:
46: (b) Create a localize.sh script to make local changes to
47: the makefile and defs.h files.
48:
49: (c) Compile the software using the _m_a_k_e command.
50:
51: (d) Su and type ``make install''. This will copy the files
52: out to the right place and make directories containing
53: most of the important files. It will configure you in
54: with a connection to ucbvax via uucp links. This is
55: undoubtably wrong, so you will have to configure links
56: as needed.
57:
58: (e) After editing the configuration table, get your contact
59: at the other end of the link to add you to their sys or
60: .sys file.
61:
62:
63:
64: May 3, 1983
65:
66:
67:
68:
69:
70: - 2 -
71:
72:
73: (f) Post a message to the to._s_y_s_n_a_m_e newsgroup which should
74: be set up to go only to the site you are linked to, as
75: a test. Have the other person send a message to your
76: system using the same mechanism. If this doesn't work,
77: find the problem and fix it. (Please don't use
78: net.test unless there is no alternative. It is almost
79: always possible to use test, or to._s_y_s_n_a_m_e, or some
80: local.test group, instead of net.test.
81:
82: (g) Fill out a USENET directory form and post a copy to the
83: USENET newsgroup ``net.news.newsite.''
84:
85: (h) Post the ``etiquette'' and ``tencmdts'' files (in the
86: doc directory) to your ``general'' newsgroup with a
87: long expiration date. Running ``rnews'' separately on
88: each of these files will do.
89:
90: (i) It will probably be necessary to fix your uucp command
91: to allow rnews, and to support the -z and -n options.
92:
93: _2. _I_n_s_t_a_l_l_a_t_i_o_n
94:
95: _2._1. _C_o_n_f_i_g_u_r_a_t_i_o_n
96:
97: Local configuration of the UUUUSSSSEEEENNNNEEEETTTT version B software
98: requires you to edit a few files. Most importantly, the
99: ddddeeeeffffssss....hhhh and MMMMaaaakkkkeeeeffffiiiilllleeee files must be created from their tem-
100: plates ddddeeeeffffssss....ddddiiiisssstttt and MMMMaaaakkkkeeeeffffiiiilllleeee....****. You should create a shell
101: script called localize.sh which copies the files and makes
102: local changes to the copies. Even for a completely vanilla
103: site, some changes will be necessary. For example, your
104: script should choose between Makefile.v7 and Makefile.usg,
105: and between postnews.v7 and postnews.usg. You should
106: include the name of the local organization (MMMMYYYYOOOORRRRGGGG) and the
107: uid of the local news super user (RRRROOOOOOOOTTTTIIIIDDDD). A sample local-
108: ize shell script can be found in localize.sample. The most
109: important parameters are:
110:
111: _2._1._1. _R_O_O_T_I_D
112:
113: The numerical userid of the person who is the news
114: super user. This should not be set to 0. Normally it is
115: set to the uid of the news contact person for the site.
116:
117: _2._1._2. _N__U_M_A_S_K
118:
119: Mask for _u_m_a_s_k(_2) system call. Set to something like
120: 022 for a secure system. Unsecure systems might want 002 or
121: 000. This mask controls the mode of news files created by
122: the software. Insecure modes would allow people to edit the
123: files directly.
124:
125:
126:
127:
128:
129:
130: May 3, 1983
131:
132:
133:
134:
135:
136: - 3 -
137:
138:
139: _2._1._3. _D_F_L_T_E_X_P
140:
141: The default no. of seconds after which an article will
142: expire. 2 weeks (1209600 seconds) is the default choice.
143:
144: _2._1._4. _D_F_L_T_S_U_B
145:
146: The default subscription list. If a user does not
147: specify any list of newsgroups, this will be used. Popular
148: choices are aaaallllllll and ggggeeeennnneeeerrrraaaallll,,,,aaaallllllll....ggggeeeennnneeeerrrraaaallll.
149:
150: _2._1._5. _T_M_A_I_L
151:
152: This is the version of the Berkeley _M_a_i_l program that
153: has the -T option. If left undefined, the ----MMMM option to
154: _r_e_a_d_n_e_w_s will be disabled.
155:
156: _2._1._6. _A_D_M_S_U_B
157:
158: This newsgroup (or newsgroup list) will always be
159: selected unless the user specifies a newsgroup list that
160: doesn't include ADMSUB on the command line. That is, as
161: long as the user doesn't use the ----nnnn flag to readnews on the
162: command line, ADMSUB will always be selected. This is usu-
163: ally set to ggggeeeennnneeeerrrraaaallll. (The intent of this parameter is to
164: have certain newsgroups which users are required to sub-
165: scribe to. A typical site might require ggggeeeennnneeeerrrraaaallll.)
166:
167: _2._1._7. _P_A_G_E
168:
169: The default program for which articles will be piped to
170: for paging. This can be disabled or changed by the environ-
171: ment variable PAGER. If you have it, the Berkeley _m_o_r_e com-
172: mand should be used, since the + option allows the headers
173: to be skipped.
174:
175: _2._1._8. _I_N_E_W_S
176:
177: The full path name of the _i_n_e_w_s program for _r_e_c_n_e_w_s to
178: fork.
179:
180: _2._1._9. _F_O_L_L_O_W_U_P
181:
182: This is the command used to internally post followups.
183: It is not normally changed.
184:
185: _2._1._1_0. _R_N_E_W_S
186:
187: The name of the _r_n_e_w_s program (a link to _i_n_e_w_s) for
188: _u_u_r_e_c to fork. Normally this is /usr/bin/rnews. Wherever
189: you install it, it must be in uuuuuuuuxxxxqqqqtttt's default path, normally
190: ////bbbbiiiinnnn::::////uuuussssrrrr////bbbbiiiinnnn.
191:
192:
193:
194:
195:
196: May 3, 1983
197:
198:
199:
200:
201:
202: - 4 -
203:
204:
205: _2._1._1_1. _N_O_T_I_F_Y
206:
207: If defined, this character string will be used as a
208: user name to send mail to in the event of certain control
209: messages of interest. (Currently these are newgroup,
210: rmgroup, sendsys, and senduuname.) As distributed, mail will
211: be sent to user uuuusssseeeennnneeeetttt. It is recommended you create such a
212: mailbox (have it forwarded to yourself) if possible, since
213: this makes it easier for another site to contact the site
214: administrator for your site. If you are unable to do this
215: (e.g. you are not the super user) you should change this
216: name to yourself.
217:
218: _2._1._1_2. _D_F_T_X_M_I_T
219:
220: This is the default command to use to transmit news if
221: no explicit command is given in the 4th field of the sys
222: file. It normally includes uux with the -z option. You
223: should install this mod to uucp at once, otherwise your
224: users will start being bombarded with annoying uux comple-
225: tion messages. However, you can turn this off to get news
226: installed.
227:
228: _2._1._1_3. _U_X_M_I_T
229:
230: This is the default command used if the U flag is
231: present in the flags portion of a sys file line. In this
232: case, the 2nd %s refers to the name of a file in the news
233: spool area, not a temporary file. It can usually only be
234: used when local modifications are made to the uucp system,
235: such as the -c option to uux.
236:
237: _2._1._1_4. _D_F_T_E_D_I_T_O_R
238:
239: This is the full path name of the default editor to use
240: during followups and replies. It should be set to the most
241: popular text editor on your system. As distributed, vvvviiii is
242: used.
243:
244: _2._1._1_5. _U_U_P_R_O_G
245:
246: If this is defined, it will be used as a command to run
247: when the sssseeeennnndddduuuuuuuunnnnaaaammmmeeee control message is sent around. Other-
248: wise the command uuuuuuuunnnnaaaammmmeeee will be run. Normally, this program
249: should be placed in LIBDIR.
250:
251: _2._1._1_6. _M_A_N_U_A_L_L_Y
252:
253: If this is defined, incoming rrrrmmmmggggrrrroooouuuupppp messages will not
254: remove the subdirectories, but rather just remove the group
255: line from your active file. You should have NOTIFY on if
256: you use this. Note that on a USG system the subdirectory
257: will not be removed anyway unless you have an unsecure (mode
258: 777 directory) system. This is turned off by default to
259:
260:
261:
262: May 3, 1983
263:
264:
265:
266:
267:
268: - 5 -
269:
270:
271: protect you against accidental or malicious removal of an
272: important newsgroup.
273:
274: _2._1._1_7. _B_A_T_C_H
275:
276: If set, this is the name of a program that will be used
277: to unpack batched articles (those beginning with the charac-
278: ter `#'). Batched articles normally are files reading
279:
280: #! rnews 1234
281: article containing 1234 characters
282: #! rnews 4321
283: article containing 4321 characters
284: etc.
285:
286:
287: _2._1._1_8. _B_E_R_K_N_A_M_E
288:
289: If your site is connected into USENET over a Berknet
290: link, specify the Berknet name of your site here.
291:
292: _2._1._1_9. _L_O_C_A_L_N_A_M_E
293:
294: Most systems have a full name database on line some-
295: where, showing for each user what their full name is. Most
296: often this is in the GCOS field of /etc/passwd. If your
297: system has such a database, LOCALNAME should be left unde-
298: fined. If not, define LOCALNAME, and articles posted will
299: only receive full names from local user information speci-
300: fied in NAME or ~/.name by the user. If you have a nonstan-
301: dard GCOS format (not finger or RJE) it will be necessary to
302: make local changes to fullname.c as appropriate on your sys-
303: tem.
304:
305: _2._1._2_0. _I_N_T_E_R_N_E_T
306:
307: If your system has a mailer that understands ARPA
308: Internet syntax addresses (user@domain) turn this on, and
309: replies will use the From or Reply-To headers. Otherwise,
310: leave it disabled and replies will use the Path header.
311:
312: _2._1._2_1. _M_Y_D_O_M_A_I_N
313:
314: When generating internet addresses, this domain will be
315: appended to the local site name to form mailing address
316: domains. For example, on system ucbvax with user root, if
317: MYDOMAIN is set to ``.UUCP'', addresses generated will read
318: ``[email protected]''. If MYDOMAIN is ``.Berkeley.ARPA'',
319: the address would be ``[email protected]''. If your
320: site is in more than one domain, use your primary domain.
321: The domain always begins with a period, unless the local
322: site name contains the domain; in this case MYDOMAIN should
323: be the null string.
324:
325:
326:
327:
328: May 3, 1983
329:
330:
331:
332:
333:
334: - 6 -
335:
336:
337: _2._1._2_2. _A_U_T_O_N_E_W_N_G
338:
339: If defined, any article that comes in with an invalid
340: newsgroup will automatically cause the newsgroup to be
341: created. In the past this was enabled, but now it is dis-
342: abled to prevent typographical errors at sites running older
343: versions of news that do not prevent postings with bad
344: groups from creating newsgroups all over the network. It is
345: recommended that this be left disabled, although a new site
346: coming up without a complete active file may wish to run
347: with it enabled for a few weeks.
348:
349: _2._1._2_3. _C_H_E_A_P
350:
351: Do not chown spool files to news. Used for obscure
352: accounting reasons on some systems.
353:
354: _2._1._2_4. _O_L_D
355:
356: Define this if any of your USENET neighbors run 2.9 or
357: earlier versions of B news. It will cause all headers writ-
358: ten to contain two extra lines: Article-I.D. and Posted, for
359: upward compatibility. Once all your neighbors have con-
360: verted, you can save disk space and transmission costs by
361: turning this off.
362:
363: _2._1._2_5. _U_N_A_M_E
364:
365: Define this if the uname system call is available
366: locally, even though you are not a USG system. USG systems
367: always have uname available and ignore this setting.
368:
369: _2._1._2_6. _G_H_N_A_M_E
370:
371: Define this if the 4.2BSD gethostname system call is
372: available. If neither UNAME or GHNAME is defined, inews
373: will determine the name of the local system by reading
374: /usr/include/whoami.h.
375:
376: _2._1._2_7. _V_7_M_A_I_L
377:
378: Define this if your system uses V7 mail conventions.
379: The V7 mail convention is that a mailbox contains several
380: messages concatenated, each message beginning with a line
381: reading ``From user date'' and ending in a blank line. If
382: this is defined, articles saved will have these lines added
383: so that mail can be used to look at saved news.
384:
385: _2._1._2_8. _M_Y_O_R_G
386:
387: This should be set to the name of your organization.
388: Please keep the name short, because it will be printed,
389: along with the electronic address and full name of the
390: author of each message. 40 characters is probably a good
391:
392:
393:
394: May 3, 1983
395:
396:
397:
398:
399:
400: - 7 -
401:
402:
403: upper bound on the length. If the city and state or country
404: of your organization are not obvious, please try to include
405: them. If the organization name begins with a `/', it will
406: be taken as the name of a file. The first line in that file
407: will be used as the organization. This permits the same
408: binary to be used on many different machines. A good file
409: name would be `/usr/lib/news/organization'. For example, an
410: organization might read ``Bell Labs, Murray Hill'', or
411: ``U.C. Berkeley'' or ``MIT'' or ``Computer Corp. America,
412: Cambridge, Mass''.
413:
414: There are other parameters that may be modified in
415: ddddeeeeffffssss....hhhh, and they are described in the file.
416:
417: _2._2. _M_a_k_e_f_i_l_e
418:
419: There are also a few parameters in the MMMMaaaakkkkeeeeffffiiiilllleeee as
420: well. These are:
421:
422: _2._2._1. _N_E_W_S_U_S_R
423:
424: This is the owner (user name) of _i_n_e_w_s. If you are a
425: superuser, you should probably create a new user id (tradi-
426: tionally nnnneeeewwwwssss) and use this id. If you are not a superuser,
427: you can use your own user id. If you are able to, you
428: should create a mail alias uuuusssseeeennnneeeetttt and have mail to this
429: alias forwarded to you. This will make it easier for other
430: sites to find the right person in the presence of changing
431: jobs and out of date or nonexistent directory pages.
432: NEWSUSR and ROOTID do not need to represent the same user.
433:
434: _2._2._2. _N_E_W_S_G_R_P
435:
436: This is the group (name) to which _i_n_e_w_s belongs. The
437: same considerations as NEWSUSR apply.
438:
439: _2._2._3. _S_P_O_O_L_D_I_R
440:
441: This directory contains subdirectories in which news
442: articles will be stored. It is normally /usr/spool/news.
443:
444: Briefly, for each newsgroup (say nnnneeeetttt....ggggeeeennnneeeerrrraaaallll) there
445: will be a subdirectory /usr/spool/news/net/general contain-
446: ing articles, whose filenames are sequential numbers, e.g.
447: /usr/spool/news/net/general/1, etc.
448:
449: Each article file is in a mail-compatible format. It
450: begins with a number of header lines, followed by a blank
451: line, followed by the body of the article. The format has
452: deliberately been chosen to be compatible with the ARPANET
453: standard for mail documented in RFC 822.
454:
455: You should place news in an area of the disk with
456: enough free space to hold news you intend to keep on line.
457:
458:
459:
460: May 3, 1983
461:
462:
463:
464:
465:
466: - 8 -
467:
468:
469: The total volume of news in net.all currently runs about
470: 3MB/week. If you expirenews after the default 2 weeks, you
471: will need about 6MB of disk space (plus some extra as a
472: safety margin and to allow for increased traffic in the
473: future.) If you only receive some of the newsgroups, or
474: expire news after a different interval, these figures can be
475: adjusted accordingly. Other newsgroup classes do not add
476: much to the volume; fa.all accounts for only about
477: 80KB/week, and btl.all+bell.all are only about 450KB/week.
478:
479: _2._2._4. _L_I_B_D_I_R
480:
481: This directory will contain various system files. It
482: is normally /usr/lib/news.
483:
484: _2._2._5. _B_I_N_D_I_R
485:
486: This is the directory in which _i_n_e_w_s, _r_e_a_d_n_e_w_s, and
487: _c_h_e_c_k_n_e_w_s are to be installed. This is normally /usr/bin.
488: If you decide to set BINDIR to a local binary directory, you
489: should consider that the rrrrnnnneeeewwwwssss command must be in a direc-
490: tory that can be found by uuuuuuuuxxxxqqqqtttt, which only searches /bin
491: and /usr/bin unless you modify uuxqt.
492:
493: _3. _F_I_L_E_S
494:
495: This section lists the files in LIBDIR and comments
496: briefly what they do.
497:
498: _3._1. _a_c_t_i_v_e
499:
500: A list of active newsgroups. Automatically updated as
501: new newsgroups come in. The order here is the order news is
502: presented by rrrreeeeaaaaddddnnnneeeewwwwssss, so you can edit this file to put
503: important newsgroups first. Each line of the active file
504: contains two fields: the newsgroup name, and the highest
505: local article number (for the most recently received arti-
506: cle), separated by a space. Local article numbers begin at
507: 1 and count sequentially within the newsgroup as articles
508: are received. They do not usually correspond to local arti-
509: cle numbers on other sites. The article number is always
510: stored as a 5 digit number (with leading zeros) to allow
511: updating of the file in place.
512:
513: _3._2. _c_a_e_s_a_r
514:
515: A program to do caesar decoding of rotated text, on a
516: line by line basis. The standard input is copied to the
517: standard output, rotating each line according to a static
518: single letter frequency table. If an integer argument is
519: given (e.g. 13), every line is rotated by that argument,
520: without regard to letter frequencies. This program is
521: invoked by the ``D'' readnews command, and may also be used
522: with the ``13'' argument to encode material for posting.
523:
524:
525:
526: May 3, 1983
527:
528:
529:
530:
531:
532: - 9 -
533:
534:
535: _3._3. _h_e_l_p
536:
537: A list of commands printed when an illegal command is
538: typed to rrrreeeeaaaaddddnnnneeeewwwwssss.
539:
540: _3._4. _h_i_s_t_o_r_y
541:
542: A list of every article that has come in to your sys-
543: tem. Used to reject articles that come in for the second
544: time (presumably via a different path). This file will grow
545: but is cleaned out by the expire command.
546:
547: _3._5. _h_i_s_t_o_r_y._d_i_r,_h_i_s_t_o_r_y._p_a_g
548:
549: These two files are used on V7 systems as a hashed ver-
550: sion of history, containing the message ID's of all articles
551: in history. They are only used if -DDBM and -ldbm appear in
552: the Makefile.
553:
554: _3._6. _l_o_g
555:
556: If present, a log of articles processed and error con-
557: ditions is kept here. This file grows without limit unless
558: cleaned out periodically, the trimlib script in misc can be
559: invoked from /usr/lib/crontab daily or weekly to keep the
560: log short.
561:
562: _3._7. _n_g_f_i_l_e
563:
564: A list of newsgroups that you can legally post to
565: locally. Actually it's a pattern, so if you include aaaallllllll it
566: will allow everything. You probably want to forbid ffffaaaa....aaaallllllll
567: here. It is also possible to control what newsgroups you
568: will accept from other sites using a different mechanism -
569: see the section on the format of the ssssyyyyssss file.
570:
571: _3._8. _n_o_t_i_f_y
572:
573: If this file is present, it's contents will be taken as
574: the name of the user to notify in case of a problem. If the
575: file is empty, nobody will be notified. (This overrides the
576: NOTIFY option in defs.h.) This is useful if one person
577: administers several systems and does not want multiple
578: copies of control message notifications.
579:
580: _3._9. _r_e_c_n_e_w_s
581:
582: A program which allows you to send mail to get news
583: posted. You usually need to run sssseeeennnnddddmmmmaaaaiiiillll or ddddeeeelllliiiivvvveeeerrrrmmmmaaaaiiiillll to
584: be able to use this.
585:
586:
587:
588:
589:
590:
591:
592: May 3, 1983
593:
594:
595:
596:
597:
598: - 10 -
599:
600:
601: _3._1_0. _r_e_c_o_r_d_i_n_g
602:
603: A list of newsgroup classes and file names to display
604: recordings for. The recording feature is analogous to the
605: recordings played in some areas when you dial directory
606: assistance, trying to be annoying and make you think twice.
607: Recordings on certain newsgroups are intended to remind the
608: user of the rules for the newsgroup, or, in the case of a
609: company worried about letting proprietary information out,
610: reminding authors that anything they say is seen outside the
611: company and so proprietary information should not be
612: included.
613:
614: The file contains one line per recording. The line
615: contains two fields, separated by a space. The first field
616: is the newsgroup class (e.g. ``net.all''), the second field
617: is the name of the file containing the recorded message. If
618: the file name does not begin with a slash, it will be
619: searched for in LIBDIR. Sample recording files can be found
620: in the misc directory.
621:
622: _3._1_1. _s_e_n_d_n_e_w_s
623:
624: A program to send news internally from one computer to
625: another. Useful if you use mail links to transmit articles.
626:
627: _3._1_2. _s_e_q
628:
629: The current sequence number for your system. Used to
630: generate unique article ID's.
631:
632: _3._1_3. _s_y_s
633:
634: A list of all your neighbors, which newsgroups they
635: get, and how to send news to them. The format is documented
636: below.
637:
638: _3._1_4. _u_s_e_r_s
639:
640: A list of users that read news on your system.
641:
642: _3._1_5. _u_u_r_e_c
643:
644: A program to receive news sent by sssseeeennnnddddnnnneeeewwwwssss.
645:
646: _4. _S_e_t_t_i_n_g _U_p _L_i_n_k_s
647:
648: There are two basic types of links for exchanging news:
649: those that use mail and those that don't. The ones that use
650: mail are more indirect, yet more versatile while the ones
651: that don't are simpler. The default is without mail so that
652: is discussed first.
653:
654:
655:
656:
657:
658: May 3, 1983
659:
660:
661:
662:
663:
664: - 11 -
665:
666:
667: _4._1. _N_o_n-_m_a_i_l _L_i_n_k_s
668:
669: The basic theory behind a non-mail link is that the
670: _r_n_e_w_s program is invoked on the remote system with the arti-
671: cle being transmitted as the standard input. This is possi-
672: ble on some networks, but the most common implementation is
673: via the UUUUUUUUCCCCPPPP network. Using the _u_u_x(_1_C) command, the com-
674: mand which is forked to the shell looks like:
675: uuuuuuuuxxxx ---- ----rrrr ----zzzz rrrreeeemmmmooootttteeeessssyyyyssss!!!!rrrrnnnneeeewwwwssss <<<< aaaarrrrttttiiiicccclllleeee
676: This is the default transmission method. In order to set up
677: such a link, obviously a UUUUUUUUCCCCPPPP link with the remote system
678: must be in effect. In addition, _r_n_e_w_s must be available and
679: executable by _u_u_x_q_t on the remote machine. In most cases,
680: this means that _r_n_e_w_s must be in /usr/bin so _u_u_x can find
681: it. Also, /usr/src/cmd/uucp/uuxqt.c should be checked to
682: make sure that rnews is an allowed command.
683:
684: Other networks that allow remote execution include the
685: Berknet, BLICN (usend), many Ethernets, and the NSC hyper-
686: channel (nusend). It is important, however, that a spooling
687: mechanism be available. Otherwise, if system A tries to
688: send an article to system B via a remote execution command,
689: and B is down, the article could be lost. Spooling arranges
690: that the system will try again when B comes back up.
691:
692: _4._2. _M_a_i_l _L_i_n_k_s
693:
694: When using mail to transmit articles, two intermediary
695: programs are necessary. These are _s_e_n_d_n_e_w_s(_8) and _u_u_r_e_c(_8).
696: The idea is that when system A wants to send an article to
697: system B, the sys file on system A has an entry for system B
698: such as:
699:
700: /usr/lib/news/sendnews -a rnews@B
701:
702: which runs _s_e_n_d_n_e_w_s on the article. The -a option specifies
703: that the mail should be formatted for the arpanet. Sendnews
704: packages the article and mails it to rnews@B. Somehow, the
705: B system is expected to make sure that all mail to user
706: ``rnews'' is fed as input to the program _u_u_r_e_c. This pro-
707: gram unpackages it and invokes rnews.
708:
709: The best way to get mail to rnews fed into _u_u_r_e_c is to
710: use sendmail or delivermail, if you are on a system running
711: them. Create an alias in /usr/lib/aliases as follows:
712:
713: rnews: "|/usr/lib/news/uurec"
714:
715: and sendmail will handle it. If you do not have a facility
716: for forwarding mail to a program, you can gimmick your
717: mailer to watch for it (using _p_o_p_e_n(3S), this is easy) or,
718: if you don't want to do any programming, you can have _c_r_o_n
719: invoke uurec every hour with /usr/spool/mail/rnews as stdin.
720: This solution is messier because uurec must potentially deal
721:
722:
723:
724: May 3, 1983
725:
726:
727:
728:
729:
730: - 12 -
731:
732:
733: with multiple messages, something that has never been
734: tested.
735:
736: _5. _F_o_r_m_a_t _o_f _t_h_e _s_y_s _f_i_l_e
737:
738: To set up a link to another site, edit the ssssyyyyssss file in
739: LIBDIR. This file is similar to the L.sys file of uucp.
740: Each line contains four fields, separated by colons:
741:
742: (1) The system name of a site to which you forward news.
743: Normally all systems you have links to will be
744: included. You should also have a line for your own
745: system.
746:
747: (2) The newsgroups to be forwarded to them. This is a pat-
748: tern in the sense of a subscription. Generally, you
749: will list classes of newsgroups, that is, using ``all''
750: for everything. A typical forwarding list for a new
751: site would be
752:
753: net.all,fa.all,to.sysname
754:
755: where ssssyyyyssssnnnnaaaammmmeeee is the name of the remote system. In
756: particular, you don't want to forward aaaallllllll since local
757: newsgroups (those without dots) should not be sent.
758: For the line describing your own system, this field
759: describes the newsgroups your site will accept from
760: remote sites. Thus, if another site insists on sending
761: you a newsgroup you don't want, say nnnneeeetttt....jjjjooookkkkeeeessss, include
762: !!!!nnnneeeetttt....jjjjooookkkkeeeessss here. (You will have to add -DRESTRICT to
763: CFLAGS in your Makefile or this won't have any effect.)
764: This measure is on top of AUTONEWNG, which will nor-
765: mally prevent unknown newsgroups from being forwarded
766: if disabled. RESTRICT allows certain newsgroups never
767: to be forwarded even if recreated.
768:
769: (3) This field contains flags describing the connection.
770: An A will indicate that the other site is running an A
771: version of netnews. A B indicates a B version. Leav-
772: ing it empty defaults to B. If you are reading this
773: document, you have a B version. Some existing sites
774: run A versions. If you aren't sure, ask your contact
775: at the other site, with whom you should be talking to
776: set this up anyway. The F flag indicates that the
777: fourth field is the name of a file. The full path name
778: of a file containing the article in SPOOL will be
779: appended to this file. The L flag prevents transmis-
780: sion unless the article was created on this site. (It
781: is recommended that you feed an L link to a backbone
782: site, to ensure that your submissions will be more
783: likely to get to the entire network, even in the event
784: of a local problem. Please make sure that a mail link
785: exists too, so you can get replies.) The N flag can
786: also be included here, indicating that mail should be
787:
788:
789:
790: May 3, 1983
791:
792:
793:
794:
795:
796: - 13 -
797:
798:
799: sent using the iiiihhhhaaaavvvveeee////sssseeeennnnddddmmmmeeee protocol described below.
800: The U field arranges that the parameter to the optional
801: %s in the command field to be filled in with a per-
802: manent file name from SPOOL instead of a temporary cus-
803: tomized file name.
804:
805: (4) This field is the command to be run to send news to the
806: remote site. The article will be on the standard
807: input. Leaving this field blank means an ordinary uucp
808: link is being used, that is, the command defaults to
809:
810: uux - -r -z sysname!rnews
811:
812: The - option tells uux to expect input on stdin. The
813: -z option is nonstandard - you should add it, see the
814: minus.z* files in the uucp directory. It shuts off the
815: annoying message you would otherwise get mailed to you
816: telling you that your article was broadcast OK. To
817: avoid using the -z option, change the source or put the
818: uux command in the fourth field. The -r option tells
819: uux not to start up a daemon right away. This turns
820: out to ease the load on the system, at the expense of
821: making news be transmitted a bit slower. The news will
822: be sent when the next daemon is started, usually this
823: means the next time mail is sent to or from your sys-
824: tem. If this turns out to be unreasonably long, put a
825: line in crontab to run
826:
827: /usr/lib/uucp/uucico -r1
828:
829: every hour or so.
830:
831: Here is a sample sys file for a site ``myvax'' with
832: connections to ``yourvax'' where myvax also passes news on
833: to ``downstream''. We assume that ``myvax'' and ``down-
834: stream'' exchange a local newsgroup class lng.all as well as
835: the network wide newsgroups. News to ``downstream'' is
836: batched.
837:
838: myvax:net.all,fa.all,lng.all::
839: yourvax:net.all,fa.all::
840: downstream:net.all,fa.all,lng.all:F:/usr/spool/batch/downstream
841:
842:
843: _6. _P_o_s_t_i_n_g _M_e_t_h_o_d_s
844:
845: There are three ways to post news. The basic method is
846: to use the iiiinnnneeeewwwwssss command:
847:
848: iiiinnnneeeewwwwssss ----tttt _t_i_t_l_e ----nnnn _n_e_w_s_g_r_o_u_p_s < _b_o_d_y_f_i_l_e
849:
850: This is the primitive used by other programs, and is not
851: very suitable for humans.
852:
853:
854:
855:
856: May 3, 1983
857:
858:
859:
860:
861:
862: - 14 -
863:
864:
865: A somewhat friendlier front end is ppppoooossssttttnnnneeeewwwwssss. This pro-
866: gram will prompt you for the title, newsgroups, and distri-
867: bution, then place you in the editor. (The system default
868: EDITOR is used unless the environment variable EDITOR is
869: set, overriding the system default.) The text should be
870: typed after the blank line. The title and newsgroups are
871: available for editing at the top of the buffer. Other
872: header lines can be added, such as an expiration date or
873: distribution. When you write out the file and exit from the
874: editor, the article will be posted.
875:
876: Another method is to use mail. This can only be done
877: on systems that allow mail to a given name to be fed into an
878: arbitrary program as input. This is easily done with the
879: Berkeley delivermail or sendmail program, and not with any
880: other mailer the author is familiar with. (It may be possi-
881: ble to painfully set this up with MMDF, provided the news-
882: group name is no more than 8 characters long.) To use mail,
883: set up an alias such as the following:
884:
885: net.general: "|/usr/lib/news/recnews net.general"
886:
887: Whenever a user sends mail to nnnneeeetttt....ggggeeeennnneeeerrrraaaallll, this starts up
888: the given shell command which calls recnews with one argu-
889: ment, the name of the newsgroup. You need to create one
890: alias for each newsgroup, and to keep the list up to date as
891: new newsgroups are created. RRRReeeeccccnnnneeeewwwwssss will in turn invoke
892: iiiinnnneeeewwwwssss.
893:
894: Note that there are problems with recnews. There is no
895: way to use it to post to multiple newsgroups without creat-
896: ing separate articles (something frowned upon because it
897: forces people to read the same thing more than once.) Also,
898: there is no way to make the recording feature (to safe guard
899: proprietary information) work when recnews is used.
900:
901: _7. _V_a_r_i_o_u_s _c_o_n_s_i_d_e_r_a_t_i_o_n_s
902:
903: _7._1. _S_u_i_d _b_i_t_s
904:
905: The current intended state of affairs is that _i_n_e_w_s
906: runs suid NEWSUSR. The _r_e_a_d_n_e_w_s program does not need to be
907: suid. This makes it possible to write your own interface to
908: read news instead of using readnews. (As distributed, _i_n_e_w_s
909: is also sgid. I know of no good reason for this.)
910:
911: _7._2. _M_o_d_e_s _o_f _S_p_o_o_l _D_i_r_e_c_t_o_r_i_e_s
912:
913: All the files should be writable by NEWSUSR. However,
914: due to a glitch, you will probably have to make the SPOOLDIR
915: and its subdirectories mode 777. It could be 755 except for
916: one problem. When a new newsgroup comes in, _i_n_e_w_s will
917: attempt to _m_k_d_i_r a new subdirectory of SPOOLDIR for the
918: newsgroup. Since both inews and mkdir are suid, mkdir will
919:
920:
921:
922: May 3, 1983
923:
924:
925:
926:
927:
928: - 15 -
929:
930:
931: use the real uid instead of NEWSUSER when checking for per-
932: missions, and if the directory isn't 777 the check will
933: fail. Here are several alternatives if you don't want a 777
934: directory around:
935:
936: _7._2._1. _F_i_x _R_e_a_l _U_i_d
937:
938: If inews is always run from cron or by root, the real
939: uid can be arranged to be root or NEWSUSR. This is a poor
940: solution since it makes the local creation of new newsgroup
941: require super user permissions, and is a potential security
942: hole. If this approach is taken, care must be taken to
943: insure that the owner of the created directory is NEWSUSR.
944:
945: _7._2._2. _C_h_a_n_g_e _t_h_e _K_e_r_n_e_l
946:
947: _i_n_e_w_s will do _s_e_t_u_i_d(_g_e_t_e_u_i_d()) before it forks the
948: mkdir. If your system permits this call, there will be no
949: problem. In particular, Berkeley 4.0BSD and later systems
950: allow this. An alternative change to the kernel is to
951: automatically stack uids: when an suid program is run, set
952: the new real uid to the old effective uid.
953:
954: _7._2._3. _G_r_o_u_p_s
955:
956: You could have inews be sgid NEWSGRP and all files
957: writable by the group. This approach has been tested and
958: the problem turns out to be that the mmmmkkkkddddiiiirrrr command uses the
959: aaaacccccccceeeessssssss system call to check permissions. Since aaaacccccccceeeessssssss uses
960: the real gid, you run into the same problem.
961:
962: _7._2._4. _A_n_o_t_h_e_r _m_k_d_i_r
963:
964: You could create a version of mkdir that does less
965: checking, and put it in a directory that can only be
966: accessed by NEWSUSR (mode 700, owned by NEWSUSR). Have
967: inews fork this mkdir.
968:
969: _7._3. _E_x_p_i_r_a_t_i_o_n _d_a_t_e_s
970:
971: To get articles to expire automatically, put a line in
972: crontab to run
973:
974: ////uuuussssrrrr////lllliiiibbbb////nnnneeeewwwwssss////eeeexxxxppppiiiirrrreeee
975:
976: every night. This command deletes all expired news. The -a
977: option causes all expired news to be archived under
978: /usr/spool/oldnews.
979:
980: Sometimes news is not expired when it should be. Be
981: sure to check that expire has permissions to unlink files,
982: that it runs as a user that has a .newsrc, and that it is
983: properly suid. You can manually invoke expire with the -v
984: (verbose) option to find out what it's doing. Adding levels
985:
986:
987:
988: May 3, 1983
989:
990:
991:
992:
993:
994: - 16 -
995:
996:
997: of verbosity (e.g. -v6) will get more and more output.
998:
999: _7._4. _V_e_r_s_i_o_n _t_o _V_e_r_s_i_o_n
1000:
1001: Version B will understand incoming news in either ver-
1002: sion A or B format, automatically. Version B will generate
1003: either format, depending on the flag in the 3rd field of the
1004: sys line. Version A will not understand version B format.
1005: Thus, it is possible for two version B sites to communicate
1006: using version A format. This will work but is not a good
1007: idea, since the translation from B to A loses information
1008: (such as the expiration date) which will not be there when
1009: translated back to version B.
1010:
1011: News from versions A and 2.9 B do not conform to the
1012: USENET interchange standard. 2.10 supports the standard and
1013: will communicate with either A or 2.9 B news. A news is
1014: written (losing other header information) if A is in the
1015: flags for the system. If OLD is defined, 2.10 will write
1016: out headers with both standard (Date, Message-ID) and 2.9
1017: (Posted, Article-I.D.) lines so that either B system will
1018: properly handle the article. Incoming news is recognized by
1019: the first letter (``A'' for A news), or the lack of an ``@''
1020: in the From line (2.9). Missing fields are constructed as
1021: well as possible from the available information.
1022:
1023: _7._5. _P_r_e_s_e_n_t_a_t_i_o_n _O_r_d_e_r
1024:
1025: The order of the newsgroups listed in LIBDIR/active is
1026: the order the newsgroups will be presented in. Initially
1027: this will be directory order, but you can edit important
1028: newsgroups like general to the top.
1029:
1030: A recommended order to maintain your active file in is
1031: this:
1032:
1033: general
1034: local.general
1035: net.general
1036: net.followup
1037: local newsgroups, in alphabetical order
1038: net.all newsgroups, in alphabetical order
1039: junk
1040: fa.all, in alphabetical order
1041: test
1042: all.test
1043: to.all
1044: control
1045:
1046:
1047: _8. _C_o_n_t_r_o_l _M_e_s_s_a_g_e_s
1048:
1049: Some news systems will send you articles that are not
1050: for human consumption. They are messages to your news
1051:
1052:
1053:
1054: May 3, 1983
1055:
1056:
1057:
1058:
1059:
1060: - 17 -
1061:
1062:
1063: system called _c_o_n_t_r_o_l _m_e_s_s_a_g_e_s. Such messages contain the
1064: Control: header. Older systems use newsgroups matching
1065: aaaallllllll....aaaallllllll....ccccttttllll, and this will still work, although the Control:
1066: header is preferred. Since the newsgroup name is used for
1067: distribution only, and is not checked to ensure it's in the
1068: active file, such newsgroup names can still be used. This
1069: makes it possible to post network wide control messages with
1070: nnnneeeetttt....mmmmssssgggg....ccccttttllll (or restricted broadcast such as bbbbttttllll....mmmmssssgggg....ccccttttllll) or
1071: messages for a particular system: ttttoooo....uuuuccccbbbbvvvvaaaaxxxx....ccccttttllll. Messages
1072: are cancelled, however, with a Control: line in a message to
1073: the same newsgroup(s) as the original message.
1074:
1075: A control message contains a command and zero or more
1076: arguments (much like a UNIX program). The subject of the
1077: article contains the command and arguments. The body of the
1078: article is usually ignored, although some messages can use
1079: it for additional text information. Control messages are
1080: not stored in SPOOL, rather they are acted on and discarded
1081: at once.
1082:
1083: _8._1. _i_h_a_v_e/_s_e_n_d_m_e
1084:
1085: Two control messages are iiiihhhhaaaavvvveeee and sssseeeennnnddddmmmmeeee. These mes-
1086: sages allow two participating sites to set up a link so that
1087: one site will tell the other site it has a given article and
1088: wait for a request before it actually sends it. The normal
1089: case is to send an entire article to a system, which con-
1090: sults the history file to see if the article has already
1091: been seen, and then throws it away if it's been seen before.
1092:
1093: Note that, since most messages are short anyway,
1094: experience has indicated that for ordinary UUCP unbatched
1095: communication, all ihave/sendme does is triple the load and
1096: slow down forwarding. Hopefully future code will allow
1097: ihave's with multiple message ID's in the body, and existing
1098: code in 2.10 understands such messages, but does not gen-
1099: erate them. So we advise that you don't use ihave/sendme
1100: for now.
1101:
1102: Use of these control messages can cut down on this
1103: wasted transmission, but if you have a polled UUCP connec-
1104: tion, they can slow down receipt of news due to polling
1105: delays. It is up to each connected pair of sites whether
1106: they want to use this protocol. The choice is controlled by
1107: the N flag in the sys file. In the case of a leaf node (one
1108: with only one neighbor) there is no advantage to this proto-
1109: col. Even if both sites are able to initiate a connection
1110: (have dialers or the link is hardwired) the -r option on the
1111: uux can cause 2 hour or more delays in propagating news.
1112: Since this protocol can triple the number of messages gen-
1113: erated, you should carefully evaluate your situation when
1114: deciding whether to use it. If transmission time and phone
1115: bills dominate your costs, and you are sending news to
1116: several sites, and large article bodies dominate the costs
1117:
1118:
1119:
1120: May 3, 1983
1121:
1122:
1123:
1124:
1125:
1126: - 18 -
1127:
1128:
1129: (rather than the headers and the time spent by UUCP nego-
1130: tiating transmission) it is probably worthwhile to use
1131: ihave/sendme. If your costs are dominated by CPU load from
1132: UUCP, or if you send news to a site that cannot get it from
1133: anywhere else, you probably do not want to use this proto-
1134: col. The decision can be made independently for each site
1135: in your sys file.
1136:
1137: This pair works as follows: Site mmmmyyyyssssiiiitttteeee receives arti-
1138: cle <<<<111122223333@@@@aaaabbbbcccc....UUUUUUUUCCCCPPPP>>>>. It enters it locally and then broad-
1139: casts it to its neighbors. One of its neighbors is site
1140: yyyyoooouuuurrrrssssiiiitttteeee which has the N flag in the ssssyyyyssss file. So mysite
1141: sends an article on newsgroup to.yoursite.ctl with title
1142: ``ihave <[email protected]> mysite''. This control message has
1143: two arguments - the first (<[email protected]>) is the article ID
1144: of the article in question, the second (mysite) is the name
1145: of the site sending the article. The name of the newsgroup
1146: and the sys file control transmission of the article, nor-
1147: mally the sys file will read something like
1148:
1149: yoursite:net.all,fa.all,to.yoursite:BN:
1150:
1151: which will cause an article on to.yoursite.ctl to be
1152: transmitted.
1153:
1154: Yoursite receives the message and looks to see if it
1155: has seen it before. If it has, it throws the message away
1156: and stops. If it hasn't, it sends a message on
1157: to.mysite.ctl with title ``sendme <[email protected]> yoursite''
1158: which is transmitted to mysite. (The two arguments to
1159: sendme are the article ID requested and the site to send it
1160: to.) Then mysite gets this message and actually transmits
1161: the article to yoursite.
1162:
1163: _8._2. _n_e_w_g_r_o_u_p
1164:
1165: This message has one argument, the name of a newsgroup
1166: to be created. This allows special action to be taken
1167: locally when a new newsgroup is created. It is generated by
1168: the -C option to inews. By default, the newsgroup is added
1169: to the active file and a directory is created, and mail is
1170: sent to the local contact advising that this has happened.
1171: See the routine ``c_newgroup'' in control.c if you want
1172: something different to happen. (Note that, although the
1173: body of the message contains a brief description of the pur-
1174: pose of the group, this body is usually thrown away by
1175: existing software.)
1176:
1177: _8._3. _r_m_g_r_o_u_p
1178:
1179: This message has one argument, the name of a newsgroup
1180: to be removed. It is used for network-wide cancellation of
1181: a newsgroup. If MANUALLY is not defined, it will remove the
1182: articles, directory, and active file line for the group.
1183:
1184:
1185:
1186: May 3, 1983
1187:
1188:
1189:
1190:
1191:
1192: - 19 -
1193:
1194:
1195: There is a shell script rrrrmmmmggggrrrrpppp that does essentially the same
1196: thing as this message, but the shell script only removes the
1197: group locally. We recommend that you leave MANUALLY
1198: defined, and when you receive mail advising you of the dem-
1199: ise of the newsgroup, you run rmgrp by hand. This will
1200: prevent accidental or malicious removal of a good newsgroup.
1201:
1202: _8._4. _c_a_n_c_e_l
1203:
1204: This message cancels a given article. It takes one
1205: argument, the message ID of the article to cancel. It
1206: should be broadcast to the same newsgroup as the original
1207: article.
1208:
1209: _8._5. _s_e_n_d_s_y_s
1210:
1211: The sys file is mailed to the originator of the mes-
1212: sage. There are no arguments. This is used for making
1213: maps. Since your sys file is public information, you should
1214: not remove or change this control message.
1215:
1216: _8._6. _s_e_n_d_u_u_n_a_m_e
1217:
1218: The uuuuuuuunnnnaaaammmmeeee(1) program is run and the output is mailed
1219: to the originator of the message. There are no arguments.
1220: This is used for making uucp maps. If you do not run UUCP
1221: or have sites in your L.sys which are a secret, you may wish
1222: to edit this. Note that only the output of uuname is
1223: mailed, not the contents of L.sys (which news does not have
1224: access to anyway). If you do make a change, you should
1225: arrange that some mail still is sent out to the originator
1226: of the message, so he will know your site received it. See
1227: the code in routine c_senduuname in control.c.
1228:
1229: _8._7. _v_e_r_s_i_o_n
1230:
1231: The local version name/number of the netnews software
1232: is mailed back to the author of the control message.
1233:
1234: _8._8. _O_t_h_e_r _M_e_s_s_a_g_e_s
1235:
1236: Any unrecognized message will cause an error message to
1237: be mailed to the originator. Additional messages may be
1238: defined as time goes on, such as messages to automatically
1239: update directories or maps. You should be willing to go
1240: into the code (control.c) and add messages as they become
1241: standardized.
1242:
1243: _9. _M_a_i_n_t_e_n_a_n_c_e
1244:
1245: There are some things you should do periodically to
1246: keep your news system running smoothly. We hope to eventu-
1247: ally automate all or most of this, but right now some of it
1248: must be done by hand.
1249:
1250:
1251:
1252: May 3, 1983
1253:
1254:
1255:
1256:
1257:
1258: - 20 -
1259:
1260:
1261: The hhhhiiiissssttttoooorrrryyyy and lllloooogggg files in your LIB directory will
1262: grow. You should make sure that they are cleaned up period-
1263: ically. The LIB/expire program will remove lines from his-
1264: tory corresponding to deleted articles, but it is a good
1265: idea to check the file every few months to make sure it is
1266: not going wild. Be sure not to completely lose your history
1267: file when you clean it up, in case another neighbor tries to
1268: send you an article you recently got. (If you only get news
1269: from one site it is safe to clean it out completely.)
1270:
1271: The log file is not automatically cleaned out by any
1272: netnews software, and will grow quickly. The misc/trimlib
1273: script can be installed in LIB/trimlib, and invoked weekly
1274: from /usr/lib/crontab.
1275:
1276: You should also clean out old newsgroups that are no
1277: longer active. To remove a newsgroup net.foo, you should do
1278: the following: First, remove the subdirectory SPOOL/net/foo.
1279: Second, remove the line net.foo from your active file. (It
1280: is no longer necessary to remove the net.foo lines from
1281: people's .newsrc files, because readnews will clean them out
1282: and reorder their files.) Here is a shell script to remove
1283: newsgroups:
1284:
1285: : rmgrp newsgroup ...
1286: cd /usr/spool/news
1287: for i in $*
1288: do
1289: echo removing $i
1290: rm -rf `echo $i | sed 's:\.:/:'`
1291: cp /usr/lib/news/active /tmp/rmg$$
1292: sed /^$i /d < /tmp/rmg$$ > /usr/lib/news/active
1293: done
1294: rm /tmp/rmg$$
1295:
1296:
1297: Note that clearing up UUCP constipation is another
1298: thing you'll have to do if you have flaky hardware or phone
1299: lines. If you have more than one connection, chances are
1300: that UUCP will get clogged up when one of your neighbors
1301: goes down for more than a few hours. Various spooling
1302: schemes are being worked on to help make the news/uucp sys-
1303: tem more robust, but one thing you can and should do, if you
1304: find your /usr/spool/uucp directory getting too big, is to
1305: install a subdirectory fix to UUCP. A quick and dirty ver-
1306: sion of this is available from Duke, which traps the open,
1307: creat, link, etc. system calls at the assembly language
1308: level and maps, for example, D.fooA1234 into
1309: D.foo/D.fooA1234. Since the C. and D.local directories
1310: still get big, in practice this can still create some big
1311: directories, but the directories tend to be a factor of 5
1312: smaller, resulting in a factor of 25 improvement to speed
1313: (since a directory traversal for all files is quadratic on
1314: UNIX). Right now, UUCP is the weak link in netnews
1315:
1316:
1317:
1318: May 3, 1983
1319:
1320:
1321:
1322:
1323:
1324: - 21 -
1325:
1326:
1327: distribution, and you should certainly keep an eye on it.
1328:
1329: _1_0. _C_r_e_a_t_i_n_g _N_e_w _N_e_w_s_g_r_o_u_p_s
1330:
1331: As system news administrator, you are able to create
1332: newsgroups. To create a newsgroup, first make sure this is
1333: the right thing to do. (Normally a suggestion is first
1334: posted to net.general,net.news.group for a net newsgroup,
1335: followups are made to net.news.group, it is established if
1336: there is general interest in such a group, and a name is
1337: agreed on.) Then someone creates it by typing the command
1338:
1339: iiiinnnneeeewwwwssss ----CCCC _n_e_w_s_g_r_o_u_p
1340:
1341: This will create the directory and active entry locally. It
1342: will also prompt you for a paragraph describing the group
1343: and start up an inews to post a newgroup control message
1344: announcing the group. This control message will be sent out
1345: on net.msg.ctl and other sites may have configured their
1346: systems to do something with these messages. A human read-
1347: able announcement is not made - you can post this to
1348: net.news.group if necessary.
1349:
1350: Someone should post a first article to the new news-
1351: group immediately. If this is not done, the empty directory
1352: for the newsgroup will cause cccchhhheeeecccckkkknnnneeeewwwwssss to believe there is
1353: unread news, because each user has no .newsrc line for that
1354: newsgroup. This command creates the group network-wide. It
1355: is then possible to submit an article to the group.
1356:
1357: You must be the super user to use the -C option to
1358: inews. (That is, your uid must match ROOTID. It is recom-
1359: mended that you change ROOTID to your own uid so you don't
1360: have to su to create newsgroups.)
1361:
1362: A new site should get the active file from their neigh-
1363: bor and use the mmmmaaaakkkkeeeeaaaaccccttttiiiivvvveeee....sssshhhh shell script to create the
1364: local directory hierarchy and active file. (The local
1365: active file will have 00000 for each newsgroup, since local
1366: numbers will start at 1 for the first article received in
1367: each newsgroup.)
1368:
1369: _1_1. _C_o_n_v_e_r_s_i_o_n _f_r_o_m _A _t_o _B
1370:
1371: If you are currently running version A on your system,
1372: note that B is incompatible with A. The files are stored in
1373: a different format (headers have mail like field names now).
1374: The directory organization is different (each newsgroup has
1375: a subdirectory of its own, and the file names are numbers
1376: rather than site.id pairs). There are no bitmap, uindex, or
1377: nindex files to be trashed (which articles have been read is
1378: stored in each users .newsrc file). The user interface is
1379: slightly different (news/netnews is now called readnews,
1380: news is posted using inews, subscription is done by editing
1381:
1382:
1383:
1384: May 3, 1983
1385:
1386:
1387:
1388:
1389:
1390: - 22 -
1391:
1392:
1393: .newsrc, the sense of the -c option is reversed, news is
1394: presented in newsgroup order, the -a and -t options now
1395: probably need -x as well, and there are many minor changes).
1396:
1397: We decided not to provide a program to convert from
1398: version A to version B. Rather, the following strategy was
1399: adopted for conversion:
1400:
1401: (1) Install the new news in a different spool directory
1402: from the old one. For example, you can use
1403: /usr/spool/newnews. You can change to the standard
1404: name later if you want. Get it to work for local mes-
1405: sages.
1406:
1407: (2) Post an article to newsgroup ggggeeeennnneeeerrrraaaallll with the old news
1408: announcing the change. Make available documentation
1409: such as the accompanying paper ``How to Read the Net-
1410: work News'' to the users. This article will be the
1411: last one in the old news.
1412:
1413: (3) Chmod the old news directory to 555 to prevent any more
1414: news from being posted. (Actually, this will prevent
1415: the bitfile from being updated, so it may not be a good
1416: idea.)
1417:
1418: (4) Replace the old rnews program with the new rnews pro-
1419: gram.
1420:
1421: (5) Test it by having your neighbor send you a message.
1422:
1423: (6) Wait a reasonable period for everyone to have read the
1424: final article with the old news. Perhaps a few weeks
1425: is right.
1426:
1427: (7) Uninstall the old news.
1428:
1429: Users will have to invoke _r_e_a_d_n_e_w_s instead of _n_e_t_n_e_w_s
1430: to read news. Depending on your old method of posting, this
1431: could be changed too. (If you were using mail, it does not
1432: need to be changed.) They will also have to fix their sub-
1433: scriptions. In general, they can type
1434:
1435: netnews -s
1436:
1437: to see what they subscribe to on the old system, and then
1438: create a file in their home directory called .newsrc con-
1439: taining
1440:
1441: options -s _t_h_e_i_r _s_u_b_s_c_r_i_p_t_i_o_n
1442:
1443: The format of the subscription pattern matching is the same
1444: as in A except that ALL is replaced by all (change to lower
1445: case). Something along the lines of this could be used to
1446: automate this:
1447:
1448:
1449:
1450: May 3, 1983
1451:
1452:
1453:
1454:
1455:
1456: - 23 -
1457:
1458:
1459: (echo -n "options -s" ; netnews -s | sed s/ALL/all/) > .newsrc
1460:
1461:
1462: _1_2. _C_o_n_v_e_r_s_i_o_n _f_r_o_m _2._9 _t_o _2._1_0
1463:
1464: Conversion from 2.9 to 2.10 is not nearly as involved
1465: as an A to B conversion. The user interface does not change
1466: much, and the user .newsrc files are not affected. However,
1467: it is recommended that you do the conversion during a time
1468: when no news is received, so that incoming news will not get
1469: lost. One way to ensure this is to make /bin/rnews be a
1470: shell script which saves the article in /usr/spool/innews/$$
1471: ($$ is the process id of the particular shell and will be
1472: unique for each article).
1473:
1474: The first step to conversion is to customize the
1475: sources. In the past, you had to take a fresh distribution
1476: and edit the defs.h file and Makefile to suit local prefer-
1477: ences. If you had many local changes, or didn't record the
1478: local changes, upgrading could be annoying. 2.10 provides a
1479: mechanism to automate these changes. Create a shell script
1480: in the src directory called localize.sh. (You can use
1481: localize.sample as a template.) This shell script should
1482: copy either postnews.v7 or postnews.usg to postnews, copy
1483: defs.dist to defs.h, and copy either Makefile.v7 or
1484: Makefile.usg to Makefile. It should chmod any files that
1485: need to be changed (often Makefile and defs.h) to a writable
1486: mode. Then it should invoke eeeedddd on the files, making any
1487: necessary local changes.
1488:
1489: The next step is to compile the software, with
1490: ``make''. It may be necessary to update the localize.sh
1491: file until you are satisfied with the compilation. Note
1492: that after any change to the Makefile in localize.sh, you
1493: should run localize.sh by hand. Otherwise, although make
1494: will run it for you, it will then continue to do the make
1495: with the old Makefile.
1496:
1497: When the software is compiled, you should run the
1498: cvt.dots.sh shell script, with the lib and spool directories
1499: as parameters. This will create the new hierarchical spool
1500: directory, and a new active file in LIB/nactive. Old news
1501: will be linked into the new hierarchy while leaving links in
1502: the old hierarchy.
1503:
1504: Now you can test ./inews, ./checknews, and ./readnews,
1505: to make sure everything works. The newsgroup ``test'' is
1506: good for this.
1507:
1508: The next step is to back up the old binaries (mv
1509: /usr/bin/inews /usr/bin/oinews, etc.) and to install 2.10
1510: with ``make cp''. Move LIB/active to LIB/oactive and
1511: LIB/nactive to LIB/active. Once it is installed, any incom-
1512: ing news will be placed into the new hierarchy but not the
1513:
1514:
1515:
1516: May 3, 1983
1517:
1518:
1519:
1520:
1521:
1522: - 24 -
1523:
1524:
1525: old one. The critical time window is between running
1526: cvt.dots.sh and installing the new software - any incoming
1527: news between these two points will appear in only the old
1528: hierarchy and be lost to the new software. If any signifi-
1529: cant time elapses here, you should divert rnews into a
1530: separate spool directory as described above.
1531:
1532: Finally, test things by posting articles to to.neighbor
1533: newsgroups and watching some incoming news, and announce the
1534: change to your users.
1535:
1536:
1537:
1538:
1539:
1540:
1541:
1542:
1543:
1544:
1545:
1546:
1547:
1548:
1549:
1550:
1551:
1552:
1553:
1554:
1555:
1556:
1557:
1558:
1559:
1560:
1561:
1562:
1563:
1564:
1565:
1566:
1567:
1568:
1569:
1570:
1571:
1572:
1573:
1574:
1575:
1576:
1577:
1578:
1579:
1580:
1581:
1582: May 3, 1983
1583:
1584:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.