
                         ANU-News V6.2.0 Release Notes
                                       
   Date: June 12, 1997
   
   The HTML version of this document with active links can be found at
   http://www.ijs.si/anu-news/release-notes-v620.html .

     * Introduction
     * Licensing change
     * New in this version
     * Some unresolved items
     * Availability
     * Installation
     * Change log
       

Introduction
------------
   We are glad to announce the availability of a new version of ANU-NEWS,
   the V6.2.0. ANU-NEWS is a Usenet news server and client software
   running under OpenVMS on VAX and AXP platforms using various vendor
   TCP/IP transport packages or DECnet.
   
   V6.2.0 uses the same format of database files as the whole V6.1 BETA
   range of versions, so the upgrade should not cause problems. Make sure
   that the systemwide logical names are defined in /EXECUTIVE mode since
   this is enforced from version V6.1B8 onwards.
   
   V6.2.0 sources differ from V6.1B10 in numerous details. The main
   issues were: performance improvements, longer newsgroup names,
   PGP verification of control messages, robustness.
   

Licensing change
----------------
   ANU-NEWS was originally distributed under the license terms found in
   the file LICENSE_GHUSTON.TXT in the sources directory. Due to
   incorporating some GNU code (namely the MD5 module) into ANU-NEWS,
   this license may conflict with the GNU GENERAL PUBLIC LICENSE, so
   Geoff Huston has agreed to allow ANU-NEWS to be covered by the GNU
   GENERAL PUBLIC LICENSE (file LICENSE_GNUGPL.TXT) unless you find it
   too restrictive, in which case you may apply the original license terms.
   
   The module MD5 is covered only by the GNU GPL.
   

New in this version
-------------------
   The most important changes from ANU-NEWS V6.1B10 (Apr 24, 1995) to the
   current V6.2.0 release (June 1997) are the following:
   
  PERFORMANCE IMPROVEMENTS:
  
   Reduced working set
          Significantly reduce the required working set and paging for
          the client. It is now possible to run NNTP client accessing
          15.000 newsgroups in WSQUOTA of less than 1000 pages.
          
   Client speedup
          Significant performance optimizations for ANU client
          (especially during startup) where the number of newsgroups is
          large. Speedup by a factor of 2 to 5, depending on the number
          of newsgroups.
          
   Interlocked ADD FILE
          Added ability to run concurrent ADD FILE processes on the same
          set of files.
          
   Faster SKIM/ITEMS
          SKIM/ITEMS now deletes items in reverse numeric order which
          will always be quicker on any ODS II file system.
          
          Changed file delete logic for SKIM/ITEMS to actually delete
          files in several AST threads that run in parallel with other
          SKIM processing. This allows for much more overlapped I/O (even
          overlapped I/O for file deletes since we will potentially be
          deleting files for up to n different newsgroups at any one
          time, n in this case is specified by the user with
          SKIM/ITEMS=n, n defaults to 5. A value of 0 for n disables this
          AST based delete processing).
          
  NEW FUNCTIONALITY:
  
   Longer newsgroup names
          ANU as a NNTP client can handle newsgroup names up to 99
          characters.
          
          ANU with a local database can handle 50-char newsgroup names
          (previously 49) with no changes, and 80-char names with
          recompile and conversion of file NEWS.GROUPS (see
          GROUPS_CONVERT_V62.COM in the directory with sources).
          
   PGP signature verification of control messages
          Recognize header 'X-PGP-Sig:' and check PGP signatures of
          control messages newgroup and rmgroup.
          See: 'HELP ADD FILE PGP_verification' and
          ftp://ftp.isc.org/pub/pgpcontrol/README.html.
          
          This required the following (backwards compatible) change
          (see 'HELP ADD FILE/EXECUTE' and ''HELP ADD FILE/RMGROUP'):
          
          + add qualifier /RMGROUP to ADD FILE which implements part of
            the semantics formerly under /EXECUTE. Default:
            /RMGROUP=RETAIN

          + add list of keywords to qualifier /EXECUTE to distinguish
            between different types of control messages by accepting
            qualifier values CHECKGROUPS, NEWGROUP and RMGROUP.
            If only /EXECUTE is specified, it defaults to
            /EXECUTE=(NEWGROUP,RMGROUP).  /EXECUTE=ALL equals
            /EXECUTE=(CHECKGROUPS,NEWGROUP,RMGROUP). This permits us
            to use /EXECUTE qualifier with PGP signature verification
            without fear that Checkgroups control messages would also be
            executed, and at the same time keeping backwards
            compatibility.
            
   New Message-ID generation
          Rewrite gen_id() to generate a non-talking unique message id.
          
   Easy change of TCP transport
          Allow changing TCP transport software without changing NEWSRC
          user files (automatically changes requested and unavailable
          TCP library to the one that is compiled-in with the program).
          
   Better NNTP client diagnostics
          Return more informative diagnostics in NNTP client mode.
          
   Retry on timeout
          When remote NNTP server drops a connection due to timeout,
          ANU as a NNTP clients now tries to reopen the connection.
          
   Quad-dot format allowed
          Allow NNTP server to be specified by IP address (not only by
          dns name) (transports: MULTINET,WIN,TCPWARE)
          
   Wide screens
          Better handle displays wider or narrower than 80 columns.
          
   Nicer header on display
          Better format (squeeze) info about the newsgroup in the display
          header.
          
   SKIM by alphabet
          Changed SKIM/ITEMS and SKIM/NEWSGROUPS to process groups in
          lexical order when processing all newsgroups.
          
   Crossposting of mailing list feeds
          Allow qualifiers /DEFNEWSGROUP and /NEWSGROUP to specify a list
          of values.

   New version of NNTP_TCPUCX
          A working version of NNTP_TCPUCX.C is included. This
          provides an interface to UCX's inetd service thus allowing
          multiple copies of the server to run at any one time. This
          avoids the problem of being forced to use the multi-threaded
          server which has poor interactive response when handling
          multiple clients requesting overview info (all threads block
          until NNTP command completes).
          
   XOVER save to disk code.
          This code allows ANU News to save overview info to disk by
          having the server rather than the NEWSADD code update the
          information. The more frequently read a group the more
          up-to-date the information. Stale information should never be
          returned. Both XOVER and XOVER_SAVE_TO_DISK must be defined and
          then the option can be controlled dynamically by defining (or
          undefining) the logical NEWS_DEVICE_OVERVIEW normally this
          would be set as:

          $ DEFINE/SYS/EXEC NEWS_DEVICE_OVERVIEW NEWS_DEVICE

          but could point to a different tree if (say) only a subset of
          groups were to be handled this way. Add the following to your
          nightly (or weekly) skim:

          $ DELETE NEWS_DEVICE_OVERVIEW:[*...]*.NNTP;* /LOG/BEFORE="-15-"
          
          This just prevents groups which are only read once in a blue
          moon from taking up extra disk space.

  FIXES:
  
     * properly handle newsgroups with mixed-case names in NNTP client mode
     * fix the year 2000 problem in 'Date:' headers and when dates are
       used in the NNTP protocol
     * fix the "Lock check variable already set to 1" error in the CACHE
     * fix NEWSUTILITY\xoverni() from failing in case of illegal input
     * fix %NEWS-E-INVSA, Invalid signal array length, sa_l = 0
     * fix %NEWS-E-ASSERT, Assert failed,
       expr not true: "size < MALLOC_SANITY_LIMIT"
     * fix XOVER memory handling bug in the NNTP server
     * fixed ACCVIO bug with control checkgroups for groups that
       previously didn't have a topic string set.
     * add space after "Subject:" and "Message-ID:" when forming headers
     * map_items tried to allocate unreasonably large initial memory
       chunk for gap->grp_ia in case a user once peeked at a newsgroup
       with heavy traffic and never visited it again
     * clean-up some errors when using UCXSOCKETS, probably this
       transport is now ok to use, although UCXQIOS is still a safer bet
     * strip_compress_lower(): convert properly ISO Latin 1 char set
     * fixed ACCVIO in NNTP client during READ/REF
     * NNTP_SERVER\argparse(): fixed buffer overflow
     * group(): avoid buffer overflow - return '411 no such news group'
       if newsgroup name is longer than GRPNAMELEN_F
       
  ROBUSTNESS:
  
     * replace most calls to strcpy/strcat with safer
       strnncpy/strnncat
     * replace pattern strcat(err_oline,x) with err_oline_cat(x)
     * change %s to %.s in sprintf to guard against overwriting buffer
     * added some checking in read_reg_file() to survive certain syntax
       errors in the NEWSRC file without ACCVIO
       

Some unresolved items
---------------------
     * ANU-NEWS server still reformats article header lines passing
       through it (joining continuation lines during read, writing them
       out possibly as several lines). Although not strictly against RFC,
       this behaviour is causing PGP verification of control messages to
       fail at downstream sites. As a workaround the V6.2.0 specially
       handles 'X-PGP-Sig:' header lines.

     * HELP file is still not fully up-to-date with the code.

       
Availability
------------
     * The ANU-NEWS Home Page at http://www.ijs.si/anu-news/ contains all
       the relevant links to the documents and servers mentioned in this
       Release Notes, so you might save yourself some typing by starting
       with this document.

     * the official source site is kuhub.cc.ukans.edu, archives are
       available at ftp://kuhub.cc.ukans.edu/anu_v620/

     * the following ftp mirror sites are available:
       
        North America:
                ftp://genetics.upenn.edu/anu_news/distribution/
                
        Europe (Slovenia):
                ftp://ftp.arnes.si/software/VMS/anu-news/
                
        Europe (UK):
                ftp://ftp.dct.ac.uk/vms/anu/
                
        Canada:
                mailserver access only via mrcserv@mtroyal.ab.ca
                
     * the ANU-NEWS V6.2.0 distribution consists of three ZIP archives:
       
        news_v620_src.zip
                the complete sources that should be unpacked into the
                [.NEWS_SRC] directory
                
        news_v620_dist.zip
                some support DCL procedures and precompiled code
                (Multinet, OpenVMS 5.5-2, AXP 6.1)
                
        news_v620_doc.zip
                the documentation (except for the new site setup manual
                the rest of the documentation is old and applies to
                V6.0-3)

                NOTE: The documentation hasn't changed since the V6.1B10
                (or earlier), so this file may be missing - use
                news_v61B10_doc.zip instead.
                
       If you do not already have UNZIP on your system the program
       UNZIP.EXE (code for VAX and AXP) is available in the same
       directory with the archives. Make sure you use binary mode for
       file transfer.

     * ANU-News Setup and Management Manual is also available separately
       in on-line version at http://www.ijs.si/anu-news/setup_manual_toc.html
       or as a PostScript document at http://www.ijs.si/anu-news/setup_docs.ps

       
Installation
------------
     * obtain the three ZIP archives (actually only the news_*_src.zip is
       necessary for existing installations)

     * UNZIP the archives into subdirectories [.NEWS_SRC], [.NEWS_DIST]
       and [.NEWS_DOC].  Discard the [.NEWS_BUILD] subdirectory if one
       exists.

     * read the setup manual before building News for the first time;
       it has advice about running NEWSBUILD.COM, checking parameters
       in NEWSSITE.H, etc.

     * go into the [.NEWS_SRC] subdirectory, read comments in
       NEWSBUILD.COM and run this procedure with appropriate parameters,
       e.g.
       $ @NEWSBUILD

     * join the Usenet forum of anu-news users and developers in the
       newsgroup: news.software.anu-news or the mailing list:
       anu-news@vm1.nodak.edu

     * the archives of the newsgroup are available at
       http://listserv.nodak.edu/archives/anu-news.html .
       
Change log
----------
   The selection of source change notes since the relase date of V6.1B10
   is available as a separate document at
   http://www.ijs.si/anu-news/release-notes-v620-changes.html .
   

This document was compiled by Mark Martinec
