0

Licensing is absolutely not my topic and I'm currently trying to learn about it while developing my game. I'm trying to implement the espeak-ng library into my game, so I can use it to generate robot speech in game. Only problem is that said library is licensed under GPL-v3, and based on what I've learnt, that means that if I want to link this library at compile time with my game, the GPL license "spills" over to my game aswell, meaning that I'd have to open the source of my game - which is pretty suboptimal.

Also, since the original author of that library is unreachable, I can't acquire a linking exception for the library. Hence, I'm trying to see what my possibilites are. I've read that I could write a seperate executable which links to the library, and release that executable as GPL-v3. Advantage would be that I could ship this .exe with the game and I'd have to communicate with it using any form of inter process communication, like sockets, pipes, etc.

This could be a solution, although I'd like to know the details. I'm also wondering whether it's possible to not use a seperate executable, but a runtime dependency .dll which gets delay-loaded by the game.

I'm open for discussion and eager to learn more about this topic. Thanks!

6
  • 1
    note that it's not obvious that putting the library in a separate process would make your game "not a derivative work". In fact the bundle containing both your game, some other stuff, and the library would definitely still be a derivative work of the library.
    – user253751
    Apr 13, 2021 at 18:22
  • The point for choosing GPL for a library is, that any programme making use of the library MUST be licensed under GPL as well. So... tough luck: release your programme under GPL, too - or find another library. Anything else will most likely be a license violation. Apr 13, 2021 at 18:52
  • Not directly related to your question, but yikes: the espeak-ng README calls out GPL-incompatible terms around one its libraries. The library itself has permissive terms by its company of origin (Apple, Inc.) but the place hosting it (apparently the personal website of one of the original human authors) places non-free, GPL-incompatible terms disallowing commercial use and requiring upstream source pushback (which fails the desert island test). I'd be wary of using this code even if the GPL wasn't a problem for you.
    – apsillers
    Apr 13, 2021 at 19:02
  • @planetmaker I think "most likely a license violation" does not hold up in court.
    – user253751
    Apr 13, 2021 at 20:00
  • 1
    @The IEEE80 file says "Copyright (C) 1989-1991 Apple Computer, Inc." at the top, but also names two people as authors (Malcolm Slaney and Ken Turkowski) elsewhere in the file, one of whom shared the file on his site with significant restrictions on use. It's unclear if those restrictions are valid (did Apple authorize him to put those terms in place? Are Ken's 1991 mods licensed differently from Apple's original permissive license?) but if so they are absolutely GPL-incompatible.
    – apsillers
    Apr 13, 2021 at 23:38

1 Answer 1

1

If you ship your game together with the library, in one file, then obviously that file is a derivative work of the library, therefore that file must be distributed under the GPLv3 license.

Unless:

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

You would clearly be combining the library and the game to form a larger program, so this exception would not apply.

If it was so easy to work around the GPL, people would not use the GPL.

1
  • Comments are not for extended discussion; this conversation has been moved to chat.
    – MadHatter
    Apr 23, 2021 at 5:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.