Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is this project open source? #8

Open
kwinkunks opened this issue Jun 2, 2022 · 3 comments
Open

Is this project open source? #8

kwinkunks opened this issue Jun 2, 2022 · 3 comments

Comments

@kwinkunks
Copy link

May I suggest adding a LICENSE file to your repo so that people know they can legally use the software?

My suggestion would be Apache 2.0 or LGPL 3.0 (the Lesser, or Library, GPL), depending on where you stand on 'share alike'. Some people find this useful: https://choosealicense.com/

@DaveHealy-github
Copy link
Owner

DaveHealy-github commented Jun 8, 2022 via email

@kwinkunks
Copy link
Author

kwinkunks commented Jun 8, 2022

Ah, cool, I did not spot that. Depending on how you feel about that license, it changes things a bit. Apologies in advance for the essay which follows...

The short answer is that the text you have in your modules is the MIT license, which is awesome but you probably don't want to mix it with the LGPL. So you either need to keep it and just add the MIT LICENSE file to your repo, or replace it all with the LGPL's requirements. To choose between them, you need to know about permissive licenses like MIT vs copyleft licenses like LGPL.

Permissive vs copyleft

Broadly, there are two kinds of open-source license: permissive and copyleft. Both of them are fully 'open source' but copyleft licenses have an important and substantial restriction: if someone uses your copyleft-protected software and distributes their derived work, they must use a copyleft license too. In this way, they propagate open source in a sense, forcing downstream users to be open too. Some people don't like this feature, for others it's essential. Like most religious arguments, there is a decades-long and heated debate about it, of course :D

What you have

The license text you have in each file is the MIT license (aka X license), a very popular permissive license. It's a totally reasonable choice, and is the one recommended on https://choosealicense.com/ if you want "simple and permissive". Lots of open source projects use it. Other permissive licenses include the BSD license and the Apache license, both of which just offer slightly different restrictions or protections.

Strong and weak copyleft

The canonical copyleft license is the GNU Public License or GPL. It's 'strong' copyleft (the Affero GPL is even stronger though). Personally I don't think it's a good choice for libraries and packages, because if anyone just uses one function from your library, they must also use a copyleft license like the GPL (if they distribute their program). For that reason, lots of people won't use a GPL'd library (me included).

Because of this, there's a Lesser GPL, sometimes called the Library GPL. It's 'weak' because it's more permissive than the GPL. It acts like the GPL for people distributing "work based on the library" (like a wrapper, say), but acts like a permissive license for people distributing "work using [linking to] the library". It's a subtle but important distinction. I can distribute proprietary code that calls on functions from an LGPL'd library; I can't do that with a GPL'd library.

Your options

So I think your choice looks like this:

  1. If you go permissive and keep the MIT license, you should add the same text to a LICENSE file in your repo. Don't forget to add the name of the copyright holder (eg you, your institution, or "FracPaQ Contributors" or whatever), it's important. Having the license in the modules as well is probably good practice because it's close to the code.
  2. If you go weak copyleft and switch to the LGPL, you should remove the statement from the module files, replacing it with something short saying that you're using the LGPL. Then add the GPL to your repo in a file called LICENSE and the LGPL text in another file called LICENSE.LESSER. This is apparently how you're supposed to do it, because the LGPL extends and depends on the GPL.
  3. If you go strong copyleft and switch to the GPL... same thing, but without the LICENSE.LESSER.
  4. Or you can choose another license altogether!

@DaveHealy-github
Copy link
Owner

DaveHealy-github commented Jun 9, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants