[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LGPL v3 compatibilty



On Sun, Jul 01, 2007 at 04:38:56PM +0200, Francesco Poli wrote:
> On Sun, 1 Jul 2007 13:58:08 +0200 Andreas Metzler wrote:
> > LGPLv3 libraries
> > could not be used in GPLv2-only programs.
> I'm afraid that this incompatibility is still true.
> AFAIUI, when you redistribute a GPLv2-only program in compiled form, the
> GPLv2 insists that the libraries the program links with (excluding
> system libraries...) are available under GPLv2.

It excludes system libraries that are shipped with the application
though. Since Debian ships everything together in main, we haven't been
able to make use of that exception with GPLv2. [0]

The GPLv3's system libraries extension is broader, and covers at least
libc, which is 95% of the problem. So while there's a problem for us
in linking GPLv2 stuff against non-GPLv2 compatible system libraries
(like OpenSolaris's libc), there's no problem for us linking GPLv3 stuff
against non-GPLv3 compatible system libraries.

But for GPLv2 only apps, the same argument that stops us linking them to
OpenSolaris/CDDL libc applies to LGPLv3 libc too, which will presumably
include GNU libc very soon, if it doesn't already.

> All this, assuming that the FSF's legal theory of linking is correct:
> this theory has never been tested in court, AFAIK, hence we do not know
> if it would hold.  However, we have to assume that it's correct, to be
> on the safe side.

We've assumed that for three main reasons, I think:

	(1) assuming otherwise would seem like disagreeing with the GPL, and
	    even if that's legally supportable, we'd rather support the GPL

	(2) supporting that interpretation seems legally plausible,
	    and is simpler to deal with than trying to draw a different
	    line between static and dynamic linking

	(3) the more strongly viral the GPL is treated, the more effective
	    it is as a copyleft license, promoting the freedoms and such
	    that we've stood for

By "we", I mean "Debian", in particular per discussions on debian-legal
and other lists that've influenced/decided ftpmaster policy.

Eben Moglen's (reportedly) claimed otherwise since at least the start
of the GPLv3 drafting [1]:

] During the discussion[1], Eben Moglen took special care to assert
] that he always believed the GPL v2 should be interpreted in the way
] GPL v3 now makes explicit - it was never the intent to prevent
] aggregation of otherwise unrelated code because of the GPL being
] triggered just because a system function or C runtime was invoked. I
] found that clarification especially valuable.

which makes sense, and probably does away with the first concern
(if the FSF doesn't agree with interpreting the GPLv2 that strongly,
there's not a lot of point to us doing so, particularly when GPLv3 can't
be interpreted that strongly), and the second as well (it's much less
legally plausible if the FSF disavow the interpretation, and the line
we'd have to draw is one we need to draw for GPLv3 anyway). The third
point might still be an issue, but that's about it.

Playing it safe about respecting the wishes of GPLv2 authors is definitely
a concern, but I think the three issues above have always decided the
matter before that's actually come up.

I believe Sam's currently waiting on a response from the FSF licensing
folks to get a first hand take on the FSF's position that we've only
had third hand via posts paraphrasing Eben up 'til now.

Note that _if_ we do stick to the view we've taken up until now, when
we have a LGPLv3 only glibc in the archive, we'll no longer be able to
distribute GPLv2-only compiled executables.

Cheers,
aj

[0] Other people who've distributed KDE separately to Debian, otoh,
    have been able to (IMO) fairly reasonably claim that Qt under the
    QPL was a system library for Debian systems, and thus make use of
    the exception to distribute GPLed KDE binaries.

[1] http://www.opensolaris.org/jive/thread.jspa?messageID=21134&#21134

Attachment: signature.asc
Description: Digital signature


Reply to: