                                                                                             &                       FNEWS Management                               <                                                             <                                                             <                                                                                            <  FNEWS: A fast efficient low management news reader for VMS.                               <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                             <                                                  EGLE Magic,<                                               P.O Box 27574,<                                                  Mt Roskill,<                                                    Auckland,<                                                 New Zealand,<                                          Phone +64-9636-7789<                              Email chrisp@emagic.marc.cri.nz                               &                       FNEWS Management                               < VMS Installation                                           3<   Main Steps                                               3<   FTP the files                                            3< Management Decisions                                       4<   Cached vs Uncached                                       4<   Local groups                                             4<   Disk quota (VMS)                                         4<   Linking other IP software                                4< Logicals                                                   5<   Local logicals                                           5<   Files                                                    6<   UNIX Logicals                                            6< Shell Scripts (UNIX)                                       6<   daily.sh                                                 6<   fnews_init.sh                                            7<   install.sh                                               7<   report.sh                                                7<   run_daily.sh                                             7<   setprot.sh                                               7<   spawn_init.sh                                            7<   tar.sh                                                   7< Command Files (VMS)}                                       7<   extract.com                                              7<   install.com                                              7<   newsjob.com                                              7<   isinque.com                                              8<   diskcheck.com                                            8< Management commands}                                       8<   update cached                                            8<   update one GROUPNAME                                     8<   update ifrecent                                          8<   update readlocal                                         8<   update findlocal                                         8<   update skimlocal                                         8<   update readcheck                                         9<   update groups                                            9<   update uncached                                          9<   update recentlist                                        9< Common problems                                            9<   It gives errors, but they dissappear to quickly          9<   NNTP, Sorry I can't talk to you                          9<   You can't post items                                    10<   Unread item count changes when entering a group         10<   A user cannot import an uncached group                  10<   You get user/operator messages about the index being old10<   FNEWS dies for a single user when they fire it up.      10<   FNEWS_INDEX dissappears                                 11<   Resubmitting an update after fixing some problem        11<   FNEWS uses in\% and you have mx\%                       11<   On UNIX the mail command rejects the -s switch          11< FNEWS Mailing List                                        11< Suport                                                    11 FNEWS 9 FNEWS is designed to be a fast easy to use, low overhead, 8 low maintenance news reader for VMS.  FNEWS is now fully
 supported by:   6      EGLE Magic, P.O. Box 27574, Mt Roskill, Auckland.        Phone +64-9636-7789,   )      Email: fnews-help@emagic.marc.cri.nz      VMS Installation  
 Main Steps6      FTP the 4 installation files appropriate for your system  *      @extract  Extracts the required files  9      @install       Asks all the questions and setups the  logicals  <      $ edit sys$manager:systartup_v5.com     Add the startup line (startup.tmp)  1      $ edit sys$sylogin:           Add the symbol  (login.tmp)   8      $ @fnews_top:fnews_init init       Start the system  6      (wait for batch job to finish, check NEWSJOB.LOG)  )      $ fnews        Try the system out!!!     
 FTP the files < First ftp the 3 installation files, be sure to get the right# set for your machine (VAX or ALPHA)  ftp to:        grunt.marc.cri.nz 
 then cd to0      pub/fnews/alpha          or   pub/fnews/vms        EXTRACT.COM    ascii       FNEWS.BCK_Z         binary       LZDCMP.EXE          binary     9 Then @extract.com, this will ask you where you want FNEWS : and which IP software you use.  If your IP software is not< in the supported list then just pick one of them and see the% section on linking other IP software.   ; The first time you install FNEWS you should run INSTALL.COM 8 to create FNEWS_LOCAL.COM which contains all the machine5 specific information (e.g. hostname, newsserver name,  etc...).     Management Decisions   Cached vs Uncached< If you tell FNEWS to cache all groups, then every night, for4 every group (all 1800 odd) it will upload the header: information for every item that is new, this will take 1-5" hours elapsed time (15-30 min cpu)  9 This loads your machine, and the news-server, but not too < heavily,  however if you have ten vaxes all doing this, then7 conceivably the news-server could become somewhat over-  loaded.   7 The alternative is to let FNEWS only cache groups which : people actually read, I recommend this unless all three of these are true: 4          Your news users are very important to you.<     Both your machine and the newsserver are lightly loaded	 at night. 9     Your news host is on a local network (i.e. ethernet)   < As a mid way step you can define FNEWS_CACHED to be a subset: of  ocally important groups, e.g. "vmsnet.*" or "sci.*" or8 "comp.*", but the normal caching is pretty good for most	 purposes.      Local groups: You can set groups to be local (lcl) by adding them to the< file news_localgrps: (local.grps on unix), just add the name< of the group and the number of days you want items retained.  : Dont do this for large numbers of groups (more than 150),8 fnews does not handle cross postings correctly for local$ groups so disk space will be wasted.  8 Local groups are only intended as a way of over-riding a9 short retention period set on your news-server, for a few < locally important groups. (Actually the local group stuff is not well tested, use at your
 own risk).     Disk quota (VMS)< If you can't disable disk quota checking on your 'news' disk; :-) then when users dynamically load a new group, they will : get a disk quota exceeded error, to avoid this you can use the procedure @createid.com   7 This will create a resource FNEWSDISK, which is granted + system wide to all users by FNEWS_INIT.COM.      Linking other IP software : Copy TCP_MULTI.C to a new name and modify it if necessary,7 then compile it and modify L.COM to link in your socket  library.   Then enter:       @l myipsoftware: And mail your l.com to me so I can add your ip software to. the supported list (chrisp@emagic.marc.cri.nz)     Logicals   Local logicals Logical Name     Description8 fnews_personal_  If defined this string is added to your: name             'FROM' header field. You should use it to3                  put your real name in, e.g. "Chris                   Pugmire".< fnews_queue      The batch queue which the nightly jobs will9                  be run in. This should be a queue with a ;                  cpulimit greater than 1 hour. (Although if 8                  dynamic caching is used 15mins would be                  enough). : fnews_user       The usercode which jobs will be submitted:                  under, this user will require CMKRNL priv;                  unless you remove the /user qualifier from 9                  the SUBMIT command in SUBMIT_NEWSJOB.COM 9                  and then submit it by logging on as that                   user.< fnews_nntphost   The name, or ip number, of the unix machine2                  which provides nntp news service.7 fnews_manager    The Email address of the person who is ;                  going to keep an eye on FNEWS to make sure (                  it is running properly.4 fnews_space      This is used to check that there is8                  sufficient disk space left on the FNEWS                  disk.: fnews_sendmode   Defining this as yes instructs the nntp9                  layer to send a MODE READER command to :                  your news server.  This is only needed if;                  your machine is also accepting a news feed <                  so the server needs to know if your machine9                  is reading or taking a feed over the                   nntp link. 7 fnews_timezone   Offset from your local time to GMT (in 9                  hours), e.g. New Zealand is 12:00  hours ;                  ahead of GMT, so we would put "-12" if you 9                  were 9:20 behind GMT you would put "9.3"                   (decimal): fnews_org        This is the name of your organization, it5                  will appear in posted messages, e.g. %                  "Paint Research, UK" 5 fnews_hostname   The mail reply address of your node. 9 fnews_active_li  The number of days a group should remain 9 fe               cached after it has been read by a user.   # fnews_wanted     See UPDATE GROUPS.   ; fnews_cached     This logical is a list of groups which you :                  want to cache, wild cards (*) and NOT (!)8                  are allowed in the list, wild cards can7                  only appear at the end of a name. e.g. ;                  sci.*,comp.os.*,alt.*,!alt.sex Would cache <                  all sci,comp and alt groups, except alt.sex: fnews_nospawn    If defined as TRUE prevents a user from5                  using the spawn and attach commands. : fnews_noprint    If defined as TRUE prevents a user from                   printing files.                      Files  Logical Name    Description 8 fnews_titles:   This file contains the name and title of                 all groups. 6 fnews_template  This is the default fnews.rc file that9 :               users will be given when they first start 7                 fnews.  You can put groups which are of ,                 local interest in this file.8 fnews_localgrp  Contains a list of groups and expiration6 s:              times (in days).  These groups will be                 stored locally. 7 fnews_index:    The master index file, contains groups, ;                 titles, from, to and nitems, this is not an                  ascii file. 7 fnews_record:   A record of who has read news, and what 8                 groups they have read, this is used, and.                 emptied each night to generate                 fnews_active: 7 fnews_active:   This contains a list of groups, and how 9                 many days they will remain cached if they 4                 are not accessed again.  If they are:                 accessed then the count will be increased.9 fnews_idx:      The directory where the group index files :                 are stored, e.g. the index for comp.os.vms3                 would be: fnews_idx:comp_os_vms.idx / fnews_profile:  The users news profile, usually "                 sys$login:fnews.rc; fnews_time:     This is where FNEWS stores the time when it 8                 completes an update without errors.  You:                 could fiddle this by hand if you wanted to;                 stop the users complaining that the indexes                  were old :-)8 fnews_lockfile  File used to 'lock' the index when it is :               being updated.2 fnews_debug     Use this logical to enable various:                 debugging messages,  define it  at the top:                 of newsjob.com to track down problems.   A:                 value of  5 is best for this. Or define it:                 interactively to find problems with tcp, 2-                 or 18 would be best for this. 9 fnews_top:acce  This file allows you to prevent groups of 9 ss.dat          users from accessing certain news groups. ;                 For example to stop students from accessing 7                 ALT.SEX... you would have the following ;                 entries.  This lets users system read any 9                 news group but stops all other users from 8                 reading alt.sex.*    This does not match4                 rights identifiers, only user names.!                      system     * '                      *       !alt.sex.*                      
 UNIX Logicals 7 On UNIX symbols are used instead, and defaults are read 0 directly from the file $FNEWS_ROOT/fnews_init.sh  8 See fnews.h for the exact names of files which might not match the VMS names.     Shell Scripts (UNIX)   daily.sh: This job is run from cron every day to update the indexes,' it takes one paramter: init,daily,quick     
 fnews_init.sh ; This script defines the symbols (like FNEWS_NNTPHOST) which 7 fnews needs,  it is also read directly by fnews, so you ; don't have to execute it in every users login script.  It's 7 format  must not be changed as it is not read by a real  shell interpreter.  
 install.sh: This is run by the make file to copy fnews into the system area, don't run it directly.  	 report.sh 8 This is run by daily.sh if an error occurs, it mails the3 tail end of the relevant log file to $FNEWS_MANAGER    run_daily.sh< This procedure runs daily.sh from the usercode 'news'. It is: needed for systems where cron only runs under the usercode8 root, I alyways use it because it's more likely to work.  
 setprot.sh: This is run by run_daily.sh, and by install.sh, to set the< ownership and protections correctly for all the FNEWS files.  
 spawn_init.sh < This procedure detaches daily.sh with the parameter init, to< initialize the fnews database, it is called by the Makefile.   tar.sh3 This is used to create the fnews distribution file.      Command Files (VMS)    extract.com ; This procedure extracts a new version of fnews and installs ; it in the current fnews directory, you run this first after  ftp'ing the installation files.      install.com 8 This procedure asks questions about your site, e.g. ip\-8 name, newshost\-name, etc, it then creates a file called9 fnews_local.com, which contains all the 'local' settings.   : This only needs to be done once, when you get new versions< of fnews these settings will probably still be sufficient so5 you would only need to run extract and not answer any 
 questions.   newsjob.com : This is the main update procedure which is run nightly and5 a couple of times during the day.  It is submitted by 9 submit_newsjob.com, and uses that procedure to re\-submit  itself for the next day.    It currently has three modes: A          Weekly: This procedure is run every Tuesday, it reads a 7        complete list of newsgroups from the newsserver. 8     Nightly: Run every night, removes deleted items and) fetches new ones, gets local group items. >          Quick: Only fetches new items, should be run once or        twice during the day.   isinque.com < This procedure checks that newsjob.com is in the fnews_queue8 queue, it is called by fnews_init at startup, which then) submits newsjob if it isn't in the queue.     
 diskcheck.com : This procedure checks that there is a reasonable amount of; disk space left before newsjob runs.  You can set the level # in fnews_local.com using a logical.      Management commands   
 update cached 7 Update all groups which are 'cached', as defined by the  logical FNEWS_CACHED.      update one GROUPNAME< Update the named group.  If FNEWS goes looney when reading a8 particular group, you might try deleting it's index file/ (fnews_idx:comp_os_vms.idx) and then update it.      update ifrecent ; Updates all groups which have been read in the last n days, < and are not locally stored.  This is usually run a couple of6 times during the day to catch new items, and to delete expired items.     update readlocal: Updates all local groups by reading any new items from the news host and storing them in ! fnews_local:[group_name]item.nnnn      update findlocal7 Reads fnews_local:[group_name]item.* and re-creates the < indexes based on what it finds, this can be used to untangle a lcl group.     update skimlocal9 For any local group, (as in fnews_localgrps:), fnews will 8 delete items which are older than the timeout period for3 that group.  It also marks groups as 'local' in the . fnews_index file, (by reading fnews_localgrps)     update readcheck6 Checks each item in the local groups are accessible by5 trying to read the item file,  if it can't access the 8 file then the item is removed from the index.  This is a7 fix\-up method for disk crashes, or general stuff\-ups.     
 update groups 8 Reads a complete list of groups from the newshost,   the: logical FNEWS_WANTED is used to decide if the group should: appear in the directory tree, FNEWS_CACHED is then used to< decide if the group index should be updated daily even if no one has read the group.   9      FNEWS_WANTED = "sci.*,comp.*,alt.sex,!comp.os.msdos"g  6 The above would import all sci groups, all comp groups7 except comp.os.msdos, and alt.sex. Currently wild cards : cannot appear in the middle of a group, e.g. comp.*.vms is
 not valid.     update uncached : This is run weekly, it finds out how many items are in all+ groups which {\em are not} cached.  So that < the user can have a rough idea how long he will have to wait4 if he tries to dynamically load one of these groups.     update recentlist 4 Run nightly, reads fnews_active:, which is a list of: recently accessed groups, together with how many days left: before they should cease to be cached if they are not read in the mean time.   ; A file called fnews_record: is appended to everytime a user 0 exits fnews, it lists each group they read items9 from,  this file is used to update the fnews_active file, 0 newly access groups are added, with a timeout of fnews_timeout days.   < These 'active' groups are then marked as such in fnews_index* and will be updated whenever newsjob runs.  : If all groups are cached, then this function is still used: to select groups which should be updated during the day as well as at night.      Common problems   / It gives errors, but they dissappear to quickly  Type <Control>+E      NNTP doesnt seem to work at all: Check you entered the correct name for a news server, this is defined in fnews_local.coml# Try the number instead of the name. 5 Try telneting to that machine to make sure your tcpip  software is working.< Try  recompiling the tcp_???.c file that relates to your tcp: software, and then relink.   The tcp_ucx.obj file provided; is known to only work with some versions of UCX, this cantm; be helped as UCX has changed and so you need to compile thet9 tcp_ucx.c file with YOUR version of the UCX header files.       $ cc tcp_ucx 
      $ @l ucx      NNTP, Sorry I can't talk to youo< Your news-host does not want to talk to you, this is because: there is a security file which gives a list of hosts which; are allowed to connect, the name of your machine must be ins8 this list, and your machine's name must be in the Domain< Name Server tables as well as the Reverse Translation Domain Name server tables.   - The access file may be called something like: 3      CNEWS          /usr/local/lib/news/nntp_accesss*      INND      /usr/local/news/nnrp.access  : With INND, you must also check that your machine is NOT in the list of news feeds.t$      INND /usr/local/news/hosts.nntp     You can't post items8 Check the access files described above. Check the syslog' file on the unix server for any errors.v    / Unread item count changes when entering a group 7 This count is really just an estimate.  Working out the 9 exact number would take too long, and not be of much real  use.    & A user cannot import an uncached group: Check the log file:  sys$login:fnews.tmplog,  you may have: to use control + C to abort fnews so that this log file is2 not deleted before you get a chance to look at it.  9 Try creating files in fnews_idx: from that users account.a0 Check the FNEWSDISK right has enough disk quota.      $ mcr diskquota      > show fnewsdisk     8 You get user/operator messages about the index being old; This means the nightly job has not completed, check the logt; files, which should have been mailed to you on any failure,y7 and fix the problem.  You can resubmit a job by typing:a  !      VMS  $ @submit_newsjob quick "      UNIX > nohup daily.sh quick &7      UNIX > daily.sh quick    (to run it interactively)b    2 FNEWS dies for a single user when they fire it up. Look at, and modify or delete:        sys$login:fnews.rcM      sys$login:fnews.defkeyh     FNEWS_INDEX dissappearsk You can re-create it with:%      $ @fnews_top:submit_newsjob init 9 Always check the queue after this to remove any duplicatee: batch jobs, (i.e. jobs scheduled to run at the same time).    0 Resubmitting an update after fixing some problem8 You can initiate an extra update during the day with the command:&      $ @fnews_top:submit_newsjob quick    ! FNEWS uses in\% and you have mx\%e$ Just define the appropriate logical:"      $ show logical mail$protocol*1      $ define /system mail$protocol_in mx_mailshri      Or you may find this workst&      $ define /system mail$protocol_in      sys$library:mx_mailshr.exe5    . On UNIX the mail command rejects the -s switch7 This is because unix has two versions of mail, type in:       > whereis mail ; To find the one you are using,  you probably want to change  your path so that:      > /usr/ucb/mail Is found first.o     FNEWS Mailing List< There is a mailing list for discussing FNEWS bugs and future; enhancements.  New  versions of FNEWS are also announced on 
 this list.  , To subscribe to this list send a message to:      maiser@emagic.marc.cri.nz Containing the line:      subscribe fnews     Suport< You can get email and telnet support for fnews by contacting our help service:v  "      fnews-help@emagic.marc.cri.nz    