Board index FlightGear The FlightGear project

bundling GPL'ed contents with non-GPL materials

Questions about the FlightGear organisation, website, wiki etc.

Re: bundling GPL'ed contents with non-GPL materials

Postby Thorsten » Thu Nov 19, 2015 8:15 am

Q&A from the GPL license explanation website - I think it's all very clear:

If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?

Yes, because the program as it is actually run includes the library.

https://www.gnu.org/licenses/old-licens ... braryIsGPL

If a programming language interpreter is released under the GPL, does that mean programs written to be interpreted by it must be under GPL-compatible licenses?

When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.

However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them. These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to link dynamically with these specific libraries, then it too needs to be released in a GPL-compatible way.

Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes. These libraries and the programs that call them are always dynamically linked together.

A consequence is that if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.


https://www.gnu.org/licenses/old-licens ... reterIsGPL
Thorsten
 
Posts: 10638
Joined: Mon Nov 02, 2009 8:33 am

Re: bundling GPL'ed contents with non-GPL materials

Postby bugman » Thu Nov 19, 2015 8:19 am

I know that statement and it is specifically referring to the embedded Python interpreter (or to any other strange combinations with the official Python interpreter). If you have a GPL program, you can legally embed and compile in the Python interpreter. That statement is not talking about Programs written in the Python language, to be run on the interpreter.

Regards,
Edward
bugman
Moderator
 
Posts: 1648
Joined: Thu Mar 19, 2015 9:01 am
Version: next

Re: bundling GPL'ed contents with non-GPL materials

Postby Thorsten » Thu Nov 19, 2015 8:21 am

Stop Python - Python is not GPL and hence not relevant. Red herring.
Thorsten
 
Posts: 10638
Joined: Mon Nov 02, 2009 8:33 am

Re: bundling GPL'ed contents with non-GPL materials

Postby bugman » Thu Nov 19, 2015 8:30 am

Comparing to other 'interpreted' systems is hardly a red herring. It's called looking at precedents. Such legal issues have been far better tested with Python, Perl and Java than with FG. Here is an interesting statement from the creator of Perl:

Perl5 is Copyright (C) 1993-2005, by Larry Wall and others.

It is free software; you can redistribute it and/or modify it under the terms of either:

a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or

b) the "Artistic License".
For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl script falls under the terms of the GPL unless you explicitly put said script under the terms of the GPL yourself.

Furthermore, any object code linked with perl does not automatically fall under the terms of the GPL, provided such object code only adds definitions of subroutines and variables, and does not otherwise impair the resulting interpreter from executing any standard Perl script. I consider linking in C subroutines in this manner to be the moral equivalent of defining subroutines in the Perl language itself. You may sell such an object file as proprietary provided that you provide or offer to provide the Perl source, as specified by the GNU General Public License. (This is merely an alternate way of specifying input to the program.) You may also sell a binary produced by the dumping of a running Perl script that belongs to you, provided that you provide or offer to provide the Perl source as specified by the GPL. (The fact that a Perl interpreter and your code are in the same binary file is, in this case, a form of mere aggregation.)

This is my interpretation of the GPL. If you still have concerns or difficulties understanding my intent, feel free to contact me. Of course, the Artistic License spells all this out for your protection, so you may prefer to use that.
-- Larry Wall


Although the Perl module system is not explicitly mentioned, it is implied as you absolutely require them to do anything in Perl.

Regards,
Edward

Edit: Added links.
bugman
Moderator
 
Posts: 1648
Joined: Thu Mar 19, 2015 9:01 am
Version: next

Re: bundling GPL'ed contents with non-GPL materials

Postby Thorsten » Thu Nov 19, 2015 9:47 am

Comparing to other 'interpreted' systems is hardly a red herring. It's called looking at precedents.


When talking about GPL, giving examples of non-GPL licensed situations is a red herring because they are not precedents. Plain and simple.

Although the Perl module system is not explicitly mentioned, it is implied as you absolutely require them to do anything in Perl.


Well, strangely enough he thought the issue serious enough to do dual licensing to solve it.

I think

A consequence is that if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.

