Which do you use for your open source projects? Why? 🤔

@celia I use GPL because is copyleft and if someone forks one of my projects (Never happened 😛) I would like to see the improvements as libre software. The GNU page suggest which license to use depending on the strategies for your project.

@jrballesteros05 @celia There’s also

For small libraries or small ebsites, I use the DWTFYWTPL:

For bigger open source projects… I still have to make a choice. I’m only figuring out now I forgot to put a licence on :oscar:.

@meduz @celia I have forgotten "chooseaalicense". Thank you 😀 . That's very good page. You've just remind me that I got to do something hehehe. Thanks.

@celia I'm more of a content creator (videos, photos, 3D designs) than a programmer so I use mostly Creative Commons (CC BY-SA).

@celia Most of the times, other codes which I’m reusing dictate the license for my whole project. For the projects which I build from the ground up, I use LGPL for libraries (or codes which are supposed to be integrated with other projects). This gives the other devs freedom to include it in their own non-GPL-compatible packages and I use GPL for standalone codes.

@freddy @musicmatze I came across this today and it is what prompted me to ask about licenses at all. I like this. Any pitfalls I'm not seeing?

@musicmatze Sorry, could you please explain your toot? I don't think I understand even a bit of it. 😅

@celia #AGPL #GPLv3 #LGPLv3 because they protect the whole ecosystem from patent trolls, "tivoization", freeloading, trademarks and encourage cooperation.

@federico3 Those seem like huge benefits. Thanks for passing on the link!

@celia For experiments and examples, ISC/MIT/CC0/Unlicense. For user-facing programs, GPL-3.0-or-later, GPL-2.0-or-later or AGPL-3.0-or-later. For libraries, depends on the language and what is acceptable in its community.

@wire If I may ask, why those licenses in particular for experiments/examples?

Depends on the project (e.g. whether it's written content, or software). Typically Creative Commons ShareAlike for the former, GPLv3 for the latter.

@syntax Thanks. GPL/AGPL seems to be very popular!

I have used MPLv2, but for some situations I'd use AGPLv3. Both are copyleft, both have clauses that handle software patents.

The AGPL is great for applications, with strong copyleft ensuring the application and any derivatives stay free software, and with an additional network clause so that any remote users, e.g. web users, also have the right to see and modify the source code of the running service.

Weaker copyleft like the LGPLv3 or the MPLv2 are great for libraries. Stallman would disagree, see… . Here my reasoning:
I think in many cases with a library you are trying to create a new de facto standard and you want to focus on it being maximally useful to the world:

- Most software using it will be free software anyway.
- As weak copyleft allows combining any software with your library, it allows combining any *free* software with your library, whereas a copyleft license may have licensing incompatibilities with some free software.
- If any proprietary software gets attracted to it I think the chance is higher that you can funnel those users into a free software world than the risk that the proprietary software drains the free software ecosystem you're trying to build.

The moment I'd think otherwise, I'd go back to stronger copyleft in newer versions. The LGPLv3 and MPLv2 are both upwards compatible with the AGPLv3, so I would be able to do that even with any external contributions.
Why the MPLv2? The LGPLv3 is built mostly around the idea of the library binary being over here and the application binary being over there, and that works well for C and C++ which have clear compilation units.

I work in dynamic languages like Python, Racket and Scheme, and there it's less clear to me where the boundary is. If you write a Scheme macro, your code ends up in the compiled output of the code that uses the macro, they intermingle. The MPL draws the boundaries at the file level, so it's clear that the code in my file follows my license, the code in your file follows yours.
Sign in to participate in the conversation

Fosstodon is an English speaking Mastodon instance that is open to anyone who is interested in technology; particularly free & open source software.