FunkinCrew / Funkin

A rhythm game made with HaxeFlixel
https://www.newgrounds.com/portal/view/770371
Other
2.92k stars 2.27k forks source link

Bug Report: Licensing conflict #1106

Closed namazso closed 2 years ago

namazso commented 3 years ago

Here the README lists releasing source code of derivative works required: https://github.com/ninjamuffin99/Funkin/commit/2918ad1aefafdd1450dd4e86f7a7795dfb8189fd

However this conflicts with the Apache 2 license here: https://github.com/ninjamuffin99/Funkin/blob/master/LICENSE

Are people allowed to pick either? In this case it should explicitly be addressed in readme / license file

bonkmaykrQ commented 3 years ago

a few years ago, someone made an open-source PDF library with a very open license (i forget which library).

i think i found the library, it's called iText!

Off-topic but don't I know you from "Proposal to Solve Betterdiscord?" @jbmagination

Anyhow, as I've probably said way too many times, I think ninjamuffin should ditch the joke license and just go with GNU GPL v3. It prettymuch has the perfect balance he was looking forーkeeps the game FOSS and prevents others from taking that away.

I'm not sure what's taking so long to make that decision, perhaps the team is writing their own license but that seems rather unnecessary in my opinion.

Since there's not really been anything new here for about two weeks I think we should just close this issue, as most of us have had a chance to provide needed input.

jbmagination commented 3 years ago

@bonkmaykrQ It follows me everywhere I go...

He's already explained why he can't use GPLv3-- copyleft licenses are apparently frowned upon by console developers

I wouldn't say this should be closed, though-- it's technically not "resolved"

jyhi commented 3 years ago

Not giving any license and making FNF all rights reserved can actually be a choice. Ways to use this project are then granted by the author in a custom Term of Use document. See The Touhou Project for an example. I believe NinjaMuffin really values the community and can make the correct choice, not hurting derivative work creators.

Pharap commented 3 years ago

@jbmagination

He's already explained why he can't use GPLv3-- copyleft licenses are apparently frowned upon by console developers

Personally, until I see evidence to the contrary, I'm inclined to believe console publishers would accept either a dual licensing arrangement or having different versions of the game licensed differently.

If it were true however that no console developer would accept a game that has been published under a copyleft licence, that would mean that it would actually be impossible to simultaneously require modders to share their source code with others (which is by definition copyleft) and get the game published by console publishers.

That said, there is another option. With the right framework, it's possible to lock up the actual game's source code whilst still allowing other people to create 'plugins' or extra levels. It would greatly limit what's possible because it would prevent people modifying the actual game engine, but it could be done in such a way that modders could add new levels and have a reasonably good degree of control over other aspects.

At a minimum, allowing people to add new levels shouldn't be too difficult if the source code were adapted such that levels consisted entirely of data and no code. Going further, if support for a scripting language (e.g. Lua, Squirrel) were added then it would be possible to create more complex plugins that could affect other things whilst still not technically modifying the base game (hence 'plugins', not 'mods').

I wouldn't say this should be closed, though-- it's technically not "resolved"

This I agree with. An unresolved issue shouldn't be closed.


@lmy441900

Not giving any license and making FNF all rights reserved can actually be a choice

It is an option, but it's not a good one because it offers modders no protections or guarantees.

It would be equivalent to simply trusting the FNF authors (or whomever they might sell their copyright to) to not abuse their copyright and to not target individual modders that they simply didn't like. Naturally, how likely you think that is will depend on how prepared you are to trust the words of relative strangers, but either way a legal guarantee is infinitely better than a mere promise.

See The Touhou Project for an example.

That's almost certainly not legally binding, and even if it were, it doesn't actually permit mods because of item 1: "Using game data other than screenshots is forbidden.".

Some of the points on the list are already guaranteed by copyright law (e.g. item 7) or other laws (e.g. item 3 - moral rights), and some are unenforceable (e.g. item 6).

At any rate, something like this would probably be unsustainable for FNF because the authors would likely be bombarded with more permission requests than they could handle in a timely manner. On top of which, many people who asked permission probably wouldn't even end up finishing their mod so a lot of the effort of reviewing mods and granting permission would be wasted on mods that people simply abandon.

RandomErrorMessage commented 3 years ago

I'm sure ninjamuffin99 thinks he's being cute and LOL SO RANDOM XD but I find it all pretty ironic consider his legal concerns regarding publishers about copyleft licenses.