is a very clear statement, and if you replace Perl or Java by Nasal you get a clear answer that if you use GPL'd Nasal modules, you need to release your program in a GPL-compatible way.

That's the position and intention of the people who made the GPL license. For me that's good enough. If the GPL page isn't good enough for you as a source, then what is? Whatever agrees with your opinion?
Thorsten
 
Posts: 10638
Joined: Mon Nov 02, 2009 8:33 am

Re: bundling GPL'ed contents with non-GPL materials

Postby Richard » Thu Nov 19, 2015 10:44 am

Thorsten wrote in Thu Nov 19, 2015 9:47 am:That's the position and intention of the people who made the GPL license. For me that's good enough. If the GPL page isn't good enough for you as a source, then what is? Whatever agrees with your opinion?


The reason I mentioned copying is plain and simply because the GPL is not the law.

The GPL licence becomes applicable only when triggered by Copyright Law. If a modeller does not accept the GPL for the model (section 5 of the GPL) then they cannot be bound by the GPL - and there is no violation because a violation requires the modeller to copy or distribute something that is covered by the GPL. If there is no copying then then GPL can not be applied.

Copyright law also varies by jurisdiction, and there is also fair use to consider. I am not qualified, neither is anyone here to decide with certainty whether or not something is covered by the GPL - only a judge can decide this based on the evidence when a case has been brought.

My advice to anyone would be to licence their creation under the GPL to avoid any possibility of licence violation from the copyright holders[1].

---------------------
[1] That doesn't mean that a hypothetical ornery modeler won't choose a weird licence to suit themselves. It does mean that the hypothetical ornery modeler may be subject to legal action from the copyright holders, but equally it means that the hypothetical ornery modeler can take legal action against licence violation.
Richard
 
Posts: 690
Joined: Sun Nov 02, 2014 10:17 pm
Version: Git
OS: Win10

Re: bundling GPL'ed contents with non-GPL materials

Postby Thorsten » Thu Nov 19, 2015 10:56 am

The GPL licence becomes applicable only when triggered by Copyright Law.


Basically no. Copyright law is what allows you to license something. The license then applies whenever someone uses what you have licensed in any form.

If what you say would be correct, Google could never restrict how we use Google Earth since we're not trying to copy anything. The fact of the matter is that software licensing can do that however. DVDs are usually licensed for private use only, not for public shows. If what you say would be true, a DVD could never be licensed that way because even showing it in public I don't try to copy it.

If a modeller does not accept the GPL for the model (section 5 of the GPL) then they cannot be bound by the GPL - and there is no violation because a violation requires the modeller to copy or distribute something that is covered by the GPL


Wrong. If you use interpreted libraries, you're not required to accept the license - but then you may not re-distribute your creation because you may not use the libraries. As pointed out plenty of times, using an interpreted library under GPL in an interpreted language is covered by the GPL, so the license violation is taking place.

The paragraph doesn't mean that if you don't like the license, ignore it :-)

I realize fully well there's more than a handful of people here who wish things were a certain way and there wouldn't be a problem in licensing aircraft any way you like. The GNU page FAQ is however very explicit about the point, and as things stand, that is a license violation, which in turn revokes the permission to use FG for the model in question.

Trying to look away won't make this issue go away.

I don't believe the GNU FAQ is a bad source for how the license works - if that is going to be your way out, be my guest, but I'm not with you.

Both Python and Pearl seem to have run into the issue, and apparently licensed a different way to go around it, which means you can't use non-GPL licenses (like Python or M$ Visual Basic) to understand or argue how GPL works. What's permitted with Python may still not be permitted in GPL. Nasal in FGData however is not licensed dually, nor artistic, nor Python - it's GPL and GPL only.

I suggest you just deal with it, even if you don't like it.
Thorsten
 
Posts: 10638
Joined: Mon Nov 02, 2009 8:33 am

Re: bundling GPL'ed contents with non-GPL materials

Postby Hooray » Thu Nov 19, 2015 11:17 am

or we really come up with a handful of questions (peer-reviewed) and ask bugman, as the only FSF member around here apparently, to forward those questions to the FSF and update their FAQs accordingly
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11317
Joined: Tue Mar 25, 2008 8:40 am

