Dumb question because I’m not fluent in License-Lore: which license would be best at preventing others (or me from the future) from selling / closing down the licensed work? Would it be GPL, AGPL, MPL, something else?
Obligatorily: I am not a lawyer, and license law is complicated.
MPL wouldn’t be the best choice, since it is per-file. GPL is copyleft and viral, meaning that if you make a modification and distribute the software, you must provide your modified source code under the GPL. AGPL is stricter in terms of when source code must be released; primarily it targets server software where the user interacts with the software, but does not actually download the software itself. The GPL wouldn’t require releasing source code, but the AGPL would.
As skullgiver mentioned, if you want to relicense, it would be best to use a CLA. The key to preventing yourself from being able to relicense your project (to a proprietary license or otherwise) is to ensure that other people are licensing their contributions to you under the GPL, without a CLA giving you exceptions, so that you yourself must follow their licensing terms. The Linux kernel for example is locked into the GPLv2, because they used a version of the GPL that does not provide for “upgrading” to newer versions of the GPL, and there are too many people who have contributed to the code to get all together to agree on a relicensing.
Dumb question because I’m not fluent in License-Lore: which license would be best at preventing others (or me from the future) from selling / closing down the licensed work? Would it be GPL, AGPL, MPL, something else?
[This comment has been deleted by an automated system]
Obligatorily: I am not a lawyer, and license law is complicated.
MPL wouldn’t be the best choice, since it is per-file. GPL is copyleft and viral, meaning that if you make a modification and distribute the software, you must provide your modified source code under the GPL. AGPL is stricter in terms of when source code must be released; primarily it targets server software where the user interacts with the software, but does not actually download the software itself. The GPL wouldn’t require releasing source code, but the AGPL would.
As skullgiver mentioned, if you want to relicense, it would be best to use a CLA. The key to preventing yourself from being able to relicense your project (to a proprietary license or otherwise) is to ensure that other people are licensing their contributions to you under the GPL, without a CLA giving you exceptions, so that you yourself must follow their licensing terms. The Linux kernel for example is locked into the GPLv2, because they used a version of the GPL that does not provide for “upgrading” to newer versions of the GPL, and there are too many people who have contributed to the code to get all together to agree on a relicensing.
Thanks for the response. Seems like I made a good choice by going with the AGPL