On Wed, May 16, 2012 at 05:37:52PM +0200, Wichert Akkerman
wrote:> Like Amish Shah who posted earlier this month to this list I find myself
> interested in Xapian, but currently not being able to use it due to its
> GPL license. I am aware of the CommercialLicence wiki page, but have not
> been able to find any current status or anything willing to work on it,
> so I am wondering if perhaps I could help.
The main way people can help is to contribute replacements for things
which we can't relicense. That really requires development expertise
(or funds to pay for development expertise).
So far most of the progress has happened when an better replacement
has been written for some section of the code (e.g. recently I replaced
Xapian::Query - the main motivation was that the old implementation had
several rather fundamental problems, but this also means that
Xapian::Query can now be relicensed).
What's best to work on depends on what your skills and interests are.
If anyone is seriously interested in contributing in this way, it
probably makes most sense to simply discuss what's best for you to
work on, either here, or on IRC.
> As far as I can see several things would need to happen:
>
> * a new license (or set of licenses) will need to be chosen
> * current copyright holders will need to sign off on the relicensing
> * dependencies on GPLed libraries (think getopt) will need to replaced
Actually, GNU getopt is LGPL v2 or later (or at least so says the
licensing boilerplate on the version we're using).
> Looking at older posts and the xapian website it seems that LGPL has
> been suggested as an alternative license, but I can not find a clear
> decision.
I don't think we have a totally firm decision currently, but it is
likely we'd go for either LGPL v2+ or MIT/X (with the latter probably
being the favourite). We currently ask for patches to be dual-licensed
under GPL v2+ and MIT/X, as the latter should give us compatibility with
any Free Software licence:
http://trac.xapian.org/browser/trunk/xapian-core/HACKING#L1228
> Judging by the copyright statements in the sources (for xapian-core)
> there are 18 copyright holders, which is a manageable list:
Some of these are on code which is already under a liberal licence,
so aren't a concern here. Most of the rest have already agreed.
> Does anyone have any idea how willing these copyright holders might be
> to approve relicensing?
The ones we don't have agreement from are:
* BrightStation PLC - it's not even clear who actually holds this
copyright now, and we've heard competing claims. I discussed a
potential LGPL relicensing with one claimant, but it went nowhere
useful. This is where the code Xapian has evolved from was
originally developed, so the oldest code (1999-2001) has this
copyright, and over time it has been gradually replaced, but there
is still a significant amount left.
* Ananova Ltd - Another old copyright (from 2001-2002). I tried
talking to them about relicensing some years ago, but their lawyers
seemed more interested in trying to get me to retroactively sign an
employment contract which I'd refused to sign at the time due to an
unreasonable "no compete" clause.
* Orange PCS Ltd - From 2003 and only affects one file, which is also
(C) BrightStation and Ananova. Orange bought Ananova, so it's
unlikely we'd get this relicensed either, but it doesn't really
matter as we'd need to replace this file anyway.
There are some issues we haven't yet really reached a conclusion on that
I can recall.
* If we go for MIT/X, are we happy to have LGPL dependencies? This
came up in the context of some of the GSoC proposals this year, as
some of the machine learning libraries we might want to use are
LGPL.
* If LGPL dependencies are OK, what about bundled LGPL code (like
GNU getopt)?
* Exactly what are we aiming to relicense?
+ xapian-core: We clearly want to have libxapian.so relicensed, but
the tools probably matter less, and the testsuite could easily
just remain GPL.
+ xapian-bindings: Since I rewrote most of the SWIG interface file
to directly parse the C++ headers, there isn't actually a lot of
the older code left here, but there is still some. It would be
good to sort out the PHP bindings in particular, so they can be
packaged again (currently GPL and PHP licences are apparently
incompatible due to the rather pointless naming restriction the
PHP licence imposes).
+ xapian-omega: This can probably remain GPL. I don't think it's
a top priority anyway.
+ xapian-letor: New code, so easy to relicense.
There's also an argument for consistent licensing, as that's much
easier to understand and to explain to users.
Cheers,
Olly