minetest-whynot / whynot-game

Minetest game in minetest mods collection style
GNU General Public License v3.0
14 stars 7 forks source link

why not properly license whynot? :-D #134

Open gentooza opened 2 years ago

gentooza commented 2 years ago

Hi!

Your game is licensed under GPLv3 only in the minetest contendb page, but I see the code here unlicensed!

I you want, if you are interested, I can help

the basic guidelines from the FSF can be found here

cheers and happy hacking


Section made by @Lazerbeak12345 in order to make this issue actionable


Lazerbeak12345 commented 2 years ago

On this topic @bell07 why is it GPL3 only, instead of GPL3 or later as per standard convention?

bell07 commented 2 years ago

There is no reason. I am not license expert, was sure the statement in README.md is enough for the project.

Each of the mods do have their own free license. The whynot related work (such as the buiding scripts) are GPL-V3

Please change it as needed.

Lazerbeak12345 commented 2 years ago

So to be perfectly clear, for "legal reasons" as it were, @bell07 @dacmot Are you alright if I change the licence to GPL3-or-later? The benefit of this is that if/when GPLv4 comes out, upgrading to that new version can be done "automatically" in a sense. Stallman has a blogpost on this I can link to if there is interest. (As it turns out, it's also so you can use GPLv3orlater software in a GPL4-any licence)

And for the record, "no" is a perfectly OK and reasonable answer.

dacmot commented 2 years ago

I'm absolutely for GPLv3 and later. I have noticed the lack of licenses or the use of LGPLv2.1 in whynot_compat... If you're up for it, please fix it and make it consistent. Thanks!

Lazerbeak12345 commented 2 years ago

I'll just do a PR to add the licence as is.

Also, backlinking to https://content.minetest.net/threads/3398/ so I can find it later.

gentooza commented 2 years ago

wow, you are fast folks! I'm going to do my part also in a task list for licensing under GPLv3 or later (GPLv3+):

about compatible licenses with GPLV2 and GPLV3 other software and art licenses, compatibility and comments about them

only adding the licensing is a first step, but not the only one! cheers!

dacmot commented 1 year ago

Not sure about the artwork. Each mod will have licenses for their own artwork. The only art for Why Not? Game are the crumpled ball logo, and the screenshots. I don't know where screenshots fall legally: is it Minetest? Is it the mod's in-game art showcased? Is it our capture (like a photograph)?

IANAL and don't have the knowledge to determine.

dacmot commented 1 year ago

For the copyright holders, would a statement like what Minetest does be OK?

Copyright (C) 2010-2022 Perttu Ahola celeron55@gmail.com and contributors (see source file comments and the version control log)

It does have a good point that git keeps track of all that information much better than any human could by updating the copyright notice.

Lazerbeak12345 commented 1 year ago

Technically, the GPLv3 header is optional. Undecided as of yet if I like the idea of doing it for this project.

Here's the count of each code licence used by the mods in this project, and the number of instances:

I am fully aware of some of the "duplicates" but I distinguished any that could reasonably be held to be different by any court of law.

I found that most of the homdecor mods do not have their licence information attached anymore in the built directory. we do actually need to fix that.

Here are the 108 mods where the code licence is not readily apparent, whether by our fault, or the developers fault

This post took more than 1.5 hours to write, was done by hand, and is likely full of errors.

dacmot commented 1 year ago

This post took more than 1.5 hours to write, was done by hand

That's incredible. Thank you.

gentooza commented 1 year ago

Cool!

Technically, the GPLv3 header is optional. Undecided as of yet if I like the idea of doing it for this project.

well, theoretically it's not optional, non copyleft licenses as Apache2 are easier to accomplished, as they don't need a license header, but if you want to register a GPL licensed app in the GNU portal (GNU Savannah), for example, it will be mandatory.

But yes, my help is giving the correct information about licensing, but you, of course, can achieve the licensing level you want to achieve.

Here's the count of each code licence used by the mods in this project, and the number of instances:

* MIT: 56

Note non copyleft license compatible with GPLv3+

* LGPLv2.1-or-later: 18

Note copyleft license with linking exception, compatible.

* LGPLv3.0: 1

Note copyleft license with linking exception, compatible.

* WTFPL: 6

Note non copyleft license compatible with GPLv3+

* CC0: 3 (yes it's being used as the code licence)

Note non copyleft license compatible with GPLv3+

* DWYWPL: 1

Note non copyleft license compatible with GPLv3+

* GPLv2.0-or-higher: 1

Note copyleft license UPGRADEABLE compatible with GPLv3+

* AGPLv3: 1

Warning copyleft license NOT UPGRADEABLE, incompatible with GPLv3+ can ask them to change to AGPLv3+?

* GPLv3.0-or-later: 4

Note copyleft license UPGRADEABLE compatible with GPLv3+

* Unlicense: 1

Warning unlicense? this means closed source, or is it in the public domain?

* LGPL-2.1: 5.5

Note copyleft license with linking exception, compatible.

* Apache Licence 2.0: 1

Note non copyleft license compatible with GPLv3+

* EUPLv1.2-or-later: 1

Warning incompatible with GPLv3+, but can be relicensed

* CC BY-SA 3.0 : 0.5 (ambiguous licencing for `hbsprint`. the other half is in LGPL-2.1)

Warning CC-BY-SA 3.0 has problems with GPLv3+ see here LGPLv2 works fine, I think we can continue with this, as in the future CC-BY-SA surely will be compatible with a possible GPLv4, etc.

* GPLv2.0: 1

Warning copyleft license NOT UPGRADEABLE, incompatible with GPLv3+ can ask them to change to GPLv2+?

* GPLv3: 6

Warning copyleft license NOT UPGRADEABLE, incompatible with GPLv3+ can ask them to change to GPLv3+?

* GPLv2: 1

Warning copyleft license NOT UPGRADEABLE, incompatible with GPLv3+ can ask them to change to GPLv2+?

remember, Unlicense or not license is considered legally closed source software and incompatible, we need everything explicitly licensed.

This post took more than 1.5 hours to write, was done by hand, and is likely full of errors.

good work! :-O

Lazerbeak12345 commented 1 year ago

The "Unlicence" licence has actual license text, akin to the MIT license. The repo isn't saying it doesn't have a license, it's saying it's using a license of that name

dacmot commented 1 year ago

I pushed some fixes to the build scripts in order to copy the license file from modpacks to each individual mod. That seems to have fixed many of the missing licenses found by Lazerbeak12345.

After that, I looked at the remaining ones:

I will create issues with each repository to ask for them to add a license file.

dacmot commented 1 year ago

https://github.com/minetest-technic/mese_crystals/issues/5 https://github.com/orwell96/engrave/issues/2 https://github.com/lisacvuk/minetest-toolranks/issues/19

Lazerbeak12345 commented 1 year ago

mese_crystals has had no activity in 7 years. I hope that goes through.

engrave is the same - no activity in 6 years.

toolranks might be fine. I've seen 2 year stale projects come back to life with an issue like this.

Thanks dacmot!

Lazerbeak12345 commented 1 year ago

A note: we might need a new rule to prevent further licence shenanigans.

dacmot commented 1 year ago

I was just thinking the same thing. Rule 10: The code and artwork must be licensed with terms compatible with GPLv3 (see https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses), and with copyrights attributed to the rightful author(s).

Not sure about the second bit. I guess some licenses may forgo copyrights (public domain)...

Lazerbeak12345 commented 1 year ago

On the note about public domain:

Some countries don't recognize public domain as an option. They treat works put under public domain as they would unlicenced code. This is why the CC licence puts things under public domain, with a fallback to a permissive licence.

All in all, we would be forced to consider public domain as closed source to ensure it works with our software, regardless of which licence we choose.

dacmot commented 1 year ago

Toolranks is done!

Lazerbeak12345 commented 1 year ago

I updated the OP to make this issue more actionable.

I'm sure I missed stuff, and I'm not sure exactly what conflicts need to be resolved. Please add more information as it is found.

Lazerbeak12345 commented 1 year ago

Do we need to do anything about the mod making use of the EUPLv1.2-or-later licence?

dacmot commented 1 year ago

If I read this correctly (IANAL), it should be fine as long as we remain GPLv3-only:

The EUPL allows relicensing to GPLv2 only and GPLv3 only, because those licenses are listed as two of the alternative licenses that users may convert to.

I guess we may have to fork it and relicense it?? I don't know if it's possible to include as-is.

gentooza commented 1 year ago

If I read this correctly (IANAL), it should be fine as long as we remain GPLv3-only:

The EUPL allows relicensing to GPLv2 only and GPLv3 only, because those licenses are listed as two of the alternative licenses that users may convert to.

I guess we may have to fork it and relicense it?? I don't know if it's possible to include as-is.

from FSF: To do this two-step relicensing, you need to first write a piece of code which you can license under the CeCILL v2, or find a suitable module already available that way, and add it to the program. Adding that code to the EUPL-covered program provides grounds to relicense it to the CeCILL v2. Then you need to write a piece of code which you can license under the GPLv3+, or find a suitable module already available that way, and add it to the program. Adding that code to the CeCILL-covered program provides grounds to relicense it to GPLv3+.

dacmot commented 1 year ago

Please correct me if I'm wrong, but the way I understand it, this two step process is only if we want to relicense to GPLv3+ (emphasis on the +). The license would allow usage as-is as part of a GPLv3-only.

See EUPL V1.2 terms

Compatibility clause: If the Licensee Distributes or Communicates Derivative Works or copies thereof based upon both the Work and another work licensed under a Compatible Licence, this Distribution or Communication can be done under the terms of this Compatible Licence. For the sake of this clause, 'Compatible Licence' refers to the licences listed in the appendix attached to this Licence. Should the Licensee's obligations under the Compatible Licence conflict with his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.

(Emphasis mine). And,

Appendix

'Compatible Licences' according to Article 5 EUPL are:

— GNU General Public License (GPL) v. 2, v. 3 — GNU Affero General Public License (AGPL) v. 3 — Open Software License (OSL) v. 2.1, v. 3.0 — Eclipse Public License (EPL) v. 1.0 — CeCILL v. 2.0, v. 2.1 — Mozilla Public Licence (MPL) v. 2 — GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3 — Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for works other than software — European Union Public Licence (EUPL) v. 1.1, v. 1.2 — Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong Reciprocity (LiLiQ-R+).

Lazerbeak12345 commented 1 year ago

So, (and also IANAL) that looks like we can just treat this software as a GPLv3, for now. Likely we won't be moving to GPLv3 or later anytime soon. GPLv3 only seems to be what we are stuck with.

Lazerbeak12345 commented 1 year ago

So with that... are we good? Are all licence conflicts resolved?

dacmot commented 1 year ago

I think there's the two without licenses in the source code left, and a couple others that are GPLv2-only (not upgradable)... if I understand correctly.

gentooza commented 1 year ago

So, (and also IANAL) that looks like we can just treat this software as a GPLv3, for now. Likely we won't be moving to GPLv3 or later anytime soon. GPLv3 only seems to be what we are stuck with.

sorry, yes! with GPLv3 only, could be easier. (although not recommended by the FSF) the problems with GPLv2 only licenses persist, can't mix GPLv2 with GPLv3 if GPLv2 can't be upgraded. (GPLv2+)

Perhaps, an easier to license non copyleft way could be an option for you (Apache2 is the best) is more flexible for this interconnection between mods. :-/ the only negative point with this, is to have a non copyleft protected free software.

about mods, if they are intended to be used with more pieces of code, developers should license them easier for interconnection, if fully libre software under GPLv2+, or with no copyleft (Apache2, MIT...) It seems to be a chaos right now!

Lazerbeak12345 commented 1 year ago

So do we need to contact the mods that are under GPLv2 only to consider relicencing to something we can use (or alternatively drop those mods?)

dacmot commented 1 year ago

I guess so. From the FSF FAQ:

Is GPLv3 compatible with GPLv2? ... the two licenses are not compatible: if you tried to combine code released under GPLv2 with code under GPLv3, you would violate section 6 of GPLv2.

From what I can gather, there are only two mods licensed GPLv2: moarmour and helicopter.

I'm the maintainer of moarmour, but not the creator. I don't know legally if I'm allowed to re-license it. The author still seems to be lurking around the forums. However, how would that even work now that the code has been forked?

As for helicopter, we had talked about replacing it with APercy's version in #52. Nonetheless, that one is also GPLv2.

All this license stuff is making my head spin...

Lazerbeak12345 commented 1 year ago

Added those two to the OP.

On the topic of moararmor, if you contact the creator, and they are ok with an upgrade to GPLv2+, then (so long as this agreement is publicly documented in a provable way, such as a public forum) you should be able to relicence to GPLv2+. But that's under the assumption that you and they are the only people who's code has made it into this project. If there's others, then each individual contributor must be contacted, and they must all agree.

Lazerbeak12345 commented 1 year ago

In the rare case that some of these mods we can't re-licence, a clean-room reimplmentation (or similar) would be in order if we wish to keep that mod.

I could do the re-implementation with engrave and the mesecrystal one, but I've read the code for helicopter (all three versions discussed in relevant replacement issue) and moarmour.

Lazerbeak12345 commented 1 year ago

Granted, in the reimplementation case, we should be able to use the assets, since most of them are CC variant licences.

dacmot commented 1 year ago

I've asked the question to Chem871 (the armor addon mod author) on the forums. Armor addon is his personal repository, and he is the only contributor. I assume it is all his original work. He still seems to be active on the forums so hopefully we'll get a reply.

I'm very much fine with GPLv2-or-later.

@Lazerbeak12345 you've made a commit to moarmour ;-P

dacmot commented 1 year ago

Engrave, I'm indifferent to, to be honest.

mese_crystal I like very much. Hopefully we can get the author to add a license. Do you think that using the minetest forums would be sufficient to fork the mod and add the license ourselves?

Helicopter is very cool too. But it gets a little more complicated since there are 4 contributors in GitHub, plus Pavel Sokolov, who's contributions don't get compiled by Github---probably because the commit email doesn't match the Github account's address. And on top of that, the forum page mentions taking code from other mods...

Lazerbeak12345 commented 1 year ago

you've made a commit to moarmour ;-P

I'm okay with GPLv2 or later on that code as well. I'd say you should just be able to make that change now, and we can check another checkbox off as fixed! :)

Lazerbeak12345 commented 1 year ago

Also, if you look in the forumn Chem replied and consented to the licence change.

Lazerbeak12345 commented 1 year ago

mentions taking code from other mods...

The mods it takes from are

so nothing to worry about there unless there's undocumented code taken from other mods. If that's the case, however, since it's not documented, we would not be liable for such an error.

Lazerbeak12345 commented 1 year ago

mese_crystal

the forumn link you shared shows it's WTFPL so we could use or fork a version licenced accordingly. seems like it hasn't been edited since then, so to answer your question: yes, absolutely. We can fork the mod, add the WTFPL licence to it, then resume our use of that mod. (While we are there we could also merge that pending PR too lol)

Lazerbeak12345 commented 1 year ago

Might be wise to site our source (the forum post) in the readme or something when we fork anything.

Lazerbeak12345 commented 1 year ago

Note for myself in the future: the LGPLv2.1 licenced mods are also incompatible with GPLv3. I need to add these to the OP as todos

dacmot commented 1 year ago

Note for myself in the future: the LGPLv2.1 licenced mods are also incompatible with GPLv3. I need to add these to the OP as todos

Are you sure? https://www.gnu.org/licenses/license-list.en.html#LGPLv2.1 seems to say otherwise... It's compatible with GPLv2 and v3. LGPLv3 is not compatible with GPLv2, but is ok with v3.

Lazerbeak12345 commented 1 year ago

That's great news! that means 5-ish less mods to worry about.

dacmot commented 1 year ago

Forked and re-licensed mese_crystals (#138, https://codeberg.org/Dacmot/YellowCrystals). Reading the license quickly I thought I had to rename it, but re-reading it now, it looks like that only applies to the license document itself.

Lazerbeak12345 commented 1 year ago

In my opinion, fixing the incompatibilities is the most important TODO that we have here.

Any progress on moararmors? - edit yes there's progress. see above in my own comment.

dacmot commented 1 year ago

Thanks for the reviews. Helicopter is the next one... A big one.

dacmot commented 1 year ago

Might be able to do the same with engrave as with mese_crystals.

Lazerbeak12345 commented 1 year ago

I've posted on the forumn and made a PR for engrave. We could use my fork on that branch in the pr for now.

dacmot commented 1 year ago

I've created issues and PRs for all three repositories (PavelS, Desour and APercy) to change the license from GPLv2-only to GPLv2 or any later version.

Lazerbeak12345 commented 1 year ago

Nice! great work!

I'm not sure what, from a legal perspective, is and isn't allowed in a "Clean Room Design," so I'm unsure as to the degree I or any other developer we've reached out to would be able to make a new helicopter mod.