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: