[dokuwiki] Re: GPL for plugins a must?

  • From: Daniel Neugebauer <mailinglists@xxxxxxxxxxxxxxx>
  • To: dokuwiki@xxxxxxxxxxxxx
  • Date: Fri, 12 Aug 2011 22:42:24 +0200

Hi!

I'm not a lawyer as well and what I figured may not be entirely correct.
Worst of all, GPL issues are not very clear to answer in some cases.
However, I believe to have grown a large understanding of GPL licensing
issues since I personally prefer more permissive licenses or have to
stay closed source (for own use without distribution/sublicensing) for
other projects but sometimes have no other choice than to interface GPL
code (which I try to avoid nevertheless but in some cases that is not
successful).

I assume that you want to distribute your plugin because otherwise, you
can use any license you like. In my opinion, GPL licensing questions are
not possible to answer in short, so this is inevitably a bit longer.

On 08/11/2011 09:48 PM,  Mª®k wrote:
> A plugin is not a modification, nor a copy or derivative work, nor a
> distribution of the Program, the GPL does not apply to your plugin.
> Adding a plugin does not change the Program or how the Program works
> (the interfacing with a plugin is already part of the Program).

By writing a plugin, you need to interface closely with the software you
are implementing it for. GPL says that if you *link* your code to a
GPL'ed part or your code *depends* on non-interchangable GPL'ed code you
have to maintain that license in your work as well. Even if you are just
writing one interfacing class (thus avoiding a strong dependency) and
all the rest of your very big plugin does not use the originally GPL'ed
API in any way but just your interface classes, then the GPL will spread
over all your code as soon as it is linked (with PHP usually at runtime)
or distributed together with the GPL'ed software. At runtime it's
inevitably GPL (because it's linked) no matter what license you put your
code under.

In short: Yes, you can choose a different license for your DokuWiki
plugin as long as that license *permits license change*, you
dual-license to GPL or do not distribute that plugin in a way which
makes it interface with DokuWiki.

BSD license does not seem to support sublicensing, while MIT does. Thus
I think that you cannot combine BSD and GPL without dual-licensing but
MIT will implicitely sublicense to GPL at link-/runtime, so there is no
need to explicitely dual-license the code. (although this should be done
to avoid any confusion about licenses)


Closed source plugins/modifications - as an extreme example - are
impossible to distribute (and sell) but as long as it's just for your
own use or a contracted programming work for someone else's own use,
that is possible as well. I.e. you can run public webapps even as a
commercial entity without having to release the source code, *unless*
you make that code public in any way (try to sell it, reuse it for other
companies etc.). Now, you cannot distribute that software unless you go
GPL but if you write a web application that does *not* distribute GPL'ed
stuff since everything that a user does is *use* the software on *your*
servers and just get generated output back, you can keep your code
private even if you have millions of users.

The same applies e.g. to Typo3 extensions on public websites.


Note that with GPL2 you may have complete freedom in licensing if you
don't link code but interface over a command-line or a network protocol
- this is a grey area in GPL2 licensing but was closed with AGPL and
GPL3. Since DokuWiki provides an XMLRPC interface you can code a remote
application in whatever license you want if you are only interfacing
with DokuWiki in that way.

BTW one completely absurd example of license confusion is MongoDB which
is AGPL but states AGPL would stop at the interfacing drivers - so
effectively that is not AGPL at all...

> Analogous to Andreas' explanation it would be illegal to
> distribute/sell/run non-OSS (or blobs such as video drivers) on/for
> linux (unless, ofcourse, that software does not use system calls or
> the file system, or the kernel does not use the blob...)

Not run, but distribute/sell everything that links to the kernel code,
yes. Software running in user space often falls under the so called
classpath exception which grants you free choice of licensing. This is
usually granted by glibc, GCC etc.

Non-GPL code of *kernel* modules has been a problem for many years which
led to epic discussions, user space hooks on the kernel etc. and is
still very hard if not impossible to arrange legally with GPL. This is
also the reason why some "hard core GPL" Linux distributions do not ship
certain software/drivers.

Bye,
Daniel
-- 
DokuWiki mailing list - more info at
http://www.dokuwiki.org/mailinglist

Other related posts: