wesnoth / haldric

Wesnoth 2.0, being developed in the Godot engine.
https://www.wesnoth.org
368 stars 48 forks source link

Settle on a project license #9

Closed Pentarctagon closed 5 years ago

Pentarctagon commented 5 years ago

There was a fair amount of discussion about this on Discord the other day, but this prototype(and the eventual full implementation, if that happens) really needs to settle on the project license sooner rather than later.

For art/music, it's fairly straight forward: anything taken from Wesnoth 1 remains under the same license, whether it's the GNU GPL v2+ or CC BY-SA 4.0. Anything new is under the CC BY-SA 4.0.

For code though, it becomes more complicated, but some things that need to be considered are:

Byteron commented 5 years ago

For art/music, it's fairly straight forward: anything taken from Wesnoth 1 remains under the same license, whether it's the GNU GPL v2+ or CC BY-SA 4.0. Anything new is under the CC BY-SA 4.0.

The trouble here was that it is possible to use CC in a GLPv3 licensed project, but it's not possible to use GPLv2+ licensed stuff in a CC project. Thus, we can't use art or music that has been licensed under GPLv2+ if we want to keep haldric licensed under CC BY-SA 4.0.

Pentarctagon commented 5 years ago

One solution is, of course, to try to contact the authors and ask about making their stuff available under a non-GPL license, though that would be a pretty large undertaking and there would inevitably be images that need to be replaced.

Alternatively though, if we do absolutely need to use a GPL v2+ image from Wesnoth 1, and you can't have a GPL v2+ image in a CC project, then it's just not possible to have Haldric be licensed as CC in the first place. In fact, it's already not possible for the prototype to be licensed as CC.

Byteron commented 5 years ago

This is probably only semi-related but LB wanted to make a few terrains for haldric in a "unique art style". It might not make sense to take these and some old ones and mix them, depending on how different they will be in their style. But in that spirit: Could it be possible to go full CC BY-SA 4.0, leave Wesnoth 1.x content to Wesnoth 1.x. and instead of trying to get feature equality with Wesnoth 1.x we focus on a small but high quality core that's made from scratch for the release, and then build upon that with the help of volunteers over time.

Pentarctagon commented 5 years ago

Could you not use anything from Wesnoth 1? Of course. But I don't think many people would switch over to a full release of Wesnoth 2 if it has significantly fewer features than Wesnoth 1. And IIRC the original premise of Wesnoth 2 was that it would be just a re-implementation of Wesnoth 1 on the Godot engine.

Byteron commented 5 years ago

Improved visuals can have a big influence on the choice of a game. Also, we might be able to do some essential things better so that UMC is easier to do. This would probably attract new people rather than Wesnoth veterans at first, but I don't see a problem in that.

Edit: Also some technical aspects, like eliminating OOS, simultaneous turns for allies, things that were not possible with the old engine.

Pentarctagon commented 5 years ago

I think you should define/decide what things wouldn't be included then. I also think that you might be underestimating how much work it would be to do even a partial replacement of Wesnoth 1's images - there are 4.5k+ terrain images and 206 portraits just in data/core/images/, for example. Meanwhile Wesnoth 1 as a whole has 14k+ images.

If Wesnoth 2 looks different, has fewer features, and perhaps due to the fewer features also plays differently, then I don't know how many current players would move over rather than viewing it as an entirely different game.

So if this is a course you're going to seriously consider, it should definitely be for more of a reason than the GPL being frustrating to deal with.

Byteron commented 5 years ago

Okay, yes. That is a lot. v.v Maybe that launcher is not such a bad idea after all, if we really want to have the steam works. Anyways, I just convey my thoughts on that. Ultimately this decision is for the board to make, I'll contribute eitherway.

Elvish-Hunter commented 5 years ago

Please note that Creative Commons itself advises against using their licenses for code: https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software.

Pentarctagon commented 5 years ago

Would it be possible to do something like putting the code under both the GPLv2+ as well as some other license, use the GPLv2+ as the project license for now, then switch the project license to that other license a few years down the line if things work out?

Byteron commented 5 years ago

I assume the problem stays the same, which is that we intend to use code and art that has already been licensed under GPLv2(+) and thus are not able to license haldric under a more permissive license. Dual licensing, as I got it, means that people that want to take our (dual licensed) project and distribute it somewhere else may choose whether to use the one or the other license. If we have, say GPLv2+ and MIT, and the user chooses to use the MIT license, this stays in conflict to to code and art that is licensed under GPLv2+ only as it can't be published under a more permissive license. Maybe the project could, when everything that's under GPLv2(+) gets removed/replaced but that's quite the same as doing everything from scratch in the first place.

GregoryLundberg commented 5 years ago

ISTM you're pretty much stuck with GPLv2, forever.

Conceivably, you could maintain Godot as MIT, provided you carefully wall it off. Similarly you could wall off new material. But once you start mixing things together you're pretty much screwed because any reasonable person is going to believe GPLv2 infected everything it might have touched.

Pentarctagon commented 5 years ago

Then it sounds like Haldric will need to retain the same licensing for all code/art/music as Wesnoth 1 does.

davewx7 commented 5 years ago

I think this project can use all-new code and license it using the MIT license.

With respect to art (including music, sound effects, etc), the GPL has always been a terrible and perhaps meaningless choice. (I say this as the person who chose the GPL as the license we use). The GPL concerns itself heavily with source code and art cannot be said to have source code to any meaningful degree.

I am of the position that the GPL is meaningless with respect to art to the degree that using GPL art assets in conjunction with an MIT licensed engine is fine. I think what we should do is this:

(1) develop the code from-scratch using the MIT license using only compatible libraries. (2) license any new art under cc-by-sa 4 as Wesnoth now does anyhow. (3) ask any artists of existing art assets who are contactable to relicense art under cc-by-sa 4 instead of GPL. (4) use any other art assets from Wesnoth because they don't contain code to 'link' to the application and thus don't violate the GPL (5) if any content creators are unhappy with their content being used in this way we'll happily just remove their content.

I think this is a reasonable way to do things.

jyrkive commented 5 years ago

@davewx7 All right, but in this case we also need

(6) Remove all GPLed libraries (such as godot-yaml-asset) from the project and ensure that none are added to the project in the future. (7) Ensure that Wesnoth 1.x code is not copied to this project or used as a reference.

davewx7 commented 5 years ago

@jyrkive you're right and I have clarified this in the comment.

We could also choose to dual-license the code under MIT and GPL and continue to use GPL libraries if that was preferable.

jyrkive commented 5 years ago

Dual licensing loses the primary advantage Vultraz wanted (ability to use the Steamworks SDK).

Byteron commented 5 years ago

"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. (GPLv3)

'Any other copyrightable work' does include art though, so they are linked to the program.

Pentarctagon commented 5 years ago

In which case, we're going to need more help with the C++ modules that are necessary, particularly since it seems like we'd need more of them using gdscript rather than C#.

loonycyborg commented 5 years ago

I'd recommend GPLv3 for code and CC-BY-SA for art. That way code from wesnoth 1.x can be freely reused and exactly v3 version of GPL is required for compatibility with CC. wrt steamworks api we should engage with Valve more to find a workable solution. Just plain banishing GPL is not a workable solution since steamworks SDK license is more restrictive than GPL thus action against overly restrictive licenses should start from it. And still lots of potential contributors would dislike their code to be potentially used in fully closed projects thus preferring GPL.