Differences between revisions 1 and 35 (spanning 34 versions)
Revision 1 as of 2008-12-01 18:55:44
Size: 3161
Editor: mpm
Comment:
Revision 35 as of 2016-11-03 03:34:12
Size: 5851
Comment: update links
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== What is Mercurial's license? == #pragma section-numbers 2
= License Frequently Asked Questions =
Line 3: Line 4:
Mercurial as a whole is licensed under GPL version 2 '''only'''. This means it is completely free for most uses including redistribution. Information about Mercurial's source code license.
Line 5: Line 6:
== Can I get a commercial license? == <<TableOfContents>>
Line 7: Line 8:
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"]. == Basics ==
Line 9: Line 10:
== When does the license affect me? == === What is Mercurial's license? ===
Mercurial as a whole is licensed under [[Source:COPYING|GPL version 2]] '''or any later version''' ("GPLv2+"). This means it is completely free for most uses including redistribution.
Line 11: Line 13:
=== 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.

=== 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]].

=== When does the license affect me? ===
Line 13: Line 22:
If you distribute software that does not modify Mercurial's source code and only calls Mercurial's command line interface, 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.
Line 15: Line 24:
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. 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.
Line 17: Line 26:
== Is the Mercurial license compatible with... == == For developers and distributors ==
Line 19: Line 28:
=== 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.

=== Can I bundle an unmodified Mercurial with my product? ===
Provided your product uses Mercurial only through its usual external interfaces, this is fine.

=== Who holds the Mercurial copyright? ===
Numerous contributors hold copyright to their individual contributions. See the [[https://www.mercurial-scm.org/repo/hg/|project changelog]] for details.

=== Is the Mercurial license compatible with... ===
Line 23: Line 42:
 * GPL version 3
Line 28: Line 46:
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 [http://www.gnu.org/philosophy/license-list.html#GPLIncompatibleLicenses incompatible licenses]. 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 [[http://www.gnu.org/philosophy/license-list.html#GPLIncompatibleLicenses|incompatible licenses]].
Line 30: Line 48:
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.  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.
Line 32: Line 50:
== Why isn't Mercurial GPLv3-compatible? == === 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 [[CommandServer|command server]] and associated libraries.
Line 34: Line 54:
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. === What if I just want to use the logo? ===
Line 36: Line 56:
== Will you relicense/dual-license/sublicense Mercurial? == The [[https://www.mercurial-scm.org/hg-logo/|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 [[mpm|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.
Line 38: Line 59:
No. We are happy with our current choice of license and there is currently no sufficiently compelling reason to consider relicensing. == Beyond the GPL ==
Line 40: Line 61:
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. === 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.
Line 42: Line 64:
== Why do some parts of Mercurial's source have different license clauses? == === Can you make a license exception for my project? ===
No. Making an exception is exactly as difficult for us as relicensing.
Line 44: Line 67:
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.
=== 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 Source:COPYING file for the license on all other files.
Line 47: Line 70:
You 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. === 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 https://www.mercurial-scm.org/pipermail/mercurial/2011-March/037593.html for an explanation by the project leader about why this may not be a good idea.

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

----
CategoryProject

License Frequently Asked Questions

Information about Mercurial's source code license.

1. Basics

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.

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 https://www.mercurial-scm.org/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.


CategoryProject

License (last edited 2019-04-05 16:02:01 by AugieFackler)