in reply to Protecting our work

if you are using MySQL, you have to release your code as GPL or buy a commercial license from them.

Replies are listed 'Best First'.
Re^2: Protecting our work
by Joost (Canon) on Aug 29, 2005 at 00:40 UTC
    That's typically only true only if you link to a libmysqlclient version later than 3.23 (maybe later - of the versions I have on my machine right now, 4.0.24 is GPL and 3.23 is LGPL licensed). It's permitted (with a few restrictions) to link any program to an LGPL library. By the way, there seems to be some question as to weather dynamic linking can legally be seen as a derivative work (though I would not try to put my eggs in that basket).

    Also, you have no obligations under the GPL or LGPL if you don't distribute your work - both licenses are only activated by distributing a (derivative) work. Merely using MySQL does not force you to do anything.

Re^2: Protecting our work
by dragonchild (Archbishop) on Aug 29, 2005 at 02:40 UTC
    Actually, it's if you "bundle" MySQL in with your non-OSS application, then you trigger the commerical side of MySQL's dual-license and you have to puchase a commerical license. However, merely the use of MySQL on a customer's machine doesn't trigger anything. The customer has chosen to install MySQL as part of their system and then chosen to use your application. You haven't bundled anything. The same goes for the web application you're hosting on your machine and other people pay you to use it.

    In other words, unless you're distributing a Win32 app for the masses, the commerical side of MySQL's license is usually irrelevant.


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      No, an application that links to GPL code (as last versions of MySQL client library are) can only be distributed as GPL'd.
        Here's an interesting interpretation from Sleepycat (BerkeleyDB). While it might not be 100% aplicable to Mysql's license, the definition of the term application would be key here.

        Do I have to pay for a Berkeley DB license to use it in my Perl or Python scripts?

        No, you may use the Berkeley DB open source license at no cost. The Berkeley DB open source license requires that software that uses Berkeley DB be freely redistributable. In the case of Perl or Python, that software is Perl or Python, and not your scripts. Any scripts you write are your property, including scripts that make use of Berkeley DB. None of the Perl, Python or Berkeley DB licenses place any restrictions on what you may do with them.

        From http://www.mysql.com/company/legal/licensing/:

        The Commercial License, which allows you to provide commercial software licenses to your customers or distribute MySQL-based applications. This is for organizations that do not want to release the source code for their applications as open source / free software; in other words they do not want to comply with the GNU General Public License (GPL). (emphasis mine)

        For those developing open source applications, the Open Source License allows you to offer your software under an open source / free software license to all who wish to use, modify, and distribute it freely. The Open Source License allows you to use the software at no charge under the condition that if you use MySQL in an application you redistribute, the complete source code for your application must be available and freely redistributable under reasonable conditions. MySQL AB bases its interpretation of the GPL on the Free Software Foundation's Frequently Asked Questions.

        Looks like we're both slightly in error. (I based my conclusions on the class I took a year ago.)


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re^2: Protecting our work
by ghenry (Vicar) on Aug 28, 2005 at 22:13 UTC

    No you don't. That's like saying if you use Linux to run your product, your whole product becomes GPL'd.

    Walking the road to enlightenment... I found a penguin and a camel on the way.....
    Fancy a yourname@perl.me.uk? Just ask!!!
      That's like saying...

      No, it isn't.

      MySQL is distributed under the GPL license, and specifically, the MySQL client library is distributed under the GPL license and so, any code that links that library (as DBD::MySQL does) has to be released GPL'ed.

      This document explains it all.

        Yes, these are MySQL's words:

        When your application is not licensed under either the GPL-compatible Free Software License as defined by the Free Software Foundation or approved by OSI, and you intend to or you may distribute MySQL software, you must first obtain a commercial license to the MySQL product.

        In general, if a program uses a GPL'd peice of software, and does not link into or modify it, or use any of it's code, then its fine and does not get GPL'd.

        The GPL is not viral and General Public Virus

        Also from that page:

        If you develop and distribute a commercial application and as part of utilizing your application, the end-user must download a copy of MySQL; for each derivative work, you (or, in some cases, your end-user) need a commercial license for the MySQL server and/or MySQL client libraries.

        I don't know how MySQL get away with saying the above, because what they are saying is rubbish. Why can't another person download a copy of MySQL when it's GPL'd. I suppose it's the terms you except when you use it. That's why I use PostgreSQL, and for other obvious reasons.

        Walking the road to enlightenment... I found a penguin and a camel on the way.....
        Fancy a yourname@perl.me.uk? Just ask!!!