Is there a loophole in the GPL allowing binary-only distribution? I asked this question a long time ago here, which was the wrong place, and got a bunch of conflicting answers from a bunch of non-lawyers. I'm hoping for a more definitive answer here, ideally from some actual lawyers. To be clear, I'm interested in understanding the legal truth - what would likely happen in a dispute that went to court, where a judgement would have to be based on the actual wording in the license - not what the goal of the GPL is, the meaning of software freedom, what's morally correct, etc. To be clear, I'm not intending to exploit any such loophole, if it exists. My goal is to understand if the GPL could have a specific weakness in the face of a determined adversary, so that weakness could possibly be addressed. Original question follows: ======================== I have two "dumb questions" but their combination is somewhat surprising ... Suppose I create some new program from scratch by writing source code S, which I keep private, and then compiling S into a binary object X. Then I publicly release X (but not S) on my website under the GPLv3 license. Dumb Question #1: am I in any way required to make S public? Seems like here the answer is "no": the GPLv3 is a license, with restrictions, that is granted to, and applies to, the recipients of some work (in this case the work is X). The license does not apply to me because I'm the one offering the license, not accepting it. So it appears there is absolutely no obligation for me to ever provide source code S to anyone. Of course, any recipient of X is still free to copy and distribute the binary X to anyone they want: the GPLv3 only requires them to also provide whatever source came with it, which is none. So far so good... next consider this clause in the Affero GPLv3 (section 13): Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. So that sounds like I can take my binary file X, which is licensed under GPLv3, link it with an unmodified, third-party, AGPLv3 licensed library Y, creating a combined binary Z, and distribute Z under this clause. When distributing Z, I will have to provide the source that came with Y of course per the AGPLv3, but by the above exception, the part of Z that is X is still under the GPLv3, and by the answer to Dumb Question #1, its source code can remain private. Note that the GPLv3 has a symmetrical clause as well, this works with both GPLv3 or AGPLv3 third-party libraries: Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. Dumb Question #2: Does this logic not mean that there is a simple, legal way to combine (i.e., compile and link together) and distribute proprietary code with GPLv3 or AGPLv3 third-party libraries, without having to disclose the proprietary source code, as long as you are willing to allow your proprietary binary to be distributed freely? Do any companies already do this, e.g., for binary firmware that can be incorporated into Linux?
There is no loophole because a work released in object code form only — without the Corresponding Source — is not released under GPLv3, even if you say it is. GPLv3 only requires them to also provide whatever source came with it False. Providing the Corresponding Source is compulsory (§6 as pointed by @cHao). If they do not have access to it, it means the work has not been released under GPLv3.
Whenever there is a license to share things, the license creator wants the license to be widely used, but absolutely does not want slightly different licenses that could be used to trick people, or that just cause legal problems when used. Normal copyright law applies. And for the reasons above, the GPL license as an example allows you to copy the license verbatim but absolutely doesn’t allow you to make any modifications other than changing who is the person licensing a work. I would be curious what happens legally if someone licenses something with a sneakily modified copy of the GPL and then makes claims against a licensee who assumed it was the original GPL.
Unless the game is out of copyright, e.g. chess, snakes and ladders, Go, or checkers, your software would probably be considered a derivative work of the copyrighted game and an actionable infringement. The fact that you do not monetize it is not a defense. You would need written permission in the form of a license agreement from the copyright owner to do this legally. The penalties for violating copyright laws in this way could be punishingly serious.
The Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX writes: LICENSE TO USE. Subject to the terms and conditions of this Agreement including, but not limited to, the Java Technology Restrictions of the Supplemental License Terms, Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES. YOUR RIGHTS AND OBLIGATIONS RELATED TO THE COMMERCIAL FEATURES ARE AS SET FORTH IN THE SUPPLEMENTAL TERMS ALONG WITH ADDITIONAL LICENSES FOR DEVELOPERS AND PUBLISHERS. That is, Oracle is giving you permission to use Java for running any program, commercial or otherwise. Google vs. Oracle is not about calling the Java API, but reimplementing it on a new platform. Every computer program runs the risk of violating a third party's patents. That does not depend on the the programming language. Which is more "open source" is not clear cut, it depends on the particular JVM or CLR implementation in question. Mono is open source under the MIT licence, OpenJDK open source under the GPL v2 (with classpath extension).
We can't really know until the ruling is made. The Supreme Court might issue a ruling that encompasses all software APIs, or may predicate its ruling on this more specific situation, e.g. that because Oracle's library is so extensive its structure can be copyrighted even if that does not necessarily mean that any individual function signature can be copyrighted. They could also decide based on something unrelated to the heart of the copyright question - skimming through the petition for a writ of certiorari, they could make a decision based on the original implied license from Sun, for example. Hopefully their decision will answer the copyright question of function declarations completely, but it isn't required to.
This is similar to giving a hammer and needing to state to one is not responsible if the taker uses it to hit their head with. I believe this is the wrong analogy to use here. It would be more like giving somebody a hammer and saying you are not responsible if the head flies off and injures you. There is a concept in &quot;things&quot; you obtain called &quot;fitness for purpose&quot;, so if you download open-source software like a registry cleaner, and it deletes your entire registry, the &quot;WTFPL&quot; doesn't absolve the authors of liability. Explicitly denying any kind of &quot;fitness for purpose&quot; or warranty helps shield the author from legal claims (even if they are meritless) because it kills it out of the gate. It's possible that the WTFPL license granter/author could still be sued and have to defend themselves in court because it isn't explicitly stated that there is no warranty or fitness for purpose. Open source does not mean that it's &quot;use at your own risk&quot;, which is why there are so many types of licenses and disclaimers. From comments: Thank you for this very clear answer. Does the fact that someone willingly retrieves free code with no control of the provider changes anything? (vs a software vendor which provides code suitable for A and B, in exchange for money) I think closer to your hammer analogy where I would sue the producer of hammer XXX, a hammer I found on the street or which was given to me without involvement of vendor XXX. No, this doesn't change anything. The software vendor here is the person who writes the code, even if they don't charge for it. They are the ones who license the software and they are the ones who take some level of responsibility for it. In this case, the software author is the &quot;hammer producer&quot; that you would sue... If you buy &quot;Registry Cleaner XL&quot; from Best Buy and it bricks your computer, you don't sue Best Buy, you sue the person who authored the software. In pretty much every case, the author is the responsible party, not the vendor, and it is the author who licenses it, not the vendor (the vendor just acts as an intermediary).
The whole purpose of a patent is that the contents of the patent becomes public knowledge, in exchange for a time limited monopoly. Therefore you are allowed to do anything, since you are not just allowed but expected to examine the patent in order to improve on it, except that you need a license to sell or give away products implementing the patent as long as it is valid. The only thing to be careful about is that by publishing source code, you might be enticing others to infringe on the patent, so I'd recommend not to do that without advice of a lawyer. PS. With software, the interpretation of "making" software in patent law may be a bit surprising. There was a major case between Microsoft and AT&amp;T about that. The software developer isn't "making" the software. The build engineer putting everything together isn't "making" the software. The CD manufacturer making a million copies isn't "making" the software. The person installing it on their computer is the one who makes it.
You cannot do this through any established public license that I know of, but you could write your own. The model would be any educational use or non-commercial use license, such as CC NC licenses. The main challenge is defining the excluded classes of usage. That is why you should engage an attorney to draft this for you. I don't think there is any point in adding a $5M penalty clause. You offer a separate paid license for individuals who do not want to comply with the particular terms of your license, and set the fee to whatever you want. Saying that you're gonna fine violators is a bad idea because penalty clauses are illegal. Instead, the standard approach is a liquidated damages clause, where you state what a reasonable estimate of your damages would be. In the case of software that is available for purchase, illegal copying of the software obviously results at least in the cost of the software qua lost revenue as damages. Plus shipping and handling.