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: Mike Miller
Subject: Re: Octave FAQ update about GPL
Date: Wed, 12 Feb 2014 21:47:41 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

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


reply via email to

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