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@thesaddj.com mailto:devel@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@googlemail.com <mailto:moocow.bovine@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.