This document does contain things which could be called newsgroup lists, like the other documents in this series, but unlike those it also includes considerable text by me, situating the lists and trying from them to form conclusions about the earliest Usenet newsgroups. For those who don't want to read in detail this fairly confusing document, here's a summary: List contained in a software distribution, circa June 5, 1980: NET.general, NET.v7bugs, NET.news. An essay in which I conclude that NET.general was first, that NET.v7bugs and NET.news were probably created in early to mid-May, 1980, and were second and third, and that the rest of the NET.* groups probably appeared after June 5. List contained in an announcement of a renaming, May 12, 1981: fa.arpa-bboard, fa.info-cpm, fa.sf-lovers, fa.human-nets, fa.info-terms, fa.info-micro, fa.arms-d, fa.energy, fa.unix-wizards, fa.teletext, and fa.home-sat. Appendix: Thirteen posts from 1980. Joe Bernstein The following script is part of an A News distribution available at - after you've obtained a.news.tar.Z and worked the relevant changes on it, this script is under the filename news.install in the directory news. The file a.news.tar is also available at my website, . There is a note in the FTP directory at ftp.std.com claiming that the A News distribution is that provided at the Delaware Usenix. At several places within the distribution, a date is given, and that date is invariably in the neighbourhood of June 5, 1980, a date consistent with comments I've seen in unreliable sources about the Delaware Usenix. The relevant lines are rather more than halfway down, following the comment line that reads "If no .ngfile, make one." BEGIN QUOTED SCRIPT if test "$#" != 3 then echo "usage: $0 newsdir nuser ngroup" exit 1 fi NEWSDIR=$1 NEWSUSR=$2 NEWSGRP=$3 : Get name of local system SYSNAME=`grep sysname /usr/include/whoami.h | sed 's/.*\"\(.*\)\".*/\1/'` if test "$SYSNAME" = "" then echo "$0: Cannot get system name" exit 1 fi : Ensure NEWSDIR exists if test ! -d $NEWSDIR then mkdir $NEWSDIR fi chmod 755 $NEWSDIR chown $NEWSUSR $NEWSDIR chgrp $NEWSGRP $NEWSDIR : Ensure certain files in NEWSDIR exist touch $NEWSDIR/.uindex $NEWSDIR/.nindex $NEWSDIR/.history $NEWSDIR/.bitfile : If no .sys file, make one. if test ! -f $NEWSDIR/.sys then cat > $NEWSDIR/.sys << EOF $SYSNAME:NET.ALL,to_$SYSNAME duke:NET.ALL,to_duke EOF fi : If no .seq file, make one. if test ! -f $NEWSDIR/.seq then echo '100' >$NEWSDIR/.seq fi : If no .ngfile, make one. if test ! -f $NEWSDIR/.ngfile then cat > $NEWSDIR/.ngfile << EOF general NET.general NET.v7bugs NET.news test to_duke to_$SYSNAME EOF fi : ensure index files are in most recent first order sort -t: -rn +1 $NEWSDIR/.nindex -o $NEWSDIR/.nindex sort -t: -rn +1 $NEWSDIR/.uindex -o $NEWSDIR/.uindex chmod 644 $NEWSDIR/.[a-z]* chown $NEWSUSR $NEWSDIR/.[a-z]* chgrp $NEWSGRP $NEWSDIR/.[a-z]* if test -d $NEWSDIR/.canned then chmod 755 $NEWSDIR/.canned fi echo reminder: uux must permit rnews END QUOTED SCRIPT The only other evidence I know of for the earliest newsgroups consists of: 1. There's a list of the three earliest newsgroups which I find in: 1) John Quarterman's , 1990, p. 244; 2) Tim Geller's article about the conflict sparked by AOL's arrival on Usenet, which was apparently published in the August 1995 issue of magazine, but which I saw in his own copy, as submitted rather than as printed, at ; 3) Lee Bumgarner's Great Renaming FAQ (where the list is credited to Geller, not Quarterman). I've seen no list of the earliest newsgroups which disagrees with this one, except for the news.install file reproduced above. See also the NET.* post in this thread, under NET.test and NET.news. 2. There is an archive of net.v7bugs offered on CD-ROM by an organisation working to preserve old versions of Unix. The archive apparently comes from Henry Spencer, the person who kept the University of Toronto archive that formed the basis of the defunct A-News Archive (see below) and is now integrated (for the most part) into Google's archive. I have no reason to think this CD-ROM contains additional evidence beyond what's mentioned below, but would welcome it if I were wrong. (To find this organisation, search on "net.v7bugs" on Google's *web* search page.) 3. I've seen several surviving posts from 1980, dating back as far as April 26 of that year. These have been available in two places: a) The A-News Archive that Bruce Jones offered via first FTP and then HTTP from communication.ucsd.edu contained a number of posts preceding the archive's real start date of May 11, 1981. Specifically, it contained *at least* a post to NET.v7bugs dated May 18, 1980; a post to NET.general dated November 11, 1980; and a post to NET.news dated May 16, 1980, which may or may not represent that group's creation. (There were also posts dated January 21, 1981 to NET.micro, announcing that group's creation, and dated April 7, 1981 to NET.unix-wizards, which had not yet been renamed to fa.unix-wizards. Any other pre-May 11 posts in the archive would have been in one of those five groups, and would have been later than the posts referred to here.) These posts appear to be in Google's archive, but hidden by the fact that the NET.* names were lowercased and by incorrect dates; see please my previous post (January 5, 2002) to alt.fan.dejanews, news.groups, and news.groups.questions, message-ID , in which at least some of the NET.v7bugs posts are located. The only other 1980 post I've found so far at Google is the November 11, 1980 post to NET.general, which is also reproduced below. b) Bruce Jones also offered an archive of the Usenet.Hist mailing list he ran beginning in 1990. In that archive, which remains available in various places, is an e-mail from Gene Spafford dated October 17, 1990. This is, in turn, a forwarding of an e-mail Gene Spafford got from Steve Bellovin dated October 26, 1987; and *that* is, in turn, a forwarding of an e-mail Steve Bellovin got from Thomas Truscott dated October 26, 1987. Thomas Truscott wrote that Cyrus Rahman, a Duke physics grad student, had recently sent him old data from a disk on an old computer that had moved to the physics department, and enclosed two things from the old data, the second of which was a small archive of thirteen posts. (See APPENDIX below.) These posts date between April 26, 1980 and November 11, 1980. The earliest post in this archive to NET.general dates to April 26, 1980; there are nine other posts to NET.general. The earliest post in this archive to NET.v7bugs dates to May 27, 1980; there are two other posts to NET.v7bugs. One of the posts to NET.general in the second group is unusually long (for that era, anyway!), announces a bug in V7, and dates to May 13. If this wasn't a mispost, then we seem to have a suggestion that the first newsgroups other than NET.general were created in mid-May, 1980 - May 16 for NET.news, assuming the vanished post was, in fact, about the group's creation, and anytime from May 14 to May 18 for NET.v7bugs, based on the dates of relevant posts in both archives. This sequence of events would accord well with the fact that Usenet first really took off following the Delaware Usenix (which must have been after June 5, 1980) - before it really took off, what need was there for many newsgroups? This sequence of events also accords well with the flood of posts by Mark Horton to NET.v7bugs which I've found in the Google archives (see a), above), all dated May 18, 1980 as if Horton had been saving the posts until there was a newsgroup for them. But there's no guarantee at all that this is really how things happened; and it's little use to go ask the people who were there, when the mailing list archive mentioned under b) provides copious evidence of uncertain memories. Mark Horton, besides being a prolific poster to NET.v7bugs, is generally credited with two major events of 1980-81: the creation of the ARPAnet-Usenet gateways, and the "lowercasing" of the newsgroup names (from NET.general to net.general, for example). These are both relevant to the next "list" of newsgroups. Message-ID: Newsgroups: net.general X-Path: utzoo!duke!mhtsa!eagle!ucbvax!mark From: ucbvax!mark Date: Tue May 12 12:39:01 1981 Subject: network name change is in effect X-Google-Info: Converted from the original A-News header I have renamed all the arpanet newsgroups from NET.whatever to fa.whatever. This includes arpa-bboard, info-cpm, sf-lovers, human-nets, info-terms, info-micro, arms-d, energy, unix-wizards, teletext, and home-sat. If you are a subscriber to one or more of the above, you should use netnews -s to change your subscription from, for example NET.human-nets to fa.human-nets. If you are a system administrator for netnews and you have not already fixed your .sys file to know about the new names, you should do so at once, or risk losing news. Mark APPENDIX The posts in the archive labeled b) above follow. Yes, they're still available in at least two other places; but with the uncertain status of the early posts in the A-News Archive, I can't help thinking this is a case of the more the merrier; and anyway, these help document some of what I say above. news.articles >From jte Sat Apr 26 22:02:50 1980 at-bugs : NET.general "at" cannot schedule execution on March 1 during leap years. Fix: />59/s//>=59/ "at" cannot schedule an event during the following year if requested by month and date. Fix: Unknown If the shell script produced by "at" includes the assignment of exported variables with special characters (e.g. $IFS) the script can fail. Fix: A fairly good fix is /fprintf(file, "%s.n", .ep++);/c ++ix; fprintf(file, "%.*s'%s'\n", ix-*ep, *ep, ix); *ep++; . A better fix would scan *ep to take care of single qoute marks in a shell variable. >From jte Mon Apr 28 23:16:57 1980 ac-bugs : NET.general "ac" as distributed with V7 has several problems. 1) General terminal names are not supported. All terminals except the console must be named "ttynn". This causes serious accounting problems as logins on all other terminals are mapped into the console. 2) Ac looks for "}" to indicate a new date instead of the correct "{". 3) "Midnight" (-d option) is not always computed correctly. 4) Diagnostic messages are incomplete. Duke has rewritten ac and fixed these problems. The new version is available from "duke!~uucp/duke/cmd/ac.c". >From swd Sun May 4 20:47:16 1980 look bugs : NET.general look(1) expects /usr/dict/words to be sorted with -d and -f options. As distributed (on version 7) the wordlist is not correctly sorted. As a result, "look ba" yields nothing. Fix: sort -d -f /usr/dict/words -o /usr/dict/words >From research!dmr Tue May 13 03:27:25 1980 Floating-point bug in V7 Unix: NET.general J. W. Stevenson of Vrije Universiteit in Amsterdam has discovered and diagnosed a most interesting bug in V7 Unix. The problem is that the floating-point registers and status are sometimes not saved across memory expansion via sbreak() or stack growth or (less importantly) forks. The problem only occurs when a swap is needed to accomplish the expansion. What happens is that the swap output IO is begun, and then the registers are saved when the process calls swtch() from sleep(). It is possible for the image to be written out before the saving of the registers. For reasons I do not fully understand situations can occur in which the bug manifests itself consistently. It seems to me that the register-saving should be finished within a few hundred microseconds at most after initiation of IO while the actual transfer (with ordinary moving-head disks) will not begin for several milliseconds at least. Nevertheless we have demonstrated the bug quite consistently; by the usual sort of coincidence, one of our machines began showing floating-point problems the very same week that Stevenson's letter arrived. (If the controller prefetches a significant amount of data or if the disk is very fast then the consistency is not surprising.) At any rate, as suggested by Stevenson, the problem can be fixed by adding the following code if (u.u_fpsaved == 0) { savfp(&u.u_fps); u.u_fpsaved = 1; } to the following places in sys/slp.c: before original line 507, "a2 = malloc(coremap, n);", in newproc(); and, after original line 564, "if(a2 == NULL) {", in expand(). >From vax135!ucbvax!mark Tue May 27 23:39:00 1980 uux bug : NET.v7bugs A bug in uux prevents the - option from working with binary files. To fix it, in uux.c, search for "fputs". (It's in an if (pipein) {.) replace the fgets/fputs loop by while ((c = getc(stdin)) != EOF) putc(c, fpd); and declare c somewhere to be an int. (I put the line register int c; right after the if (pipein).) Fixing this bug will allow the new uusend program, which will be released shortly, to work, allowing the transfer of binary files across indirect uucp links. >From unc!smb Thu May 29 19:44:57 1980 at bug : NET.general The 'at' command insists on creating the spool file in mode 644, regardless of your umask setting. Thus one is unable to create confidential requests. >From swd Thu Jun 26 10:58:16 1980 uucp bug : NET.general In distributed v7 uucp, if the USERFILE grows to over 15 lines, uucico will die. Fix: in chkpth.c chg line 14 from struct userpath Upt[15]; to struct userpath Upt[MAXUSERS]; As distributed, MAXUSERS is 20. Chkpth will check and complain if USERFILE has more lines than MAXUSERS. >From swd Thu Jul 10 10:42:51 1980 mkconf bug : NET.v7bugs Some time ago a bug was reported in scanf relating to scanning the format string "%d%c". (This bug is fixed in the duke version of stdio.) It seems that mkconf.c REQUIRES this bug in order to work. Thus we suggest the following fix to mkconf.c: diff mkconf.c.good mkconf.c.original 107c107 < " trap; br7+10. / 11/70 parity\n", > " trap; br7+7. / 11/70 parity\n", 739,740d738 < if (n == 0) < n = sscanf(line, "%s%s%ld", keyw, dev, &num); >From sid!cf Thu Jul 10 22:33:51 1980 Unix alive on P-E 3240: NET.general Wollongong Unix has just been installed on a Perkin Elmer 3240 at the University of Melbourne. It is alive and well running two users. Those tired of VAX delivery times or Unibus Adapter troubles can take heart. More info later. >From vax135!ucbvax!cory:optvax:horton Fri Jul 11 01:11:04 1980 ucbopt lives : NET.general The optvax at UCB, on the Berknet, has been added to the news network. This vax is a private vax with a few research projects going on on it. It is connected off the ucbcory machine, corresponding to the physical configuration of the Berknet. Mark Horton >From trt Wed Aug 13 09:48:33 1980 col : NET.v7bugs The buffer-flush bug in col(1) that was mentioned in previous news is due to using an automatic (local) variable for buffering stdout: char fbuff[BUFSIZ]; should be changed to static char fbuff[BUFSIZ]; (exit() also works since main() will not return before flushing.) Col(1) is just one of several V7 programs with this flaw. In the Duke version of stdio one can bypass the problem with setbuf(stdout, SYSBUF); where SYSBUF is a flag indicating buffering is desired. >From vax135!ucbvax!cory:optvax:jimbo Mon Sep 29 20:40:00 1980 Spice & Splice mail aliases: NET.general We are creating mail aliases for distribution of occasional messages of interest and reporting of bugs for both the Spice and Splice circuit simulation programs. This is not really for user consulting but to make it easier to report bugs or find out what has been fixed already. Interested parties who would like to put a name on one or both should send a note to: esvax.spice@berkeley (over ARPA-Net) ucbopt!spice (over "uucp") or esvax.splice@berkeley (over ARPA-Net) ucbopt!splice (over "uucp") These aliases should be used for all incoming messages. Jim >From decvax!shannon Tue Nov 11 17:26:58 1980 DEC on Usenet : NET.general DEC now has a Unix system on the Usenet uucp network. Anyone with questions about or problems with DEC hardware and it's relationship (interaction) with Unix, feel free to contact us. We are members of the Telecommunications Industry Group (TIG or Telco) of DEC and are actively involved with Unix on current and new DEC hardware. Currently, we are routing all Usenet traffic through duke. If necessary or desirable, we could poll other systems as well. For now, mail duke!decvax!person. Our network names, etc. are below, feel free to contact us. decvax!shannon - Bill Shannon (formerly of Case Western Reserve Univ.) decvax!aps - Armando Stettner