[Adium-devl] GPL and Objective C
Evan Schoenberg
evan.s at dreskin.net
Sun Mar 5 21:07:47 UTC 2006
Interesting :)
> "It depends on how the program invokes its plug-ins. If the program
> uses fork and exec to invoke plug-ins, then the plug-ins are separate
> programs, so the license of the plug-in makes no requirements about
> the main program.
> If the program dynamically links plug-ins, and they make function
> calls to each other and share data structures, we believe they form a
> single program, which must be treated as an extension of both the
> main program and the plug-ins. In order to use the GPL-covered plug-
> ins, the main program must be released under the GPL or a GPL-
> compatible free software license, and that the terms of the GPL must
> be followed when the main program is distributed for use with these
> plug-ins.
> If the program dynamically links plug-ins, but the communication
> between them is limited to invoking the `main' function of the plug-
> in with some options and waiting for it to return, that is a
> borderline case."
The intention here is clearly that a commercial program can invoke a
predetermined process given a set of inputs (a "fixed action pattern"
as an ethologist would say) but can not interact in a complex fashion
during the course of that process. The grey area is really whether
that intention technically applies to Obj-C (the spirit of it
obviously does).
The language uses "function" and "data structure"... I don't think
that just because the compiler turns "method calls" and "objects"
into "functions" and "pointers to objc_object structs" for us we can
claim that this avoids the requirements of the GPL. That's somewhat
akin to saying that so long as I have a program which automatically
translates my innocuous sentences into inciting-to-violence hate
speech, I can distribute the incitement to violence so long as the
program generated, not me.
(a)
> Using plugins, commercial apps can take advantage of ANY GPL code
> that can be wrapped in a cocoa class.
(b)
> It means that Adium and ChatKit can use protocol libraries which
> are not GPL. :D
Does (a) would follow from what you said in your email; does (b)? It
seems that you're discussing ways that more-restrictive-than-GPL code
could load and use GPL plugins within the same namespace; this isn't
the same as a GPL program loading more-restrictive-than-GPL plugins,
unless I'm misunderstanding how you're getting to that point.
-Evan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://adium.im/pipermail/devel_adium.im/attachments/20060305/93426464/attachment.sig>
More information about the devel
mailing list