License Wars MEGA THREAD (now with GPL!)

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
OF-Staff note: moved from Multistage2015 thread

I almost anticipated that:

Multistage2015 is not redistributable. You are allowed to provide the link to download it, but not to redistribute the module or the code.

That little statement there makes your effort almost useless for the community IMHO. If we are not allowed to redistribute the module or the code, and you decide to go the vinka way (aka away from the community), nobody can maintain it anymore. We would be right in the same situation as before.

Practically, this means I still have to implement a multistage replacement in the genericvessel project in order to have it really open source:facepalm:.
 
Last edited by a moderator:

fred18

Addon Developer
Addon Developer
Donator
Joined
Feb 2, 2012
Messages
1,666
Reaction score
100
Points
78
That comes from an open source non expert :blush:
The only thing that I would like to protect are:
- do not circulate the dll without permission, but just provide the link
- do not take all the files, press "compile" and then say that you have a new multistage file made by yourself

How can I protect this but allowing the correct free circulation of the open source code?
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
That comes from an open source non expert :blush:
The only thing that I would like to protect are:
- do not circulate the dll without permission, but just provide the link
- do not take all the files, press "compile" and then say that you have a new multistage file made by yourself

How can I protect this but allowing the correct free circulation of the open source code?

Almost every open source license requires you to keep the original copyright statements intact. So if someone takes the files, presses compile and then says that he made it all by himself, the appropriate copyright statements reveal him as liar. If he removes them, he made a copyright violation. I can recommend the GPL license in this regards.
In addition, version control your project, so the history of what happened when is linked to a user name.

What means "circulate the dll without permission"? Bundling it in the addon? Vinka allowed this:
Multistage documentation said:
You are free to distribute spacecraft.dll, stage.dll and multistage.dll with your add-ons.
Why do you want to be more restrictive than what you replace? Fear of loss of control? Versioning problems?
I think you can't "protect" this first point and still be open source.
 

fred18

Addon Developer
Addon Developer
Donator
Joined
Feb 2, 2012
Messages
1,666
Reaction score
100
Points
78
Almost every open source license requires you to keep the original copyright statements intact. So if someone takes the files, presses compile and then says that he made it all by himself, the appropriate copyright statements reveal him as liar. If he removes them, he made a copyright violation. I can recommend the GPL license in this regards.
In addition, version control your project, so the history of what happened when is linked to a user name.

Thank you! I'll follow your suggestion! :tiphat:

What means "circulate the dll without permission"? Bundling it in the addon? Vinka allowed this:

Why do you want to be more restrictive than what you replace? Fear of loss of control? Versioning problems?
I think you can't "protect" this first point and still be open source.

I wouldn't say i am more restrictive: vinka let the redistribution of the dll but never revealed the code. I simply would like to have track of the "spread" of the module on OH, asking to simply redirect to the proper link for download. But while I am writing I am thinking that maybe it's not necessary and i can simply let it free. In the official release i will ask simply for the credits.

In the meantime I am curious to know if the module is actually working or not :)
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
Thank you! I'll follow your suggestion! :tiphat:

If you really make it GPL, my suggestion would be to add a AUTHORS file just like I did with genericvessel. This way you can keep track of all the copyright owners of your project.

If you need help setting up the layout of your project in this regards, drop me a note.

I wouldn't say i am more restrictive: vinka let the redistribution of the dll but never revealed the code.

Sure you wouldn't say so, as I really think it is not your intention. However, the fact that you restricted redistribution more than he did is not made better by the disclosure of the code. Disclosure of code is not the same as making it open source. IMHO, as it stands now, it is even worse, because it is like putting the carrot in front of the sufferers, but then say "no, no, you can't have it".

But I think this was just an honest mistake, and if you really put it under GPL in the end, the discussion is moot, anyway.

In the meantime I am curious to know if the module is actually working or not :)

I'll review your code and play with it as soon as I can be sure that the redistribution restrictions are removed. If there is the slightest doubt that it would need a clean-room implementation of multistage in the future due to such license issues, it is better to never have seen the restricted code at all (as is still the case for me). I hope you understand that.

Nothing stops all the addon devs to try it out, though!
 

fred18

Addon Developer
Addon Developer
Donator
Joined
Feb 2, 2012
Messages
1,666
Reaction score
100
Points
78
  1. Some user mentions a bug/request.
  2. Some developer knows how to fix it, makes code-changes, and gets a working version.
  3. Now he wants to show you that changes, so you can integrate/merge it into your current work-in-progress to have it active in the next release. Or drop it and explain why.
