Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Fwiw a lot of legal scholars have had their doubts on the virality of the GPL when it comes to dynamic linking.

The FSF takes a pretty major logical leap by considering dynamically linking a work to a GPL library to be creating a work that falls under the GPL.

Both EU and US scholars doubt that mere dynamic linking constitutes making a derivative work. (Specifically for the US, Galoob v. Nintendo ruled that a derivative work "must incorporate a portion of the copyrighted work in some form"; which obviously isn't the case with dynamic linking. - Legal scholars in the EU have come to similar conclusions when it comes to the various EU copyright directives.)

Generally speaking it's untested enough ground to kinda avoid the GPL for this usecase anyway, but the FSF's Legal FAQ presents things as fact in a way mostly only benefitting their cause.



Could you give a few examples of what you mean as "a lot of legal scholars have had their doubts"?

A key question is if different aspect of a work should be considered separate independent works communicating with each other or as a single copyrighted work. In games people often talk about DLL files (in terms of modding), game content like images, video and sound, game engines, game and sever code. How much and what aspects can be modified without the permission of the copyright author?

There are generally three arguments I have heard in favor of a "single work". One is that everything will eventually be copied into memory, and thus while independently they may have individual copyrights the combined work which the author calls "The Game" is a single work.

The second argument is that all this technical details doesn't matter for a judge or jury. What matter is what those people perceive as a single work. Technical aspects like did the copying arrive there through the internet, a CD, a DLL file, or what have you isn't that important in determining the question about a single work vs interoperability between different independent works. It is all about the experience for the end-user.

The third argument I hear is that DDL files or programs that dependent on them are not independent. One can not run them independently, they are generally not developed independently, nor can the "single work" even start if parts are missing. Putting files into DDL is just a form of splitting the work into multiple files for technical convenient reasons, which is not a basis to form a legal distinction between a single work and multiple independent works. If the technical aspect would allow this then anything sent over the internet would loose copyright, since content is split into thousands IP packages which individually might not be large enough to be copyrighted.


Main ones I know of (being European) are well, EU ones. The main one I'm deferring to is the EUs own words[0] on the matter, which explains that "the parts of the programs known as ‘interfaces’, which provide interconnection and interaction between elements of software and hardware may be reproduced by a legitimate licensee without any authorisation of their rightholder".

As for a realistic example as to where this applies, I'd pick the age-old "GNU Readline" library. Readline is infamous for the fact that it's a standard library on Linux distros (because it's a bash dependency) that is easy to accidentally import in a C project and lands under the GPL. The FSF from what I can tell loves to parade this library around as a way to "gotcha" developers; it's to the point where even Readlines Wikipedia article mentions this[1].

In the case of EU law - this is just straight up not an issue[2]. As long as you're not distributing your software with readline, but rather with a dynamic link to readlines .so file (which for Linux can be easily assumed since it's a bash dependency and the overwhelming majority of Linux PCs have bash installed), readline's license doesn't apply since a user can just supply their own library and as long as it's compatible, it will work. It's hard to argue someone is distributing readline or making a derivative work from readline just by linking with its public API.

To put it in a slightly different form - the idea of linking not being a derivative work to stop somewhere because otherwise the literal Linux Kernel would force every program ever written for it to be under GPL2.0-only (which obviously isn't true, not even in US law from what I can tell), since every linux program is technically a derivative of linux the kernel. The EUs interpretation seems to be that it ends exactly on the moment the code in a program stops being ran from the files with which it's distributed.

---

Game mods are probably split down the middle, if we just look at them "as code" (so without going into asset patches - those would probably be a derivative work regardless, I'm thinking here of say, editing a loot table in a game; basically just number tweaks). Games with officially used mod loading can likely claim that mods are plugins, which would make them derivative works. That said, most games as of recent don't ship with mod loaders and rely on patching a DLL file shipped with the game[3], which likely would make an individual mod not a derivative work, given it's just an interface re-implementation with user-defined side effects.

Then you have the really old-school IPS files which just are straight up binary patches. I have absolutely no clue how those fit into the mix, given an IPS patch is literally a series of data offsets + what data to dump at those bytes. Those mostly fit with old ROMs though since IPS patches were abandoned due to inherent size limits + a magic word bug.

---

That said, ultimately it's important to keep in mind that law isn't computer code. It's not that if function foo takes argument bar and produces result foobar, that you always get result foobar with the law[4]. Not even in the US, which almost always defers to precedent ("case law") is that the case, and even less so in the EU where precedent is just treated as another argument rather than something to defer to. There's a zillion edge-cases to each example and a judge can rule differently in the end for most situations.

This is simply what the EU has written on the matter and from what I know about CJEU rulings, the CJEU tends to side on the interpretation that unless the goal is extremely blatant copyright violation, it's probably fine.

[0]: https://joinup.ec.europa.eu/collection/eupl/licence-compatib... (see: More details on the case of linking section)

[1]: https://en.wikipedia.org/wiki/GNU_Readline#Choice_of_the_GPL...

[2]: Full disclosure, I am not a lawyer, please ask an actual lawyer for legal advice.

[3]: Bepinex is the one used for the majority of Unity games and is one that jumps to mind immediately.

[4]: And that's generally speaking a good thing. Application of the law does require nuance.


The EU law, also linked in the sibling comment, has some direct conditions. Interoperability of interfaces are allowed on the condition that it does not prejudice the legitimate interest of the copyright holder, and it does not conflict with a normal exploitation of the program, and is independent. This is likely the reason why Linus toward had said that non-free drivers may be legal, may in other cases not be, and it depend on the exact details.

A driver that itself was intertwined with the internals of the kernel, or would conflict with the exploitation of the linux kernel, or cause conflict with the legitimate interest of the copyright holders, might be a derivative work. The linux kernel has published clear boundaries for this (https://www.kernel.org/doc/html/latest/process/license-rules...), like the the syscall interface. Drivers that do not respect those boundaries may be more likely to fall outside of the EU law, but as with most legal discussions it would be a gliding scale.

Readline is one of those more odd theoretical case where the specific main work is the library itself. This makes questions like "legitimate interest of the copyright holder" and "normal exploitation of the program" a bit more complex. It would however never become a real legal case since anyone accused of infringement can just replace the small library with an compatible alternative and stop distributing the GNU Readline library. Since compliance is generally the goal by FSF I doubt they or any company would be willing to spend money on lawyers to fight over it.

In contrast, Unity sells their game engine library, so companies that tried to bypass copyright (by not paying) and "link" their games with existing installed versions on users computers would likely still end up in court. My money would also be on unity winning that battle.


exactly. EU law allows linking without producing a derivative work according to this: https://joinup.ec.europa.eu/collection/eupl/matrix-eupl-comp...


That article makes an interesting argument. If the code is for the purpose of interoperability, and the use does not prejudice the legitimate interest of the copyright holder, and it does not conflict with a normal exploitation of the program, and is independent software, then it may not be a derivative work.

It would take a very special situation when a company would rely on fulfilling all those conditions in order to use that as a legal defense.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: