[R-pkg-devel] GPL + other licence
David C Sterratt
david.c.sterratt at ed.ac.uk
Fri Apr 6 20:44:00 CEST 2018
I'd appreciate help with a licence conundrum I have with the geometry
package (https://davidcsterratt.github.io/geometry/) that I maintain.
The geometry package contains some functions (e.g. convhulln(),
delaunayn()) that wrap the Qhull library (http://www.qhull.org), which
has its own, non-GPL, licence. The geometry package includes this source
code, and wraps it in C files that have GPL licence headers.
The geometry package also has functions that are not derived from Qhull
code and which are licensed under GPL, including a number of functions
that are ports of the Matlab distmesh package, and some other useful
functions to do with triangulation and coordinate systems (e.g.
tsearch() and cart2bary()).
I inherited this situation when I took over maintaining the package 8
years ago, though I have added functions to both Qhull-derived and GPL
In October last year I submitted the latest version of the geometry
package, which adds quite a bit of useful functionality:
I received the following response from the CRAN maintainers:
For the license. It is CRAN policy that a package has to have a single
license. Can you manage to convince all copyright hoders (e.g. of
Qhull) to relicense under GPL?
I tried persuading the author of Qhull. He replied:
There's only one license and that's the one included with the code
(COPYING.txt). Several years ago, I tried to clarify the license with
the Univ. of Minn. but had no success. So I think the best approach is
to keep the original license as is. It has not been an issue so far.
At the same time as I wrote to the Qhull maintainer, I wrote to the CRAN
I have written to the Qhull maintainer, but I doubt he will want to
change the license, since Qhull is used in proprietary software such
as MATLAB. Assuming this is the case, we'll have to create a new
package - I would need help with managing the change for dependent
The CRAN maintainers replied:
Please try to find out how this can work.
In principle I could create a package containing only the functions
derived from Qhull (but still with GPL headers in the wrapper C files,
But wouldn't this package still have to have two licenses, due to the
I don't want to start on any package splitting without having a plan
agreed that I know will be OK for CRAN. It would be quite a bit of work,
as there are a number of packages that depend on geometry, so I would
have to check all the revdeps for functions that they call in the
geometry package. I would have to then perhaps write wrapper functions
in the geometry package to make sure any functions moved to a new
package still worked when called from revdeps.
I know the CRAN maintainers are busy, so any help from the list would be
David C Sterratt, Senior Research Associate
Institute for Adaptive and Neural Computation, School of Informatics
University of Edinburgh, 10 Crichton Street, Edinburgh EH8 9AB, Scotland, UK
http://homepages.inf.ed.ac.uk/sterratt - tel: +44 131 651 1739
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
More information about the R-package-devel