Problem

In order to truly go back to the same state in which CSRG left the True Berkeley VAX UNIX(R) system in 1988 and continue its development from that point, we need to reconstruct the master SCCS tree as it existed at that time.

Unfortunately, however, the tapes with /usr/src dumps of that time were all lost when the CS department at Berkeley moved from Evans to Soda. All that is available now is the final SCCS tree at the time of CSRG shutdown and the old distribution tapes, which have almost all SCCS files removed.

Solution

The nature of SCCS is such that changes to SCCS files are almost always reversible, i.e., delta(1) always adds new deltas at the top of the delta table, leaving all previous entries intact. The history is lost only when deltas or whole SCCS files are deleted, but according to Marshall Kirk McKusick this was never done. Thus by moving and renaming SCCS files and "trimming the top" from them appropriately, we can reconstruct the 1988 SCCS tree from the 1995 one on Marshall Kirk McKusick's CSRG Archives CD-ROM.

I started doing this in January 1999, manually going through every file in the 4.3-Tahoe/4.3-Quasijarus /usr/src and reconstructing its correspoding SCCS file. I used the g-files in the 4.3-Tahoe/Quasijarus /usr/src to determine where the s-files should be located, how they should be named, and what was the highest delta at the time of the 4.3-Tahoe release. Then I hunted the corresponding s-files down in CSRG's final /usr/src, moved them back to their original locations under their original names, and sent them back in time using my SCCS Time Machine. Despite using as much automation as practically feasible, I still had to manually go through every file in the source tree. The process took 9 months and was finished in September 1999.

The effort has paid off. The results are quite impressive: with only a few exceptions, the master source tree on the Quasijarus development machine is, I believe, identical to the one on CSRG's development machine in 1988.

Lost SCCS Files

Unfortunately, however, some SCCS files did get lost sometime between 1988 and 1995. Here is the complete list of files that are currently considered lost:

bin/as/Makefile
doc/ps1/13.rcs/*
doc/ps2/00.contents
doc/ps2/02.summary/*
doc/ps2/Title
doc/smm/01.setup/tahoe/Makefile
doc/smm/01.setup/tahoe/a.t
doc/smm/01.setup/tahoe/b.t
doc/smm/01.setup/vax/*
doc/smm/10.newsop/*
doc/smm/11.named/*
doc/smm/12.uchanges/*
doc/smm/13.kchanges/*
doc/smm/19.porttour/*
doc/usd/09.newsread/*
doc/usd/10.etiq/*
doc/usd/11.notes/*
etc/Makefile
etc/etc.tahoe/Makefile
etc/etc.vax/Makefile
etc/named/*
etc/termcap/map3270
etc/tzone/*
games/games.tahoe/Makefile
games/games.vax/ching/Makefile
games/hunt/*
lib/Makefile
lib/c2/Makefile
lib/libc/compat-4.1/compat-4.1.tahoe/Makefile
lib/libc/compat-4.1/compat-4.1.vax/Makefile
lib/libc/compat-sys5/Makefile
lib/libc/compat-sys5/compat-sys5.tahoe/Makefile
lib/libc/compat-sys5/compat-sys5.vax/Makefile
lib/libc/gen/gen.tahoe/Makefile
lib/libc/gen/gen.vax/Makefile
lib/libc/inet/Makefile
lib/libc/net/Make.resolv
lib/libc/net/named/Makefile
lib/libc/net.tahoe/Makefile
lib/libc/net.vax/Makefile
lib/libc/ns/Makefile
lib/libc/stdio/stdio.tahoe/Makefile
lib/libc/stdio/stdio.vax/Makefile
lib/libc/tahoe/sys/Makefile
lib/libc/vax/sys/Makefile
lib/pcc/Makefile
man/man1/Makefile
man/man2/Makefile
man/man3/regexp.3
man/man5/tzfile.5
man/man6/Makefile
man/man6/hunt.6
man/man8/named.8
man/man8/tahoe/Makefile
old/man/Makefile
old/print.sh
sys/h/vadvise.h
sys/h/vm.h
sys/h/vmmac.h
sys/h/vmparam.h
sys/h/vmsystm.h
sys/h/vtimes.h
sys/sys/kern_mman.c
sys/sys/vm_drum.c
sys/sys/vm_mem.c
sys/sys/vm_mon.c
sys/sys/vm_page.c
sys/sys/vm_proc.c
sys/sys/vm_pt.c
sys/sys/vm_subr.c
sys/sys/vm_swap.c
sys/sys/vm_text.c
ucb/Makefile
ucb/ftp/getpass.c
ucb/pascal/utilities/whoami.h
usr.bin/Makefile
usr.lib/sendmail/adm/sl.sed
usr.lib/sendmail/aux/Makefile
usr.lib/sendmail/aux/addr.c
usr.lib/sendmail/aux/arpa.c
usr.lib/sendmail/aux/bbn_daemon.c
usr.lib/sendmail/aux/mail-dm.c
usr.lib/sendmail/aux/matchhdr.c
usr.lib/sendmail/aux/mconnect.c
usr.lib/sendmail/aux/newaliases.c
usr.lib/sendmail/cf/*
usr.lib/sendmail/include/asm.sed.vax
usr.lib/sendmail/include/userdbm.h
usr.lib/sendmail/lib/Makefile
usr.lib/sendmail/md/c.nvmunix.m4
usr.lib/sendmail/md/c.v6.m4
usr.lib/sendmail/md/c.v7.m4
usr.lib/sendmail/md/c.vmunix.m4

The pathnames are relative to /usr/src. These are g-files from 4.3BSD-Tahoe. If you have any information on what happened to their corresponding s-files, I would love to hear from you!

@(#)sccs.html 1.1 03/12/18

Michael Sokolov
msokolov@ivan.Harhan.ORG