License Wars MEGA THREAD (now with GPL!)

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
Could you write an innocent looking contribution to the project, get listed in the AUTHORS file, then come back a month later and declare that the project should be shut down, because its license is clearly violated, because there is a missing exception for Orbiter, so it was invalid in the first place?

But you have contributed knowing that the code will be linked to Orbiter, so you have de facto accepted a license exception even if one was not explicitly specified (Volenti non fit iniuria).

---------- Post added at 03:02 PM ---------- Previous post was at 02:52 PM ----------

Orbiter addons with GPL license are arguably violating the license itself, therefore distributors are in danger of receiving a cease and desist letter from the FSF if it gets reported and if they even care.

No, unless the add-on in question contains code copyrighted by FSF. Only copyright holder can file copyright claims.

If I write an add-on from scratch and put it under GPL, then technically I have violated my own copyright. I can then go and sue myself :D

The problem only arises if I took code written by X, and put that in an add-on. Then X would have ground to sue me, however I am not entirely sure that they would prevail in court, for several reasons.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
But you have contributed knowing that the code will be linked to Orbiter, so you have de facto accepted a license exception even if one was not explicitly specified (Volenti non fit iniuria).


Aha. So you see it as fact that contributing to the code-base would make the exception implicit?

No, unless the add-on in question contains code copyrighted by FSF. Only copyright holder can file copyright claims.

Interesting. So in your opinion the license itself is not copyrighted material by the FSF?

That is quite contrary to what Lisias states as I see it. It gets better by the minute :) .
 

jangofett287

Heat shield 'tester'
Joined
Oct 14, 2010
Messages
1,150
Reaction score
13
Points
53
But you have contributed knowing that the code will be linked to Orbiter, so you have de facto accepted a license exception even if one was not explicitly specified (Volenti non fit iniuria).


While that might hold in a court of law, until you got precedent set it would be very shaky, and I suspect the FSF would do everything in their power to prevent said precedent from being set.

No, unless the add-on in question contains code copyrighted by FSF. Only copyright holder can file copyright claims.

If I write an add-on from scratch and put it under GPL, then technically I have violated my own copyright. I can then go and sue myself :D

The problem only arises if I took code written by X, and put that in an add-on. Then X would have ground to sue me, however I am not entirely sure that they would prevail in court, for several reasons.

The problem, is that the incompatibility might render the license invalid, causing it to fall back to standard copyright.

---------- Post added at 15:13 ---------- Previous post was at 15:10 ----------

Addendum: Also the FSF might have something to say about 'misappropriation' of their license, but attempts to construe that as a license violation would be a gross over-stepping of their remit.

---------- Post added at 15:27 ---------- Previous post was at 15:13 ----------

The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. 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. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.

You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:

I've read the GNU License in full and our problems stem from these 2 paragraphs. In english they say that "Source Code" is everything required for someone with an appropriate compiler to produce a compiled version of the work, and that you can share these compiled versions as long as you also share the "Source Code"

side note: The Orbiter SDK (the Headers and Libs) does not fall under "generally available free programs" or "System Libraries"

Just for information, LGPL isn't suitable either, as the exceptions to the GPL included in that are for things linking to us, but we're the ones doing the linking, so it doesn't help us.
 

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
But the consensus seems to be that modifying and re-distributing a GPL'ed addon for Orbiter is "illegal" to a point of causing troubles for the hoster.

This is not the consensus position, this is FSF's position.

However, there is absolutely no agreement that FSF's position has legal standing. This is because there is no case law establishing that dynamic linking does, in fact, create a derivative work, which is a precondition for GPL.

---------- Post added at 03:39 PM ---------- Previous post was at 03:33 PM ----------

Aha. So you see it as fact that contributing to the code-base would make the exception implicit?

Yes, that's what I would argue in court. Keep in mind that the plaintiff essentially has to prove that you are using their code in a way they have not authorized. If you are using their code for the same purpose they gave it to you, then they don't really have a case, do they?

Interesting. So in your opinion the license itself is not copyrighted material by the FSF?

The license text is a copyrighted material, but you are allowed to use this material verbatim for your programs, which is what you are doing. Nowhere does it say that you must agree with FSF on the interpretation of the license to use it.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
This is not the consensus position, this is FSF's position.

I meant consensus in this thread, not in the world. But just go ahead :hello:.

However, there is absolutely no agreement that FSF's position has legal standing. This is because there is no case law establishing that dynamic linking does, in fact, create a derivative work, which is a precondition for GPL.

