[PD] porting a Pd patch to Max license issues

Bryan Jurish moocow.bovine at googlemail.com
Thu Mar 15 13:48:32 CET 2012


moin Marco,

<disclaimer>
 i'm not a lawyer and have never even played one on TV. whatever
 assertions i make in the sequel regarding the GPL and its consequences
 may be wildly off the mark.
</disclaimer>

... that said, i *have* spent a lot of time dissecting the GPL recently
for my employer (an academic institution) after we had a visit from a
certain R. Stallman, and playing through various potential scenarios of
interest in preparation for trying to push a GPL release policy to the
administration ...

On 2012-03-15 12:07, Marco Donnarumma wrote:
> On Thu, Mar 15, 2012 at 11:05 AM, Marco Donnarumma <devel at thesaddj.com
> <mailto:devel at thesaddj.com>> wrote:
> 
>     thanks for the hint Bryan,
>     that might apply.
>     In this case, porting the code to Max or Max4Live is not legal,
>     unless I specify an additional exception for it, is it correct?

quite the opposite: porting GPL'd code to Max or Max4Live is perfectly
legal -- the GPL makes no claims on what each licensee does with his or
her own private copy of the code -- the copyleft arises only when a
licensee wishes to redistribute ("convey") his or her changes (i assume
you know all this; i'm just being pedantic for paranoia's sake).

So, we're talking about distributing changes made to XS with the intent
of making XS play together nicely with a proprietary dataflow
interpreter (which I'll call "Max" for simplicity's sake).  Since the
porter usually holds copyright on the changes, you can't effectively
make any restrictions on what they do with those changes, insofar as
they're distributed separately from your (GPL'd) code (prototypically as
diffs).

... so now we're talking about the porter distributing a package
including both XS and the Max-related changes; this __is__ a "derivative
work" in the sense of the GPL, and copyleft kicks in: the "corresponding
source" for the whole package (XS+changes) has to be available under the
terms of the GPL as well.

Your original question iirc was about problems between GPL and the
proprietary Max license; I think the GPL "system library" exception
applies here (for the GPL->Max side; I don't know anything about the Max
license, so it might conceivably have problems of its own with even
running GPL'd code).  GPLv3 (http://www.gnu.org/copyleft/gpl.html)
defines "system libraries" as (boldface inserted by me):

> 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. 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*.

... imho, this pretty clearly includes the dataflow environment (Pd|Max)
used to run the patch as an exception under the "compiler or
interpreter" clause.  The GPL copyleft therefore doesn't extend to
these, so there's no conflict with whatever the Max license might be
simply by virtue of your original code being GPL.

>     so now, to make it spicier, 
>     I found this FAQ:
>     ~~~~~~~~~~~~~~~~~
>     If a library is released under the GPL (not the LGPL), does that
>     mean that any software which uses it has to be under the GPL or a
>     GPL-compatible license?
> 
>     Yes, because the software as it is actually run includes the library.
>     ~~~~~~~~~~~~~~~~~
> 
>     is this a show-stopper for porting of the XS into a proprietary
>     environment?

Well, I wouldn't say that Max is "using" XS in this sense, but rather
that Max acts as the interpreter for XS.

> p.s. I would be happy if it was.

Sorry if that's bad news for you... as Stallman would very likely not
hesitate to point out, __any__ kind of restriction on what your users
can or cannot do with your software makes that software less free, and
is therefore generally a Bad Thing (at least for the FSF and those who
share its interests and goals).

If it's any consolation, I suspect that the legal issues get quite a bit
murkier if we consider "binary" distributions of the (XS+changes)
package (if such things exist; I seem to recall having heard about them
at some point), since these would assumedly include some part of the Max
"system libraries" as well.  There's probably a GPL clause which handles
that as well (java class libraries might behave similarly), but I can't
seem to turn it up at the moment.

marmosets,
	Bryan

>     On Thu, Mar 15, 2012 at 9:34 AM, Bryan Jurish
>     <moocow.bovine at googlemail.com <mailto:moocow.bovine at googlemail.com>>
>     wrote:
> 
>         moin Marco,
> 
>         sounds like a case for the "system library exception" to me; see
>         here:
> 
>          http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs

>         On 2012-03-14 13:48, Marco Donnarumma wrote:
>         > I'm not going to port anything to Max, but someone expressed
>         interest in
>         > porting the Xth Sense in Max.

-- 
Bryan Jurish                           "There is *always* one more bug."
moocow.bovine at gmail.com         -Lubarsky's Law of Cybernetic Entomology




More information about the Pd-list mailing list