High points of patch CR.E: This one is mostly fairly minor things. The big changes are further work on upact, to remove a race condition that would sometimes update the min number incorrectly for low-traffic newsgroups, and revisions to inews's interior to remove ersh and thus the last invocation of rsh, at the expense of building somewhat longer message IDs when posting on a server from a client. Histinfo (used in mkhistory etc.) now ignores nonexistent articles rather than croaking on them. The newsflag command is now documented. The configuration setup used for regression tests has been revised to ignore any NEWSCTL (etc.) environment variables that you may happen to have in your environment (which may be right for production use, but are most definitely wrong for the regression tests, which want to supply their own). Quiz no longer offers to fake link(), which can't be done without breaking the locking protocol (oops). The expovguts messages have been improved. More portability work in dostatfs. And the usual minor fixes. High points of patch CR.D: This one's mostly a cleanup job on CR.B/CR.C. The one really new item is a queuelen appropriate to Taylor UUCP. The master makefile has been fixed to eliminate complaints from make, and to do the "patchchores" checks itself so they can be done before fixing the subordinate makefiles. The upact regression test has been fixed to pick up checkactive properly, and to *pass* the resulting test; as a side effect, checkactive has acquired a new option, -n. A few more undesirable redeclarations of system functions have been rooted out, and dostatfs.c has been beaten on a bit to make it more likely to compile "straight out of the box" on Suns. And I've started what's going to be a long campaign of adding space around lines changed by subst, so that they don't mess up patches. High points of patch CR.C: This is the second part of a two-part patch, the first being CR.B. Install both parts, this one second. In this part... A nasty bug in newsgroup removal (which could wipe out a number of files in NEWSCTL) has been fixed. There is a new command, checkactive, which does a fairly rigorous check of the contents of the active file; several commands which modify the active file now use checkactive to check their new version before installing it. Mergeactive now adds directories for the new newsgroups. The badexpiry command, which looks for newsgroups with many articles with long expiry dates, has been improved and is now documented. The newsdb(5) manpage now warns reader implementors about non-atomic updates. Postnews retains the user's PATH for use within the editor. dostatfs.c has been made a bit more portable (I hope), or at least easier to fix when it does break -- the statfs() system call is not very portable, it turns out. queuelen.old has been renamed queuelen.vo for internal reasons. Plus the usual minor cleanups and fixes. High points of patch CR.B: This is the first part of a two-part patch, the second being CR.C. Install both parts, this one first. In this part... The viauux -g option now accepts multi-character grade names. The batcher now works even if off_t is longer than long. Just plain "make" now balks if you haven't run quiz, or if you need to re-run it. Expire now grumbles if a line in explist applies to no newsgroups. Upact has been made more robust, does a much more rigorous check of the new active file before installing it (using the new checkactive program in CR.C), and has a more rigorous regression test. Complaints from the exploder (e.g. about batch files it cannot create) are now reported properly. Permissions on gunzip have been fixed. Numeric filenames in in.coming are now absolute dates, not relative to an undocumented origin (this is possible since CR.A's changes to filenames avoid a 14-character problem). The makefile now spots whether you've incompletely installed a multi-part patch (like this one) and removes files obsoleted by patches (something "patch" itself cannot be convinced to do). And the usual bits of cleanup, portability, and minor bug fixes. High points of patch CR.A: Quiz now pays attention to the compiler-name and config-file-location question answers. The PATH bug in control-message handling has been fixed. Upact now checks for duplicate newsgroups in active, which foul it up. Doexpire -e means expire only, don't run upact and expov. Newsrun uses suffix .t, rather than .Z.t, for decompressed compressed batches. Expov reports articles with numbers below min (which mean something's wrong). "make cmp" tests whether spacefor works. The names of the batcher local locks have changed. Lots of little portability fixes and minor bug fixes. Overviews are still mandatory, bash is still broken; fixes for these later. High points of the Cleanup Release: First, the source has been extensively reorganized, so don't bother diffing against older releases. Many things have been speeded up, fixed, or improved. The regression tests are much more comprehensive, and are now formally part of installation. Overview support has been fully integrated and is faster than it used to be. It includes support for putting the overview files somewhere other than the article tree. Included -- currently as contributed software, not fully tested or well integrated -- is a small transport-only NNTP implementation. Further work on this stuff is anticipated. The installation procedures have been revamped substantially, with much of the work now done by makefiles. The old conf/build is now quiz, and the interrogation is rather shorter. See README.install for details. Among other things, there is now some provision for checking correctness of an install after it's done. Batcher locking is much improved, some degree of parallel operation is possible, THE FORMAT OF BATCHPARMS HAS CHANGED (for the better), absolute limits on batch length are possible, and there are some preliminary hooks for using the batcher to run outgoing NNTP transmission. Newgroup/rmgroup processing is now controlled by the controlperm file, directory removal after rmgroup is automatic (once the last articles expire), newgroup is *much* fussier about group names, the newsgroups file is properly maintained, and sendsys/version control messages are ignored unless the return address is of the form "newsmap@...". Expire is faster and smarter and can be told that history files are in a different directory. Doexpire runs upact and expov. Upact is much faster while remaining a shell file; updatemin is gone. Inews/injnews error checking is better and it has provision for supplying From addresses of the form user%site@do.main. There is support for use of gzip for batch compression, and a generalized facility for supporting other compressors. Newsrun is generally smarter and supports an option that says "process plain input but not compressed input". Dbz has been split into two parts: dbz functionality, and dbm emulation on top of it. It has several new bits of functionality, including automatic tag sizing (if you don't know what this means, don't worry about it). The old "what kind of Unix do you have?" question is gone, replaced by a few more "do you have feature xyz?" questions. The getdate() routine, source of many compilation headaches, is gone. For those who truly believe that bundling all sorts of control functions into a single command is a Good Thing, there is now a cnewsdo command which provides a bundled interface to the C News maintenance commands. Of course, the individual commands are still available too. There is a new setup command, mergeactive, for setting up your active file based on someone else's. Newswatch is smarter, can be run frequently without adverse effects, and has a hook for running your own private command(s) for dealing with space shortages. We've started splitting the zillion-command manual pages down into smaller ones, although this is by no means finished yet. Relaynews, apart from being faster, now copes fully with article trees split across file systems, doing symbolic links and/or data copying as necessary. RELAYNEWS OPTIONS HAVE CHANGED. There is support for SVR4 statvfs() space checking and UUCP queue checking. Shell-file locking has been organized and packaged up for cleanliness and ease of change. Trouble reporting now all goes through one command, "report", which can be altered as necessary to suit local conventions. (The NEWSMASTER configuration variable no longer exists, as a consequence of this.) The software has been built on BSDI and on a recent Solaris.