Changeset - 746eff5786b2
[Not reviewed]
0 2 0
Bradley Kuhn (bkuhn) - 10 years ago 2014-11-12 00:21:21
bkuhn@ebb.org
Link LGPL compliance section to LGPL analysis.

Since so little material is currently given on LGPL compliance, it's
likely best to link back to the chapter on LGPL compliance.

Besides, I don't think there really is anything additional the
compliance guide can add regarding LGPL compliance, other than the
detail license analysis on LGPL already available in that part of the
text.

(Note labels had to be added for the chapters that didn't previously
exist.)
2 files changed with 7 insertions and 5 deletions:
0 comments (0 inline, 0 general)
compliance-guide.tex
Show inline comments
...
 
@@ -1180,73 +1180,73 @@ copyright holders often require.
 
  values personal accountability when things go wrong.  Copyright holders
 
  often require that you name someone within the violating company
 
  officially responsible for Free Software license compliance, and that this
 
  individual serve as the key public contact for the community when
 
  compliance concerns arise.
 

	
 
\item {\bf Periodic Compliance Reports.}  Many copyright holders wish to
 
  monitor future compliance for some period of time after the violation.
 
  For some period, your company may be required to send regular reports on
 
  how many distributions of binary and source have occurred.
 
\end{itemize}
 

	
 
These are just a few possible requirements for reinstatement.  In the
 
context of a GPL violation, and particularly under v2's termination
 
provision, the copyright holder may have a range of requests in exchange
 
for reinstatement of rights.  These software developers are talented
 
professionals from whose work your company has benefited.  Indeed, you are
 
unlikely to find a better value or more generous license terms for similar
 
software elsewhere.  Treat the copyright holders with the same respect you
 
treat your corporate partners and collaborators.
 

	
 
\chapter{Special Topics in Compliance}
 

	
 
There are several other issues that are less common, but also relevant in
 
a GPL compliance situation.  To those who face them, they tend to be of
 
particular interest.
 

	
 
\section{LGPL Compliance}
 
\label{lgpl}
 

	
 
GPL compliance and LGPL compliance mostly involve the same issues.  As we
 
discussed in \S~\ref{derivative-works}, questions of modified versions of
 
software are highly fact-dependant and cannot be easily addressed in any
 
software are highly fact-dependent and cannot be easily addressed in any
 
overview document.  The LGPL adds some additional complexity to the
 
analysis.  Namely, the various LGPL versions permit proprietary licensing
 
of certain types of modified versions.  These issues are well beyond the
 
scope of this document, but as a rule of thumb, once you have determined
 
of certain types of modified versions.  These issues are discussed in greater
 
detail in Chapter~\ref{LGPLv2} and~\ref{LGPLv3}.  However, as a rule of thumb, once you have determined
 
(in accordance with LGPLv3) what part of the work is the ``Application''
 
and what portions of the source are ``Minimal Corresponding Source'', then
 
you can usually proceed to follow the GPL compliance rules that we
 
discussed, replacing our discussion of ``Corresponding Source'' with
 
you can usually proceed to follow the GPL compliance rules that
 
discussed above, replacing our discussion of ``Corresponding Source'' with
 
``Minimal Corresponding Source''.
 

	
 
LGPL also requires that you provide a mechanism to combine the Application
 
with a modified version of the library, and outlines some options for
 
this.  Also, the license of the whole work must permit ``reverse
 
engineering for debugging such modifications'' to the library.  Therefore,
 
you should take care that the EULA used for the Application does not
 
contradict this permission.
 

	
 
%FIXME-URGENT: integrate
 

	
 
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
 
components of the larger non-LGPL’d work, or prohibit decompilation or
 
reverse engineering in order to enhance or fix bugs in the LGPL’d components.
 

	
 
Section 2(a) states that if a licensed work is a software library (defined in
 
\S0 as ``a collection of software functions and/or data prepared so as to be
 
conveniently linked with application programs (which use some of those
 
functions and data) to form executables'') permission is given to distribute
 
modified versions only if those versions are themselves libraries. LGPLv2.1
 
code can therefore not be compliantly taken from its context in a library and
 
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 LGPL’d library with other code, but the LGPL’d code
 
must continue to be structured as a library, and to that library the terms of
 
the license continue to apply.
 

	
 
%FIXME-URGENT: END
 

	
 
\section{Upstream Providers}
 
\label{upstream}
gpl-lgpl.tex
Show inline comments
...
 
@@ -4084,64 +4084,65 @@ No substantive changes have been made in sections 15 and 16.
 

	
 
%% Some have asked us to address the difficulties of internationalization
 
%% by including, or permitting the inclusion of, a choice of law
 
%% provision.  We maintain that this is the wrong approach.  Free
 
%% software licenses should not contain choice of law clauses, for both
 
%% legal and pragmatic reasons.  Choice of law clauses are creatures of
 
%% contract, but the substantive rights granted by the GPL are defined
 
%% under applicable local copyright law. Contractual free software
 
%% licenses can operate only to diminish these rights.  Choice of law
 
%% clauses also raise complex questions of interpretation when works of
 
%% software are created by combination and extension.  There is also the
 
%% real danger that a choice of law clause will specify a jurisdiction
 
%% that is hostile to free software principles.
 

	
 
%% % FIXME-LATER: reword into tutorial, \ref to section 7.
 

	
 
