5

Taken from section 1 LGPL v3.0 (https://www.gnu.org/licenses/lgpl-3.0.en.html):

You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.

Section 3 of GPL v3.0 (https://www.gnu.org/licenses/gpl-3.0.html) states:

  1. Protecting Users' Legal Rights From Anti-Circumvention Law.

No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures.

When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures.

Shouldn't section 1 of LGPL v3.0 provide exception to section 5 of GPL v3.0 instead? Section 5 of GPL speaks about conveying modified source versions, which is what is covered by sections 3 and 4 of LGPL v3.0

  • Looking at LGPL and GPL version 2, it's pretty clear that the reference to paragraph 3 should have been updated; it seems to be a simple update-fail. – Glenn Randers-Pehrson Feb 28 '17 at 16:04
  • It seems so, but L/GPL v3.0 is dated to 29 June 2007. Two questions pup-up out of this fact - 1) is it really a mistake that no one has noticed so far? 2) What about all the software that was distributed under LGPL v3.0 to this date? Those distributions were with the (possibly) faulty reference and it could have some unwanted (understatement) consequences. – Dalibor Frivaldsky Feb 28 '17 at 18:54
  • @GlennRanders-Pehrson Considering that an earlier draft of the LGPLv3 explicitly said "without being bound by the second paragraph of section 3 of the GNU GPL" which doesn't really make sense for section 5 for either GPLv2 or v3, since that paragraph merely clarifies that the GPL does not apply copyleft terms to works merely in aggregate (rather than in combination) with the GPL work. I think this really is meant to loosen the DRM provisions in GPLv3 sect. 3, but I don't understand the significance or rationale of their exclusion. – apsillers Feb 28 '17 at 19:08
  • 1
    My understanding of the current language is that, under LGPL v3.0, I may convey covered work under sections 3 and 4 and not be bound by section 3 of GPL v3.0, but I'm still bound by section 5 of GPL v3.0 and I thus must license the entire work under GPL v3.0. – Dalibor Frivaldsky Feb 28 '17 at 19:30
2

I'm not a lawyer, and I was not involved in drafting any GPL license, but below is my common-sense reading of the licenses, starting from an assumption they are legally sound.

Shouldn't section 1 of LGPL v3.0 provide exception to section 5 of GPL v3.0 instead?

Short answer: No, because section 5 contains a permission, not a requirement. The permission has requirements, but to eliminate section 5 would be to eliminate the permission altogether. By contrast, section 3 is entirely a requirement, which as a special exception does not apply while you exercise your permissions to combine and share the library under LGPLv3 sections 3 and 4.

Long answer:

The GPL contains a set of permissions. The LGPLv3 is a set of additional permissions on top of those present in the GPLv3. You assume that the more lax LGPL would need to limit the restrictions present within the permission to convey modified versions in GPLv3 section 5, but this is not the case. Instead, the LGPLv3 simply adds a new permission to share modified versions that stands alongside the more limited permission in the GPLv3.

That is, an LGPLv3-licensed work includes permissions such as

If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:

a) under this License...

And it also includes (i.e., inherits from the GPLv3) the completely separate permission

You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

[...]

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy...

If you want to distribute the work, you choose which permission you'd like to exercise: you are free to choose to exercise a more limited GPL-supplied permission, or you may instead do so under a more lax LGPL-supplied permission, if your distribution meets the LGPL's preconditions.

To highlight another issue with your interpretation (as far as I understand it), LGPLv3 section 1 only applies to sections 3 and 4 of the LGPL. It does not apply to section 2, which would also need to have the requirements of the GPLv3 held back, if your interpretation were correct that GPLv3 requirements always apply to redistribution unless the LGPL explicitly exempts them.

Instead, LGPLv3 section 1 really does seem to eliminate the requirements of section 3. That is, downstream redistributors who share the library in the ways allowed by LGPL sections 3 and 4 may assert that their work is subject to effective technological measures -- i.e., if your software uses an LGPL licensed library, you may still take legal action against users who circumvent DRM in your software, if such circumvention violates laws against DRM-circumvention. Without this permission, section 3 would bar you from taking such legal action.

