This page needs to be reviewed
This is the OpenMRS, Ltd ("OpenMRS") OpenMRS License FAQ. It aims to answer the most common questions people have about using and distributing code under Mozilla Public License 2.0 (MPL 2.0) + Health-Related Additional Disclaimer of Warranty and Limitation of Liability.
If you see any errors in this FAQ, or have suggestions for further questions, please contact OpenMRS at firstname.lastname@example.org. Note that these answers do not represent our license. The explanations are not legal advice. If you need to know exactly what the OpenMRS license requires, you need to read and understand the license itself; if you need legal advice, you need to talk to a lawyer.
Why did OpenMRS choose Mozilla Public License (MPL) 2.0 + Health-Related Additional Disclaimer of Warranty and Limitation of Liability?
There are several factors that initially attracted us to an MPL-based license originally:
- Our goal to keep the platform open without scaring off entrepreneurs or others who might have interest in leveraging the platform for their commercial interests. Part of our mission is to empower people in resource-constrained environments to help build efficient and sustainable solutions to meet the health care needs of their people, which is – in large part – best accomplished through local capacity-building and allowing for the growth of self-sustaining solution such as service-based companies.
- Indemnity for medico-legal issues.
- Allow modules to be licensed separately. While we love to see people making open-source modules for OpenMRS, we don't want to prevent people from creating commercial modules if it can help them creating sustainable solutions and improve the care for people in resource-constrained environments.
- Ensure that work on the platform itself is shared.
But we had to make several modifications to MPL 1.1 to meet our needs, meaning we weren't using an official OSI-approved license. When MPL 2.0 came it, it presented a great opportunity to migrate to a largely identical license that met our needs and no longer required us to make modifications to the license.
Why is there a disclaimer?
The Health-Related Additional Disclaimer of Warranty and Limitation of Liability is a tool afforded by MPL 2.0 that allows us to address our specific medico-legal needs without having to modify the license itself.
I want to distribute complete and unchanged binary packages of the Original Code provided by OpenMRS. What do I have to do?
The binary form of the Original Code provided by OpenMRS already meet the requirements of section 3.2. You may distribute and use it under the terms of MPL 2.0.
If you are offering a warranty, however, you must make clear that it is offered by you alone (Section 3.5). OpenMRS offers no warranties on the Original Code or any other code we make available.
I want to distribute OpenMRS (or other MPL 2.0-covered code) that I have compiled myself but not changed. What do I have to do?
- add a conspicuous notice stating where to find the exact source to the binary you are distributing (Section 3.2)
- if your documentation has a section dealing with licensing or the recipient's rights to the code, put a copy of the MPL 2.0 + Health-Related Additional Disclaimer of Warranty and Limitation of Liability in it. (Section 3.5)
You may distribute any binaries you create under a license of your choosing, as long as it doesn't interfere with the recipients' right to the source under the MPL 2.0 (Section 3.2).
I want to distribute a modified version of OpenMRS (or other MPL 2.0-covered code). What do I have to do?
- add a conspicuous notice stating where to find the exact source to the binary you are distributing. (Section 3.2).
- if your documentation has a section dealing with licensing or the recipient's rights to the code, put a copy of the MPL 2.0 + Disclaimer in it. (Section 3.5)
In addition, there are several obligations relating to your Modifications. You must
- have the right to distribute your Modifications (Section 3.1)
- add a correctly-completed license header to any new files which are Modifications (Section 3.4)
- make your Modifications available in source code form, under MPL 2.0 (Section 3.1)
- document what your Modifications are (Section 3.3)
- include a statement that your code is derived from the particular piece of MPL 2.0 code you started with (e.g., the Original Code), and a list of the names of the Initial Developers of that code (Section 3.3).
How "viral" is the MPL 2.0? If I use MPL 2.0-covered code in my proprietary application, will I have to give all the source code away?
MPL 2.0 is not as "viral" as the LGPL or the GPL forms of public licenses. To determine the level, you must focus on the definition of a "Modification" in MPL 2.0 (Section 1.10).
What is a Modification? Any changes to MPL 2.0-covered files, or new files into which MPL 2.0-covered code has been copied, are Modifications and so fall under MPL 2.0. New files containing only your code are not Modifications, and are not covered by MPL 2.0.
Files which fall under MPL 2.0 because they are or because they contain Modifications must be made available as detailed in MPL 2.0.
How are OpenMRS Modules affected by the OpenMRS License?
MPL 2.0 + Health-Related Additional Disclaimer of Warranty and Limitation of Liability covers the core OpenMRS code and is used for all of the OpenMRS community-supported and distributed modules, but other modules are not required to be licensed under MPL 2.0. In fact, modules do not have to be open source. You are free to create a closed-source module and distribute it under any license you wish. Module authors who are uncertain of how to license their module are encouraged to make their modules open source and, unless they have some reason to use a different license, use the same licensing as OpenMRS, but this is not a requirement for modules.
Can I build a company around OpenMRS software?
Sure. The most fundamental goal of the OpenMRS Community is to improve the health of people in resource-constrained environment by providing a common platform upon which people can meet their local needs. One of the only ways that truly sustainable solutions can be created is for local solutions to be self-sustaining. If you become proficient in installing, customizing, and/or maintaining OpenMRS implementations, you could, for example, build a company to provide local service to those implementations around you. The little bits of work you do in improving the platform along the way can be combined with many others around the world to benefit everyone, including meeting your own needs.