Non GPL Python MySQL Client Library.

L

Lothar Scholz

Hello i want to write a commerical small tool that must access a MySQL
database but i can't afford the License Fee for the original MySQL
driver. In the Ruby world there exist a small but working pure ruby
library that can be used without buying a license or putting your
application under the GPL.

Is there anything like this in the Python world ?
 
C

Christopher T King

Hello i want to write a commerical small tool that must access a MySQL
database but i can't afford the License Fee for the original MySQL
driver. In the Ruby world there exist a small but working pure ruby
library that can be used without buying a license or putting your
application under the GPL.

Is there anything like this in the Python world ?

Libraries licensed under the GPL can be used without GPLing the code that
uses them - you only have to GPL any extensions you make to the library.
Assuming that works for you, you can use (GPLed) mysql-python:
http://sourceforge.net/projects/mysql-python/
 
C

Christopher Weimann

Libraries licensed under the GPL can be used without GPLing the code that
uses them - you only have to GPL any extensions you make to the library.

I thought that was only true of LGPL not GPL.

--
 
H

Hank Fay

Except that Python does not "link" the library, it simply calls it. The
distinction made in the document seems to be whether the library is linked.
When module A calls module B, is that different than calling module b from
the shell, in terms of viral infection? Probably a point for lawyers to
debate.

--
 
D

David Fraser

Christopher said:
Libraries licensed under the GPL can be used without GPLing the code that
uses them - you only have to GPL any extensions you make to the library.
Assuming that works for you, you can use (GPLed) mysql-python:
http://sourceforge.net/projects/mysql-python/

I would take this advice with caution, I don't think it's true ... the
GPL generally implies that applications that use libraries are
derivative works. It depends how you define terms, but read the full
text of the GPL to make your own decision...

I think the story with mysql is that their libraries to connect *used*
to be LGPL (which the above statement would have been true about) but
they changed the license. You could always try and get hold of the old
version and adapt it to work with the latest mysql :)

David
 
M

Mike C. Fletcher

Christopher said:
I thought that was only true of LGPL not GPL.
Generally, yes. The LGPL is the library which explicitly allows client
code to use the library and be distributed with it without the client
code being released under the GPL. There is, however, a loophole of
sorts for those wishing to distribute code which can use GPL libraries.
Basically, no one can assert copyright ownership over something if it
doesn't include (or resemble) their own code. Code which merely *could*
be used with a GPL library, but does not actually include any GPL code
is likely safe from prosecution.

Because it's possible to write another library which gives the same API
as the GPL'd code, you can quite reasonably specify that it is *that*
(non-GPL, and potentially still planned) code to which your library is
written. That's likely a legal fiction (which is always dangerous in a
court), but computer science is a field of abstracts, and the posit of
such a library eventually being developed is a perfectly valid way to
design and develop a system, and you would be perfectly within your
rights under the GPL to use GPL'd code as a way to test your code until
you've written the posited library.

The end-user, as well, can make the decision to use your code with the
GPL version of the library. The thing there is that the end-user
decides to combine the GPL code with the non-GPL code (not you). You
need to be careful that the process is not so automatic that you are
*effectively* distributing the two packages together (and that's likely
a blurry line, but forcing the user to download and install the package
manually is likely well on the permissible side). The GPL is primarily
about limiting the rights of programmers, so it explicitly allows a
*user* to combine GPL and non-GPL code themselves.

However, before you start doing this, (i.e. violating the spirit but not
the letter of the license), I would strongly suggest that you look at
the non-GPL libraries. PostgreSQL, for instance, has a far more liberal
license, and PyPgSQL is similarly licensed. Their developers are quite
happy to let you create closed-source software based on their
work-product. Open Source projects are primarily of benefit because of
the developer community, and to be seen as violating the spirit of their
community is *not* a good way to treat your suppliers.

<rant>And developers; stop GPLing libraries which are essentially
commodities. The GPL is effective when you are dealing with code which
is so compelling and unique that it is easier to buy into the FSF's
manifesto than to switch or write a substitute. With commodity code
(e.g. database drivers, GUI libraries) all you are doing is splitting
the community. Almost everyone can work on and improve LGPL libraries
without blinking, but GPL is a PITA when working on commercial products
and often forces reimplementation... when it's commodity code that's
just entirely wasted effort.</rant>