Wow. So does that mean now that the GPL can be used for addon development after all?

This reminds me a bit of building my house. For every problem there was, if you talked to 10 people, you've got 20 opinio...erm...facts!
 

meson800

Addon Developer
Addon Developer
Donator
Joined
Aug 6, 2011
Messages
405
Reaction score
2
Points
18
Please don't tell me you started all this just to state that we have to save the add-on author from himself :rofl:.
I think that's mostly what we are talking about, saving the author from himself.

Could you write an innocent looking contribution to the project, get listed in the AUTHORS file, then come back a month later and declare that the project should be shut down, because its license is clearly violated, because there is a missing exception for Orbiter, so it was invalid in the first place?
First, if it is a one-line change, small contributions like bugfixes probably don't have copyright

Secondly, you can have contributors "sign away" their copyright on merging into the repo. Have the contributor add their own name to the AUTHORS file, but put something at the top of the AUTHORS file like "all authors listed below agree to the GPL license for their code, with the Orbiter exception".

So in essence you already say that the exception will not be enough, anyway. Next we perhaps talk about how my addons violate the GPL because e.g. catch-ctd loads my DLL...
To be fair, catch-ctd doesn't load your DLL. That old code snippet was my first thought of doing it....

Catch-ctd just hooks LoadLibraryA, lets Orbiter load the DLL, gets the DLL handle off of the hook, and hooks ovcInit. In the hooked ovcInit, catch-ctd uses the actual ovcInit to create a vessel, then wraps that vessel in a "proxy vessel" to log out calls to it. The original vessel code always gets called, and catch-ctd never loads the DLL directly or anything. All calls are done through the vessel API.

If catch-ctd is breaking GPL, then any plugin that does getFocusInterface and does stuff to the resulting vessel handle also breaks GPL.

Stuff like catch-ctd is imho covered under the Orbiter excetption.

As a counter-example, something that wouldn't be covered under the exception is something like christapi's project. That loads DLL modules directly, into a standalone program. Now that would have to have it's own exception.

I think without a clear commitment of the whole community (or representatives) that GPL is safe here, there is nothing I can do to continue using it. Perhaps we can make a kind of Orbiter Public License?
I'm not the whole community or a representative, but I fully support that GPL with an Orbiter exception is safe here.


To be fair, the whole reason I have avoided using the GPL is I haven't fully wrapped my head around this whole issue, so I've gone with a license I understand:MIT.

If this gets resolved, I might switch to licensing my addons under GPL. :tiphat:
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,588
Reaction score
2,312
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Wow. So does that mean now that the GPL can be used for addon development after all?

The problem is not the dynamic linking part... its the static linked inclusions. Which the exception only partially solves.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
To be fair, catch-ctd doesn't load your DLL. That old code snippet was my first thought of doing it....

Catch-ctd just hooks LoadLibraryA, lets Orbiter load the DLL, gets the DLL handle off of the hook, and hooks ovcInit. In the hooked ovcInit, catch-ctd uses the actual ovcInit to create a vessel, then wraps that vessel in a "proxy vessel" to log out calls to it. The original vessel code always gets called, and catch-ctd never loads the DLL directly or anything. All calls are done through the vessel API.

If catch-ctd is breaking GPL, then any plugin that does getFocusInterface and does stuff to the resulting vessel handle also breaks GPL.

Stuff like catch-ctd is imho covered under the Orbiter excetption.

Sorry, I didn't want to imply that your addon is illegal or something, I just try to understand why people here actively fight against GPL.

[sarcasm]Closed source that goes down the drain and even donation-ware is no problem as it seems, but how dare you wanting to make it open source. Oh dear, now we have to bike-shed the :censored: out of your license.[/sarcasm]

As a counter-example, something that wouldn't be covered under the exception is something like christapi's project. That loads DLL modules directly, into a standalone program. Now that would have to have it's own exception.

Yep, I had that in mind when talking about the Orbiter replacement loading LGPL addons, too.

To be fair, the whole reason I have avoided using the GPL is I haven't fully wrapped my head around this whole issue, so I've gone with a license I understand:MIT.

If this gets resolved, I might switch to licensing my addons under GPL. :tiphat:

I can understand that now. I've also released some small work under MIT, but for the big things that took quite some thinking and time, I don't want the code to be used in closed source software. All too often MIT-licensed projects don't receive contributions at all in return IMHO.
 

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
While that might hold in a court of law, until you got precedent set it would be very shaky, and I suspect the FSF would do everything in their power to prevent said precedent from being set.

This controversy is over 15 years old at this point, and nobody cared enough to go to court. I seriously doubt anyone will ever bother over Orbiter add-ons.

The problem, is that the incompatibility might render the license invalid, causing it to fall back to standard copyright.

So? By uploading the add-on to OH, I have consented for the add-on to be distributed, and by slapping GPL on it I have consented for it to be redistributed and further modified. By that I have effectively waived my right to sue, and besises, what interest would I have in suing anyone using my add-on?

Again, if I used third-party code, then the third party could have objections here, but that's a different discussion.

I've read the GNU License in full and our problems stem from these 2 paragraphs. In english they say that "Source Code" is everything required for someone with an appropriate compiler to produce a compiled version of the work, and that you can share these compiled versions as long as you also share the "Source Code"

Basically, if you can rebuild it yourself and get a working DLL, then the source is complete. Is this the case here? Yes.

The problem only arises because some people (i.e. FSF) believe that they should be able to rebuild both the Orbiter core and the DLL by virtue of the DLL being intended to work with Orbiter. But this does not have standing, inter alia because you are not distributing the Orbiter binary. You are distributing only the DLL binary! You would be in (more) trouble if you were shipping Orbiter bundled with GPL'd DLLs, but that's not the case. The components are distributed separately and it's the end-user who chooses to combine them (or not).

side note: The Orbiter SDK (the Headers and Libs) does not fall under "generally available free programs" or "System Libraries"

Why not? Is it available for free to the general public? Yes. Is it a part of system environment? For this specific system, yes.

Just for information, LGPL isn't suitable either, as the exceptions to the GPL included in that are for things linking to us, but we're the ones doing the linking, so it doesn't help us.

Errr... no. Even under FSF's interpretation there's no such thing as "direction of linking". LGPL is perfectly suitable.

---------- Post added at 04:12 PM ---------- Previous post was at 04:05 PM ----------

As a counter-example, something that wouldn't be covered under the exception is something like christapi's project. That loads DLL modules directly, into a standalone program. Now that would have to have it's own exception.

Which clause of GPL prevents me, the end-user, from loading your DLLs using christapi's code on my own machine?

GPL is distribution license, not usage license. Keep that in mind.

---------- Post added at 04:16 PM ---------- Previous post was at 04:12 PM ----------

If I wrap my library in a RPC style mechanism, that would be not an indirect dependency?

What about code injection? That catch-ctd example was superb - by using an wrapper, it's feasible to even replace the wrapped DLL in runtime to another one. What can be said of this?

This is exactly the reasoning used to argue that the linking mechanism does not matter and GPL is effectively LGPL: since GPL does not apply across the process boundary, then I can write a linker which loads the DLL into a separate process and uses whatever RPC mechanism to pass function calls.
 
Last edited:

jangofett287

Heat shield 'tester'
Joined
Oct 14, 2010
Messages
1,150
Reaction score
13
Points
53
Basically, if you can rebuild it yourself and get a working DLL, then the source is complete. Is this the case here? Yes.

No, you still need all the .lib and .h files that are distributed with Orbiter and not with your source code.
Also, here's the definition of "System Library" from the license:
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.
The "general-purpose tools or generally available free programs which are used unmodified in performing those activities [The act of compiling the addon] but which are not part of the work." bit refers to things like Visual Studio, the compilers themselves and compile script tools like Gradle.
 

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
The problem is not the dynamic linking part... its the static linked inclusions. Which the exception only partially solves.

But these are part of the API, and API is not copyrightable in Europe.

---------- Post added at 04:45 PM ---------- Previous post was at 04:25 PM ----------

No, you still need all the .lib and .h files that are distributed with Orbiter and not with your source code.

You also need kernel32.lib, which is also not included. Now: explain to me why linking to kernel32.lib is OK, but linking to orbiter.lib is not.

The "general-purpose tools or generally available free programs which are used unmodified in performing those activities [The act of compiling the addon] but which are not part of the work." bit refers to things like Visual Studio, the compilers themselves and compile script tools like Gradle.

Says who?

All my add-ons are packaged in such a way that you can drop the zip under the orbiter dir, navigate to subdirectory under orbitersdk, open the .sln, hit build, and get a working DLL under Modules\plugins ready to run (Well, you may need to fix some paths). How, exactly, your 4 freedoms to use the add-on code are being infringed here?

From GPLv2:

However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

