Saturday, July 12, 2003
SCO's Impossible Dream
I was waiting for July 9 to address the issue of licenses on top of the GPL, because SCO had said they would be making a major announcement about their licensing plan on that day. But they didn't make the announcement. At a minimum, it's a dream deferred. Here is some information on the GPL and why SCO has little or no hope of being able to do what they indicated they want to do, because of the GPL.
First, if you want to read about the GPL and other software licenses, you can go here. FSF invented the GPL, so it's good to ask them what it means. The clearest explanation I could find was written by Eben Moglen, naturally. As the FSF attorney, he is in charge of GPL enforcement. A lot of people have written a lot of nonsence about the GPL, including saying that nobody knows if the GPL is "legal" because it has "never been tested in court". That's not true. It's also misleading.
It's misleading because enforcement issues come up all the time. They are settled without going to court for two reasons: the strength of the GPL and the policy of FSF, which is to work out compliance, rather than punishment. It's not true because there was one case that did go to court, Progress Software Corp. v. MySQL AB, 1st Cir., No. 02-1402. To read an article by an attorney on the case, go here.
It was in connection with this case that Moglen, who is also a programmer, wrote an affidavit for the judge, to help her to understand whether or not Progress Software Corp. had violated the GPL, in support of MySQL AB's request for a preliminary injunction. If you need to brush up on what a preliminary injunction is, go here and scroll down to "This Article Explains What Could Happen Monday", where I explained it, with references.
The short version is it's the kind of injunction you ask for at the start of a case, before the trial, the kind SCO didn't ask for. It's hard to get one, but the judge in this case granted two of the three prongs asked for, and in refusing the third, basically said that there were issues of fact that she couldn't determine prior to trial. But she did write in her order that on that third prong, MySQL "seems to have the better argument here". Under that strong hint, the case settled, as you can see from this press release. Here is a pdf of her order deciding the preliminary injunction issue.
You can read the entire Moglen affidavit here, but I will quote the relevant paragraphs, because reading it you will understand exactly why SCO is never going to be able to tack further restrictions on top of the Linux kernel in a way that will help them. Apparently, they confused the ability to release proprietary software in addition to GPL software in the same box with the ability to put a proprietary program together with a GPL, making the whole thing proprietary somehow. In their dreams. Or maybe they confused the BSD licenses with the GPL. Whatever their issue of confusion may be, it's an Impossible Dream. Here's how the GPL actually works, according to Moglen:
"16.The GNU General Public License ('GPL') is the legal heart of the free software movement. The goal of the GPL is to use copyright law to create a 'commons,' a collection of shared resources to which anyone can add, and from which anyone can borrow freely, but from which nothing can be permanently removed. This concept, of using copyright to create a commons, rather than a domain of exclusive ownership, is sometimes called 'copyleft,' and the GPL is an example of one form of 'copyleft license.' A copy of the current version 2 of the GNU GPL, first published in 1991, is attached hereto as Exhibit B.
"17. Free software is not in general in the public domain. If contributors to free software projects were placing their code in the public domain, it could be immediately incorporated by others into proprietary, non-free projects, from which those appropriators could derive value without returning anything to the commons. Instead, free software is copyrighted, but through the terms of the GPL, copyright is used to protect the common interest without excluding anyone from the rights to execute, copy, modify, and redistribute that are of the essence to free software.
"18. The GPL is a very simple form of copyright license, as compared to other current standards in the software industry, because it involves no contractual obligations. Most software licenses begin with the exclusive rights conveyed to authors under copyright law, and then allow others access to the copyrighted work only under additional contractual conditions. The GPL, on the other hand, actually subtracts from the author's usual exclusive rights under copyright law, through the granting of unilateral permissions. When a work of copyrighted software is released under the GPL, all persons everywhere observing its terms are unilaterally permitted all rights to use, copy, and modify the software. Because these permissions are unilaterally given, users who wish only to use the software themselves, making copies for their own use, or who wish only to make derivative works for their own use, do not have to 'accept' the license, because they have no reciprocal obligations under it.
"19. If a user wishes to redistribute software she has received under the GPL, whether in modified or unmodified form, the license permits that activity as well. Here, however, the permission is qualified by three primary conditions:
"--Redistribution must itself occur under GPL and only GPL, with no additional license conditions. (See Exhibit B, §2(b));
"--Redistribution must include 'source code,' the human-readable form of computer programs that allows programmers to understand and modify computer programs for themselves, as opposed to 'object code,' which is the 'machine language' version of computer programs that is very difficult for programmers to understand or modify. (See Exhibit B, §3(a)); and
"--Redistribution must include a copy of the GPL, so that users are aware of their rights to use, copy, modify and distribute, and so that anyone engaged in redistribution is also aware of the conditions under which redistribution is permitted. (See Exhibit B, §1).
"20. As a result of these conditions on redistribution, the GPL achieves the goal of creating a commons. Anyone can copy and modify program code released under the GPL, but no one can combine that program code with any other code and then release the combination on non-GPL terms. Anyone who contributes program code to a GPL-based programming project knows that her contribution will remain freely available for others to use, fix and improve, but that no one will be able to exclude others from having the same rights. The GPL uses copyright doctrine to achieve the result of the principle that we should all 'share and share alike.' Thus anyone who combines GPL-licensed software with other program code must release the combined work under GPL, and must provide the source code for the entire derivative work.
"21. Because anyone in possession of a program released under GPL must be in actual possession of the license itself, the licensor is entitled to presume that anyone engaged in redistribution is actually on notice of the only terms on which redistribution is permitted. Redistribution on any other terms is intentional violation of the GPL. (See Exhibit B, §5).
"22. . . . Under §4, any licensee who violates the GPL loses his right of distribution, until such time as that right is restored by affirmative act of the copyright holder. The distributees of that licensor, however, retain their rights under the license, including their rights of distribution. (See Exhibit B, §4). . . ."
To read the sections of the GPL he refers to, go here.If SCO were to try to attach any further restrictions, then it would invalidate its right to release under the GPL, at which point the issue becomes copyright law. Since, as Moglen explains, the GPL gives you more rights than you would have under copyright law, not less, a reversion to copyright law is not in SCO's best interests, particularly because you have no right to release at all without the GPL. Plus, they continued to release even after they said they would stop distributing Linux. Last I looked, they were still making rpms available, though I don't recommend that you accept their offer, and if they didn't do it under the GPL, they infringed the copyrights of all the individual contributors to the kernel. Here's what the GPL says about this aspect:
"4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
"5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
"6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
"7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program."
You can also see from the affidavit that companies that wish to use GNU/Linux are free to do so with no restrictions whatsoever, as long as they don't distribute the software to anyone outside the company. They can change, rewrite, add, subtract, do whatever they like, as long as they use what they write in-house only. Here's what the license says on this:
"Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does."
If they decide to distribute what they have done, that is when the restrictions under the GPL kick in, not one minute before. At that point, the restrictions are precisely these:
"2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
" a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
" b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
"c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
"These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
"Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
"In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
"3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
" a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
" b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
" c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)"
The restrictions under the GPL, for those distributing under it, are made much of by MS, because they make it impossible for proprietary software companies to steal the voluntary work of programmers who decided to use the GPL, like the Linux kernel programmers, and then add a proprietary twist or two and then capture the resulting mix and make it all proprietary without giving anything back. That's not a bug; it's a feature. In other words, the GPL blocks SCO from doing what it wants to do.
But most of the companies in the world that use software don't distribute software. They just use it for their internal business use. And they are free to do so, without any worry about the GPL, as long as they keep their software for their own private use.
I don't know why no July 9 announcement was made. Maybe someone there in Utah finally read the GPL. It's powerful, because copyright law is powerful, and the muscle inside the GPL is copyright law, which is why it so seldom happens that the FSF has had to go to trial to litigate violations. Cases of violation get worked out, in a kind of fizzle out, as soon as the violator finally understands what the GPL actually means. I hope that is what is now happening. It wouldn't settle IBM's case, which is based on contract law, not the GPL, but it would mean no licensing scheme adding restrictions on top of a GPL product can ever happen without terminating the right to release at all. So, what happens to a dream deferred? I hope the last on the list.
This brings me to the most significant news of the day, namely this article reporting:
"The Fortune article also noted that HP had let SCO look at the Linux source it uses and found no instances of violation of SCO's IP."
How can that be? What does HP use? Do they use a kernel? Anyone care to clarify? I know HP is a sponsor of the IA-64 Linux Project, for one thing. I see that they distribute RedHat and SuSE and others, so I gather they aren't talking about their use of their distributions. So what Linux source is HP using that is clean? It's possible someone at Fortune got it wrong, or the quote about the Fortune article, but if not, the big issue of ripping out offending code may have just gotten easier.
On Opinder Bawa leaving SCO, reported in The Inquirer, it's definitely true. I verified. I don't know his motive. I also found out he's only been with the company since 2001. The Annual Report for the year ending October of 2002, page 5 mentions that. Mr. Bawa appears to be a Linux guy. Maybe they don't need any Linux guys any more. Maybe he couldn't take it. Who knows? I wish him well. I tried to reach him by email, but his Yahoo account is shut down, and trying to reach him at SCO was unsuccessful too. If you'd like to read some of what he's written go here and here. Articles in which he is mentioned here and here and here and here and here.