I have a small quibble with the GPL on a point that seems that it could be improved, unless, of course, my interpreation is incorrect. The existing license seems to produce undesireable behavior in a particular (admittedly, unusual) case.
Let us suppose that a company (Small Company) produces a software package (Smart Writer). Small Company sells their software for years under a closed-source license. Small Company hears about the value that GPL-licensing their software provides, and decides to GPL (v2)-license their software. Small Company produces several releases of their Smart Writer. They do not use any code contributions from the community. Smart Writer is a very good package, and large chunks of code from it are used in a stunning array of GPLed packages. RMS himself includes ten thousand lines of code from Smart Writer in core code in his new package (Fast Lisp Interpreter), interweaving it throughout Fast List Interpreter's codebase. Small Company is then purchased by a much, much larger company (Macrosoft, Inc). This includes "all current intellectual property assets". Macrosoft wishes to prevent others from using its new IP freely in GPLed software. It goes back, and discovers that one of Small Company's developers included (in a version of Smart Writer predating GPL release) twenty lines of code from a software package that Small Company did not have a license to, and is not available under a GPL-compatible license. Nobody in the GPL community has used these twenty lines of code in their software. Normally, this is not a problem -- a company may remove offending code and do a re-release. However, Small Company no longer controls Smart Writer. Macrosoft is in charge. Macrosoft asserts that because Small Company did not have ownership of the full Smart Writer codebase, Clause 7 of the GPL applies (prohibiting distribution under the GPL unless such distribution may be done legally) to all releases of Smart Writer that Small Company attempted to perform. Macrosoft thus claims that the Smart Writer releases were never legally released under the GPL. RMS asks Macrosoft to re-release a Smart Writer release with the offending twenty lines of code removed. Macrosoft refuses, and says that the GPL-using community must instead remove all instances of Smart Writer code from all GPL software, or it will sue for copyright infringement. In the meantime, the GPL-using community must cease distribution of all software using Smart Writer code. Even more disturbing, let us assume that RMS passes away from computer monitor radition before he can finish excising the ten thousand lines of Smart Writer code from his Fast Lisp Interpreter package. Since he owns the Fast List Interpreter copyright, and has never done a legal release of Fast List Interpreter, this package has never been GPLed. His heirs refuse to GPL-license the Fast List Interpreter package. Thus, Fast Lisp Interpreter is not GPLed. In the GPL v2, clause 6 states: "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." Perhaps clause 6 should specifically state that license(s) are granted to all portions of a Program released under the GPL. This would mean that even if the case of the GPL license applying to the Program being shown to be invalid, any GPLable portion of the Program is still available to anyone using source from that Program. This way, if someone in the GPL community had used the twenty offending lines, they would have to remove...those twenty lines. The remainder of the codebase would still be GPLed. Thoughts? Perhaps I've misinterpreted the GPL, or missed some portion of a clause that applies. It would be nice to know that this isn't an issue. :-) -- Best of luck, Mark Schreiber
pgpOBmc6l8O4L.pgp
Description: PGP signature