Orbiter-Forum  

Go Back   Orbiter-Forum > Far Side of the Moon > Brighton Lounge
Register Blogs Orbinauts List Social Groups FAQ Projects Mark Forums Read

Brighton Lounge General off-topic discussions. Political or religious topics may only be posted in The Basement forum.

Reply
 
Thread Tools
Old 08-10-2015, 02:49 PM   #106
meson800
Donator
 
meson800's Avatar

Default

Quote:
Originally Posted by Face View Post
 Please don't tell me you started all this just to state that we have to save the add-on author from himself .
I think that's mostly what we are talking about, saving the author from himself.

Quote:
Originally Posted by Face View Post
 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".

Quote:
Originally Posted by Face View Post
 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.

Quote:
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.
meson800 is offline   Reply With Quote
Thanked by:
Old 08-10-2015, 02:49 PM   #107
Urwumpe
Not funny anymore
 
Urwumpe's Avatar

Default

Quote:
Originally Posted by Face View Post
 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.
Urwumpe is offline   Reply With Quote
Old 08-10-2015, 03:03 PM   #108
Face
Beta Tester
 
Face's Avatar

Default

Quote:
Originally Posted by meson800 View Post
 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 out of your license.[/sarcasm]

Quote:
Originally Posted by meson800 View Post
 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.

Quote:
Originally Posted by meson800 View Post
 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.
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.
Face is offline   Reply With Quote
Old 08-10-2015, 03:16 PM   #109
kamaz
Unicorn hunter
 
kamaz's Avatar
Default

Quote:
Originally Posted by jangofett287 View Post
 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.

Quote:
Originally Posted by jangofett287 View Post
 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.

Quote:
Originally Posted by jangofett287 View Post
 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).

Quote:
Originally Posted by jangofett287 View Post
 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.

Quote:
Originally Posted by jangofett287 View Post
 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 ----------

Quote:
Originally Posted by meson800 View Post
 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 ----------

Quote:
Originally Posted by Lisias View Post
 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 by kamaz; 08-10-2015 at 03:20 PM.
kamaz is offline   Reply With Quote
Thanked by:
Old 08-10-2015, 03:22 PM   #110
jangofett287
Heat shield 'tester'
 
jangofett287's Avatar
Default

Quote:
Originally Posted by kamaz View Post
 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:
Quote:
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.
jangofett287 is offline   Reply With Quote
Old 08-10-2015, 03:45 PM   #111
kamaz
Unicorn hunter
 
kamaz's Avatar
Default

Quote:
Originally Posted by Urwumpe View Post
 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 ----------

Quote:
Originally Posted by jangofett287 View Post
 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.

Quote:
Originally Posted by jangofett287 View Post
 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:

Quote:
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!
kamaz is offline   Reply With Quote
Thanked by:
Old 08-10-2015, 03:53 PM   #112
Linguofreak
Orbinaut
Default

Quote:
Originally Posted by kamaz View Post
 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.
Linguofreak is online now   Reply With Quote
Thanked by:
Old 08-10-2015, 03:55 PM   #113
Face
Beta Tester
 
Face's Avatar

Default

Quote:
Originally Posted by kamaz View Post
 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....9&postcount=18

Quote:
Originally Posted by kamaz View Post
 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.
Face is offline   Reply With Quote
Old 08-10-2015, 04:03 PM   #114
meson800
Donator
 
meson800's Avatar

Default

Quote:
Originally Posted by kamaz View Post
 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 ----------

Quote:
Originally Posted by Face View Post
 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?
meson800 is offline   Reply With Quote
Old 08-10-2015, 04:08 PM   #115
Face
Beta Tester
 
Face's Avatar

Default

Quote:
Originally Posted by meson800 View Post
 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 ----------

Quote:
Originally Posted by meson800 View Post
 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.
Face is offline   Reply With Quote
Old 08-10-2015, 04:12 PM   #116
meson800
Donator
 
meson800's Avatar

Default

Quote:
Originally Posted by Face View Post
 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

Quote:
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...
meson800 is offline   Reply With Quote
Old 08-10-2015, 04:23 PM   #117
kamaz
Unicorn hunter
 
kamaz's Avatar
Default

Quote:
Originally Posted by Face View Post
 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....2&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.
kamaz is offline   Reply With Quote
Old 08-10-2015, 04:27 PM   #118
meson800
Donator
 
meson800's Avatar

Default

Quote:
Originally Posted by Lisias View Post
 I think GPL is not applicable. It forbids linking up with closed source binaries.
Quote:
Originally Posted by Lisias View Post
 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).
Quote:
Originally Posted by Face View Post
 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?
meson800 is offline   Reply With Quote
Thanked by:
Old 08-10-2015, 04:32 PM   #119
Urwumpe
Not funny anymore
 
Urwumpe's Avatar

Default

Quote:
Originally Posted by Face View Post
 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 ----------

Quote:
Originally Posted by meson800 View Post
 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 by Urwumpe; 08-10-2015 at 04:35 PM.
Urwumpe is offline   Reply With Quote
Thanked by:
Old 08-10-2015, 04:35 PM   #120
kamaz
Unicorn hunter
 
kamaz's Avatar
Default

Quote:
Originally Posted by meson800 View Post
 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...
kamaz is offline   Reply With Quote
Reply

  Orbiter-Forum > Far Side of the Moon > Brighton Lounge


Thread Tools

Posting Rules
BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Jump


All times are GMT. The time now is 02:44 AM.

Quick Links Need Help?


About Us | Rules & Guidelines | TOS Policy | Privacy Policy

Orbiter-Forum is hosted at Orbithangar.com
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Copyright ©2007 - 2017, Orbiter-Forum.com. All rights reserved.