access to copy the source code from the same place
satisfies the requirement to distribute the source code, even
though third parties are not compelled to copy the source
along with the object code.
5.
A program that contains no derivative of any portion
of the Library, but is designed to work with the
Library by being compiled or linked with it, is called
a "work that uses the Library". Such a work, in
isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the
Library creates an executable that is a derivative of the
Library (because it contains portions of the Library), rather
than a "work that uses the library". The executable is
therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a
header file that is part of the Library, the object code for the
work may be a derivative work of the Library even though
the source code is not.
Whether this is true is especially significant if the work can
be linked without the Library, or if the work is itself a
library. The threshold for this to be true is not precisely
defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and
small inline functions (ten lines or less in length), then the
use of the object file is unrestricted, regardless of whether
it is legally a derivative work. (Executables containing this
object code plus portions of the Library will still fall under
Section 6.)
Otherwise, if the work is a derivative of the Library, you
may distribute the object code for the work under the terms
of Section 6.
Any executables containing that work also fall under
Section 6, whether or not they are linked directly with the
Library itself.
6.
As an exception to the Sections above, you may also
combine or link a "work that uses the Library" with
the Library to produce a work containing portions of
the Library, and distribute that work under terms of
your choice, provided that the terms permit
modification of the work for the customer's own use
and reverse engineering for debugging such
modifications.
You must give prominent notice with each copy of the
work that the Library is used in it and that the Library and
its use are covered by this License. You must supply a
copy of this License. If the work during execution displays
copyright notices, you must include the copyright notice
for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you
must do one of these things:
a)
Accompany the work with the complete
corresponding machine-readable source code for
the Library including whatever changes were
used in the work (which must be distributed
under Sections 1 and 2 above); and, if the work is
an executable linked with the Library, with the
complete machine-readable "work that uses the
Library", as object code and/or source code, so
that the user can modify the Library and then
relink to produce a modified executable
containing the modified Library. (It is
understood that the user who changes the
contents of definitions files in the Library will
not necessarily be able to recompile the
application to use the modified definitions.)
b)
Use a suitable shared library mechanism for
linking with the Library. A suitable mechanism
is one that (1) uses at run time a copy of the
library already present on the user's computer
system, rather than copying library functions into
the executable, and (2) will operate properly with
a modified version of the library, if the user
installs one, as long as the modified version is
interface-compatible with the version that the
work was made with.
c)
Accompany the work with a written offer, valid
for at least three years, to give the same user the
materials specified in Subsection 6a, above, for a
charge no more than the cost of performing this
distribution.
d)
If distribution of the work is made by offering
access to copy from a designated place, offer
equivalent access to copy the above specified
materials from the same place.
e)
Verify that the user has already received a copy
of these materials or that you have already sent
this user a copy.
For an executable, the required form of the "work that uses
the Library" must include any data and utility programs
needed for reproducing the executable from it. However,
as a special exception,
the materials to be distributed need not include anything
that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so
on) of the operating system on which the executable runs,
unless that component itself accompanies the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not
normally accompany the operating system. Such a
contradiction means you cannot use both them and the
Library together in an executable that you distribute.
GNU LESSER GENERAL PUBLIC LICENSE
39