VersuchDrei / OStimNG

mono repo for OStim development
GNU General Public License v3.0
10 stars 11 forks source link

License issue (GPL3 violation) #33

Closed mysticfall closed 1 day ago

mysticfall commented 2 days ago

This isn't about a technical issue, but I'm pretty confident you can't release any Skyrim scripting mod under the GPL3 license.

This mod includes sources that rely on proprietary code like Papyrus API, which isn't permitted by the license. Also, even if we ignore the problem with OStim itself, it will affect every single mode that uses it as a dependency. Technically, they are all violating the terms of GPL3 at the moment.

To avoid the issue, I think the project should change to a more permissible license, like MIT or MPL2 (in case you want to keep the copyleft nature of GPL3).

VersuchDrei commented 2 days ago

I appreciate your concern, but since all the Papyrus source scripts are available for free and are used unmodified it is not violating the GPL-3 license to require them for compiling.

mysticfall commented 2 days ago

I appreciate your concern, but since all the Papyrus source scripts are available for free and are used unmodified it is not violating the GPL-3 license to require them for compiling.

Unfortunately, it doesn't work that way. Some copyleft licenses, particularly GPL, are very restrictive in that regard.

To comply with the GPL, your program should only rely on either GPL or GPL-compliant code. While it's theoretically possible to write a GPL add-on to proprietary software, it's only permitted when it's not a "derivative work" of the said program.

It doesn't matter if OStim references Papyrus API without modifying it. The mere fact that it shares "data structures" like Actor with the platform is enough to make them incompatible.

Even if we ignore the issue with OStim itself, the mods relying on OStim cannot avoid being considered a derivative work of both Skyrim and OStim. This creates an obligation for them to be released under GPL, which is impossible, of course.

If you feel I might be wrong about this, I can cite sources to back what I said above. As a long-time Linux user and FOSS supporter, I've seen many similar controversies regarding the license, so I believe I have a good grasp of the GPL's basic premises.

Please understand that I'm not saying this to start an unnecessary controversy. It only came to my attention when I decided to use OStim for my new mod and found that it was impossible for me to use it without violating the GPL terms.

VersuchDrei commented 2 days ago

Unfortunately, it doesn't work that way. Some copyleft licenses, particularly GPL, are very restrictive in that regard.

Taken from https://www.gnu.org/licenses/gpl-3.0.en.html:

However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work.

It only says that all resources used for compiling must be available for free, it does not say anything about requiring specific licenses.

Even if we ignore the issue with OStim itself, the mods relying on OStim cannot avoid being considered a derivative work of both Skyrim and OStim. This creates an obligation for them to be released under GPL, which is impossible, of course.

Yes they can. OStim is not a derivative work of Skyrim since it does not contain any modified vanilla files. The same way most OStim addons are not derivative works of OStim or Skyrim, since they do not contain modified versions of any of the OStim or vanilla files. Accessing the OStim API does not make your work derivative. As long as you don't include a modified version of any of the OStim files you do not have to license your work under GPL-3. APIs are copyrightable, yes, but accessing them (and sometimes even reimplementing them) in another work falls under fair use.

mysticfall commented 1 day ago

Ok, then let me try to explain it point by point.

First, the quoted part is mostly about low-level libraries like Windows system DLLs, because it is defined as below:

The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form.

Initially, the term's definition was much narrower. But GPL3 broadened it to include cases like a language Runtime. Still, the exception has been generally considered applicable to generally available, non-special purpose core libraries.

For such a relationship between Skyrim and its mod, in comparison, is covered under different terms like "plugin" and "main program", for example:

https://www.gnu.org/licenses/gpl-faq.html#GPLPlugins https://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

It might be clearer if we also consider the case with a mod that uses OStim by referencing its API in its scripts. It'd be difficult to argue OStim can be considered a "System Library" unless you extend the definition to include practically any library that can be distributed separately from the main software.

But if we could do that, there'd be no reason for anyone to release their source under GPL unless copy-pasting from GPL source code or a business to adopt a GPL dual-license model, which is a pretty common practice.

Also note that this is the reason why game engines often explicitly prohibit combining any copyleft licensed code with them, like this (from Unreal's EULA):

c. Non-Compatible Licenses You may not, and may not permit others to, combine, Distribute, or otherwise use the Licensed Technology with any code or other content which is covered by a license that would directly or indirectly require that all or part of the Licensed Technology be governed under any terms other than those of this Agreement (those licenses, the “Non-Compatible Licenses”). This means, for example, that you may not combine the Licensed Technology with code or content that is licensed under any of the following licenses: GNU General Public License (GPL), Lesser GPL (LGPL) (unless you are merely dynamically linking a shared library), or Creative Commons Attribution-ShareAlike License.

Or in the case of BGE/UPBGE, which enforces GPL obligations, in contrast, being a GPL engine itself:

Blender and the UPBGE/BGE are licensed as GNU GPL, which means that your games (if they include Blender software) have to comply with that license as well.

When game engines, which are a much more general-purpose platform than specific game like Skyrim interpret GPL that way, I doubt one would be able to build a strong case to argue how a Skyrim's framework mod like OStim should be considered a "System Library" so that it can be exempt from GPL obligations.

If this hasn't convinced you to reconsider the licensing option for OStim, I won't push my points further. After all, what I wanted was simply to make an OStim-based mod without violating GPL myself.

If you don't see OStim itself as violating GPL terms, I believe there can hardly be any reason to consider that my OStim mod must comply with GPL3's terms (I'm planning to release it under MIT).

Anyway, thanks for your work on this great mod. I can't wait to see what it can do when I've only used SexLab before.

VersuchDrei commented 1 day ago

If this hasn't convinced you to reconsider the licensing option for OStim, I won't push my points further.

We don't really have much of a choice here, as some of the contributors have retired and we have no way of reaching them. Since their contributions were under GPL-3 so has to be the entire software.

After all, what I wanted was simply to make an OStim-based mod without violating GPL myself.

If it helps: The only scripts I am not the sole legal copyright holder over are: OAIUtils, OBarsScript, OSANative, OSexBar, OSexIntegrationMain, OSexIntegarionMCM, OStimAddon, OStimSubThread and OUtils. You shouldn't be needing any of those since they are all deprecated and only still included for backwards compatibility. For all other scripts I hereby grant you explicit, irrevocable permission to use those scripts in your mod without having to comply the the GPL-3 license.

mysticfall commented 1 day ago

If this hasn't convinced you to reconsider the licensing option for OStim, I won't push my points further.

We don't really have much of a choice here, as some of the contributors have retired and we have no way of reaching them. Since their contributions were under GPL-3 so has to be the entire software.

Yes, I understand that.

If it helps: The only scripts I am not the sole legal copyright holder over are: OAIUtils, OBarsScript, OSANative, OSexBar, OSexIntegrationMain, OSexIntegarionMCM, OStimAddon, OStimSubThread and OUtils. You shouldn't be needing any of those since they are all deprecated and only still included for backwards compatibility. For all other scripts I hereby grant you explicit, irrevocable permission to use those scripts in your mod without having to comply the the GPL-3 license.

I understand the way some of the Skyrim mods use GPL, although it may be based on controversial interpretation (in my view), is because the focus is on encouraging people to share their code with the rest of the modding community rather than on strictly following the tenets of GNU.

I also share this desire, having greatly benefited from the work of others the last time I made a Skyrim mod. So, I'll just keep focusing on actually working on my mod for now, and will make sure to make its source available when it's done.

Thanks again!