rick@seismo.UUCP (Rick Adams) (09/08/84)
if test ! -d doc then echo mkdir doc mkdir doc fi echo x - doc/install sed 's/^X//' >doc/install <<'*-*-END-of-install-*-*' X X X X X X X X X X USENET Version B Installation X X X Matt Glickman X X Computer Science Division X Department of Electrical Engineering and Computer Sciences X University of California X Berkeley, California 94720 X X X Revised by Mark Horton for version 2.10 X Revised by Rick Adams for version 2.10.2 X X X X X X X_1. _I_n_t_r_o_d_u_c_t_i_o_n X X This document is intended to help a USENET site install Xand maintain the network news software. Please ask ques- Xtions of Rick Adams, such questions will help to point out Xareas that need to be addressed here. X X The overall order of things to do is: X X(a) Find somebody to link up with. You need a network con- X nection of some kind, for example ARPANET or UUCP. You X cannot get a link to Berkeley, sorry. If you must use X UUCP and have no connections, you must have at least a X dialup and preferably a dialer, and find someone wil- X ling to call your machine. The USENET directory may be X helpful in finding some other site geographically near X yours to hook up to. X X(b) Create a localize.sh script to make local changes to X the makefile and defs.h files. X X(c) Compile the software using the _m_a_k_e command. X X(d) Su and type ``make install''. This will copy the files X out to the right place and make directories containing X most of the important files. It will configure you in X with a connection to oopsvax via uucp links. This is X undoubtably wrong, so you will have to configure links X as needed. X X(e) After editing the configuration table, get your contact X at the other end of the link to add you to their sys. X X X X September 7, 1984 X X X X X X - 2 - X X X(f) Post a message to the to._s_y_s_n_a_m_e newsgroup which should X be set up to go only to the site you are linked to, as X a test. Have the other person send a message to your X system using the same mechanism. If this doesn't work, X find the problem and fix it. (Please don't use X net.test unless there is no alternative. It is almost X always possible to use test, or to._s_y_s_n_a_m_e, or some X local.test group, instead of net.test. X X(g) Fill out a USENET directory form and post a copy to the X USENET newsgroup ``net.news.newsite.'' X X(h) Post the ``etiquette'' and ``howto'' files (in the doc X directory) to your ``general'' newsgroup with a long X expiration date. Running ``rnews'' separately on each X of these files will do. X X(i) It will probably be necessary to fix your uucp command X to allow rnews and cunbatch, and to support the -z and X -n options. X X_2. _I_n_s_t_a_l_l_a_t_i_o_n X X_2._1. _C_o_n_f_i_g_u_r_a_t_i_o_n X X Local configuration of the _U_S_E_N_E_T version B software Xrequires you to edit a few files. Most importantly, the X_d_e_f_s._h and _M_a_k_e_f_i_l_e files must be created from their tem- Xplates _d_e_f_s._d_i_s_t and _M_a_k_e_f_i_l_e._v_7or You should create a shell Xscript called localize.sh which copies the files and makes Xlocal changes to the copies. Even for a completely vanilla Xsite, some changes will be necessary. For example, your Xscript should choose between Makefile.v7 and Makefile.usg. XYou should include the name of the local organization X(MYORG) and the uid of the local news super user (ROOTID). XYou should also choose how your hostname will be determined. XIf you are a USG site, define UNAME in defs.h. If you are Xrunning 4.2 BSD, define GHNAME in defs.h. Otherwise, news Xwill look in the file /_u_s_r/_i_n_c_l_u_d_e/_w_h_o_a_m_i._h for a line of Xthe form X X #define sysname your-sysname X X X If you are running System 3 or System 5, you are a USG Xsite. Otherwise, unless you are in AT&T, you are probably a XV7 site. The previously mentioned defines are the only Xmodifications that are _n_e_c_e_s_s_a_r_y to install news at your Xsite. However, you will probably want to change some of the Xones listed below. X X A sample localize shell script can be found in Xlocalize.sample. The most important parameters are: X X X X X September 7, 1984 X X X X X X - 3 - X X X_2._1._1. _R_O_O_T_I_D X X The numerical userid of the person who is the news Xsuper user. This should not be set to 0. Normally it is Xset to the uid of the news contact person for the site. X X_2._1._2. _N__U_M_A_S_K X X Mask for _u_m_a_s_k(_2) system call. Set to something like X022 for a secure system. Unsecure systems might want 002 or X000. This mask controls the mode of news files created by Xthe software. Insecure modes would allow people to edit the Xfiles directly. X X_2._1._3. _D_F_L_T_E_X_P X X The default no. of seconds after which an article will Xexpire. 2 weeks (1,209,600 seconds) is the default choice. XArticles which were posted more than DFLTEXP ago are con- Xsidered too old and are moved into the junk directory. This Xis because they are too old to be in the history file, so it Xis impossible to tell if they really should be accepted or Xare endlessly looping around the network (This was theoreti- Xcally possible before this feature was added.). If you wish Xto expire articles faster than two weeks, it is recommended Xthat you use the -e flag to expire instead of decreasing XDFLTEXP. X X_2._1._4. _D_F_L_T_S_U_B X X The default subscription list. If a user does not Xspecify any list of newsgroups, this will be used. Popular Xchoices are _a_l_l and _g_e_n_e_r_a_l,_a_l_l._g_e_n_e_r_a_l. X X_2._1._5. _T_M_A_I_L X X This is the version of the Berkeley _M_a_i_l program that Xhas the -T option. If left undefined, the -_M option to X_r_e_a_d_n_e_w_s will be disabled. X X_2._1._6. _A_D_M_S_U_B X X This newsgroup (or newsgroup list) will always be Xselected unless the user specifies a newsgroup list that Xdoesn't include ADMSUB on the command line. That is, as Xlong as the user doesn't use the -_n flag to readnews on the Xcommand line, ADMSUB will always be selected. This is usu- Xally set to _g_e_n_e_r_a_l. (The intent of this parameter is to Xhave certain newsgroups which users are required to sub- Xscribe to. A typical site might require _g_e_n_e_r_a_l.) X X_2._1._7. _P_A_G_E X X The default program for which articles will be piped to X X X X September 7, 1984 X X X X X X - 4 - X X Xfor paging. This can be disabled or changed by the environ- Xment variable PAGER. If you have it, the Berkeley _m_o_r_e com- Xmand should be used, since the + option allows the headers Xto be skipped. X X_2._1._8. _N_O_T_I_F_Y X X If defined, this character string will be used as a Xuser name to send mail to in the event of certain control Xmessages of interest. (Currently these are newgroup, Xrmgroup, sendsys, checkgroups and senduuname.) As distri- Xbuted, mail will be sent to user _u_s_e_n_e_t. It is recommended Xyou create such a mailbox (have it forwarded to yourself) if Xpossible, since this makes it easier for another site to Xcontact the site administrator for your site. If you are Xunable to do this (e.g. you are not the super user) you Xshould change this name to yourself. Also, messages about Xmissing or extra newsgroups are mailed to this user by the X``checkgroups'' control message. X X_2._1._9. _D_F_T_X_M_I_T X X This is the default command to use to transmit news if Xno explicit command is given in the 4th field of the sys Xfile. It normally includes uux with the -z option. You Xshould install this mod to uucp at once, otherwise your Xusers will start being bombarded with annoying uux comple- Xtion messages. However, you can turn this off to get news Xinstalled. X X_2._1._1_0. _U_X_M_I_T X X This is the default command used if the U flag is Xpresent in the flags portion of a sys file line. In this Xcase, the 2nd %s refers to the name of a file in the news Xspool area, not a temporary file. It can usually only be Xused when local modifications are made to the uucp system, Xsuch as the -c option to uux. X X_2._1._1_1. _D_F_T_E_D_I_T_O_R X X This is the full path name of the default editor to use Xduring followups and replies. It should be set to the most Xpopular text editor on your system. As distributed, _v_i is Xused. X X_2._1._1_2. _U_U_P_R_O_G X X If this is defined, it will be used as a command to run Xwhen the _s_e_n_d_u_u_n_a_m_e control message is sent around. Other- Xwise the command _u_u_n_a_m_e will be run. Normally, this program Xshould be placed in LIBDIR. X X X X X X September 7, 1984 X X X X X X - 5 - X X X_2._1._1_3. _M_A_N_U_A_L_L_Y X X If this is defined, incoming _r_m_g_r_o_u_p messages will not Xremove the subdirectories, but rather just remove the group Xline from your active file. You should have NOTIFY on if Xyou use this. Note that on a USG system the subdirectory Xwill not be removed anyway unless you have an unsecure (mode X777 directory) system. This is turned off by default to Xprotect you against accidental or malicious removal of an Ximportant newsgroup. X X_2._1._1_4. _B_A_T_C_H X X If set, this is the name of a program that will be used Xto unpack batched articles (those beginning with the charac- Xter `#'). Batched articles normally are files reading X X #! rnews 1234 X article containing 1234 characters X #! rnews 4321 X article containing 4321 characters X etc. X XBatching is _s_t_r_o_n_g_l_y recommended. X X_2._1._1_5. _L_O_C_A_L_N_A_M_E X X Most systems have a full name database on line some- Xwhere, showing for each user what their full name is. Most Xoften this is in the GCOS field of /etc/passwd. If your Xsystem has such a database, LOCALNAME should be left unde- Xfined. If not, define LOCALNAME, and articles posted will Xonly receive full names from local user information speci- Xfied in NAME or ~/.name by the user. If you have a nonstan- Xdard GCOS format (not finger or RJE) it will be necessary to Xmake local changes to fullname.c as appropriate on your sys- Xtem. X X_2._1._1_6. _I_N_T_E_R_N_E_T X X If your system has a mailer that understands ARPA XInternet syntax addresses (user@site.domain) turn this on, Xand replies will use the From or Reply-To headers. Other- Xwise, leave it disabled and replies will use the Path Xheader. X X_2._1._1_7. _M_Y_D_O_M_A_I_N X X When generating internet addresses, this domain will be Xappended to the local site name to form mailing address Xdomains. For example, on system ucbvax with user root, if XMYDOMAIN is set to ``.UUCP'', addresses generated will read X``root@ucbvax.UUCP''. If MYDOMAIN is ``.Berkeley.ARPA'', Xthe address would be ``root@ucbvax.Berkeley.ARPA''. If your X X X X September 7, 1984 X X X X X X - 6 - X X Xsite is in more than one domain, use your primary domain. XThe domain always begins with a period, unless the local Xsite name contains the domain; in this case MYDOMAIN should Xbe the null string. X X_2._1._1_8. _C_H_E_A_P X X Do not chown spool files to news. Used for obscure Xaccounting reasons on some systems. X X_2._1._1_9. _O_L_D X X Define this if any of your USENET neighbors run 2.9 or Xearlier versions of B news. It will cause all headers writ- Xten to contain two extra lines: Article-I.D. and Posted, for Xupward compatibility. Once all your neighbors have con- Xverted, you can save disk space and transmission costs by Xturning this off. It is strongly encouraged that they con- Xvert. 2.10 is _M_U_C_H faster than 2.9. The performance differ- Xence is dramatic. X X_2._1._2_0. _U_N_A_M_E X X Define this if the uname system call is available Xlocally, even though you are not a USG system. USG systems Xalways have uname available and ignore this setting. X X_2._1._2_1. _G_H_N_A_M_E X X Define this if the 4.2BSD gethostname system call is Xavailable. If neither UNAME or GHNAME is defined, inews Xwill determine the name of the local system by reading X/usr/include/whoami.h. X X_2._1._2_2. _V_7_M_A_I_L X X Define this if your system uses V7 mail conventions. XThe V7 mail convention is that a mailbox contains several Xmessages concatenated, each message beginning with a line Xreading ``From user date'' and ending in a blank line. If Xthis is defined, articles saved will have these lines added Xso that mail can be used to look at saved news. X X_2._1._2_3. _S_O_R_T_A_C_T_I_V_E X X Define this if you want the news groups presented in Xthe order of each persons .newsrc instead of the active Xfile. X X_2._1._2_4. _Z_A_P_N_O_T_E_S X X Define this if you want old style notesfile ids in the Xbody of the article to be converted into NF-ID: fields in Xthe header. X X X X September 7, 1984 X X X X X X - 7 - X X X_2._1._2_5. _B_S_D_4__2 X X Define this if you are running 4.2 bsd Unix. X X_2._1._2_6. _B_S_D_4__1_C X X Define this if you are running 4.1C bsd Unix. X X_2._1._2_7. _S_E_N_D_M_A_I_L X X This is the program to use instead of recmail for send- Xing mail. At this time, it has only been used with send- Xmail. However, it could be used with other mailers. X X_2._1._2_8. _M_Y_O_R_G X X This should be set to the name of your organization. XPlease keep the name short, because it will be printed, Xalong with the electronic address and full name of the Xauthor of each message. 40 characters is probably a good Xupper bound on the length. If the city and state or country Xof your organization are not obvious, please try to include Xthem. If the organization name begins with a `/', it will Xbe taken as the name of a file. The first line in that file Xwill be used as the organization. This permits the same Xbinary to be used on many different machines. A good file Xname would be `/usr/lib/news/organization'. For example, an Xorganization might read ``AT&T Bell Labs, Murray Hill'', or X``U.C. Berkeley'' or ``MIT'' or ``Computer Corp. America, XCambridge, Mass''. X X There are other parameters that may be modified in X_d_e_f_s._h, and they are described in the file. X X_2._2. _M_a_k_e_f_i_l_e X X There are also a few parameters in the _M_a_k_e_f_i_l_e as Xwell. These are: X X_2._2._1. _N_E_W_S_U_S_R X X This is the owner (user name) of _i_n_e_w_s. If you are a Xsuperuser, you should probably create a new user id (tradi- Xtionally _n_e_w_s) and use this id. If you are not a superuser, Xyou can use your own user id. If you are able to, you Xshould create a mail alias _u_s_e_n_e_t and have mail to this Xalias forwarded to you. This will make it easier for other Xsites to find the right person in the presence of changing Xjobs and out of date or nonexistent directory pages. XNEWSUSR and ROOTID do not need to represent the same user. X X_2._2._2. _N_E_W_S_G_R_P X X This is the group (name) to which _i_n_e_w_s belongs. The X X X X September 7, 1984 X X X X X X - 8 - X X Xsame considerations as NEWSUSR apply. X X_2._2._3. _S_P_O_O_L_D_I_R X X This directory contains subdirectories in which news Xarticles will be stored. It is normally /usr/spool/news. X X Briefly, for each newsgroup (say _n_e_t._g_e_n_e_r_a_l) there Xwill be a subdirectory /usr/spool/news/net/general contain- Xing articles, whose file names are sequential numbers, e.g. X/usr/spool/news/net/general/1, etc. X X Each article file is in a mail-compatible format. It Xbegins with a number of header lines, followed by a blank Xline, followed by the body of the article. The format has Xdeliberately been chosen to be compatible with the ARPANET Xstandard for mail documented in RFC 822. X X You should place news in an area of the disk with Xenough free space to hold news you intend to keep on line. XThe total volume of news in net.all currently runs about 14M Xbytes/month. If you expire news after the default 2 weeks, Xyou will need about 7M bytes of disk space (plus some extra Xas a safety margin and to allow for increased traffic in the Xfuture.) If you only receive some of the newsgroups, or Xexpire news after a different interval, these figures can be Xadjusted accordingly. Other newsgroup classes do not add Xmuch to the volume; fa.all accounts for only about X80KB/week, and btl.all+bell.all are only about 450KB/week. X X_2._2._4. _B_A_T_C_H_D_I_R X X This directory will contain the list of articles to Xsend to each system. It is normally /usr/spool/batch. X X_2._2._5. _L_I_B_D_I_R X X This directory will contain various system files. It Xis normally /usr/lib/news. X X_2._2._6. _B_I_N_D_I_R X X This is the directory in which _r_e_a_d_n_e_w_s, _p_o_s_t_n_e_w_s, X_v_n_e_w_s, and _c_h_e_c_k_n_e_w_s are to be installed. This is normally X/usr/bin. If you decide to set BINDIR to a local binary Xdirectory, you should consider that the _r_n_e_w_s and _c_u_n_b_a_t_c_h Xcommands must be in a directory that can be found by _u_u_x_q_t, Xwhich normally only searches /bin and /usr/bin (unless you Xmodify uuxqt). X X_3. _F_I_L_E_S X X This section lists the files in LIBDIR and comments Xbriefly what they do. X X X X September 7, 1984 X X X X X X - 9 - X X X_3._1. _a_c_t_i_v_e X X A list of active newsgroups. Automatically updated as Xnew newsgroups come in. The order here is the order news is Xinitially presented by _r_e_a_d_n_e_w_s, so you can edit this file Xto put important newsgroups first. If you have _S_O_R_T_A_C_T_I_V_E Xdefined, after the first time the user invokes readnews, it Xwill be presented in the order of his .newsrc. Each line of Xthe active file contains four fields, separated by a space: Xthe newsgroup name, the highest local article number (for Xthe most recently received article), the lowest local arti- Xcle number that has not yet expired, and a single character Xused to determine if the user can post to that newsgroup. XIf the character is _y the user is permitted to post articles Xto that group. If the character is _n the user is not permit- Xted to post articles to that groups. (This field takes the Xplace of the _n_g_f_i_l_e in earlier versions of news. Local Xarticle numbers begin at 1 and count sequentially within the Xnewsgroup as articles are received. They do not usually Xcorrespond to local article numbers on other sites. The Xarticle numbers are always stored as a 5 digit number (with Xleading zeros) to allow updating of the file in place. X X The active file should contain _A_L_L active net-wide Xactive newsgroups (net.all, mod.all and fa.all). It is Ximportant that they all be present, as they are used as a Xcheck for valid newsgroup names and invalid newsgroup names Xare removed from any articles processed by inews. You should Xuse the _s_y_s file to keep out unwanted newsgroups. X X_3._2. _a_l_i_a_s_e_s X X This file is used to map bad newsgroup names to the Xcorrect ones. (For example, net.unix.wizards is mapped in Xnet.unix-wizards). Each line consists of two fields Xseparated by a space. If the first field is found in the Xnewsgroup list of the incoming article, it is changed to the Xsecond field. This change takes place in the article before Xit is passed on to other systems, not just locally. X X_3._3. _b_a_t_c_h X X This program reads a list of filenames of articles and Xoutputs the articles themselves. It is typically used by a Xshell script such as _s_e_n_d_b_a_t_c_h or _c_s_e_n_d_b_a_t_c_h. X X_3._4. _c_a_e_s_a_r X X A program to do caesar decoding of rotated text, on a Xline by line basis. The standard input is copied to the Xstandard output, rotating each line according to a static Xsingle letter frequency table. If an integer argument is Xgiven (e.g. 13), every line is rotated by that argument, Xwithout regard to letter frequencies. This program is X X X X September 7, 1984 X X X X X X - 10 - X X Xinvoked by the ``D'' readnews command. It is also used by Xpostnews with the ``13'' argument to encode selected Xmaterial for posting. X X_3._5. _c_h_e_c_k_g_r_o_u_p_s X X checkgroups is a shell file to aid in automatic check- Xing of the accuracy of your active file. It is executed by Xthe _c_h_e_c_k_g_r_o_u_p_s control message and mails a list of out of Xdate newsgroups to the person defined by _N_O_T_I_F_Y It also Xupdates the _n_e_w_s_g_r_o_u_p_s file that is used by _p_o_s_t_n_e_w_s as a Xhelpfile for newsgroup selection. X X_3._6. _c_o_m_p_r_e_s_s X X This program is used for data compression by the Xcompressed batching scheme. It averages 50% compression on a Xtypical batch of news. X X_3._7. _c_s_e_n_d_b_a_t_c_h X X This shell file is used to send a compressed batch of Xnews to a machine that has _c_u_n_b_a_t_c_h available to unbatch it. X X_3._8. _d_i_s_t_r_i_b_u_t_i_o_n_s X X This is a list of distributions that are valid for your Xsite. Each line has two fields separated by the first space Xon the line. The first field is the name of the distribu- Xtion (e.g. usa, na, etc.). The second field is text Xdescribing the distribution. As distributed, this file is Xonly correct for sites in the USA. You should examine this Xfile and add or delete the appropriate distributions. X X_3._9. _e_r_r_l_o_g X X This file contains the ``important'' error messages Xfound in the log file. These errors usually indicate that Xsomething was wrong with an article. This file should be Xwatched closely. The _l_o_g file contains much more verbose Xinformation and it is often difficult to detect errors in Xit. X X_3._1_0. _e_x_p_i_r_e X X This program expires old articles and archives then if Xarchiving is selected. It is typically run once a day from X_c_r_o_n. X X_3._1_1. _h_e_l_p X X A list of commands printed when an illegal command is Xtyped to _r_e_a_d_n_e_w_s. X X X X X September 7, 1984 X X X X X X - 11 - X X X_3._1_2. _h_i_s_t_o_r_y X X A list of every article that has come in to your sys- Xtem. Used to reject articles that come in for the second Xtime (presumably via a different path). This file will grow Xbut is cleaned out by the expire command. X X_3._1_3. _h_i_s_t_o_r_y._d_i_r,_h_i_s_t_o_r_y._p_a_g X X These two files are used on V7 systems as a hashed ver- Xsion of history, containing the message ID's of all articles Xin history. They are only used if -DDBM and -ldbm appear in Xthe Makefile. X X_3._1_4. _i_n_e_w_s X X This is the program that actually sends and receives Xnews. All other programs interface eventually with it. It is Xnot intended to be used directly by a human, so it is no Xlonger in /usr/bin. X X_3._1_5. _l_o_c_a_l_g_r_o_u_p_s X X This is a list of newsgroups specific to your site. It Xis used in addition to the data furnished by the _c_h_e_c_k_g_r_o_u_p_s Xcontrol message to provide a list of possible groups to Xwhich to submit articles. X X_3._1_6. _l_o_g X X If present, a log of articles processed and error con- Xditions is kept here. This file grows without limit unless Xcleaned out periodically, the trimlib script in misc can be Xinvoked from /usr/lib/crontab daily or weekly to keep the Xlog short. X X_3._1_7. _m_o_d_e_r_a_t_o_r_s X X This file contains a list of the moderators and their Xmailing addresses for each moderated newsgroup. Each line Xconsists of two fields. the first is the name of the Xmoderated group. The second is the mailing address of the Xgroup's moderator. As distributed, they are almost certainly Xwrong. You will need to modify the paths so they work from Xyour site. X X_3._1_8. _n_e_w_s_g_r_o_u_p_s X X This file is displayed by _p_o_s_t_n_e_w_s when a user hits X``?'' in response to its request for newsgroups. It is Xupdated automatically by the _c_h_e_c_k_g_r_o_u_p_s control message. X X X X X X X September 7, 1984 X X X X X X - 12 - X X X_3._1_9. _n_o_t_i_f_y X X If this file is present, it's contents will be taken as Xthe name of the user to notify in case of a problem. If the Xfile is empty, nobody will be notified. (This overrides the XNOTIFY option in defs.h.) This is useful if one person Xadministers several systems and does not want multiple Xcopies of control message notifications. X X_3._2_0. _o_a_c_t_i_v_e, _o_h_i_s_t_o_r_y, _o_h_i_s_t_o_r_y._d_i_r, _o_h_i_s_t_o_r_y._p_a_g X X These are copies of the corresponding active, history, Xhistory.dir, history.pag files before expire ran. They are Xkept in case something happens to the originals. X X_3._2_1. _r_e_c_m_a_i_l X X This program can serve as a link between news and your Xlocal mailer. If you have _s_e_n_d_m_a_i_l, don't use recmail. XSendmail is much more useful. X X_3._2_2. _r_e_c_n_e_w_s X X A program which allows you to send mail to get news Xposted. You usually need to run _s_e_n_d_m_a_i_l or _d_e_l_i_v_e_r_m_a_i_l to Xbe able to use this. X X_3._2_3. _r_e_c_o_r_d_i_n_g X X A list of newsgroup classes and filenames to display Xrecordings for. The recording feature is analogous to the Xrecordings played in some areas when you dial directory Xassistance, trying to be annoying and make you think twice. XRecordings on certain newsgroups are intended to remind the Xuser of the rules for the newsgroup, or, in the case of a Xcompany worried about letting proprietary information out, Xreminding authors that anything they say is seen outside the Xcompany and so proprietary information should not be Xincluded. X X The file contains one line per recording. The line Xcontains two fields, separated by a space. The first field Xis the newsgroup class (e.g. ``net.all''), the second field Xis the name of the file containing the recorded message. If Xthe file name does not begin with a slash, it will be Xsearched for in LIBDIR. Sample recording files can be found Xin the misc directory. X X_3._2_4. _r_m_g_r_o_u_p X X This shell file should be used to remove any groups Xthat are no longer used. X X X X X X September 7, 1984 X X X X X X - 13 - X X X_3._2_5. _s_e_n_d_b_a_t_c_h X X This shell file is used to send batched articles to Xother systems. It is typically run from _c_r_o_n. X X_3._2_6. _s_e_n_d_n_e_w_s X X A program to send news internally from one computer to Xanother. Useful if you use mail links to transmit articles. X X_3._2_7. _s_e_q X X The current sequence number for your system. Used to Xgenerate unique article ID's. X X_3._2_8. _s_y_s X X A list of all your neighbors, which newsgroups they Xget, and how to send news to them. The format is documented Xbelow. X X_3._2_9. _u_n_b_a_t_c_h X X This program is used to unbatch the incoming batched Xnews and feed each article to inews. It's horrible and will Xgo away in the next version. X X_3._3_0. _u_s_e_r_s X X A list of users that read news on your system. X X_3._3_1. _u_u_r_e_c X X A program to receive news sent by _s_e_n_d_n_e_w_s. X X_3._3_2. _v_n_e_w_s._h_e_l_p X X This is the helpfile used by vnews. X X_4. _S_e_t_t_i_n_g _U_p _L_i_n_k_s X X There are two basic types of links for exchanging news: Xthose that use mail and those that don't. The ones that use Xmail are more indirect, yet more versatile while the ones Xthat don't are simpler. The default is without mail so that Xis discussed first. X X_4._1. _N_o_n-_m_a_i_l _L_i_n_k_s X X The basic theory behind a non-mail link is that the X_r_n_e_w_s program is invoked on the remote system with the arti- Xcle being transmitted as the standard input. This is possi- Xble on some networks, but the most common implementation is Xvia the _U_U_C_P network. Using the _u_u_x(_1_C) command, the X X X X September 7, 1984 X X X X X X - 14 - X X Xcommand which is forked to the shell looks like: X _u_u_x - -_r -_z _r_e_m_o_t_e_s_y_s!_r_n_e_w_s < _a_r_t_i_c_l_e XThis is the default transmission method. In order to set up Xsuch a link, obviously a _U_U_C_P link with the remote system Xmust be in effect. In addition, _r_n_e_w_s must be available and Xexecutable by _u_u_x_q_t on the remote machine. In most cases, Xthis means that _r_n_e_w_s must be in /usr/bin so _u_u_x can find Xit. Also, /usr/src/cmd/uucp/uuxqt.c should be checked to Xmake sure that rnews is an allowed command. X X Other networks that allow remote execution include the XBerknet, BLICN (usend), many Ethernets, and the NSC hyper- Xchannel (nusend). It is important, however, that a spooling Xmechanism be available. Otherwise, if system A tries to Xsend an article to system B via a remote execution command, Xand B is down, the article could be lost. Spooling arranges Xthat the system will try again when B comes back up. X X_4._2. _M_a_i_l _L_i_n_k_s X X When using mail to transmit articles, two intermediary Xprograms are necessary. These are _s_e_n_d_n_e_w_s(_8) and _u_u_r_e_c(_8). XThe idea is that when system A wants to send an article to Xsystem B, the sys file on system A has an entry for system B Xsuch as: X X /usr/lib/news/sendnews -a rnews@B X Xwhich runs _s_e_n_d_n_e_w_s on the article. The -a option specifies Xthat the mail should be formatted for the Arpanet. Sendnews Xpackages the article and mails it to rnews@B. Somehow, the XB system is expected to make sure that all mail to user X``rnews'' is fed as input to the program _u_u_r_e_c. This pro- Xgram unpackages it and invokes rnews. X X The best way to get mail to rnews fed into _u_u_r_e_c is to Xuse sendmail or delivermail, if you are on a system running Xthem. Create an alias in /usr/lib/aliases as follows: X X rnews: "|/usr/lib/news/uurec" X Xand sendmail will handle it. If you do not have a facility Xfor forwarding mail to a program, you can gimmick your Xmailer to watch for it (using _p_o_p_e_n(3S), this is easy) or, Xif you don't want to do any programming, you can have _c_r_o_n Xinvoke uurec every hour with /usr/spool/mail/rnews as stdin. XThis solution is messier because uurec must potentially deal Xwith multiple messages, something that has never been Xtested. X X_5. _F_o_r_m_a_t _o_f _t_h_e _s_y_s _f_i_l_e X X To set up a link to another site, edit the _s_y_s file in XLIBDIR. This file is similar to the L.sys file of uucp. X X X X September 7, 1984 X X X X X X - 15 - X X XEach line contains four fields, separated by colons: X X(1) The system name of a site to which you forward news. X Normally all systems you have links to will be X included. You should also have a line for your own X system. X X(2) The newsgroups to be forwarded to them. This is a pat- X tern in the sense of a subscription. Generally, you X will list classes of newsgroups, that is, using ``all'' X for everything. A typical forwarding list for a new X site would be X X net,mod,na,usa,to.sysname X X where _s_y_s_n_a_m_e is the name of the remote system. (Of X course if you are not in the USA or North America, you X would remove those distributions and replace them with X the ones appropriate for you). In particular, you X don't want to forward _a_l_l since local newsgroups (those X without dots) should not be sent. For the line X describing your own system, this field describes the X newsgroups your site will accept from remote sites. X Thus, if another site insists on sending you a news- X group you don't want, say _n_e_t._j_o_k_e_s, include !_n_e_t._j_o_k_e_s X here. X X(3) This field contains flags describing the connection. X An A will indicate that the other site is running an A X version of netnews. A B indicates a B version. Leav- X ing it empty defaults to B. If you are reading this X document, you have a B version. Some existing sites X run A versions. If you aren't sure, ask your contact X at the other site, with whom you should be talking to X set this up anyway. The F flag indicates that the X fourth field is the name of a file. The full path name X of a file containing the article in SPOOL will be X appended to this file. The L flag prevents transmis- X sion unless the article was created on this site. (It X is recommended that you feed an L link to a backbone X site, to ensure that your submissions will be more X likely to get to the entire network, even in the event X of a local problem. Please make sure that a mail link X exists too, so you can get replies.) The N flag can X also be included here, indicating that mail should be X sent using the _i_h_a_v_e/_s_e_n_d_m_e protocol described below. X The U field arranges that the parameter to the optional X %s in the command field to be filled in with a per- X manent file name from SPOOL instead of a temporary cus- X tomized file name. X X(4) This field is the command to be run to send news to the X remote site. The article will be on the standard X input. Leaving this field blank means an ordinary uucp X X X X September 7, 1984 X X X X X X - 16 - X X X link is being used, that is, the command defaults to X X uux - -r -z sysname!rnews X X The - option tells uux to expect input on stdin. The X -z option is nonstandard - you should add it, see the X minus.z* files in the uucp directory. It shuts off the X annoying message you would otherwise get mailed to you X telling you that your article was broadcast OK. To X avoid using the -z option, change the source or put the X uux command in the fourth field. The -r option tells X uux not to start up a daemon right away. This turns X out to ease the load on the system, at the expense of X making news be transmitted a bit slower. The news will X be sent when the next daemon is started, usually this X means the next time mail is sent to or from your sys- X tem. If this turns out to be unreasonably long, put a X line in crontab to run X X /usr/lib/uucp/uucico -r1 X X every hour or so. X X Here is a sample sys file for a site ``myvax'' with Xconnections to ``yourvax'' where myvax also passes news on Xto ``downstream''. We assume that ``myvax'' and ``down- Xstream'' exchange a local newsgroup class lng.all as well as Xthe network wide newsgroups. News to ``downstream'' is Xbatched. We also assume that myvax and yourvax are in the XUSA, while downstream is in Canada. X X myvax:net,fa,mod,na,usa,lng:: X yourvax:net,fa,mod,na,usa:: X downstream:net,fa,mod,na,usa,lng:F:/usr/spool/batch/downstream X X X_6. _P_o_s_t_i_n_g _M_e_t_h_o_d_s X X The basic method is _p_o_s_t_n_e_w_s. This program will prompt Xyou for the title, newsgroups, and distribution, then place Xyou in the editor. (The system default EDITOR is used Xunless the environment variable EDITOR is set, overriding Xthe system default.) The text should be typed after the Xblank line. The title and newsgroups are available for Xediting at the top of the buffer. Other header lines can be Xadded, such as an expiration date or distribution. When you Xwrite out the file and exit from the editor, the article Xwill be posted. X X Another method is to use mail. This can only be done Xon systems that allow mail to a given name to be fed into an Xarbitrary program as input. This is easily done with the XBerkeley delivermail or sendmail program, and not with any Xother mailer the author is familiar with. (It may be X X X X September 7, 1984 X X X X X X - 17 - X X Xpossible to painfully set this up with MMDF, provided the Xnewsgroup name is no more than 8 characters long.) To use Xmail, set up an alias such as the following: X X net.general: "|/usr/lib/news/recnews net.general" X XWhenever a user sends mail to _n_e_t._g_e_n_e_r_a_l, this starts up Xthe given shell command which calls recnews with one argu- Xment, the name of the newsgroup. You need to create one Xalias for each newsgroup, and to keep the list up to date as Xnew newsgroups are created. _R_e_c_n_e_w_s will in turn invoke X_i_n_e_w_s. X X Note that there are problems with recnews. There is no Xway to use it to post to multiple newsgroups without creat- Xing separate articles (something frowned upon because it Xforces people to read the same thing more than once.) Also, Xthere is no way to make the recording feature (to safe guard Xproprietary information) work when recnews is used. X X_7. _V_a_r_i_o_u_s _c_o_n_s_i_d_e_r_a_t_i_o_n_s X X_7._1. _S_u_i_d _b_i_t_s X X The current intended state of affairs is that _i_n_e_w_s Xruns suid NEWSUSR. The _r_e_a_d_n_e_w_s program does not need to be Xsuid. This makes it possible to write your own interface to Xread news instead of using readnews. (As distributed, _i_n_e_w_s Xis also sgid. I know of no good reason for this.) X X_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 X X All the files should be writable by NEWSUSR. However, Xdue to a glitch, you will probably have to make the SPOOLDIR Xand its subdirectories mode 777. It could be 755 except for Xone problem. When a new newsgroup comes in, _i_n_e_w_s will Xattempt to _m_k_d_i_r a new subdirectory of SPOOLDIR for the Xnewsgroup. Since both inews and mkdir are suid, mkdir will Xuse the real uid instead of NEWSUSER when checking for per- Xmissions, and if the directory isn't 777 the check will Xfail. Here are several alternatives if you don't want a 777 Xdirectory around: X X_7._2._1. _F_i_x _R_e_a_l _U_i_d X X If inews is always run from cron or by root, the real Xuid can be arranged to be root or NEWSUSR. This is a poor Xsolution since it makes the local creation of new newsgroup Xrequire super user permissions, and is a potential security Xhole. If this approach is taken, care must be taken to Xinsure that the owner of the created directory is NEWSUSR. X X X X X X X September 7, 1984 X X X X X X - 18 - X X X_7._2._2. _C_h_a_n_g_e _t_h_e _K_e_r_n_e_l X X _i_n_e_w_s will do _s_e_t_u_i_d(_g_e_t_e_u_i_d()) before it forks the Xmkdir. If your system permits this call, there will be no Xproblem. In particular, Berkeley 4.0BSD and later systems Xallow this. An alternative change to the kernel is to Xautomatically stack uids: when an suid program is run, set Xthe new real uid to the old effective uid. X X_7._2._3. _G_r_o_u_p_s X X You could have inews be sgid NEWSGRP and all files Xwritable by the group. This approach has been tested and Xthe problem turns out to be that the _m_k_d_i_r command uses the X_a_c_c_e_s_s system call to check permissions. Since _a_c_c_e_s_s uses Xthe real gid, you run into the same problem. X X_7._2._4. _A_n_o_t_h_e_r _m_k_d_i_r X X You could create a version of mkdir that does less Xchecking, and put it in a directory that can only be Xaccessed by NEWSUSR (mode 700, owned by NEWSUSR). Have Xinews fork this mkdir. X X_7._3. _E_x_p_i_r_a_t_i_o_n _d_a_t_e_s X X To get articles to expire automatically, put a line in Xcrontab to run X X /usr/lib/news/expire X Xevery night. This command deletes all expired news. The -a X_n_e_w_s_g_r_o_u_p_s option causes all expired news to be archived Xunder /usr/spool/oldnews depending on which newsgroups are Xselected. (See _e_x_p_i_r_e(_3) for details. X X Sometimes news is not expired when it should be. Be Xsure to check that expire has permissions to unlink files, Xthat it runs as a user that has a .newsrc, and that it is Xproperly suid. You can manually invoke expire with the -v X(verbose) option to find out what it's doing. Adding levels Xof verbosity (e.g. -v6) will get more and more output. X X_7._4. _V_e_r_s_i_o_n _t_o _V_e_r_s_i_o_n X X Version B will understand incoming news in either ver- Xsion A or B format, automatically. Version B will generate Xeither format, depending on the flag in the 3rd field of the Xsys line. Version A will not understand version B format. XThus, it is possible for two version B sites to communicate Xusing version A format. This will work but is not a good Xidea, since the translation from B to A loses information X(such as the expiration date) which will not be there when Xtranslated back to version B. X X X X September 7, 1984 X X X X X X - 19 - X X X News from versions A and 2.9 B do not conform to the XUSENET interchange standard. 2.10 supports the standard and Xwill communicate with either A or 2.9 B news. A news is Xwritten (losing other header information) if A is in the Xflags for the system. If OLD is defined, 2.10 will write Xout headers with both standard (Date, Message-ID) and 2.9 X(Posted, Article-I.D.) lines so that either B system will Xproperly handle the article. Incoming news is recognized by Xthe first letter (``A'' for A news), or the lack of an ``@'' Xin the From line (2.9). Missing fields are constructed as Xwell as possible from the available information. X X_7._5. _P_r_e_s_e_n_t_a_t_i_o_n _O_r_d_e_r X X The order of the newsgroups listed in LIBDIR/active is Xthe order the newsgroups will be presented in initially. If X_S_O_R_T_A_C_T_I_V_E is defined in defs.h, after the first time news Xwill be presented in the order of the persons .newsrc. Ini- Xtially this will be directory order, but you can edit impor- Xtant newsgroups like general to the top. X X A recommended order to maintain your active file in is Xthis: X X general X local.general X net.announce X net.general X net.followup X local newsgroups, in alphabetical order X net.all newsgroups, in alphabetical order X fa.all, in alphabetical order X test X all.test X to.all X control X junk X X X_8. _C_o_n_t_r_o_l _M_e_s_s_a_g_e_s X X Some news systems will send you articles that are not Xfor human consumption. They are messages to your news sys- Xtem called _c_o_n_t_r_o_l _m_e_s_s_a_g_e_s. Such messages contain the Con- Xtrol: header. Older systems use newsgroups matching X_a_l_l._a_l_l._c_t_l, and this will still work, although the Control: Xheader is preferred. Since the newsgroup name is used for Xdistribution only, and is not checked to ensure it's in the Xactive file, such newsgroup names can still be used. This Xmakes it possible to post network wide control messages with X_n_e_t._m_s_g._c_t_l (or restricted broadcast such as _b_t_l._m_s_g._c_t_l) or Xmessages for a particular system: _t_o._u_c_b_v_a_x._c_t_l. Messages Xare canceled, however, with a Control: line in a message to Xthe same newsgroup(s) as the original message. X X X X September 7, 1984 X X X X X X - 20 - X X X A control message contains a command and zero or more Xarguments (much like a UNIX program). The subject of the Xarticle contains the command and arguments. The body of the Xarticle is usually ignored, although some messages can use Xit for additional text information. Control messages are Xnot stored in SPOOL, rather they are acted on and discarded Xat once. X X_8._1. _i_h_a_v_e/_s_e_n_d_m_e X X Two control messages are _i_h_a_v_e and _s_e_n_d_m_e. These mes- Xsages allow two participating sites to set up a link so that Xone site will tell the other site it has a given article and Xwait for a request before it actually sends it. The normal Xcase is to send an entire article to a system, which con- Xsults the history file to see if the article has already Xbeen seen, and then throws it away if it's been seen before. X X Note that, since most messages are short anyway, Xexperience has indicated that for ordinary UUCP unbatched Xcommunication, all ihave/sendme does is triple the load and Xslow down forwarding. Hopefully future code will allow Xihave's with multiple message ID's in the body, and existing Xcode in 2.10 understands such messages, but does not gen- Xerate them. So we advise that you don't use ihave/sendme Xfor now. X X Use of these control messages can cut down on this Xwasted transmission, but if you have a polled UUCP connec- Xtion, they can slow down receipt of news due to polling Xdelays. It is up to each connected pair of sites whether Xthey want to use this protocol. The choice is controlled by Xthe N flag in the sys file. In the case of a leaf node (one Xwith only one neighbor) there is no advantage to this proto- Xcol. Even if both sites are able to initiate a connection X(have dialers or the link is hardwired) the -r option on the Xuux can cause 2 hour or more delays in propagating news. XSince this protocol can triple the number of messages gen- Xerated, you should carefully evaluate your situation when Xdeciding whether to use it. If transmission time and phone Xbills dominate your costs, and you are sending news to Xseveral sites, and large article bodies dominate the costs X(rather than the headers and the time spent by UUCP nego- Xtiating transmission) it is probably worthwhile to use Xihave/sendme. If your costs are dominated by CPU load from XUUCP, or if you send news to a site that cannot get it from Xanywhere else, you probably do not want to use this proto- Xcol. The decision can be made independently for each site Xin your sys file. X X This pair works as follows: Site _m_y_s_i_t_e receives arti- Xcle <_1_2_3@_a_b_c._U_U_C_P>. It enters it locally and then broad- Xcasts it to its neighbors. One of its neighbors is site X_y_o_u_r_s_i_t_e which has the N flag in the _s_y_s file. So mysite X X X X September 7, 1984 X X X X X X - 21 - X X Xsends an article on newsgroup to.yoursite.ctl with title X``ihave <123@abc.UUCP> mysite''. This control message has Xtwo arguments - the first (<123@abc.UUCP>) is the article ID Xof the article in question, the second (mysite) is the name Xof the site sending the article. The name of the newsgroup Xand the sys file control transmission of the article, nor- Xmally the sys file will read something like X X yoursite:net.all,fa.all,to.yoursite:BN: X Xwhich will cause an article on to.yoursite.ctl to be Xtransmitted. X X Yoursite receives the message and looks to see if it Xhas seen it before. If it has, it throws the message away Xand stops. If it hasn't, it sends a message on Xto.mysite.ctl with title ``sendme <123@abc.UUCP> yoursite'' Xwhich is transmitted to mysite. (The two arguments to Xsendme are the article ID requested and the site to send it Xto.) Then mysite gets this message and actually transmits Xthe article to yoursite. X X_8._2. _n_e_w_g_r_o_u_p X X This message has one argument, the name of a newsgroup Xto be created. This allows special action to be taken Xlocally when a new newsgroup is created. It is generated by Xthe -C option to inews. By default, the newsgroup is added Xto the active file and a directory is created, and mail is Xsent to the local contact advising that this has happened. XSee the routine ``c_newgroup'' in control.c if you want Xsomething different to happen. (Note that, although the Xbody of the message contains a brief description of the pur- Xpose of the group, this body is usually thrown away by Xexisting software.) X X_8._3. _r_m_g_r_o_u_p X X This message has one argument, the name of a newsgroup Xto be removed. It is used for network-wide cancellation of Xa newsgroup. If MANUALLY is not defined, it will remove the Xarticles, directory, and active file line for the group. XThere is a shell script _r_m_g_r_o_u_p that does essentially the Xsame thing as this message, but the shell script only Xremoves the group locally. We recommend that you leave XMANUALLY defined, and when you receive mail advising you of Xthe demise of the newsgroup, you run rmgroup by hand. This Xwill prevent accidental or malicious removal of a good news- Xgroup. X X_8._4. _c_a_n_c_e_l X X This message cancels a given article. It takes one Xargument, the message ID of the article to cancel. It X X X X September 7, 1984 X X X X X X - 22 - X X Xshould be broadcast to the same newsgroup as the original Xarticle. X X_8._5. _s_e_n_d_s_y_s X X The sys file is mailed to the originator of the mes- Xsage. There are no arguments. This is used for making Xmaps. Since your sys file is public information, you should Xnot remove or change this control message. X X_8._6. _s_e_n_d_u_u_n_a_m_e X X The _u_u_n_a_m_e(1) program is run and the output is mailed Xto the originator of the message. There are no arguments. XThis is used for making uucp maps. If you do not run UUCP Xor have sites in your L.sys which are a secret, you may wish Xto edit this. Note that only the output of uuname is Xmailed, not the contents of L.sys (which news does not have Xaccess to anyway). If you do make a change, you should Xarrange that some mail still is sent out to the originator Xof the message, so he will know your site received it. See Xthe code in routine c_senduuname in control.c. X X_8._7. _v_e_r_s_i_o_n X X The local version name/number of the netnews software Xis mailed back to the author of the control message. X X_8._8. _c_h_e_c_k_g_r_o_u_p_s X X This control message is an attempt at semi-automatic Xmainenance of the list of active news groups. This control Xmessages takes the body of the article and pipes it into XLIB/checkgroups. As mentioned perviously, LIB/checkgroups Xwill update the newsgroups file, add any missing newsgroups Xand mail a message to _N_O_T_I_F_Y about any old newsgroups that Xshould be removed. It is expected that the person who main- Xtains the list of active newsgroups will broadcast this con- Xtrol message on a regular basis. X X_8._9. _O_t_h_e_r _M_e_s_s_a_g_e_s X X Any unrecognized message will cause an error message to Xbe mailed to the originator. Additional messages may be Xdefined as time goes on, such as messages to automatically Xupdate directories or maps. You should be willing to go Xinto the code (control.c) and add messages as they become Xstandardized. X X_9. _M_a_i_n_t_e_n_a_n_c_e X X There are some things you should do periodically to Xkeep your news system running smoothly. We hope to eventu- Xally automate all or most of this, but right now some of it X X X X September 7, 1984 X X X X X X - 23 - X X Xmust be done by hand. X X The _h_i_s_t_o_r_y and _l_o_g files in your LIB directory will Xgrow. You should make sure that they are cleaned up period- Xically. The LIB/expire program will remove lines from his- Xtory corresponding to deleted articles, but it is a good Xidea to check the file every few months to make sure it is Xnot going wild. Be sure not to completely lose your history Xfile when you clean it up, in case another neighbor tries to Xsend you an article you recently got. (If you only get news Xfrom one site it is safe to clean it out completely.) X X The log file is not automatically cleaned out by any Xnetnews software, and will grow quickly. The misc/trimlib Xscript can be installed in LIB/trimlib, and invoked weekly Xfrom /usr/lib/crontab. X X You should also clean out old newsgroups that are no Xlonger active. To remove a newsgroup net.foo, you should Xrun the shell script rmgroup with net.foo as the argument. XI.e. X X /usr/lib/news/rmgroup net.foo X X X Note that clearing up UUCP constipation is another Xthing you'll have to do if you have flaky hardware or phone Xlines. If you have more than one connection, chances are Xthat UUCP will get clogged up when one of your neighbors Xgoes down for more than a few hours. Various spooling Xschemes are being worked on to help make the news/uucp sys- Xtem more robust, but one thing you can and should do, if you Xfind your /usr/spool/uucp directory getting too big, is to Xinstall a subdirectory fix to UUCP. A quick and dirty ver- Xsion of this is available from Duke, which traps the open, Xcreat, link, etc. system calls at the assembly language Xlevel and maps, for example, D.fooA1234 into XD.foo/D.fooA1234. Since the C. and D.local directories Xstill get big, in practice this can still create some big Xdirectories, but the directories tend to be a factor of 5 Xsmaller, resulting in a factor of 25 improvement to speed X(since a directory traversal for all files is quadratic on XUNIX). Right now, UUCP is the weak link in netnews distri- Xbution, and you should certainly keep an eye on it. X X_1_0. _C_r_e_a_t_i_n_g _N_e_w _N_e_w_s_g_r_o_u_p_s X X As system news administrator, you are able to create Xnewsgroups. To create a newsgroup, first make sure this is Xthe right thing to do. (Normally a suggestion is first Xposted to net.general,net.news.group for a net newsgroup, Xfollowups are made to net.news.group, it is established if Xthere is general interest in such a group, and a name is Xagreed on.) Then someone creates it by typing the command X X X X September 7, 1984 X X X X X X - 24 - X X X X inews -C _n_e_w_s_g_r_o_u_p X XThis will create the directory and active entry locally. It Xwill also prompt you for a paragraph describing the group Xand start up an inews to post a newgroup control message Xannouncing the group. This control message will be sent out Xon net.msg.ctl and other sites may have configured their Xsystems to do something with these messages. A human read- Xable announcement is not made - you can post this to Xnet.news.group if necessary. X X Someone should post a first article to the new news- Xgroup immediately. If this is not done, the empty directory Xfor the newsgroup will cause _c_h_e_c_k_n_e_w_s to believe there is Xunread news, because each user has no .newsrc line for that Xnewsgroup. This command creates the group network-wide. It Xis then possible to submit an article to the group. X X You must be the super user to use the -C option to Xinews. (That is, your uid must match ROOTID. It is recom- Xmended that you change ROOTID to your own uid so you don't Xhave to su to create newsgroups.) X X A new site should get the active file from their neigh- Xbor and use the _m_a_k_e_a_c_t_i_v_e._s_h shell script to create the Xlocal directory hierarchy and active file. (The local Xactive file will have 00000 for each newsgroup, since local Xnumbers will start at 1 for the first article received in Xeach newsgroup.) X X_1_1. _C_o_n_v_e_r_s_i_o_n _f_r_o_m _A _t_o _B X X If you are currently running version A on your system, Xnote that B is incompatible with A. The files are stored in Xa different format (headers have mail like field names now). XThe directory organization is different (each newsgroup has Xa subdirectory of its own, and the file names are numbers Xrather than site.id pairs). There are no bitmap, uindex, or Xnindex files to be trashed (which articles have been read is Xstored in each users .newsrc file). The user interface is Xslightly different (news/netnews is now called readnews, Xnews is posted using inews, subscription is done by editing X.newsrc, the sense of the -c option is reversed, news is Xpresented in newsgroup order, the -a and -t options now Xprobably need -x as well, and there are many minor changes). X X We decided not to provide a program to convert from Xversion A to version B. Rather, the following strategy was Xadopted for conversion: X X(1) Install the new news in a different spool directory X from the old one. For example, you can use X /usr/spool/newnews. You can change to the standard X X X X September 7, 1984 X X X X X X - 25 - X X X name later if you want. Get it to work for local mes- X sages. X X(2) Post an article to newsgroup _g_e_n_e_r_a_l with the old news X announcing the change. Make available documentation X such as the accompanying paper ``How to Read the Net- X work News'' to the users. This article will be the X last one in the old news. X X(3) Chmod the old news directory to 555 to prevent any more X news from being posted. (Actually, this will prevent X the bitfile from being updated, so it may not be a good X idea.) X X(4) Replace the old rnews program with the new rnews pro- X gram. X X(5) Test it by having your neighbor send you a message. X X(6) Wait a reasonable period for everyone to have read the X final article with the old news. Perhaps a few weeks X is right. X X(7) Uninstall the old news. X X Users will have to invoke _r_e_a_d_n_e_w_s instead of _n_e_t_n_e_w_s Xto read news. Depending on your old method of posting, this Xcould be changed too. (If you were using mail, it does not Xneed to be changed.) They will also have to fix their sub- Xscriptions. In general, they can type X X netnews -s X Xto see what they subscribe to on the old system, and then Xcreate a file in their home directory called .newsrc con- Xtaining X X options -s _t_h_e_i_r _s_u_b_s_c_r_i_p_t_i_o_n X XThe format of the subscription pattern matching is the same Xas in A except that ALL is replaced by all (change to lower Xcase). Something along the lines of this could be used to Xautomate this: X X(echo -n "options -s" ; netnews -s | sed s/ALL/all/) > .newsrc X X X_1_2. _C_o_n_v_e_r_s_i_o_n _f_r_o_m _2._9 _t_o _2._1_0 X X Conversion from 2.9 to 2.10 is not nearly as involved Xas an A to B conversion. The user interface does not change Xmuch, and the user .newsrc files are not affected. However, Xit is recommended that you do the conversion during a time Xwhen no news is received, so that incoming news will not get X X X X September 7, 1984 X X X X X X - 26 - X X Xlost. One way to ensure this is to make /bin/rnews be a Xshell script which saves the article in /usr/spool/innews/$$ X($$ is the process id of the particular shell and will be Xunique for each article). X X The first step to conversion is to customize the Xsources. In the past, you had to take a fresh distribution Xand edit the defs.h file and Makefile to suit local prefer- Xences. If you had many local changes, or didn't record the Xlocal changes, upgrading could be annoying. 2.10 provides a Xmechanism to automate these changes. Create a shell script Xin the src directory called localize.sh. (You can use Xlocalize.sample as a template.) This shell script should Xcopy defs.dist to defs.h, and copy either Makefile.v7 or XMakefile.usg to Makefile. It should chmod any files that Xneed to be changed (often Makefile and defs.h) to a writable Xmode. Then it should invoke _e_d on the files, making any Xnecessary local changes. X X The next step is to compile the software, with X``make''. It may be necessary to update the localize.sh Xfile until you are satisfied with the compilation. Note Xthat after any change to the Makefile in localize.sh, you Xshould run localize.sh by hand. Otherwise, although make Xwill run it for you, it will then continue to do the make Xwith the old Makefile. X X When the software is compiled, you should run the Xcvt.active.sh shell script, with the lib and spool direc- Xtories as parameters. This will create a new active file in XLIB/active. Then run cvt.links.sh with the lib and spool Xdirectories as parameters. Then run cvt.names.sh with the Xlib and spool directories as parameters. Old news will be Xlinked into the new hierarchy while leaving links in the old Xhierarchy. If you were using the default library and spool Xdirectories, you would do the following: X X sh cvt.active.sh /usr/lib/news /usr/spool/news X sh cvt.links.sh /usr/lib/news /usr/spool/news X sh cvt.names.sh /usr/lib/news /usr/spool/news X X X The next step is to back up the old binaries (mv X/usr/bin/rnews /usr/bin/ornews, etc.) and to install 2.10 Xwith ``make install''. Once it is installed, any incoming Xnews will be placed into the new hierarchy but not the old Xone. The critical time window is between running the three Xshell files and installing the new software - any incoming Xnews between these two points will appear in only the old Xhierarchy and be lost to the new software. If any signifi- Xcant time elapses here, you should divert rnews into a Xseparate spool directory as described above. X X Expire will update several key files automatically. X X X X September 7, 1984 X X X X X X - 27 - X X X Finally, test things by posting articles to to.neighbor Xnewsgroups and watching some incoming news, and announce the Xchange to your users. X X When you are satisfied that the conversion was success- Xful, run the shell file _c_v_t._c_l_e_a_n._s_h which will remove the Xold 2.9 news hierarchy. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X September 7, 1984 X X *-*-END-of-install-*-* exit