dzaima / CBQN

a BQN implementation in C
GNU General Public License v3.0
329 stars 46 forks source link

Relicense to dual-licensed LGPLv3 & MPL2 #90

Closed dzaima closed 1 year ago

dzaima commented 1 year ago

To ease usage of CBQN as a library, it'd be nice to relicense to something that unambiguously allows such without requiring that the caller is GPLv3-licensed (GPLv3 by itself being rather ambiguous to whether that's needed on static and/or dynamic linking).

The proposal here is to relicense to dual-licensed LGPLv3-only (GNU Lesser General Public License v3.0) & MPL2 (Mozilla Public License Version 2.0); LGPLv3 allows dynamic linking (but still is questionable on static linking), and MPL2 further relaxes things (allowing static linking).

The idea with having both is that a user could choose the one that's easier to integrate (which'd be LGPLv3 if such-licensed libraries are already in use, and otherwise MPL2).

Both licenses still require the source code to be receivable by anyone that has received a compiled form of CBQN (i.e. copyleft). Of note is that MPL2 doesn't have anti-tivoization.

LGPLv3 implicitly includes being relicensable to GPLv3, so it could be said that this would also be triple-licensing to GPLv3, LGPLv3, and MPL2. That is, after this change CBQN could still be packaged as GPLv3 if so desired, not requiring any changes in existing distributions.

@mlochbaum @Detegr @yiyus @paulapatience @actalley If you are fine with your respective contributed code to be relicensed to MPL2&LGPLv3, add a ":+1:" reaction to this issue or something; otherwise, discuss

c4augustus commented 1 year ago

This is awesome! I'm just starting to write a 2-dimensional parser for a new user interface notation that will be embedded within both Android and iOS apps. I totally respect your reasons for originally licensing under the GPL, but it does not allow publishing to the AppStore--for which I blame Apple, not FSF. I really wanted to use BQN for it, so now I can thanks to you. I have been publishing all my open source using MPL 2.0 for some time now because I believe copyleft is important.