How can an open source license be compatible with a multi-licensing scheme?

According to a similar question, the author of a library could potentially change its license. But problems arise when the project as already received contributions from the community, because the contributors kind of 'own' the software it self.

Is this right?

I don't understand how such reasonable restriction, apply when a double license is applied to a product. E.g. I release a software with a double license:

  • GPLv2|v3 for open source projects (users must release their code if using the given library publicly distributing the software using it)
  • Commercial license that under certain conditions (e.g. payment), allows the user to not distribute their application's source code (e.g. they can pay the author and release a commercial closed source application)

I have several questions on this topic:

How this could be possible? Does the changes/contributions provided by the community itself be used under the commercial license once received? Isn't this something similar to change the license (see the linked question): you accept changes by the community and release them under another license? If this is legal, are there any difference/compatibility between major open source license such as GPLv2|3, lGPL, Mit, Bsd?

1 Answer 1


If the contributors of changes agree to a Contributor License Agreement (CLA), then the project owner holds all of the copyright. In essence, contributors can be asked to give up their rights to own the contributions. They may continue to receive credit for their contributions, but depending on the wording of the agreement, may cause them to assign copyright to the project owner or give permission for the product owner to license under terms suitable for the project.

If there's an open source license (like GPL), this doesn't stop me from making a fork and releasing it under the GPL (or other appropriate, compatible license) and also putting my changes there. I now have a project fork that's GPL licensed. I can offer a patch, for example, between my fork and the main project.

Also note that there are, at a very high level, two types of CLA. One gives rights to the project maintainer to use your contributions in other ways, such as releasing them under a dual-license model. The other gives up your copyright on the contributions.

  • If there's an open source license (like GPL), this doesn't stop me from making a fork and releasing it under the GPL (or other appropriate, compatible license) and also putting my changes there -- If you relinquish your copyright under a CLA, doesn't that preclude you from doing this? May 3, 2016 at 17:34
  • @RobertHarvey It depends on the order you do things and the terms of the CLA. For example, if you fork the repository and only keep the GPL license (which you can do - you choose the license you receive the software under in a dual-licensed situation), you can then make changes to your repository and release those as GPL. There are also two high-level kinds of CLAs: one where you grant the product owner additional rights to relicense your code and one where you give up copyright.
    – Thomas Owens
    May 3, 2016 at 19:46
  • @Thomas Owens: thanks for the answer. So basically if I release a library with a double license (GPL + closed commercial), I am sure that whoever fork is forced to release it under GPL, but, with the right CLA as the owner, I can still use it or sell it for commercial closed source projects, right?
    – Heisenbug
    May 3, 2016 at 20:40
  • 1
    @Heisenbug Yes. However you only need the CLA if you are accepting outside contributors. If you are the only contributor, you don't need a CLA and can still dual license.
    – Thomas Owens
    May 3, 2016 at 22:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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