2009-12-28

Help keep the Internet free

A big part of the Internet is built on LAMP (Linux, Apache, MySQL and PHP/Perl/Python). Now Oracle is trying to buy Sun, which owns MySQL.

It's not in the Internet users interest that one key piece of the net would be owned by an entity that has more to gain by severely limiting and in the long run even killing it as an open source product than by keeping it alive. If Oracle were allowed to acquire MySQL, we would be looking at less competition among databases, which will mean higher license and support prices. In the end it's always the consumers and the small businesses that have to pay the bills, in this case to
Oracle.

Thanks for all the help in the first Save mysql effort. The blog got hit by more than 60,000 users and we where able to generate an approximate number of 10,000 emails to the EC. New answers are still coming in. Of the answers 0.7 % says "I trust Oracle". The rest 99.3 % says that they don't trust that Oracle would be good owner of MySQL.

We have got an indication that this is making a difference within EC, but we don't want to take any chances. We need to counter BOTH the about 400 Oracle customers that Oracle has persuaded to contact the EC AND the political and public pressure Oracle is putting on EC.

This is why we are now launching a world wide campaign in several languages to get a very large number of names that we will give to those taking the decision. This will include the European Commission (EC) and the representatives of the 27 EU Member States who will meet in Brussels in early January to discuss the case. It will also include regulators in other jurisdictions (where it would, unlike in Europe, not be acceptable to announce in public who they are).

We are searching for volunteers to help us with this effort. If you are interested to help, join the #helpmysql IRC channel on Freenode. Help us keep the infrastructure of the Internet free!

In the rest of the blog I will try to answer all the questions and concerns that were raised in the first Help-MySQL campaign. This is not required reading, but may be of some interest for those the want to know a little more about my thinking of the current situation.

I will do this in the form of a self-interview, something a lot of famous bloggers have done in the past.

Q: Why don't you trust that Oracle would be a good owner of MySQL?

Oracle is the company that has the biggest market share in revenues for databases in all customer markets/segments. MySQL is the database with the highest number of installed units in all markets (except in the high enterprise market where it has only a medium size unit share). If Oracle were allowed to buy MySQL then Oracle would almost be in a monopoly position in many market segments.

MySQL is causing Oracle sales losses around 1 billion usd/year (in lost sales to MySQL and because of having to do heavy discounting when competing with MySQL). Why would Oracle have an interest to invest in an open source MySQL long term?

Oracle has studied MySQL a long time and even offered to buy it twice before, but I have not yet seen the logic or explanation from Oracle that would explain how they can continue to develop and support MySQL without cannibalizing the most profitable part of their business.

There is no other logical reason why Oracle would buy MySQL than to control it, reduce the competition with the present Oracle offering and slowly change it to a more closed source product and start charging for it and at the same time eliminate the competition between MySQL and Oracle.

If we examine what has happened lately, we don't get any reassurance that Oracle would be a good owner:
  • Instead of working with the EC to quickly resolve things, Oracle has delayed the process in every imaginable way and instead resorted to public pressure to try to convince the EC to quickly approve the deal.
  • Oracle did not provide any remedies to the EC and the public promises they have published are just empty promises.
  • As part of the new layoffs in Sun, a lot of open source people, including people from the MySQL group have been fired. It seems that Oracle has been part of choosing the people that will be laid off.
  • Oracle as a company is not known for releasing its own software as open source. The open source software it has acquired, like InnoDB, has after being acquired, been developed secretly and slowly which is against how things are done in the open source environment. Larry Ellison's own statement about open source summarizes it nicely "We don't have to fight open source, we have to exploit open source".
  • The main work Oracle has contributed to open source is extending the Linux kernel, but they have done that mainly to ensure that their own products works better on Linux.

Q: Can Oracle change the license of MySQL ?

Oracle can't change the license for old versions of MySQL. They can however change the license for all new code and put a majority of all new development on the new closed source version. Over time the MySQL GPL code from Oracle will be as usable as Betamax video cassettes. It is just not enough to give promises for the next 5 years as MySQL will be needed in the market for years to come.


Q: MySQL is free (GPL) software, how could anyone be able to kill it?

With killed, I mean a project that is not actively developed and for which you don't get bug fixes or support. By not spending money on development of the open source version of MySQL and/or position it in the market as 'not reliable' or 'for testing only' Oracle could make the open source very unattractive for most users. The open source version of MySQL would not be an attractive alternative for long and users will start searching for other alternatives. The easiest alternative, because of no migration costs, will be paying for a closed source Enterprise version of MySQL from Oracle.

GPL only guarantees that the (old) code will always be free. It doesn't guarantee the economics around the project or that anyone can or will develop it further.


Q: But why can't one just a fork (make a copy of it and start developing it)?

MySQL is an infrastructure project, a building block which others either enhance (like storage engines) or which they embedded in other products (think of a GPL library).

You can fork a GPL infrastructure project, but not the economic ecosystem around it. You can read more about it in my earlier blog posting.

The short summary is:
  • The fork can't be used with other products that are using MySQL as a building block for their closed source applications.
  • The fork has to work in an environment where no one has to pay for it. (How can there be enough money to earn for serious development ?)
  • In addition to the above, it's also very hard to do a full fork of a project like MySQL. You need, among other things:
  • Leaders that have passion for the project (Almost all big successful open source projects have passionate leaders that help coordinate and provide a vision).
  • People who know the code and can maintain and extend it.
  • Money: For hardware, company infrastructure, marketing to get known (especially if you fork a known trademark, like MySQL) etc.
To continue develop a fork of MySQL so that it continues to be a competing force in the database industry, you need 5-10 musd/year to put on development. There is very little chance that a fork can get enough money to do the needed development when there are very few companies that can use the fork to generate direct revenue. There are also very few investors that are prepared to put money into a product with no sure income stream and a model that is only based on services.

I don't know if there ever has been a successful fork of a big infrastructure program like MySQL. It is wishful thinking to claim that released under the GPL license is enough remedy for Oracle and "if Oracle is doing something bad" a fork will 'appear' and take care of things.
  • I don't think that competition cases should be judged based on wishful thinking.
Oracle has made a big point that they are not a threat to MySQL because anyone can just fork it. If they really believe this is true, then they would have divested MySQL a long time ago to get a quick clearance of the Oracle/Sun deal and would then have forked MySQL. They would not have let Sun lose 1 billion usd (based on Larry Ellison's estimate) while waiting for clearance because of MySQL.

If MySQL were be so easy to fork, Sun would also not have paid 1 billion for MySQL.


Q: You are doing your own fork of MySQL called MariaDB. How can you do that if it's so hard to fork MySQL?

When we started with MariaDB, MySQL was owned by Sun, which has a lot of reasons to keep MySQL alive and well. We had seen no changes in the policies of SUN regarding licenses or costs. In this scenario it's possible to do a successful fork if you can provide added value to what Sun is doing (like working more closely with the community).

However with an owner that has nothing to gain by developing MySQL, under an open source license, things are totally different.

The reason we are continuing with MariaDB is that all persons in Monty Program Ab are committed to work on the product, for which many of us have worked for close to 10 years.

We don't expect to make a lot of money while doing this, but we hope to be able to ensure that MySQL can continue to live as an open source product for some extended time.

In the discussions now people are very easily saying that "there is no problem, the community will take care of it if Oracle tried to kill MySQL".

I can tell you it's not easy; I have the best possible team working on MariaDB, still it has taken us 9 months to do some small required changes and create an infrastructure to be able to do our first release (we released a beta last month and are now working on releasing a release candidate (RC)).

We are spending 100,000 Euros/months just to keep MySQL alive (as MariaDB) and there are no sure signs we will ever be able to get that money back. Fortunately we have enough funding so we can continue some years with doing this. This is however not sustainable forever.


Q: Why have a lot of companies put money into developing Linux? Doesn't Linux have the same problems with GPL as MySQL?

While Linux is indeed distributed under the GPL, as is MySQL, Linux has an exception that allows anyone to run any kind of applications (including closed source applications) on top of Linux without being affected by the Linux copyright or GPL:

"NOTE! This copyright does *not* cover user programs that use kernel services by normal system calls - this is merely considered normal use of the kernel, and does *not* fall under the heading of "derived work"

Compare this to Sun's statement about commercial licenses:
"For OEMs, ISVs, VARs and Other Distributors of Commercial Applications:
OEMs, ISVs, VARs and other distributors that combine and distribute commercially licensed software with MySQL software and do not wish to distribute the source code for the commercially licensed software under version 2 of the GNU General Public License (the "GPL") must enter into a commercial license agreement with Sun"

The main reasons companies are taking part developing Linux is that they want their hardware and software to work with Linux. They don't make money directly on Linux, they make money on the things around Linux, without being affected by the GPL.

As closed source vendors can't use a fork of MySQL, because with the fork they are affected by the GPL, they will not spend time or money to develop the MySQL fork.


Q: What does your company, Monty Program Ab do?

Monty Program Ab Ab is a development company. We are working on a branch of MySQL, called MariaDB. MariaDB is an enhanced (faster, more features and less bugs) drop-in replacement of MySQL that is only available under GPL.

Monty Program Ab is planned to be a small company with a close connection to its employees and we have no plans to grow to more than 50 people (as after 50, you often lose the family-friendly feeling in the company).

We do mainly development of new features and extensions to MariaDB and MySQL. We also provide level 3 support to companies delivering support on MariaDB.

We don't do and don't plan to do e.g. end user support or training. We don't plan (and we don't want) be a new MySQL AB.

Monty Program Ab is created around the 'Hacking Business Model' that in practice makes the company 'employee owned'. There is no money I can personally make from Monty Program Ab.


Q: Why are you working with the EC to try to block the deal?

I have two main objects in my business life:
  • Save the product, that I worked on for 27 year, from getting killed as an open source project.
  • Ensure that the core developers of MySQL, who I have worked with for many years, get a good 'home' where they can continue to develop MySQL.
I am hoping for the EC and other regulators to ensure the first of the above. Monty Program Ab was created to ensure the second.


Q: In your view, what are the possible solutions for the Oracle / Sun / MySQL deal?

The European Commission (EC) has recognized that MySQL and Oracle are competing products and issued a statement of objections (SO) against the merger between Oracle and Sun on 11'th of November 2009.

As long as the products are recognized to be competing, any solution that the EC would accept has to ensure that there is as much competition in the database field before the merger as after the merger.

For this, I only see two working solutions:
  1. Oracle should divest MySQL.
  2. Oracle should change the license of MySQL to a more permissive Open Source license that would ensure that if Oracle would try to kill MySQL, the community would be able to take over and rescue MySQL and develop it as a product that can be freely used by everyone.
Divesting is the normal case to handle competition cases.

Doing a license change is a controversial thing that the EC can't force Oracle to do. This is however something that Oracle can suggest to the EC as a remedy to not have to divest MySQL.

Personally I would prefer divestiture as this is a clean solution to the problem. However, I could personally live with the solution 2) as this would achieve my main personal objective: That MySQL can't be killed.


Q: Isn't it unreasonable to require Oracle to change the license of MySQL?

Yes, of course neither the EU nor any other jurisdiction could dictate anything like that. Divestiture is the normal solution when you need to clear competition concerns. But since Oracle is trying to get away with some compromise, and if a compromise is what we get, it should be one where MySQL has a chance to survive. Not a compromise that just means a different kind of death for MySQL.


Q: How do the proposed remedies benefit your company, Monty Program Ab?

We do not know but hope that many companies would be unhappy with the new competitive situation if Oracle is the owner and would seek out MariaDB instead. But a big portion of the revenue would not come to us (as we cannot sell licenses, we do not produce first line support...)

If MySQL were divested to a strong player in the market that would care about MySQL and would have the trust in the market, Monty Program Ab would get a hard competitor and would have a hard time to get business.

If MySQL were licensed under a permissive license, like BSD, then the users would benefit as they now can securely continue to use MySQL in all context. Monty Program Ab would also switch to only produce code under BSD for the MariaDB server, to ensure that also MariaDB can be used in all context.

Monty Program Ab would benefit very little from of this; We cannot take money from selling BSD; We can only hope that there is a market demand for our skilled engineers.

The companies that would benefit the most from BSD are the companies that enhance MySQL (storage engine vendors and companies providing extensions to MySQL) and companies that embed MySQL in their products, like Adobe or Cisco.

The reason we are hoping for regulators to get the deal blocked on the current basis is thus not to earn more money, but because it's more important for us that MySQL will continue to be free, available for all, and developed in a way that meets the needs of all major market segments.


Q: As you are suggesting a license change, is GPL then a bad Open Source license?

I think that GPL is a great open source license, in many cases the best license. The GPL license ensures freedom of the code and at the same time gives the copyright holder a very strong control on the code and it's ecosystem, especially it's closed source customers.

Thanks to this property of GPL, it's safe for many closed source vendors of embeddable software, to release their software as GPL. They get the benefit of the open source community, they help promote free software and can still make a good living of it. Those that need the software under another license than GPL are paying the bills.

I am constantly encouraging companies to release their software as GPL, including companies like MoSync, that I have myself invested
in.

It's however the strong control that GPL gives the copyright holder for embeddable software that is a problem in this particular case of MySQL. It gives Oracle the possibility to slowly kill MySQL as not everyone can use it. Oracle can this way starve the ecosystem around MySQL so that nobody can live there decently.

The code is still free, but in practice not everyone would or could use it.

This is why GPL is not very often used for libraries (and other infrastructure software). For libraries one normally uses LGPL, that allows anyone to freely use the software in their application.

What MySQL AB did, that was unique at the time, was to use the 'inconvenience of GPL' in a library as a way to do dual licensing. By providing commercial licenses for MySQL, everyone could use MySQL (for commercial vendors for a small price).

In short, GPL is a fantastic license, but without dual licensing, not very good for a library that is to be used by everyone.


Q: What other things can go wrong if regulators approves the deal?

If the deal is approved based on the fact that 'MySQL can be forked', that will be a big blow to open source Software.

It means that open source software is not protected for anticompetitive measures and it will be ok for big companies to freely buy up their open source competitors and kill them.

Note that not even PostgreSQL is safe from this threat! For example, Oracle could buy some companies developing PostgreSQL and target the core developers. Without the core developers working actively on PostgreSQL, the PostgreSQL project will be weakened tremendously and it could even die as ar result.


Q: There have been some suggestions on the net that in the past you did approve of Oracle buying MySQL. Have you now changed your mind?

"Anyone who knows me, knows that I don't change my mind" :)

Jokes aside, when the Oracle proposition to buy MySQL first time come up, I said that I could stand behind the deal only if the MySQL license was changed to BSD as part of the deal. Even back then, I wanted to ensure that MySQL would continue to be free, available and developed to meet the needs of all major market segments, in spite of what Oracle would try to do to it.


Q: Are MySQL and Oracle really competing products ?

Yes.

To be fair, they don't compete for all applications and it's in many cases prohibitively expensive, risky and time-consuming to migrate an old Oracle application to work on MySQL.

However for new applications MySQL and Oracle are competing in almost every customer segment. Oracle has for years tried to come into the Web market, but has not succeeded, mainly because MySQL has already been there.

When a MySQL sales person goes and visit customers, it's in most cases Oracle, and in many cases only Oracle, that MySQL is competing with.


Q: How about MySQL on Windows? Does MySQL compete with MS SQL Server?

Windows was not the key target platform for MySQL. Almost all developers at MySQL AB worked on Linux/Unix and did their development there. This was not because we didn't want MySQL to run well on Windows, but because we had not found developers that wanted to work on MySQL on Windows and also because most of our big customers were running Linux/Unix.

It's also clear that Sun would never have been interested in MySQL if MySQL primarily compete on Windows (as Oracle claim it does).


Q: Why can't everyone just switch to PostgreSQL?

PostgreSQL is a great database; I am friends with many of the PostgreSQL core developers.

The problems with PostgreSQL are:
  • It's not compatible with MySQL (different feature sets and different support by various applications) and it's far from trivial (in many cases practically impossible) to convert MySQL applications to PostgreSQL and vice versa.
  • It doesn't have a single strong company backing that MySQL has to deliver high class support globally.
  • The PostgreSQL market is also, as far as I know, dominated by Enterprise DB that provides a closed source version of PostgreSQL, which is not good enough for companies standardizing on open source.
So for the Oracle/Sun/MySQL case, PostgreSQL is not an answer that would help approve the deal, the market share is too small.


Q: Don't you care about what happens to Sun?

Yes, I grew up developing on Sun hardware and I feel deeply for Sun. However MySQL is my project that I have worked on for 27 years and must be my first priority.

We also have to recognize that it's Oracle that is holding Sun hostage just to get MySQL. Oracle could have got the deal closed very quickly if they had divested MySQL and just forked it.


