CAMBRIDGE, Mass.—The Free Software Foundation on Monday released a 21-page document that explains the rationale for the changes it has proposed to the GNU General Public License in the first draft discussion document of GPL 3.0.
The document was released at the First International Conference on GPLv3 here at MIT (the Massachusetts Institute of Technology).
“Our goal is for the GPLv3 public discussion process to be as transparent and accessible as possible.
“We look forward to receiving many informative and helpful comments on the draft of GPLv3 from all relevant viewpoints across the free software community,” said Richard Stallman, the founder of the Free Software Foundation and the licenses original author, and Eben Moglen, the FSFs general counsel, who drafted the first discussion version.
While computer technology has changed since 1991, these changes were not primarily what motivated them to revise the GPL, but rather “the maintenance of users freedoms,” they wrote in the document.
In fact, the principal challenges to the free software community have been changes in the law, they wrote, especially the “unwise and ill-considered application of patent law to software. Software patents threaten every free software project, just as they threaten proprietary software and custom software.”
Any program could be destroyed or crippled by a software patent belonging to someone who has no other connection to the program, they said, adding that most countries have followed the direction of the United States in allowing software to be patented to at least some degree, and, by the end of the decade, commentators were criticizing the GPL for doing too little to combat patents.
“A programs own license cannot protect it from the threat of software patents. The only real solution to the problem of software patents is to abolish them. However, we can protect against attempts by some participants in a programs development to use patents against other participants,” Stallman and Moglen wrote.
GPLv3 brings an explicit patent license that covers any patents held by the programs developers, replacing the implicit license on which GPLv2 relied.
GPLv3 also implements a narrow scheme of patent retaliation against those who undertake this precise form of aggression.
“Our draft of GPLv3 makes clear that we do not entirely share the current enthusiasm of others in the free software community for including broad forms of patent retaliation in licenses. Theorists of patent retaliation have, in our view, overestimated the deterrent value of denying access to free software,” Moglen and Stallman said.
The draft license distinguishes between activities of a licensee that are permitted without limitation and activities that trigger additional requirements.
The basic freedoms to privately modify and run the program are guaranteed, but the right to privately modify and run the program is terminated if the licensee brings a patent infringement lawsuit against anyone for activities relating to a work based on the program.
“This narrowly targeted patent retaliation provision is the only form of patent retaliation that GPLv3 imposes by its own force. We believe that it strikes a proper balance between preserving the freedom of a user to run and modify a program, and protecting the rights of other users to run, modify, copy and distribute code free from threats by patent holders,” they said
The provision was particularly intended to discourage a GPL licensee from securing a patent directed to unreleased modifications of GPL code and then suing the original developers or others for making their own equivalent modifications, the rationale document said.
Next Page: DRM threatens free software.
DRM Threatens Free Software
DRM (Digital Rights Management) is another threat to free software, they said, as DRM is fundamentally at odds with the spirit of the free software movement.
“Unfree software implementing DRM technology is simply a prison in which users can be put to deprive them of the rights that the law would otherwise allow them. Our aim is, and must be, the abolition of DRM as a social practice. Anything less than complete victory leaves the freedom of software in grave peril,” they said.
Even as companies imposing DRM prohibit access to digitally restricted data by users, they often try to turn free software into tools of user restriction, Stallman and Moglen wrote, adding, “We must not tolerate this assault on users freedom merely because the software used for this assault is a version of our own. The GPLv3 has been designed to forbid such perversion of free software.”
The ability to oppose DRM by means of free software licenses has been limited, but the new license does provide developers with some forms of leverage that they can use against DRM. The new provisions essentially direct the courts to interpret the GPL in light of a policy of discouraging and impeding DRM and other technical restrictions on users freedoms and illegal invasions of privacy.
“This provides copyright holders and other GPL licensors with means to take action against activities contrary to users freedom, if governments fail to act. If a covered work is distributed as part of a system for generating or accessing certain data, the effect of this license is to prevent someone from claiming that some other GPLd program that accesses the same data is an illegal circumvention,” Moglen and Stallman said.
Another challenge facing the free software community is the proliferation of incompatible free software licenses, they said.
While the goal was not to make the GPL compatible with all such licenses, Version 3 contains provisions designed to reduce license incompatibility by making it easier for developers to combine code carrying non-GPL terms with GPL code.
“It is important that the GNU GPL enable business to succeed while respecting freedom, and we do not intend to interfere with the synergy between them,” Stallman and Moglen wrote.
GPLv3 takes a new approach to the issue of combining GPL code with code governed by the terms of other free software licenses.
“Our view, though it was not explicitly stated in GPLv2 itself, was that GPLv2 allowed such combinations only if the non-GPL licensing terms permitted distribution under the GPL and imposed no restrictions on the code that were not also imposed by the GPL,” the rationale document said.
In practice, this policy was supplemented with a structure of exceptions for certain kinds of combinations. Version 3 formalizes the circumstances under which a licensee could release a covered work that includes an added part carrying non-GPL terms. <>It distinguishes between terms that provide additional permissions, and terms that place additional requirements on the code, relative to the permissions and requirements established by applying the GPL to the code.
“It explicitly allows added parts covered by terms with additional permissions to be combined with GPLd code. This codifies our existing practice of regarding such licensing terms as compatible with the GPL. A downstream user of a combined GPLd work who modifies such an added part may remove the additional permissions, in which case the broader permissions no longer apply to the modified version, and only the terms of the GPL apply to it,” the authors said.
For those terms that impose additional requirements, this version extends the range of licensing terms with which the GPL is compatible. An added part carrying additional requirements may be combined with GPLd code, but only if those requirements belong to a set enumerated in the license.
“Unlike terms that grant additional permissions, terms that impose additional requirements cannot be removed by a downstream user of the combined GPLd work, because no such user would have the right to do so,” they said.
Next Page: GPL compatibility with other licenses.
GPL Compatibility with Other
Licenses”>
The requirements could include preservation of copyright notices, information about the origins of the code or alterations of the code, and different warranty disclaimers.
They could also include limitations on the use of names of contributors and on the use of trademarks for publicity purposes.
“In general, we permit these requirements in added terms because many free software licenses include them and we consider them to be unobjectionable.
“Because we support trademark fair use, the limitations on the use of trademarks may seek to enforce only what is required by trademark law, and may not prohibit what would constitute fair use,” the authors said.
While the draft document retained the existing definition of “source code,” it adds an explicit definition of “object code” as “any non-source version of a work.”
Object code is not restricted to a narrow technical meaning and is to be understood broadly as including any form of the work other than the preferred form for making modifications to it.
“Object code therefore includes any kind of transformed version of source code, such as byte code. The definition of object code also ensures that licensees cannot escape their obligations under the GPL by resorting to shrouded source or obfuscated programming,” the document said.
Karen Copenhaver, the general counsel for Black Duck Software Inc., said a primary issue to be vetted by the community during the GPL 3.0 review process is whether the right to share and improve software licensed under the GPL extends to end users.
“In other words, is a user of a Web-based application that is based on modified GPL-licensed code entitled to request and receive the source code for the application? This could be one of the great debates during this process,” she said.
Check out eWEEK.coms for the latest open-source news, reviews and analysis.