This is the mail archive of the cygwin-patches mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch]: Changes to how-programming.texinfo

Christopher Faylor wrote:

> Btw, the "other license" provision in the cygwin licensing web page was
> really meant as a way to accommodate other, already existing projects.

And it was very gracious of them to do that.  For an example of why this
makes life a lot easier, consider MySQL (GPL) and OpenSSL (BSD).  Now,
the MySQL license has an "OpenSSL exemption" which means it's fine to
link MySQL binaries against OpenSSL without forcing OpenSSL to the GPL. 
But, most GPL projects use the standard GPL with no execeptions.  This
means that if your distro packages ssl-enabled MySQL packages, including
libmysqlclient, then using -lmysqlclient with your pure-GPL program
violates a license because it pulls in the BSD OpenSSL code.

MySQL at some point figured out what kind of hell a widely used library
that is only licensed under pure GPL could cause, and added their "FLOSS
exception" which lists a number of acceptable licenses that can be used
as an exception, much like Cygwin.

But I think that was a relatively new thing, and until recently most
distros were stuck with the prehistoric 3.23 version of mysql due to its
libmysqlclient being the last LGPL version available.  I presume this
was done so that e.g. BSD-licensed programs can still use
-lmysqlclient.  This really hurt MySQL adoption though because if the
vast majority of the world is still using 3.x then you really can't
write software that depends on the great features in 4.0 and 4.1 or even
5.0.  Last I checked RHEL and FC were *still* packaging this ancient
version as their default, though that might have finally changed in
RHEL4 and FC4, I don't know.

(sorry for the semi-off-topic rant.)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]