HTV04 commented 3 years ago

Aren't the Apache license and the GPL v3 "compatible," as in Apache code can be used for a GPL v3 project (and obviously not vise versa)?

If this is the case, would a CLA even be necessary for switching to the GPL v3 license, considering the previous commits would always be available under the Apache license?

Of course, if @ninjamuffin99 were to relicense FNF under the GPL v3 and accepted code from contributors after the license change, he could no longer bring their code back to the Apache license without creating a CLA beforehand. That's the only problem I see, though.

XZCendence commented 3 years ago

im done with this shit fuck licensing

Ninja just wants to get his game on some consoles ok? I don't think he enjoys licensing legal bs any more than you do, it's just that he NEEDS to get this licensing stuff sorted out in order to get anywhere near major consoles or even anything commercial. GPL and the Apache licenses exist for a reason, and you just hating them for the sake of hating them isn't gonna get you, this game, or any of your projects anywhwere.

Hans5958 commented 3 years ago

About mods, has anyone said something about having the build script creates the LICENSE file after build? Doesn't stop anyone to disable it, but at least there are people who didn't care about it anyway.

HTV04 commented 3 years ago

About mods, has anyone said something about having the build script creates the LICENSE file after build? Doesn't stop anyone to disable it, but at least there are people who didn't care about it anyway.

Someone already made a pull request for this: #1116

JakeT23cool commented 3 years ago

has anyone considered LGPL seems like that is what you would want. you wouldn't able to use GPLv3 because of the tivolization clause (nintendo port).

trayfellow commented 3 years ago

https://user-images.githubusercontent.com/48515908/123588345-d1277600-d811-11eb-9648-65881219c3ff.mp4

Pharap commented 3 years ago

you wouldn't able to use GPLv3 because of the tivolization clause (nintendo port).

How would that be a problem?

If anything I would have thought Nintendo would be happier about the so-called 'Tivoisation' clause because it allows them to use hardware restrictions or DRM to prevent modified versions of the game running on their hardware.

