On Sat, Mar 18, 2017, at 12:25, Doug McIlroy wrote:
Nick asked for an exmple of AT&T code in Gnu.
Warner explained a spectrum of ways and degrees of innocence
by which that might happen.
The example I have in mind is "calendar" from v7, whose very
idiosyncratic implementation appeared in Gnu with only
cosmetic changes. It has been modified since by discarding
archaic efficiency hacks, but still uses the same quirky
basic method.
The "calendar" available my Linux machine is from the "bsdmainutils"
package (which has never been put under the GPL, incidentally) which is
stuff copied with attribution from FreeBSD/NetBSD/OpenBSD, and
calendar.c has a UCB copyright/license and OpenBSD RCS ID at the top of
the file. (In the TUHS archive, this implementation first appears in
4.3BSD-Reno, with earlier versions having code clearly derived from V7).
The earliest version (from Debian 1.1) that I can find has a UCB
copyright dated 1993 and SCCS ID 8.3 3/25/94, not much removed from
4.4BSD in the archive (which has SCCS ID 8.1 6/6/93) - my guess is that
the actual source is 4.4BSD-Lite, which is mentioned in the bsdmainutils
README.
In the converted-to-git CSRG archive, the implementation first appears
in 1989 by "bostic" (Keith Bostic, presumably)
https://github.com/weiss/original-bsd/commit/46857f6fe723eff85f22986beb7806…
with the change note "redone from scratch as a C program to fix cpp
security problem" - this is the first version to have a UCB copyright
notice. [Using cpp seems to have itself been a BSD innovation circa
4.1cBSD]
V7 calendar consists of a C program that outputs a set of regexes, and a
shell script that runs egrep. Unless by "same quirky basic method" you
mean the fact that it reads events from a text file at all, I'm not sure
what you're referring to... but that's functionality rather than
implementation.
There's a lot of code in a handful of not-part-of-GNU-proper core
utility packages used in Linux distributions - bsdmainutils, bsdgames,
bsdutils, and util-linux [only the last of which has the GPL] - which
come from some BSD or another and mostly have intact UCB copyright
statements and licenses at the top. If any of these are improperly
attributed, it's likely that UCB is to blame.
Conceivably Gnu's implementation was done only
after v7
code was made public. But in any event, it has been
distributed without attribution.
Doug