Licensing of Mercurial: "GPL" (any), "GPLv2" or "GPLV2 or later"?

Arne Babenhauserheide arne_bab at web.de
Sun Aug 3 23:17:31 CDT 2008


Am Samstag 02 August 2008 14:20:19 schrieb Adrian Buehlmann:
> Since there is no term "any later version" stated anywhere in the sources
> *and* http://selenic.com/repo/index.cgi/hg/file/cbdfd08eabc9/COPYING is GPL
> v2, it's GPL v2 only.

Sorry for nitpicking, but licensing issues are where I prefer to nitpick 
instead of being picked and downed later on... 

As far as I understand it, only linking to a GPLv2 doesn't make a statement 
about the GPL version you support, only that the GPLv2 is the text you give 
the users. 

For a clear copyright header you should follow the lines given in the license: 

"""
  To do so, attach the following notices to the program.  It is safest
  to attach them to the start of each source file to most effectively
  convey the exclusion of warranty; and each file should have at least
  the "copyright" line and a pointer to where the full notice is found.
  
      <one line to give the program's name and a brief idea of what it does.>
      Copyright (C) <year>  <name of author>

      This program is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published by
      the Free Software Foundation; either version 2 of the License, or
      (at your option) any later version.
"""
- http://selenic.com/repo/index.cgi/hg/file/cbdfd08eabc9/COPYING

A short, crude version check shows unclear versioning (I show only relevant 
lines in order of appearance): 

$ grep -R GPL * ; grep -R "GNU General Public License" *  

contrib/mercurial.el:You can find the source code, license (GPL v2)
contrib/logo-droplets.svg:         
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /><dc:date>Feb 12 
2008</dc:date></cc:Work><cc:License
...
contrib/mercurial.spec:License: GPL
...
doc/hg.1.txt: Free use of this software is granted under the terms of the GNU 
General Public License (GPL).
... 
mercurial/version.py:# This program is free software under the GNU GPL (>=v2)
...
mercurial/diffhelpers.c: * of the GNU General Public License v2, incorporated 
herein by reference.
...

All in all I counted (with my crude grepping and quite error-prone human eyes) 

* 4 files which state GPLv2 only: 
	- contrib/mercurial.el
	- contrib/logo-droplets.svg
	- contrib/mq.el
	- mercurial/diffhelpers.c

* 130 files which just say "GPL" (I already excluded two japanese files where 
I could only read the letters "GPL", but no surrounding text: 
doc/ja/hg.1.ja.txt and doc/ja/hg.1.ja.txt) as well as, very notably, 

* the mercurial/version.py file which clearly states GPL ">=v2". 

So to my understanding, if you want to use Mercurial under the conditions of 
the GPLv3 (compatible with the AGPL), you'll have to either find the authors 
of those 4 "GPLv2 only files" and ask them to relicense, or replace those 
files with simple "GPL" or "GPLv2 or later" files. 

Best wishes, 
Arne

-- Weblog: http://blog.draketo.de
-- Infinite Hands: http://infinite-hands.draketo.de - singing a part of the 
history of free software. 
-- Ein Würfel System: http://1w6.org - einfach saubere (Rollenspiel-) Regeln

-- PGP/GnuPG: http://draketo.de/inhalt/ich/pubkey.txt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://selenic.com/pipermail/mercurial/attachments/20080804/a907927d/attachment.pgp 


More information about the Mercurial mailing list