(Message uucp:11)
Date: 21 Oct 1982 at 1345-PDT (Thursday)
From: stevenm (Steven McGeady)
To: teklabs!ogcvax!hp-pcs!peter,teklabs!ucbvax!ucsfcgl!tef,
 	teklabs!ucbvax!lbl-unix!uw-beaver!ubc-vision!brent,
 	teklabs!ucbvax!ucsfcgl!tef,teklabs!decvax!cca!ima!johnl,net.unix-wizards,
 	net.bugs.uucp
Cc: tekcrd!davec,teklabs!clemc,teklabs!ucbvax!sun!shannon,
 	teklabs!decvax!ittvax!swatt,teklabs!ucbvax!ucla-security!lauren,
 	tekcad!ellis,teklabs!decvax!brl-bmd!guy,teklabs!cbosgd!mark,
 	teklabs!harpo!floyd!trb,steveg,grahamr,teklabs!reed!billst
Fcc: uucp
Subject: The 1982 'Best UUCP Version' Awards


Some time ago I posted a note to the network asking for people's
opinions on what was the 'best' version  of UUCP around. The messages
that I recieved follow, but first I will express my own opinions
on a number of topics.

1) People who know about UUCP.

	The people on the network who seem to know the most about
	UUCP (and have expressed themselves frequently about it)
	seem to be:

	Dave Clemmans		teklabs!davec
	Clem Cole		ucbvax!ucbcad!clemc
	Guy Harris		brl-bmd!guy
	John Levine		cca!ima!johnl
	Steven McGeady		teklabs!stevenm	(and oh, so humble)
	Bill Shannon		sun!shannon
	Tom Truscott		duke!trt
	Alan Watt		ittvax!swatt
	Lauren Weinstein	ucla-security!lauren

  Now, don't be offended if I've left you out - these are just the
  people who I've had conversations with on the topic. Lauren
  Weinstein is reputed to have written a paper on the functioning
  of uucp and the packet protocol, but I haven't seen it.

2) Versions of UUCP extant

	They seem to be:

	V7 original - incredibly buggy, some sites
		claim to have version with the bugs fixed.

	4.1BSD original - still quite a few bugs, this is a later version
		from Bell.

	System III original - this is the best of the lot, but has some
		problems

	Shannon's decvax version - a lot of people swear by this. it has
		most of the bug fixes in, along with some other esoteric
		performance enhancements

	Duke's subdirectory version - this stuff is a big hack which
		improves performance substantially by moving files
		into separate subdirectories.

	Clem Cole's Rumored Version - the uucp that will be released with
		4.2. This supposedly has all of the improvements listed
		above (except perhaps the duke stuff), rolled on top
		of the 4.1 version.


3) The 'Best' Version.

	This is a difficult question. It seems clear that the best
	'stock' version is System III. I have looked and worked
	extensively with this code, and it is far and away the best
	of the standard distribution code (including 4.1BSD).

	However, it does not have:

		a) some of the more esoteric bug fixes that have come
		over the net.

		b) Duke's subdirectory performance hacks.

		c) Various people's performance tweaks.

	It also has the obvious problem that it requires a System III
	license (although ATT is now licensing 3.0 nearly free to
	universities (finally)). An 'optimal' version would be
	System III with all the netnews suggestions folded into it,
	and a ***reimplementation*** of Duke's subdirectory stuff -
	the current implementation is too gross for even me to stomach.

	As for non-System III versions, there is obviously some dissent.
	My personal opinion is that it is likely that Shannon's
	decvax version is the best, though I haven't seen it. This
	is at least partially a reastion to the poor implementation
	of the subdirectory code of Duke's version.

	However, it seems that Clem Cole has taken it on himself to
	put together an optimal non-Sys 3  version from network sources,
	and has said that he is nearly done with it (work is proceeding
	slowly because of other commitments, but it will be released with
	4.2).


