Integrate this LGPL text properly.

Upon a more detailed reading, it's clear this pasted text belongs in the
LGPL license analysis section, but that in fact some other text was
needed to improve the end of the section on LGPL in the compliance
guide.
This commit is contained in:
Bradley M. Kuhn 2014-11-11 19:21:50 -05:00
parent 746eff5786
commit e24942c98b
2 changed files with 50 additions and 27 deletions

View file

@ -1227,26 +1227,26 @@ engineering for debugging such modifications'' to the library. Therefore,
you should take care that the EULA used for the Application does not you should take care that the EULA used for the Application does not
contradict this permission. contradict this permission.
%FIXME-URGENT: integrate Thus, under the terms of LGPL, you must refrain from license terms on works
Under the terms of LGPL, they must also refrain from license terms on works
based on the licensed work that prohibit replacement of the licensed based on the licensed work that prohibit replacement of the licensed
components of the larger non-LGPLd work, or prohibit decompilation or components of the larger non-LGPLd work, or prohibit decompilation or
reverse engineering in order to enhance or fix bugs in the LGPLd components. reverse engineering in order to enhance or fix bugs in the LGPLd components.
Section 2(a) states that if a licensed work is a software library (defined in LGPLv3 is not surprisingly easier to understand and examine from a compliance
\S0 as ``a collection of software functions and/or data prepared so as to be lens, since the FSF was influenced in LGPLv3's drafting by questions and
conveniently linked with application programs (which use some of those comments on LGPLv2.1 over a period of years. Admittedly, LGPLv2.1 is still
functions and data) to form executables'') permission is given to distribute in wide use, and thus compliance with LGPLv2.1 remains a frequent topic you
modified versions only if those versions are themselves libraries. LGPLv2.1 may encounter. The best advice there is careful study of
code can therefore not be compliantly taken from its context in a library and Chapter~\ref{LGPLv2}.
placed in a non-library modified version or work based on the work. Section 6
does not provide an exception for this rule: a combination may be made of a
modified version of an LGPLd library with other code, but the LGPLd code
must continue to be structured as a library, and to that library the terms of
the license continue to apply.
%FIXME-URGENT: END However, to repeat a key point here made within that chapter: Note though
that, since the LGPLv2.1 can be easily upgraded to GPLv2-or-later, in the
worst case you simply need to comply as if the software was licensed under
GPLv2. The only reason you must consider the question of whether you have a
``work that uses the library'' or a ``work based on the library'' is when you
wish to take advantage of the ``weak copyleft'' effect of the Lesser GPL\@.
If GPLv2-or-later is an acceptable license (i.e., if you plan to copyleft the
entire work anyway), you may find this an easier option.
\section{Upstream Providers} \section{Upstream Providers}
\label{upstream} \label{upstream}

View file

@ -4438,20 +4438,43 @@ have a ``work based on the library.'' If the answer is ``no'' to the
first but ``yes'' to the second, you are in a gray area between ``work first but ``yes'' to the second, you are in a gray area between ``work
based on the library'' and a ``work that uses the library.'' based on the library'' and a ``work that uses the library.''
In our years of work with the LGPLv2.1, however, we have never seen a work You can also perform a similar same analysis through careful consideration of
of software that was not clearly one or the other; the line is quite the license text itself. LGPLv2~\S2(a) states that if a licensed work is a
bright. At times, though, we have seen cases where a particularly large work software library (defined in LGPLv2~\S0 as ``a collection of software
in some ways seemed to be both to both a work that used the library and functions and/or data prepared so as to be conveniently linked with
a work based on the library. We overcame this problem by application programs (which use some of those functions and data) to form
dividing the work into smaller subunits. It was soon discovered that executables''), you have permission to distribute modified versions only if
what we actually had were three distinct components: the original those versions are themselves libraries. LGPLv2.1 code can therefore not be
LGPL'd work, a specific set of works that used that library, and a compliantly taken from its context in a library and placed in a non-library
specific set of works that were based on the library. Once such modified version or work based on the work. For its part, LGPLv2~\S6 does
distinctions are established, the licensing for each component can be not provide an exception for this rule: a combination may be made of a
considered independently and the LGPLv2.1 applied to each work as modified version of an LGPLd library with other code, but the LGPLd code
prescribed. must continue to be structured as a library, and to that library the terms of
the license continue to apply.
Either way you view the rules, these issues are admittedly complicated.
Nevertheless, In our years of work with the LGPLv2.1, however, we have never
seen a work of software that was not clearly one or the other; the line is
quite bright. At times, though, we have seen cases where a particularly large
work in some ways seemed to be both to both a work that used the library and
a work based on the library. We overcame this problem by dividing the work
into smaller subunits. It was soon discovered that what we actually had were
three distinct components: the original LGPL'd work, a specific set of works
that used that library, and a specific set of works that were based on the
library. Once such distinctions are established, the licensing for each
component can be considered independently and the LGPLv2.1 applied to each
work as prescribed.
Finally, note though that, since the LGPLv2.1 can be easily upgraded to
GPLv2-or-later, in the worst case you simply need to comply as if the
software was licensed under GPLv2. The only reason you must consider the
question of whether you have a ``work that uses the library'' or a ``work
based on the library'' is when you wish to take advantage of the ``weak
copyleft'' effect of the Lesser GPL\@. If GPLv2-or-later is an acceptable
license (i.e., if you plan to copyleft the entire work anyway), you may find
this an easier option.
\section{Subtleties in Defining the Application} \section{Subtleties in Defining the Application}
In our discussion of the definition of ``works that use the library,'' we In our discussion of the definition of ``works that use the library,'' we