home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 400-499 / ff473.lzh / CNewsSrc / cnews_src.lzh / doc / install.out < prev    next >
Text File  |  1989-10-14  |  18KB  |  397 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.            IIIInnnnssssttttaaaalllllllliiiinnnngggg ````````CCCC NNNNeeeewwwwssss'''''''' NNNNeeeettttwwwwoooorrrrkkkk NNNNeeeewwwwssss SSSSooooffffttttwwwwaaaarrrreeee
  11.  
  12.  
  13.                           Geoff Collyer
  14.  
  15.                     Department of Statistics
  16.                       University of Toronto
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.           This document describes the flow of  network  news
  24.      within  and  between machines, what each component of C
  25.      news does, and how to install C news.
  26.  
  27.  
  28.  
  29. IIIInnnnttttrrrroooodddduuuuccccttttiiiioooonnnn
  30.  
  31.      Network news (or _n_e_t_n_e_w_s for short) consists of a collection
  32. of  messages formatted similarly to ARPAnet mail (see ARPA Inter-
  33. net RFC 1036 for details), widely spread.  The  logical  network,
  34. imposed on top of various real networks, formed by the set of all
  35. interconnected sites exchanging network news is called ``Usenet''
  36. and was formed in 1979, radiating out from Duke University.  Net-
  37. news is propagated between cooperating  machines  by  a  flooding
  38. algorithm,  with  some  loop prevention heuristics:  each machine
  39. sends its neighbours news that the neighbours have (probably) not
  40. yet seen.
  41.  
  42.      Flow of netnews between machines may be achieved by  use  of
  43. any  network  which can transmit an arbitrary stream of (at least
  44. 7-bit) ASCII code, unmodified.   If  a  network  cannot  transmit
  45. ASCII  intact  (e.g.  BITNET),  it  is possible to encode netnews
  46. before transmission across the network and decode it upon  recep-
  47. tion  from  the  network.  Since one cannot be certain that one's
  48. network neighbours will be up and reachable at all times,  outgo-
  49. ing netnews must be queued, at least in the case of network trou-
  50. ble.  To date, at least these networks, protocols and media  have
  51. been used to transmit netnews correctly:  UUCP, RS232, NNTP, Eth-
  52. ernet(Reg), the ARPA  Internet,  Datakit(Reg),  ACSnet,  magnetic
  53. tape, SMTP, and BITNET, though at least the last two require some
  54. form of encapsulation  to  avoid  corruption  of  articles;  SMTP
  55. because some common implementations get the newline-CRLF mappings
  56. wrong, thus throwing off  byte  counts  in  batches,  and  BITNET
  57. because  of its Procrustean chopping, expanding, mapping, bashing
  58. and smashing of all data sent through it (sending lines of 80  or
  59. fewer  characters  of  letters of either case and digits and plus
  60. and minus appears to be safe).
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.                               - 2 -
  70.  
  71.  
  72.  
  73.      Netnews arrives via some network, which causes a command  to
  74. be  executed  upon arrival (e.g.  _r_n_e_w_s).  _r_n_e_w_s typically spools
  75. the inbound netnews  for  later  processing.   Eventually  (often
  76. within  the  hour  or  at the end of the business day), the input
  77. queue is run and the netnews is stored locally,  typically  under
  78. /_u_s_r/_s_p_o_o_l/_n_e_w_s,  and  queued  for transmission to netnews neigh-
  79. bours.  Once stored on disk, netnews may be read by any of a col-
  80. lection  of  unprivileged news readers, including _c_a_t(1).  _E_x_p_i_r_e
  81. is run typically each night to remove old netnews from disk.
  82.  
  83.      C News was originally written to provide a much  faster  and
  84. smaller, more robust, reliable and correct implementation of net-
  85. news software than B 2.11 news.  We believe that C News  is  also
  86. faster,  smaller and more robust than B 3.0 news.  B 3.0 news has
  87. many more features; take that as you will.
  88.  
  89. CCCC NNNNeeeewwwwssss CCCCoooommmmppppoooonnnneeeennnnttttssss....
  90.  
  91.      _R_n_e_w_s invokes the input  subsystem,  which  spools  incoming
  92. netnews   in   its  original  form,  as  received,  typically  in
  93. compressed batches.  Periodically, the input queue should be  run
  94. by  invoking _n_e_w_s_r_u_n, thus uncompressing any compressed input and
  95. feeding it to _r_e_l_a_y_n_e_w_s.
  96.  
  97.      _R_e_l_a_y_n_e_w_s files incoming netnews as  articles  on  disk  and
  98. initiates spooled transmission to other machines, often by simply
  99. writing the names of the disk files containing  the  articles  on
  100. the  ends  of `batch' files of file names.  Quite a bit of policy
  101. from RFC 1036 is embedded  in  _r_e_l_a_y_n_e_w_s.   _i_n_e_w_s  is  a  complex
  102. front-end  for  _r_e_l_a_y_n_e_w_s  which  implements much of the per-site
  103. policy on news posting.  _i_n_e_w_s  is  a  fairly-slow  shell  script
  104. which  is  adequately fast for most sites, but it will need to be
  105. replaced by something more streamlined for  sites  which  gateway
  106. mailing lists into netnews, for example.
  107.  
  108.      The output _b_a_t_c_h_e_r reads lists of file names  and  generates
  109. news  batches  (see  RFC  1036  or  _n_e_w_s(5)  for  the  format) of
  110. prescribed sizes and queues the batches for transmission to other
  111. sites.   The  batcher is run asynchronously with _r_e_l_a_y_n_e_w_s, typi-
  112. cally once an hour outside of business hours.
  113.  
  114.      _E_x_p_i_r_e is generally run once per night to remove  from  disk
  115. news  articles  older  than a few days.  _E_x_p_i_r_e can use different
  116. expiry criterion for different newsgroups and can  archive  arti-
  117. cles  instead  of removing them.  _E_x_p_i_r_e also runs asynchronously
  118. with _r_e_l_a_y_n_e_w_s.
  119.  
  120.      There are many news readers.  C News comes  with  a  limited
  121. news  reader  (_r_e_a_d_n_e_w_s  by Michael Rourke) sufficient to replace
  122. long-winded /_e_t_c/_m_o_t_ds but you will want a heavy-duty news reader
  123. if you plan to read more than local news groups.  We recommend _r_n
  124. by Larry Wall, available from your  netnews  neighbours  or  your
  125. nearby ccccoooommmmpppp....ssssoooouuuurrrrcccceeeessss....uuuunnnniiiixxxx archive site.  There are others:  _v_n and
  126. _v_n_e_w_s are two.
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.                               - 3 -
  136.  
  137.  
  138.  
  139. PPPPrrrreeeeppppaaaarrrraaaattttiiiioooonnnn ffffoooorrrr IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn
  140.  
  141.      Netnews consumes a lot of disk space  and  often  a  lot  of
  142. transmission time.  Here are some relevant measurements regarding
  143. a full netnews feed as of the time  of  writing  (January  1989),
  144. taken  from  _n_e_w_s._l_i_s_t_s:   a day's netnews is about 3Mb and 1,400
  145. articles in 450 newsgroups.  Years ago, sites often kept 14  days
  146. of netnews on disk, but now many sites keep news for 3 to 5 days,
  147. thus allowing for the occasional long weekend.  Thus a full  news
  148. feed  expired  after 4 days will consume about 12Mb.  Some people
  149. feel that news volume is doubling roughly every  16  months.   If
  150. this  is true, we can expect volume to increase by a factor of 10
  151. in about 4 years to 30Mb per day or 115Mb for 4 days.  It is thus
  152. wise  planning  to  set  aside  a  lot of disk space for netnews.
  153. There are two ways to cope with ever-increasing volumes  of  net-
  154. news:   refuse  to  accept  more newsgroups, or expire news after
  155. shorter intervals on disk.  A current full feed takes just over 7
  156. hours  to  transmit  at 1200 baud, so for dial-up connections one
  157. clearly wants the fastest modems one can afford.
  158.  
  159.      Clearly, transmitting a full news feed is a non-trivial com-
  160. mitment  of resources, so you may have some difficulty in finding
  161. a site willing to supply one.  Such a site may in turn expect you
  162. to  feed yet other sites.  You will need to agree with your pros-
  163. pective netnews neighbour(s) upon transfer media,  protocols  and
  164. networks.
  165.  
  166.      Before proceeding to install C News, you  should  read  this
  167. document through to the end, probably read the companion document
  168. _T_h_e _I_n_t_e_r_f_a_c_e _B_e_t_w_e_e_n _C _N_e_w_s _A_n_d _T_h_e _O_u_t_s_i_d_e _W_o_r_l_d, and  possibly
  169. read  selected items in the _C _N_e_w_s _I_m_p_l_e_m_e_n_t_o_r'_s _N_o_t_e_b_o_o_k and the
  170. manual pages.
  171.  
  172.      You will need to assign a user id and group  id  to  netnews
  173. (often  new  ids  called ``news''); initialise these directories:
  174. NEWSCTL (typically  ////uuuussssrrrr////lllliiiibbbb////nnnneeeewwwwssss),  NEWSBIN  (////uuuussssrrrr////lllliiiibbbb////nnnneeeewwwwssssbbbbiiiinnnn),
  175. and  NEWSARTS  (////uuuussssrrrr////ssssppppoooooooollll////nnnneeeewwwwssss);  and  install  each  subsystem.
  176. NEWSCTL and NEWSARTS are logically one subtree, defining  a  news
  177. data  base,  but  are split for backward compatibility with older
  178. news software, particularly old news readers.   NEWSBIN  contains
  179. programs and shell scripts which might be common amongst machines
  180. sharing a common architecture (e.g.  Sun  3's);  NEWSCTL////bbbbiiiinnnn  may
  181. override these.  The goal is to install the subsystems, integrate
  182. them into a working news system, and configure the news system to
  183. communicate with other news systems.
  184.  
  185.      There are a few key files that must exist before any serious
  186. attempt may be made to operate the news software.  NEWSCTL////aaaaccccttttiiiivvvveeee
  187. is the list of newsgroups that this site  knows  (is  willing  to
  188. accept  or  individually  reject),  and must be owned by the NEWS
  189. userid (the userid that owns  NEWSBIN////rrrreeeellllaaaayyyy////rrrreeeellllaaaayyyynnnneeeewwwwssss,  typically
  190. _n_e_w_s).   You  will  probably want to get your initial aaaaccccttttiiiivvvveeee file
  191. from your upstream feed and edit it to suit the set of groups you
  192. wish to receive.  Be sure to make the second field more than five
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.                               - 4 -
  202.  
  203.  
  204.  
  205. digits wide, by adding leading zeroes (ten digits is a  conserva-
  206. tive  width).   NEWSCTL////ssssyyyyssss defines the newsgroups that this site
  207. is willing to accept and describes how they are to  be  forwarded
  208. to  its neighbours.  NEWSCTL////sssseeeerrrrvvvveeeerrrr contains the hostname of your
  209. file server, if you have multiple machines  sharing  news  via  a
  210. network  file system.  NEWSCTL////wwwwhhhhooooaaaammmmiiii similarly contains the name
  211. by which a cluster of machines sharing news is to  be  known  for
  212. purposes  of news.  NEWSCTL////mmmmaaaaiiiillllnnnnaaaammmmeeee is optional and contains the
  213. full (possibly dotted) name by which your cluster  is  known  for
  214. purposes  of mail.  NEWSCTL////oooorrrrggggaaaannnniiiissssaaaattttiiiioooonnnn (or NEWSCTL////oooorrrrggggaaaannnniiiizzzzaaaattttiiiioooonnnn
  215. if you insist) contains the name of your organisation, which will
  216. be  copied  into  the  OOOOrrrrggggaaaannnniiiizzzzaaaattttiiiioooonnnn::::   header  of articles posted
  217. locally, by default.  NEWSCTL////mmmmaaaaiiiillllppppaaaatttthhhhssss defines  mail  routes  to
  218. machines  which  contain  aliases for postings to moderated news-
  219. groups.     NEWSCTL////lllloooogggg,     NEWSCTL////eeeerrrrrrrrlllloooogggg,     NEWSCTL////hhhhiiiissssttttoooorrrryyyy,
  220. NEWSCTL////hhhhiiiissssttttoooorrrryyyy....ddddiiiirrrr,  and  NEWSCTL////hhhhiiiissssttttoooorrrryyyy....ppppaaaagggg  must exist and be
  221. owned by the NEWS userid.  Tentative versions of all these  files
  222. are  built by the installation procedures, but it is quite likely
  223. that you'll have to edit some of them.
  224.  
  225. CCCC NNNNeeeewwwwssss IIIInnnnssssttttaaaallllllllaaaattttiiiioooonnnn
  226.  
  227.      Proceed to the ccccoooonnnnffff directory of the distribution.  There is
  228. a  major  shell file here, named bbbbuuuuiiiilllldddd, that will interrogate you
  229. at length and construct shell files to do the real work.  You may
  230. need  to do ``chmod +x build'' before running it, to make it exe-
  231. cutable.
  232.  
  233.      You will probably need your  system's  manuals  on  hand  to
  234. answer  bbbbuuuuiiiilllldddd's  questions.  Another terminal (or another window,
  235. on a bitmap  display)  would  also  be  useful.   You'd  best  be
  236. prepared  to take notes, also, as bbbbuuuuiiiilllldddd will occasionally suggest
  237. that something be checked when you're done.
  238.  
  239.      BBBBuuuuiiiilllldddd itself does not alter any files or perform any instal-
  240. lation  chores:   all  it  does is create shell files in the ccccoooonnnnffff
  241. directory.  If you already know something about news software, or
  242. are  merely  suspicious  that bbbbuuuuiiiilllldddd hasn't done everything right,
  243. you should probably read the shell  files  before  running  them.
  244. There  are  four  of  them:   ddddooooiiiitttt....rrrrooooooootttt, ddddooooiiiitttt....bbbbiiiinnnn, ddddooooiiiitttt....nnnneeeewwwwssss, and
  245. aaaaggggaaaaiiiinnnn....rrrrooooooootttt.
  246.  
  247.      DDDDooooiiiitttt....rrrrooooooootttt sets up the major directories for news,  and  sets
  248. their  ownerships correctly.  It typically will have to be run as
  249. _r_o_o_t to have adequate permissions for all of this.  It is brief.
  250.  
  251.      DDDDooooiiiitttt....bbbbiiiinnnn does most of the work of  building  and  installing
  252. the  programs.  It should be run as the user who owns the distri-
  253. bution directories and will own  the  executable  programs  under
  254. NEWSBIN.
  255.  
  256.      DDDDooooiiiitttt....nnnneeeewwwwssss does some other small chores and installs  control
  257. files.   If  any of the control files already exist, it will com-
  258. plain and refuse to overwrite them, as a safety  precaution.   It
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.                               - 5 -
  268.  
  269.  
  270.  
  271. should  be run as the owner of the news files.  Since many of the
  272. files it is installing are built by ddddooooiiiitttt....bbbbiiiinnnn, that should be  run
  273. first.
  274.  
  275.      Finally,  aaaaggggaaaaiiiinnnn....rrrrooooooootttt  tends  to  ownership  and   permission
  276. changes  on  a  few  programs  that  need  to run set-userid.  It
  277. requires the ability to change ownerships and to set  permissions
  278. on  the files afterwards, which usually means running it as _r_o_o_t.
  279. It too is brief.
  280.  
  281.      There are undoubtedly strange systems out there  that  bbbbuuuuiiiilllldddd
  282. and  friends are not smart enough to cope with.  In such cases it
  283. will be necessary to edit the shell files before running them, or
  284. to  use  them  as guides and do the work by hand.  In particular,
  285. systems that require strange options in MMMMaaaakkkkeeeeffffiiiilllleeees  will  need  to
  286. have those inserted by hand.
  287.  
  288.      If you want to test pieces  of  C  News  without  installing
  289. them,  some (not all) of the subsystems have a ``make r'' feature
  290. that runs a regression test.  Note:  almost all of these  require
  291. that  NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffiiiigggg,  or  its  local equivalent, be in place
  292. already so that shell files can find out what  PATH  (etc.)  they
  293. should be using.
  294.  
  295.      Note that it is easy to build a test news  system  which  is
  296. completely independent of other existing news systems on the same
  297. machine, or to build one which shares its NEWSBIN with another  C
  298. news  system,  or shares input of articles (e.g. running an old B
  299. news system and a new C news system off the same stream of  input
  300. until  you are confident that your new C news system is operating
  301. to your satisfaction).  See _s_u_b_s_t(1) for the mechanism which per-
  302. mits  quickly  changing  all the places that know the location of
  303. NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffiiiigggg....   After  that,  edit   this   news   system's
  304. NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffiiiigggg  and  things  should  be  set  up for separate
  305. existence.
  306.  
  307. FFFFiiiirrrrsssstttt NNNNeeeewwwwssss
  308.  
  309.      When you arrange to get a news feed from your neighbor,  you
  310. should  also  ask  him to send you the current set of articles in
  311. the newsgroup nnnneeeewwwwssss....aaaannnnnnnnoooouuuunnnncccceeee....nnnneeeewwwwuuuusssseeeerrrrssss.  Several of these are  very
  312. important reading for people who are new to the net.
  313.  
  314. UUUUnnnnuuuussssuuuuaaaallll SSSSyyyysssstttteeeemmmmssss
  315.  
  316.      We believe that C News runs fine on 16-bit machines, but  it
  317. hasn't  been  tested very thoroughly on them lately.  It will not
  318. perform quite as well with the more limited space.
  319.  
  320.      Machines with very old compilers can be a  headache.   There
  321. are  some  hooks  in  hhhh////nnnneeeewwwwssss....hhhh  for  doing  without  ``void'' and
  322. ``unsigned long'', two particular problem areas, but they have to
  323. be arranged manually; bbbbuuuuiiiilllldddd does not know about them.
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.                               - 6 -
  334.  
  335.  
  336.  
  337.      Some very old systems  cannot  do  _s_e_t_u_i_d(_g_e_t_e_u_i_d()),  which
  338. makes  it impossible for a daemon to make directories and get the
  339. ownership right.  We provide a small program, sssseeeettttnnnneeeewwwwssssiiiiddddssss, to  run
  340. setuid-root.    RRRReeeellllaaaayyyynnnneeeewwwwssss  knows  about  it  and  invokes  it  if
  341. _s_e_t_u_i_d(_g_e_t_e_u_i_d()) fails; it then sets permissions  correctly  and
  342. re-invokes  rrrreeeellllaaaayyyynnnneeeewwwwssss.   The  code is short enough to be read and
  343. understood in full, so that the suspicious  system  administrator
  344. can  be  sure  that  this  setuid-root program is not going to do
  345. something awful.
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.