I'm arguing that in case of Orbiter DLLs, it's the Orbiter core which should be seen as the OS, not Windows. Case in point, the DLL will run without Windows, (Orbiter+WINE+Linux), but it will not run without Orbiter!
 

Linguofreak

Well-known member
Joined
May 10, 2008
Messages
5,017
Reaction score
1,254
Points
188
Location
Dallas, TX
But these are part of the API, and API is not copyrightable in Europe.

Nor are they in the US. In certain jurisdictions in the US they sort of are, due to a rogue court and the Supreme Court's refusal to take the case (which they often do with things like this until there's a circuit split), but I'm fairly certain that the ruling in question contradicts the plain text of the law.

I think this discussion is delving a bit too far into hypothetical situations that involve a third party acting in bad faith. You're never safe from that, no matter what license you choose, and once you start getting into third parties acting in bad faith, then you start having to address what happens if a rogue judge says the sky is green and the grass is blue.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
You also need kernel32.lib, which is also not included. Now: explain to me why linking to kernel32.lib is OK, but linking to orbiter.lib is not.

I have argued in a similar way, and the answer was this: http://orbiter-forum.com/showthread.php?p=511119&postcount=18

I'm arguing that in case of Orbiter DLLs, it's the Orbiter core which should be seen as the OS, not Windows. Case in point, the DLL will run without Windows, (Orbiter+WINE+Linux), but it will not run without Orbiter!

I'd use that argument, too, but it seems like we are the only two doing so.

And as long as there is this overwhelming dismissive advice on GPL here, it doesn't really matter what's right or wrong. Fear, uncertainty and doubt will do its work in all potential contributors, so the goal of the open source idea is undermined, anyway.
 

meson800

Addon Developer
Addon Developer
Donator
Joined
Aug 6, 2011
Messages
405
Reaction score
2
Points
18
Which clause of GPL prevents me, the end-user, from loading your DLLs using christapi's code on my own machine?

GPL is distribution license, not usage license. Keep that in mind.

Ooops, I guess if christapi's code automatically loaded those DLLs/somehow depended on them and distributed that on OH, then there would be issues.

No issues if the enduser chooses which DLLs to load. (Which is what his addon does, most likely)


With regards to Face's desire to prevent his addons from being used on a paid awesome-graphics Orbiter clone with a cloned Orbiter API, as long as the clone users are the ones downloading and using Orbiter addons, does that mean the GPL can't stop that? Can any copyright mechanism prevent that?

---------- Post added at 12:03 PM ---------- Previous post was at 12:01 PM ----------

And as long as there is this overwhelming dismissive advice on GPL here, it doesn't really matter what's right or wrong. Fear, uncertainty and doubt will do its work in all potential contributors, so the goal of the open source idea is undermined, anyway.

Keeping it positive, who's dismissive advice? Is anyone arguing that GPL w/ exception is not a solution?
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
With regards to Face's desire to prevent his addons from being used on a paid awesome-graphics Orbiter clone with a cloned Orbiter API, as long as the clone users are the ones downloading and using Orbiter addons, does that mean the GPL can't stop that? Can any copyright mechanism prevent that?

Well, good question. In my understanding the PAGO (paid awesome graphics Orbiter) could distribute the LGPL'ed addons as DLC to the innocent, while it can't do that with GPL'ed ones, right?

However, if the GPL licenses on Orbiter addons are categorically invalid - as some say here - that is moot, anyway.

---------- Post added at 18:08 ---------- Previous post was at 18:05 ----------

Keeping it positive, who's dismissive advice? Is anyone arguing that GPL w/ exception is not a solution?

Lisias is. Urwumpe also thinks so if I'm not mistaken. Because of that whole Orbiter-links-to-other-addons-too thing.

For more dismissive advice, just look at the start of the thread... "not applicable", "not legal", etc..

And this thread wasn't the first one to bring it up. Check the OVP license change debate.

Sorry, I don't see that positive anymore.
 

meson800

Addon Developer
Addon Developer
Donator
Joined
Aug 6, 2011
Messages
405
Reaction score
2
Points
18
Well, good question. In my understanding the PAGO (paid awesome graphics Orbiter) could distribute the LGPL'ed addons as DLC to the innocent, while it can't do that with GPL'ed ones, right?
That's my understanding :)

However, if the GPL licenses on Orbiter addons are categorically invalid - as some say here - that is moot, anyway....
Lisias is. Urwumpe also thinks so if I'm not mistaken. Because of that whole Orbiter-links-to-other-addons-too thing.

