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?