Hacker News new | ask | show | jobs
by halfastack 2885 days ago
Just a note that if you accept any merge from anyone else, when changing the licence, you'll have to have their consent to change the license as well. Sounds like it might be a difficult thing to switch, depending on how many contributors you'll have when wanting to switch.
1 comments

Is that true though? I thought all third party contributed changes are licensed separately, with the contributor still having all rights, unless they explicitly say otherwise.
IANAL: My understanding is the same as @halfastack's.

> I thought all third party contributed changes are licensed separately, with the contributor still having all rights, unless they explicitly say otherwise.

That's true, but it prevents the project owner from changing the license unless either the contributed code's license is compatible with the new license, or all contributors consent to the license change. That is, going from MIT to GPL is fine, but GPL to MIT is not.

Projects concerned with this frequently require contributors to sign a CLA (Contributor License Agreement) where the contributor gives permission for the project to use the contributions and relicense them in the future. E.g., Ubuntu [1].

[1]: https://www.ubuntu.com/legal/contributors

I don't think that's quite accurate either. Although you can include MIT-licensed code in a project that is, as a whole, licensed under the GPL, you still must include the original license and copyright, rather than "going from MIT to GPL."

For example, if you have an MIT-licensed project and I contribute to it, my MIT-licensed contribution will remain MIT-licensed, regardless of what you do in the future. If you change your project license to GPLv3, and later can prove that someone used my code from your project after downloading your project's source, I do not think you will be able to successfully hold them to the GPLv3 and force them to release the source of their derivative work.

My understanding is a bit different, but also not a lawyer.

> going from MIT to GPL is fine, but GPL to MIT is not

AFAIK both are _not_ fine, eapecially because the licenses are totally incompatible.

When you publish a patch under a certain license (that of the project at the moment of the contribution), you _only_ allow using your code under that license. This is why dual licensing is a thing.

Except when you sign a CLA - mostly used by companies to gain copyright over your work. In that case the company can do whatever they want - even charge you later to use your own code.

> AFAIK both are _not_ fine, eapecially because the licenses are totally incompatible.

MIT licensed code can be relicensed under GPL with or without modification to the code. It is only the other way around that won’t work. The reason for this are the specific demands made in each license.

See https://www.gnu.org/licenses/license-list.en.html#GPLCompati... where the Expat license is listed as compatible. The Expat license is the same license that is usually referred to as the MIT license.

Also https://en.wikipedia.org/wiki/MIT_License:

> The MIT license is also compatible with many copyleft licenses, such as the GNU General Public License (GPL); MIT licensed software can be integrated into GPL software, but not the other way around

IANAL.

Personally I encourage people to prefer the ISC/BSD/MIT family of license over GPL, but anyone that is set on using a GPL license is within their rights to do so for code derviative of said licenses (and several others as listed in the above linked list of GPL compatible licenses).

Possibly true... but wehther it can be done without modification to the code is a separate issue from whether a license change can be made without the consent of all contributors.
What I am saying is that anyone can take MIT licensed code and re-release it as GPL licensed code. That includes anyone of the author without consent from the other authors, or even someone who was not an original author. Specifically because such a change does not violate the terms of the MIT license. Whereas for going the other direction; GPL -> MIT you need consent from all authors (either directly or via a CLA that permits such a change of license).
With incompatibility I meant copyright and patents et al. Not whether you can link MIT from GPL code.

Using a different license on the exact same code withoit consent is very different from linking to that code respeciting its original license.