Cleanup Release of C News, with patch CR.E Jan 1995 The current C News distribution can be retrieved by anonymous FTP from ftp.cs.toronto.edu (file pub/c-news/c-news.tar.Z) or ftp.zoo.toronto.edu (file pub/cnews.tar.Z). Please avoid major use of FTP during our peak hours (0800-1800 Eastern time, zone -0500). Major archive sites such as ftp.uu.net and ftp.funet.fi also usually have the latest distribution. See README.changes for what's new and wonderful, README.install for installation instructions, README.etc for general notes. Warning: the documentation in doc/ is somewhat out of date. We are grateful for financial support of C News development by the following, none of whom are to blame for the final result (some more detailed information can be found in the "sponsors" directory): UUNET Communications Services Inc. (provider of Usenet news feeds) ClariNet Communications Corp. (publisher of a Usenet-format E-newspaper)
The following files can appear in /usr/local/news/lib. There may be others for the sake of local news readers, etc., but these are the ones C News knows about. active Major control file: list of newsgroups recog- nized at this site, including current maximum and minimum article numbers and moderation status. Updated by relaynews and upact. active.old Previous active. Created by upact. active.times List of created newsgroups and when they were created, aimed at making it possible for news readers to be smarter about knowing when a group is new. Only supported by some stan- dard news readers. batchlog Latest batcher log, created by sendbatches, showing backlogs. batchlog.o* Previous batcher logs. batchparms Control file for sendbatches, specifying how to feed other sites. bin Master override directory for programs, searched before any other by all C News software. Normally contains only the config shell file specifying where to find every- thing else. errlog Error log from relaynews. errlog.o* Previous errlogs. explist Control file for expire, specifying what gets expired, and when, and what archiving is done. history List of articles currently known at this site, with reception dates and pathnames. Updated by relaynews and expire. history.dir Part of the dbm index for history. history.pag Other part of the dbm index for history. history.n Temporary version of history, while expire is running; can be left behind if expire ter- minates abnormally. history.n.dir Part of the dbm index for history.n. history.n.pag Other part of the dbm index for history.n. history.o Previous history. Created by expire. localgroups List of local groups and descriptions, for use by checkgroups control-message handler (which uses it to decide what groups are leg- itimate even though the checkgroups message did not mention them). Each line is a group name, a tab, and a terse description of the group. The descriptions are read only by humans. log Log file from relaynews, reporting what was received and when. log.o* Previous logs. mailname Name of the site for purposes of mail, typi- cally a domainized name. Used in building ``From:'' lines in newly-posted news. If not present, ``hostname.uucp'' is assumed. mailpaths Mailing routes for submissions to moderated newsgroups. newsgroups File created by checkgroups processing, with names and descriptions of newsgroups. For human reading only. Format identical to that of localgroups. newsgroups.bac Previous newsgroups file. Created by check- groups processing. organization Name of the organization, for inews's use in creating the Organization: header for a posted article. postdefltdist Default distribution (if any; default ``world'') for postnews. postdefltgroup Default newsgroup (if any; default is to insist on the user supplying one) for post- news. replyusepath This file should exist if and only if the local ``mail'' command is unable to handle `@' addresses, meaning that replies to con- trol messages (etc.) must use the ``Path:'' line instead of ``From:''. The contents are ignored. server Host name of the news server, where all operations (posting, etc.) should be done. If file does not exist, current host is assumed. sys Major control file specifying what groups are legitimate here, and what groups are fed to other sites. watchtime Last time newswatch was run. whoami Name of the system for news purposes, for newshostname. If file does not exist, other sources (hostname etc.) are consulted.
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.
The installation procedure has changed, a lot. It relies much more on makefiles now. Thusly: 1. Run "quiz". This replaces "build". One caution: quiz says that a reasonable place to put NEWSCTL is /etc/news... this is doubtful advice because at least three of the files in there (headers, history, log) can get large and /etc is usually on a not-large root filesystem. 2. "make". This will build all the software. If you asked for the stdio speedups, it will check them out before actually deciding to rely on them; don't panic if you see a messy-looking failure but make charges onward -- it knows what it's doing. Note: getting the command search path set up properly for compiling is up to you -- the search path which quiz asks about is used only for *running* the software. Also, you need to get the umask set up so that the compiled binaries will have the right permissions -- again, the umask quiz asks about is used only for *running* the software. 3. (optional but recommended) "make r". This will run regression tests. They take a while. Errors that don't cause make to stop are not serious; ones that do, are. 4. Create the NEWSARTS, NEWSOV, NEWSBIN, and NEWSCTL directories, and set their ownerships correctly. The makefiles won't do this for you. NEWSBIN can be owned by most anyone; the rest should be owned by the news-database owner. 5. Running as the NEWSBIN owner, "make install". Note: getting the umask set up properly for installation is up to you -- the umask which quiz asks about is used only for *running* the software. 6. Running as the news-database owner, "make setup". These makes, by the way, are generally fairly careful not to step on existing files that should not be changed. 7. Running as whoever owns /usr/bin (or wherever you've decided to put inews etc.), "make ui". 8. (optional) If you want our readnews, postnews, and checknews, then running as whoever owns /usr/bin (or wherever you've decided to put inews etc.), "make readpostcheck". 9. Change NEWSBIN/input/newsspool to be owned (including group) by the news-database owner, and mode rwsr-sr-x (both s's are mandatory). 10. Go to NEWSCTL and edit some control files, at least: batchparms, controlperm, explist, mailname, mailpaths, organization, postdefltgroup, readnews.ctl, sys, whoami. Notably, editing mailname (to the name appropriate in From headers) and whoami (to the news name of the system) is MANDATORY at this point, unless you're updating an old system (in which case the old ones will still be there). 11. Back in the source directory, "make cmp". If this finishes with a "no worrisome differences" message, it looks like everything is installed right. 12. Make any mail aliases necessary for trouble reporting, e.g. "newsmaster" and "newscrisis" if you used quiz's suggestions about reporting addresses. Also, unless your site is engaged in network mapping, you should arrange for mail to "newsmap" to be discarded (not returned, not forwarded, just discarded) to minimize the effects of "sendsys bombing" by practical jokers. We suggest you also arrange that mail to "news", "usenet", "newsmaster", and the news-database owner gets sent somewhere where it will be looked at regularly. 13. Put conf/crontab, or something like it, in as the news-database owner's crontab. 14. Arrange to have NEWSBIN/maint/newsboot run (as the news-database owner) when your system boots, to clear out any debris left around by crashes. 15. Install the manual pages, from man/, and perhaps the documentation, from doc/, as you wish. This is too system-specific for the makefiles to attempt it. 16. Create a local newsgroup, if you don't have one already -- "cnewsdo addgroup mysite.general y" will do the job -- and then run postnews and post an article to it. 17. It should show up, with headers spruced up, in NEWSARTS/in.coming. 18. The next time newsrun runs -- see the crontab -- the article should appear in the newsgroup, the history file, the log file, and NOT in the errlog file. Run readnews (or some other reader) and try to read it. If you can, then you did most everything right. 19. Get a feed from somebody, somehow, and see if batches from them are arriving in NEWSARTS/in.coming properly and being processed okay. Don't forget to add them to your sys file, and set up anything needed to feed your postings to them (e.g., batchparms). 20. Post a test article to a regional test newsgroup and see if it goes out to your feed site. 21. "make tidy" will get rid of most of the debris in the sources, leaving the C News library intact. "make clean" will also get rid of the library. "make veryclean" will also get rid of everything that any of the makes did (except that some changed files will remain changed). Going farther than this is NOT RECOMMENDED for normal cleanup. If you must... "make spotless" will also get rid of everything quiz did except for its recorded-answers file (which it will use as defaults next time you run it), and "make sterile" will get rid of even that. Note that doing "make spotless" will disable most of the makefiles (until you run quiz again) by removing the header file that they rely on.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.