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-06-2015, 05:16 AM   #1
Face
Beta Tester
 
Face's Avatar

Default License Wars MEGA THREAD (now with GPL!)

OF-Staff note: moved from Multistage2015 thread

I almost anticipated that:

Quote:
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.

Last edited by Loru; 08-09-2015 at 07:19 PM.
Face is offline   Reply With Quote
Old 08-06-2015, 07:52 AM   #2
fred18
Addon Developer

Default

That comes from an open source non expert
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?
fred18 is offline   Reply With Quote
Old 08-06-2015, 09:28 AM   #3
Face
Beta Tester
 
Face's Avatar

Default

Quote:
Originally Posted by fred18 View Post
 That comes from an open source non expert
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:
Quote:
Originally Posted by Multistage documentation
 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.
Face is offline   Reply With Quote
Thanked by:
Old 08-06-2015, 10:25 AM   #4
fred18
Addon Developer

Default

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

Quote:
Originally Posted by Face View Post
 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
fred18 is offline   Reply With Quote
Old 08-06-2015, 10:53 AM   #5
Face
Beta Tester
 
Face's Avatar

Default

Quote:
Originally Posted by fred18 View Post
 Thank you! I'll follow your suggestion!
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.

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

Quote:
Originally Posted by fred18 View Post
 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!
Face is offline   Reply With Quote
Thanked by:
Old 08-06-2015, 01:42 PM   #6
fred18
Addon Developer

Default

Quote:
Originally Posted by Face View Post
 
  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.
fred18 is offline   Reply With Quote
Thanked by:
Old 08-08-2015, 09:08 PM   #7
Lisias
Space Traveller Wanna-be
 
Lisias's Avatar
Default

Quote:
Originally Posted by Face View Post
 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 by Lisias; 08-09-2015 at 11:37 PM.
Lisias is offline   Reply With Quote
Thanked by:
Old 08-08-2015, 10:05 PM   #8
jarmonik
Beta Tester

Default

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 by jarmonik; 08-08-2015 at 11:04 PM.
jarmonik is offline   Reply With Quote
Old 08-09-2015, 12:19 AM   #9
Lisias
Space Traveller Wanna-be
 
Lisias's Avatar
Default

Quote:
Originally Posted by jarmonik View Post
 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:
Quote:
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.
Lisias is offline   Reply With Quote
Thanked by:
Old 08-09-2015, 12:39 AM   #10
jarmonik
Beta Tester

Default

Quote:
Originally Posted by Lisias View Post
 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.
jarmonik is offline   Reply With Quote
Old 08-09-2015, 01:09 AM   #11
Lisias
Space Traveller Wanna-be
 
Lisias's Avatar
Default

Quote:
Originally Posted by jarmonik View Post
 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.
Lisias is offline   Reply With Quote
Old 08-09-2015, 01:29 AM   #12
jarmonik
Beta Tester

Default

Quote:
Originally Posted by Lisias View Post
 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 by jarmonik; 08-09-2015 at 01:32 AM.
jarmonik is offline   Reply With Quote
Old 08-09-2015, 01:53 AM   #13
Lisias
Space Traveller Wanna-be
 
Lisias's Avatar
Default

Quote:
Originally Posted by jarmonik View Post
 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:
Quote:
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:
Quote:
“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 by Lisias; 08-09-2015 at 04:10 AM.
Lisias is offline   Reply With Quote
Thanked by:
Old 08-09-2015, 05:17 AM   #14
jarmonik
Beta Tester

Default

Quote:
Originally Posted by Lisias View Post
 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:
Quote:
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.
jarmonik is offline   Reply With Quote
Old 08-09-2015, 06:47 AM   #15
Face
Beta Tester
 
Face's Avatar

Default

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

Quote:
Originally Posted by jarmonik View Post
 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?
Face 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 12:48 PM.

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.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Copyright ©2007 - 2017, Orbiter-Forum.com. All rights reserved.