4) What to Do

	My problem was solved for me - I just finished generating
	a 'binaries-only' (gasp!) version of UUCP based on Sys 3.
	I would say that most network types should probably either
	get a System III license, and use that, or wait for the
	4.2BSD version to become available.

5) Future

	Lauren Weinstein is rumored to have implementated a UUCP for
	a Z80 based system. Some people in Portland are rumored to
	be thinking about a re-implementation, including an RSX
	version. Does anyone else have good rumors?

Sorry if I have been long-winded. Also sorry that the synopsis took
so long.

S. McGeady

{ucbvax,decvax,zehntel}!teklabs!stevenm		UUCP
stevenm.tektronix@UDEL-RELAY			ARPA
teklabs!stevenm@BERKELEY			ARPA (?)
stevenm@tektronix				CSNET

------- Forwarded Messages

From: tekcad!ellis
Date: Thu  2 Sep 1982 at 1339
Subject: UUCP with all bug fixes

I've got the world in mine (barring some new stuff of Clem's).  To the
best of my knowledge, every bug that's been reported is patched.
The only thing I don't have is the multiple-lock-numbers goodie
(the thing that uses hex, rather than decimal, sequence numbers).

					Ellis

------- Message 2

From: teklabs!decvax!brl-bmd!guy
Date: Wed 22 Sep 1982 at 0522
To: stevenm@teklabs
Original-From:     guy@rlgvax

I have worked some (not anything like 3 man-years or anything like that,
but I have gotten my hands dirty while inside uucp) with both the V7
version (although I have not gotten any of the changes from the net,
we had made some changes of our own; do you have a list of the V7 uucp
changes?) and the 4.1BSD version, and have looked at the System III version
which I will probably bring up on our VAX once I finish making our magical
System III and 4.1BSD compatible UNIX for it.  In terms of "later is better",
the System III version is a later version than the 4.1BSD version which is
a later version than the V7 one; from reading the NOTICE file in the 4.1BSD
uucp source directory, it seems Bell redid quite a bit of uucp at some point
and that is what they sent to Berkeley and was put in 4.1BSD.  Later still,
they did some more things and that was the System III version.  Doug Kingston
at Aberdeen Proving Grounds Ballistic Research Labs Ballistic Modeling
division says they have a version which is even later than the System III
version.

uucp has a number of bugs in it, and I know that a number of bugs were fixed
between V7 and 4.1BSD and between 4.1BSD and System III.  A common problem
is not handling the umask properly and getting files created with excessively-
restrictive modes.

The 4.1BSD version has the following new features (and possibly more, UNIX
documentation is not known for its completeness):

If the first component of a path name is "~" it refers to a "uucp public
directory", usually /usr/spool/uucppublic, on the remote system.  This way,
if you want to send things to a machine where you don't know some nice
directory writable by UUCP, you can send it to the uucp public directory which
by convention is writable by UUCP.

If a copy cannot be performed on a remote machine the NAK message contains
a code which tells why it could not be performed; an explanation is logged
in the LOGFILE.  Initiation and termination of conversations are also logged.

Mail is sent back to the initiating user if an operation fails on a remote
machine; this can sometimes be considered a misfeature if the operation was
initiated by a program which runs uucp invisibly to the user.  Mail is also
sent back on the SUCCESSFUL (as well as unsuccessful) execution of a "uux"ed
command on the remote machine, which is definitely a misfeature under the
above circumstances.

The System III version has the following features above and beyond the 4.1BSD
one:

If you uucp a file to a remote machine you can have mail announcing the
delivery sent to a user on that machine.  That, and the public directory
facility are used by

the uuto and uupick commands (shell files), which make it convenient (or
at least the documentation implies it does; I have not used System III uucp)
to send files to someone on another machine.  uuto sends it to that user's
subdirectories under the public directory, and uupick scans the public
directory for files and allows you to selectively extract them.

There is a facility for monitoring the status of uucp requests and
connections to other systems, and for killing uucp requests not acted
on yet.

