8

Let's assume there is a project under GPL2-or-later license. My understanding is that anyone can take the project and make a fork with GPL2-only additions. They could also take the project and make a fork with GPL3-only additions.

Now, what if a company wants to make a proprietary fork? They can take the project, and make half of their changes under GPL2-only and the other half of them under GPL3-only. Since those halves would be a derived work, normally it would infringe, however since the copyright holder is the same entity, they would not sue themselves.

Now, in addition, they could add into their customer contract a binding promise not to sue them for the violation as well. The result would be that no one except their paying customers can legally use the final product.

Now, this is a loophole so obvious, that I am sure it is not possible. But I would like to understand why it is not possible.

11
  • 8
    The industry standard for making a proprietary release of GPL software is to just have an agreement with the customer that the vendor will not provide any tech support if the customer distribute the software to 3rd parties. That's all, nothing complicated. In very large corporate projects with complex software it's enough for the software to be completely useless once the vendor withdraws support because even modifying the correct config file to do something is often impossible to be done safely in a timely manner. So the code is GPL but the knowledge to use it is proprietary
    – slebetman
    Oct 5 at 9:07
  • 4
    Note that by the GPL's own term, 3rd parties have no rights to the software. The only people with rights to the software are 1 - the author and 2 - the customer. Only the customer may request access to the source code of the software. Nobody else. Thus the threat of making a $15 million system unusable due to no longer being supported is generally enough for the customer to not do what you don't want them to do. Generally for such systems the cost of hiring a 3rd party company to take over the maintenance of the code is higher than just paying the original developer for a service contract
    – slebetman
    Oct 5 at 9:11
  • To be clear - is this company going to release/sell this software, or only use it internally?
    – MikeB
    Oct 5 at 15:40
  • The part about "a binding promise not to sue" seems irrelevant to me. The company's customers have no standing to sue the company for GPL violation anyway, since they're (generally) not copyright holders of the original GPLv2/3 software. Oct 5 at 16:15
  • What do you mean by "the same entity"? The copyright holder of the software isn't using their own software under license. They are free to re-"release" (or even refuse to release) it to other parties under whatever license they chose, with whatever of their own modifications they chose. This is commonly done by OSS vendors like Red Hat and ACT, who have GPL and non-GPL releases with some extra stuff in the non-GPL release for paying customers.
    – T.E.D.
    Oct 5 at 19:54

4 Answers 4

6

There are three pieces of code involved:

A: Upstream software, license says "You can distribute under GPL2 or later".

B: Additions, license says "You can distribute under GPL2 only".

C: Additions, license says "You can distribute under GPL3 only".

Distributing A+B or A+C would be fine, but as you say, distributing A+B+C would violate one of the licenses. It's also true that the company wouldn't sue themselves.

But the copyright owner of A can still sue, because the combination A+B+C is not under GPL2, and it is not under GPL3 either. The GPL section 12 applies: "If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all."

The company could work around this by distributing the mutually incompatible components A, B and C separately, letting the user themselves combine them to A+B+C. But same separate distribution option is available to every receiver of the software, so this doesn't limit freedom of the users.

3
  • "But same separate distribution option is available to every receiver of the software" yeah I understand, but the question is if using the software (created by combining the parts) would break any of the licensing. I guess so? But it would infringe even on A's license?
    – graywolf
    Oct 7 at 13:29
  • @graywolf Yes, because A gives permission to distribute only under GPL2+ licenses. The combination is not licensable under any version of GPL license, so you do not have A's permission to distribute A as part of it.
    – jpa
    Oct 7 at 14:10
  • 2
    The company might be able to employ a piecewise distribution scheme such as you describe without violating their license with the upstream owner, but I wouldn't take it for granted. If it went to court, it's likely that the details at least of the nature of the split, the characteristics of the parts, and the company's distribution practices would all factor in to the decision. I could see it going either way, depending. Oct 7 at 22:16
23

You say "the copyright holder is the same entity" but this is true only for the changes introduced by the downstream distributor. There is also the upstream distributor who licensed their work under GPLv2-or-later.

Suppose Alice releases a GPLv2-or-later work, and Bob tried to release a modified work that includes both GPLv2-only and GPLv3-only additions. There exists no selection of Alice's choice of upstream terms under which Bob can release a modified work including both v2 and v3 components without causing a violation of one or the other of Alice's GPL grants.

If there is no Alice in this situation, and Bob really is the only copyright holder, then Bob can simply employ an open core model saying, say "this part of my software is GPLv2+, and that part is proprietary; contact me for licensing arrangements" without any elaborate license gymnastics.

1
  • 15
    To add to this answer: If Alice finds out that Bob is distributing the software in violation of Alice's GPL grants, then Alice has the right to sue Bob. That is completely independent of whatever contract language Bob uses with Bob's customers. Oct 5 at 10:55
9

GPLv2+, or GPLv2-or-later, is shorthand for a licensing statement that says

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

(text taken from GPLv2 rubric)

The original project being distributed under GPLv2+, this company can only make and distribute GPLv3-only modifications if they choose to receive the project under GPLv3 (if they were to choose to receive it under GPLv2, those modifications would be incompatibly licensed, and therefore undistributable). The FSF clarify this in the compatibility list.

Having decided to receive it under GPLv3, they cannot then distribute it with GPLv2-only modifications, for similar reasons.

If they were to choose to retain the v2/v3 option for downstream recipients, this would require their changes also to be GPLv2+-licensed.

Essentially, if they decide to lock in a version of the GPL for their changes, they lock in a version for the whole codebase as redistributed by them, and that restricts which version they can lock their changes to. If they decide against locking in a version, that requires them not to lock it in for their changes either. To do otherwise is to violate upstream's copyright.

6

... it would infringe, however since the copyright holder is the same entity, they would not sue themselves.

At least in Germany (but it should be similar in the US), a license contains the conditions that others (but not the author of some work) have to follow when using the work.

For this reason, the author of some work cannot infringe his own copyright.

... they could add into their customer contract a binding ...

Even if the company does not call it "license", the terms and conditions that must be accepted to use some work (= the complete software) are a "license".

In your example, these terms and conditions (= license) contain the condition that says: "Only paying customers are allowed to use this software."

This is not a license that is compatible to GPL.

The company does not infringe the copyright of the code written by the company, but it infringes the copyright of the original software.

And the author of the original software can sue the company!

2
  • Would anything change if the company did not distribute the product as is, but in two, separately purchased by clients, half, one under 2-only and other 3-only? And customer would do the reassembly? Would the customer in this case infringe only on the company (due to combination of 2-only and 3-only parts), or on original author as well?
    – graywolf
    Oct 7 at 11:42
  • @graywolf If the company has not allowed the customer to re-assemble the parts, the customer would infringe the rights of the company. From my understanding, the company infriges the rights of the original author if it allows the customer to re-assemble the parts. (Granting the customer not to sue him is some form of "allowing".) Oct 9 at 12:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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