ANU-News V6.1B10 Release Notes

Date: April 24, 1995
Updated sections on GNU C and Patches on December 4, 1995

The HTML version of this document with active links can be found at http://ijs.muzej.si/anu-news/ .

Introduction

We are glad to announce the availability of a new version of ANU-NEWS, the V6.1B10. 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.

First a short explanation is due on why the beta series of releases goes on and on and when will this stop. The main reason is that the documentation is pretty much out of sync with code. It was long hoped that the V6.1 (non-beta) would be released as soon as the documentation is available. The time went on, and so did B4, B5, B6, ... . The later beta versions are much more robust though, than the last 'official' V6.0-3 release, so please do not be scared away by the 'beta' attribute.

Thanks to the new ANU-News Setup and Management Manual (see on-line version or PostScript version) maintained by Charles Bailey (file SETUP_DOCS.COM in the distribution) at least the most pressing documentation needs are now covered. The intention is to come out with what has accumulated over the last nine months since B9 and name that V6.1B10, then collect first impressions and only the most pressing patches, update HELP file, and soon afterwards release the true non-beta version under the name V6.2, so as to avoid possible misunderstandings with the elusive version name V6.1.

Volunteers to help with updating the documentation are welcome. The documentation rewrite is coordinated by Steve Bonine (spb@ntrs.com).

As the whole V6.1 BETA range of versions use the same format of database files 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.

New in this version

The most important changes from ANU-NEWS V6.1B9 to the current V6.1B10 release are the following:

Remote moderation
Remote moderation of newsgroups is now possible via the nntp POST command. Any article which has an Approved: header will be accepted by the POST command and added to the local database, rather than being emailed to the moderator. This behaviour is consistant with the way INN handles moderated groups.
XOVER supported by nntp server
A sort of "poor man's" NOV support was added to the nntp server, although it isn't turned on by default (see module NNTP_SERVER.C). NOV (implemented by the XOVER command in the nntp server) is a way to get selected article headers quickly. As defined, the news provider is supposed to provide .overview files which contain information about each article. These files should be created and updated as the articles are added and deleted to/from the news database. The nntp server now has the code to build the .overview data "on the fly" rather than having it pre-built. Building the .overview files would be fairly easy to add, but we haven't figured out a good way to keep them up to date when articles are removed. The SKIM processing is slow enough now, without adding the extra overhead of keeping the .overview files up to date. Also, the NOV specs say that the nntp server should validate the information returned, and that requires testing to see if the article exists. Once you know the article exists, it isn't that much more overhead to read it and construct the .overview information. If someone writes a NOV package some day to maintain the .overview files it will be easy to integrate into the nntp server. (Bob Sloane)
Netscape support
Nntp server is now tolerant to the Netscape's (mis)use of the nntp command GROUP. To get full use of this WWW reader the ANU nntp server's XOVER support should be turned on.
Implicit file protection defaults
The ADD FILE no longer explicitly sets the protection of every item file created. This saves about 4% of the precious elapsed time. The file protection is now governed by the usual VMS rules (default protection, ACLs on directories, etc). To be explicit you may want to add the following line to the DCL procedure which does the ADD FILE:
$ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE)/DEFAULT
ANU-NEWS enables SYSPRV when it opens item files, so WORLD:R is not really necessary. To revert to the previous behaviour you may uncomment the call to chmod in routine create_article in file NEWSADD.C.
Multiple disk free-space checking by nntp server
Allow multiple device names in the logical name NNTP_DISK, separated by commas. Each device in the list is checked against NNTP_DISK_DANGER and diskdanger() fails if any disk doesn't have enough space. Note that NNTP_DISK should contain one string and not a search list, so don't forget to enclose the list in double quotes for the DEFINE command.
Control subgroups
ANU-NEWS now has the ability to split up control messages over several groups. The basic format for the control group set is now:
control[.type[.hier]]
where type is the type of the control message (cancel, rmgroup, etc) and hier is the first element of the first newsgroup to which the article is posted (ie, the text before the first "." or "," in the Newsgroups: header). If the group control.type.hier doesn't exist for a particular type and hierarchy, then control.type is tried, and if that doesn't exist, then just control is used. For example:
Newsgroups: alt.config
Control: newgroup general.misc
...
NEWS would first try to put this article in control.newgroup.alt, and if that didn't exist, it would try control.newgroup, and if that didn't exist it would use control. The group must be created with the normal CREATE NEWSGROUP command, for example:
NEWS> CREATE NEWSGROUP CONTROL.CANCEL/NOCONFIRM
NEWS> CREATE NEWSGROUP CONTROL.CANCEL.ALT/NOCONFIRM
would put all cancel message in one of the above groups. Remember the first element of the Newsgroups: header controls the hierarchy, and that is frequently something like Newsgroups: control,alt.config which would end up in control.cancel.control, not control.cancel.alt. (Bob Sloane)
NNTP server bugs fixed
The most pressing bugs in NNTP_SERVER.C that showed up mainly in the multithreaded version of the server are now fixed. The multithreaded server NNTP_TCPUCXM runs now under Multinet as well.
NEWS_STOP message
When the logical name NEWS_STOP is defined, ANU-NEWS immediately exits on startup. What is new is that the logical name NEWS_STOP may now be set to a string (longer than 4 characters), which is then included in the exit message:
$ DEFINE/SYS/EXEC NEWS_STOP "disk salvage in progress"
$ NEWS
NEWS is currently locked - forced exit (disk salvage in progress)
ANSI C cleanup, GCC, DECC, VAXC
The code is now free of VAX C idiosyncrasies and adheres to the relaxed ANSI C standard. The following compilers are now fully supported:
VAX C on VAX
tested with: (VAXC 3.2, Multinet V3.3A, OpenVMS 5.5-1)
GNU C on VAX
tested with: (V2.6.1, 2.7.0 (recommended version is V2.6.3 or later, see below), Multinet V3.3A, OpenVMS 5.5-1)
DEC C on VAX
tested with DECC 4.0, OpenVMS 5.5
DEC C on AXP
tested with: (DECC 4.1, Multinet, OpenVMS 6.1), (DECC 4.0, UCX 3.2, OpenVMS 6.1), (DECC 1.3, UCX 3.2, OpenVMS 6.1)
Read-only strings protected
All the literal constants are now protected by the const ANSI C qualifier. The same holds for most of the read-only function parameters.
Code cleanup
Hundreds of compiler warnings about sloppy code, unmatched types and the like were honored (and the GNU C and DEC C can be very extensive with their complaints and suggestions). Please try to keep the code tidy when you write modifications.
NNTPINCLUDE.H
Common declarations for NNTP stuff have been unified, the common includes and declarations went into the new file NNTPINCLUDE.H . This should ease portability between different TCP/IP transports.
NEWSMSG.H
There is a new file NEWSMSG.H which is automatically generated from the NEWSMSG.MSG file during build -- thanks to Pat Rankin. This removes the compiler-portability problems caused by globalvalue declaration.
Bug fixes
numerous bugs fixed (and some new ones introduced :-} )