How do you imagine the step 3 should happen? Posting ZIPs here in the thread? Email?

For the time being I would use this thread, if the thing becomes so complicated that it will be impossible to be held here we'll manage.
 

Lisias

Space Traveller Wanna-be
Joined
May 31, 2015
Messages
346
Reaction score
3
Points
18
Website
www.youtube.com
If you really make it GPL, my suggestion would be to add a AUTHORS file just like I did with genericvessel. This way you can keep track of all the copyright owners of your project.

I think GPL is not applicable. It forbids linking up with closed source binaries. I would suggest going to LGPL instead, that open up an exception exactly for cases like Orbiter.

However, perhaps Gnu style would not be the best option - (L)GPL states that every copyright holder should agree both in releasing the code to (L)GPL and in re-releasing it with another license (yes, double-licensing is possible under the right circumstances). if you don't manage to get to identify and get permission for every copyright holder, releasing the code under LGPL would be a GPL violation per se.

I found a good article about the matter here.
 
Last edited:

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
I agree with Lisias. The GPL isn't compatible with the Orbiter due to linking restrictions. It would make the Orbiter community dependent on a code that we can't modify, compile and redistribute legally. (How would that be any better than a closed source approach ?) In a worst case of scenario it could be used to "put pressure" for Martin to GPL his Orbiter, because, that would actually remove incompatibilities. There doesn't exists any license that I could recommend since the open source licensing has not developed very far and it's buzzing around a few licenses. I am not sure about LGPL's compatibility since it doesn't allow linking to a non-system closed source libraries. (Technically Orbiter is one). I would probably use either EPL or MIT. Bad thing is that they both approve a commercial use (selling) of the work. EPL has easy to understand FAQ available in the internet. What ever license, (including a closed source), that inspires you to create something is likely the way forward.

Non-commercial edition of EPL might be a good idea. But it would require a lawyer or skilled person to write one.
 
Last edited:

Lisias

Space Traveller Wanna-be
Joined
May 31, 2015
Messages
346
Reaction score
3
Points
18
Website
www.youtube.com
I am not sure about LGPL's compatibility since it doesn't allow linking to a non-system closed source libraries. (Technically Orbiter is one).

Disclaimer: I'm not advocating for the LGPL, I'm trying just to clarify the matter :)

From the Gnu site:
Does the LGPL have different requirements for statically vs dynamically linked modules with a covered work? (#LGPLStaticVsDynamic)
For the purpose of complying with the LGPL (any extant version: v2, v2.1 or v3):

(1) If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.

(2) If you dynamically link against an LGPL'd library already present on the user's computer, you need not convey the library's source. On the other hand, if you yourself convey the executable LGPL'd library along with your application, whether linked with statically or dynamically, you must also convey the library's sources, in one of the ways for which the LGPL provides.

Since an Orbiter add-on is essentially a Dynamic Link Library, and since Orbiter SDK already provides the LIBs that allows the user to recompile the add-on and use the customized version on Orbiter, we are set to go: an Orbiter add-on can be released under LGPL without problems.

Disclaimer²: I'm not telling that you should use LGPL, I'm just telling that you can use it if you want. :)
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
Since an Orbiter add-on is essentially a Dynamic Link Library, and since Orbiter SDK already provides the LIBs that allows the user to recompile the add-on and use the customized version on Orbiter, we are set to go: an Orbiter add-on can be released under LGPL without problems.

It's true that an add-on is essentially a dynamic link library but there exists a linkage in both directions. An add-on is linking to an orbiter as much as the Orbiter is linking to an add-on. So, Can I write a software under LGPL and use a non-system closed source libraries like the Orbiter.exe or some other libraries without causing a license conflict ? I thought that a development of LGPL:ed software can only rely on non-system libraries under a GPL compatible license.
 

Lisias

Space Traveller Wanna-be
Joined
May 31, 2015
Messages
346
Reaction score
3
Points
18
Website
www.youtube.com
It's true that an add-on is essentially a dynamic link library but there exists a linkage in both directions. An add-on is linking to an orbiter as much as the Orbiter is linking to an add-on. So, Can I write a software under LGPL and use a non-system closed source libraries like the Orbiter.exe or some other libraries without causing a license conflict ? I thought that a development of LGPL:ed software can only rely on non-system libraries under a GPL compatible license.

Yes, you can. There's nothing on LGPL that restricts the role the Library is going to fulfil.

