CaptainFact / captain-fact

📚 Documentation, wiki and community discussions
https://captainfact.io
67 stars 7 forks source link

Translation license AGPLv3 "only" instead of "or-later" #182

Closed comradekingu closed 3 years ago

comradekingu commented 3 years ago

Looking at https://hosted.weblate.org/accounts/profile/#licenses all the CaptianFact components are for some reason licensed "only", instead of "or-later". Is this an error?

https://hosted.weblate.org/projects/captainfact-frontend-ui/home/#information and https://hosted.weblate.org/projects/captainfact-frontend-ui/main/#information are however AGPLv3+

If https://hosted.weblate.org/user/kingu/ is made an admin in https://hosted.weblate.org/access/captainfact-frontend-ui/#users I can fix it if so :)

Miragide commented 3 years ago

Any idea @Betree ?

Betree commented 3 years ago

@comradekingu what is the impact of not using "or-later"? The code currently has an AGPL3 license, it sounds like a good idea to me to keep the same license and version for the translations.

Betree commented 3 years ago

Unless there are other arguments to change, let's keep things in sync between Weblate and the codebase

comradekingu commented 3 years ago

@Betree The problem is you can select a different license once it is available. It also becomes difficult to include it in other GPLv+1 projects and so on.

https://github.com/CaptainFact is now a mix of GPL and AGPL, MIT and unlicensed works.

https://hosted.weblate.org/projects/captainfact-frontend-ui/#information is split between AGPLv3-only or AGPLv3+

I don't see how that is consistent at any level. AGPLv3 is a strong copyleft license, why not just run that on everything and not only be compliant, but avoid issues. One of which is solved by going "or later" for everything.

Betree commented 3 years ago

Thanks for sharing these details.

All projects with server-side code have an AGPL3 license. All projects with only client code (extension) have a GPL3 license.

I don't think we're using MIT anywhere, but we should update concerned projects if that's the case. Same for unlicensed work.

I'll check on weblate to change components to "or-later".

comradekingu commented 3 years ago

It is my understanding that AGPLv3+ also applies to extensions, but that isn't the biggest problem to solve. The extension strings are AGPL, and it is one thing to undo a mistake, but going back on terms to a lesser license needs confirmation from translators.

https://github.com/CaptainFact/captain-fact-dev-data and https://github.com/CaptainFact/captain-fact doesn't have any license.

https://github.com/CaptainFact/rhetological-fallacies is MIT

If you make https://hosted.weblate.org/user/kingu/ a mod in https://hosted.weblate.org/access/captainfact-frontend-ui/#users I can make everything there or-later, add screenshots, context, etc.

Betree commented 3 years ago

It is my understanding that AGPLv3+ also applies to extensions

The only diff between AGPL3's and GPL3 is this rule:

if you run a modified program on a server and let other users communicate with it there, your server must also allow them to download the source code corresponding to the modified version running there

Given that the extension is running only on the client, there's no need for AGPL3. The two licenses have the same effect in that context.

Licenses for https://github.com/CaptainFact/captain-fact-dev-data are defined in the subfolders. One is AGPL3 and the other is CC0 1.0 Universal (I think this is because we're sharing data we got from Wikipedia, so we're using their license).

https://github.com/CaptainFact/captain-fact only has a README, we can eventually add a license but I don't think it's really needed.

https://github.com/CaptainFact/rhetological-fallacies is an empty repo so I'm not too worried.

But anyway, this is irrelevant to the current discussion since translations only apply to the frontend for now, and frontend is AGPL3

comradekingu commented 3 years ago

@Betree The same provision for extensions being the same program or not are in GPLv3. I don't see why landing on one interpretation or the other is better than knowingly being in the clear by going AGPLv3+.

Something being a client doesn't mean one has to distribute it that way. The client code doesn't have to run on the client end. It can be distributed over a network. This is increasingly un/popular (with games for example), and not entirely stupid because it allows for some sandboxing.

Edit: Everything in https://hosted.weblate.org/projects/captainfact-frontend-ui/#information is now AGPLv3+ (as opposed to sometimes -only).

This leads to the problem of running AGPLv3+ strings in a GPLv3+ program not being the direction the compatibility works. Again that is maybe down to interpretation, combined works, etc etc. Making the programs all AGPLv3+ undoubtedly solves that.

It would additionally be much easier to say "this project uses the * license" if the licensing wasn't proliferated.

The lesser the stuff lacking a license, the stronger the "this project is open-core" "it can't be fully replicated" argument becomes.

Edit2: My issue is solved. Now there is much less stuff in -only for https://hosted.weblate.org/accounts/profile/#licenses which I hope makes it easier for people to get it correct right off the bat. :)