Subject: Linux News HOWTO
From: [email-masked] (Vince Skahan)
Date: Mon, 25 Apr 1994 19:53:23 GMT
Newsgroups: comp.os.linux.announce,comp.os.linux.admin,comp.answers,news.answers

Archive-name: linux/howto/news
Last-modified: 19 Apr 94

  The Linux News HOWTO
  Vince Skahan, <[email-masked]>
  v1.7, Last modified 26 March 1994

  This  document  describes  the  setup  and care+feeding of USENET News
  under Linux.  You need to read this if you plan to post or read USENET
  news either locally on your site or between your site and other sites.
  You probably do *not* need to read this document if don't plan to pro-
  vide USENET news as a feature of your system.

  1.  Introduction

  The  intent  of  this  document is to answer some of the questions and
  comments that appear to  meet  the  definition  of  "frequently  asked
  questions"  about USENET News software under Linux in general, and the
  version in the Linux SLS distribution in particular.

  This document and the corresponding Mail and  UUCP  "HOWTO"  documents
  collectively supersede the UUCP-NEWS-MAIL-FAQ that has previously been
  posted to comp.os.linux.announce.

  1.1.  New versions of this document

  New  versions  of  this  document  will  be  periodically  posted   to
  comp.os.linux.announce,  comp.answers,  and  news.answers.   They will
  also be added to the various anonymous  ftp  sites  who  archive  such
  information including sunsite.unc.edu:/pub/Linux/docs/HOWTO.

  1.2.  Feedback

  I  am  interested in any feedback, positive or negative, regarding the
  content of this document via e-mail.  Definitely  contact  me  if  you
  find errors or obvious omissions.

  I  read,  but  do  not  necessarily  respond to, all e-mail I receive.
  Requests for enhancements will be considered and acted upon  based  on
  that  day's  combination  of available time, merit of the request, and
  daily blood pressure :-)

  Flames will quietly go to /dev/null so don't bother.

  Feedback concerning the actual format of the document should go to the
  HOWTO coordinator - Matt Welsh ([email-masked]).

  1.3.  Copyright Information

  The News-HOWTO is copyrighted (c)1994 Vince Skahan.

  A  verbatim  copy  may  be  reproduced  or  distributed  in any medium
  physical or electronic without permission of the author.  Translations
  are  similarly  permitted  without express permission if it includes a
  notice on who translated it.

  Short quotes  may  be  used  without  prior  consent  by  the  author.
  Derivative  work  and  partial distributions of the News-HOWTO must be
  accompanied with either a verbatim copy of this file or a  pointer  to
  the verbatim copy.

  Commercial  redistribution  is  allowed  and  encouraged; however, the
  author would like to be notified of any such distributions.

  In short, we wish to promote dissemination of this information through
  as  many channels as possible. However, we do wish to retain copyright
  on the HOWTO documents, and would like to be notified of any plans  to
  redistribute the HOWTOs.

  We  further  want  that  ALL  information  provided  in  the HOWTOS is
  disseminated.  If you have questions, please contact Matt  Welsh,  the
  Linux HOWTO coordinator, at [email-masked], or +1 607 256 7372.

  1.4.  Standard Disclaimer

  Of  course, I disavow any potential liability for the contents of this
  document.  Use of the concepts, examples, and/or other content of this
  document is entirely at your own risk.

  1.5.  Other sources of information

  1.5.1.  USENET

     news.admin.misc         General topics of network news administration.
     news.admin.policy       Policy issues of USENET.
     news.admin.technical    Maintaining network news. (Moderated)
     news.software.b         Discussion about B-news-compatible software.
     news.software.nn        Discussion about the "nn" news reader package.
     news.software.nntp      The Network News Transfer Protocol.
     news.software.readers   Software used to read network news.
     news.sysadmin           Comments directed to system administrators.
     news.announce.newusers  Explanatory postings for new users. (Moderated)
     news.newusers.questions Q & A for users new to the Usenet.

  1.5.2.  Books

  The following is a non-inclusive set of books that will help

  o  "Managing  UUCP  and USENET" published by O'Reilly+Associates is in
     my opinion the best book out there for figuring  out  the  programs
     and protocols involved in being a USENET site.

  o  "Unix  Communications" published by The Waite Group contains a nice
     description of all the pieces (and more) and how they fit together.

  o  "Practical  Unix  Security"  published by O'Reilly+Associates has a
     nice discussion of how to secure UUCP in general.

  o  "The Internet Complete Reference" from Osborne is a fine  reference
     book  that  explains the various services available on Internet and
     is a great "one-stop-shopping"  source  for  information  on  news,
     mail, and various other Internet resources.

  1.6.  Where NOT to look for help

  There  is  nothing "special" about configuring and running USENET news
  under Linux (any more).  Accordingly, you almost  certainly  do  *NOT*
  want   to   be   posting   generic   news-related   questions  to  the
  comp.os.linux.* newsgroups.

  Unless your posting is truly Linux-specific (ie, "please tell me  what
  patches  are  needed  to  run INN with the bash1.12 in SLS v1.03") you
  should be asking your questions in the newsgroups mentioned above.

  Let me repeat that.

  There is virtually no reason to  post  anything  news-related  in  the
  comp.os.linux  hierarchy  any  more.  There are existing newsgroups in
  the news.*  hierarchy to handle *ALL* your questions.

  IF YOU POST TO COMP.OS.LINUX.* FOR NON-LINUX-SPECIFIC  QUESTIONS,  YOU
  ARE LOOKING IN THE WRONG PLACE FOR HELP.  THE USENET NEWS EXPERTS HANG
  OUT IN THE PLACES INDICATED ABOVE AND GENERALLY DO NOT RUN LINUX.

  POSTING TO THE LINUX HIERARCHY FOR NON-LINUX-SPECIFIC QUESTIONS WASTES
  YOUR  TIME  AND  EVERYONE  ELSE'S  AND  IT  FREQUENTLY DELAYS YOU FROM
  GETTING THE ANSWER TO YOUR QUESTION.

  2.  Hardware Requirements

  There are no specific hardware  requirements  for  USENET  News  under
  Linux.   The  only requirement of any type is sufficient disk space to
  hold the software itself, the threads database(s), and the  amount  of
  news  you wish to keep on the system.  Figure on a minimum of 10 MB of
  disk space for starters.

  3.  Getting USENET News software

  All the software referenced in this "HOWTO" is available on the  usual
  Internet anonymous ftp sites.

  Looking in /news on ftp.uu.net is usually a good way to start.

  The  newspak-2.1.tar.z  distribution  contains config files and readme
  files related to building uucp, news, and mail  software  under  Linux
  from the various freely-available sources.  It can usually be found on
  sunsite.unc.edu in the directory /pub/Linux/system/Mail.

  4.  News Transport Software

  There are two main sets of news "transport" software  for  *nix  these
  days,  Cnews  and  INN.   The old "Bnews" has been declared officially
  dead and unsupported by its authors.

  News "transport" is defined here to be the software that works  behind
  the  scenes  to post and propagate the news articles as well as making
  the articles available for the newsreaders to access.

  You can set your paths to anything you like, as long as UUCP  has  the
  absolute path to rnews in the Permissions file and as long as you have
  your newsreaders configured so that they can find "inews" and  "mail".

  Important - you're asking for trouble if you try to intermix Cnews and
  INN.  Pick one or the other.  It's  ok  to  add  the  NNTP  "Reference
  Release" into Cnews since they're intended to play well together.

  4.1.  Cnews Performance Release

  The  current  de-facto  standard  news software is Cnews.  It has been
  around for a number of years, I first saw it sometime around 1988.

  Cnews's main benefit is its maturity.  It runs on about every *nix you
  can  find  and  there  are  literally  thousands of systems running it
  worldwide.
  Its main disadvantage is that it seems to have been intended for uucp-
  over-modem connections between sites and as such requires the addition
  of NNTP software to handle realtime Internet feeds and reading.

  In addition, it requires external threading packages for  the  various
  newsreaders,  although  the  NOV  package can now be hooked in to help
  somewhat and it's rumored to have native NOV support in  the  upcoming
  "cleanup" release.

  Regardless, the beginning USENET admin should probably run Cnews first
  since it's so stable, well  documented,  and  has  many  thousands  of
  experienced administrators who can answer questions.

  The  newspak-2.1.tar.z distribution on sunsite contains working config
  files for Cnews under Linux as well as a couple line patch you'll need
  to  make  to  "doexplode"  to  get around some problems with bash1.12.
  bash1.13 is now available on the  various  Linux  archive  sites  that
  should help.

  4.1.1.  Installing Cnews

  Installing  the  Performance  Release  of Cnews is absolutely a "rtfm"
  project.   Just  grab  the  sources,  extract  them,  and  follow  the
  instructions.

  The  build.def  in  newspak was generated by running "build" the first
  time  and  simply  looking  up  the  answers  by  checking   out   the
  /usr/include files to get the right answers.

  When  you  start  the  actual  compilation,  it'll blow up a couple of
  times.  In all cases, you'll need to simply comment out  a  couple  of
  atoi()  and  atol()  macros  that  gcc doesn't like when your doit.bin
  compilation blows up.

  Also, you need the following tiny change to doexplode  to  get  around
  some bash1.12 bugs or else you won't feed anything downstream

          (from Steve Robbins -  [email-masked] )

          if [ ! -f $f ] ; then continue; fi              # add this line
          #       case "$f" in                            # comment me out
          #       "out.master/[0-9]*")    break ;;        # comment me out
          #       esac                                    # comment me out

  Henry  Spencer  of  Cnews fame says that the code in doexplode that is
  currently causing problems with bash is on the list to be revised in a
  future release.

  It  is  uncertain at this time if the need for this patch goes away if
  you switch to the bash1.13 now available for Linux.  I switched to the
  new  bash  and libs and left the patch in place and nothing broke (for
  what that's worth :-)

  4.1.2.  Configuring Cnews

  At the very least, you need to  edit  the  following  files  that  all
  should be in /usr/local/lib/news:

  active             - the active file
  batchparms         - batch parameters
  explist            - article expiration setup
  mailname           - name in headers for mailed replies
  mailpaths          - path to mail moderated postings to
  organization       - your "org"
  sys                - control what you take and feed
  whoami             - your hostname for the Path: line

  4.1.3.  Maintaining a Cnews Site

  First,  a  significant rule of thumb is to not mess with files by hand
  that have utilities that configure them. In particular  don't  set  up
  newsfeeds (run "addfeed" instead) and don't mess with your active file
  (run "addgroup").  When in doubt, read and re-read  the  docs  in  the
  source distribution.

  Everything  else  can  be  done via cron.  My crontab for "news" looks
  like the following:

          # take the compressed batches that came in from other systems
          20 *       * * * /usenet/sw/news/bin/input/newsrun

          # batch 'em up to go out
          0 *        * * * /usenet/sw/news/bin/batch/sendbatches myfeedsite

          # expire C-news
          59 0       * * * /usenet/sw/news/bin/expire/doexpire

          # monitor stuff and report if needed
          10 5       * * * /usenet/sw/news/bin/newsdaily
          00 5       * * * /usenet/sw/new/bin/newswatch

          # turn processing of incoming news batches off 6:30AM - 4:00 PM
          30 6       * * * /usenet/sw/news/bin/input/newsrunning off
          00 16      * * * /usenet/sw/news/bin/input/newsrunning on

  4.2.  InterNetNews (INN)

  INN is the newcomer on the scene, but it's gaining  popularity  as  it
  matures.   Its  main benefit is speed and the fact that it contains an
  integrated nntp package.  Its main drawback is that it's new and  that
  it  doesn't  necessarily  install  and  run  flawlessly  on  the  many
  "standard *nixes" yet.  In addition, it operates by  having  a  daemon
  (the  innd)  always  running  plus potentially a overchan daemon to do
  threading.  The tradeoff seems to be memory vs. speed.

  New USENET  admins  should  probably  not  try  INN  until  they  have
  experience  with either B-news or Cnews.  While it's fast and reliable
  under Linux,  it's  virtually  undocumented  for  the  beginning  news
  administrator  (though  in practice it's rather simple to run once you
  figure it out).

  INN is very particular about its permissions.  Don't mess with them.

  INN is also very particular about having a "quality"  TCP/IP  to  work
  with.   Linux is not necessarily all the way there at this time, so it
  is recommended that you grab a Linux-specific  INN  distribution  from
  one of the usual Linux archive sites.
  4.2.1.  Installing INN

  ( from Arjan de Vet - [email-masked] )

  I've  made a patch + config kit for INN 1.4 to get it to run on Linux.
  It can be found at:

  ftp.win.tue.nl:/pub/linux/ports/inn-1.4-linux.tar.gz

  INN depends heavily on a good /bin/sh substitute. I use a beta version
  of  bash  1.13  that  is now available for Linux on the normal archive
  sites.  bash 1.12 gives some small problems with newgroups  not  being
  handled correctly (maybe some other problems too, I don't remember).

  4.2.2.  Configuring INN

  Basically  follow  Arjan's instructions and you'll be all set.  Here's
  the summary of what to do:

  o  In config.data, make sure you have "HAVE_UNIX_DOMAIN DONT"

  o  Add the hostname of the system running innd  to  hosts.nntp  For  a
     uucp-only site, that's your sitename.

  o  Make sure you do not have a line for nntp in /etc/inetd.conf

  o  Make  sure  that  you have innshellvars say "HAVE_UUSTAT DO" rather
     than the "DONT" in his example config.data if you have uustat  from
     the Taylor UUCP package installed.  If you have this defined wrong,
     it'll result in no outgoing news getting batched.

  o  If you run INN, definitely define  the  recommended  syslogd  stuff
     because it is very, very helpful.

     There  is  a spectacular (!!!!) FAQ for INN that comes out monthly.
     Look on rtfm.mit.edu for it.  You'll be glad you did.

  4.2.3.  Maintaining a INN Site

  I've found that there's essentially zero care-and-feeding of  a  Linux
  INN  site  other  than  having a working "cron".  Basically you want a
  crontab that looks something like the following:

          # daily maint, also expire the .overview database and articles
          1 0 * * * /usenet/sw/inn/bin/news.daily expireover delayrm < /dev/null

          # send 'em out
          5 * * * * /usenet/sw/inn/lib/send-uucp

  ( if you switch to bash1.13, the "< /dev/null" above is not needed )

  4.3.  Other News Transport Agents

  The following is a non-inclusive list of other news transport software
  known to work under Linux:

  dynafeed, nntp1.5.11, slurp1.05

  5.  News Readers

  There  is no "one true newsreader".  As a result, there are many well-
  known newsreaders that port easily to Linux in  particular.   At  this
  writing,  "tin", "trn", and "nn" are in most of the commonly available
  distributions of Linux and in.

  When picking a newsreader, you basically want to find  something  that
  is easy to use, very configurable by the user, with threading and kill
  files (to select interesting articles or make the non-interesting ones
  not appear at all).

  You  can  set  your  paths  to  anything  you  like as long as all the
  newsreaders can find "inews" from your Cnews or INN installation and a
  "mail" program to send mail replies to posts.

  This section will talk briefly about several of the most popular ones.
  Before you ask, I use "nn" for lots of reasons :-)

  5.1.  Tin

  Tin is a threaded newsreader generally intended to  be  easy  for  new
  users.   It  supports kill files and NOV threading.  If you're running
  INN, it will read NOV .overview files by default and not  write  index
  files.

  To  compile  Tin  under linux, basically just edit the makefile to set
  the locations of the software (especially the location of  inews)  and
  type "make linux".  There are no patches required for tin under Linux.

  For threading, you can basically just say "tin -u" to update the index
  files.

  To  enable  the  ability  to  read  via NNTP, compile with "NNTP_ABLE"
  defined.  This will result in a file called "tin" for  local  and  one
  called  "rtin"  for  NNTP  reading.   "tin  -r" will also get the same
  behavior as "rtin".

  Iain Lea recommends the following crontab entry and says that you need
  to do a "make daemon" to make tind.

          # thread the database
          35 * * * * /usenet/bin/tind -u

  5.2.  Trn/Mthreads

  trn  is  a threaded derivative of the "rn" newsreader.  trn3.3 has the
  nice ability to select either the "mthreads" (trn's threading package)
  or NOV (threader from INN) threading.

  To  compile  it,  just run Configure and take the calculated defaults.
  You might need to have lib4.4.1 and bash-1.13 (there  is  a  beta  now
  available  on  the  various  Linux  archive sites) to successfully run
  Configure.  You'll probably need both bash1.13 and  libs4.4.1  to  get
  the new Configure to run properly.

  The  newspak-2.1.tar.z distribution on sunsite contains working config
  files for trn under Linux.

  It's probably unwise to try to edit a trn  config.sh  by  hand  unless
  you're  doing  something  *VERY* simple like changing the paths to fit
  your tastes.  If you do so, you'll need to run "Configure  -S"  before
  you "make depend", "make", and "make install".

  Although  "Configure"  fails  generally  under  Linux  with  bash1.12,
  "Configure -S" work fine so if you take the  newspak  config.sh  as  a
  starting point, you'll be very close.

  Compiling  for  NNTP  reading  is  as  simple  as answering "yes" when
  Configure asks you if you want to do so (assuming Configure runs ok on
  your  system).   A  future release of newspak will include a config.sh
  for NNTP reading as well as the existing one  for  local  reading  for
  those of us who are still "bash-impaired" :-)

  There  are dozens of command line switches for trn to get all kinds of
  behavior.  Read the "trn" man page for details.  I use a nice  feature
  to set all the switches easily:

  o  add all the settings in a file called  /.trnrc

  o  export TRNINIT=" /.trnrc"

  A future newspak will have my .trnrc file as an example.

  trn3.2  and  above  has  support  for NOV or mthreads threading that's
  user-selectable.  Accordingly, I recommend building  the  software  to
  allow  both  threading  mechanisms (it's a question in Configure).  To
  pick one at runtime, try "trn -Zo" for NOV and "trn -Zt" for mthreads.

  To build the mthreads database, do something like the following in the
  "news" crontab:

          # thread the trn database
          35 * * * * /usenet/bin/mthreads all

  5.3.  NN

  The newspak-2.1.tar.z distribution on sunsite contains working  config
  files  for nn6.4.18 that you can drop into place and type "make" under
  Linux. They also work with the 6.5b2 beta of the coming nn6.5  update.

  When you're done compiling, you need to do the following:

  o  - run the "inst" program to install things.  (install everything)

  o  - initialize the database

  o  - fire up nnmaster

  See  the  nn docs for details.  Compiling, configuring, and running nn
  under Linux is no different than running nn on any other *nix with the
  exception  that  you  probably  want  to  run nnmaster as a cron entry
  rather than as a daemon.  If you run it as a daemon  under  linux,  it
  doesn't  tend  to  wake up properly (the net effect of running it from
  cron is the same anyway).

  Support of "nn" is as simple as the following crontab entries:

          # run nnmaster to collect "nn" stuff
          25 * * * * /usenet/sw/nn/lib/nnmaster

          # expire the nn database
          0  4       * * * /usenet/sw/nn/bin/nnadmin =EYW

          # stash a copy of the active file for "nngoback" and keep last 7
          0 3 * * * /usenet/sw/nn/lib/back_act 7

  5.4.  Other newsreaders

  The following is a non-inclusive list of newsreaders said  to  install
  and run under Linux:

  tass, xrn, gnus

  6.  Acknowledgements

  The  following  people  have helped in the assembly of the information
  (and experience) that helped make this document possible:

  Ed Carp, Steve Robbins, Ian Taylor, Greg Naber, Matt Welsh, Iain  Lea,
  Arjan de Vet

  If I forgot anybody, my apologies

  7.  Frequently Asked Questions about USENET (in c.o.l.* anyway)

  7.1.  Why can't I post to moderated groups ?

  Probably because the newsreader is trying to call  /bin/mail  to  send
  the  mail  and  it doesn't like it.  Replace the /bin/mail in SLS with
  the port of mailx-5.3b.tar.z from  the  pub/Linux/system/Mail  dir  on
  sunsite.unc.edu  and make it mode 2755 and group mail (like "elm") and
  you'll be all set.

  Another possibility is that you have a moderated newsgroup set  up  on
  your  local  system  as not-moderated and somebody upstream is quietly
  deleting the article (some system's software,  not  a  person).   Make
  sure  you  run a "checkgroups" every now and then when the checkgroups
  article rolls by in news.admin every few weeks.

  7.2.  Why do I have problems that appear to be permission-related ?

  Check  to  see  that  your  permissions  are right and that you have a
  "news" username and group in /etc/passwd and /etc/group  that  matches
  the binary distribution you grabbed.  It seems that there is not yet a
  Linux-standard for commonly available accounts.

  All the  stuff  in  /usr/local/lib/news  should  be  news.news  except
  /usr/local/lib/news/setnewsids which should be setuid root.

  You can use whatever UID and GID you want for "news".

  7.3.   Why  can  I post articles locally, but they don't get fed down-
  stream ?

  Probably because you didn't call newsrun from cron.  Maybe because you
  edited your sys file and messed it up.  Maybe because you don't have a
  /usr/spool/news/out.going tree or something.

  Do  not create newsgroups or feeds by editing the active or sys files.
  Use the utilities in /usr/local/lib/news/bin/maint to do it.

  7.4.   Why  doesn't  my  binary  distribution  have  the  "Performance
  Release" of C-news?

  Because it's optional.  Because it has problems under  Linux  in  some
  places.   Because the Pre-Performance Release Cnews is more stable and
  plenty fast enough on any type of reasonable  system  (IMHO).  If  you
  need  any  more  convincing,  here's  a  few  excerpts from the C-news
  README.new file:

  "This is the 20 Feb 1993 Performance Release of C News, a minor update
  to  the 2 May 1992 P.R. that just fixes some installation problems and
  a couple of annoying bugs"

  "This release is more or less  a  halfway  step  to  what  we've  been
  calling the "cleanup release""

  "People who are happy with the older C News might want to wait for the
  cleanup release, which is still coming although behind schedule"

  Mainly because at the time SLS1.01 came out, the  compilers  and  libs
  didn't  like the Performance Release too much.  Things are better now.

  7.5.  Why doesn't my binary distribution have nntp ?

  Because it's supposed to be plug-n-play  under  Linux  and  because  I
  didn't  want to make SLS's news stuff doubly big by having to maintain
  both nntp and non-nntp versions of the newsreaders and news  transport
  programs.   Also  because it compiles in localized information that is
  not overridable at runtime via a config file.

  7.6.  Why does doexpire (or relaynews or) say "severe space  shortage"
  when there's lots of room ?

  Because it can't read /etc/mtab.  Make it mode 644.  This happens when
  you  unmount  a  mounted  filesystem by root with a umask that doesn't
  permit world-read of files owned by root.

  7.7.  Why does everything look normal, but posting doesn't happen ?

  Older  versions  of  Linux had a "broken" sed that C-news was prone to
  blow up.  In particular, if you've installed over an old SLS, be  sure
  to check /bin and /usr/bin to be certain you have only one copy of sed
  and that it's a modern one.

  7.8.  the various independent thread databases ?  Can I hook  the  new
  news overview (NOV) stuff into trn/tin/nn to replace

  Yes.  trn3.3 supports it now.  The next version of tin will.

  You can hook it into the Performance  Release  of  Cnews  and  various
  other readers as well
  The  beta  copy of nn6.5 I have here has NOV support and it works just
  dandy under Linux.  I run it here and have nn running  without  having
  to run nnmaster (!).  Look on uniwa.uwa.edu for a copy of it.

  7.9.  Why can't we have a binary distribution of NNTP ?

  Because  significant  local-only information is compiled-in and cannot
  be determined auto-magically at runtime.

  7.10.  storing any news articles or databases locally.  How do  I  set
  up NNTP to allow read/post across the network while *not*

  ( [email-masked] (Matt Welsh) )

  o  1) Grab the "reference implementation" of nntp and  a  copy  or  rn
     from  your  local archive site.  If you connect to ftp.uu.net you'd
     grab:

     nntp.1.5.11.tar.Z from ftp.uu.net:/news/nntp rn-4.4.pl3.tar.Z  from
     ftp.uu.net:/news/rn

  o  2) compile nntp as follows:

     copy  common/conf.h.dist  to  common/conf.h.  Edit common/conf.h to
     set certain options: The only ones I set were:

     DOMAIN: undefine it  (i.e.  change  the  line  to  #undef  DOMAIN).
     REALDOMAIN:   Define  this.  It  looks  up  the  domain  using  the
     libraries.

     SERVER_FILE: Set this to the name of the file  which  will  contain
     the  hostname  of the news server (i.e. the machine you'll read and
     post news through). I use "/usr/local/lib/news/server".

     PASSFILE: If your news server requires  authorization  (i.e.   some
     kind  of  username/password)  to  post, set this to the name of the
     file which contains the username and password (described below).  I
     use "/usr/local/lib/news/nntppass".

     I   decided   to   keep   all   of   the   other   news   stuff  in
     /usr/local/lib/news.  So I set all of the rest of the pathnames  in
     the   file   (i.e.   ACTIVE_FILE,  NEWSGROUPS_FILE,  etc.)  to  use
     /usr/local/lib/news.  Many of these files are only used by the NNTP
     server,  not the client, but to be safe I changed them all to point
     to  the  right  directory.  You  can  of  course  use  the  default
     pathnames; just make sure you create the directory accordingly.

     3)  Create  the  user  "usenet"  if  you haven't already. The inews
     program runs as this user. All you need is a userid; you don't need
     a  home  directory or shell or anything for the user. Just plop the
     following line into your /etc/passwd:

     usenet:*:13:1::/:

     Make sure you set the userid ("13", above) to something unique. The
     group can be anything; I use "daemon" (gid 1).

  o  4)  Create  the  SERVER_FILE, above. For example, my news server is
     "wonton.tc.cornell.edu",     so     I     created     the      file
     /usr/local/lib/news/server     which     contained     one    line:
     wonton.tc.cornell.edu

  o  5) Create the PASSFILE. This file contains lines of the form

                     <server name> <username> <password>

  Let's say that your news server (the one  in  SERVER_FILE,  above)  is
  "shoop.vpizza.com",  and to post on that machine you need to be autho-
  rized as the user "news" with a password  of  "floof".  Thus,  in  the
  PASSFILE  (I  use  /usr/local/lib/news/nntppass),  you  need  the line
  shoop.vpizza.com news floof

  o  6) Make this file secure!  The  inews  program  runs  as  the  user
     "usenet",  so  make  this news directory owned by that user and the
     nntppass file as well.

             chown usenet /usr/local/lib/news
             chmod 755 /usr/local/lib/news
             chown usenet /usr/local/lib/news/nntppass
             chmod 600 /usr/local/lib/news/nntppass

  So nobody else can read this file. No, the passwords  in  it  are  not
  encrypted.

  o  7)  Go  back  to  the  nntp.1.5.11  source  directory;  issue "make
     client".  At this point you'll build the  NNTP  version  of  inews,
     which is the only software used by the NNTP client.

     When I built inews, there was a bug in the library which caused the
     function uname() in uname.c to call itself eternally.  This  should
     be gone now; however, if inews seems to hang and your system starts
     slowing down *a lot* you should rename the  function  "uname()"  in
     uname.c  to something like "my_uname()", and change the calls to it
     (in inews.c) to call my_uname() instead. Mail me if  you  run  into
     this problem.  (VDS note - this means mail to Matt-not me :-) )

  o  8)  Issue "make install_client". This will install the inews stuff.
     Also link /usr/local/lib/news/inews to /usr/local/bin/inews

     Now you should be able to happily post  (by  hand).  Try  something
     like the following:

                     $ inews -h << EOF
                     Newsgroups: misc.test
                     From: [email-masked]
                     Subject: Testing
                     Reply-To: [email-masked]

                     This is a test.
                     EOF

  If  this  works,  inews  should  post the article. You'll know because
  test-responders on misc.test will reply to the address on the Reply-To
  line, above. Please don't do test postings on real groups, like c.o.l.
  :)

  7.11.  How do I build "rrn" as a nntp-based newsreader/poster ?

  ( [email-masked] (Matt Welsh) )

  o  1.  cd  to the rn source directory and do "./Configure". For almost
     all the questions, take the defaults (it's very smart).  Make  sure
     you    have   a   link   to   "cpp"   (usually   in   /usr/lib/gcc-
     lib/i386-linux/2.3.3) in /lib, so rn can find it.

     - Don't panic if it says you're on a NeXT or a USG system. Just  go
     with the flow
     - Answer "y" to "Do you expect to run these scripts and binaries on
     multiple machines?"

     - For your domain name: if  your  system  is,  say,  "foo.bar.com",
     answer with just "bar.com" (the domain, not the entire hostname).

     - Answer "usenet" for the name of the user which is the news admin.

     - For "Where is your news library?" use  the  directory  where  the
     above NNTP files are kept: I use /usr/local/lib/news.

     - Man page source is in /usr/man/man1.

     -  Answer  "y"  to  "Does  your /etc/passwd file keep full names in
     Berkeley/V7 format?"

     - Answer "gcc" to the name of the compiler which forces resolution.

     -  Answer  "y"  to  "Do  you  want  to build the NNTP version of rn
     (rrn)?"

     - For the name of the news server file: use the same name you  used
     when building inews, above (for me, /usr/local/lib/news/server).

     Don't run makedepend yet! Go to the next step:

  o  2)  Edit  config.h.  Change  the  "#define ROOTID " line to #define
     ROOTID 0 if it isn't already.

  o  3) In rrn-4.4.pl3, there is a small bug  with  SIGEMT:  it  doesn't
     exist  on  Linux.  rn  used  SIGEMT  to check if a process is still
     running; however, under  POSIX.1  we  can  instead  just  send  the
     process a signal 0.

     Edit  init.c. On line 243, note the following: if (kill(processnum,
     SIGEMT)) { Change this to if (kill(processnum, 0)) {

     You may wish to #ifdef it out instead; it's up to you.  Don't  just
     define  SIGEMT  to be zero; this will break the sigignore() call in
     final.c.

  o  4) Issue "makedepend > makedepend.out".

  o  5) Issue "make". Rn should compile happily.

  o  6) Issue "make install".

     You're all set. Keep in mind that rn does in  fact  eat  a  lot  of
     memory  (as  does any newsreader), handling the newsgroups file. So
     when you first run rn, it might be  a  little  slow  building  your
     .newsrc  and  checking  for new groups. If you're impatient, copy a
     .newsrc from somewhere else and use that.