|
|
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.