Q: "What differentiates MySQL from other open source products Oracle would be acquiring with Sun, like Java or Open Office?"

Oracle doesn't have competing products for Java and Open Office, so there is no reason to assume that Oracle would not take good care of them and generate money from them.

Open Office is also an end user product under a permissive license, LGPL, which means it can easily be forked if Oracle would not take good care of it.

With MySQL this is unfortunately not the case.


Q: Didn't you sell MySQL to Sun? Do you want to have the cake and eat it too?

First a little background:

I started to work on a code that would later become MySQL in 1982. MySQL was released in 1995 under a dual licensing scheme that allowed David Axmark and me to very quickly work full time on developing MySQL.

I lost the rights to the MySQL copyright in 2001 when MySQL AB was created and we allowed investors to come in. We needed to bring in investors to be able to create a full-scale working company to satisfy big customers and to be able to hire more developers and take MySQL to the next stage. To ensure that MySQL would continue to be free, David and I stated in the shareholder agreement that MySQL AB would have to keep MySQL under an open source license. The problem with a shareholder agreement is that it is terminated when the company is sold. This is just how things works.

David and I however thought that this would not be a problem, as we would help ensure that MySQL would be bought by a good owner.

I continued to lead the MySQL project and have been one of the leaders and top contributors for the project since then.

When the sales process to Sun started, I was at the time not anymore in the MySQL Board (just a MySQL shareholder). I was just informed about the deal, after it was agreed to. I did get money for my shares, that is true, but it did not change in any way my dedication or involvement in the MySQL project.


Q: Was SUN a good owner?

Even though I had no say in the deal, I was happy because I thought that Sun, who has been one of the big advocates of open source, would be a good home for MySQL. MySQL was also the missing piece in Sun's software stack and as Sun didn't own any database competing with MySQL, it would be in Sun's interest to continue developing MySQL as an open source database.

This was proven right a couple of months later when the old MySQL management, who was still in charge of MySQL development, announced that they would now, (when they were not anymore bound by the shareholder agreement), add closed source addons to MySQL. Sun's upper management stepped in and forced MySQL's management to retract the statement.

After the Sun deal, I continued to work on MySQL and the Maria storage engine in Sun (in the CTO lab) and, together with Sun upper management, to help Sun be a driving force in open source. I also tried to get Sun to improve the MySQL development organization and change the MySQL development model to be more community friendly.


Q: You left SUN. Did you put pressure on SUN to be able to set up your own company?

The reason I left Sun was that after almost one year of trying, the MySQL development organization was still lacking vision, strategy and engineering excellence and it did not engage with the community.

Some of the developers did in addition not fit in a big publicly listed company and started to talk about leaving SUN.

To ensure we would not start to lose critical MySQL resources from the MySQL ecosystem and to ensure that MySQL would live on, I departed from Sun on good terms, with an understanding of what I needed to do and without any competition clauses.

I created Monty Program Ab and continued to work on a branch of MySQL, now under the name of MariaDB, together with the community and the core MySQL developers that left Sun. We are now 19 persons in Monty Program Ab and all totally dedicated to keep MySQL alive.


Q: How did things change when Oracle came into the picture?

Now when Oracle is trying to buy Sun, I am continuing to what I have always done and never stopped doing; Do what I can to ensure that MySQL is kept alive as an open source product, free and available for all. With Oracle as a buyer this is not a guaranteed outcome, which is why I am working to get the EC to ensure that Oracle can't kill MySQL even if they tried.

As seen from my this and previous answers, the main benefit I can personally get by working with regulators to get the deal blocked, is that MySQL is not killed. This is also the only logical answer, as I already have enough money and could just sit down and relax instead of spending 18 hours a day to try to keep my project alive.

The cake at stake is a free infrastructure for the Internet, which is a cake that millions of MySQL users and billions of Internet users are enjoying today.


Q: Sun paid a billion dollar for MySQL. What did Sun buy?

Sun bought:
  • The MySQL trademark
  • The copyright to the MySQL server and other components (and thus control of the MySQL economical ecosystem).
  • Access to the MySQL community of 15 millions users and probably more than 50 millions installations.
  • MySQL AB's customers contracts.
  • The core developers work contracts
  • All other assets in MySQL AB
What they didn't buy was the control of MySQL as an open source project. You can't buy an open source project with money, the currency in open source is trust. Anyone can and is allowed to fork MySQL and continue develop it outside of Sun and the community will follow the branch/fork they trust more. This doesn't however guarantee that the fork will succeed, especially not economically. In the worst case no one will win, like what happened to the BSD operating system.


Q: Who would like to buy MySQL?

It has been speculated that I would be interested in buying MySQL. This is completely untrue. First I don't have that kind of money (all of the original founders of MySQL got collectively less than 12 % of the Sun deal). Second I am not interested in MySQL AB.

I much more prefer to work in a small family-oriented company, where things are handled in a fair, transparent and open source way.

However, there are a lot of potential buyers on the market: (Note that this is just speculation, I have no information about the intentions of any of the companies mentioned below)
  • IBM (DB2 and MySQL are working in mostly different markets and our sales persons very seldom compete with DB2).
  • Any of the major Linux distribution vendors.
  • Fujitsu (as Fujitsu has close connections with Sun, it has it's own storage engines and is also doing development of databases).
  • Some investment group who would like to take MySQL public (like it was originally planned).

Q: Any final words?

Just that all users of MySQL still have time to influence their own future by going to helpmysql.org and sign the petition to help keep MySQL free and available for all.

We are searching for volunteers to help us with this effort. If you are interested to help, join the #helpmysql IRC channel on Freenode.

Help us keep the infrastructure of the Internet free!

2009-12-16

Oracle gives only empty promises for MySQL

The save-mysql-campaign is a success thanks to you. Oracle have had to come out with some public promises.. This is an encouraging start, which shows that we are on the right track, but we have to keep the pressure up! Thanks for the help so far, but please continue contacting companies to send emails to the European Commission (EC). The battle is not over yet!

In this blog I will analyse point by point what Oracle is really offering.

Before we go into details, what one has to understand is that Oracle can afford to employ the best lawyers on the planet and, as the Oracle/Sun/MySQL deal is a big and important deal, we can safely assume many professionals have worked on those MySQL promises. We can safely assume that there are no 'mistakes' or oversights in the commitments. They are drafted to show the maximum of what Oracle would be prepared to do for MySQL. From the scope and the limitations of this we can deduce what their future plans for MySQL most likely are.

The most significant fact is that everything is limited to 5 years. After that period Oracle is free to do anything, including to stop developing an open source version of MySQL. After five years, Oracle can demand storage engine vendors to buy licenses or publish their products under GPL for things that are already shipped and/or any future shipments with old versions of MySQL.

The other significant fact is that Oracle didn't formally file the promises as remedies with the EC but only issued a press release. This means that they are not legally binding. There is no mechanism put in place to ensure that Oracle is following them and if Oracle is not following them, there is nothing that can be done about it (if the EC now says it could revoke its approval of the deal, that's not realistic). This also shows total lack of respect for the European regulatory procedure and that Oracle prefers to do a public battle instead of really solving the problem and going through a market test in which customers and competitors have a chance to tell the EC what they think.

So let's go over Oracle's MySQL-related promises one by one.

"1. Continued Availability of Storage Engine APIs. Oracle shall maintain and periodically enhance MySQL's Pluggable Storage Engine Architecture to allow users the flexibility to choose from a portfolio of native and third party supplied storage engines.

MySQL's Pluggable Storage Engine Architecture shall mean MySQL's current practice of using, publicly-available, documented application programming interfaces to allow storage engine vendors to "plug" into the MySQL database server. Documentation shall be consistent with the documentation currently provided by Sun."

No change from the past. However, as we will see later, there is no incentive anymore for third party vendors to develop storage engines, so this promise doesn't mean anything.

"2. Non-assertion. As copyright holder, Oracle will change Sun's current policy and shall not assert or threaten to assert against anyone that a third party vendor's implementations of storage engines must be released under the GPL because they have implemented the application programming interfaces available as part of MySQL's Pluggable Storage Engine Architecture.

A commercial license will not be required by Oracle from third party storage engine vendors in order to implement the application programming interfaces available as part of MySQL's Pluggable Storage Engine Architecture.

Oracle shall reproduce this commitment in contractual commitments to storage vendors who at present have a commercial license with Sun."

This looks at first sight like a nice promise, but it's in fact an empty promise per se (only the resulting contracts would be binding, but there's no assurance anything useful will come out of it) and, even worse, a promise with a hidden agenda.

The Storage Engine API is pretty new and far from finalised. Most storage engine vendors are extending and working around the officially documented API in various ways, so they asically have to be forkers in addition to using the API. Most advanced storage engines also use other pluggable API's in the server. The way Oracle's promise is written, it doesn't really apply to any of the commercial storage engines.

As this is a non-assertion not to sue, not an exception, Oracle can after 5 years stop all storage engine vendors from distributing any new copies of their software, both for old and new versions of MySQL.

This will put the storage engine vendors in a tricky situation: They cannot get any investment money for lack of a long-term perspective and as their products in many cases only work with MySQL, the only company that could buy them is Oracle and Oracle would be the one that would set the price for the company (no competition).

As most of the closed source storage engine vendors can't afford to release their engines only under the GPL (they can't survive on support alone), this will kill their incentives for developing their engines further.

Combining this with no commitment to continue selling commercial licenses or with a fixed price for these licenses, the closed source storage engines can't work with big application vendors (as these can only use MySQL under the GPL, which is usually not a viable alternative for them).

This promise also doesn't give any protection for closed source plug-ins or closed source applications that are embedding or using MySQL.

It's also unclear inhowfar this promise applies to any extension to the API that storage engines vendors or forks may do.

If Oracle had honest intentions, this promise would not have been done as a non-assertion but via an exception that would be tied to code for each release of MySQL and would be perpetual and irrevocable for each version released on that basis.

"3. License commitment. Upon termination of their current MySQL OEM Agreement, Oracle shall offer storage vendors who at present have a commercial license with Sun an extension of their Agreement on the same terms and conditions for a term not exceeding December 10, 2014.

Oracle shall reproduce this commitment in contractual commitments to storage vendors who at present have a commercial license with Sun."

This just emphasises that after 5 years, the gloves are off and storage engine vendors have to negotiate new terms with Oracle, at Oracle's mercy.

Looking how the current promises are written and considering that most of the storage engines are competing with Oracle, I would not like to be in the storage engine vendors' shoes after December 10, 2014. This looks like a long time but if you have to invest for the long term, it's soon enough to stop investing now (more or less).

By limiting the promise to those who "at present have a commercial license with Sun" Oracle keeps all options open with respect to any new commercial licensees. So they want MySQL to continue to live in the past and not to have a secure future with new partners of all sorts.

"4. Commitment to enhance MySQL in the future under the GPL. Oracle shall continue to enhance MySQL and make subsequent versions of MySQL, including Version 6, available under the GPL. Oracle will not release any new, enhanced version of MySQL Enterprise Edition without contemporaneously releasing a new, also enhanced version of MySQL Community Edition licensed under the GPL. Oracle shall continue to make the source code of all versions of MySQL Community Edition publicly available at no charge."

Notice that Oracle DOES NOT promise that the code for the Enterprise Edition and the Community Edition will be the same, as it has so far always been for MySQL. There is also no promise that the Enterprise Edition will be available under GPL (which is the case today).

UPDATE:
It was brought to my attending that in MySQL 5.0 (and only for this version), the community edition was slightly different in that it had more features (SHOW PROFILE) than the Enterprise Edition. The important part is that in no version the Enterprise Edition had more or different features than the Community Edition. Sorry for forgetting this.

I think this is a clear indication, or almost an announcement, that Oracle will start adding either closed source extension to the Enterprise Edition or start developing it in a separate code tree and with a completely new feature set.

This would be bad for open source users of MySQL and would make it VERY hard for a fork to be compatible with the Enterprise Edition.

By focusing most development on the Enterprise Edition, Oracle would over time decrease the interest in the Community Edition and be able to turn MySQL into a closed source database that they can price any way they want and this way ensure it doesn't compete with Oracle's other offerings. They could do this in practical terms during the five years and after the five years even formally.

MySQL 6.0 is already available under GPL, so no change in this respect either.

"5. Support not mandatory. Customers will not be required to purchase support services from Oracle as a condition to obtaining a commercial license to MySQL."

This is no change from current practice. However, as there is no commitment for the price of commercial licenses and Oracle can thus rise prices significantly any time, this is an empty promise.

"6. Increase spending on MySQL research and development. Oracle commits to make available appropriate funding for the MySQL continued development (GPL version and commercial version). During each of the next three years, Oracle will spend more on research and development (R&D) for the MySQL Global Business Unit than Sun spent in its most recent fiscal year (USD 24 million) preceding the closing of the transaction."

The previous spending on R&D was 24 million at Sun and an estimate of 30-80 million done outside of Sun (storage engine vendors, closed source extensions and plugins and not to forget the work that has been done by the MySQL community).

Under these commitments, there is very little incentive for the R&D outside of Sun to continue so in fact the spending on R&D on MySQL will significantly decrease over time.

Oracle has not specified where the money will be spent. My assumption would be that a major part of the spending would go to a closed source MySQL Enterprise addition and thus has very little value for the open source community. Since commercial customers also need the community version to be powerful (the two types of customers really depend on each other), they would also be affected very negatively.

There are no guarantees that the spending in engineering would be directed in areas where MySQL challenges Oracle's own database (such as ERP applications). They can do any number of things because databases are a huge field without those things really meaning competition within Oracle.

"7. MySQL Customer Advisory Board. No later than six months after the anniversary of the closing, Oracle will create and fund a customer advisory board, including in particular end users and embedded customers, to provide guidance and feedback on MySQL development priorities and other issues of importance to MySQL customers."

There is already a MySQL Customer Advisory Board. As there are no commitments as to what influence the Board will have (on which issues it would advise and on which one it would decide, with other things such as appointment rules and voting procedures missing as well), this is an empty promise.

8. MySQL Storage Engine Vendor Advisory Board. No later than six months after the anniversary of the closing, Oracle will create and fund a storage engine vendor advisory board, to provide guidance and feedback on MySQL development priorities and other issues of importance to MySQL storage engine vendors.

There is already a MySQL Storage Engine Vendor Advisory Board. As there are no commitments as to what influence the Board will have (on which issues it would advise and on which one it would decide, with other things such as appointment rules and voting procedures missing as well), this is an empty promise.

"9. MySQL Reference Manual. Oracle will continue to maintain, update and make available for download at no charge a MySQL Reference Manual similar in quality to that currently made available by Sun."

Sun is already providing a MySQL reference manual free of charge.

What is important here is that Oracle has NOT addressed one of the major complaints from the community, which has repeatedly asked to get the manual licensed under a permissive license as without a manual even a trivial fork (such as by a storage engine vendor) is almost impossible to do.

"10. Preserve Customer Choice for Support. Oracle will ensure that end-user and embedded customers paying for MySQL support subscriptions will be able to renew their subscriptions on an annual or multi-year basis, according to the customer's preference."

As this is the main thing that other companies can compete with Oracle on, it's clear and logical that they will continue to do this. Even if they stopped it, they couldn't prevent others from providing this particular service.

"The geographic scope of these commitments shall be worldwide and these commitments shall continue until the fifth anniversary of the closing of the transaction. "

5 years, or any other limited period of time, is not satisfactory and customers and partners would immediately looe interest in MySQL with this promise.

The only workable solution would be binding commitments with perpetual effects and on an irrevocable basis, which is not what Oracle has offered!

My conclusions:

- Oracle is apparently planning to split MySQL Enterprise and MySQL community code bases and most likely concentrate most development only on a closed source version.
- There will be significantly less money spent on MySQL-related R&D than before!
- Oracle has not offered a solution for ANY closed source applications, like storage engines vendors, plugins or applications using MySQL.
- Oracle has not offered anything important that would give forks a better basis to start from, even though Oracle said in the whole process that forking would be a solution.
- Oracle has not listened to the complaints from the open source community, storage engine vendors or applications vendors and is not giving them ANYTHING they have asked for. Some of these things can be found here.
- Oracle's promises that relate to commercial licenses are limited to those who "at present have a commercial license with Sun". So they want MySQL to continue to live in the past and not to have a secure future with new partners of all sorts.
- Oracle is trying to win the case through press releases and public pressure instead of really eliminating the European Commission's concerns. They show no respect for the European authorities or how we do things here. Oracle just want to dictate their own terms and expect us to accept them on face value.

From this I conclude that Oracle CANNOT be trusted as an owner of MySQL and we have to continue our battle against the MySQL part of the merger to ensure that MySQL will continue to be free and available for all, forever, on a reliable basis and with real innovation happening!

We have clear indications that our worldwide petition and our campaign of sending emails to the EC and is having an effect. Please continue to find users of MySQL and get them to send a letter to the Commission! Spread the word through all channels. We can still save MySQL!

2009-12-12

Help saving MySQL

I, Michael "Monty" Widenius, the creator of MySQL, am asking you urgently to help save MySQL from Oracle's clutches. Without your immediate help Oracle might get to own MySQL any day now. By writing to the European Commission (EC) you can support this cause and help secure the future development of the product MySQL as an Open Source project.

What this text is about:
- Summary of what is happening
- What Oracle has not promised
- Oracles past behavior with Open Source
- Help spread this information (Jump to 'What I want to ask you to do')
- Example of email to send to the commission (Jump to 'send this to:')

I have spent the last 27 years creating and working on MySQL and I hope, together with my team of MySQL core developers, to work on it for many more years.

Oracle is trying to buy Sun, and since Sun bought MySQL last year, Oracle would then own MySQL. With your support, there is a good chance that the EC (from which Oracle needs approval) could prevent this from happening or demand Oracle to change the terms for MySQL or give other guarantees to the users. Without your support, it might not. The EC is our last big hope now because the US government approved the deal while Europe is still worried about the effects.

Instead of just working out this with the EC and agree on appropriate remedies to correct the situation, Oracle has instead contacted hundreds of their big customers and asked them to write to the EC and require unconditional acceptance of the deal. According to what I been told, Oracle has promised to the customers, among other things, that "they will put more money into MySQL development than what Sun did" and that "if they would ever abandon MYSQL, a fork will appear and take care of things".

However just putting money into development is not proof that anything useful will ever be delivered or that MySQL will continue to be a competitive force in the market as it's now.

As I already blogged before, a fork is not enough to keep MySQL alive for all future, if Oracle, as the copyright holder of MySQL, would at any point decide that they should kill MySQL or make parts of MySQL closed source.

Oracle claims that it would take good care of MySQL but let's face the facts: Unlike ten years ago, when MySQL was mostly just used for the web, it has become very functional, scalable and credible. Now it's used in many of the world's largest companies and they use it for an increasing number of purposes. This not only scares but actually hurts Oracle every day. Oracle have to lower prices all the time to compete with MySQL when companies start new projects. Some companies even migrate existing projects from Oracle to MySQL to save money. Of course Oracle has a lot more features, but MySQL can already do a lot of things for which Oracle is often used and helps people save a lot of money. Over time MySQL can do to Oracle what the originally belittled Linux did to commercial Unix (roughly speaking).

So I just don't buy it that Oracle will be a good home for MySQL. A weak MySQL is worth about one billion dollars per year to Oracle, maybe more. A strong MySQL could never generate enough income for Oracle that they would want to cannibalize their real cash cow. I don't think any company has ever done anything like that. That's why the EC is skeptic and formalized its objections about a month ago.

Richard Stallman agrees that it's very important which company owns MySQL, that Oracle should not be allowed to buy it under present terms and that it can't just be taken care of by a community of volunteers. http://keionline.org/ec-mysql

Oracle has NOT promised (as far as I know and certainly not in a legally binding manner):

- To keep (all of) MySQL under an open source license.
- Not to add closed source parts, modules or required tools.
- To keep the code for MySQL enterprise edition and MySQL community edition the same.
- To not raise MySQL license or MySQL support prices.
- To release new MySQL versions in a regular and timely manner. (*)
- To continue with dual licensing and always provide affordable commercial licenses to MySQL to those who needs them (to storage vendors and application vendors) or provide MySQL under a more permissive license
- To develop MySQL as an Open Source project
- To actively work with the community
- Apply submitted patches in a timely manner
- To not discriminate patches that make MySQL compete more with Oracles other products
- To ensure that MySQL is improved also in manners that make it compete even more with Oracles' main offering.

From looking at how Oracle handled the InnoDB acquisition, I don't have high hopes that Oracle will do the above right if not required to do so:

For InnoDB:
- Bug fixes were done (but this was done under a contractual obligation)
- New features, like compression that was announced before acquisition, took 3 years to implement
- No time tables or insight into development
- The community where not allowed to participate in development
- Patches from users (like Google) that would have increased performance was not implemented/released until after Oracle announced it was acquiring Sun.
- Oracle started working on InnoDB+, a better 'closed source' version of InnoDB
- In the end Sun had to fork InnoDB, just to be able to improve performance.

It's true that development did continue, but this was more to be able to continue using InnoDB as a pressure on MySQL Ab.

Note that Oracle's development on the Linux kernel is not comparable with MySQL, because:
- Oracle is using Linux as the main platform for their primary database product (and thus a better Linux makes Oracles platform better)
- The GPL code in the kernel is not affecting what is running on top on it (because of an exception in Linux).

Because we don't have access to a database of MySQL customers and users the only way we can get the word out is to use the MySQL and Open Source community. I would never have resorted to this if Oracle had not broken the established rules in anticompetitive merger cases and try to influence the EC by actively mobilising the customers after the statement of objection was issued.

It's very critical to act upon this AS SOON AS POSSIBLE as EC, depending on what Oracle is doing, needs to make a decision around 2010-01-05. Because of the strict deadline, every email counts!

What I want to ask you to do:

- Forward this email/message to everyone that you know is using MySQL or Open Source/free software and to all email list where you know there are people present that use or care about MySQL and open source (please check first that this email hasn't been sent there before)
- Alternatively send emails with information about this and tell them to read http://monty-says.blogspot.com/2009/12/help-saving-mysql.html
- Add links on your web site to http://monty-says.blogspot.com/2009/12/help-saving-mysql.html with the text "We are using MySQL, help save it", for the duration of the next two week.
- Blog about this (feel free to include this text or just link to my blog)
- Call by phone (don't contact by email, this is urgent) your boss or VP and ask him to read this email and send a letter to the EC commission ASAP!
- If you don't have anyone to contact above, send an email to the EC!

As we want the EC to get a correct picture of the situation, we want you to first fill in the upper part and then choose one of the proposed texts below that best matches your view of the situation. Feel free to supply your own text and additional information if you think this will help the EC to reach a better understanding of how MySQL is used.

Send this to: comp-merger-registry@ec.europa.eu
If you want to keep us updated, send a copy to ec@askmonty.org

If you have extra time to help, fill in the following, if not, just skip to the main text.

Name:
Title:
Company:
Size of company:
How many MySQL installations:
Total data stored in MySQL (megabyte):
For what type of applications is MySQL used:
Should this email be kept confidential by EC: Yes/No

Copy or use one of the below texts as a base for your answer:

a)
I don't trust that Oracle will take good care of MySQL and MySQL should be divested to another company or foundation that have everything to gain by developing and promoting MySQL. One should also in the future be able to combine MySQL with closed source application (either by exceptions, a more permissive license or be able to dual license MySQL under favourable terms)

b)

I think that Oracle could be a good steward of MySQL, but I would need EC to have legally binding guarantees from Oracle that:
- All of MySQL will continue to be fully Open Source/free software in the future (no closed source modules).
- Open Source version and dual-licensed version of MySQL should have same source (like today).
- That development will be done in community friendly way.
- The manual should be released under a permissive license (so that one can fork it, the same way one can fork the server)
- That MySQL should be released under a more permissive license to ensure that forks can truly compete with Oracle if Oracle is not a good steward after all.
Alternatively:
- One should be able to always buy low priced commercial licenses for MySQL.
- All of the above should be perpetual and irrevocable.

There should also be mechanism so that if Oracle is not doing what is expected of it, forks should be able to compete with Oracle

c)
I trust Oracle and I suggest that EC will approve the deal unconditionally.


--------------------

Let us prove to Oracle and EC that the Open Source community is a true force and we take good care of our citizens and we prefer to work with companies that does the same!

The future of MySQL is in your hands!

Thanks for the help!
Michael Widenius
Creator of MySQL

UPDATE: Oracle has made some public promises that only fixes this one issue marked with (*).

NOTE: Their promise to storage engines vendors is not future safe as it's a time-limited non-assertion (they promise to not sue for 5 years), but they could still sue one for using a storage engine with old code after the 5 years. They limited the promise to the storage engine API but not to other plugin API:s that almost every pluggable storage engine uses. They clarify this, Oracle should change this to be a license exception for all plugins and it should be valid perpetual with the released code. It's also unclear if this non-assertion is valid if the vendor makes extension to the interfaces (which most storage engines do).

2009-10-24

The importance of the license model of MySQL or Can MySQL be killed?

In this blog post I will try to answer some of the most common questions I have heard during the last week:

A. Can MySQL be killed?

1. The easiest way to kill MySQL would be to not sell licenses any more or make their prices 'really high'.

2. Another scenario is that the development resources are drastically reduced in some important areas. Then people would stop believing in the future of MySQL, which slowly will kill the product. Especially if the present license is in place. (Remember that most of the development of the core of MySQL is done by the developers at SUN, not by a large community)

B. "But anyone can fork it!"

One can fork a GPL project (i.e. the code), but one can't easily duplicate the economic infrastructure around it.

MySQL is not an end user application, but an infrastructure project that is quite deep in the system stack. Most of the technology partners, where most of the innovation in the MySQL space happen nowadays, depend on being able to get licenses for MySQL so that they can combine their closed source application or closed code (like storage engines) with MySQL. If you take the license revenue and add it to all direct and indirect money that comes from these kind of partners, this is a huge part of the MySQL economic infrastructure (i.e., where the money is).

A fork of an infrastructure GPL project can't work with any of the above mentioned partners and the fork can't be used by anyone who needs to distribute it with their own closed source parts or use it with others closed source parts. If there would be no way for partners to combine their code with MySQL, these partners and users would have to put their efforts on some other project and the money flow and a big part of the innovation around MySQL would stop. Over time other projects that allow everyone to participate and make money will take over the MySQL business.

It's possible to create companies doing support for MySQL, but without the economics, there will not be enough money and incentive to pay enough for the development of MySQL to satisfy the requirement of all the MySQL users. Any such company will just make MySQL 'die slower', but not be able to save it.

The simple fact is that keeping a project like MySQL alive and having it compete with big vendors like Oracle, require many people working in it. If they can't get any revenue from doing that (except support revenue, which is not enough), you will find very few companies prepared to do development and extremely few (or none) investment company would put serious money on a company that gets all of it's money on services (not scalable).

Another thing, like Richard Stallman pointed out, is that MySQL is only available under GPL2 and can't be combined with GPL3 code. This means that new Free software projects that uses GPL3 can't use MySQL. This is a problem, but less severe than the problem of economics.

C. "Is GPL not a good enough license?"

I think that GPL is a fantastic license. It ensures that projects under the GPL are kept free. At the same time it allows companies that wants to participate in Open Source to make enough money to be able to develop the product full time. GPL ensures that these companies can keep tight control on the product and especially on their (closed source) technology partners. This is why investors are interested to invest in companies that use GPL; They know that no one can just come and fork the product and take everything away from company that holds the copyright to the code.

D. Conclusion

It's safe to assume that both Sun and Oracle understand this. This is why Sun bought MySQL for a high valuation and this is why Oracle doesn't want MySQL to be divested.

If it would be easy to take over MySQL by just forking it, Sun would never have bought MySQL and Oracle would have forked MySQL a long time ago instead of now trying to buy it as part of the SUN deal.

2009-10-19

Press release concerning Oracle/Sun

FOR IMMEDIATE RELEASE

MYSQL FOUNDER OUTLINES SOLUTION:
INSTEAD OF LETTING SUN SUFFER,
ORACLE SHOULD SELL MYSQL
(ORCL, JAVA)

Michael 'Monty' Widenius says European Commission is "absolutely right to be concerned" about proposed merger between Oracle Corporation [ORCL] and Sun Microsystems [JAVA], nominates award-winning EU strategist to support the proceeding

Tuusula, Finland, 19 October 2009 -- Michael 'Monty' Widenius, the creator of open source database MySQL and founder of the namesake company later acquired by Sun, today suggested Oracle should resolve antitrust concerns over its US$7.4 billion acquisition of Sun by committing to sell MySQL to a suitable third party. The proposed takeover has not yet been consummated because it is being investigated in depth by the European Commission as well as competition authorities in several other jurisdictions.

Widenius, who posted this press release to his blog, believes the EU's antitrust regulator is "absolutely right to be concerned" and called on Oracle "to be constructive and commit to sell MySQL to a suitable third party, enabling an instant solution instead of letting Sun suffer much longer."

The Finnish software developer and entrepreneur wishes Sun "all the best, but MySQL needs a different home than Oracle, a home where there will be no conflicts of interest concerning how, or if, MySQL should be developed further."

MySQL was the only Sun business unit to be mentioned in the EC's early September announcement of its in-depth investigation into the proposed takeover.

Acquirers commonly resolve regulatory concerns (before, during or after an investigation) by committing to divest problematic assets to a third party. By contrast, Oracle and Sun officials have thus far insisted they continue to seek approval of the entire transaction, irrespectively of Sun currently losing, according to Oracle, $100 million a month.

In order to support the regulators' work on the case, Widenius' new company, Monty Program Ab, works closely with Florian Mueller, a MySQL and EU affairs expert. Widenius said: "Florian gave MySQL strategic advice from 2001 on and was a shareholder until the sale to Sun in 2008, and with our support led an award-winning campaign against a proposed EU law on software patents. In August he helped us to demonstrate to the EC the need to investigate this merger and he is now on board again to meet the information needs of regulators, journalists and analysts."

According to Mueller, "every day that passes without Oracle excluding MySQL from the deal is further evidence that Oracle just wants to get rid of its open source challenger and that the EU's investigation is needed to safeguard innovation and customer choice. This is highly critical because the entire knowledge-based economy is built on databases."

Mueller demands more respect for the EC: "It's inappropriately arrogant for some interested parties to suggest that the EC has yet to understand the case. The EC is really doing a great job under huge time pressure."

In what he calls "a solution-oriented information effort that is now necessary after other parties made public statements on the case in recent weeks", Mueller announced that he will be available to journalists and analysts in Brussels (Wednesday, 21 October), London (Thursday, 22 October) and Silicon Valley (Monday, 26 October) to discuss the case.

In August, Mueller authored a position paper that Monty Program provided to the EC along with several other submissions. The latest version of the document was published today on the Internet.

About Michael 'Monty' Widenius and Monty Program Ab

Michael 'Monty' Widenius is the creator of MySQL, the world's most popular open source database. In 2001, he founded the namesake company that was acquired by Sun Microsystems in 2008 for a total consideration of approximately US$1 billion. The European Private Equity and Venture Capital Association (EVCA) named this transaction the "European Venture Capital Deal of the Year 2008". On a previous occasion, Widenius had been named the Finnish Software Entrepreneur of the Year 2003.

A visionary leader of the open source community, Widenius created MySQL's dual-licensing business model together with co-founder David Axmark. MySQL became the first piece of software to be available alternatively under a commercial license or the Free Software Foundation's GPL.

In 2009, Widenius left Sun and created a new company, Monty Program Ab, based in Tuusula (Helsinki area), Finland. Monty Program Ab develops MariaDB and the Maria database storage engine and other MySQL-related technologies. The company is a founding member of the Open Database Alliance.

Monty Program Ab corporate website

Michael Widenius' blog

About Florian Mueller

Florian Mueller is a software industry veteran with 24 years of experience (starting as an author at age 15) as well as an award-winning EU policy strategist. Previously founder and CEO of a startup he sold to the Telefónica group, Mueller became in 2001 an adviser to MySQL's then-CEO on corporate strategy and held shares in the company until its sale.

In 2004, Mueller created a campaign in 17 languages against a proposal for European patent legislation, finally rejected by the European Parliament in a historic decision at the end of a bitterly contested process. The Economist Group's European Voice named Mueller the EU Campaigner of the Year 2005 (a prestigious award that went to Pope John Paul II in 2002 and Governor Arnold Schwarzenegger in 2007). Managing Intellectual Property named Mueller to its list of the 50 most influential people in intellectual property (2005 and 2006). In 2005 he also received a CNET UK award (Outstanding Contribution to Software Development) and made it to the list of Silicon.com's 50 "Silicon Agenda Setters".

In 2007, Mueller successfully defended the EU-related interests of Real Madrid CF, the world's most famous soccer club with approximately 200 million fans worldwide.

Contact data

For further information concerning this news release, please contact Florian Mueller (telephone: +49-171-2632226, email: florian.mueller@live.com).

2009-09-13

The CodePlex Foundation; Why is Microsoft founding it?

The CodePlex Foundation was announced this week by Microsoft. Most reactions have been quite positive, but there has, of course, also been skepticism and concerns from Open Source advocates. The two main worries can be summarized as "the CodePlex Foundation is a ploy" (e.g. TechNews World) and "what's in it for them?" (e.g. Open Bytes).

I will try to explain why I think that the CodePlex Foundation is a good idea, and why I agreed to be an advisor for the Foundation.

N.B. All of the following is my own interpretation based on conversations with the people behind the Foundation. Any misinterpretations of issues and all speculations are my own.

It's important to keep a few salient points in mind as you think about Microsoft's possible motivations:
  • Microsoft goes to great lengths to satisfy the demands of their important customers.

  • Microsoft has many customers that are using both Microsoft products and Open Source software, and they (the customers) wants the open source product to work as seamlessly and reliable as possible with Microsoft products.

  • Microsoft is already contributing quite a lot of Open Source code into many projects, including the Linux kernel.

  • Being a big public company with a lot of lawyers creates a lot of bureaucracy and it becomes very hard for a developer in the company to participate in an Open Source project because of the many different contributor agreements / licenses / project policies that exits. (I can easily relate to this after seeing how hard it was to do release something as Open Source even at Sun).

I suspect many other software companies have similar issues.

Personally, I believe it was in order to solve the above that Microsoft created the CodePlex Foundation. By having a single independent entity, verified and approved by the Microsoft lawyers, to which to donate code, the whole process of being involved with Open Source projects becomes so much easier for Microsoft developers. CodePlex allows Microsoft developers to more easily participate in Open Source projects, without a lot of red tape. There are many developers at Microsoft that are very pro Open Source, and would like to participate more than they are able to at present. Note that since CodePlex supports all relevant Open Source licenses, there is nothing hindering contributions to CodePlex to find its way into projects elsewhere in the FOSS ecosystem from there.

But why should Microsoft be trusted to have good intentions with the CodePlex Foundation? Simply, I believe that it's in Microsoft's direct interest that the CodePlex foundations becomes a success. Of course, we all know that Microsoft will primarily ensure that the Open Source projects in which they participate will run better on Windows and with Microsoft products. But this doesn't change the fact that this is a still a great thing for Open Source software.

Of course, people will continue to worry about Microsoft's intents and maybe that is understandable. In my experience, Microsoft as a big company seems to be a "company divided," with some segments appearing to understand and embrace Open Source, and others acting against these understandings. (In fact, this is another thing I can relate to from my personal history.) But now we have an opportunity to see Microsoft at their best as regards Open Source and Free Software, and even help them out in the effort. This is, indeed, an unusual opportunity.

Clearly developers and users of software, be it Open Source or proprietary, benefit from Microsoft's benevolence toward and understanding of the Open Source ecosystem. Thus, it is my hope that Microsoft is being forthright about their intentions for the CodePlex Foundation, and can maintain their level of commitment in the years to come; even in times of difficulty.

Bear in mind, the CodePlex Foundation is an independent entity. If we succeed in launching it as such, and getting good Open Source people on the Board of Directors and in the Advisory board, it should become a worthwhile addition to the Open Source ecosystem regardless of what Microsoft is going to do. There is already a lot of vocal Open Source advocates involved in the Foundation, and if we think the CodePlex foundation starts to go astray, we will ensure it will be known.

It should be be noted that the Foundation was released in a "beta" state, allowing companies, partners, communities, and other interested parties to influence the Foundation in its early stages. I already have a concrete example that the Foundation is open to change and genuinely wants to do "the right thing" to make CodePlex work. The people from the Foundation board and advisory board had a phone meeting one day before the launch of the Foundation (my first contact with the Foundation) and some other advisors (myself included) were worried about some of the words in the original mission statement and some statements in the FAQ that could easily be misinterpreted. The Foundation board agreed to get changes done, even considering the time pressure they were under. This impressed me greatly.

There are still many issues to solve, and even more that can be improved over time. I want to be involved to ensure that the Foundation does it in a transparent and proper way, allowing it to work as smoothly as possible and for the benefit of the Open Source community. This is much easier to do from the inside. As I said, I feel that I was already listened to in reviewing the material related to the launch.

I also hope that the Foundation will begin to work to make life easier for Open Source developers and companies working in the Open Source space by providing easily replicable and reusable directions, guidelines, and standard contracts. All of this is still in an early stage and the future is wide open for what the CodePlex Foundation can and will do.

All in all, I think this is a major opportunity for the Open Source community and for Microsoft. I'll be working to ensure it works the way we all hope it will, and that it will benefit companies, developers and users alike.

2009-08-04

Thoughts about Dual-licensing Open Source software

History


The first example of dual-licensing was probably Ghostscript, which Peter Deutsch licensed first under the GPL and later under the Aladdin Free Public License, but also under a proprietary license.

Inspired by his idea, David Axmark and I released MySQL under similar dual-licensing terms. Dual licensing has since become one of the most common and popular ways to create profit centers around Open Source/Free Software, in addition to support and services around the product.

To be able to bootstrap MySQL Ab, we originally had a license that allowed free usage, but a "pay-for" license if you used MYSQL for commercial usage or on the Windows platform. In 2000 we changed the free license to GPL, mostly to avoid having to explain our own license to everyone.

The basic idea for our dual-licensing was this: if you bought a license then we waived the GPL restriction that you have to redistribute your code as GPL. You could change, modify, extend, distribute, and redistribute the copy in any way you wanted (but of course not change the license of the MySQL code). The license was for any version and usage of MySQL, for now and forever.

This is still reflected in the MySQL FAQ on this topic.

This is what I personally think is the appropriate way to dual-license open source software and how we intend to do it in my new company, Monty Program Ab, for the software we produce.

The MySQL OEM License


I was recently made aware that the above is no longer the case with the standard MySQL OEM agreement. Sun is now, by default, putting the following limitations on their licensees:

