Our plan is for midPoint 4.0 code to be dual-licensed under the terms of Apache License 2.0 and European Union Public License (EUPL). This page explains the details and motivation.
Open source is a great way to make great software. And we in Evolveum strongly believe that it is also the right way to make software. We have declared that in the past and we still stand true to our word. MidPoint is open source and it will be open source as long as we have something to say about it.
However, open source funding is a big problem. A problem that does not have any easy solution. Various companies are experimenting with methods to fund open source projects. And some of them are making decisions that are putting the whole concept of open source in danger. We do not want to go that way. We do not want to compromise. MidPoint must remain completely open to any kind of usage. Which constraints our choices when it comes to Evolveum business model. All open core and similar approaches are ruled out. Evolveum has a good business model based on support, subscription and other services around midPoint product. This business model works in many environments such as enterprise or academia. However, it does not work very well when public money are directly involved.
There are great initiatives such as Public Money, Public Code. However, those ideas as not yet universally adopted. And even those initiatives alone will not provide funding to open source projects. But all is not lost. Evolveum is an European company. And European Union runs several programs to support open source projects. For example there is Free and Open Source Software Audit (FOSSA) program focused on improving security of open source software. Even though those programs are very useful, they provide funding for open source testing. There is no funding for open source maintenance. Simply speaking, FOSSA will pay for discovery of the bug, but they will not pay for the fix. But there are other programs, and there is a chance to get funding even for the maintenance. However, there are some limitations for projects that can be eligible. European Union created its own license for open source software: European Union Public License (EUPL). We believe that we can significantly increase our chances to get EU funding if we play by the EU rules. Simply speaking, we thing that if midPoint is licensed under EUPL we would be able to secure funding that will cover at least some parts of midPoint maintenance.
On the other hand, we are completely happy with Apache License and we do not want to forfeit the liberties that Apache License provides. We like the liberty of a software used by anyone for any purpose. We do not want to forfeit that liberty. We do not like the idea of software use being limited, not even by a copyleft open source license. We want to stick with Apache License.
Therefore we have decided to use dual licensing approach: midPoint will be provided under both Apache License and EUPL license at the same time. The users may choose the license that suits their needs. This would be almost ideal approach.To have the best of both worlds.
Therefore the plan is that midPoint 4.0 will be release under two licenses:
- Apache License 2.0
- European Union Public License (EUPL) 1.2
The user of midPoint can choose any of those licenses use midPoint. Therefore nothing should change for current midPoint users that use midPoint under the terms of Apache License.
However, there is a catch. If midPoint is licensed under just one license, the situation is quite clear. It is clear that users are using midPoint under that license. But even more importantly, it is clear that contributions are provided under that license as well. That is the reason why no extra paperwork was necessary to accept contributions to midPoint project. But the situation is much more complicated if there are two licenses. Users may choose any of these licenses, therefore it is not entirely clear how the contributions are licensed. In addition to that, we need contributions to be licensed under two licenses at the same time. Therefore in this case more paperwork is needed for midPoint contributions.
The dual licensing approach is forcing us to apply Contributor License Agreements (CLAs) for all midPoint contributions. Those agreements give us the right to re-publish (re-license) the contribution under the terms of both licenses. We cannot accept a contribution without a CLA. This means additional paperwork both for us and for the contributors. We are really sorry about that. But that is a necessary evil to make midPoint project thrive.
Translations, Samples and More
We can live with CLAs for contributors to core midPoint code. MidPoint is quite a comprehensive project. There is lot of code and the code can be quite complex. Understanding the code is no simple feat. Therefore contributing to midPoint core has quite a high entry barrier already. Code contribution is a process with significant overhead, as each code contribution has to be reviewed. Applying CLAs to code contributions is painful, but it is something that we can live with.
But the situation is quite different for translations, samples and other parts of midPoint that are more or less supplemental. We do not want to put a high entry barrier for those. We think that it is essential that community cooperation for those parts of midPoint is as easy as possible. Therefore translations and samples will be moved to separate projects. Those projects will be single-licensed under the terms of Apache License. Therefore no CLAs will be necessary to contribute to translations and samples. It is also likely that some testing scenarios (e.g. Story Tests) will be separated from midPoint as well.
Similarly, the connectors remain single-licensed under Apache License. At least for the time being.