Re: bundling GPL'ed contents with non-GPL materials

Postby Richard » Thu Nov 19, 2015 11:45 am

Thorsten wrote in Thu Nov 19, 2015 10:56 am:Basically no. Copyright law is what allows you to license something. The license then applies whenever someone uses what you have licensed in any form.


To quote the GPL section (0)

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.


So the ornery modeller is allowed to run FlightGear to develop their model. If they distribute their model without distributing any GPL code then I fail to see how you can enforce the GPL based on section (5).

Thorsten wrote in Thu Nov 19, 2015 10:56 am:If what you say would be correct, Google could never restrict how we use Google Earth since we're not trying to copy anything.
...
DVDs are usually licensed for private use only


Google and DVD's aren't licenced under the GPL and are red herrings in this discussion.

Thorsten wrote in Thu Nov 19, 2015 10:56 am:I don't believe the GNU FAQ is a bad source for how the license works - if that is going to be your way out, be my guest, but I'm not with you.
...
I suggest you just deal with it, even if you don't like it.


I am using the GPL V2 licence itself as the definitive source for my discussion. The FAQ cannot contradict the licence itself which is fairly clear on what is and isn't covered.

It's not a case of whether I like something or not, it is the facts of the matter that are important; and we have a difference of opinion which maybe because I am not trained in matters legal whereas you may have training or knowledge in legal matters that will make me realise that my opinion is wrong.
Richard
 
Posts: 690
Joined: Sun Nov 02, 2014 10:17 pm
Version: Git
OS: Win10

Re: bundling GPL'ed contents with non-GPL materials

Postby bugman » Thu Nov 19, 2015 1:19 pm

Hooray wrote in Thu Nov 19, 2015 11:17 am:or we really come up with a handful of questions (peer-reviewed) and ask bugman, as the only FSF member around here apparently, to forward those questions to the FSF and update their FAQs accordingly


My membership doesn't seem to be current any more. Anyway, anyone can easily become a FSF member, there's nothing special about it. I also have no questions for them. This appears more to be about certain parties believing the scope of the GPL is greater than that of copyright law, while other parties believing that copyright law is the absolute limit.

Richard wrote in Thu Nov 19, 2015 11:45 am:To quote the GPL section (0)

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.


So the ornery modeller is allowed to run FlightGear to develop their model. If they distribute their model without distributing any GPL code then I fail to see how you can enforce the GPL based on section (5).


This is the difference between linking in a compiled binary and loading and running in a pre-running environment (interpreter, vm, OS, etc.). The aircraft author is not copying, distributing, or modifying any GPL-licensed content. This is why GPL-licensed modules in Python, Perl, Java, etc. are often used in other software without that software needing to be GPL. The GPL is not a contract, so it relies 100% on copyright law. And in reality, nothing is being copied, so there is no right as there is no copy.

Regards,
Edward
bugman
Moderator
 
Posts: 1648
Joined: Thu Mar 19, 2015 9:01 am
Version: next

Re: bundling GPL'ed contents with non-GPL materials

Postby Hooray » Wed May 11, 2016 7:03 pm

http://greendrake.info/#nfy0

Given the recently revamped interest in legal matters revolving around DRM, and a number of statements made by senior contributors that are in line with my own, previously stated, interpretation of the matter, I am reposting the corresponding comments here:

