72
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent
notices stating that you changed the tiles and the date
of
any change.
c) You must cause the whole
of
the work to be licensed at
no charge to all third parties under the terms
of
this
License.
d) If a facility
in
the modified Library refers to a function
or
a table
of
data to be supplied by an application program
that uses the facility, other than as an argument passed
when the facility
is
invoked, then you must make a good
faith effort to ensure that. in the event
an
application does
not supply such function
or
table, the facility still
operates, and performs whatever part
of
it~
purpose
remains meaningful.
(Forexample, a function in a library to compute square roots
has a purpose that
is
entirely well-defined independent
of
the
application. Therefore. Subsection 2d requires that any
application-supplied function
or
table used by this function
must be optional: if the application does not supply it. the
square root function must still compute square roots.)
These requirements apply
to
the modified work as a whole.
If
identifiable sections
of
that work are not derived from the
Library. and can be reasonably considered independent and
separate works in themselves, then this License, and its
terms. do not apply to those sections when you distribute
them as separate works. But when you distribute the same
sections as part
of
a whole which
is
a work based on the
Library. the distribution
of
the whole must be on the terms
of
this License, whose permissions for other licensees extend to
the entire whole, and thus to each and every part regardless
of
who wrote it.
Thus, it is not the intent
of
this section to claim rights
or
contest
your rights to work written entirely by you; rather, the intent
is
to exercise the right
to
control the distribution
of
derivative
or
collective works based on the Library.
In
addition, mere aggregation
of
another work not based on the
Library with the Library
(or
with a work based on the Library)
on a volume
of
a storage
or
distribution medium does not bring
the other work under the scope
of
this License.
3. You may opt to apply the terms
of
the ordinary
GNU
General
Public License instead
of
this License to a given copy
of
the
Library.
To
do
this, you must alter all the notices that referto
this License, so that they refer to the ordinary GNU General
Public License, version 2, instead
of
to this License.
(If
a
newer version than version 2
of
the ordinary GNU General
Public License has appeared. then you can specify that
version instead if you wish.) Do not make any other change
in these notices.
Once this change
is
made
in
a given copy, it
is
irreversible for
that copy, so the ordinary GNU General Public License applies
to all subsequent copies and derivative works made from that
copy.
This option
is
useful when you wish to copy part
of
the code
of
the Library into a program that
is
not a library.
4. You may copy and distribute the Library (or a portion
or
derivative
of
it, under Section 2)
in
object code
or
executable
form under the terms
of
Sections I and 2 above provided that
you accompany it with the complete corresponding machine-
readable source code. which must be distributed under the
terms
of
Sections I and 2 above on a medium customarily
used for software interchange.
I
I'
distribution
of
object code
is
made by offering access to copy
from a designated place. then offering equivalent 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 "workthat 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 assessors, 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 I and 2 above); and,
if
the
work is
an
executable linked with the Library, with the
complete machine-readable "workthat uses the Library".
as object code and/or source code, so that the user can
modify the Library and then reiink 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
(I)
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, offerequivalent 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.