Annotation of researchv10no/cmd/netnews/doc/install, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.