octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Octave FAQ update about GPL


From: fgnievinski
Subject: Re: Octave FAQ update about GPL
Date: Sat, 15 Mar 2014 23:54:19 -0700 (PDT)

Mike Miller wrote
> Hi Felipe, first of all I support your effort to understand and clarify 
> these legal issues that concern users of Octave that may want to 
> distribute scripts and compiled functions that work with Octave. 
> 
> On Wed, Feb 12, 2014 at 14:28:58 -0800, fgnievinski wrote:
>> Several the previous usage cases hinge on the whether or not a given
>> library
>> can be considered a System Library.  Quoting from the text of the GPL:
>> 
>>     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. 
>> 
>> Notice that the each clause (a) and (b) has two parts:
>>    (a.1) is included in the normal form of packaging a Major Component
>>    (a.2) is part of that Major Component
>>    (b.1) serves only to enable use of the work with that Major Component
>>    (b.2) implement a Standard Interface for which an implementation [a
>> different one?] is available to the public in source code form
>> So the definition should be read: ( (a.1 AND NOT a.2) AND (b.1 OR b.2) )
>> Sub-clause (b.1) seems quite wide to me...
>> The text of the GPL continues to say that:
>> 
>>     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. 
>> 
>> So the Major Component would be the Octave interpreter.
> 
> I don't agree with this interpretation and I'm not sure you are looking
> at these terms the right way. The text of the GPL you are trying to
> interpret is for works covered under the GPL. So if you are trying to
> come up with clearer guidelines for software that uses Octave but does
> not wish to be licensed under the GPL, this aspect of the GPL does not
> apply. I support your efforts to understand and clarify this, but I
> don't think this aspect of the GPL means what you are reading into it.
> 
> As I understand it, the system library exception in GPL-2 and GPL-3 is
> intended to refer to the operating system's standard libraries, things
> like the OS system call interface, libc, C compilers and their
> libraries. The exception is intended to allow a GPL-covered work to be
> compiled, used, and distributed for operating systems whose core
> libraries are not free, and would therefore normally not be
> GPL-compatible.
> 
> For example, it allows me to write a C program that calls "fopen" and
> distribute it under the GPL on any operating system, regardless of how
> each OS implements the function "fopen".
> 
> I do not think Octave can be understood by anyone to fall under the
> definition of a Major Component of an operating system.
> 
> Even if Octave were a Major Component providing a System Library, this
> part of the GPL license text does not grant any special exceptions to
> non-GPL-covered works that want to link with Octave.
> 
> So, on the rest of your analysis,
> 
>> The GPL goes on to say:
>> 
>>     A "Standard Interface" means an interface that either is an official
>> standard defined by a recognized standards body, or, in the case of
>> interfaces specified for a particular programming language, one that is
>> widely used among developers working in that language. 
>> 
>> Initially I interpreted Standard Interface as essentially Matlab,
>> although
>> now I'm uncertain because of the caveat in sub-clause (b.2), "is
>> available
>> as source code".
>> Finally, the GPL says:
>> 
>>         The "Corresponding Source" ... does not include the work's System
>> Libraries... 
>> 
>> So the very same library can require copyleft or not from the caller,
>> depending on how the library was installed and distributed.
> 
> When it says "the work's System Libraries", I understand that to mean
> the operating system interfaces that Octave uses. In other words, the
> source code of Octave does not include gcc, libc, etc.
> 
>> Here are some specific cases:
>> [...]
> 
> I think the answer to all of these cases is negative, Octave is not a
> Major Component and it does not provide System Interfaces.
> 
> IANAL, TINLA, feel free to disagree or correct me as needed.
> 
> -- 
> mike

Just found this quote:
<http://www.gnu.org/licenses/quick-guide-gplv3.html#less-source-to-distribute-new-system-libraries-exception>
"GPLv3 has adjusted the definition of System Library to include software
that may not come directly with the operating system, but that all users of
the software can reasonably be expected to have. For example, it now also
includes the standard libraries of common programming languages such as
Python and Ruby."

So I maintain the interpretation that Octave can be deemed a Major Component
in the language of the GPL, thus the GPL System Library exception can be
invoked to explain why the mere existence of a GPL implementation of a
pre-existing API cannot impose copyleft requirements on separate non-GPL
implementations of that same API.

Restating the bottom line: if your code runs in both Matlab and Octave, you
can license it however you wish.  Now if it runs only in Octave, and it is
not trivial (i.e., invokes not only keywords), then it must be GPL'ed (or
compatible to GPL) if you decide to release it publicly.

Unless Octave wants to offer a special exception, as done by the GNU
Classpath: 
<http://www.gnu.org/software/classpath/license.html>
        "When GNU Classpath is used unmodified ... for a program written in
the java programming language it does not affect the licensing for
distributing those programs directly."
- or as this exception recommended for JavaScript:
<http://www.gnu.org/licenses/gpl-faq.html#WMS>
        "As a special exception to the GPL, any ... file which merely makes
function calls to this code, and for that purpose includes it by reference
shall be deemed a separate work for copyright law purposes."
- or the GCC Runtime Library Exception:
<http://www.gnu.org/licenses/gcc-exception-3.1.html>
<https://www.gnu.org/licenses/gcc-exception-3.1-faq.html>

-F.



--
View this message in context: 
http://octave.1599824.n4.nabble.com/Octave-FAQ-update-about-GPL-tp4661733p4663104.html
Sent from the Octave - Maintainers mailing list archive at Nabble.com.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]