[wp-docs] GPL requirement on Writing_a_Plugin
Scott Merrill
skippy at skippy.net
Sat Oct 8 21:09:37 GMT 2005
I am not a lawyer. Nothing I say should be construed as legal advice.
michael at followingedge.com wrote:
> Since I had last read the "Writing a Plugin" page...
>
> http://codex.wordpress.org/Writing_a_Plugin
>
> ...almost a year ago, the following sentence has been added to the
> "Plugin File Structure" section:
>
> You do not need to license your plugin under the terms of the GPL;
> but any license you choose to use <strong>must</strong> be
> compatible with the GPL.
>
> I think this is incorrect. Probably, it is a misunderstanding from the
> GPL FAQ that addresses how programs with restrictive license plug-ins
> cannot be distributed as a combined work.
Most plugins must use a GPL-compatible license. From the GPL FAQ:
http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
"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 for the main program makes no
requirements for them.
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. This means the plug-ins must be
released under the GPL or a GPL-compatible free software license,
and that the terms of the GPL must be followed when those plug-ins
are distributed.
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. "
It is my understanding of this FAQ that most WordPress plugins are
covered by the second paragraph. Most plugins use the $wpdb object, and
make use of template tags and other internal structures. In this way,
they are not functional on their own. Since they require the GPL'ed
product to function, and since they share data structures with the
GPL'ed program, they too are bound by the terms of the GPL.
> Obviously, if a person writes a plug-in from scratch (as opposed to
> using existing GPL, or otherwise, licensed code) and uses the public
> WordPress API, the plug-in copyright rests completely with the author
> and the GPL doesn't have any avenue to impel the author to license the
> plug-in under GPL, or any other license. Obviously, the author could not
> combine the plug-in with WordPress and distribute them together, since
> that would violate the WordPress GPL license for distribution. But, the
> author could distribute the plug-in separately under any license, and
> licensed users could install the plug-in on their WordPress
> installation, creating a "combined work" for their own use, within the
> WordPress GPL license.
If someone writes a plugin that does not use _any_ internal WordPress
functions or objects, they could then license their plugin however they
wish. For example, David Pankhurst's utopia1.php, available when you
purchase his "Top Ten Search Optimization Tricks for WordPress" book,
(apparently) does not use any internal WordPress functions or data (so I
am told -- I have not looked at the code).
See here for additional info on this:
http://www.skippy.net/blog/2005/07/09/free-as-in-freedom/
> I think it would be less grating to generous authors to encourage them
> to distribute their plug-in under the GPL or other open-source licenses,
> rather than try and force them to do so. Trying to force generosity
> might be taken the wrong way. I know that's the way I felt when I saw
> the new sentence. Encouraging GPL licensing by appealing to authors'
> community-minded generosity and via other perks (like hosting on
> wp-plugins.org) might come across better, and be more accurate.
I think it's important not to abuse the GPL, nor to encourage abuses of
it. Licensing issues can become murky for armchair legal practitioners.
I think the sentence against which you are railing is an appropriate
one, and that it should remain.
--
skippy at skippy.net | http://skippy.net/
gpg --keyserver pgp.mit.edu --recv-keys 9CFA4B35
506C F8BB 17AE 8A05 0B49 3544 476A 7DEC 9CFA 4B35
More information about the wp-docs
mailing list