An Orbiter AddOn is not an application, it's essentially a third-party library that adds functionalities to the Host Application (the Orbiter). It's essentially the same M.O. used by closed source applications that use the libav library.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
An Orbiter AddOn is not an application, it's essentially a third-party library that adds functionalities to the Host Application (the Orbiter). It's essentially the same M.O. used by closed source applications that use the libav library.

Yes, but an add-on is also relying on features provided by the host application (Orbiter). If you look at an add-on with a dependency walker you will see the Orbiter on it's dependency list. Without that dependency it would be a clean case "a closed source applications that uses the library". But in our case they are both using each other. So, the question is what can the LGPL use or depend on ?
 
Last edited:

Lisias

Space Traveller Wanna-be
Joined
May 31, 2015
Messages
346
Reaction score
3
Points
18
Website
www.youtube.com
Yes, but an add-on is also relying on features provided by the host application (Orbiter). If you look at an add-on with a dependency walker you will see the Orbiter on it's dependency list. Without that dependency it would be a clean case "a closed source applications that uses the library". But in our case they are both using each other. So, the question is what can the LGPL use or depend on ?

There's no such restriction on GPL 2.1 and 3.0.

From GPL2.1:
A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)


From GPL3.0:
“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.

An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.

A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.

There're restrictions and obligations from the Host Applications while accessing the Library's functions - but there aren't a single word about restrictions and obligations from the Library to the Host Application.


LIBAV would not be possibly released under the LGPL if such restrictions exist - this library relies on the Host Applications to visualize the decoded multimedia stream in a very similar fashion our vessels relies on Orbiter to do the same.
 
Last edited:

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
LIBAV would not be possibly released under the LGPL if such restrictions exist - this library relies on the Host Applications to visualize the decoded multimedia stream in a very similar fashion our vessels relies on Orbiter to do the same.

Not sure if LIBAV and Orbiter Add-Ons can be compared. If someone creates a vessel add-on for the Orbiter under LGPL and I would like to take that code and transform it to X-Plane add-on. Then, it would require a fundamental rewriting of several sections to make it X-Plane compatible. Could such a work simply be called as a library that it used by X-Plane ? [This is only an example. No intentions to do that]

Does libav require rewriting when attached to a different application ?


Quate form LGPL2.1:
d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

I am not exactly sure how should I understand the statement but it sounds like an Orbiter add-on under LGPL would need to do it's job regardless whether the Orbiter (Host application) is present or not. If that's true then a library could not depend on host application.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
I think GPL is not applicable. It forbids linking up with closed source binaries. I would suggest going to LGPL instead, that open up an exception exactly for cases like Orbiter.

However, perhaps Gnu style would not be the best option - (L)GPL states that every copyright owner should agree both in releasing the code to (L)GPL and in re-releasing it with another license (yes, double-licensing is possible under the right circumstances). if you don't manage to get to identify and get permission for every copyright owner, releasing the code under LGPL would be a GPL violation per se.

I found a good article about the matter here.

That thing about GPL not applicable for add-ons is mostly propaganda IMHO. It has long been established that plugins under GPL are not suddenly forcing the environment they are in to open up under GPL, too, because if it were so, every software on Windows released under GPL would require Windows itself to be forced under GPL, too. After all, almost every windows binary is linking to some closed source binary (the WINAPI), right?

Yeah, I know, closed source advocates often used that as THE reason why you are not allowed to release software under Windows with GPL license at all, but I think we can clearly see today that this was trash talking, anyway.

If someone really comes up and tries to force Martin to open up the source of Orbiter, just because fred18 made Multistage2015 released under GPLv3, I am sure that every court in the UK will laugh in that person's face for this kind of stupid bullying.

But to be honest, I can't care less if it is GPL or LGPL or even MIT, as long as the source code (and the resulting binaries) remains open for people to continue the work if the bus factor hits again. His previous distribution restrictions clearly did not allow for that, hence my suggestion.

---------- Post added at 08:47 ---------- Previous post was at 08:32 ----------

The GPL isn't compatible with the Orbiter due to linking restrictions. It would make the Orbiter community dependent on a code that we can't modify, compile and redistribute legally.

So let me get that straight: you are claiming that everybody releasing and/or distributing an Orbiter addon under GPL is doing so illegally?
 

SolarLiner

It's necessary, TARS.
Addon Developer
Joined
Jun 14, 2010
Messages
1,847
Reaction score
2
Points
0
Location
404 ROAD NOT FOUND
Versioning problems?

Getting back to Face's post here. Thinking about it, there is a problem that with the Multistage 2015 project still in progress, if we include one version with addons, we'll end up with multiple versions on different installs.

This is a legit reason to not allow redistribution of the DLL, however we should keep it simple for the end user to install addons.
This is where a addon manager would come in handy. Something like the CKAN in KSP.

Good job on the release though!
 

fred18

Addon Developer
Addon Developer
Donator
Joined
Feb 2, 2012
Messages
1,666
Reaction score
100
Points
78
Guys, relevant to the license, i just want to keep things as simple as possible. If any kind of license generates mess, i'll simply release the code without specifying anything.

Relevant to SolarLiner I agree with him. As soon as the basic new stuff is finished (not far from now) I will release the module on OH and I will write in documentation that is strongly recommended to give the link of the download instead of redistributing the dll, in order to be sure to always have the newest version.

Anyway, thanks for everything guys!

As an update: the first implementation of the multistage peg seems to work. A bit of tuning and i will release on OH the 1.0 version of the module.
 

Lisias

Space Traveller Wanna-be
Joined
May 31, 2015
Messages
346
Reaction score
3
Points
18
Website
www.youtube.com
That thing about GPL not applicable for add-ons is mostly propaganda IMHO. It has long been established that plugins under GPL are not suddenly forcing the environment they are in to open up under GPL, too, because if it were so, every software on Windows released under GPL would require Windows itself to be forced under GPL, too. After all, almost every windows binary is linking to some closed source binary (the WINAPI), right?

Nope. The GPL states that the frontier is the EXECUTABLE.

Moreover:

From the Gnu Site:
Can I apply the GPL when writing a plug-in for a non-free program? (#GPLPluginsInNF)
If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. So you can use the GPL for a plug-in, and there are no special requirements.

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means that combination of the GPL-covered plug-in with the non-free main program would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free main program.

So there's no problem with GPL programs running on Windows neither.


If someone really comes up and tries to force Martin to open up the source of Orbiter, just because fred18 made Multistage2015 released under GPLv3, I am sure that every court in the UK will laugh in that person's face for this kind of stupid bullying.

You (and that someone) are holding, I mean :) , got it wrong. In this specific case, the GPL violator is the guy who released the code under the GPL! He is liable to be sued by intentionally released a GPL program that can not be used without violating the GPL, this guy will be the one in trouble with EFF and FSF, not Martin.

But to be honest, I can't care less if it is GPL or LGPL or even MIT, as long as the source code (and the resulting binaries) remains open for people to continue the work if the bus factor hits again. His previous distribution restrictions clearly did not allow for that, hence my suggestion.

I care because I don't intent to violate anybody's license if I could avoid.

It would not prevent me to use the code or binary, but I would be more picky at giving the due credits, as I don't want to be bothered by people claiming GPL violations.

So let me get that straight: you are claiming that everybody releasing and/or distributing an Orbiter addon under GPL is doing so illegally?

No. The license is. Sorry.

---------- Post added at 05:25 PM ---------- Previous post was at 05:16 PM ----------

Guys, relevant to the license, i just want to keep things as simple as possible. If any kind of license generates mess, i'll simply release the code without specifying anything.

You will need a license to protect your name if anyone decides to overtake your project, or fork it to his own needs and when a problem that he creates rises, you can claim it's not your fault.

The less problematic and more permissive license I know that you can safely use is the BSD: it mainly says "do what you want with this code, just don't remove the copyright headers neither distribute it using my or the project's name".

And this is the reason that anybody can use FreeBSD code, but just some dudes could create OpenBSD and NetBSD projects - if you try to create another clone called MyBSD, you can be prosecuted by copyright violation : the BSD guys don't want you making money with their names, just with the code.

I think this will do for you, if you don't care about who and how your code is used.
 

Face

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,390
Reaction score
577
Points
153
Location
Vienna
No. The license is. Sorry.

Which would make that a serious issue. If this opinion of you (and Jarmonik, I guess) is shared by Martin and the forum crew, it would mean that many addons are "illegal" in the sense of the forum rules. This would also mean that they need to be removed or re-licensed.
 

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
If I remember correctly, the main problem for the GPL is source code being useless if depending on proprietary APIs. That's partially a problem with Orbiter, since its API is freely available, but proprietary and its freedom thus not guaranteed.

Yes, its theoretical, but important.
 
Top