I’m currently iterating over the possibilities I have in working with a third-party library. I’m trying to implement robot voices in my game - and the best Text-To-Speech library I found it espeak-ng, which really produces the voice output I like.
However, that library is licensed under GPL, which is a) listed as the non-compatible licenses in the UE4 EULA, and b) would require me to open-source the game when linking the library.
A popular workaround which people like to do is to build a wrapper .exe for the library, which is made open-source under GPL, and that wrapper executable is then shipped with the game - and the game communicates with the wrapper executable at “an arms length”.
So in this case, imagine a robospeak.exe, which would be opensource and under GPL because it links the library. The UE4Game.exe then would spawn this executable at the beginning of the game and communicate over either pipes or a socket.
However, the opinions vary if this is legal or not - and it seems like there’s no clear answer. Additionaly, the GPL FAQ says:
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.
Based on this, the question is whether shipping the wrapping executable in the same archive than the game (think of a Steam archive or a CD medium) would create such aggregate, or not.
Did anyone ever mess with this or is there any more detailed legal info available on this case?