Re: Humor me: Postgresql vs. MySql (esp. licensing) - Mailing list pgsql-general

From Jonathan Bartlett
Subject Re: Humor me: Postgresql vs. MySql (esp. licensing)
Date
Msg-id Pine.GSU.4.44.0310090746000.28199-100000@eskimo.com
Whole thread Raw
In response to Re: Humor me: Postgresql vs. MySql (esp. licensing)  (Oliver Elphick <olly@lfix.co.uk>)
List pgsql-general
> MySQL's licence does not require you to buy a licence for _any_
> commercial use, but only for commercial use where you do not release
> your source code under a GPL-compatible licence.
>
> There seems to be an awful lot of confusion about the GPL.  Maybe
> Microsoft's campaign has been bearing fruit in unlikely quarters...

I think the confusion comes from the fact that a database is kind of a
meta-application.  The GPL does not come into play when something is used
as an external tool, but it does come into play when you link with
libraries.  In the case with databases, both are _usually_ happening.

For instance, if I were to write my own MySQL driver that communicated w/
MySQL over a socket using no MySQL headers, my entire application would
not have to be GPL because it doesn't link with MySQL - it just uses it as
a tool.  However, if I use MySQL's C-language driver, then my code
includes MySQL source at compile-time, and thus the binary is a derivative
work, subject to the GPL.

The waters get a bit muddier when dealing with scripting languages.

If I use Perl, and just "use DBD::MySQL;", then NO MYSQL CODE is present
in my code.  I _refer_ to it, but the "use" statement is indeed my code.
When I ship my application, I'm shipping three separate parts - MySQL, the
MySQL driver, and my Perl code.  The _user_, when they run the code, is
the one who combines them.  As far as the GPL is concerned, the user can
combine anything they want to, so the Perl code does not have to be GPL to
be distributed.

This is different than dynamic linking.  With dynamic linking, you still
have to #include the header files at compile time.  So, while you could
distribute your source code under any license you choose, if you
distributed binaries you would have to distribute them GPL, because GPL
code is included in the binary through your #include.

Jon


>
> --
> Oliver Elphick                                Oliver.Elphick@lfix.co.uk
> Isle of Wight, UK                             http://www.lfix.co.uk/oliver
> GPG: 1024D/3E1D0C1C: CA12 09E0 E8D5 8870 5839  932A 614D 4C34 3E1D 0C1C
>                  ========================================
>      "Let no man say when he is tempted, I am tempted of
>       God; for God cannot be tempted with evil, neither
>       tempteth he any man; But every man is tempted, when he
>       is drawn away of his own lust, and enticed."
>                                        James 1:13,14
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if your
>       joining column's datatypes do not match
>


pgsql-general by date:

Previous
From: Együd Csaba
Date:
Subject: Re: How to delete unclosed connections?
Next
From: Karsten Hilbert
Date:
Subject: Re: int1?