In the process of upgrading the software license for OpenMRS, it seems like a good time to review how we got here and why we’re changing our license. Here’s a brief history of OpenMRS Licensing:
- 2004 – OpenMRS is born as an informal collaboration between Regenstrief & Partners In Health starting with a data model, some code, and loads of experience. None of us can even spell “open source,” yet we’re academics and go out of our way to work openly.
- 2005 – The OpenMRS platform starts to come together. As we work openly, more interested parties join.
- 2006 – OpenMRS starts getting deployed
- 2007 – All contributors to the code (just shy of a dozen by then) formally sign over rights to code to the community. OpenMRS is trademarked. The OpenMRS Public License 1.0 is born.
OpenMRS Public License 1.0
Ok. Let’s stop here for a second. At this point, in 2007, OpenMRS transforms from a shared, unlicensed, pile of code within a public Subversion repository into officially licensed open-source software. So, what is this OpenMRS Public License and where did it come from? With the help of local lawyers, we hired a lawyer with expertise in open source licensing and described our goals:[box type=”note” style=”rounded” icon=”none” bgcolor=”#f7efcf”]
- Keep the platform openly available… forever, but avoid being so copyleft as to scare away commercial interests – i.e., a key goal of the platform is to enable local capacity.
- Provide indemnity for medico-legal issues.
- Allow modules to be licensed separately.
- Require anyone changing the core platform to share those changes, while leaving open the possibility for an exception iff an entity seeking an exception offers something in exchange that the community deems worthy (e.g., BigCo wants to commercialize an adapted version of OpenMRS as a closed product, but is willing to offer resources for a dozen dedicated FTEs to the open-source effort in perpetuity, and jumps through enough hoops to satisfy the OpenMRS community)
[/box]The lawyer took these goals, reviewed the available open source licenses at the time, and suggested the Mozilla Public License 1.1 with a few tweaks to fit our specific needs. So, we created the OpenMRS Public License 1.0 as a slightly modified version of MPL 1.1 and applied it to all of our code.
Living with OPL 1.0
- 2008 – 2010 – Life is good, but we run into a couple license issues: conflicts with other libraries (e.g., ExtJS) and some missed opportunities here & there. Nothing horrible, but as time progresses, we start to learn some of the gotchas in licensing. More importantly, we yearn to be using an official OSI-approved license.
- 2011 – We decide that we want to either switch to an OSI-approved license or get the OpenMRS Public License itself OSI-approved.
- 2012 – Efforts begin in earnest to explore an OSI-approved alternative.
OpenMRS Public License 2.0 Mozilla Public License 2.0 + Disclaimer
In 2013, with some hard work by Paul and help from OSI, Luis Villa, and some other lawyers, we discover that the Mozilla Public License 2.0 with a disclaimer could meet all of our needs, so we proposed the idea to the community. Overall, people in the community are pleased to see us adopting an OSI-approved license.
- MPL 2.0 is a natural evolution from MPL 1.1, meeting all of our original requirements while eliminating drawbacks of MPL 1.1.
- MPL 2.0 allows for a disclaimer, letting us add our medico-legal language without altering the license and remaining OSI-approved.
- MPL 2.0 is not only OSI-approved, but endorsed by the Free Software Foundation.
- There are more permissive licenses (e.g., MIT, Apache, LGPL) which would allow someone to adapt the core platform and profit from those changes without sharing their code. While we make it easy for people to adapt the platform to their needs through modules (which can be closed), we also want to encourage work on the core platform to be shared back to the community. So, we’ve chosen a slightly “copy-left” approach for the core platform to promote open collaboration on the platform.
- The MPL 2.0 is refreshingly simple to read/understand.
See our license at http://openmrs.org/license.