uucp will normally not reattempt to contact a system for which a previous
connection failed for some time, usually an hour; System III uucp permits
you to override this default delay with any time.

If a remote mail fails, uucp will return the message to the sender; this is
another case of a possible misfeature, as this should - and often is -
performed by the delivery program.  You may end up getting two pieces of
Return to Sender, Address Unknown mail for each piece sent out.

The uuclean program is more verbose about files being deleted.

The System III code seems to have been "lint"ed, or at least to pay more
attention to portability than the others; one problem we discovered that
cropped up when porting to a machine with a non-11 family byte order
was fixed in System III, for example.

ASSERT failures are logged in a file rather than to the user's terminal.

Since System III has the "uname" system call (a PWB/UNIX idea), which
permits you to find out the local machine's name, you do not have to
recompile uucp in order to change your site's name from the name that
uucp is distributed with.  Of course, you have to be able to perform
a sysgen of System III in order to specify the name, but one of the nice
things about System III and other PWB based UNICES is that you can
perform a sysgen without ANY kernel source; this means that you can
distribute UNIX with a binary license and still permit people to change
the number of kernel buffers or processes, or the configuration of devices.

In short, the best version of the ones I mentioned is, in my opinion, the
System III version.  However, there are a couple of bug fixes from the
4.1BSD version - probably put in by Berkeley, as they are not in the
System III version - which should probably go in.

Moreover, in addition to the bugs in V7 fixed in 4.1BSD and the bugs in
4.1BSD fixed in System III, there are some bugs still in the System III
version.

And in addition, there are a number of enhancements that make life nicer,
mostly in the realm of configurability.  Making the list of legal commands
for "uux" come from a file is a nice idea, in fact it is so nice that I
know of at least three separate systems which do that.  That list should
also permit you to turn off acknowledgment of uuxing of a command; we
did that because an office automation system we developed used uux to
send electronic mail to remote sites and people would get UNIX mail whenever
they sent a message out, which would usually confuse the hell out of them...
Zilog permits you to specify that a system is "passive" which means that
your system should not try to connect to them, but wait for them to poll
you, which is useful for systems without autodialers or for systems on
hardwired connections.  Another nice facility is the ability to specify
quoted strings as the "send" string in the initial login sequence; this
should permit you to 1) suppress the newline at the end of the string
2) use C escapes like "\r" (baud-rate recognizers like that) and 3)
delay at various points before sending something.

What I plan to do is fold the 4.1BSD bug fixes into System III, along with
our own enhancements, and run that eventually.  Of course, if you have access
to a version later than System III, go with that; the CHANGES file that
comes with the 4.1BSD one lists many bug fixes, and the System III CHANGES
file lists even more, and there are definitely a number of annoying bugs
that may be fixed in later versions.  I suspect the secret is that the V7
version was a "research" version, not heavily used, and the later versions
which were part of UNIX/TS, the "production" Bell Labs UNIX, probably were
being used more heavily so that the annoyances were discovered and fixed.
Also, I suspect that the System III documentation is better than the others.

The changes are, as you mention, substantial, but are more-or-less
straightforward if you stare at the code long enough (he says, with his
thick piles of "diff" listings in his lap).

Guy Harris
RLG Corporation
(703) 471-6860

decvax!brl-bmd!rlgvax!guy
(I'm a relative newcomer to USENET, so I'm sure there are other paths, possibly
better; basically get to brl-bmd by any way you can and then go to
rlgvax!guy.  Also, if it's convenient, send me back a very short note - it
could even be null - indicating that this got there; I have not yet received
any mail from USENET - the unix-wizards comes from a different path - so
I'm not sure I 100% believe that we're connected yet.)



------- Message 3

From: teklabs!cbosgd!mark
Date: Sat 18 Sep 1982 at 0035
To: teklabs!azure!stevenm
Full-Name: Mark Horton
Subject: UUCP

