The Free Software Foundation released the third discussion draft on the GNU General Public License on March 28. As expected, it contains language designed to prevent patent partnerships that extend protection from patent litigation to only the companies involved in such agreements.
Controversy over deals such as the patent partnership between Microsoft and Novell has greatly delayed the release of GPL Version 3.
In an explanatory note, the Free Software Foundation stated that, “We have also added new terms to stop distributors from colluding with third parties to offer selective patent protection, as Microsoft and Novell have recently done. The GPL is designed to ensure that all users receive the same rights; arrangements that circumvent this make a mockery of free software, and we must do everything in our power to stop them.”
What this means, according to the FSF, is that its strategy in the new GPL Version 3 will have two parts. First, any license that protects some recipients of GPL-licensed software must be extended to all recipients of the software. Second, it prohibits anyone who made such an agreement from distributing software released under GPL Version 3.
The FSF is also “considering whether or not this ban should apply when a deal was made before these terms were written, and we look forward to community input on this issue.” In other words, the FSF is considering trying to make it impossible for Novell to distribute GPL Version 3-licensed software because of its existing Microsoft patent agreement.
FSF is also trying, once again, to address the “Tivoization” of code covered by the GPL. The GPL code in the popular TiVo digital video recording device uses signature checks in hardware to prevent anyone from modifying its code. Since under the GPL a fundamental right is the right to read and re-use this code, this flies in the fact of the GPLs intent.
Previous drafts of the GPLv3 attempted to stop vendors from this course of action by defining “Corresponding Source” to include any encryption or authorization keys necessary to install new versions of the software. However, there has been doubt as to whether this would have the intended effect.
So, in this third discussion draft, the revision Section 6, according to the FSF explanation, requires that “parties distributing object code provide recipients with the source code through certain means. Now, when those distributors pass on the source, they are also required to pass on any information or data necessary to install modified software on the particular device that included it. We believe that this will more precisely accomplish our goals, and avoid potential problems with expanding the definition of source code.” This is a similar approach to the one already used in the GPL for enabling users to link proprietary programs to modified libraries.
In a sop to Tivo-style vendors, the scope of these requirements has also been narrowed. This draft introduces the concept of a “User Product,” which includes devices that are sold for personal, family or household use. Distributors are required to provide installation information only when they convey object code in a User Product.
At the same time, however, they provide the source code to the world on a public network server. This code can be hosted on different servers from the object code, the actual running program code, provided that the source is made available simultaneously with the object code.
The FSF has also modified its new license compatibility clause to make it both simpler and cheaper for developers to comply. The new discussion draft simplifies Section 7, in part by removing sections 7b4 and 7b5. Compatibility with the Affero GPL, which is meant to extend the GPL over software running on a network, is taken care of by an explicit upgrade clause in Section 13.
This draft includes a number of small improvements to help clarify particular requirements and make the license easier to use worldwide.
For example, the definition of System Libraries in Section 1 has been adjusted to more clearly include standard libraries in all programming languages. It also makes it clear that System Libraries do not have to be included with the program’s source.
The warranty disclaimer in Section 15 now includes an additional paragraph that should make the entire section more applicable worldwide. If desired, Section 7 also allows licensors to add their own warranty disclaimers that meet any relevant local requirements.