4

What prevents the following situation?

  1. Alice writes Alice's Great Open-Source Program and releases it under the GPL.
  2. Bob creates the derivative work Bob's Great Open-Source Program With Racing Stripes, which is just Alice's program with racing stripes on it, and dual-licenses it under the GPL and another license.
  3. Charlie creates Charlie's Closed-Source Program With Racing Stripes based on Bob's program and releases it under a closed-source license only.

I don't see anything in the GPL v2 preventing this. Particularly, I see a requirement that Bob release his program under the GPL, but I don't see a requirement that he not also release it under any other licenses. (Now that I've checked the GPL v3, I can see that version has a sentence saying "This License gives no permission to license the [derivative] work in any other way". Not sure how much legal effect that has, but it's there.)

(Does it matter if Bob's modifications are more substantial than just racing stripes?)

  • Where did you get the idea that step two is allowed?!? The whole point of copyleft licenses is they always apply. – curiousdannii Aug 9 '17 at 3:45
  • Bob can license his own work however he pleases, but he doesn't have permission to release the parts he got from Alice under any other license. – immibis Jan 16 '18 at 2:43
7

Your error is in step 2, when Bob licenses the whole work under a permissive license.

Bob's derivative is composed of Bob's work and Alice's work. In general, Bob can't change the license on Alice's work (unless Alice has allowed him to do so). Alice has only allowed anyone to use her work under the terms of the GPL, so Bob can't offer Alice's part of the combined work under a different license.

This isn't so much a restriction written in the GPL as it is the normal operation of copyright law. In legal terms, a license is a granting of some rights you have. You can't offer rights you don't have. If you're not the owner of a work's copyright, you can't license the rights that exist in that copyright.

Bob is free to offer his own contributions, under a more permissive, GPL-compatible license, but when he creates a compilation with any portion of someone else's GPL-licensed work, then the GPL-licensed part must always remain under the GPL (and therefore the work as a whole must also be GPL licensed, though it may include more permissively-licensed GPL-compatible components).

  • 1
    Not only can't you grant rights you don't have, you can't grant rights you don't have the right to grant. The GPL does not permit anyone to grant any rights to anyone else's works. When Bob distributes the work he derived from Alice's work, the recipients get a license from Alice to any protectable expression Alice created that remains in Bob's work. (The GPLv2 makes this clear in section 6, but it's copyright law anyway, at least in the US.) – David Schwartz Jan 16 '18 at 0:58
5

I don't see anything in the GPL v2 preventing this.

There is nothing that grants such permission either. Since no permission is granted and "all rights [are] reserved" in general with copyrights, there is no need for an explicit "prevention", only explicit permissions. The GPL does not allow re-licensing under another license... so step 2. is a violation of the GPL (either v2 or the more explicit v3) and the buck stops there: Bob is no longer licensed when violating the GPL conditions. So 2. and 3. are hypothetical.

The GPL v2 2.b says:

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

Section 5 is clear on the topic too:

However, nothing else grants you permission to modify or distribute the Program or its derivative works.

The GPL v3 Section 5. says:

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. [...] This License gives no permission to license the work in any other way, [...]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.