Post by Antoine Pitrou
For example, take the fncache filename encoding I have done. You can't
tell me you reimplement that encoding without looking at my original
Python code and thus create a derivative work.
This is stupid. Just because you reproduce some algorithm that you read
in a copyrighted textbook or program doesn't mean you are subject to the
copyright of that textbook/program. If it was the case it would be
impossible to develop any software at all.
Antoine, I'm sorry that you seem to get angry here. It might help to
understand that I am not the one who picked the GPL v. 2 for mercurial.
I have contributed to mercurial and my contributions are thus
bound to the GPL v. 2. Forever. Because those contributions are based on a
revision of mercurial subject to the GPL v. 2 and on discussions on the -devel
mailing list, which in the case of fncache are specifically significantly
based on important ideas and suggestions by Peter Arrenbrecht and Matt Mackall
(And certainly others as well who participated in that thread back then.
I can't remember all of them right now without digging through the
Back to your post. You seem to be misunderstand something here.
If we have, say 30 important technical ideas in mercurial, implemented
in Python and this implementation copyrighted and licensed to everybody
under the terms of the GPL v. 2.
Then assume you find those exact 30 technical solutions in the sources
of another project that openly announces that it is a "better" variant
of mercurial with a much more liberal license. I say better here,
because the initiator of the port claims that the ported code is not
restricted anymore by by the very restrictive GPL (I'm not talking
about Andrey here, since he already admitted that his port would be
a derivative work - hence by subject to the GPL v. 2 I say...).
And a lot of people trust that initiator. And start using the "ported"
code in each and every way that the "new" license magically "allows"
now. Including company X who takes that code and modifies it to create
product Y and sell it. Without publishing their changes to the code.
Because the new "magic" license allows that. All based on that
poor initiator's brittle judgement.
Then all I say is it could be hard to convince a court that this
is not a derivative work of mercurial. The initiator of the port
would have to claim that in order to defend the license switch, since
this is the only way to get rid of the GPL.
The GPL is very invasive, you see. It is viral on nature.
Like it or not, be disappointed, or pissed off: it doesn't matter.
The GPL still applies. To Mercurial.
And the imagine the judge may then get some lists with arguments filed by
One such entry on the list could then be the observation that
the fncache encoding algorithm in the offending port
(again -- offending, because of the incompatible license)
uses the exact same "algorithm" as the original python code.
Parties will show the code samples of mercurial and the
magic port. How do you think will those code examples
compare for the fncache encoding?
That's why I said "For example, take the fncache filename encoding".
I agree that finding the fncache filename encoding in another
-- possibly non GPL -- open source SCM might not be enough for
that other project to count as a derivative work.
But if you find 29 other similar technical tricks in that port, I fear
the kitchen might get a lot hotter.
Post by Antoine Pitrou
(it is the very problem with software patents by the way, which are a
completely different issue than copyright)
« would a Java rewrite be considered a derivative work? »
« would be the Mercurial authors be angry (and perhaps sue) if such a
Java implementation were licensed under another OSS license than the GPL
If the answer to the latter question is « no », then the question of what
a court would decide is irrelevent since nobody will sue you. Remember,
free software is not about licenses and legalese; it is about
communities, culture and mutual trust.
I'm sorry, but free software is a whole lot about licenses and
legalese *iff* you announce to start a fork of mercurial with
an incompatible license.
If you plan to break the GPL, then what culture exactly
is that then, please? And how can we have "mutual trust"
in each other then?
If you want to take that risk, please go on.
It might be that it will not have a direct influence on you
as a contributor to that "magic" port. But your effort could
I don't say I'll sue you. But I can't say the contrary either.
All I can say is that the code is licensed to you under GPL v. 2.