Oh, and in case you're wondering, no, I don't tend to use LGPL for my
own code. I figure I'm giving a gift to the world, so why would I start
attaching strings...

Caveat reader,
Mike

________________________________________________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://members.rogers.com/mcfletch/
blog: http://zope.vex.net/~mcfletch/plumbing/
 
H

Harry George

Christopher T King said:
Libraries licensed under the GPL can be used without GPLing the code that
uses them - you only have to GPL any extensions you make to the library.
Assuming that works for you, you can use (GPLed) mysql-python:
http://sourceforge.net/projects/mysql-python/

Also note that the extensions have to be separate chunks of code, not
just derivatives of the original:

From the GPL:
"These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.

"Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program."
 
A

A.M. Kuchling

Hello i want to write a commerical small tool that must access a MySQL
database but i can't afford the License Fee for the original MySQL
driver. In the Ruby world there exist a small but working pure ruby

It seems much simpler to choose PostgreSQL (or perhaps Firebird) instead of
MySQL; neither database presents such an irritating licensing issue.

--amk
 
?

=?iso-8859-1?Q?Fran=E7ois?= Pinard

[Mike C. Fletcher]
<rant>And developers; stop GPLing libraries which are essentially
commodities. The GPL is effective when you are dealing with code
which is so compelling and unique that it is easier to buy into
the FSF's manifesto than to switch or write a substitute. [...]
GPL is a PITA when working on commercial products and often forces
reimplementation... when it's commodity code that's just entirely
wasted effort.</rant>

GPL is a likely PITA for whoever does not like it. If one doesn't like
the GPL, then one should be congruent enough to merely not use GPL'ed
code, instead of spending sweat and blood, trying to bend it. The
original plan of the GPL is to have so much good and attractive code
flying around, which is GPL'ed, than people will give in free software
instead of doing it all over again. That plan went pretty well so far.

Libraries are commodities, but so is a lot of non-library software.
Developers who consider that the GPL brought good software to them, may
well choose to produce some GPL code in return, in so contributing to
the critical mass. You invite people to stop GPLing libraries because
it annoys those who do not like the GPL. I would rather read this as a
practical proof that the GPL serves its purpose: if people against the
GPL were not a bit bitten by it, the GPL would be useless.

Sometimes, people want the butter and the money of the butter (from a
French idiom: "Le beurre et l'argent du beurre"). They want everything
without giving anything back. The GPL is there to remind people that
the overall game is a give-and-take. It is something useful.

P.S. - Please do not read me as saying that the GPL is the only path to
free software, there are other good free software licenses too. But the
GPL is not "wrong", and developers are not "bad" because they choose it.
 
M

Mike C. Fletcher

François Pinard said:
[Mike C. Fletcher]


<rant>And developers; stop GPLing libraries which are essentially
commodities. The GPL is effective when you are dealing with code
which is so compelling and unique that it is easier to buy into
the FSF's manifesto than to switch or write a substitute. [...]
GPL is a PITA when working on commercial products and often forces
reimplementation... when it's commodity code that's just entirely
wasted effort.</rant>

GPL is a likely PITA for whoever does not like it. If one doesn't like
the GPL, then one should be congruent enough to merely not use GPL'ed
code, instead of spending sweat and blood, trying to bend it.
Which was the thrust of my suggestion elsewhere in the message. Free
not just users, but developers as well. But the implication of what you
just advocated is that the community (which consists of both libre and
non-libre developers) *must* develop two different versions of the
software. In other words, they *must* duplicate the effort of development.
The
original plan of the GPL is to have so much good and attractive code
flying around, which is GPL'ed, than people will give in free software
instead of doing it all over again. That plan went pretty well so far.
To some extent, sure, and for some project areas. But there are lots of
cases where people look at the GPL requirements and say "no, I have to
re-implement that"... it's that waste that bothers me. Particularly as
a BSD-style developer of libraries, I find it annoying to have to
re-implement trivial GPL libraries just to avoid infecting my users for
a few hours of convenience on my part.

