The Fellowship / Fellows / ciaran / Ciarán's free software notes

Ciarán's free software notes

Ciaran O'Riordan's irregularly kept software freedom journal

Limit entries displayed: [ 2 ] [ 4 ] [ 6 ] [ 8 ]

GPLv3: Simplicity and Length

Everyone wishes that free software licences were shorter. The good news from the GPLv3 process is that by changing the LGPL from being a whole licence to being an additional permission that can accompany the GPL, the LGPL has shrunk drastically and the proposed GPL and LGPL texts, combined, are shorter than the current GPL and LGPL combined. But GPLv3 itself will indeed be longer than version 2 is.

Additional words are necessary to protect against additional problems, to ensure it works the same across national boundaries, and to clarify the meaning of the licence. Since FSF started soliciting comments in January 2006 about how to improve the GPL, there have been few or no suggestions as to how it could be significantly shortened.

But longer doesn't have to mean more complex. GPLv3 is simpler in some ways, and I'd like to describe how it was made simpler so that maybe some people can see other parts of the licence that those same principles can be applied to.

  • Clarity of wording: When something is not defined, the reader will have to check their local laws to see what happens in undefined cases. For example, "distribution" was undefined in GPLv2, but re-labelled as "conveying" in v3 to avoid clashing with existing definitions of "distribution" in local laws, and it has been defined. This should make it easier to comply with the licence.
  • Clarity of intent: Similarly, GPLv3 adds words to clarify what is intended to happen in new circumstances, such as described in the recent piece I wrote on GPLv3 and the EUCD/DMCA.
  • Labelling: Each section in v3 has a descriptive title, unlike version 2 where each section only had a number. This just makes it easier to find what you're looking for.
  • Layout: All related things should be grouped together, and each clause should be in the section you'd most expect it to be in.

The number of words needed to ensure that software users had the four freedoms in the 1970s was zero. There were no software patents, no DMCA/EUCD laws, software generally came with source code, and there was generally nothing limiting a person from redistributing software.

As software distributors started blocking these freedoms by legal and technical means, it became necessary for software that was intended to come with those freedoms to be accompanied by licences granting those freedoms and requiring others to pass them on when they pass on the software.

GPLv1, written in 1989, had 1,500 words. GPLv2 has 2,300 words. Draft 2 of GPLv3 has 4,000 words. The most important implementation detail is that it has to work in court, and this can't be compromised for the sake of making a shorter text. But if you can see ways to make it simpler, that would be very useful because it's not only technology lawyers that have to read the GPL, it's software developers and judges too.

-- 
Ciarán O'Riordan,
Support free software: Join FSFE's Fellowship

Why GPLv3 says additional permissions are removable

  1. Intro
  2. Why this changes nothing substantial
  3. If they're removable, is there a point?
  4. Can't I require that others preserve my additional permissions?
  5. Permissions and requirements

Intro

As with any copyright licence, software developers who use any version of the GPL can also grant additional permissions to recipients for code that they hold the copyright of. That is, they can say that you can distribute the software under the terms of the GPL, and they can additionally say that, at your option, you can also distribute the software in this way or that way.

About such additional permissions, the following words are proposed for GPLv3, in discussion draft 2: "When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it." As I see it, these words actually don't change the nature of such additional permissions at all. This topic has come up a few times when I've been discussing GPLv3 with people, so here's my understanding of this issue.

Why this changes nothing substantial

If person A writes some code and puts a notice on it saying "this software can be distributed under the terms of the GPL, or, at your option, you can blah blah blah...", and person B gets a copy and writes some more code and person B puts a notice on their code saying their code "can be distributed under the terms of the GPL", then the only way to distribute the combination of A's code plus B's code would be to distribute it under the GPL. The additional permission, which is only on A's code, would not apply to B's code and would therefor not be an option for distributing the combination as a whole.

Thus, third-parties can always render additional permissions inapplicable to their forked versions of a project. This is true for any version of the GPL. The third party just has to modify the software in some way and add their copyright notice to their modifications. GPLv3 doesn't change this. The meaning of the change proposed for GPLv3 is simply that you don't have to keep those inapplicable legal notices in your project. If you like, you can delete them.

The benefit is that it avoids the messy situation where some code in a project previously had additional permissions, and now it's hard to separate the old code from the new code. Instead, if someone wants to use the additional permission, they should get an old copy from when the additional permission applied to the whole program, and use that. This doesn't change what code can be used with the additional permission, it's ensures that people do it in the legally clean way.

If they're removable, is there a point?

Some people have asked "But if they can be removed, aren't additional permissions meaningless?"

Whether some third-party removes them or not doesn't change that they are available in the original version.

If you publish your software with an additional permission, and I start redistributing your software but with the additional premission removed, then anyone who wants to make use of the additional permission will simply ignore my version of it and get it from you.

Can't I require that others preserve my additional permissions?

Some people also asked "But what if I want my additional permission to apply to all later versions of the program, including other people's modified versions of my program?"

The problem there is that if you only allow people to add code to your project when their code is under the GPL plus the same additional permission that you're using, then, obviously, you are prohibiting people from adding plain GPL'd code to your project or combining your project and another project that is under the plain GPL.

If you do that, then you've made a new GPL-incompatible licence. No one can use your code in their GPL'd projects, and you can't use anyone else's GPL'd code in your project. Version 1 of the GPL was written in 1989 to replace the various incompatible licences of the GNU projects. Version 2 also ensured that all GPL'd projects could share code, and version 3 will too.

Permissions and requirements

Additional permissions should not be confused with additional requirements. Additional requirements are another topic altogether and have almost nothing in common with additional permissions. For some explanation of additional requirements, see How GPLv3 Tackles Licence Proliferation.

-- 
Ciarán O'Riordan,
Support free software: Join FSFE's Fellowship


[ RSS Feed ]

Right menu

Fellow Events

<< April 2008 >>
Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 
Selected Day Today


FSFE Card


DRM.info
© FSFE