bundling GPL'ed contents with non-GPL materials
bugman wrote:
Hooray wrote in Wed Nov 18, 2015 2:24 pm:Again, if you can get the FSF to clarify the GPL FAQ accordingly, that would be great - even if you should prove me wrong (which I find highly unlikely, but I won't be bothered by standing corrected!)


I still don't understand what needs clarifying. Let me make the following analogy:

    FG+Nasal vs. Python: I see these as equivalent. Running a Nasal script or Python script is very similar in concept. And you are free to choose the licence of your script in both cases. And who knows, maybe FG+embedded Python as a replacement for FG+Nasal might occur one day, but that won't change the licensing conditions.

    FGData vs. numpy: I also see these as equivalent. Numpy is a Python 'site-package' which is stored in a separate location (it is often in the Python directories, but it does not have to be). It provides an API for performing numerical calculations, and will often return its own numpy array-type objects. Calling numpy.eye(3) to return a numpy array object for an identity matrix does not force my code to use the numpy licence. Calling geo.aircraft_position() to return the Coord object for the coordinates likewise does not force my code to use the FGData licence.



http://wiki.flightgear.org/FlightGear_a ... _%28DRM%29

Curt wrote:The licensing of nasal (I believe) is
written in a way that makes it difficult to distribute proprietary nasal
code. So there would be some really significant challenges to making a
FlightGear aircraft that is secure from modification, not to mention
copying.


Thorsten wrote:Another complicated case arises for code in an interpreted language (Nasal
in the FG case). According to the GNU project FAQ, such code is data (and
hence does not fall under the GPL provision) as such, but not when it
requires bindings, i.e. your code links with (interpreted or other)
libraries which are GPL - in this case the GPL license is triggered.

Example: FG planes which use canvas commands do so by 'binding'
to the canvas Nasal library which is GPL licensed. This means in this case
the corresponding Nasal code is no longer considered data, would fall
under the GPL license and can not be licensed differently when
released.


Erik wrote:I have to correct myself, this was written too hasty.
The license of the interpreter does not matter.

In both cases (Nasal and Lua) it is possible to write pure commercial
scripts as long as you do not link to any other (Nasal) files in FGData
or FGAddon.


Thorsten wrote:You're free to create a non-GPL plane for FG - that's data from the
perspective of the sim and doesn't trigger the license. You can sell that
without ever allowing to re-distribute the source code. You're required to
stay clear of a few things (you can't use Generic instruments, Nasal
libs,...) but that should be doable. You can charge license fees for such
a plane, and nobody may legally re-distribute it.


Ludovic Brenta wrote:Example: a Nasal script that calls the Canvas rendering framework is a
derivative work of the Canvas rendering framework, which is GPL'd, so
the Nasal script must be GPL'd too.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11317
Joined: Tue Mar 25, 2008 8:40 am

Re: bundling GPL'ed contents with non-GPL materials

Postby bugman » Thu May 12, 2016 9:18 am

Hi Hooray,

This is actually quite complicated, and highly dependent if version 2 or 3 of the GPL is used. The 3rd version has been much better designed for legal clarity both for web usage (JavaScript usage for example) and for international usage. The GPLv2 licence, as used by the FlightGear project, is exclusively focused on US law.

Regards,
Edward
bugman
Moderator
 
Posts: 1648
Joined: Thu Mar 19, 2015 9:01 am
Version: next

Re: bundling GPL'ed contents with non-GPL materials

Postby Hooray » Thu May 12, 2016 9:46 am

I am well aware of the intricacies here, but before the project starts to publish an introduction on licensing, it is probably a good idea to establish what is "correct", given that this is not the first time this issue pops up; even if that just means communicating the overall consensus/intention behind all this.
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11317
Joined: Tue Mar 25, 2008 8:40 am

Re: bundling GPL'ed contents with non-GPL materials

Postby Thorsten » Thu May 12, 2016 10:03 am

Try as I might, I can't see any other interpretation of the linked FAQ text, it looks very clear to me. It's possible that the FAQ is wrong or provides an US case that can be challenged in some countries - that I don't know, but that may hold for almost any other explanation given.

So I'd strongly suggest we stay with the FAQ and assume it's legally sound.
Thorsten
 
Posts: 10638
Joined: Mon Nov 02, 2009 8:33 am

Re: bundling GPL'ed contents with non-GPL materials

Postby Hooray » Thu May 12, 2016 10:57 am

I am with you on this one, but bugman was the one who disagreed with our interpretation of the matter and he also said, that he'd be a member of the FSF back then, suggesting that the issue would be clear-cut, i.e. would not need clarification.

Meanwhile, this interpretation has made it into the licensing intro you are drafting, and is supported by most long term contributors (see above).

And even the term "viral" made it into the draft, despite bugman strongly objecting with it originally :lol:
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Hooray
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Hooray
 
Posts: 11317
Joined: Tue Mar 25, 2008 8:40 am

PreviousNext

Return to The FlightGear project

Who is online

Users browsing this forum: No registered users and 1 guest