1

To my understanding, as the maker of the software, I have the right to dual licensing the software as I wish, be it both an open source license and a proprietary closed license at the same time.

However, I'm unsure about the ramifications if I publish the code on Github under the GPLv3 license, getting some contributions from users that wanted to help fix some issues or add translations, and these changes making it into the proprietary version of the software.

How does it work in this scenario?

For the sake of clarity I'll offer an example, if I am writing software that I plan to release on Windows for free under the GPLv3 license and also plan to release a macOS version for a fee using the same code base under a proprietary, non-open source license, do I retain the right to do that even though the Windows code under GPLv3 has gotten contributions from other Windows users? Naturally, I would have to change some things in the code for it to work properly on macOS but these changes would not make it to the Windows version source code since it's irrelevant to that platform.

I just want to wrap my head around the implications of these and if someone can break down how this would work, I would greatly appreciate it!

4
  • The way you describe it give the impression that the contributions your project receives on GitHub will be under GPL license. Have you looked at the GPL FAQs related to this topic? Have you considered using a permissive license instead of GPL, would that be possible based on the 3rd party libraries you are using? Nov 15 at 15:15
  • Hello @Martin_in_AUT, I just read the FAQ item you linked and indeed I haven't seen it before. So based on this, since other people's code contributions to my project are technically under GPLv3 I will be forced to use GPLv3 on the the theoretical proprietary version as well if ever their code gets included in that release. Therefore, is it safe to assume that as long as I don't accept contributions to my code, I can keep it GPLv3 on one platform (Windows) and proprietary on another (macOS)? I have not considered a more permissive license as I'd like to keep the Windows version GPLv3. Nov 15 at 16:06
  • I believe with the FAQ and the discussion below we have established clarity for you. There is one thing I suggest you consider: If you select a permissive license (BSD-2, MIT, Apache-2) instead of GPL your worries about re-using code might be gone. That is obviously only possible if you have not already published the project under GPL and received changes and contributions from others, and if the included libraries (dependencies) allow for that. Nov 16 at 7:18
  • Indeed, thanks a lot for all the help! Nov 16 at 8:27
2

Consider a case where you release a Windows version of your own, original software, W. You release W under the terms of the GPL. You are free to offer W under other licenses, with or without further modifications, because you are the copyright holder. (See, e.g., So the GPL doesn't restrict the creator of the software in any way?)

Later, someone makes a fork of your W, called X. Let's suppose X includes W plus changes by some other author Alice. Alice can distribute X only under the terms of the GPL, since it includes your own GPL'd material. However, you can only use X under the GPL as well, because it also contains Alice's GPL'd work; you are not the sole copyright holder on X.

You ask about the case where you go on to produce fork M for Macs. So long as M is a fork of W and not a fork of X, you still have sole copyright ownership of M. If instead it is the case that some of Alice's material is included in M, then you each hold your own respective GPL-licensed pieces of M and cannot act as unilateral copyright holder for the purposes of, e.g., issuing new licenses.

One possible test to see if this true might be: would your code in M still be identical if you had never seen X? If not, there's a strong possibility some form of Alice's material from X is within M.

Socially, this puts you in the position of only accepting modifications with applicability to X only. Imagine someone submits a new business logic that would be portable to both X and M. This might be a very challenging position to be in legally and socially: if a pull request to X is a great feature that isn't specific to Windows, you might introduce outside copyright if you copied that feature to M because you've already seen this other programmer`s implementation of this broadly-applicable feature. (Proving that your implementation of a feature is solely your copyrightable work, after you've seen another implementation of the feature, is a tricky legal line to walk.)

3
  • So in the case of Alice making a pull request to W for the sole purpose of getting a bug fixed or contributing a translation, it would still count as if she had made her own X, meaning the only real way I can safely release M without violating GPLv3 is by not accepting code contributions to my W repository? Nov 15 at 23:46
  • @user9564371 Whether X is coresident with W in the same git repository isn't particularly legally relevant (except insofar as it establishes that you did know about X, one of the two necessary considerations to determine whether a work is derivative: knowledge and similarity). Suppose you don't pull in Alice's changes, but Alice hosts W's git history and her X modifications herself. Wether such a git history is listed under her GitHub username or under yours isn't a legally relevant consideration; either way the history of X (including W as a sub-history) exists
    – apsillers
    Nov 16 at 0:09
  • ...which is to say: the existence of X as a fork of W (even a fork that you decide to highlight as your mainline code) in no way prevents you, legally, from making a different fork from the original W. There are probably social/community concerns you should be proactive about, like being upfront about actively rejecting any community modifications that might have broad applicability to both X and M, because you don't want to risk outside copyright entering your M fork. (I have edited a paragraph about this in the answer.)
    – apsillers
    Nov 16 at 0:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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