[Zope-dev] ZPL and GPL licensing issues

Shane Hathaway shane@digicool.com
Fri, 22 Jun 2001 00:41:51 -0400


Jim Penny wrote:
> DC and FSF somehow have to come to some understandings of the following
> questions.

Here is my own view (not DC's offical word!)

> Can a GPL (unmodified) component be distributed for Zope (at all)?

I think the message by Bradley Kuhn is a little misleading.

If you are the original developer, you can distribute your product.  The
GPL does not try to limit the rights of the original developer.  As the
original developer you have the rights granted by copyright law, which
is a "higher" law than the GPL.

The GPL primarily affects redistribution.  If, for example, Apple
decides they like your product, even though you tried to GPL it they'll
have to ask you to re-release your product under a different license
before they can redistribute your product since it depends on Zope and
the ZPL is not compatible.

> Can a GPL (modified per fog) component be distributed for Zope?

Yes, but only by the original developer or with permission from the
original developer.  You can post your product on zope.org, but since
the GPL and ZPL aren't compatible, another site cannot mirror your
product unless you specifically grant permission.  The intent of the GPL
is to grant specific redistribution rights to those who receive your
product, but since a condition of the GPL cannot be met, the license is
effectively meaningless.

So what does a voided license mean?  It means that the recipient of your
product effectively has no rights to redistribute your product in any
way, except according to your terms expressed through other means.

Now let's say some company decides to take your product and distribute a
derivative without source code.  Let's say you don't like what they've
done and the case goes to court.

I'm no lawyer, but as I see it the GPL won't be in effect, yet the fact
that you tried to use the GPL clearly demonstrates your intent.  The
intent was clearly stated from the start.  It's hard to say how much
legal weight intent really has (especially outside the U.S.), but
regardless of the GPL your work would still be covered by copyright law.
The only time copyright law no longer applies is when you declare your
work to be in the "public domain".

> If yes to either, may the component be invoked (dtml-var, dtml-call,
> or equivalent) from a non-GPL component?
> If yes to either, may the component be subclassed by a non-GPL component?

These are really the same question in the eyes of the GPL.

The answer is yes, but the non-GPL component can't be distributed except
under terms not contained in the GPL.  Let's take a real-life example:
Simon Michael created the ZWiki product and released it under the GPL. 
Digital Creations modified it to fit better in the CMF.  Digital
Creations cannot redistribute the derivative unless Simon (assuming he
is the copyright holder) specifically says we can. He holds copyright
privileges and can release the work under multiple licenses or under
special terms.

Now, if the ZPL were GPL compatible, the GPL would be in full effect for
products.  Digital Creations would automatically have the rights to
redistribute derivatives of ZWiki.  I believe DC would even be able to
distribute ZWiki with Zope as long as any dependent products (such as
CMFWiki) are also GPL'ed.  Zope itself would not have to be GPL'ed since
it does not depend in any way on ZWiki.

By the way, the "operating system" clause of the GPL does not apply. 
The clause is there because it's clear that although an operating system
is required to run most GPL'ed software, a *specific* operating system
is not required.  If there were multiple distinct implementation of the
Zope APIs, there would be grounds for a different interpretation of the
GPL.

So let me summarize:

- GPL applied to Zope products is currently meaningless.  If, however,
the ZPL is made GPL compatible at some time, the GPL will automatically
take effect for products that currently attempt to apply the GPL.

- As the original developer you can distribute to whomever you please,
but trying to use the GPL to grant rights to redistributors is
ineffective right now.  (Technically, those who receive the product
don't have the right to use the product at all, except for the fact that
posting it on zope.org and attempting to apply the GPL is a somewhat
weak means of expressing permission.)

- Unless you're making something substantial, you shouldn't be concerned
that your code will be stolen by code sharks.  You might consider a
dual-licensing scheme where users are allowed to apply either the GPL,
when it becomes possible, or some other license.

- The GPL is designed to build a pool of software from which anyone can
draw as long as they play by the rules.  As long as the ZPL is not
compatible with the GPL, no one can truly add Zope products to this
pool.  If your philosophy agrees with the GPL, I urge you to lobby DC to
get the ZPL changed.

- DC has not changed the ZPL because there hasn't been any strong push
to make it happen.  I certainly can't make it happen; some of my
arguments are a bit weak and I personally have no reason to release a
product under the GPL.  Make your voice heard.  Keep in mind that many
on the management team don't have time to read the zope-dev and zope
lists.

Shane