The Free Software Foundation has just posted the first draft of their proposal for a version 3 of the GNU General Public License, the most popular Open Source license and the one that started the “copyleft” movement (where software is distributed freely, under the condition that all derived versions of the software must remain free as well). That’s pretty big news; the last update to version 2 was in 1991.
At first sight, the new version still looks pretty much like the old one. The “viral” aspect of the license seems to have been made a little more explicit, and there’s a paragraph titled “Liberty or Death” which seems a bit out of place with the faux-legalistic tone of the rest of the document — I wonder if that will survive into the final version.
Other than that, the big changes appear to be about patents and DRM, as was to be expected. The patent-related clauses do not appear to go as far as some would wish, but the license now explicitly gives you the right to threaten “patent retaliation” against those who would threaten to use their patents against you. I assume that this makes the GPL3 compatible with the Apache Software License? (As explained here, the ASL has a patent retaliation clause which makes it more restrictive than, and therefore incompatible with, GPL2).
As for DRM (Digital Rights Management, sometimes referred to as Digital Restrictions Management), the license does not forbid GPL’d software to implement DRM altogether, but it does state that “No covered work constitutes part of an effective technological protection measure: that is to say, distribution of a covered work as part of a system to generate or access certain data constitutes general permission at least for development, distribution and use, under this License, of other software capable of accessing the same data.” Nice one!
One thing which is significantly missing, is a clause about using GPL’d software to offer functionality on a public server. Should the users of that server be able to demand the source code of the software they are using? On the one hand, this would place a large burden on the owners of such a server, and make a lot of people shy away from the use of Free Software. On the other hand, with the rise of web services and other means of making software available without actually distributing it, this could be seen as a way to circumvent the GPL.
For example, see Joel Spolsky‘s new product, Copilot, which is offered as a commercial service and is based on a heavily modified version of VNC. The client software is distributed to the users and is available with source code, but the server software is never distributed and therefore Fog Creek is able to keep the source code proprietary, even though it is based on a product which is licensed under the GPL. It’s all legal and proper, but one wonders if this is what the original VNC developers had in mind?
This is one of the things that were specifically mentioned as something which v3 of the GPL would address. Nontheless, this draft version is silent about it, and the Rationale document explains why. “Given the variety of needs and concerns in this area, in which different parties have disparate and strongly-held positions, we have chosen not to add requirements about public use of modified versions in the GPL itself. Instead we have made a variety of possible license requirements compatible with the GPL, through an enhanced compatibility provision; thus we leave individual developers scope for choosing among requirements to apply for public use of their code. We have intentionally done nothing that might threaten to divide free software developers from free software users.”
I think this was the right decision. No matter what choice the FSF might have made, it would have been the wrong choice according to roughly 50% of the people. The expanded compatibility provisions also make it easier to make a GPL’d program or library co-operate with, for example, an Apache-licensed program.
All in all, it looks like this new version was worth the wait! Updated and modernized to reflect new concerns that have come up in the past fourteen years, but without losing the essence of what made the GPL succesful, or trying to micro-manage things that are better left to sort themselves out in practice. I’m looking forward to the final version!