Note: The opinions expressed here are my own and have no relationship with the opinions or official viewpoints of any organization with which I am associated
In the meantime, another furor has erupted concerning SCO Unix's ability to run Linux binaries. Other people have written about this, and I have talked to some of their sources, and it comes down to the idea that SCO didn't reverse-engineer Unix to run those binaries; they claim to have copied code directly from Linux to Unix.I've already expressed similar viewpoints, but I consider it highly unlikely that SCO has admitted ("claimed") to have copied GPL code into their code base. Apart from the fact that I've heard the opposite, it would be stupid beyond belief. There's only one solution if it's true: the UNIX code base must be released under the GPL. This would blow any of SCO's legal ambitions out of the water.
But wait, there's more! Going back to the original problem of finding common code in Linux and Unix - there's that side-by-side demonstration SCO is offering to do this week. If IBM didn't put it there, who did? An emerging theory suggests that both Linux and SCO Unix have code taken from BSD Unix, which would explain how they could be identical without one having stolen it from the other. Both code samples may have a common antecedent.The problem with this view is that code gets modified. It's well known that there's lots of BSD code in UNIX System V, possibly more than AT&T code. There's also some BSD code in Linux, though not very much. But as I say above, code changes over time, and I think it's unlikely that the code in question originated in BSD.
One of SVR4's biggest features was that it combined traditional System V with a lot of popular BSD features. To do this some significant amounts of BSD code were pulled into System V. This would not normally be a problem because the BSD license allows it if the code is properly attributed. I have been told, however, that AT&T removed UC Berkeley copyrights and replaced them with AT&T copyrights. This reportedly came out during the lawsuit. So rather than Berkeley having stolen AT&T code, it was the other way around!In the past I've been guilty of making this claim too, based on my own experience working on the UNIX System V code base. Specifically, I worked on a version of syslogd which did not have a Berkeley copyright on it, although clearly it had, at some time, been imported from BSD. But what license is there to remove? syslogd was introduced in 4.3BSD. The file /usr/src/etc/syslogd.c starts with:
/* * Copyright (c) 1983 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */That's a very different BSD license from the one to which we're accustomed. To make it more complicated, the referenced Berkeley software License Agreement does not appear to be stored in the source tree. The 4.4BSD version contains the now well-known four paragraph license agreement which includes:
* 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors.This is the issue that was brought to bear in the USL vs BSDI court case ten years ago. But it's somewhat weak: in the revision logs of /usr/src/usr.bin/syslogd.c we find:
D 5.41 90/06/01 19:01:17 bostic 54 53 00001/00011/01116 new copyright noticeThese revision logs give us a lot of information. One is the user ID bostic, indicating that Keith Bostic committed this delta. The date of the change is the most interesting here: it was round the release of Net/2, long after the release of System V Revision 4. So it's quite understandable that System V.4 doesn't contain this copyright notice.
In a previous revision of this page I stated:
There's nothing there to say that you can't remove this license agreement.
Theo de Raadt has informed me that removing copyright notices without the permission of the copyright holder is always wrong, even if this is not expressly prohibited. This doesn't affect the point I was trying to make, however: the absence of the current BSD license in the source files is not evidence that anything has been removed.
Cringely continues:
So it is probable that both System V and Linux developers ripped off BSD code. Since some BSD copyrights were obliterated by AT&T, SCO would not necessarily notice that code in question was really from BSD. And since there are probably few, if any, SCO developers who were involved with the creation of System V back when it was AT&T property they would have no institutional memory of this. It would appear to them that Linux developers stole their code, and not apparent that their code was itself stolen.Why should the Linux people have "ripped off" BSD code? There's no reason to do so. They could have easily integrated it. The truth of the matter was that at the beginning they were afraid of litigation. Rather than take the freely available BSD networking code, they wrote their own.
The real issue here is the way in which SCO has been going about this. They're not letting anybody look at the code without a non-disclosure agreement, and one of the terms of the NDA is that you can't release more than a statement "yes, there is common code" or "no, there is no common code". Bill Claybrook of the Aberdeen Group has given some more details: the file in question with 80 lines of common code is in fact a well-known .c (source program) file, not a header file as I had suspected. I'm left wondering whether he meant that the name of the file was well-known, or that the implications of the .c at the end is well-known. He doesn't say much else except that it was only part of a function.
The important issue remains: where did the code come from. SCO has the means to demonstrate that with their own revision logs and the revision logs of BSD and Linux. Why are they not showing them?
Main SCO page SCO affair overview Greg's home page Greg's diary