The Mercurial license is GPLv2

Zingo Andersen spamfilter at zingo.org
Tue Aug 5 07:27:28 CDT 2008


Hi
Since a few post mention the mercurail eclipse plugin in this thread
Ill (I'm part of the plugin team) give my view on the things below...

Peter Arrenbrecht wrote:
> On Tue, Aug 5, 2008 at 1:15 AM, Matt Mackall <mpm at selenic.com> wrote:
>>
>> On Mon, 2008-08-04 at 23:10 +0100, Paul Moore wrote:
>>> 2008/8/4 Germán Póo-Caamaño <gpoo at calcifer.org>:
>>> > Certainly, they can run it in a separate process.  The thing is using
>>> > the API to communicate with Mercurial instead of parsing the output.
>>>
>>> So write a (GPL'd) extension to communicate with a persistent
>>> Mercurial process via an easily parseable format (or XML, if you
>>> prefer :-)). Best of both worlds. I assume that would be both in the
>>> letter and the spirit (ie, Matt would be OK with it) of the license.
>>
>> Obviously you could use something like a trivial XMLRPC or eval/pickle
>> wrapper to call all of Mercurial's APIs running in a separate process,
>> even on a separate continent. And the result is probably a derived work
>> of Mercurial, because copyright is more interested in intent than
>> technology.
>>
>> Copyright and the GPL both talk about protection of original and
>> "derived works". If your work is a derived work in the view of copyright
>> law, then it is covered by the GPL. Precisely what does and does not
>> constitute a derived work in software is something that currently can
>> only be answered in a court of law. One possible test is: if Alice's
>> code can't work in any useful sense without Bob's code, then Alice's
>> code is probably a derived work of Bob's.
>
> So, regardless of the interfacing technique, an Eclipse plugin for Hg
> has to be GPL. But also EPL. Question is, can it be both? It seems to
> me that:
>
>   http://en.wikipedia.org/wiki/Eclipse_Public_License#Compatibility
>
> says no. This would be very sad indeed.

My interpertation of EPL/GPLv2 is that they are not combindable at all
The MercurailEclipse plugin started with zlib license but we migrated to
EPL about 6 month ago.

The non combindness of the licenses is not such a big deal in the plugin
code, it basically means that we have to do a "system" call and invoke a
configurated shell command e.g. "hg" and then parse the output as discussed earlier
And this is the way as the plugin always was implemented.
(it even fit so losely to hg that it the bazaar people just took the plugin renamed
mercural to bzr everywhere in the code and after a few tweeks had a working a bazaar plugin)

But is also means that we can't use the oficiall gfx image that would be realy nice.
And we are also interested in reimplementing parts of mercurial in Java to
speed up things up drastically in some situations due to the switches between java/shell
command and there we probabably have to use GPL and distrubute 2 plugins separatly
exporting non link time extentions between them as also discussed.

-- 
Zingo "Stefan" Andersen   (zingo.org and vectrace.com)




More information about the Mercurial mailing list