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

2009-04-26

Hacking business model

Now at LinuxFest NW listening to John Locke's talk about the Hacking business model

John Locke is owner of Freelock Computing, a small business in Seattle who is concentrating his business around Drupal. (Drupal is a tool that allows you to quickly develop web sites). John is following many of the same principles that are described in the Hacking business model that Zak Greant and I created based on our experience with the early days of MySQL Ab. Back then we followed many of the principles, including shared copyright, but the principles were never clearly written down and was over time abolished/ignored by managers who didn't understand them.

John did actually get so inspired by our document that he came and visited me in Finland in March and spent several days discussing business models, open source, and how to keep ones employees happy. We also enjoyed some good food, "some" black vodka, sauna and rolling around in the snow naked.

Ralf Wahlsten and I also spent some time going through John's business and helped him focus on the right things to go forward. He now seems to be on track and if you are in the Seattle area and need some good people to develop or help develop your web infrastructure I recommend you to contact his company.

Monty Program Ab is following the Hacking business model to the letter and it will be interesting to see how things will work out. I will keep posting about this to let you know what works and what doesn't work and the challenges we face as we grow.

An interesting thing is that we get many(!) work applications based on the Hacking business model alone! People mail us and say that Monty Program Ab is the type of company they always dreamt on working for. If you are about to start a company based on open source ideals, I recommend you subscribed to our model; It seams to be a sure way to attract good talent!

If you already have a company that has a similar model, or are already following the hacking business model, let us know about it and comment about your experiences!

I will update the the Hacking business model with links to companies who are following our principles!

2009-04-21

To be (free) or not to be (free)

Tonight at 4:30 AM, USA Pacific time, my phone started to ring; it was a call from a Sun employee saying that Oracle has bought Sun and he wanted to join Monty Program Ab.

Shortly after that I got a call from a Swedish newspaper, Computer Sweden, who asked me about my opinion about why Oracle would buy Sun.

The reasons I see why Oracle is buying Sun are:
  • Sun is making big hardware, that is easy to bundle with very big Oracle installations.
  • Sun is making very good, reliable Intel boxes that work well for database usage.
  • Sun's virtualization product, VirtualBox
  • Sun tape Storage, very well suited for efficiency database backups etc.
  • Sun has done a lot of advanced work in cloud computing (even if Sun has not yet been able to monetize it)
  • OpenSolaris, that would be a much better offer to Oracle's customers than their Oracle Linux platform, which doesn't provide any notable value over RedHat.
  • Java
  • And, of course, MySQL

What could be Oracle's plan with MySQL? Three different plans come to mind:
  • They are going to kill MySQL (either directly or by not developing/supporting it fully)
  • MySQL will get sold of to another entity, either because Oracle doesn't want it or becasue of anti-trust laws.
  • They will embrace MySQL and Open Source and put their technical expertise on it to ensure that MySQL continues to be the most popular advanced Open Source database.

I am putting my hopes to the third option, but for succeeding in that Oracle has to also learn a lot about open source development and working with the community.

This brings up the question, once again, how can one own an Open Source Project. Patrick Galbraith, summed up his feelings in a recent blog post, , that the "ownership" of Free and open source projects has more to do with who provides the best stewardship of the code, rather than who owns a trademark.

I don't think that anyone can own an open source project; the projects are defined by the de-facto project leaders and the developers that are working on the project. If the company loses the trust of these people, they can go away and fork the project and turn it the way they want to.

Sun's acquisition of MySQL did not go smoothly; most of the MySQL leaders (both commercial and project) have left Sun and the people who are left are sitting with their CV and ready to press send.

Oracle, not having the best possible reputation in the Open Source space, will have a hard time keeping the remaining MySQL people in the company or even working on the MySQL project. Oracle will also have a hard time to ensure to the MySQL customers, community and users that it will keep MySQL "free and available for all".

Here I see where Monty Program Ab, can play a significant role. Since I left Sun, I have been working on making it to be for Sun what Fedora is for RedHat. With Oracle now owning MySQL, I think that the need for an independent true Open Source entity for MySQL is even bigger than ever before.

The biggest threat to MySQL future is not Oracle per se, but that the MySQL talent at Sun will spread like the wind and go to a lot of different companies which will set the MySQL development and support back years.

I would not like to see this happen and I am doing everything I can do to keep this talent pool together (after all, most of them are long time personal friends of mine). I am prepared to hire or find a good home (either at Monty Program Ab or close to it) for all core MySQL personnel.

I am looking forward to working closely with Oracle (or whoever in the end gets to own MySQL) to ensure that there always exists a free branch of MYSQL that is actively develop in an open manner and has that trust and support of the MySQL customers, developers and users.

Mr. Ellison, you are undoubtably a master tactician. However, thinking two moves ahead in the open source world is not good enough. You need strategy. Long term, meaningful, viable strategy. You need to think years ahead, not just to the next fiscal quarter.

I'd love to speak with you about it.

2009-03-24

Thanks for all the meat

I had last Friday an extremely nice 'farewell to Sun' (for me as an employee) dinner with former and current Finnish MySQL/Sun employees.

For once we didn't have the dinner at my place, because for this particular occasion I didn't want to spend a major part of my time in the kitchen (which I usually do because I love to cook).

We were at a Russian restaurant 'Saslik', which is famous for it's great food, hospitality and cold vodka (they took one look at us and put a full bottle of more-than-ice-cold Russian vodka on the table).

We had an entree called 'Zakuska' (a combination of Russian appetizers). Most of us took "Ivan's sword" as the main course and as desert we had "Baked Alaska à la Catherine the Great".

If you live in or are visiting Finland and want to have a special and memorable dinner, the above is what I would recommend (assuming you like meat).

Thanks to all that showed up at dinner (almost everyone was able to attend)!

Thanks Sun for the dinner!

From the development side, I am happy to announce than we are just adding a feature into MariaDB that will make MariaDB to perform much better on Solaris (thanks to the getport system call).

A special thanks to Henrik Ingo who had on his blog started a collection to 'the personal MySQL memory' where a lot of people have shared their memories about the old times and their encounters with MySQL and me.

Reading the blog was a great walk down memory lane. Thanks a lot for everyone that has contributed to it and everyone else who will contribute to it in the future!

What I like most about open source/free software and open development is that you don't lose contact with your former colleagues, friends or contacts just because you change work! Being able to continue to work on the same project and with the same people regardless of where you are is a great strength that is unique to open source.

What I find most delightful with now being outside of Sun is that I have been able to reconnect with a lot of former MySQL employees; Arjen Lenz, Peter Zaitsev, Kristian Nielsen, Ronald Bradford, Tonu Samuel, Antti Halonen, Larry Stefonic, Indrek Siitan, Patrik Backman, Camilla Zilliacus just to name a few (in random order) who I have talked with during the last weeks.

MySQL AB has always kept former employees and even companies working on anything that 'may compete' with MySQL business at arm length, which I have always thought 'leaves a lot to be desired'. By doing that, we have constrained the MySQL business growth instead of cooperating and making our total market larger. Many companies put pride in having an alumni club, but not yet the former MySQL AB.

What I think is needed to take MySQL to the next level is to create a company that is dedicated to support the community of the MySQL users, the MySQL developers (regardless of where they work) and all the companies that develop, work on or provide services for or upon MySQL. It is difficult for Sun to do this as the commercial interest of the different companies hinders trust between the parties and Sun.

This is what I am trying to do with Monty Program Ab.

I think we are uniquely suitable for this because:

- The people at Monty Program Ab have a great track record in working with the community.
- We are clearly dedicated to open source.
- We have proven over and over that our ideals can't be bought. We are working for open source and open source ideals both in good and bad times!
- We have a clear business agenda which is not conflicting with any other MySQL company.
- We are focusing on doing paid MySQL development, the result of which we will release in our open source MariaDB release.
- We do binary releases early and often, and we don't differentiate versions between customers and community users.
- We are creating a network of MySQL companies to together serve ALL needs of MySQL users.
- We acknowledge Sun as the key owner of the intellectual property rights.
- We are not doing front line support, training, web development etc.

A lot of companies have already contacted me to be partners in the network. Some of them can be found here.
If you want to be part of this new network around MariaDB / MySQL, send us an email to 'partners (at) a s k m o n t y (dot) o r g'.

If you need help with anything related to MySQL or databases, feel free to contact us at 'i n f o (at) a s k m o n t y (dot) o r g'. If we can't provide the right solution for your problem, we should be able to find a partner or someone in the MySQL community to help you!

And of course, if you are a developer who wants to change MySQL to better satisfy your business needs, join us developing MariaDB.

Lets connect to create better MySQL experiences for everyone!

2009-02-24

MoiPal, making it more fun to learn things

It's really a hard job to decide into which companies to invest. We at Open Ocean, my investment company, have talked with around 60 companies the last few months to find those that we think have a great potential and that would benefit from our involvement.

One company that more than well matched our investment criterias was Ironstar, that makes the MoiPal virtual world. With more than 100,000 registered users they are definitely a company to watch out for.

I have always been interested in virtual worlds and see how the communities around them continue to grow. The thing that really stands out to me with MoiPal, is the way it combines the social networking aspects similar to Facebook, with the caring of your online character, like you do with Tamagotchis or in games like Sims.

MoiPal has also open interfaces and engages other developers to expand the MoiPal world in their own, often unexpected, directions. Open interfaces are extremely important for a software to succeed today; For example, it was thanks to its open interfaces that MySQL got connections to all major programming languages and tools! This was something we could never have done by ourselves.

I think it's important that you learn when you play (as long as it doesn't take away the enjoyment of the game!). I think it will be easy to add more educational aspects into MoiPal; For example by making it easier to communicate with other "Pals" that has other languages and backgrounds. By building bridges to make the world a 'smaller place' we make it easier for people to understand and eventually respect each other. I personally like to invest in ideas that have a good social aspect!

On the business side, I found it really funny, when I heard that Lordi performed a virtual concert in MoiPal for thousands of players wearing virtual Lordi masks. I can envision this to be a major channel to launch youth brands in the future. When we reach a million users, I would hope we could launch for instance the H&M Spring collection simultaneously in MoiPal and in the real world. Then youngsters could buy the same trendy outfit, both for themselves and for their Pal.

I know that the audience of this blog is unlikely to be users of MoiPal. I hope you will still find this information about MoiPal interesting; If you have young children it's likely that you will find them at MoiPal and then it's good to know that it's a good and safe place for them to be in!