[PD] porting a Pd patch to Max license issues

Marco Donnarumma devel at thesaddj.com
Thu Mar 22 16:36:02 CET 2012


Thanks everybody for the useful insights.

Just to make clear my intent in choosing a GPL license:

- keep the code free and open
- encourage the use of free and open software
- avoid the use of the code in proprietary environments.

So, this is what I aim for, and I thought (maybe erroneously?) that GPL
would be helpful in this sense.

As Simon said "... you cannot distribute an executable derived from some
GPL code which is statically linked to some incompatible code."
This is the notion which I wish to rely on when distributing the code.

Now, the clarification of the GPL license is clearly not straight-forward,
although I learned a lot with this thread, so thanks!
Probably, the simple fact that to produce executable code from the XS and
distribute it one needs to go through all the terms of the GPL is enough to
make someone's intention fail.
Specially 'cause the XS is not the Ocarina.

cheers,
Marco



> On 16/03/12 22:37, Bryan Jurish wrote:
> > On 2012-03-16 05:58, Simon Wise wrote:
> >> But generally this is not how an end user runs a Max executable ... they
> >> do not have Max on their machine, the executable they receive includes
> >> all required to run it. There are no Max "system libraries" to call, and
> >> they do not have a "Max interpreter" on their system.
> >
> > No more does the usual windoof user have a Borland or VisualC compiler
> > installed, nonetheless it's totally legitimate (from the GPL side) to
> > compile GPL code with one of these closed-source, commercial software
> > packages and distribute the resulting executables, provided only that
> > the source code for the *program* remains under GPL -- the GPL doesn't
> > claim that because someone used Borland C to compile a GPL'd program and
> > shared the result that Borland C must be GPL: that would be absurd...
>
> The relevant difference between a compiled C program and a Max executable
> is
> that the C libraries that the compiled C program links to dynamically are
> on the
> users system, and installed quite separately from the GPL program ...
> these are
> the exception referred to in the GPL as system libraries ... however _all_
> libraries linked statically and included with the compiled C program must
> be
> open source and compatibly licensed if you want to distribute the resulting
> binary if _some_ of it is built using GPL code.
>
> In the case of a Max executable the Max libraries, and the other Max
> objects
> that were in the patch, are not on the users system ... they are included
> as
> part of the executable. If parts of that executable are GPL and parts are
> incompatible with GPL then you may use it yourself (for example to run on
> another computer for which you do not have a Max license) but the GPL does
> not
> allow you to distribute it (for example give it to the person you wrote it
> for,
> so they can use it on a machine that does not have a Max license).
>
>
> > Such commercial C compilers also often include local utility libraries
> > with very lax redistribution conditions, so that their users can legally
> > do things like that.  The Max license might deal with compiled
> > executables differently or incompatibly; I don't know.
>
> exactly - this ensures that the required libraries can be built and
> distributed
> as system libraries, or are perhaps in a form that is compatible with your
> main
> license and can be linked statically.
>
> Max however ensures the opposite. The internal Max objects are very much
> not
> licensed with "lax redistribution conditions", nor are the parts of Max
> you will
> be linking with. You must buy Max to use it to interpret a Max patch
> directly,
> or to save/compile a patch as an independent executable. You can however
> run
> this saved Max executable without buying Max, or having any Max libraries
> in
> your system, or having any Max interpreter or virtual machine or whatever.
>
> In both cases this is intentional, not something that is an accident of the
> implementation details. And it is quite unlike running a java app on a
> local
> java VM, or linking with a closed source library you have either been
> given or
> have purchased a license for and then installed locally.
>
> I believe it is only distributing a saved executable which includes GPL
> code
> that is not allowed. Distributing a Max patch where some of the components
> are
> GPL (and which will be interpreted by Max locally) is probably fine. It
> seems
> reasonable to me to consider those GPL components in isolation when they
> are
> simply part of a patch which is in itself the source code for an
> interpreter.
>
> But distributing the saved executable is the usual practice in the Max way
> of
> doing things, if you are making something for somebody else.
>
> >
> >>>> p.s. I would be happy if it was.
> >>
> >> I'd say, but I am not a lawyer, that it certainly is partly the case -
> >> GPLed libraries can't be part of standalone executables that are
> >> distributed to another party.
> >
> > ... unless the "corresponding source" of those executables is itself
> > made available under the GPL... with which we're back to system
> libraries.
>
> But the corresponding source cannot be made available ... parts of the
> source
> correspond to parts of the internal Max code, or to closed-source Max
> objects,
> and these parts are not available to be distributed ... the binary parts
> derived
> from this non-distributable code is included in the executable and is in
> no way
> a "system library" ... it is not on the users system independently, it is
> only
> present inside the executable in question! ... And this binary is not a
> compiled
> version of the patch ready to be "interpreted" by Max ... there is no
> interpreter installed locally to run it, yet it runs fine and quite
> independently.
>
> You can, I think, distribute a Max patch which has some GPL objects in it
> (as
> long as you comply with the GPL for those objects and any restrictions on
> other
> objects). Then anyone can run it using Max as the interpreter, or compile
> it for
> their own use. But you cannot distribute an executable derived from some
> GPL
> code which is statically linked to some incompatible code. This is equally
> true
> of the output of a C compiler ... if the executable that results from
> compiling
> GPL code includes libraries that are incompatible with the GPL (rather than
> linking to external system libraries) then you cannot distribute the
> result.
>
>
> >
> >>> 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).
> >>
> >> Yes ... to _use_ for anything, by anybody, without restriction. But
> >> distribution of executables is very deliberately restricted (in a way I
> >> personally think is very appropriate), and must be accompanied with the
> >> full, properly licensable and reusable under GPL, code for the _whole_
> >> executable.
> >
> > I agree -- in the case of C code it's pretty clear what is meant by
> > "library", "linking", "using", etc., and of course what sort of
> > creatures the "system libraries" are.  For other languages, those terms
> > get murky very quickly.  I still think that a system library /
> > interpreter / compiler exception might be made to apply, provided that
> > the package source remained GPL, without trying to infect Max; but it
> > seems to come down to a question of "linking" vs
> "interpreting/compiling".
>
> The GPL in no way "tries to infect" any other code. That would be
> impossible
> anyway. A binary that is built from mixed GPL and more liberally licensed
> but
> compatible code must be accompanied by its complete source code - original
> licenses remain intact, not just the GPL parts.
>
> This certainly restricts the ways that GPL code can be used significantly
> more
> than some other licenses do, since if you can't distribute your whole code
> then
> you can't use any GPL code. Projects may of course be tempted to restrict
> themselves to compatible code so that they are able to make use of the
> large
> body of existing GPL code.
>
> >> With this in mind the motivation to port to Max may evaporate.
> >
> > Hmm... if we can keep up the debate on GPL arcana for another few
> > weeks, I'd say it almost certainly will ;-)
>
>  From the comments by the person who wrote the code it would seem he would
> prefer it if that motivation did evaporate. That was probably related to
> the
> reason he chose GPL as the license for his code in the first place.
>
> The GPL is very clear in its intentions ... obviously any project that
> does not
> wish to restrict the use of their code in this way should not choose GPL
> (and
> should not make use of GPL code), and anyone looking for code to use
> without
> these restrictions should either look for code more liberally licensed,
> offer to
> buy a suitable license from the authors of some other existing code, or
> write
> their own code.
>
> I don't think this is GPL arcana ... rather it is the very up front and
> explicit
> intention of the license, and presumably many coders who use it.
>
> Trying to find loopholes to avoid this intention _is_ arcane and beside the
> point outside a courtroom, and hopefully doomed to failure inside one.
> Asking a
> coder to change the license if you suspect they don't care for this
> restriction
> and just applied GPL as some kind of default without even reading the
> preamble
> is reasonable, but don't be surprised if they do in fact care.
>
>
> Simon
>
>
>


-- 
Marco Donnarumma
New Media + Sonic Arts Practitioner, Performer, Teacher, Director.
ACE, Sound Design MSc by Research (ongoing)
The University of Edinburgh, UK
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Portfolio: http://marcodonnarumma.com
Research: http://res.marcodonnarumma.com | http://www.thesaddj.com |
http://www.flxer.net
Director: http://www.liveperformersmeeting.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20120322/afb5779d/attachment-0001.htm>


More information about the Pd-list mailing list