I don't argue against GPLing KDE, GCC, or the Linux Kernel, but GPLing
an ever-so-slightly-better PostgreSQL client library... I mean, really,
why? Developers aren't going to look at that and decide to convert,
they'll just go with one of the non-GPL-encumbered libraries and split
the pool of developers in half, slowing humanity's progress by just that
much in order to impose a particular philosophical position on others.
This is what I mean by a "commodity" library.
Libraries are commodities, but so is a lot of non-library software.
Developers who consider that the GPL brought good software to them, may
well choose to produce some GPL code in return, in so contributing to
the critical mass. You invite people to stop GPLing libraries because
it annoys those who do not like the GPL. I would rather read this as a
practical proof that the GPL serves its purpose: if people against the
GPL were not a bit bitten by it, the GPL would be useless.
My concern is the waste of effort. The simple fact is that there are
groups doing proprietary software. For them the GPL simply isn't a
choice. Instead of getting their contributions added to an existing
library, they must develop their own library. LGPL (or BSD/MIT), on the
other hand, allows everyone to use the same code base, contributing and
extending it. It avoids the fragmentation and waste.

The FSF's original strategy with the GPL assumes that the library is of
such value that it is reasonable to go the FSF way rather than
re-implement. When the libraries are basically trivial, they don't even
begin to surmount the barrier to entry, so all you're doing is forcing
pointless fragmentation. The LGPL was developed precisely because there
are lots of situations where that assumption just isn't true, and it's
more valuable to get the contributions of everyone to the library than
to force the bifurcation of libraries. If the FSF, which represents the
most extreme view of the situation is having to admit that there is a
need for such a license I'd submit that there's a pretty good argument
for those not occupying the ideological extreme to seriously consider
the argument for every library they develop.

As for the idea that the goodwill engendered by GPL software will make
others want to GPL their code, the same argument holds for BSD and/or
MIT, no? I'd argue that it applies to an even greater extent, because
the BSD/MIT software tends to treat the end-developer as an adult,
rather than a recalcitrant child.
Sometimes, people want the butter and the money of the butter (from a
French idiom: "Le beurre et l'argent du beurre"). They want everything
without giving anything back. The GPL is there to remind people that
the overall game is a give-and-take. It is something useful.
If you like it, feel free to continue liking it ;) . As I mentioned, I
prefer the BSD licensing scheme. And just to clarify, the GPL isn't a
reminder, it's an attempt to *force* give-and-take. That's perfectly
fine if that's your goal, but don't mistake it for a touchy-feely
reminder :) . The question is whether you feel the need to impose your
desires, or whether you rely on people's better nature.
P.S. - Please do not read me as saying that the GPL is the only path to
free software, there are other good free software licenses too. But the
GPL is not "wrong", and developers are not "bad" because they choose it.
Oh, come on, it's much more fun if we sling about huge generalisations
and moral characterisations. I'll start the ball rolling:

The GPL represents an attempt to enforce maturity on others, while
the Python, BSD and MIT licenses assume the maturity of the
audience. Whether there is a moral superiority depends on whether
you consider the proper way to improve society to be exemplary
conduct and education or the external imposition of law (more
basically, are people generally "good" or "evil").

It would seem that the more "Zen" (and I use the term loosely)
approach of living a good life, and giving your gifts to the world
without attempting to impose your will on another is the path taken
by the Python developers, but there are others, such as the Free
Software Foundation who have chosen more of a bondage and discipline
approach to improving society.

The underlying philosophical question is one which every human must
decide for themselves, so there is, perhaps no final solution to the
question. That won't stop me from advocating my position, however ;) .

And that, I think, is where I will stop, as we're obviously a good
little way from discussing Python any more, and this debate really can't
reach any sort of conclusion.

Have fun, and peace out,
Mike

________________________________________________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://members.rogers.com/mcfletch/
blog: http://zope.vex.net/~mcfletch/plumbing/
 
?

=?iso-8859-1?Q?Fran=E7ois?= Pinard

[Mike C. Fletcher]
François Pinard said:
[Mike C. Fletcher]

Hi, Mike, and people!
But the implication of what you just advocated is that the community
(which consists of both libre and non-libre developers) *must* develop
two different versions of the software. In other words, they *must*
duplicate the effort of development.

They only *must* if they do not want to accept the GPL. That's the
price tag of not being part of that particular free software gang.
People are not forced to use GPL'ed programs, but GPL programs are not
forced either to be available for everybody at no condition.

I once had to work on projects which the customer did not want GPL'ed,
and it was part of the discussions with my customer that it would have
to pay for the non-free re-implementation of already available tools.
There, being non-free costed money (and freedom). That's a choice.
To some extent, sure, and for some project areas. But there are
lots of cases where people look at the GPL requirements and say "no,
I have to re-implement that"... it's that waste that bothers me.

The waste comes from the refusal of the GPL. The same as there is
some waste when GNU mandates the re-implementation of already existing
projects so to make them "free" as it wants to define "free". From the
outsider that I am, it sometimes look like big debates over tiny nits.
The simple fact is that there are groups doing proprietary software.
For them the GPL simply isn't a choice.

OK, granted. There is a price to that choice in wasted time, or money.
The LGPL was developed precisely because there are lots of situations
where that assumption just isn't true, and it's more valuable to
get the contributions of everyone to the library than to force the
bifurcation of libraries.

The LGPL was an experiment from the FSF. After a few years, the FSF
decided that the experiment failed, and that the LGPL was not to be used
anymore, at least within the GNU project.
[...] the BSD/MIT software tends to treat the end-developer as an
adult, rather than a recalcitrant child. [...] If you like [the GPL],
feel free to continue liking it ;) . As I mentioned, I prefer the BSD
licensing scheme.

I'm not fanatic about the GPL. But I think it made good things happen
in the realm of planetary software, and so, has some virtues. Each
license wants to be re-quoted all over the place, and would it be only
because of that, they all are irritating. The BSD license was a bit
verbose about Berkeley (this might have changed, I did not check
lately), but I surely rewrote a few modules in `tar' and `cpio' to get
rid of the long blurb, when I was maintaining these, a good while ago.
And just to clarify, the GPL isn't a reminder, it's an attempt to
*force* give-and-take. The question is whether you feel the need to
impose your desires, or whether you rely on people's better nature.

Vern Paxson, the Flex author, did not want the GPL in Flex, but the BSD
license instead, and has been very careful to avoid any usual library
routine in Flex for that reason (like `getopt' and `gettext', to name a
few). We once were arguing licenses over a meal, and he got me laughing
to tears by saying: "I do not want to be forced to be free!".
The GPL represents an attempt to enforce maturity on others, while the
Python, BSD and MIT licenses assume the maturity of the audience.

I contributed to the GPL in the past as a way to recognise and be
thankful for all the GPL brought to me, and I've probably given back my
share by now. But that's not a religion, and I'm not much in politics.
I'd be happy to try the Python license one of these days, if the
opportunity arises :). I'm surely indebted toward the Python community
by now! :) Deep down, any reasonably free license would do...
And that, I think, is where I will stop, as we're obviously a good
little way from discussing Python any more, and this debate really
can't reach any sort of conclusion.

OK, so should I. Keep happy! :)
 
P

Peter Hansen

François Pinard said:
The BSD license was a bit
verbose about Berkeley (this might have changed, I did not check
lately), but I surely rewrote a few modules in `tar' and `cpio' to get
rid of the long blurb, when I was maintaining these, a good while ago.

Pretty darn easy to check these days:

http://www.opensource.org/licenses/bsd-license.php

I prefer the even simpler
http://www.opensource.org/licenses/mit-license.html unless I have
a darn good reason to pick something else. So far it's been
either proprietary or MIT, no other choices required.

This site has all the other popular open source licenses on it,
so now nobody has an excuse for not including any license on
code they release. Yay. :)
Vern Paxson, the Flex author, did not want the GPL in Flex, but the BSD
license instead, and has been very careful to avoid any usual library
routine in Flex for that reason (like `getopt' and `gettext', to name a
few). We once were arguing licenses over a meal, and he got me laughing
to tears by saying: "I do not want to be forced to be free!".

