[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