views:

234

answers:

2

Hello,

I'm using Python/Django over MySQL. I'm currently working with MySQLdb that's under GNU GPL license. Is there a library with "similar" capabilities that's not under GPL-like licenses?

To clarify:

  • I don't know yet if I will want to distribute my source code or charge money for my application. What I do know is that I don't want these decisions to be made for me by my choice of MySQL and Python.
  • I'm currently building a web app using Django, for which I think the issue is irrelevant since I'm not "distributing" anything, but the Python code I'm writing may be viable for distribution as a desktop application and this is where the GPL starts bothering me.

Thanks

+3  A: 

I believe MySQLdb is dual-licensed under GPL or the Python license. The Python license lets you distribute binaries without source. The README in source distribution says:

License
-------
GPL or the original license based on Python 1.5.2's license.
RichieHindle
I'm familiar with this line, but what does itmean? When it comes to legals, I always assume the worst, and for me that means that I read this line as "GPL"...
Roee Adler
As far as I'm aware, it means you get to chose which license to distribute the code under - but I'm not a lawyer. Your best bet would be to email the copyright holder and ask.
RichieHindle
I asked the copyright holder @farcepest regarding this question: "the answers given there are correct"
Rick Copeland
OK, cool! .
RichieHindle
+4  A: 

You seem to misunderstand GPL. (Disclaimer: I am not a lawyer)

  • You can charge money for your application, even if it is licensed under GPL. GPL allows you to sell your code.
  • You don't have to distribute anything, even if your code is licensed under GPL.
  • You can't reliably distribute python code without distributing the source anyway.
  • Mysqldb is dual licensed. You may choose between python's license or GPL license.

EDIT: To clarify point 2, since some people got confused: You don't have to distribute anything, but if you do distribute something, you have to distribute the source code of it.

nosklo
Okay, got it, thanks
Roee Adler
@nosklo: Point 2: He's talking about code that "may be viable for distribution as a desktop application". If he distributes GPL code in binary form, he must also make the source code available to whoever has the binary.
RichieHindle
...and that means source code for the entire binary. If the binary is a mixture of GPL code and his own code, he must make his own source code available. This is why the GPL gets called "viral". (If MySQLdb is indeed dual licensed then this is moot, but I think your answer is misleading.)
RichieHindle
@RichieHindle: You can't distribute binary python code in a reliable way. You must to distribute the source code for it to work anyway, regardless of the license used.
nosklo
@nosklo: That's a whole different argument. What I'm saying is that Point 2 in your list, "You don't have to distribute anything, even if your code is licensed under GPL" is wrong.
RichieHindle
@RichieHindle: well, it is not wrong. Nobody forces you to distribute anything. If you want, you can keep the whole code for you. However **If** you decide to distribute, then you must follow the license rights/restrictions on distribution (obviously). What I mean is that you're not forced to distribute your code just because it is licensed on GPL, that is completely optional.
nosklo
@nosklo: Rax explicitly talks about "distribution as a desktop application" in his question. If he is going to distribute his application, then the GPL *does* force him to distribute his source code. Please re-read your answer in the context of Rax's question - I believe it's misleading at best.
RichieHindle
Please clarify the answer, it is indeed a bit misleading (even though the intended meaning is correct).
nikow
@niko, RichieHidle: I added a note to the answer, thanks for your comments.
nosklo