MySQL Writes Exception for PHP in License
ryanjensen writes "According to an article on News.com, MySQL wrote an exception into its license to allow PHP to use its libraries. From the article: 'Because MySQL owns copyright to all the MySQL code, it can include additional license provisions to its software. The new provision, called the Free and Open Source Software License Exception, enables people to use MySQL client libraries with other open-source projects under other open-source licenses other than the GPL.'"
This is good news for all those PHP kids out there. It is nice to see some licenses being made specifically more lenient, and I don't doubt this has had something to do with the recent change in the XFree86 license and how people reacted to that. Well done MySQL, your domination is secured :)
Or, in this case no quids were involved (a quid is UK slang for a British pound...)
:-))
It restores my faith in people when something like this happens - MySQL and PHP are the joint foundations on which a huge number of OS projects depend. Way to go MySQL
Simon
Physicists get Hadrons!
I'm a Python guy and I feel fucked over.
...but I'm sure some GPL zealots might.
To me, it looks like an issue of pragmatism and the MySQL folks apparently aren't hung up on religious adherence to GPL principles.
It's an issue of maximum applicability, to me.
PHP and MySQL are very close. One can't really thrive without the other, so if one adopts a more restrictive license, both lose out. And considering the massive penetration of PHP and MySQL, neither can risk this kind of thing.
Why do people still keep using MySQL, in spite of their atrocious license changes? Or does everyone insist to keep on using the old version?
Postgresql is there, and is as free as can be.
BTW, why can't people just fork the old version of MySQL and use any license they want? Lack of skills?
Save your wrists today - switch to Dvorak
This license exception is BS. It requires that "The Derivative Work does not include or aggregate any part of the MySQL Server" where "the term 'include or aggregate' means to embed, integrate, bundle, aggregate, link, distribute on the same media or in the same packaging, provide with instructions to download or automate any of the preceding processes." This effectively means that any non-GPL program that links to MySQL client libraries cannot be distributed in an operating system distribution with the MySQL server. It also means that the documentation for such packages can't even mention "www.MySQL.com" because that would count as "provid[ing] with instructions to download".
I really enjoy using PHP for web development. I find that you can't beat scripting languages for ease of maintenance, quick turnaround time, and tweakability.
One of the big reasons I chose PHP was the availability of "LAMP": Linux, Apache, MySQL, PHP. I know these technologies have been around for years and will be around for many more years, so it's an easy sell to management. There's plenty of talk on the newgroups if you ever get stuck and PHP's online documentation with user comments is priceless. I think more documentation should follow this example.
That aside, the pure performance and reliability of the above is excellent. These technologies were made to work together, and from what I hear the teams even collaborate to make sure their stuff stays working together. It really shows.
Years ago I worked on ASP/SQL Server solutions and where you had to go with native code for high-performance with ASP, I find that with PHP it is high performance on its own.
Great job to everyone who has helped put together these technology solutions. A shining example of the high quality that can come out of the collaborative efforts of many.
Im sure i saw this within the Mysql license over 2 months ago. Its good to see mysql making exceptions for other opensource projects, and acknowledging that there are other non gpl licenses. I wonder if the PHP crew will reevaluate the decision to remove mysql client from php5?
FOSS license Exception. Scroll down for the table.
Will Debian now remove MySQL or move it to non-free?
~Darl
I have no problem with the making such a license change per se--they have the right to do it and it doesn't limit the existing license in any wqy.
But, the approach itself strikes me as unnecessarily complex and short-sighted. There is a growing list of compatible licenses in there--who is going to keep that up to date? What's going to happen when MySQL disappears and nobody can make such little changes to the license anymore?
A fairly straightforward compromise would be to put them under the LGPL license. I think that would also make sense because it would get vendors of commercial tools to incorporate the client libraries into their software. But it seems like MySQL's business strategy is getting into the way there because they appear to want to make money from licensing even the MySQL client libraries that way.
This situation seems vaguely analogous to Qt's GPL license: in both cases, a commercial owner of an OSS project is choosing the GPL license as an encumbrance in order to be able to get money from some class of commercial users. In the case of MySQL, they are trying to limit the "collateral damage" to non-GPL compatible OSS projects by making exceptions. But in both cases, I suspect that having these libraries under the GPL is itself a suboptimal strategy because it limits the adoption of OSS. For things like GUI toolkits and database client libraries, it seems best for OSS if companies incorporate them into their commercial software as much as possible, and that means choosing a license more liberal than the GPL. But, again, commercial interests prevent that in these cases.
Well, I personally had just assume that the MySQL client libraries were LGPL or BSD. Thanks for bringing this up. Not the license change itself, but the fact that it has brought the MySQL license situation to my attention, is a reason for me to think about using SQLite and PostgreSQL more seriously.
The moral of the story is clear: don't contribute to dual licensed projects, or any project where there is a clear single copyright owner. They have the ability to re-license at will, profiting from your work as you please and not having to offer in return what the original distribution license intended (e.g. GPL).
MYSQL just received $19.5 million in venture capital funding.
While this could and should be great, it remains to be seen what impact the influx will have.
What heavy programming? After all, can't you just take it, change a few lines and call it OurSQL?
Here's what I do: Bitty Browser & Andromeda
The RH enterprise 3, releases has all MySQL v3.
The MySQL changelog says:
* Thu Jul 03 2003 Patrick Macdonald 3.23.57-1
- revert to prior version of MySQL due to license incompatibilities
with packages that link against the client. The MySQL folks are
looking into the issue.
As for use on your own website, if you aren't planning on selling it or seling it unmodified, you can do whatever you want to it, regardless.
But if you plan on selling it packaged, even before this add-on license, as long as you distribute the code with it, thus adhering with the GPL, you're in good shape.
Selling it with a PHP solution is fairly straightforward...you are more or less just selling the PHP code, and telling them that it needs to run on a MySQL database. That's kinda like writing a program that runs on Linux, and telling them that they need to install linux (or you'll gladly install it for them) to run this program. You aren't really "Selling" the database.
But even if you are, as long as the GPL is upheald, you're right as rain.
How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
Since the first example you reached for was Microsoft that makes me wonder if there really are better choices in the OSS/database world.
If your intent is to foster contributions to your project, then aren't you in danger of losing that by allowing more liberal (and potentially, more closed) licenses to be used with your project?
Umm... no. For example, if the client libs were LGPL, any improvements to them would need to be public, but any program using those libs wouldn't need to be. Obviously, even with the new clause, improvements to client libs would need to be public.
Licensing a library as GPL is motivated purely by the prospect of profiting from dual-licensing the library to companies that can't release their code under GPL.
Save your wrists today - switch to Dvorak
I think the phrase you're looking for is "GNU Dogma." Correct?
MySQL changed the license of the client libraries to GPL from LGPL. This meant that anything which linked to the client libs had to be GPL. The non-GPL crowd (including PHP) got in a huff about this.
Years ago I worked on ASP/SQL Server solutions and where you had to go with native code for high-performance
Let's not forget that oh so common feature of Formatting Dates in ASP, you need to link native code for the "Format" function in VB (since FormatDate gives you a whopping 4 options) to get some even remotely as close to the power of the simple "date" function in PHP. Pretty shitty. God I hate ASP.
How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
As much as there are some FSF fans wish that the GPL was the only software license, it's not the one-size-fits-all solution for everybody. That's why the LGPL exists. That's why Creative Commons exists. That's why many common open-source programs have forked the GPL to make it their own.
We can debate the finer points of whether such changes should be made or not, but let's not treat the GPL like it's a religion. It's not perfect.
Lots of reasons.
Scales better with large numbers of simultaneous connections, larger tables, etc.
Mature transactions. MySQL just gained these, but they aren't in heavy use. For applications where consistency matters, you need either transactions or locks. In MySQL you spend a lot more time coming up with locks and resolving deadlocks.
Stored procedures. Sometimes it's useful to put code right in the database that can abort an invalid transaction or perform some other automated action. With MySQL you have to put this code in your PHP application, everywhere you access the database, rather than just once in the database. Much more code, much more debugging, and often much less efficient. The primary procedural language (PostgreSQL supports several) is Pl/PgSQL, essentially the same as Oracle's Pl/SQL. If you learn Postgres, you're well on your way to learning Oracle.
Multi version concurrency, like the big commercial databases.
A query optimizer that gets much better performance as your queries get complex. MySQL often can't do the same complex queries at all, and when it can does them naively at unusable speeds.
Rule system, implementing views and other big-iron features, allowing applications to be simpler.
Correct behavior under crash scenarios or disk full. I've never had PostgreSQL corrupt a database. MySQL will occaisionally, so your backups will get more exercise, and you'll have lost some data.
subselects. You can often contort your MySQL queries to work around the lack of full subselects, but again, you do more work, and there isn't always a workaround.
Foreign keys (implemented using triggers). These allow you to ensure that your data follows certain relationship rules (every sale points to a valid buyer for instance) at the database level. In MySQL you just have to make sure in PHP (outside the database) that you always generate good data.
Mistakes happen, Postgres lets you program more defensively.
Temporary tables. Very useful when building a complex operation inside a transaction.
Security and authentication. Postgres has a very wide array of authentication methods, ranging from allow these IPs to do anything to local sockets, with SSL available to use to encrypt and authenticate as well.
postgres is not as good at altering tables in production, especially if you've used the advanced features like triggers and rules (you may end up copying the data, deleting the tables, and reloading them, all inside a transaction of course).
MySQL client libraries have been included/bundled with PHP for a long time now, and MySQL support was enabled by default. As of PHP 5, these client libraries are no longer bundled, and MySQL is not enabled by default. This essentially makes MySQL support like any other PHP extension, nothing special. To install, simply download MySQL and configure PHP with --with-mysql. Not a big deal. You do the same for PgSQL, CURL, TIDY, GD, etc.
q .databases.mysql.php5
An official FAQ on this issue can be seen here:
http://us2.php.net/manual/en/faq.databases.php#fa
You'll notice that the license issue isn't the only reason PHP 5 stopped bundling these MySQL libraries so I assume despite this license change PHP 5 will not bundle MySQL by default. One might say the marriage continues to exist...but that it's no longer "forced" onto people.
MySQL changed the license of the client libraries to GPL from LGPL.
Then how come nobody forked the libraries? You could take the new server (where it doesn't matter if the license is GPL or LGPL as you are not going to link it against anything) and the old libraries that were released under LGPL. Then modify those libraries as much as necesarry to work better with the new version of the server. And release the modified libraries under LGPL.
Do you care about the security of your wireless mouse?
Well for those of you that don't like MySQL's restrictive licenses and want a quick little SQL db, PHP 5 is shipping with SQLite.
An interesting little database to say the least.
How could I say to men: "Speak louder, shout! For I am deaf!"? -Ludwig van Beethoven
So does this mean we could see an embedded version of MySQL in PHP? With PHP 5 embedding SQLLite MySQL stands to lose a good market share.
You say things that offend me and I can deal with it. Can you?
Writing good HTML -especially XHTML & CSS- is entirely different from writing code. HTML is a markup language, not a programming language, and excelling in it requires an entirely different skillset -it's more akin to designing a database than coding.
Being able to write a hashing algorithm doesn't make you suitable for all coding jobs.. in my experience, there are high-level coders and low-level coders and both are necessary.
This is not to say there aren't a lot of completely useless people out there -probably more doing ASP, VB and such than anything else, but a lot of PHP users, too. However, many if not most of the incompetent PHP coders are not making a career of it, unlike the ASP/MCSE people, but rather making their hobby/personal sites.
Marxist evolution is just N generations away!
For me the situation with MySQL's licensing shenanigans is quite sad. For small commercial software development shops who have been loyal to MySQL over the past few years, it's sad to have to say goodbye.
It's fine that I have to pay money for a database server and all, but the GPL-licensed client library makes light usage of MySQL impossible for small software vendors. Even Microsoft SQL server has LGPL client libraries available (like freetds)! I can't see how MySQL can compete with other commerical software vendors that have less restrictive client-library licensing.
For the MySQL folks to claim that the GPL is binding through a regular socket connection is quite a strech at best, and a slap in the face to those of us who write [L]GPL-licensed software.
I can also quote. From the GPL, this time:
However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
This quite clearly states that core operating system functionality provided by the vendor is exempt from the GPL's linking clause, provided it's a de-facto part of the vendor's operating system. So, you can use all Win32 calls and all system DLLs on Windows in GPL software. You can compile and link against Solaris's non-free libc without worry.
Does my bum look big in this?
Postgresql is underdocumented, the MySQL online documentation simply excels.
Complete and utter bullshit. How is this for documentation? There are also excellent books about it.
There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.
That's a circular argument: everybody uses MySQL because everyone else does. (I can name a certain OS that benefits from this situation...) A good DBA would have no problem picking up PostgreSQL in a matter of days. I don't care about trained monkeys.
There is no readily available workforce that has actual Postgresql knowledge. There are on the other hand buttloads of people available that can drive average sized MySQL installations for cheap money.
Again bullshit. PostgreSQL supports multiple databases per server very well, including separate access controls for each db.
Postgresql replication is regarded mostly experimental and is not properly integrated with the server. In larger MySQL deployments, replication is often used for load sharing (direct read only queries against any replica), and for backups.
Replication (in both MySQL and PostgreSQL) is mostly useless since it is asynchronous. That is, when you commit a transaction you can not be sure if/when it gets propagated to the slaves. Therefore, if you read from a slave you can never be sure that it's up to date. I'll grant you that there are certain situations where this can be tolerated, but for high availability mission critical sites, it's useless. For that you need distributed transactions. The only open source DB that supports them is firebird.
BTW, I'm glad you mentioned backups. PostgreSQL , just like any real database, can do on-line backups. However, to back up MySQL, you need to read-lock all the tables! The only way to get around that is by setting up replication and backing up the slave.
Postgresql already has many features MySQL either just got with 4.1 or is planned to get in 5.x. That is useless, though, if you do not need these features, but need to deploy in a hosted standard environment, relying on the available workforce.
Yeah, I'm sure you don't need transactions, subselects, triggers, stored procedures, or even *gasp* correct and predictable behaviour.
But you are right about one thing: everybody uses MySQL because everybody else does.
___
If you think big enough, you'll never have to do it.
-Rob
Marriage doesn't have to suck!
So, MySQL is distributed under the GPL, and PHP is distributed under a license incompatible with the GPL.
How is this MySQL's problem?
Slashdot is jumping the shark. I'm just driving the boat.
So that explains all those exceptions I see on articles linked from here.... And all this time I just thought they were slashdotted!
Is anyone tempted to release some cool software/music/stuff/work with a default restrictive licenses (must pay etc etc), but have some exceptions like:
You are free to distribute Derivative/Identical Works as long as:
1) Every Feb 1st and August 17th you go to a public area with at least 20 strangers present, stand on one leg and yell "foobar bubble bubble!" including the double quotes.
Or
2) Every full moon you infringe the MySQL and Microsoft software licenses, and email them a goatse.cx/tubgirl pic.
Or
3) You do an anonymous, random (and different) quirky good deed to a random (and different) stranger every month - only counts if the target will likely think it is good.
AND you claim that Al Gore is the actual author of the works.
Sheesh.
Why do mysql supporters always bring up how version 4.1 or 5 will support a feature. It's utter bs to compare features that are available on a stable release that have been around for several years with features that are in either in alpha code (mysql 4.1) or a future version (mysql 5.0). Not to mention that features that were supposed to have been in mysql 4.0 have been pushed back to 4.1 and may get pushed back again.
By that logic, postgresql has point in time restore (PITR) support which mysql hasn't even mentioned. PITR lets you restore the database to a given point in time. E.g. your program went crazy and deleted a bunch of entries that you need. With PITR you restore the database back to just before the data was deleted. Postgresql 7.5 is going to support this.
Incidentally, mysql's speed seems to be missing if you start looking at performance with multiple clients querying the database or when queries get more complicated. Mysql also tends to be okay with incorrect or wrong behaviour if that increases speed.
"When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
What are you talking about? MySQL AB changed the client libs from LGPL to GPL. That messed up a lot of things but it theoretically generates more commerical licenses for MySQL AB.
Add in the unusual gpl interpetation by MySQL AB where programs that use mysql for commericial use are required to get the commericial license and where distribution is interpeted to be copying the program between servers even within the same company and you have a company that is doing it's best to create FUD and force companies into buying commericial mysql licenses.
Oh yeah, the developers made vague noises about how people reverse engineering the client/server protocol and creating an alternate license may get sued by MySQL AB.
How's that for good company policy?
"When you sit with a nice girl for two hours, it seems like two minutes. When you sit on a hot stove for two minutes, it
By the way, bipolar disorder has a mortality rate of 20% which is higher than those of most heart diseases and cancer. In other words, if you have a bipolar kid and a kid with cancer, it is likely that the crazy kid will outlive the cancer boy. And manic depression is a much easier disorder to deal with than schizophrenia, despite what you may have deduced from watching A Beautiful Mind. If you're schizo, you're basically fucked.
Comparing anything to perfection is unproductive; it serves to reinforce our biases by presenting us with a false dichotomy (you can have whatever argument is being proposed or you can have perfection, which is never available). Let's look at specific claims.
Please name who these people are and cite the evidence that gives you this impression.
That explanation barely gets into why the LGPL exists. The Creative Commons doesn't recommend their licenses for software. The GNU project started over a decade before the open source movement began and the GNU project was founded to talk about software freedom, not a development methodology. I'd also be interested to learn who, besides the Affero General Public License has "forked" the GNU GPL. The Creative Commons has listed the GNU GPL, not forked it.
Who, exactly, is doing this and what, exactly, are they saying?
Digital Citizen
Why do so many MySQL zealots keep claiming that 4.1 and 5.0 are ready for production? Even MySQL AB doesn't make such a claim. Their web site clearly states:
Production 4.0.18
Development 4.1.1
Preview 5.0.0
So saying that "new installations should use 4.1.x" is like saying that everyone should have run Linux 2.5.x, or the latest CVS version of Apache.
isnt the bsd license opensource?
because.. this could be a loophole in the license.. since a company can take bsd source code and close source it.. thus using mysql libraries in their proprietary works.. right?
correct me if I'm wrong.. I dont focus on licensing issues much.
Someone explain to me how this all works.
One of the big supposedly pluses to GPLed code is that many people can contibute. So, if I GPL the code AND try to release it under another license then the non-GPLed version can not have any of the benefits of contributions, bug fixes, etc from the GPLed version since those contributions are GPLed and not available under the other license. Those contributions belong to the individual contributors, not the person or team that made the original code.