Imagine that there is this software, FooBar, which is under the GPLv2 license. Then, in one of your unproductive Saturday afternoons, you modify, let's say a new module, that is a derivative work of FooBar. Just to name it, you call your module FooDisco.

Is clear that if you personally use and run FooDisco, you have no obligations to comply the GPL license to anyone on the Earth.

But, and we enter now in the core of the question, if you decide that your friend A is entitled to get a copy of your software (under all terms of GPLv2), is the rest of the world inheriting the permission as well?

To make the question more formal, what is the definition of "make public a software", and who are the third parties to whom the GPLv2 addresses its concerns (point 2 of the GPLv2 license)?

IMHO, the software is public only when the public (so, everyone) has a mean to obtain the software in binary or source code form. If, for instance, the software is private (it stays on my computer), I can decide to give it to A (full GPLv2, with all rights) but deny to give anything (binary, source code) to B. If B gets the software through A, no problem from my side (the GPLv2 allows to redistribute), but B can't pretend anything (I mean, can't pretend any compliance) from me, since I am compliant towards A, and I have no obligations towards B.

Is that correct? There are references for what I say?

  • When you give FooDisco to your friend, do you tell him "don't give this to anyone else" or do you say "here's FooDisco, which is based on FooBar GPL. Feel free to use or copy or distribute FooDisco according to the GPL"? – Brandin Dec 7 at 13:30
  • Also I think you need to clarify whether, when you give your friend A FooDisco, do you also give A the source code to FooDisco, or do you provide a "Written Notice" to A? If you provide the Written Notice, and A gives your software to B, then B can use the Written Notice to ask you for the source code. – Brandin Dec 7 at 13:35
  • To clarify: I am giving FooDisco to "A" under the full GPL terms, i.e., "Feel free to use or copy or distribute FooDisco according to the GPL". Then, I am giving only the source code, no binaries at all (and therefore, no written notice). However, I don't understand: just saying that I have a GPL software on the web, can be considered as a written notice? – kronat Dec 7 at 13:54
  • 1
    Sorry, the words are "written offer" and it is mentioned in the GPL v2 section 3b. If you don't supply source code, then you must supply a "written offer" instead of the source code, so in that case someone else who gets your software with the written offer would be free to contact you within 3 years and you must supply the source. However if you supply the source already, you don't need to provide a written offer. – Brandin Dec 7 at 14:34

IANAL/IANYL, but what you say seems correct to me. The FSF's GPL FAQ has several relevant things to say on the matter. Firstly, it confirms that you aren't obliged to give FooDisco to anyone at all:

The GPL does not require you to release your modified version, or any part of it.

and then goes on to clarify who you have obligations to if you choose to distribute:

But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program's users, under the GPL.

Note "to the program's users" (bold lettering mine). Person A can demand GPL-licensed source from you, because you gave them the binary and so the GPL gives them that right. Person B can't come along and demand a copy from you, in either binary or source forms, just because you gave one to A, and not having either binary or source, they aren't users. The FAQ clarifies that they have no rights under the GPL to demand FooDisco from you:

If I know someone has a copy of a GPL-covered program, can I demand they give me a copy?

No. The GPL gives a person permission to make and redistribute copies of the program if and when that person chooses to do so.

If A chooses to give a copy to C, then A now has obligations to C with respect to source availability. You have no obligation to C save that you cannot withdraw your implicit grant of GPL rights to them. The FAQ is also explicit about that:

GPLv2 says that modified versions, if released, must be “licensed … to all third parties.” Who are these third parties?

Section 2 says that modified versions you distribute must be licensed to all third parties under the GPL. “All third parties” means absolutely everyone — but this does not require you to do anything physically for them. It only means they have a license from you, under the GPL, for your version.

Again, my bold.

Edit: Amon makes a good point about how the source was made available to A. If you simply gave it to him/her, your obligations end there. If you decide to go for GPL v2 s3b (written offer of source code), then others can take advantage of this offer. For simplicity's sake, don't do that; give A the source, and be done with it.

  • 1
    The source availability for third parties depends on how source availability was handled for friend A. If OP gave them the source code (possibly alongside binaries) then no problem. Then it's A's obligation to ensure downstream source availability. But if OP gave them a written offer to get the code later, that offer also applies to third parties. In this case, B and C can ask OP for a copy of the source in compliance with this offer. – amon Dec 7 at 12:58
  • I'm not sure the written offer from OP towards A would also be valid for B and C — they'd have to ask A (who is obligated to give them source or a written offer), who then has to ask OP to fulfill the request towards A, who can then pass on the source to B and C. Due diligence would mean that A should request the source code from OP before they give binaries to B and C, because their compliance with the license is dependent on OP being compliant. – Simon Richter Dec 7 at 16:57
  • @SimonRichter I don't think so, either. If you thought I was suggesting so, then I apologise. And I agree that A should be sure (s)he has the source before redistributing. – MadHatter Dec 7 at 17:17
  • A's compliance is independent from OP, but one alternative for A to comply might be to forward OP's offer to third parties. A written offer must be valid for "any third party" (GPLv2 3(b)) or for "anyone who possesses the object code" (GPLv3 6(b)), and for at least three years. – amon Dec 7 at 22:18
  • 1
    @amon as I understand it, OP wishes to have no active third-party obligations, which is why (as you pointed out) simply giving the source to A is a much better bet. Also, to save you effort, note that the question is GPLv2-specific. – MadHatter Dec 8 at 7:31

You can avoid obligations to third parties if you give your friend the corresponding source code, and not just a binary. But the GPL is a public license: it gives permission to everyone, not just your friend.

When you give another person a copy of the program, and you can only pass along copies under the terms of the GPL, then this other person has received the right under the terms of the GPL to make further copies, or share that software publicly (GPLv2 sections 2(b), 6; GPLv3 section 10 “Automatic Licensing of Downstream Recipients”). So once you give out one GPL-covered copy, you cannot prevent the software from being available publicly. The whole world can potentially acquire a license from you through the GPL.

But this doesn't necessarily give you any obligations to the public. This depends on how you decided to conform with the GPL when you gave that other person the first copy.

  • If you already gave them the source code (or binaries along with the corresponding source code) you don't have any obligations to third parties. (GPLv2 sections 2 and 3a; GPLv3 sections 4, 5, 6a)

  • Alternatively, if your software is covered by the GPLv2, you may provide a written offer, valid for at least three years, to give any third party a copy of the source code. (GPLv2 section 3(b)). Section 3(c) doesn't apply because you made modifications.

  • Alternatively, if your software is covered by the GPLv3, you may either

    • provide a written offer as in the GPLv2 case (GPLv3 section 6(b)); or
    • offer download of the source from a server (GPLv3 section 6(d)).

There is the slight awkwardness that GPLv3 6(a)–6(b) only apply to physical media, not electronic media like email. However, I interpret section 6 so that you already satisfy the license conditions if you accompany binaries together with the source code, and that 6(a)–6(e) only offer alternatives for providing them separately.

Note that the meaning of publication or distribution ultimately does not depend on the GPL but on your local copyright laws. You can only pass along copies if you are the sole copyright holder, if you have a license, or if you can make use of a copyright exception (e.g. personal copies within a household or family might be exempt). In this particular case, I assume that you would need a license, and therefore have to comply with all requirements of the GPL.

The GPLv2 in particular doesn't talk about “making something public” but applies conditions when you “copy or and distribute” or “distribute or publish” covered software. The GPLv3 clarifies this by defining the terms “to propagate” and “to convey”:

To “propagate” a work means to do anything with it that, without permission, would make you [make you liably for copyright infringement], except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.

To “convey” a work means any kind of propagation that enables other parties to make or receive copies.

  • The written offer is valid only if I distributed binaries, not source code. Am I right? – kronat Dec 7 at 14:21
  • @kronat If you only distribute the source code, you have no obligation to make the source code available through a written offer. That section of the GPL only applies when you distribute object code/binaries. There is no implicit written offer from you. – amon Dec 7 at 14:25
  • Thank you for the answer. Anyway, I still have a doubt about the "distributing" phase. It can be intended that, if I distribute to a particular, then it means that I have distributed to the public, and therefore I have to comply to the obligations if someone else (in that case, B) is asking me the source. – kronat Dec 11 at 9:52
  • @kronat You can choose how you will comply with the GPL. If you choose to only distribute your source code then no one can ask you for anything later. If you choose to distribute binaries alongside a written offer for the source, then you must honour that offer for anyone. – amon 2 days ago

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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