%% Our revised version of section 7 makes explicit our view that the
 
%% inclusion of a choice of law clause by a licensee is the imposition of
 
%% an additional requirement in violation of the GPL.  Moreover, if a
 
%% program author or copyright holder purports to supplement the GPL with
 
%% a choice of law clause, section 7 now permits any licensee to remove
 
%% that clause.
 

	
 

	
 
% FIXME-LATER: does this need to be a section, describing how it was out then in
 
% then out then in? :)
 

	
 
Finally, the FSF shortened the section on ``How to Apply These
 
Terms to Your New Programs'' to just the bare essentials.
 

	
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
\chapter{The Lesser GPL}
 
\label{LGPLv2}
 

	
 
As we have seen in our consideration of the GPL, its text is specifically
 
designed to cover all possible derivative, modified and/or combined works under copyright law. Our
 
goal in designing the GPL was to maximize its use of the controls of
 
copyright law to maximize the number of works that were covered by GPL. 
 

	
 
However, while the strategic goal of software freedom is to bring as much Free Software
 
into the world as possible, particular tactical considerations
 
regarding software freedom dictate different means. Extending the
 
copyleft effect as far as copyright law allows is not always the most
 
prudent course in reaching the goal. In particular situations, even
 
those of us with the goal of building a world where all published
 
software is Free Software realize that full copyleft does not best
 
serve us. The GNU Lesser General Public License (``GNU LGPL'') was
 
designed as a solution for such situations.
 

	
 
% FIXME: integrate
 

	
 
The Lesser General Public License is sometimes described as a ``weak copyleft''
 
license, because code licensed under LGPL’s terms can be combined with code
 
under non-free licenses, and is sometimes used in that fashion.
 
% FIXME-URGENT: end
 
\section{The First LGPL'd Program}
 

	
 
The first example that FSF encountered where such altered tactics were
 
needed was when work began on the GNU C Library. The GNU C Library would
 
become (and today, now is) a drop-in replacement for existing C libraries.
 
On a Unix-like operating system, C is the lingua franca and the C library
 
is an essential component for all programs. It is extremely difficult to
 
construct a program that will run with ease on a Unix-like operating
 
system without making use of services provided by the C library --- even
 
if the program is written in a language other than C\@. Effectively, all
...
 
@@ -4654,64 +4655,65 @@ conditions:
 

	
 
\begin{itemize}
 

	
 
\item Allowing a licensing ``upgrade'' from the LGPL to the GPL\@ (in LGPLv2.1~\S3)
 

	
 
%FIXME-URGENT: integrate
 
But LGPLv2.1 \S3 allows all works under its
 
terms, copy by copy, to be used instead under the terms of GPLv2 or any later
 
version. This provides a pathway for those who do not want to use code under
 
the requirements of LGPLv2.1 to do so under GPLv2 or GPLv3 at their
 
discretion.
 
%FIXME-URGENT: end
 

	
 
\item Binary distribution of the library only, covered in LGPLv2.1~\S4,
 
  which is effectively equivalent to LGPLv2.1~\S3
 

	
 
\item Creating aggregates of libraries that are separate and independent works from
 
  each other, and distributing them as a unit (in LGPLv2.1~\S7)
 

	
 
\end{itemize}
 

	
 

	
 
Due to time constraints, we cannot cover these additional terms in detail,
 
but they are mostly straightforward. The key to understanding LGPLv2.1 is
 
understanding the difference between a ``work based on the library'' and a
 
``work that uses the library.''  Once that distinction is clear, the
 
remainder of LGPLv2.1 is close enough to GPL that the concepts discussed in
 
our more extensive GPL unit can be directly applied.
 

	
 
% FIXME-URGENT: integrate
 

	
 
\chapter{LGPLv3}
 
\label{LGPLv3}
 

	
 
LGPLv3 was designed to rectify the architectural plan of the GNU family of
 
licenses, by making the copyleft license from which LGPLv3 is a combination
 
exception GPLv3. LGPLv3 is therefore an additional permission in the form
 
provided for in GPLv3 \S7, above.
 

	
 
\section{Section 0: Additional Definitions}
 

	
 
Section 0 defines the ``Library'' it covers as a work that presents one or more
 
interfaces at which a ``use'' can be made by an ``Application.'' Class
 
inheritance is ``deemed'' a use of an interface. An ``Application,'' which is
 
other program code using one or more ``Library'' interfaces can be combined
 
with the code on the other side of the interfaces it uses to form a ``Combined
 
Work.''
 

	
 
\section{Section 1: Exception to Section 3 of the GNU GPL}
 

	
 
Section 1 excepts away the interference with use of LGPLv3 code as part of
 
``effective technological measures'' of access limitation for other copyrighted
 
works provided otherwise by GPLv3 \S3.
 

	
 

	
 
\section{Section 2 Conveying Modified Versions}
 

	
 
Section 2 continues to require, as LGPLv2.1 \S2(d) required, that the Library
 
not be modified to require keys, tokens, tables, or other global non-argument
 
data unrelated to function. This is again stated as a ``good faith effort''
 
requirement, but failure to cure on notice is strong evidence of the absence
 
of good faith. Use of GPLv3 terms by removal of the additional permission, as
 
provided for by GPLv3 \S7, is the alternate path to compliance.
 

	
 
\section{Section 3: Object Code Incorporating Material from Library Header Files}
0 comments (0 inline, 0 general)