Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [stellation-res] Stellation support for MySQL on Linux

On Sat, 2002-11-02 at 08:09, Jonathan Gossage wrote:
> > >-----Original Message-----
> > >From: stellation-res-admin@xxxxxxxxxxxxxxx
> > >[mailto:stellation-res-admin@xxxxxxxxxxxxxxx]On Behalf Of Mark C.
> > >Chu-Carroll
> > >Sent: November 1, 2002 7:52 PM
> > >To: stellation-res@xxxxxxxxxxxxxxx
> > >Subject: RE: [stellation-res] Stellation support for MySQL on Linux
> > >
> > >
> > >On Fri, 2002-11-01 at 18:40, Jonathan Gossage wrote:
> > >> > >-----Original Message-----
> > >> > >From: stellation-res-admin@xxxxxxxxxxxxxxx
> > >> > >[mailto:stellation-res-admin@xxxxxxxxxxxxxxx]On Behalf Of Mark C.
> > >> > >Chu-Carroll
> > >> > >Sent: November 1, 2002 6:15 PM
> > >> > >To: stellation-res@xxxxxxxxxxxxxxx
> > >> > >Subject: RE: [stellation-res] Stellation support for MySQL on Linux
> > >> > >
> > >> > >
> > >> > >On Fri, 2002-11-01 at 17:49, Jonathan Gossage wrote:
> > >> > >> > >-----Original Message-----
> > >> > >> > >From: stellation-res-admin@xxxxxxxxxxxxxxx
> > >> > >> > >[mailto:stellation-res-admin@xxxxxxxxxxxxxxx]On Behalf Of
> > >> > >Dave Shields
> > >> > >> > >Sent: November 1, 2002 2:51 PM
> > >> > >> > >To: stellation-res@xxxxxxxxxxxxxxx
> > >> > >> > >Subject: Re: [stellation-res] Stellation support for
> > >MySQL on Linux
> > >> > >> > >
> > >> > >> > >
> > >> > >> > >On Fri, Nov 01, 2002 at 01:25:12PM -0500, Jonathan
> > >Gossage wrote:
> > >> > >> > >> Actually I am planning to install Linux from the current
> > >> > >> > >Debian distribution
> > >> > >> > >> but I will let you know how things go and will provide some
> > >> > >> > >installation
> > >> > >> > >> notes.
> > >> > >> > >
> > >> > >> > >By the way, be sure to use MySQL Connector/J 2.0.14 (the stable
> > >> > >> > >version),
> > >> > >> > >as it is licensed under LGPL.  I just noticed that Connector/J
> > >> > >> > >3.0.1.Beta
> > >> > >> > >(the development version) is licensed under GPL, so we
> > >can't use
> > >> > >> > >it with code
> > >> > >> > >licensed under the CPL. If J 2 doesn't have the desired
> > >> > >functionality
> > >> > >> > >then we won't be able to support the use of MySQL with
> > >Stellation.
> > >> > >> > >
> > >> > >> > >dave
> > >> > >> > >
> > >> > >>
> > >> > >> We can't ship a GPL licensed driver as part of Stellation byt
> > >> > >nothing stops
> > >> > >> a user from using such a driver if the user obtains the driver
> > >> > >> independently. We simply have to point potential users in
> > >the right
> > >> > >> direction.
> > >> > >
> > >> > >No. It's worse than that. If we write *anything* which
> > >specifically uses
> > >> > >something licensed under the GPL, then
> > >> > >we fall under the GPL. So any code that we write that
> > >> > >specifically works with the GPLed MySQL JDBC driver is
> > >> > >automatically GPL, and anything which calls that, and so
> > >> > >on.
> > >> > >
> > >> > >LGPL allows certain kinds of linking without automatically
> > >> > >becoming GPL. Our lawyers have agreed that it's OK for
> > >> > >us to use LGPLed JDBC components. Full GPL is another matter. If the
> > >> > >MySQL database component is written to use the GPL JDBC driver, then
> > >> > >it's got to be GPL. And then the generic AbstractDatabase
> > >class needs to
> > >> > >be GPL, because it connects to the MySQL database
> > >component. And then
> > >> > >the whole core needs to be GPL, because it uses the AbstractDatabase
> > >> > >class.
> > >> > >
> > >> > >That's the way GPL works. So if the JDBC MySQL driver becomes
> > >> > >GPL, then we're stuck: we can't support it.  (I can check with our
> > >> > >lawyers to see what the dual-license nature of
> > >> > >MySQL means... but I strongly suspect that the answer will
> > >> > >be "no".)
> > >> > >
> > >> I don't see how that can be enforced. If a user downloads Stellation,
> > >> decides that MySQL is a good database choice and downloads the
> > >GPL driver
> > >> instead of the LPGL driver who is at fault.
> > >
> > >If we in any way suggest that we expect people to use the GPLed version,
> > >then *we* are. If we change our code to reference the driver under the
> > >name which works with the
> > >GPLed driver, we're caught. We *might* still be responsible
> > >in any case. GPL is a *very* viral license. It's designed
> > >to be that way - to attach itself to other software as
> > >broadly and aggressively as possible.
> > >
> > >> There is no programmatic way of
> > >> determining, 5 years from now if a given driver is
> > >appropriately licensed.
> > >> It would seem to me that if your lawyers are right than we must take
> > >> explicit steps to prevent Stellation from working with any
> > >industry standard
> > >> interfacce such as JDBC that might bring a GPL licensed
> > >component together
> > >> with a CPL licensed component. Under that scenario would not
> > >Postgres also
> > >> be disqualified?
> > >
> > >This is my understanding, and I'm not a lawyer, so it might
> > >not be correct. But it is my best understanding.
> > >
> > >If you write code that *specifically* uses GPL code, then
> > >you're trapped by the GPL license. End of story.
> > >
> > >If you write code that *someone else* links against something
> > >GPL, but which you wrote for something that wasn't GPL,
> > >then you're not trapped by the GPL license. So for example,
> > >if you write code under AIX which uses the standard C
> > >libraries, then just because someone else compiles it on
> > >an OS where the libraries are GPL, you aren't falling under
> > >the GPL.  On the other hand, you *cannot* distribute a
> > >port to the OS where the libraries are GPLed - not can
> > >you include any code which provides *any* custom behavior
> > >for the GPLed libraries. Even putting an ifdef that references a symbol
> > >defined only in a GPL license *might*
> > >be enough to trigger the GPL on you.
> > >
> > >So, getting back to Stellation, if we use absolutely generic JDBC code,
> > >and someone runs it against a JDBC driver that happens to be GPL, we
> > >aren't affected. But if we write MySQL specific code, which specifically
> > >references the GPLed version of the driver; or in our documentation even
> > >*suggest* that you should (or perhaps even *could*) use the GPL version,
> > >then we have to conform to the GPL. The only way
> > >we can support MySQL is by making the documentation *perfectly* clear
> > >that you must use the LGPL version of
> > >the driver, and probably put in code to make sure that you
> > >use the older driver version.
> > >
> > >The current PostgreSQL is the UC regents license - essentially the BSD
> > >license. We're clear under that. Firebird
> > >is basically the mozilla license. We're clear under that.
> > >DB2 and Oracle are both commercial products where the JDBC
> > >libraries have non-viral licenses. All of those are
> > >absolutely fine. If they change the license in the future,
> > >then we might need to respond to those changes.
> > >
> > >Switching the MySQL driver to GPL makes it pretty close to
> > >impossible for us to support MySQL. I really hate that,
> > >because MySQL has significant performance benefits. But
> > >unless we can either find an alternative JDBC driver that we
> > >can safely use, or we can have the code verify that it's working with
> > >the LGPLed version of the driver, I don't think we can safely, legally
> > >use it.
> > >
> > >	-Mark
> 
> 
> If that is the case than is not MySQL out of the question no matter which
> JDBC driver we use? We have specific code in the database support to deal
> with MySQL itself and that is definitely GPL. Does that not force the
> application og GPL irrespective of the JDBC library?

No. As I understand it, linking/direct inclusion is the key issue. So if
a JDBC driver is implemented to use the MySQL
communication protocols, and the MySQL folks gave permission
for that JDBC driver to be licensed non-GPL, and we only 
connect through the LGPLed driver, then we're OK.

> A little off topic, but relevant still. How do the CDT folks get away with
> using GCC and its' toolchain which are all GPL licensed?

I'm a bit out of my depth here... But my understanding is,
direct linkage is the key. The CDT invokes gcc through 
a generic command-line interaction mechanism. It does
not directly link gcc. But as I said... I'm really getting
out of my depth. My understanding of this stuff is quite
limited. I'm just trying to do my best to make sure we
stay within the limits that were explained to my by the
legal folks.

	-Mark



-- 
Mark Craig Chu-Carroll,  IBM T.J. Watson Research Center  
*** The Stellation project: Advanced SCM for Collaboration
***		http://www.eclipse.org/stellation
*** Work Email: mcc@xxxxxxxxxxxxxx  ------- Personal Email: markcc@xxxxxxxxxxx




Back to the top