Giter Club home page Giter Club logo

Comments (3)

DaveHealy-github avatar DaveHealy-github commented on August 16, 2024

from fracpaq.

kwinkunks avatar kwinkunks commented on August 16, 2024

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!

from fracpaq.

DaveHealy-github avatar DaveHealy-github commented on August 16, 2024

from fracpaq.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.