Jump to content

KSP's API is NOT compatible with the GPL. Here's a guide to help if you are in violation.


RandyTheDev

Recommended Posts

1 hour ago, Nils277 said:

 If the claims from RandyTheDev prove to be true its the users of the mods that can sue the mod creators because they are not getting what the license implies (being able to build the mod without KSP, or getting the source code of KSP). Still this seems to be veeeery unlikely.

There is no implication that the mod can be built without KSP, nor is there any implication that the user would be able to get the source to KSP.

The difference between gcc vs (say) linux, and a mod vs KSP is that in the case of gcc, there are many operating systems from which to choose, but for a mod, there is only KSP. And back in the day, building gcc for a new operating system was a very non-trivial task (I know because I spent some time trying to port gcc to the i860 in big-endian mode (don't remember the exact OS, some unix variant)). This means that should a competitor to KSP show up, users would be free to port any GPL mod to that competitor and distribute those changes. Thus, KSP is the system, it's just that there is currently only one system from which we can choose.

Edited by taniwha
Link to comment
Share on other sites

Quote

they are not getting what the license implies (being able to build the mod without KSP, or getting the source code of KSP)

Wait, how does this work together with the "not suitable for a particular purpose" clause? I'm pretty sure that nobody can't sue GPL'd code authors for not getting what they expect, because the license clearly states to expect nothing.

15 minutes ago, Nils277 said:

Still this seems to be veeeery unlikely.

Yes it does. Either way, I'ma join sarbian and the others on this one and just continue business as usual, assuming this won't happen.

 

15 minutes ago, Nils277 said:

On the other hand companies have been sued because they did not explicidly state that fresh coffee is hot...never undererstimate the greed of ppl.

Sorry if this is a bit off-topic now, but this meme needs to die, so I'm gonna put my off-topic rant into this box for anyone who cares:

Spoiler

While the "who knew coffee is hot" case is always purpoted as the king of frivulous lawsuits and over here in europe often used jokingly to allude to american stupidity, reality is a bit more complicated.

First off, do you know how hot coffee is usually? When you use your coffee machine, you can drink it, right? When I order it from Starbucks or a Café or any other place, I can drink it immediately, usually. That means it's in the 50°-60° C range. I drink a lot of coffee and I expect it to have a certain temperature. And this temperature is defintiely not 88°C.
Cuz that's how high it was in that McDonalds case.

They wanted to promote their take-away coffee by claiming that it's still warm when the consumers arrived wherever they wanted to. How did they do it? By making it *ridiculously* hot.

There have actually been many, many cases of severe burns (not just the one lady). One of these was an old lady that spilled 88°C coffee on her lap, causing third degree burns.

She sued McDonalds for around 20 000$, which was actually just the cost of her medical treatments (yep, medical costs in the US are ridiculous). McDonalds didn't even want to give her that. The judge and the jury got so mad that they awarded her much more money than she asked for.

The fact is that those ridiculous frivulous lawsuits that we over here in europe consider part of the ridiculousness of american culture aren't very common. But the memes that come out of this are actually distributed and circulated by the big companies, who like to play the victim card, pretending to sued by greedy stupid people. But it just isn't the reality.

Sorry to burst your bubble.

 

Edited by Kobymaru
Link to comment
Share on other sites

18 minutes ago, Nils277 said:

@Kobymaru If the claims from RandyTheDev prove to be true its the users of the mods that can sue the mod creators because they are not getting what the license implies (being able to build the mod without KSP, or getting the source code of KSP). Still this seems to be veeeery unlikely.

On the other hand companies have been sued because they did not explicidly state that fresh coffee is hot...never undererstimate the greed of ppl.

Yep, also if you use any third party GPL’d code in your mod the licensors of that code would also have a case against you.

Even if it was a victimless crime, wouldn’t it be better not to commit the crime in the first place?

Link to comment
Share on other sites

19 minutes ago, RandyTheDev said:

Even if it was a victimless crime, wouldn’t it be better not to commit the crime in the first place?

Even if you are correct that KSP cannot be counted as the system (and I am very confident that you are not correct), there is still no crime (copyright violation is not a criminal act), nor is there any infringement because modders do not bundle mods with KSP. Only Take-Two can bundle anything with KSP, and thus it is only Take-Two that can infringe on the copyright of the GPL code, even third-party: mods are separate entities even though they rely on KSP to be functional.

As I said earlier, you were confused by the Eclipse problem.

Edited by taniwha
Link to comment
Share on other sites

2 minutes ago, RandyTheDev said:

Yep, also if you use any third party GPL’d code in your mod the licensors of that code would also have a case against you.

How the hell would they have case against me?

 

2 minutes ago, RandyTheDev said:

Even if it was a victimless crime, wouldn’t it be better not to commit the crime in the first place?

No, because I want to open up my code and ensure its survival.

Link to comment
Share on other sites

8 minutes ago, Kobymaru said:

How the hell would they have case against me?

 

No, because I want to open up my code and ensure its survival.

Because distributing their GPL licensed work under a license that is incompatible with the GPL is a violation of their license and IP rights.

There are better licenses for ensuring your code’s survival, such as the Mozilla Public License that has a source sharing requirement that does not preclude linking with nonfree software, or the multitude of permissive licenses available to use. In fact I think permissively licensed software is more likely to gain contributors since developers don’t have to fear accidentally violating the GPL. I think the growing use of permissive licenses is proof of this.

Link to comment
Share on other sites

19 minutes ago, RandyTheDev said:

Because distributing their GPL licensed work under a license that is incompatible with the GPL is a violation of their license and IP rights.

The problem is, nobody is distributing any GPL licensed code under a license that is incompatible with the GPL. KSPs license does not cover our code.

Edited by taniwha
Link to comment
Share on other sites

2 hours ago, Kobymaru said:

Does the author violate the GPL by writing GPL code?

Not by writing, by distributing dlls that are bound to non-GPL KSP.

 

3 hours ago, taniwha said:

KSP is the "operating system"

No it's not.

1 hour ago, Kobymaru said:

But neither the Mod author nor the User have access to this code. Who is hurt by this "violation"? What's the damage?

I find discussions about the ideal and perfect lawfulness of an act ("but technically, it's ... ") pretty boring, I care about real life.

The culture of licensing the code. By that logic, there's no point to licensing code in the first place, if the terms of the license are not respected.

1 hour ago, taniwha said:

so for all intents and purposes, KSP is the system.

No it's not. Stop pulling new definitions out of thin air.

Edited by Boris-Barboris
Link to comment
Share on other sites

3 minutes ago, RandyTheDev said:

But linking to it does affect your compliance with the GPL.

No, it does not, for the reasons I stated above. And to be more clear: linking with KSP's dlls is not for the purpose of adding a little functionality to our mods (if this was the case, I would not be arguing with you), but rather to provide the environment under which our mods operate. This is why KSP can be classed as the system.

The problem with Eclipse and GPL plugins for Eclipse is the license conflict meant that those wishing to distribute Eclipse (in particular, the Linux distributions (Debian, Red Hat, and the others)) could not also distribute the plugins without infringing on the GPL. The authors of those GPL plugins were under no obligation to do anything, even if they used third-party GPL code.

1 minute ago, Boris-Barboris said:
1 hour ago, taniwha said:

so for all intents and purposes, KSP is the system.

No it's not. Stop pulling new definitions out of thin air.

There is no pulling of definitions out of thin air. My assertion is based on an understanding of how software in general and KSP in particular operate as a system.

I have shown my reasoning multiple times, including once again in this post.

Link to comment
Share on other sites

7 minutes ago, taniwha said:

There is no pulling of definitions out of thin air. My assertion is based on an understanding of how software in general and KSP in particular operate as a system.

I have shown my reasoning multiple times, including once again in this post.

Can you please demonstrate deductive chain that establishes Unity or KSP AssemblyCSharp.dll as an operating system in any of it's academical or legal definitions? Because I don't see any.

Your understanding does not give you any weight on the subject of widely-used definitions. Words were there long before you, and their meaning is up to your interpretation at best, but not definition.

Edited by Boris-Barboris
Link to comment
Share on other sites

Quote

Does distributing a nonfree driver meant to link with the kernel Linux violate the GPL? (#NonfreeDriverKernelLinux)
Linux (the kernel in the GNU/Linux operating system) is distributed under GNU GPL version 2. Does distributing a nonfree driver meant to link with Linux violate the GPL?

Yes, this is a violation, because effectively this makes a larger combined work. The fact that the user is expected to put the pieces together does not really change anything.

Each contributor to Linux who holds copyright on a substantial part of the code can enforce the GPL and we encourage each of them to take action against those distributing nonfree Linux-drivers.

 

That's from the FSF's FAQ about the other way around. Developing proprietary drivers for Linux. It is clear they see distributing a plugin as being equivalent to distributing a combination of the host software & your plugin, regardless of whether or not you distributed the host software itself.

Edited by RandyTheDev
Full context as requested.
Link to comment
Share on other sites

Regular programs cannot run without an operating system. KSP mods cannot run without KSP. Thus the relation between KSP mods and KSP is very similar to the relation between regular programs and the operating system on which they run. Indeed, in absolute terms, it can be argued KSP is not an operating system (but it is undeniable that KSP is a system, even in absolute terms), but in terms relative to a KSP mod, KSP is very much like an operating system.

System libraries are any libraries reasonably expected to be present in any instance of the overall system.

KSP's libraries are guaranteed[1] to be present, and thus count as system libraries with respect to KSP.

KSP is fully functional without even a single mod installed[2]. Thus it does not depend, in any way or by any means, on mods.

Mods are entirely dependent on KSP in order to be operational. KSP provides the equivalent of system calls and data structures upon which mods depend. Thus, from the perspective of the mods, KSP is the system.

Now, whether this argument would stand in a court of law is unknown, but I am confident that it would at least receive very serious consideration. Also, whether this is sufficient is also unclear, but again, I am confident that it is.

If you yourself are not confident, go ahead and adjust your license as you see fit, assuming you are able to, that is your right. It is in our (those of us who are confident) right to not change our licenses.

[1] If the libraries not present, KSP will not operate.

[2] Some may disagree, but KSP is fully functional to Squad's specification.

13 minutes ago, RandyTheDev said:

That's from the FSF's FAQ about the other way around. Developing proprietary drivers for Linux. It is clear they see distributing a plugin as being equivalent to distributing a combination of the host software & your plugin, regardless of whether or not you distributed the host software itself.

Again, you have it backwards. And next time, quote the full question and answer, not just the little bit that might support you. Better yet, edit your post with the full quote. Expecting us to dig through the FAQ looking for your snippet is quite unreasonable when the burden of proof is on your shoulders.

Edited by taniwha
Link to comment
Share on other sites

11 minutes ago, taniwha said:

Regular programs cannot run without an operating system. KSP mods cannot run without KSP. Thus the relation between KSP mods and KSP is very similar to the relation between regular programs and the operating system on which they run. Indeed, in absolute terms, it can be argued KSP is not an operating system (but it is undeniable that KSP is a system, even in absolute terms), but in terms relative to a KSP mod, KSP is very much like an operating system.

 

An operating system is defined as "low-level software that supports a computer's basic functions, such as scheduling tasks and controlling peripherals." There is no world where KSP meets any of those definitions.

17 minutes ago, taniwha said:

KSP's libraries are guaranteed[1] to be present, and thus count as system libraries with respect to KSP.

No, they aren't, especially if the user does not have KSP installed. Also, system libraries can only be with respect to the user's hardware, not a video game.

19 minutes ago, taniwha said:

KSP is fully functional without even a single mod installed[2]. Thus it does not depend, in any way or by any means, on mods.

As is Linux with regards to proprietary drivers, or Eclipse and GPL'd plugins. That doesn't change anything.

35 minutes ago, taniwha said:

Mods are entirely dependent on KSP in order to be operational. KSP provides the equivalent of system calls and data structures upon which mods depend. Thus, from the perspective of the mods, KSP is the system.

Sure, but it still doesn't mean KSP is an operating system.

37 minutes ago, taniwha said:

It is in our (those of us who are confident) right to not change our licenses.

That's... That's not how the law works. "Your honour, I was confident that I was allowed to..."

38 minutes ago, taniwha said:

Again, you have it backwards. And next time, quote the full question and answer, not just the little bit that might support you. Better yet, edit your post with the full quote.

Done. It doesn't change anything and still supports my argument.

Link to comment
Share on other sites

55 minutes ago, taniwha said:

Thus the relation between KSP mods and KSP is very similar to the relation between regular programs and the operating system on which they run.

KSP is not providing hardware resources to the plugin. Not even Unity or Mono does it. OS does it. Plugin does not run on KSP. Plugin code is dynamically compiled by Mono in linkage with KSP code, and then run by the OS.

55 minutes ago, taniwha said:

Thus the relation between KSP mods and KSP is very similar to the relation between regular programs and the operating system on which they run.

No. Out of an infinite set of interactions between two entities you have chosen the most abstract one and have proclaimed "see, very similar".

55 minutes ago, taniwha said:

KSP is very much like an operating system.

I don't share this opinion at all. I see no resemblance.

55 minutes ago, taniwha said:

KSP's libraries are guaranteed[1] to be present, and thus count as system libraries with respect to KSP.

They are not guaranteed to be present on an arbitrary computer.

55 minutes ago, taniwha said:

KSP provides the equivalent of system calls and data structures upon which mods depend. Thus, from the perspective of the mods, KSP is the system.

Factually wrong. Mod depends on all of the following: system calls and primitives, provided by OS and wrapped into C# API by Unity Mono fork (non-GPL), Unity Mono fork CLR implementation iteslf (non-GPL), Unity Engine functionality (non-GPL), and finally, at the entirety of KSP game logic library (non-GPL). KSP itself is just a part of the dependency.

55 minutes ago, taniwha said:

If you yourself are not confident, go ahead and adjust your license as you see fit, assuming you are able to, that is your right. It is in our (those of us who are confident) right to not change our licenses.

I have no problem here.

55 minutes ago, taniwha said:

Now, whether this argument would stand in a court of law is unknown, but I am confident that it would at least receive very serious consideration.

Imagine standing in the court and saying that planet Earth is an operating system for humanity. You use abstractions that are so far-fetched that they bear no conclusion. Operating system is not a thing, that is required for other things to run. This is too broad.
 

GPLv3:

"

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. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to

produce the work, or an object code interpreter used to run it. "

 

"Executable work" is our plugin. Now there are two tems left: Major component and System Libraries.
Scenario 1 - you say that Major component is KSP+Unity+Mono as a bundle, leaving System Libraries empty. But this bundle is not an essential component of operating system, neither it is a compiler (only Mono is, in a way (JIT)), not is it an interpreter (once again, only Mono is (in a JIT way)).
Scenario 2 - you say that Major compooent is Unity+Mono, and KSP game dll is System Library. But KSP game dll does not only serve to enable use of our plugin, because plugin uses both OS\Mono and KSP data structures. KSP dll is not a wrapper or utility around Unity, it is a complex program in itself, that is being manipulated by the plugin, so clause (b) fails, even if you stretch clause (a) and manage to twist yourself of of the fact, that Mono\Unity is not generally distributed with KSP.dll

 

Edited by Boris-Barboris
Link to comment
Share on other sites

18 minutes ago, taniwha said:

Actually, it changes everything: it proves you have things backwards.

But thank you.

There is no concept of forwards in the first place. Any combination of GPL'd software with nonfree software (or, more specifically, any software released under a license that is not GPL compatible) is specifically banned.

Quote

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/licenses/why-not-lgpl.html>.

 

That's from https://www.gnu.org/licenses/gpl-3.0.en.html. It literally cannot be more clear-cut than that. Unfortunately, the LGPL is not compatible with KSP either, due to the EULA forbidding reverse-engineering (this clause was also present in the original SQUAD EULA).

Quote

 Applications need only follow the requirements in section 6 of the LGPL: allow new versions of the library to be linked with the application; and allow reverse engineering to debug this.

 

Edited by RandyTheDev
Quote of reverse engineering clause.
Link to comment
Share on other sites

You do have it backwards. The only entity distributing anything proprietary is Take-Two. No modder is attempting to distribute a proprietary program linked against free libraries.

57 minutes ago, RandyTheDev said:
1 hour ago, taniwha said:

It is in our (those of us who are confident) right to not change our licenses.

That's... That's not how the law works. "Your honour, I was confident that I was allowed to..."

That is not the point. If I am wrong, then I am wrong and will have to face the consequences. That should go without saying. However, I am confident that I am not wrong and thus am not worried. (sorry about the delay, but the timing was bad (family obligations) and I needed time to consider my reply).

39 minutes ago, RandyTheDev said:

 

Quote

The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read <https://www.gnu.org/licenses/why-not-lgpl.html>.

Again, full quote, please, however, I happen to remember the gist of the context. This does NOT affect the owner of the sub-program, nor does it affect anybody using the sub-program. It affects only those attempting to distribute the main program where the main program requires the GPL sub-program. In this particular case, it would affect only Take-Two, but because KSP does not in any way depend on our mods, KSP is not linked against our mods (other than via an agnostic dll loading system), and Take-Two is not distributing our mods, I would argue that even Take-Two is unaffected.

The GPL is a potential problem for system integrators and distributors, not for users. That is the point of the GPL.

I consider your stated problem to be innocent of existing until proven guilty of existing. Thus I will behave as if it does not exist.

Edited by taniwha
Link to comment
Share on other sites

2 minutes ago, taniwha said:

Again, full quote, please, however, I happen to remember the gist of the context.

That quote is a standalone paragraph and is in its full context. It is under the section "How to Apply These Terms to Your New Programs", clearly targeted at developers. Take-Two does not need to distribute it. I don't know how many times I need to explain that the GPL considers distributing a plugin to be distributing a combined work. You are distributing your plugin under the conditions of a license that you cannot meet.

Even forgetting all of this talk about what an operating system is, the end user will not be able to compile a copy of the plugin without a copy of KSP. That alone results in a breach of both the GPL and LGPL.

Link to comment
Share on other sites

21 minutes ago, RandyTheDev said:

Even forgetting all of this talk about what an operating system is, the end user will not be able to compile a copy of the plugin without a copy of KSP. That alone results in a breach of both the GPL and LGPL.

No, whether or not KSP can be considered to be the system is the core of the argument.

Regardless, this argument has become little more than flogging a dead horse. You are not convinced by my arguments. I am not convinced by yours. Enough arguments either way have been presented such that others can make their own decisions. You license your mods as you see fit. I will license mine as I see fit. Others will license theirs as they see fit.

You have made your recommendations, you have done what you can.

I do not expect to be replying to either you or Boris-Barboris any further.

Edited by taniwha
Link to comment
Share on other sites

5 hours ago, RandyTheDev said:
Quote

Each contributor to Linux who holds copyright on a substantial part of the code can enforce the GPL and we encourage each of them to take action against those distributing nonfree Linux-drivers.

That's from the FSF's FAQ about the other way around. Developing proprietary drivers for Linux.

Well, that's a relief. The FSF isn't even suing e.g. Nvidia for something they openly state on their web site is a plain violation of the GPL; from that quote it sounds like they believe that only the copyright holder can enforce the terms of the license (note that the option of users or the general public suing Nvidia also isn't mentioned). If the authors of Linux kernel code (the copyright holders) decide not to go after Nvidia (the alleged infringers), then case closed.

So in the case of KSP modding, since a mod author isn't going to sue himself, the party at risk would be a modder using other mods' code released under the (hypothetically invalid) GPL, and the risk is that the original author would "take action against" such authors of derivative works (since the "true" license reverts to All Rights Reserved). Or possibly users downloading and using code that they technically have no (valid) license for. But by choosing the GPL in the first place, the author has effectively announced their disinterest in that sort of thing.

Link to comment
Share on other sites

The direct subject of this thread aside, I have thought it would be really nice if Take-Two would give us a list of valid licenses to use for mods because several mods currently use a license that explicitly prohibits commercial release and profit of the content, which is directly conflicting with the new Take-Two agreement which explicitly states that any mod made for KSP is theirs to do with as they please, including releasing commercially and for profit.

I doubt they will though, because they have still not said a word about it for GTA. They just send a Cease and Desist if they feel someone crosses the line.

Link to comment
Share on other sites

31 minutes ago, Electrocutor said:

the new Take-Two agreement which explicitly states that any mod made for KSP is theirs to do with as they please, including releasing commercially and for profit.

They never made that argument. People just can't read what is actually written without projecting their dislike of T2

Edited by sarbian
Link to comment
Share on other sites

1 minute ago, sarbian said:

They never made that argument. People just can't read what is actually written without projecting their dislike of T2

As far as I've seen, TT has never pursued actually doing this, but it's in there nonetheless. Hence, why I wanted clarification on what licenses would be valid.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...