# 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, improved XOVER support, and 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.
NNTP_TCPUCX NNTP Server
  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