License Frequently Asked Questions
Information about Mercurial's source code license.
- For developers and distributors
Beyond the GPL
- Will you relicense/dual-license/sublicense Mercurial?
- Can you make a license exception for my project?
- Why do some parts of Mercurial's source have different license clauses?
- Can I make a clone of Mercurial that's compatible with license <X>?
- Are license discussions appreciated on the mailing list or IRC?
1.1. What is Mercurial's license?
Mercurial as a whole is licensed under GPL version 2 or any later version ("GPLv2+"). This means it is completely free for most uses including redistribution.
1.2. What does this mean to me?
If you don't distribute "derived works" of Mercurial, you can do pretty much whatever you want with it and you can stop reading here.
1.3. Can I get a commercial license?
Mercurial is Free Software. To use it for your commercial development, simply download it, install it, and enjoy. If you are interested in commercial support, see Support.
1.4. When does the license affect me?
If you do not distribute software that works with Mercurial, you have no license obligations.
If you distribute software that does not modify, copy, or extend Mercurial's source code and only calls Mercurial's command line interface, you have no license obligations.
If you intend to distribute software that includes changes to Mercurial's source code or directly calls Mercurial's internals, your work may be considered a 'derived work' according to copyright law, and you will need to license your work under the GPLv2+ and make its source code available.
2. For developers and distributors
2.1. What is a "derived work"? Is an extension a derived work?
What constitutes a "derived work" can only be precisely determined in a court of law. But conventional wisdom is that if you're modifying Mercurial, copying or translating significant portions, adding extensions, or otherwise linking against its internal interfaces, odds are you're creating a derived work. Such derived works must themselves be licensed under the GPLv2+ and their source code must be made available on request.
2.2. Can I bundle an unmodified Mercurial with my product?
Provided your product uses Mercurial only through its usual external interfaces, this is fine.
2.3. Who holds the Mercurial copyright?
Numerous contributors hold copyright to their individual contributions. See the project changelog for details.
2.4. Is the Mercurial license compatible with...
If you are building a project that combines multiple works, you must ensure that their licenses are compatible if you want to be able to distribute it.
The GPLv2 license is not compatible with several newer open source licenses, including:
- The Eclipse EPL
- The Sun CDDL
- The Apache License
This means, for instance, that you cannot write a plugin for Eclipse that directly calls Mercurial's internals, as the resulting work would need to be simultaneously licensed under the EPL and the GPLv2+. The FSF has a longer list of incompatible licenses.
An example of a compatible license is the MIT license or the "3 clause" BSD license. When combining projects with these licenses with Mercurial, the result has a GPLv2+ license.
2.5. But what can I do if I can't link my program to Mercurial's internals?
Just use the command line interface. It's fast, powerful, simple, well-documented, and is currently the only API with stability guarantees. You may also be interested in the command server and associated libraries.
2.6. What if I just want to use the logo?
The Mercurial logo also has a GPLv2+ license and can be freely used by any project with a compatible license. For Mercurial-related projects using non-GPL compatible licenses, you should contact Matt Mackall (the logo copyright holder and Mercurial project lead) to get a license waiver to allow you to use the logo with your project.
3. Beyond the GPL
3.1. Will you relicense/dual-license/sublicense Mercurial?
Between Oct 2009 and Jan 2010, Mercurial was relicensed to GPL version 2 or later, where the or later part is new. Please see Relicensing. As there is not a single copyright holder for Mercurial, this is a very time-consuming multi-month process. It is very unlikely that we will be relicensing Mercurial again, considering that GPL version 2 or later is forwards compatible with GPLv3 and later GPL licenses. In particular, we will not consider relicensing Mercurial under any terms weaker than the GPL.
3.2. Can you make a license exception for my project?
No. Making an exception is exactly as difficult for us as relicensing.
3.3. Why do some parts of Mercurial's source have different license clauses?
Mercurial includes code contributed and borrowed from many sources which have licenses compatible with ours. As a courtesy to the original authors, we have left the original license on these files and you (or they) are free to copy these individual files and use them with their original license. See the distributed COPYING file for the license on all other files.
3.4. Can I make a clone of Mercurial that's compatible with license <X>?
You should consult a lawyer about the meaning of 'derived work' in copyright law. Also don't be surprised if some Mercurial developers are extremely unsupportive of efforts to subvert the license on their work, let alone introduce new compatibility headaches.
See also http://www.selenic.com/pipermail/mercurial/2011-March/037593.html for an explanation by the project leader about why this may not be a good idea.
3.5. Are license discussions appreciated on the mailing list or IRC?
No. It's all been discussed before, none of us are lawyers anyway, and we've got more productive things to talk about.