(Not that I think Nintendo would want an open source version used on the Switch in the first place. They'd almost certainly want the Switch version published under a closed source licence.)

LGPL

Unless the game were reworked as a library instead of an actual game, this would have all the same problems as the GPL. The game would be copyleft, which would be good for making sure mods are open-sourced, but supposedly might scare off console developers.

And if the game were reworked into a library component and a game component and modders just linked to the library and didn't use the game component, they'd be allowed to close-source their mods.

The whole point of the LGPL is that it's designed for creating open source libraries that are linked into closed source software.

JakeT23cool commented 3 years ago

If anything I would have thought Nintendo would be happier about the so-called 'Tivoisation' clause because it allows them to use hardware restrictions or DRM to prevent modified versions of the game running on their hardware.

Sorry I didn't word that very well. I meant that the FSF added a Anti-Tivolization clause to GPLv3 (not present in GPLv2) to prevent companies from adding DRM, hardware restrictions etc.

Unless the game were reworked as a library instead of an actual game

The LGPL was originally made for open-source library's that could be included in proprietary software. But the LGPL can also be used in non-library circumstances. The really only difference between the GPL and LGPL is that the LGPL can be linked with non-GPL'ed code any modifications would still have to be open-source.

So i think that a good license choice would be CC-BY-SA for the assets and LGPL for code.

Also nintendo does use some GPL'ed(v2) and LGPL'ed code.

Pharap commented 3 years ago

the FSF added a Anti-Tivolization clause to GPLv3 (not present in GPLv2) to prevent companies from adding DRM, hardware restrictions

For some reason I thought it was the other way around - the v3 introduced a clause that permitted DRM.

According to the theory that console companies won't touch copylefted code, the tivoisation clause is irrelevant either way because the problem would be elsewhere in the licence.

LGPL for code.

Like I said, that's still going to cause issues with the idea that console companies won't touch copyleft code, because the game itself would still be copyleft.

The core problem is that without creating a custom licence or doing dual licensing, it's impossible to simultaneously please a hypothetical console company that won't accept copylefted code as well as force modders to release their mods open source.

GPL, LGPL and similar licences all force modders to release their mods as open source, but supposedly scare off console developers.

MIT, Apache 2.0 and co would not force modders to release their mods as open source, but they're not copyleft licences, so supposedly the console companies might not hate them as much?

Nintendo does use some GPL'ed(v2) and LGPL'ed code.

For libraries and possibly tools, but not games last I checked, hence it doesn't counter the claim that certain game companies won't touch copylefted game code.


I'm still treating the claim that console companies won't touch open source/copyleft games with a heap of salt, but either way I still think dual licensing is the optimum solution.

zoeleu commented 3 years ago

Revert the license for now as that isn't really a license. Here's the sad truth: you can't be truly FLOSS and publish to Nintendo.

EDIT: you might be able to make a CLA and make a private fork with nintendo switch support

TechnologyClassroom commented 2 years ago

@ninjamuffin99 I gather you want a copyleft license in general, but you need other options to allow the game to comply with walled garden console stores. I would recommend reaching out to the FSF Licensing & Compliance Team at licensing@fsf.org for some guidance through this issue.

zoeleu commented 2 years ago

@ninjamuffin99 You can't just change the license without contributors permission. That is illegal.

ninjamuffin99 commented 2 years ago

@ninjamuffin99 You can't just change the license without contributors permission. That is illegal.

depends on the license. People who have contributed to FNF code so far have had all their code contributed to the Apache 2.0 license. Apache 2.0 license explicitly ALLOWS sublicensing / relicensing of code contributions. When I accepted people's PRs and their code, they already GAVE their permission for that, because it's IN the current license.

Where stuff like that get's iffy is in open source licenses that do NOT allow for such sublicensing. Licenses such as the GPL series of licenses. This was an issue with the Dolphin emulator, where they needed to relicense their GPLv2 license into a GPLv2+ license. https://dolphin-emu.org/blog/2015/05/25/relicensing-dolphin/

The other big example is the linux kernel, which is a MUUUCH larger project than the Dolphin emulator, which would generally make it VERY difficult to relicense the linux kernel. I'm not too in the know with linux kernel licensing discourse though, there's probably a few more details and considerations that go into their licensing discussions.

BUT basically, the Apache 2.0 license that FNF code is all licensed under (and agreed upon by anyone who submits a PR) ALLOWS changing the license to some extent. As far as I know, it wasn't illegal to change the license from Apache 2.0 to anything else lol. DISCLAIMER IS THAT I AM NOT A LAWYER!!!! THIS IS ALL JUST MY OWN UNDERSTANDING OF LICENSES AND SHIT. I AM CLOSING THIS ISSUE SINCE FNF IS UNDER APACHE 2.0 AGAIN AND MY FUNNY LIL PRANK LICENSE IS NO MORE

XZCendence commented 2 years ago

@ninjamuffin99 You can't just change the license without contributors permission. That is illegal.

depends on the license. People who have contributed to FNF code so far have had all their code contributed to the Apache 2.0 license. Apache 2.0 license explicitly ALLOWS sublicensing / relicensing of code contributions. When I accepted people's PRs and their code, they already GAVE their permission for that, because it's IN the current license.

Where stuff like that get's iffy is in open source licenses that do NOT allow for such sublicensing. Licenses such as the GPL series of licenses. This was an issue with the Dolphin emulator, where they needed to relicense their GPLv2 license into a GPLv2+ license. https://dolphin-emu.org/blog/2015/05/25/relicensing-dolphin/

The other big example is the linux kernel, which is a MUUUCH larger project than the Dolphin emulator, which would generally make it VERY difficult to relicense the linux kernel. I'm not too in the know with linux kernel licensing discourse though, there's probably a few more details and considerations that go into their licensing discussions.

BUT basically, the Apache 2.0 license that FNF code is all licensed under (and agreed upon by anyone who submits a PR) ALLOWS changing the license to some extent. As far as I know, it wasn't illegal to change the license from Apache 2.0 to anything else lol. DISCLAIMER IS THAT I AM NOT A LAWYER!!!! THIS IS ALL JUST MY OWN UNDERSTANDING OF LICENSES AND SHIT. I AM CLOSING THIS ISSUE SINCE FNF IS UNDER APACHE 2.0 AGAIN AND MY FUNNY LIL PRANK LICENSE IS NO MORE

Unbelievably Based

flagrama commented 2 years ago

(and agreed upon by anyone who submits a PR)

My understanding is they agreed to have their code under the current license, but without a CLA assigning copyright to you or a legal entity, contributors still own the copyright of their own code and can decide whether it can be used under different licenses. You can sub-license the existing to a license with the same terms as the existing license, plus more restrictions and add new code with a separate license, but you cannot remove all restrictions without the permission of the copyright holders.

Pharap commented 2 years ago

Apache 2.0 license explicitly ALLOWS sublicensing / relicensing of code contributions.

@ninjamuffin99

What the Apache 2.0 licence actually says is:

  1. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.

(Emphasis mine.)

The phrase "shall be under the terms and conditions of this License" suggests that contributors are only agreeing to have their contributions used under the Apache 2.0 licence. This precludes the possibility of releasing the contributions under a different licence (without the agreement of the contributors).

The phrase "without any additional terms or conditions" suggests that contributors do not agree to any additional terms or conditions other than those in the Apache 2.0 licence. This precludes the possibility of dual licensing (without the agreement of the contributors).

I'm not a lawyer, but it seems pretty clear cut to me. Relicensing of any kind would appear to require the agreement of all contributors.

(It's a shame this wasn't spotted earlier, it could have avoided quite a lot of debate.)


I should also point out that sublicensing and relicensing are two different things. A sublicence is:

a license granted by a licensee to a third party, under the authority of the license originally granted by a licensor to the licensee

Or, to put it more simply, a party who is granted a licence may then grant that licence to third parties, at which point they are 'sublicensing' the licence because they are not the original licensor.

So while Apache 2.0 does say:

  1. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.

(Emphasis mine.)

What that actually means is that contributors are providing their permission to allow licensees to grant the licence to third parties. I.e. so that people may share copies of the software with friends, and in doing so their friends are granted the licence.


Either way, I'm glad to see the sanity of Apache 2.0 restored.

ninjamuffin99 commented 2 years ago

if any contributor that ive accepted their PR wants to sue me, go for it. thats maybe 10 different possible people? probably less people than are in this thread discussing it. if there is any CONTRIBUTOR who would be genuinely unhappy with changes like this, and they came to me about it, i would respect them and hear them out. instead, its people having this weird discourse about something i did about half a year ago, and have already reverted cuz i was tired of my own joke "license"! WHO CARES NOW LEAVE THIS ISSUE ALONE LMFAOOO WE ROCKIN WIT APACHE 2.0 LICENSE BAYBEEE WE R OPEN SOURCE AND SHIIIIT EVERYONE JUST BE COOL PLAY IT COOL

XZCendence commented 2 years ago

FR

On Wed, Dec 15, 2021, 10:08 PM Cameron Taylor @.***> wrote:

if any contributor that ive accepted their PR wants to sue me, go for it. thats maybe 10 different possible people? probably less people than are in this thread discussing it. if there is any CONTRIBUTOR who would be genuinely unhappy with changes like this, and they came to me about it, i would respect them and hear them out. instead, its people having this weird discourse about something i did about half a year ago, and have already reverted cuz i was tired of my own joke "license"! WHO CARES NOW LEAVE THIS ISSUE ALONE LMFAOOO WE ROCKIN WIT APACHE 2.0 LICENSE BAYBEEE WE R OPEN SOURCE AND SHIIIIT EVERYONE JUST BE COOL PLAY IT COOL

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ninjamuffin99/Funkin/issues/1106#issuecomment-995398159, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKQA7EF76IW5LSUC4LYWY2TURFJ4BANCNFSM446CLI7A .

flagrama commented 2 years ago

I'd expect most of the people here to be fans of FNF and would prefer you didn't do something to get yourself sued, contributions removed from the projects, or fuck up the ability to play or improve it in the future.

ninjamuffin99 commented 2 years ago

if it comes down to it, current outside contributions are so little (regarding PRs and such), that I'd just remove anyone's contribution if they didn't want it relicensed and it would very likely have VERY LITTLE EFFECT ON THE GAME. But FNF will NOT be relicensed. FNF is STILL Apache 2.0 license. Everyone took the dumbass joke i did too seriously. if u guys keep being dense, I will obtain every single contributors permission with the help of our lawyers, like you guys seem to want, and relicense FNF under the FGL license

no one is going to sue for their 3 lines of code in their PR that got accepted, because of a dumbass license joke. enjoy ur life and dont take things too seriously.

peep dis one tho 👇 https://youtu.be/cKAeC9WDc8Y

RandomErrorMessage commented 2 years ago

There's no need to threaten people. It's a dead issue and it's over. This thread shouldn't have been bumped. Please consider the political/legal nature of FOSS, people can be sensitive and strict about certain things. Messing with the LICENSE file is probably on the top of that list. I hope this doesn't give you the impression that all of FOSS are just hall monitors giving devs a hard time.