1

I think @apsillers' general conclusion is correct - that one does not have to license the entire work under GPL v3.0 - but I have a bit different understanding as to why. After reading through the licenses again, to my understanding, there is no language in the licenses that would allow one to "choose a permission" to apply. Following the text of the licenses:

Both licenses begin by some definitions. From GPL v3.0:

A “covered work” means either the unmodified Program or a work based on the Program.

From LGPL v3.0:

“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.

An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.

A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.

Surely, work that meets the definition of a Combined Work (LGPL) also meets the definition of a covered work (GPL). In other words, all works meeting the definition of a covered work (GPL) form a (strict) superset of all works meeting the definition of a Combined Work (LGPL). Section 5 of GPL v3.0 gives one a permission to convey a covered work (and thus any Combined Work), but with some restrictions - one of them being the requirement to license the entire work under GPL v3.0.

However, if the Program one's work is based on is licensed under LGPL v3.0 and the entire work also meets the more restrictive definition of a Combined Work (LGPL), one can convey such work (taken from section 4 of LGPL v3.0)

under terms of your choice

This is what overrides the restriction of point c), section 5 of GPL v3.0 (requirement to license the entire work under GPL v3.0).

So to answer my original question and correct my initial understanding of the language:

  • No, LGPL v3.0 should not provide an exception to section 5 of GPL v3.0
  • No, one does not have to license the entire Combined Work (LGPL) under GPL v3.0 due to section 5 of GPL v3.0 upon conveying
  • This seems right totally correct to me (+1; I would fully support a self-accept here), but also not at all incompatible with my answer -- my view was that it must either be that case that you can "choose a permission" or else be bound by the union of all restrictions attached to all permissions that could apply to what you want to do. In your explanation here, you explain that a Combined Work must also be a covered work, but you're choosing to employ the permission in LGPL sect. 4 rather than the permission in GPL sect 5, right? Or am I subtly misreading your answer? – apsillers Mar 3 '17 at 13:30
  • I would say yes and no. Both GPL and LGPL give you the permission to convey "covered work" and "Combined Work". So when you choose to convey your work, restrictions in both of them apply at the same time. So you are still required to do a), b) and d) of section 5 of GPL, but the very first sentence of section 4 of LGPL allow you to override c) of section 5 of GPL and choose any terms for the entire work. If you could choose to employ just one of the permission, you would not have to, for example, give prominent notices of any modifications ( a) of sec. 5 GPL), which doesn't sound right – Dalibor Frivaldsky Mar 3 '17 at 14:05
  • Section 5 of the GPL definitely does not apply (or, precisely, is not required to apply) if you prepare a Combined Work -- it would be factually incorrect, for example, to do 5(b) and state that the whole modified "program based on work" is under "this license" when it may well not be. Per LGPL sect. 4, only the Library itself must be under the LGPL and the Application component may be licensed in any way you please. I don't see how 5(b) could sensibly apply to an LGPL Combinded Work. (This is in support of my larger point: no items in GPL sect 5 are necessary when using LGPL sect 4.) – apsillers Mar 3 '17 at 14:17
  • Also, LGPL section 4 already includes similar requirements to GPL section 5 (like prominent notices) but they are appropriately tuned for an LGPL-library attached to an Application work, licensed in any arbitrary way. Your intuition is correct that not having to show prominent notices doesn't sound right, but the permissions in the LGPL supply their own requirements for such notices, instead of somehow extracting those requirements from a different permission in the GPL. – apsillers Mar 3 '17 at 14:19
  • Ah, yes, sorry, so then sec. 4 LGPL would override both b) and c) of sec 5 GPL. Imagine a scenario where an LGPL-licensed library is part of a source code of a larger work, and this whole work gets compiled into an executable (so no suitable shared-library mechanism). Under LGPL, you can still convey the entire work under any terms, but you must provide the source code of the library and object code of all the translation units of the application (but not its source - d of sec. 4 LGPL). – Dalibor Frivaldsky Mar 3 '17 at 14:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.