License Frequently Asked Questions

0.0.1. What is Mercurial's license?

Mercurial as a whole is licensed under GPL version 2 only. This means it is completely free for most uses including redistribution.

0.0.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.

0.0.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.

0.0.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.

0.0.5. What is 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 plug-ins, 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.

0.0.6. Can I bundle an unmodified Mercurial with my product?

Provided your product uses Mercurial only through its usual external interfaces, this is fine.

0.0.7. Who holds the Mercurial copyright?

Numerous contributors hold copyright to their individual contributions. See the project changelog for details.

0.0.8. 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:

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.

0.0.9. Why isn't Mercurial GPLv3-compatible?

Mercurial predates the existence of GPLv3 and it was not clear at the time that the GPLv3 would be an improvement so we chose to be GPLv2-only. Whether the GPLv3 is an improvement remains unclear; arguably the resulting license-compatibility problems alone have made it a net failure.

0.0.10. Will you relicense/dual-license/sublicense Mercurial?

No. We are happy with our current choice of license and there is currently no sufficiently compelling reason to consider relicensing.

Also, as there is not a single copyright holder for Mercurial, relicensing would be a very time-consuming multi-month process with no certainty of success.

0.0.11. Can you make a license exception for my project?

No. Making an exception is exactly as difficult for us as relicensing.

0.0.12. Why do some parts of Mercurial's source have different license clauses?

Mercurial includes code contributed and borrowed from many sources. Some of these use the "GPL version 2 or later" clause. But because most code (including most of the Mercurial core) is GPLv2 only, the package as a whole is effectively GPLv2 only, as it's the only license that fits the requirements of all files.

As a courtesy to the original authors, we have left the original license on these files. You (or they) are free to copy files marked "GPL version 2 or later" on their own for use with GPLv3 software. See the distributed COPYING file for the license on all other files.

0.0.13. 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.

Just use the command line interface. It's fast, powerful, simple, well-documented, and is currently the only API with stability guarantees.

0.0.15. 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.