For more dismissive advice, just look at the start of the thread... "not applicable", "not legal", etc..

And this thread wasn't the first one to bring it up. Check the OVP license change debate.

Sorry, I don't see that positive anymore.
Reading...
 

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
And as long as there is this overwhelming dismissive advice on GPL here, it doesn't really matter what's right or wrong. Fear, uncertainty and doubt will do its work in all potential contributors, so the goal of the open source idea is undermined, anyway.

Again, as long as you don't copy-paste code from someone else's program, then IMHO the legal risk is pretty much zero, as the only people with the right to sue (i.e. developers) (a) have no interest in doing so and (b) would likely have their case thrown out of court citing implicit consent.

And if all your contributors are alive and can be contacted, then ask them to consent to an explicit license change adding the exception (or switching to LGPL) and be done with it. See here: http://orbiter-forum.com/showthread.php?p=468312&postcount=36

Honestly, I don't really see what the fuss is all about. This thread has probably used more developer time than it would take to solve the problem.
 

meson800

Addon Developer
Addon Developer
Donator
Joined
Aug 6, 2011
Messages
405
Reaction score
2
Points
18
I think GPL is not applicable. It forbids linking up with closed source binaries.

Your problem is that you also depends of other closed source modules that are not part of Orbiter, so in this case, *YOU* are the linking client, and this can be a problem with GPL3 (and, in a very lesser extension, GPL2).

Lisias is. Urwumpe also thinks so if I'm not mistaken. Because of that whole Orbiter-links-to-other-addons-too thing.

Ah, I missed the idea that Orbiter = Orbiter + GPL addon + whatever other addons. Therefore, the argument seems to be, a simple Orbiter exception doesn't cover everything, you would need an exception also for every other Orbiter addon.

But isn't that logic not valid, because it's a use issue? Just because another addon that some enduser is also running isn't GPL doesn't mean it's a violation, because that's how the enduser chose to use it.

That can only become a problem if
  1. Your addon directly depends on another addon (like HUDDrawer)
  2. Someone distributes a package of addons, where at least one is GPL and at least one is not

Other than that, the issue is a use question, which doesn't apply.

---------- Post added at 12:27 PM ---------- Previous post was at 12:25 PM ----------

I guess I'll make the question explicit:

Given the whole conversation above, is there anyone on OF here who thinks that a GPL addon, with an exception that it can be used with Orbiter, is in violation of the GPL/could be forced down, assuming all copyright owners agreed to the GPL w/ exception license?
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,588
Reaction score
2,312
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
Urwumpe also thinks so if I'm not mistaken.

Categorically invalid not, that would be too much legal understanding expected from my side. I can only argue from a technical POV there:

The goal of the Open-source license should be that (with a strong SSU flavor):

  • The source code stays open, regardless what happens in the future.
  • Who ever wants to improve or fork off our sources, should be able to do so legally.
  • Who ever wants to compile our sources, should not get hindered by closed-source dependencies which have been removed from public distribution.
  • Our assets should stay connected to SSU, because they are part of our ID and not be used for other add-ons, except for derivative works of SSU and for few historic exceptions.
  • What is contributed to SSU is then owned by the SSU project and not the individual. The individual contribution remains credited for all eternity, even if his/her contributions might no longer be visible in the current product.

Its not easy and yes, a dual license will be necessary there.

---------- Post added at 06:32 PM ---------- Previous post was at 06:29 PM ----------

Given the whole conversation above, is there anyone on OF here who thinks that a GPL addon, with an exception that it can be used with Orbiter, is in violation of the GPL/could be forced down, assuming all copyright owners agreed to the GPL w/ exception license?

Since the same problem might apply to OrbiterSound and Ummu - yes, its thinkable that this dev team might itself be forced to at least suspend public availability until a replacement is available. I doubt that it is easily possible to take down an add-on from outside by using the license, as long as the license is free of any self-contradiction. But "In court and in the high seas, you are in the hands of god."
 
Last edited:

kamaz

Unicorn hunter
Addon Developer
Joined
Mar 31, 2012
Messages
2,298
Reaction score
4
Points
0
With regards to Face's desire to prevent his addons from being used on a paid awesome-graphics Orbiter clone with a cloned Orbiter API, as long as the clone users are the ones downloading and using Orbiter addons, does that mean the GPL can't stop that? Can any copyright mechanism prevent that?

Well, he can always specify license terms prohibiting that, but whether this would be actually legal & enforcable is a different matter...
 
Top