Help! Understanding Free and Open-Source Licenses

So I think permissive is ideal when free flow of ideas and adoption is most important, copyleft is best for areas of high risk for profiteer exploitation of developers and the community’s code.

Not a lawyer of course, but:

The AGPL certainly has its place. For example, it makes sense for something like lichess: GitHub - lichess-org/lila: ♞ lichess.org: the forever free, adless and open source chess server ♞

For a library or a standalone binary for example, it makes relatively little sense.

1 Like

Not a lawyer too but here’s my best understanding, AGPL is very much reserved for the purposes that a software also operates on a server say being open source, that one is a very good example and there’s one i’ve making good use of it, and with my open source client licensed under the same license regardless of if a server is ran or is itended to do so, it still does that because it would be the legal way, just like how I put all the licenses of each dependant software on the license agreement.
If a software doesnt have a server source code or anything of the sort, I say that GPL is fine.

But again not a lawyer too, only as someone who has made a software that needed to be licensed under the AGPL and tried to make a software that needed to be under the AGPL due to it was supposed to operate a server. But I thought I’d add my 5 cents.

GPL has different considerations depending on which version you choose.

GPLv2 and Apache 2.0 are incompatible, for example :slight_smile:

Not a lawyer but choosing a license should involve asking yourself these questions:

  • Is this a software project?
  • What kind of project is this?
  • What usage do I want to legally prevent?
  • What usage is it possible to legally prevent? (for example, if you AGPL some local bash scripts, and someone simply runs them on a server, afaict that doesn’t trigger the distribution clause. The user would need to be interacting with your script over the network)
  • What ecosystem are you operating in? What license will best enable you to be a good citizen of that ecosystem?
  • Will I be building a community for this project? If so, do I want an explicit patent grant in the license (which the MIT license and GPLv2 for example lack)

etc

1 Like

I don’t think the right to repair analogy makes much sense in the context of copyleft vs permissive. Both of these sets of licenses make no assumption about the users rights except that they must use the software as-is and can’t sue developers. In other words, they both treat users with th same rights. Users are affected by the implications of how these licenses limit how folks compete by selling competing products which I’ll discuss in the next paragraph.

They differ in applications of competitive economies around open software. As with my Peergos vs Neargos example above, Neargos has full rights to build their competing NeargosX product, but because of the way our economies run today, few companies will build on these ecosystems. They may jist develop their own proprietary version of that software and open source it under permissive licenses. Lets assumr Neargos does this and develops a terrible version of peergos. As I stated before just through virtue of the permissive licensing, more companies with lots of money and devlelopers huddle around permissive licensing because they have more economic degrees of freedom, which brings in a bunch of smart developers who move faster and solve a bunch of large use cases.

I’ve seen this pattern so often that I may seemlike a fortune teller to many. But l’m just good at spotting patterns and telling stories aeound those patterns.

So in the same way it is ideal thinking that shouldn’t push us to always adopt permissive licensing, it’s equally idealistic thinking that should make us think twice before alwayd using AGPL for all situations.

We need to really consider the structure of the ecosystem and seperate well known abstractions that can be standardized and keep those ideas iterable and open, simultaneously, you should make implementstions with a lot of sweat and blood baked into them, while you keep a much mkre flexible and openeness of interopperability of different implementations that follow the permissively open community standards, while keeping the community and their hard work safe. This also makes the user experience much better as trialling one versions and creating some stored state of data will ultimately not require them to perform a big migration or worse start from scratch.

All the specifics heavily depend on the application, community size, comfort levels, etc…

The main desire should always be to communicate expectations and have mutual consent between authors and the community.

So in the same way it is ideal thinking that shouldn’t push us to always adopt permissive licensing, it’s equally idealistic thinking that should make us think twice before alwayd using AGPL for all situations.

Agreed, not to mention that I think there is some misunderstanding about what the AGPL actually does (Still not a lawyer :smile: ) For example, if there’s a fork of systemd licensed under the AGPL that I deploy on my server, as far as I can tell the distribution clause of the AGPL is not triggered because there aren’t users interacting with systemd.

So if someone were to fork or configure systemd, releasing it under the AGPL would serve no purpose other than to decrease the freedom available other developers in using your code.

Ironic. :smile:

1 Like

For both those reasons, I feel Mozilla Public License v2 is a neat little license.

It is something SFC has started pushing recently and I wholly agree with them.

Take a PlayStation for example, it runs modified BSD and because of the permissive license there is zero right to repair for the software side.

1 Like

Not entirely sure what you mean, the second point is specifically about the GPLv2. The GPLv3 is compatible with the Apache 2.0.

I feel Mozilla Public License v2 is a neat little license.

The MPLv2 is underrated IMO, yeah. I think it’s underrated for a reason though. The permissive folks don’t care about file-level copyleft, and the copyleft people think it doesn’t go far enough.

1 Like

Wouldn’t this apply to the GPL as well though? not just the AGPL? Even the MPLv2 depending on your perspective (and the EUPL ofc)

Absolutely! I am precisely arguing that, both have their place, and it always depends. Most importantly, we should aim to take advantage of structural advantages of both. Companies have grown keen of the psychosocial disadvantages of copyleft and they can quickly build a permissive alternative that dilutes value and adoption of the more organic developer market.

Getting one step ahead and building standards and unified libraries to bootstrap competing alternatives is my current fav setup for larger ambitios projects like peergos.

Ohhh interesting, do you have the link by chance?

Companies have grown keen of the psychosocial disadvantages of copyleft and they can quickly build a permissive alternative that dilutes value and adoption of the more organic developer market.

Not to mention that there is an ongoing trend of startups using the AGPL to essentially make “fake FOSS” by making software that’s “technically FOSS” but completely against the spirit of FOSS:

2 Likes

I dont know enough about the MPL to understand the dofferences from GPL. I jist chunk it in with copyleft family.

Would you mind doing a non lawyer vibe breakdown on that library?

that’s one way Royal put it which is very cool imo.
Of course they can add more to it.

(not a lawyer :stuck_out_tongue: )

The MPLv2 is per-file copyleft.

So, say you have a proprietary software project. You sell downloads for $9.99 on ebay.

However, in your file my_really_cool_functions.cpp, you used a chunk of MPLv2-licensed code from another project.

The MPLv2 requires you to make the source of specifically my_really_cool_functions.cpp available under the terms of the MPLv2 for anyone who downloads your project, even though only part of that file originally came from the MPLv2 licensed project.

Your previous description is quite accurately but it is indeed, neat.

(still not a laywer :slightly_smiling_face: )

I’m personally a fan of the Apache 2.0 for most (but of course not all) use cases.

Why Apache 2.0 over the MIT? Simple. It has an explicit patent grant. Which you want if you expect/desire external contributions. The last thing you want is someone submitting patented code to your FOSS project, then suing the project for violation of patent.

btw, I would always avoid multiple licensing code. When i say using both licenses, I am referring to making clear splits in the repositories that dictate convention and standarda code/specification/docs and the implememtation repisitories.

One license per repository is ideal, if technical reasons require, split them by file dirctory.

I was talking about license compatibility, not dual licensing :slight_smile:

1 Like

I have seen a lot of libraries use any permissively licensed code in GPL. It just can’t be the other way around.

I don’t believe that is an issue if you provide attribution and add the license to clarify some code was copied from Apache v2 authors x, y, z.

That variant of the permissive code woulf be GPL licensed but as a reference to the version of the library they use.