(Sun has, of course, all rights to put any restrictions on their code, but as this is not how dual licenses used to work with MySQL or how it works with other Open Source projects (See for example, the license information for Ghostscript and .) You should however be aware of these issues if you intend to ever acquire a commercial license for MySQL)

  • You cannot modify MySQL in any way (for example to fix bugs, optimise MySQL for your applications, include publicly available enhancements (such as the BSD licensed "Google patch" or compile it with another storage engine) to improve your MySQL as part of your product.
  • You cannot use any forks of MySQL (such as Drizzle, ExtSQL or MariaDB).
  • You are tied in to the current major release of MySQL enterprise (i.e. you have to pay for upgrades). This may be normal in a closed source environment, but not normal when it comes to Open Source.
  • There are serious limitations for what kind of applications you can build with the MySQL code, for instance, the default agreement prohibits installations in hosting facilities or to use your version as a SQL server.
  • The end user can't transfer/sell the license to someone else (to be used under the same conditions).

Recommendations to licensees and those considering the purchase of a MySQL license


With above limitations in place, you should consider if it's worth it to you to buy licenses for MySQL under the current terms. Also, if you are an old licensee of MySQL, you should be careful to review any new conditions when your license is up for renewal. Note that this warning is not something specific to Sun but applicable when working with any software vendor.

If you are running an old, modified, community, or forked version of MySQL at your company, you need to be aware that the default OEM agreement is not applicable to you. This also the case if you modify MySQL code to implement a new storage engine, MySQL extensions or if you are a hardware vendor that wants to to tune MySQL for your setup.

If you need to buy a commercial license, because you cannot use the GPL, you need to seriously consider if you can accept the default restrictions. If not, then you should contact Sun and renegotiate the terms. I know there are examples where MySQL licensees have been allowed to change MySQL code and also have the right to publish those changes (Infobright openly advertises that they've done so). You should ask to get those same rights.

If you plan to do dual licensing yourself, you also need to make sure that the license allows you to use an Open Source version of MySQL with your Open Source product.

When agreeing to a license, ensure that you get enough freedom to do what is required for your business and you are not completely dependent on one vendor for your success!

Recommendations for companies doing Dual-Licensing


I believe one should be very permissive when doing dual licenses with Open Source as otherwise you lose many of the business advantages you get from being Open Source. The Open Source community is a very effective ecosystem and if you allow it to participate with your business you have a better chance to succeed.

The only restriction you need when re-licensing is that the licensee should not be able to change the license of your code and they can only use and/or distribute the pre-negotiated number of copies of it.

  • Allowing changes to the licensed code allows the licensee to combine community code and their own code in creating a better product. It also gives your customer more trust in your product as they don't feel locked into only one vendor for things like bug fixes and enhancements.
  • Make it easy to use your product or part of your code with other products.
  • Allowing re-distribution of the product creates a market for people doing addons, enhancements and totally new products based on yours.
  • Don't be afraid of forks; They enlarge your ecosystem and anyone that wants to buy a license for these forks also has to buy one from you.
  • Don't limit the license to a specific version; If you allow changes this is meaningless anyway as one can easily go around it. In the long run it's not a winning proposition to sell the same software over and over again to the same customer. Instead work on the software and with the customer to increase the usage of the software.
  • Don't limit in any way how the product/code can be used; it just forces people to choose or develop other products that will compete with you and will limit the business you can create.
  • Make the end-user license transferable. This is already allowed in many countries, it is what normal people expect from most things they buy and will create opportunities for new business by others. If you got paid for any copy of your software that exists, do you really care who uses it second hand ?

By being fair to others, you will get a reputation as a trustworthy business partner and you will get more business in the long run.

Recommendations to Community contributors


I assume for this blog that it's clear why it's beneficial for you to donate code to an Open Source project. (If not, then this could be a topic for another blog post).

However, when donating your code to a an Open Source project that is using dual-licensing, you need to also consider how the project is going to use your code when re-licensing it under a non-Open Source license. This is very important if you ever want to license the project yourself under a commercial license (not Open Source).

  • What are the restrictions on how you can use the re-licensed work? (Ideally it should be usable for any purpose and in any manner).
  • What changes can you make to the code when you re-license it? (Ideally there should be no restrictions, except that you can't change the license).
  • Can an licensing agreement be used to restrict the licensee's possibility to publish their own code as Open Source, or to include Open Source code in their product?
  • Is the re-licensing agreement tied to a specific version of the project.
  • Is the contributor agreement for the project clear in terms of how you may donate code to it? Can the project, for example, take any code you ever send to any related email list or do you need to explicitly sign every contribution separately. (Our contributor agreement wasn't clear in this aspect, so I recently added: "Each submission must explicitly be marked that it's donated under the MCA". You can of course also mark the code to be under BSD.)

If you agree with the above and you have signed contributor agreements that do not include such a note, you should consider contacting those projects and asking for a new one with such a clause or get some other public guarantee that the project re-licenses code in an appropriate manner.

Note that releasing your code as BSD for a project that has or may have GPL code doesn't protect your code from being dual-licensed in an unfavorable way. The only way to ensure full freedom for others is to only donate your code under a contributor agreement with a clause as suggested below or to a project that has agreeable guidelines for how they license their code!

To assure our users, contributors, and customers of how we at Monty Program Ab intend to re-license the code we produce or the code people donate to us, I have added the following note to our contributor agreement:

"Monty Program Ab agrees that when it dual licenses code, it will not restrict the way the third party licensee uses the licensed copy of the code nor restrict how they use their own code."

If you have any comments/ideas around this, feel free to join the the maria-discuss Launchpad team and its associated mailing list and discuss this topic.

2009-07-09

Helping The US Department Of Justice

I was yesterday, for the second time, on a call with the US Department Of Justice regarding how the Oracle / Sun deal could affect Open Source software, in particular MySQL and Java.

I told them that I still think that my original scenarios from April are still valid. What has been worrying me lately is that Oracle has been quite vocal regarding their plans for most things related to the deal, like Sun hardware and Java, but has not said anything related to their plans regarding MySQL.

During the MySQL conference and at other conferences afterwards I have been approached by numerous MySQL users that have been very worried about the future of MySQL. From this it's clear that most MySQL users are very interested to know what Oracle is up to, but those that have tried to inquire Oracle about this, myself included, have been met with complete silence.

I strongly encourage Oracle to start talking publicly about their intentions regarding MySQL. If your plan is to continue developing MySQL as a true open source project and take it to new heights, I think it's critical to inform us, the MySQL community, about it ASAP. The more positive information we get, the more supportive we, the MySQL developers and users, can be about the deal.

For those that are worried about the future of OSS software as part of the Oracle / Sun deal, and the affect (both good and bad) it may have on their business, the US Department of Justice is encouraging companies that are dependent on MySQL / Java to contact them and tell them how the deal may affect their business. The more information the department gets, the better equipped they will be in deciding what their recommendation for the deal will be.

You can either contact the Department of Justice directly or send an email to me at 'info at askmonty dot org' and I will forward it to those in charge.

We at Monty Program Ab and The Open Database alliance are doing our best to ensure MySQL's future survival as one of the leading open source databases. By making your voice heard, you can make all our lives easier!

2009-05-13

Open Database Alliance founded

Monty Program Ab and Percona today launched the Open Database Alliance.

You can find the press release about it here.

This may be one of the most important steps in the history of MySQL and MariaDB.

Here follows my initial vision of the Open Database Alliance. Note that things may change slightly when we start defining the rules of the Alliance together with the Alliance members!

The Alliance will be a center and provide infrastructure for companies and individuals to develop, collaborate and do business around open source databases with MariaDB/MySQL as our initial focus.

The Alliance is intended to be a one-stop-shop for anything related to MariaDB/MySQL; By going to the Open Alliance web site (under construction) or contacting any member of the Alliance you should be able to buy any services, tools or software produced by any of the members of the Alliance.

This is actually close to the original vision that David Axmark and I had when we created MySQL. We planned to create a partner network where MySQL AB was a small technical company in the center with a lot of partners around us facing the large customers.

After I left Sun, people have suggested to me to create a new MySQL Ab: A big company that would do anything related to MySQL, like MySQL AB did. I didn't like this idea because for me, MySQL AB worked much better when we were less than 70 people. This time, I want do things differently: Create a small family oriented development company driven by excellence and have an alliance of companies that are closely working together. This way, we will be able to avoid some of the growing problems. There will of course be other problems in this new setup, but I am fully prepared to face them.

The vision is that the companies in the Alliance will be able to provide excellent service around the database:
  • Customer service according to customer needs. (E.g. now it is easy to buy development work for the MySQL/MariaDB server).
  • Specialized services, from different companies, to better fit customer needs.
  • Make it easy to find someone local to help you with your problems.
The intention is to get the companies in the Alliance to work closely together to get the benefit of each others' strengths and compensate for each others' weaknesses/holes in their service offerings. This will make us stronger, agile and more responsive than a single big company.

Early alliance member Arjen Lentz of Open Query (which also sponsors the OurDelta builds project) notes: "This alliance is an excellent step, showing the maturity, breadth and depth of expertise for MySQL related services."

During the next few months we will continue talking with other companies which join the Alliance and together create the rules under which the Alliance and its members will function.

The Alliance will consist of two types of companies:

1) Companies that provide clear benefits for the community that is using MariaDB:
  • Development of the MariaDB source code or related source code
  • Development of free tools around MariaDB
  • Enhancement the community using MariaDB
  • Publishing of articles and documentation about and around MariaDB
  • Development/help with builds, provide mirror space
  • Work on enhancing the Open Database Alliance
  • Infrastructure providers (open source) around MariaDB
  • And open source storage engine vendors
2) Companies that are not giving things back to the community, but provide services on and around MariaDB:
  • Training, support and consulting
  • Commercial tools
  • Other commercial services
  • Web site development
  • Datamining & Analytics
We are likely to have slightly different rules for these two types of companies as all companies that are joining the Alliance should bring something to the table.

Initially the Alliance will be a 'thin umbrella', but we are likely to soon hire some people for the Alliance to help work out the rules, better serve our members and provide marketing for Alliance members. The Alliance should also work to actively enhance and support the MariaDB community.

The benefit of joining the Alliance is you get a much closer relationship with the people working with and around MariaDB. You can also provide more for your customers as you get the power of all the other members around you.

I myself will continue spending most of my time in Monty Program Ab developing MariaDB and enhancing the community around it. I will work actively within the Alliance and, together with Peter Zaitsev and other active Alliance members, help with defining e.g. the rules of the Alliance.

Finally, we have been contacted by many entrepreneurs looking to set up new businesses to address opportunities in the MariaDB/MySQL market. This is exciting to see, since I believe there is plenty of room for many new players to join the movement. I encourage such individuals out there to reach out to my investment company Open Ocean, who might be able to help out with advisory and possibly also funding.

You can send your questions about the Alliance or a request to join the Alliance to alliance@askmonty.org