A note about compiling under GNU C

The recommended version of GNU C is 2.5.8 and earlier or 2.6.3 and later. The versions inbetween can cause looping during ADD FILE or other unexpected behaviour in ANU-NEWS and should be avoided.

The VMS header files that are distributed with 2.3 or earlier version of GNU C for VAX are not very useful. Perhaps it would be the easiest to grab GNU C 2.7.x -- here is an abridged mail from Pat Rankin <rankin@eql.caltech.edu> from November 28, 1995 :

The folks at the FSF still haven't provided permanent archive space for the new gcc-vms distribution. For anyone who grabbed my non-announced copy from ftp.cco.caltech.edu, it has been updated to contain gcc 2.7.1 and gas 2.6, plus some header file revisions (including "jacket headers" for Motif V1.2-3). I have mentioned its existence in comp.os.vms, so it isn't quite "non-announced" any more, but the current location should not be considered to be a permanent archive site.

See ftp://ftp.cco.caltech.edu/pub/rankin/, namely:

gcc 2.7.1 incorporates one VMS-specific bug fix in addition to whatever other changes were made since 2.7.0, and gas 2.6 produces slightly smaller object files for VMS (due to condensing some of the meta-data which gives directtions to the linker, so no reduction in size of final executables should be expected).

I'm not planning to make any gcc-vms-2_7_2 distribution. (The changes are mainly for build problems on various Unix platforms.)

Some unresolved items

Patches

Archive of all patches is maintained by Charles Bailey. You will probably want to apply at least the following:

Availability

Installation

Change log

The selection of source change notes since the relase date of V6.1B9 is available in a separate document (referenced from the on-line version of this Release Notes).