Skip to content

Thinking / ranting on the GPL changes

Saturday, 14 July 2007  |  brad hards

I have been working on providing Microsoft Exchange capability for Akonadi on-and-off for a while. It is coming together - I can suck messages off the server into akonadiconsole. More on that later (or as part of the commit-digest, perhaps).

There is an emerging problem though. The akonadi provider relies on the OpenChange libraries, which in turn rely on Samba 4. That was all fine until the GPL version 3 release. The samba team has decided to adopt GPLv3.

The problem is that GPLv2 and GPLv3 are not compatible. My code is fine - it is "GPLv2 or later". The incompatibility is that Qt is released under GPLv2 (not "or later") - see the top of LICENSE.GPL in your Qt4.

Based on my understanding, that means that KDE4 can't use anything from Samba4 (or Samba3.2+) and Qt4 in the same application.

This is not purely an issue with Samba - GnuPG is has also switched to GPLv3, and I'm guessing GPGME will follow. I'm sure there are other libraries that are switching to GPLv3, and yet others that are GPLv2 only.

There are technical solutions to some of these problems - for example, the openchange resource (which is a separate application) could avoid using anything from Qt/KDE; we could link the smbclient kioslave to the Samba 3.0.25b (forever); and we could find other ways to use GnuPG without GPGME. All of those require precious programmer time, and restrict our options for the future.

I'm not sure I care enough about exchange support to develop so much from scratch. Maybe it would be easier to just delete the code - it will still be in SVN if anyone wants to try.

Its a pity that the FSF couldn't find a way to make GPLv2 and GPLv3 compatible.

I hope the GPLv3 really is good enough to justify this impact.