I'd say your best bet would be to get Clem Cole's latest version.
It will be soup in about 2 months - it needs subdirectories put
in right.

4.1BSD has junk on it, system III's is better, but there are
licensing problems for some sites.

	Mark


------- Message 4

From: teklabs!decvax!duke!trtAF
Date: Sat 18 Sep 1982 at 1702
To: decvax!teklabs!stevenm
Date: Sat Sep 18 14:07:47 1982
Subject: Best uucp

My vote is for the version of uucp at decvax, with ittvax!swatt's new
version of gename.c and a few other minor improvements based on suggestions
that have come across Usenet recently.  Said uucp can handle a ridiculous
level of traffic (e.g. 24-hour average of 1.5 uucicos running).

I am not familiar with System III uucp.  It probably has some improvements,
but I doubt anyone has worked on it too hard.  Which is a shame, because
I estimate that connection times could be reduce BY A FACTOR OF FOUR with
judicious file compression, removal of "dead air" between file transfers,
and file transfers in both directions (full-duplex, after all).
	Tom Truscott (duke!trt)



------- Message 5

From: teklabs!decvax!cca!ima!johnl
Date: Sun 19 Sep 1982 at 0005
To: teklabs!stevenm
Date: Sat Sep 18 23:17:17 1982
Subject: Uucp opinions


     I've looked at V7, 4.1BSD and 3.0 uucp, and I like 3.0 the best.  It
fixed most of the known bugs and also put in a little status and
monitoring stuff so you can easily find out how much traffic is going
where and detect things like some other site not calling you for a week.

     I fixed up both the 4.1 version now the 3.0 version for IS/3,
Interactive Systems (of Santa Monica CA) souped up System III.  Most of
the changes were to make it more practical to distribute binary copies,
to support non-Bell dialers, and to adjust some time parameters to agree
better with reality.  Naturally, I like my version the best.

     I'd be interested in what other people had to say.

John Levine, decvax!cca!ima!johnl, harpo!esquire!ima!johnl (uucp)
	     Levine@YALE (Arpa), 617-491-5450 (desperation)


------- Message 6

From: teklabs!ucbvax!ucsfcgl!tef
Date: Wed 22 Sep 1982 at 0511
To: ucbvax!teklabs!stevenm
Subject: uucp survey

I'm very interested in the results of your uucp survey.  I'm running v7
+ many 4.1bsd mods + netnews bug fixes + local bug fixes.  This seems to
work as well as any version I've heard of, but I have been curious about
what System III had for a uucp.

tom ferrin


------- Message 7

From: teklabs!harpo!floyd!trb
Subject: Re: is there a list of uucp fixes?
Date: Wed Oct 20 14:37:17 1982

Hmmm.  I guess I'd be interested, duke!trt and ittvax!swatt both
claim to have done lots of work with fixes.  You guys should get
together.  (I already made sure that they knew about each other,
you might want to mail to each of them.
	Andy


------- Message 8

From: teklabs!ucbvax!lbl-unix!uw-beaver!ubc-vision!brent
Date: 19 Oct 1982 21:21-PDT
Subject: Your UUCP survey

Greetings, eh? Did you get some worthwhile (postable to Usenet)
opinions in response to your early September Usenet item re the "best"
version of UUCP.  If so, and there wasn't sufficient interest to
warrant posting them to the net, and it isn't too much trouble, could
you forward a summary to me?  We currently run the 4.1BSD distributed
version of UUCP, but it seems to be riddled with problems (are all
versions?!?)  Since we're fairly new to the net, we haven't picked up
on many of the bug fixes that went around earlier.  Anyway, I would be
interested in hearing the results of your query.

			Thanks (as everyone seems to say) in advance

			Dave Brent
			University of British Columbia
			Laboratory for Computational Vision

			...!decvax!microsoft!uw-beaver!ubc-vision!brent
			...!ucbvax!lbl-unix!uw-beaver!ubc-vision!brent


------- End of Forwarded Messages
