I don't quite understand what I, the copyright holder of a project, am permitted to do according to the license I have given my project. I want the source code for most versions of the project to be free, but for some beta versions to have binaries distributed without source. If I own and am the sole contributor to the project, and have licensed the project with the GNU GPL license, can I give a later version or release of the project a different license, and can I remove the license entirely? If I do this, can I distribute binaries of that version without source without violating the GPL license I previously used? If there are other contributors to the project can I, with their permission, do what I previously mentioned? And if I am not bound by the license I have put in place, can I distribute binaries for a version of the project with the GPL license without providing source? The FAQ page about GNU licenses on the GNU website, https://www.gnu.org/licenses/gpl-faq.html, says that I will "surely lose moral standing in the community", which of course I do not want to do. It also says to release the project as a non-free program is "ethically tainted", but not illegal. Since the purpose of the version is to be a limited access beta, I would assume this would be alright to do, but I just want to make sure before I continue.
-
If you do not want to lose "moral standing" you should be able to explain why you are releasing binaries only without source. Also I'm not sure why you want to do this. Just as a simple example, suppose you release a beta of a binary compiled for x86-64 Linux. And suppose I, with a different processor or operating system, want to download and test the beta. But without a source release, how am I supposed to do this? For normal GPL projects this is always possible, so at least I would be a little bit annoyed by your release model.– BrandinApr 2, 2020 at 4:20
-
@Brandin Yes, I can see this now. I think I'm going to have to rethink the release model.– TwistyTurtleFishApr 2, 2020 at 10:56
1 Answer
Legally, as the sole copyright holder you can apply any license any time and even in retrospect.
You cannot withdraw the license given to people previously, though; the latter means if you published under GPL and handed out the source, that person can henceforth distribute the source in perpetuity provided the person obeys the license given.
The two paragraphs above also apply in the case of several contributors when ALL contributors to the codebase from past and present agree to these actions. You might want to get written permission in those cases to stay legally reasonably safe.
Now, yes, you can release versions now as GPL, and later versions under a less permissive or proprietary license. A license change always is a big step: it means that every user has to review whether they can continue to use the product for whatever purpose they use it. Thus the license generally is one important factor when choosing a software, thus changing it on-the-fly indeed does damage your reputation and costs you trust as you expressly prove yourself that you cannot be relied on to provide a product continuously on reliable terms. People and companies alike generally don't like to have such burden put onto them without their own choosing - especially if it means at the same time that they get less for probably more money (removing open source and going proprietary).
Anything you handed out under GPL terms will can in future also be distributed under GPL terms by anyone who received it under that condition. You will be inviting unfriendly fork(s).
You might want to ask for example the people from rhodecode how well that went down with a community and then-prospective customers.
Thus generally: choose your license before you publish anything. Choose wisely and make sure that it aligns with your values and expectations. Don't needlessly change the license once you chose one.
Lastly, you imply in your question you might want to distribute the final product under GPL but not the testing versions. To me this does not make sense this way at all: you might get a better final product when you allow people to look at the source before the final release as they can give better-quality feedback that way or even hand-in patches.