[Zope] GPL stuff (OT)

Phill Hugo phill@fortune-cookie.com
Wed, 13 Sep 2000 18:56:24 +0100


I've heard a lot of GPL issued raised recently and I want to say a
couple of things to hopefully end the subject. I don't mind you pointing
replies to me if they aren't of general interest [hint ;)]

Firstly, read the GPL. It sounds like some of you talking about it
haven't (or have forgotten its contents). That'll clear most things up.
Its ambiguousity is limited to very technical cases such as dynamic
linking etc. Even in that case, the use of the GPL'd C Header files at
compile time can be taken to be indication of agreement to the GPL (even
the use of header files produces a legally defined "derivative work" -
one look at the sql.h files MS distibute to make that clear.

The lack of court testing is irrelevent too, that hasn't happened
becuase no one has stood to gain from it - a good indication that they'd
lose. If any company found real legal fault with the GPL where they
could take code and not be force to comply, they would have done. The
legal issues surround very specfic cases, not the entire license. The
Objective C front end to GCC is there because NeXT backed down after
admitting a futile case.

The "its not been tested in court" argument applies for many many
licenses and EULAs but you can bet that the flip side is true also - the
reason its not got to court is becuase everyone seems to be agreeing to
it out of court - a precedent no court would ignore if it ever came to

The compatibility issues of [MQZ]PL / GPL are generally cases where some
case is strongly demanded which the GPL strongly rejects. Things like
choice of law, the right to take patches for non Free use etc would
cause incompatibility due to the difference in the rights assigned to
the user under GPL and those not allowed under the other. This DOESN'T
stop you using the GPL in Zope though if you specifically allow it on
your side and the creators also do. As far as I know, DC hasn't forbade
modules under GPL to be used, or rather they have made the Product
interface "open" enough to allow even proprietry Products to be written
and used.

Of course, this is module authoring (even Linux kernel modules need not
be under GPL). In the case of taking ObjectManager.py and adding things
to it, that stays under ZPL like it or not (even your changes). That is
where the two are incompatible. You can take embed GPL code in BSD code
- that's why they are "compatible". To call that "pilfering" but not
mention companies who take BSD code and don't even share their
extenstions is a little harsh I think (the windows FTP command comes to

I don't think that using a GPLd product in Zope (via the Product
interface) would mean you have to give source away for _your_ Products
and site code which uses them. They are distinct and bound only by the
open interface Zope provides. If, however, you change the GPL'd Product,
then you will have to stick with the GPL. Either that or re-implement.
And yes, you will have to offer the GPL'd parts under the GPL terms if
you distribute the whole.

A real world case of this? There are many commercial products that
include GPL code. I've seen it used in firewalls and printers and in all
cases the GPL parts where distibuted under GPL of course. The distinct
parts (non linked, seperated by "open interface" - be that as seperate
processes, kernel modules etc) are not always available under GPL.
Philips' Tivo site has their changes to Linux under GPL available. You
won't find their MPEG suite though - shame ;)

The GPL has no direct stance on making money or otherwise. You can sell
GPL'd code for all you like, changes or none. It only governs the rights
assigned to those YOU distribute it to (not the world). However, that
one customer then has the right to distribute to the world. Unless you
are bloody good with your support and documentation, they won't need
you. If you are good that's a different matter.

The choice of license on an open project isn't, from the real world, an
indication of how well it'll do commercially either. Yes, apache,
XFree86, Perl, Python etc etc all use non GPL licenses and that's good
for them in some cases - their aims are DIFFERENT to FSF/GNUs. Besides,
Linux, GNOME and the GNU compiler tools get just the same amount of
commercial recognition (Mozilla is now also under GPL), if not more and
from just the same people.

That's about it. The only really clarifcation needed to clear this all
up is...

1) DC to say Products do not have to be under ZPL and to deem their
Product API an open interface akin to Linus' statement on the Linux
kernel module interface or RMS's on calling GPL'd apps through the
System() call.

2) Any GPL code that effects Zope's core will have to be deemed under
ZPL while running with Zope. I'm not sure any Products do this but in
the case of any, this would sort it out. Yes, its really just a dual
licensing scheme but many do that - Mozilla, Perl and Qt amongst them
(and all with the GPL alongside their other license).

In the case of the first being granted, its only the latter that would
cause "distribution concerns" I think. Thankfully its also a lot more
unlikely to happen.