The H2 Database License is dual licensed under the MPL 2.0 and under the EPL 1.0 with this addendum:
However, nobody is allowed to rename H2, modify it a little, and sell
it as a database engine without telling the customers it is in fact
H2. This happened to HSQLDB: a company called ‘bungisoft’ copied
HSQLDB, renamed it to ‘RedBase’, and tried to sell it, hiding the fact
that it was in fact just HSQLDB. It seems ‘bungisoft’ does not exist
any more, but you can use the Wayback Machine and visit old web pages
of http://www.bungisoft.com.
I have no desire to rebrand the H2 database, but I am curious if this addendum is compatible with either the MPL 2.0 the EPL 1.0. My reading of the MPL and the EPL is that this addendum is not compatible with either license.
The MPL says this:
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license: under intellectual property rights (other than
patent or trademark) Licensable by such Contributor to use, reproduce,
make available, modify, display, perform, distribute, and otherwise
exploit its Contributions, either on an unmodified basis, with
Modifications, or as part of a Larger Work; and
The EPL says this:
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare derivative works of, publicly display,
publicly perform, distribute and sublicense the Contribution of such
Contributor, if any, and such derivative works, in source code and
object code form.
- The addendum seems to conflict with both of these excerpts. If the addendum does conflict does it still make sense legally?
- Also this part of the addendum seems legally ambiguous “nobody is allowed to rename H2, modify it a little, and sell it”. Do you guys think it is legally valid?
To add more detail to this, the MPL 2 FAQ states that the only restrictions the MPL places on modifying and distributing MPL licensed code are:
- You must inform the recipients that the source code is made available to them under the terms of the MPL (Section 3.1), including any Modifications (as defined in Section 1.10) that you have created.
- You must make the grants described in Section 2 of the license.
- You must respect the restrictions on removing or altering notices in the source code (Section 3.4).
It seems clear that the MPL 2 allows another person to make any changes they want to MPL licensed code (including changing the name of the product) and distribute it as long as they make the code available and don’t change the license or copyright on the original code.
7
A software license tells you two things:
- What you can do with the software
- What you cannot do with the software
However, a software license does not offer any guarantees. Specifically:
- It doesn’t prevent anyone from suing you, even if you follow the license in good faith, and
- It doesn’t prevent said person from winning in court, if they do sue you.
The only important consideration is this: is the license legally enforceable? As I am not a lawyer, I can’t answer that question with any certainty. However, it seems clear to me that H2 does have the right to specify conditions: specifically that you cannot make some non-trivial modification to their code and pass it off as your own product with a different name. This is both reasonable and fair.
Whether the resulting license can still be called MPL or EPL is an open question. However, note that both the MPL and EPL already contain provisions that could be interpreted to mean what H2 states in starker language :
-
The MPL uses the language “Larger Work.” A Larger Work means a work that combines software covered by the MPL with other material. It is generally understood that such a Larger Work is an application that uses the MPL-covered work to perform functions that facilitate the operation of the Larger Work as a whole, not a trivial wrapper or some minor modification that merely results in the same program with a different name.
-
The EPL uses the language “Derived Work.” A Derived work is a work incorporating the original covered software, but it is a new work. Derived works are generally understood to be “transformative;” that is, the new program contains substantially more functionality than the covered software.
So what’s the bottom line? A case could be made that, by modifying the MPL and EPL licenses with H2’s “No lamers” manifesto, they are changing the licenses in such a way that you can no longer call them MPL or EPL. But, at the end of the day, they don’t want you to make some trivial change to the code, change the license and call it your own. So you shouldn’t.
tl;dr: Don’t be a lamer.
16