Donners, as in Masto peeps, can someone help me understand what license to use for releasing code to stuff. People are often like "ew, dont use GPL use MIT" but I need the options explained in a way that I can consume given the fact that I care. but also do not care.

@PsySal "I don't care what anyone does with this": Use Creative Commons Zero*. This is public domain but more legal.

"If someone reuses my source code, I want them to keep a credit to me in the source": Use Zlib**.

"If someone reuses my source code I want them to credit me when they ship the program": Use MIT***.

Same, but also you're afraid about someone patenting things from your program": Use Apache.

"If someone uses my open source, I want them to release as open source too": Use GPL****.

@PsySal
* Or BSD-0. But don't bother.
** Or BSD-1. But don't bother.
*** Or BSD-2. But don't bother.
**** So there's a complexity here: There's two GPLs, *and* there's Creative Commons ShareAlike. The two GPLs are as good as identical, the ShareAlike is like GPL but it's designed for art instead of code. A good way to do GPL would be to release as "Version 2 or any later version of the GNU GPL, or at your option, all .png, .ogg, or .fbx files may be taken under the CC-BY-SA license"*****

@PsySal ***** But probably specify a version of CC-BY-SA.

Possibly I am now reaching into more information than you wanted, but, in my personal code, I release as MIT whenever I want people to reuse it, and when I don't want people using it commercially I release as "GPL 2 or later, or at your option CC-BY-NC". "By-NC" means they don't have to release source code, but commercial uses are barred. So that's two ways of saying "noncommerical", and they can choose which is less restrictive for them

@dos @mcc @PsySal IIRC one important point of the GPL and LGPL is that users must be able to drop in their own replacement for the functionality provided by the GPL'ed code (either by compiling from source in the case of GPL, or as DLL in case of LGPL). In my open source stuff I use either MIT or `zlib/libpng`.

@dos @mcc @PsySal e.g. when building an otherwise closed-source application which uses LGPL'ed libraries (like Qt), the LGPL'ed parts must be linked dynamically so that (technically at least) this part can be replaced by dropping in a different DLL.

Follow

@floooh @mcc @PsySal It doesn't necessarily have to be linked dynamically - you can for example link statically and distribute compiled object files with instructions for user how to relink.

Sign in to participate in the conversation
Librem Social

Librem Social is an opt-in public network. Messages are shared under Creative Commons BY-SA 4.0 license terms. Policy.

Stay safe. Please abide by our code of conduct.

(Source code)

image/svg+xml Librem Chat image/svg+xml