5

Does private GPL open source exist? If so, how it works if mixed with public GPL?

  1. I read that a company may sell a binary under the GPL, and only people who bought it can have access to the GPL source code, and they cannot redistribute it (or improvements to it) publicly. Is that a real thing?

  2. If 1 is real. Can a public GPL project be combined with the private GPL project?
    Then, can the author of the public GPL project demand that the improved and functional parts of his project (a code that works and has no private closed source dependencies) are also made available publicly?

If 1 is no then 2 is nothing.

6
  • 17
    "I read that a company may sell a binary under gpl, and only who bought it can have access to the gpl source code, and they cannot redistribute it (or improvements to it) publicly." Could you please give a link to where you read this? I am pretty sure you have misinterpreted the source. Commented Oct 10, 2023 at 17:49
  • 6
    GPL users always have the legal rights to redistribute the software. But many companies have realized that they can discourage their customers from exercising this legal right under their free will by discontinuing all development/support/update contracts if such redistribution (of source code or binary) has occurred. This so-called "private GPL" business model that has been used by many software consultants for years. Originally there has been some controversy, but after Red Hat / IBM also started adopting similar policies, we can probably say this is completely legal with 99% confidence. Commented Oct 11, 2023 at 8:51
  • 5
    "after Red Hat / IBM also started adopting similar policies, we can probably say this is completely legal with 99% confidence. " Because big companies never do something illegal
    – EarlGrey
    Commented Oct 12, 2023 at 12:29
  • The philosophy underlying GPL is that "If I have a binary I must be able to change it any way I like and give that to anyone I want" which for most situations mean you need the corresponding source code and GPL say that if you provide the binary you must provide its sources too on request. Anything less isn't GPL anymore. The underlying mechanism powering this is copyright, and has proven very efficient. Commented Oct 13, 2023 at 5:55
  • @比尔盖子 I don't think it is yet clear whether this is legal or not. It is e.g. discussed at the moment in the case of Red Hat Linux. There have probably no court decisions yet about something like that. Commented Oct 13, 2023 at 14:24

3 Answers 3

29

Your first statement is ultimately false. Anyone who receives a copy of GPL'd software must have the right to redistribute it, so we can be sure that second half of statement #1 is false.

However, the first part of #1 contains an important half-truth: there can be voluntary "private" possession of GPL code. If Author A writes some new modifications to GPL'd software and sells it to Company C, then Company C is allowed to share those modifications, but they might not want anyone else to have those modifications (i.e., because sharing them might help C's competition). In this way, the first half is true:

a company may sell a binary under the GPL, and only who bought it can have access to the GPL source code

because only recipients have access to the code, and existing holders of the code might have a business interest in not sharing it. Nothing can legally compel them to keep the code private, but nothing compels them to disclose it, either.

6
  • 9
    The last sentence of this answer is important. Some people have the misunderstanding that anyone who prepares a derivative of a GPL'd work must disclose their source. This is not true. The preparation of a derived work does not trigger any responsibilities under the GPL. It is the distribution of such a work produces an obligation to make source available. Commented Oct 11, 2023 at 2:31
  • 4
    Re "It is the distribution of such a work produces an obligation to make source available.", "A" distributed to "C" in the example. The actual key is that you only need to make the source code available to the recipient of the distribution.
    – ikegami
    Commented Oct 11, 2023 at 14:53
  • 2
    I never thought about that, but it's a pretty interesting loophole of GPL: "You could share the source code, but we'll make sure you don't want to". Commented Oct 11, 2023 at 21:03
  • 4
    Actually, it's not generally a loophole: The GPL is intended for the user of the software to have the right and ability to change it, but not to have to make those changes available to anyone else. It gets problematic, when the software is used to provide Saas, for this. the affero gpl was introduced. Commented Oct 12, 2023 at 9:44
  • This is indeed the correct answer, and a past employer of mine was such an Author A. We were commissioned by Company C to write an in-house application for them, and we could quote a lower price by delivering a GPL-licensed application. This allowed us to use a dual-licensed library for free. C would have gotten the source code anyway, since they paid us, so the GPL obligation did not matter.
    – MSalters
    Commented Oct 12, 2023 at 15:28
8

When you receive a GPL'ed binary three primary rights are conveyed to you.

  • You can redistribute the binary.
  • You can request/obtain the source code.
  • You can redistribute the source code.

Note: If you choose to redistribute a binary that has been compiled from modified source code you also have the obligation to distribute the modified source code - if requested by the person you sent the binary to.

If you modify and compile a program, you can choose not to distribute it at all - meaning you chose not to send any part of the modified source code or binary to anyone else. Assuming you do this - don't release anything - no one can compel you to do so under the terms of the GPL.

You could consider this to be "Private GPL", however it is the fact that you don't redistribute it that makes it "Private". As such you can combine it with any number of additional GPL projects - as long as nothing is redistributed - you can't be compelled to release any of it by the GPL.

You may also consider the situation of work for hire on unreleased GPL code to be "Private GPL" where someone is an employee of a company, they enhance an open source product - using the companies hardware, where they are being paid for the work and deploying only to internal servers of the company (no public access). Specifically it is private as the company has no intent to ever release it.

6
  • 2
    Your last paragraph seems like a new question. Remember that this site isn't a forum, so no one can attach an Answer to your Answer to explain that situation to you.
    – IMSoP
    Commented Oct 11, 2023 at 8:36
  • Okay I have edited the last paragraph to make it less interrogatory.
    – DavidT
    Commented Oct 11, 2023 at 15:23
  • 1
    For additional clarity, you may combine the GPL code you received with any other code (not just other GPL code) you have rights to if you don't distribute the result to anybody. Commented Oct 11, 2023 at 15:56
  • If you just hand me a GPL binary, then anybody has the right to demand the source code from you. If you hand me binary and source code, then this gives nobody the right to demand the source from you, but I have the right to distribute it further.
    – gnasher729
    Commented Oct 11, 2023 at 19:26
  • 2
    I am not sure about the "Anybody" part of that statement I think only you can request the source code since I distributed the binary to you or worst case I could charge anyone but you any fee I wanted for the source (again I can't charge you) - however you are correct that once I distribute either the source or binary to you - you are free to distribute it at will.
    – DavidT
    Commented Oct 11, 2023 at 22:30
1

You can have any kind of license. As long as the developer and the customer agree. So I’m sure you can have a license as described. It wouldn’t be the GPL license though. It would probably not be an open source license at all, the way you describe it.

And apart from there being different numbered versions of GPL, there is only one GPL license, and I don’t think anyone could legally call a different license “GPL” or “public GPL” or anything like that.

4
  • 2
    No, you cannot. You cannot take GPL-licensed code someone else wrote, and then approach your customer and agree on a special license for that software or a derivative. That would be a blatant copyright violation and illegal. The practical problem is, that only the original author is eligible to sue... hard to do, if they don't know about the violation of their rights. Commented Oct 12, 2023 at 8:30
  • @planetmaker: The customer might be able to sue for misrepresentation: the delivered product is not what the developer claims it is.
    – MSalters
    Commented Oct 12, 2023 at 15:35
  • @planetmaker You are missing the point. This is about what license you can have, not copyright infringement. Separate things.
    – gnasher729
    Commented Oct 16, 2023 at 14:29
  • @gnasher729 I respectfully disagree. You cannot put another incompatible license on code which lawfully must be licensed under GPL or conditions which are compatible with it. Doing so and conveying that work is copyright infringement Commented Oct 16, 2023 at 15:44

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