To me that's a very profound statement, not a laughable one.

-Peter
 
P

Paul Boddie

Mike C. Fletcher said:
The FSF's original strategy with the GPL assumes that the library is of
such value that it is reasonable to go the FSF way rather than
re-implement. When the libraries are basically trivial, they don't even
begin to surmount the barrier to entry, so all you're doing is forcing
pointless fragmentation.

That may be the case, but who cares about that if "the libraries are
basically trivial"? I'm starting to believe that these libraries
aren't trivial at all if it results in a lengthy rant about the
situation.

But anyway, contrary to idiotic statements about communism from
various software industry pariahs, when people make their software
available under the GPL, they are merely stating the "price" that they
believe their work has and leaving it to the marketplace to determine
whether that "price" makes it interesting to adopt that software or to
find alternative, comparable software. Shockingly, proprietary
software outfits like Microsoft also (mostly) operate under such
conditions, but I don't hear that many people demanding that Microsoft
stop being so selfish with their licences and to release the source
code for everything they've done, preferably for free, under the BSD
licence.

Paul
 
L

Lothar Scholz

It seems much simpler to choose PostgreSQL (or perhaps Firebird) instead of
MySQL; neither database presents such an irritating licensing issue.

--amk

This is not a possible option. I must use MySQL. 95% (??) of the
databases in the small company world are MySQL based.

Now this world becomes to look more and more like Micrsosoft,
especially if you keep in mind that MySQL AB is now owned by the
worlds 3rd largest Software Company SAP.
 
S

Sion Arrowsmith

A.M. Kuchling said:
It seems much simpler to choose PostgreSQL (or perhaps Firebird) instead of
MySQL; neither database presents such an irritating licensing issue.

Unless your target platform is Windows, in which case Postgres
presents an even more irritating licensing issue, in that not
only do you need a licence, but you need to decide who you're
going to get it from.

(Compatability of Firebird's SQL with any existing SQL you
have lying around is another matter which is giving me a major
headache at the moment.)
 
P

Peter Hansen

Paramjit said:
If you like simplicity, take a look at the Boost license:

http://www.boost.org/LICENSE_1_0.txt

Not bad... sort of like the MIT license I linked to above, only,
uh, slightly less simple, eh? <wink>

It would be nice if they submitted the Boost license to the OSI,
but then they would have to explain why the MIT license wasn't
sufficient for their needs, as it's almost identical.

-Peter
 
D

Dennis Lee Bieber

Now this world becomes to look more and more like Micrsosoft,
especially if you keep in mind that MySQL AB is now owned by the
worlds 3rd largest Software Company SAP.

And when did that transaction take place? The last I'd seen was
that MySQL AB essentially took over development of SAP DB (MaxDB by
MySQL is SAP DB's next version, in effect). SAP had "opened" SAP DB a
few years back, preferring to stick to a core business of supporting
business users with the front-end applications (SAP R/3).

MaxDB is available under essentially the same license(s) as
MySQL.

--
 
M

Mike C. Fletcher

Sion said:
Unless your target platform is Windows, in which case Postgres
presents an even more irritating licensing issue, in that not
only do you need a licence, but you need to decide who you're
going to get it from.

(Compatability of Firebird's SQL with any existing SQL you
have lying around is another matter which is giving me a major
headache at the moment.)
Well, somewhat pointless, as the OP has stated his belief that he must
go with MySQL, but I'm pretty darn sure PostgreSQL is freely available
for Windows platforms (I use it every day). It can be quite readily
installed as part of the CYGWIN environment, and the server thus
installed works nicely with any of the PostgreSQL client libraries for
Python (including PyPgSQL, which is BSD licensed).

Oh well, time to go back to real work now,
Mike

________________________________________________
Mike C. Fletcher
Designer, VR Plumber, Coder
http://members.rogers.com/mcfletch/
blog: http://zope.vex.net/~mcfletch/plumbing/
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top