On 15/03/12 17:34, Bryan Jurish wrote:
... my take is that for a (Pd|Max|...) patch, the dataflow interpreter (Pd, Max, or what have you) represents the required "system library" for use of that patch, so the copyleft doesn't kick in. If you're the copyright holder, you can also always add explicit "linking exceptions" to GPL'd code, but I think that shouldn't be necessary in this case, since interpreter (Pd|Max|...) and program code (patch) are cleanly separated.
A Pd patch is usually distributed as a patch which is then interpreted by a locally installed Pd in the sense you describe ... but with Max distribution is usually as executables which include the parts of Max required for them to run, and perhaps other Max objects in the patch which may or may not be open source. Max is expensive and a license covering each machine running it as a patch is required, but Max is not needed on the machine to run the programs distributed this way. Max is certainly not a system library if it is not on the local system.
Max could be viewed as a compiler in this case, with the resulting binary package the "output". But now this whole executable would seem to be linked to the GPL code, and distribution must be accompanied by its whole source code etc according to the GPL. But since large parts of that source is closed that is not possible.
This is in contrast to many compilers where the built-in functions are distributed separately as system libraries and these must installed on the local machine independently of the distributed GPL program which links to them (as system libraries).
Certainly porting a Pd library to Max, then using it and any executables you make yourself is very much within the GPL.
Distributing that port ready to use in Max, along with its source code of course, is fine as long as any other code used doing the port is ok to distribute according to the GPL.
I'd think that distributing a Max patch which includes parts of the ported library is ok, again as long as it is accompanied by all the code you used in the port etc, for the reasons you stated above.
But if that patch is saved as an executable you can only use it yourself, on as many machines as you like ... you cannot give the executable to someone else.
So a GPL library does not fit with the closed source distribution model used by Max.
(but of course IANAL)
Simon