TurningWheel / Barony

Barony Open Source Release
http://www.baronygame.com/
Other
487 stars 127 forks source link

The FMOD library might be incompatible with the GPLv3, unless you define an exception #19

Open akien-mga opened 8 years ago

akien-mga commented 8 years ago

Currently Barony needs the proprietary FMOD library to build. I am not a lawyer, but I think it might be contradictory to the terms of the GPLv3 license, which implies that all linked libraries should be GPL-compatible (with an exception for "System libraries"). See https://www.gnu.org/licenses/gpl-faq.en.html#SystemLibraryException and https://www.gnu.org/licenses/gpl-faq.en.html#GPLIncompatibleLibs

You can workaround this by adding a GPL exception as mentioned in the second link.

I couldn't find crystal clear information about such a use case though, so I don't know if making FMOD optional instead of required would be enough to satisfy the GPL, or if the GPL exception is really needed.

SheridanR commented 7 years ago

Thanks for bringing this to our attention. I didn't realize every linked library had to be GPL for your released code to also count for GPL. Unfortunately, since our time and resources are occupied on a new project now, we don't have time to rewrite Barony's sound core to use a different library, so we will probably have to add an exception to the license instead for now.

lheckemann commented 7 years ago

(IANAL and this is not legal advice)

As I understand it, redistributing binaries linked against FMOD is only a problem now that external contributors also hold copyright for parts of the code. Linking against FMOD is fine, but redistributing the result (via Steam, Humble Store) is not, because the people it is being redistributed to cannot inspect and modify all the code that resulted in the binary. If all the copyright holders agree to an alternative licence, this is fine, but I don't think that's the case.

Given that the OpenAL code now exists and it's cross-platform too, maybe the FMOD code could just be removed? That would avoid the issue.

EDIT: Steamworks is also non-free and linked against in the steam build. The LGPL would probably be a more suitable licence for Barony.

addictgamer commented 7 years ago

What was this about exceptions, that wouldn't work?

lheckemann commented 7 years ago

Firstly, the exception still hasn't been added, and secondly all previous contributors will need to agree to it or their contributions will need to be removed. Same goes for the LGPL, but the LGPL is less likely to be problematic legally (because it's an established licence written by people who know what they're doing) than writing your own exception — and pretty much exactly covers the intended use case.

SheridanR commented 7 years ago

I know we've been slow to handle it correctly, but we are developers first who do this on the side, and we've got one other major project we're focusing on besides this one at the moment, so finding time to sort out legalities is unfortunately gonna fall low on our list of priorities... that being said, I still consider your advice invaluable, so thanks for raising this issue.

If it weren't for Steamworks, I'd happily just remove the FMOD code and call it a day for this issue, but Steamworks obviously has to remain in the code for the game to work on that platform. I wish I was aware of the issue licensing shared libraries before I GPL'd the original code release or I would've used LGPL instead, but as they say, hindsight is 20/20.

Going forward I think changing the license to LGPL is the only feasible and responsible thing to do here. Luckily I have seen it done on other projects before so I know there's a precedent. Requesting consent from past contributors could be a PITA though. I guess emailing them for permission would suffice.

lheckemann commented 7 years ago

Given that I can count the number of contributors on one hand it shouldn't be too difficult. I agree to a change to LGPL, which leaves (in terms of external contributors — I'm assuming the "official dev team" will agree):

(obtained using git shortlog --summary -e and some manual sorting out of duplicates)

lakp commented 7 years ago

Whatever few lines I contributed I don't claim any ownership and TurningWheel can do anything they want with it.

ptitSeb commented 7 years ago

I'm fine with the change of licence for the code I contributed.

pwhelan commented 7 years ago

I have no problem with the change in license respecting the code I've contributed.