[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: The MySQL FOSS Exception v0.1

(CC'ing debian-legal for any suggestions they may have, as well)

On Fri, 2004-03-12 at 06:40, Zak Greant wrote:
> On Thursday, March 11th at 22:58 CET, the MySQL team become the proud 
> parent of a brand new baby license exception. Birth occurred much 
> sooner than the estimated deliver date of "sometime after Perl 7". The 
> parent and child are now resting after a very long and arduous labor 
> (and an even longer and more arduous pregnancy).
> The new exception is called the "MySQL FOSS Exception" and currently is 
> 66 lines, 458 words and 3828 bytes.

Congrats.  Hopefully we'll see v0.2 very soon.  :)

> When viewing the baby, please keep in mind that it is only a baby and 
> needs lots of input to become healthier, stronger and more 
> comprehensible.
> When I get back to my home base in a few days, I will drop the 
> exception into something like CVS (perhaps with CVStrac support ;) so 
> that we can track every little change and the suggestions that led to 
> it.
> Also, please note that we have already delivered this document to the 
> FSF, Larry Rosen, a good number of core PHP people, the Fedora team, 
> etc.  So far, we do have early feedback from some of the reviewers that 
> we will consider incorporating as we do new revisions of the licenses.
> Supporting details to come as I (and we) have time to write them.
> The MySQL AB Exception for non-GPL Free and Open Source Software-only 
> Applications
> Using MySQL Client Libraries (the "FOSS Exception") (Version 0.1)
> We want FOSS-only (Free and Open Source Software) applications to be 
> able to use
> GPL-licensed MySQL Client libraries despite the fact that not all FOSS 
> licences are
> compatible with the GPL. Therefore we have issued the following 
> exception:
> As a special exception to the terms and conditions of version 2.0 of 
> the GPL
> You are free to distribute Derivative Works that are formed entirely 
> from works
> licensed under under one or more of the licenses listed below without

Small typo; s/under under one/under one/.

> affecting
> the license terms of the works, as long as:
> 1. You obey the GNU General Public License in all respects for the 
> Program and
> the Derivative Work, except for identifiable sections of that work 
> which are
> not derived from the Program, and which can reasonably be considered
> independent and separate works in themselves,

Ok, so when merely using libmysqlclient via its standard API (the common
case being dynamically linking against it), GPL terms must be followed
for only libmysqlclient; the complete derived work is exempt (contingent
upon further text, below).  When including actual libmysqlclient code in
a module (or program) that isn't just calling libmysqlclient API calls,
GPL terms must be followed for the entire module (or program).  Using
terms like "reasonable" in licenses makes me nervous, but it seems
pretty clear in this case what is meant.

> 2. You distribute all identifiable sections of the Derivative Work 
> which are
> not derived from the Program, and which can reasonably be considered 
> independent
> and separate works in themselves, subject to one of the licenses listed 
> below,

Here, permission is granted to distribute with the licenses listed
below.  We'd need to make sure that everything PHP and Apache link with
use only the licenses below.

> 3. The Derivative Work does not include or aggregate any part of the 
> MySQL Server
> (SQL Engine) or any modifications, translations or other derivatives 
> thereof,

This clause seems very problematic.  The intention seems to be to allow
the license exception to apply only to client libs.  Unfortunately, this
could easily be violated.  For example, some other random piece of GPL'd
software that includes a few files from mysqld (since both pieces of
software are GPL'd, that's fine to do), and then links against apache or
php would violate the exception.  Yikes.  It's not merely the licenses
we must be checking, now; it's also individual source files within all
projects linking against libmysqlclient (or apache, or php, or any
number of other things that may be using php or libmysqlclient). 

Furthermore, the definition given for "include or aggregate" below
includes distribution on the same media.  This violates the DFSG
<http://www.debian.org/social_contract#guidelines>, making it
undistributable by Debian (if the clause is in place).  See point #9 of
the guidelines; this clause forces other software that is merely
distributed alongside a libmysqlclient that's linked with PHP (for
example) to not include mysqld.  Not only that, but it goes so far as to
say that we cannot allow automated downloading of mysqld with a GPL'd
libmysqlclient and PHP.  That makes this entire exception useless to
most distributors, I'd imagine.

> 4. If the above conditions are not met, then the Program may only be
> copied, modified, distributed or used under the terms and conditions of
> the GPL or another valid licensing option from MySQL AB.
> License name                                          
> Version(s)/Copyright Date
> Academic Free License                                                   
>      2.0
> Apache Software License                                             
> 1.0/1.1/2.0
> Apple Public Source License                                             
>      2.0
> Artistic license                                                From 
> Perl 5.0.8
> BSD license                                                      "July 
> 22 1999"
> Common Public License                                                   
>      1.0
> GNU Public License (GPL)                                                
>      2.0
> GNU Library or "Lesser" General Public License (LGPL)                   
>      2.1
> Jabber Open Source License                                              
>      1.0
> MIT license                                                             
>        -
> Mozilla Public License (MPL)                                            
> 1.0/1.1
> PHP License                                                             
>      3.0
> Python license (CNRI Python License)                                    
>        -
> Python Software Foundation License                                      
>    2.1.1
> Sleepycat License                                                       
>   "1999"
> W3C License                                                             
>   "2001"
> Zlib/libpng License                                                     
>        -
> Zope Public License                                                     
>      2.0
> Due to the many variants of some of the above licenses, we require that
> any version follow the Open Source Definition by the Open Source
> Initiative (see opensource.org).
> As used in this document, the term "include or aggregate" means to 
> embed,
> integrate, bundle, aggregate, link, distribute on the same media or in 
> the same
> packaging, provide with instructions to download or automate any of the
> preceding processes.
> Terms used, but not defined, herein shall have the meaning provided in 
> version
> 2 of the GPL.
> Derivative Work means a derivative work under copyright law: that is to 
> say, a
> work containing the Program or a portion of it, either verbatim or with
> modifications and/or translated into another language.
> Cheers!
> --zak

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: