guarantee your fr eedom to share and change free softwar e--to make sure the software
is free for all its users.
This license, the Lesser Gener al Public License, applies to some specially designated
software packages--typically libr aries--of the Free Softwar e Foundation and other
authors who decide to use it. Y ou can use it too, but we suggest you first think carefully
about whether this license or the ordinary General P ublic License is the better strategy
to use in any particular case, based on the explanations below.
When we speak of free softwar e, we are referring to fr eedom of use, not price. Our
General Public Licenses ar e designed to make sure that you hav e the freedom to
distribute copies of free softwar e (and charge for this service if you wish); that you
receive source code or c an get it if you want it; that you can change the softwar e and
use pieces of it in new free progr ams; and that you are informed that you can do these
things.
T o protect your rights, we need to make restrictions that forbid distributors to deny
you these rights or to ask you to surr ender these rights. These restrictions translate to
certain responsibilities for you if y ou distribute copies of the library or if you modify it.
For example, if y ou distribute copies of the library, whether gratis or for a fee, y ou must
give the recipients all the rights that we ga ve you. Y ou must make sure that they, too,
receive or can get the sour ce code. If you link other code with the library, you must
provide complete object files to the recipients, so that they can r elink them with the
library after making changes to the library and r ecompiling it. And you must show them
these terms so they know their rights.
We pr otect your rights with a two-step method: (1) we copyright the library, and (2)
we offer you this license, which gives y ou legal permission to copy, distribute and/or
modify the library.
T o protect each distributor, we want to make it very clear that there is no w arranty
for the free library. Also, if the libr ary is modified by someone else and passed on, the
recipients should know that what they hav e is not the original version, so that the
original author’s reputation will not be affected by problems that might be intr oduced
by others.
Finally, software patents pose a constant thr eat to the existence of any free progr am.
We wish to mak e sure that a company cannot effectively restrict the users of a free
program by obtaining a r estrictive license from a patent holder. Therefore, w e insist
that any patent license obtained for a version of the libr ary must be consistent with the
full freedom of use specified in this license.
Most GNU software, including some libraries, is co vered by the ordinary GNU Gener al
Public License. This license, the GNU L esser General Public License, applies to certain
designated libraries, and is quite different fr om the ordinary General Public License.
We use this license for certain libr aries in order to permit linking those libraries into
non-free progr ams.
When a program is linked with a libr ary, whether statically or using a shared library, the
combination of the two is legally speaking a combined work, a derivativ e of the original
library. The ordinary Gener al Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The L esser General Public License permits
more lax criteria for linking other code with the library.
We call this license the “L esser” General Public License because it does Less to pr otect
the user’s freedom than the ordinary Gener al Public License. It also provides other
free softwar e developers Less of an advantage o ver competing non-free programs.
These disadvantages are the reason w e use the ordinary General Public License for
many libraries. Howev er, the Lesser license provides adv antages in certain special
circumstances.
For example, on r are occasions, there may be a special need to encour age the widest
possible use of a certain library, so that it becomes a de-facto standard. T o achieve this,
non-free progr ams must be allowed to use the library. A more fr equent case is that
a free library does the same job as widely used non-fr ee libraries. In this case, there
is little to gain by limiting the free libr ary to free software only, so we use the L esser
General Public License.
In other cases, permission to use a particular library in non-free pr ograms enables a
greater number of people to use a large body of fr ee software. For ex ample, permission
to use the GNU C Library in non-free pr ograms enables many more people to use the
whole GNU operating system, as well as its v ariant, the GNU/Linux operating system.
Although the Lesser Gener al Public License is Less pr otective of the users’ freedom, it
does ensure that the user of a progr am that is linked with the Library has the freedom
and the wherewithal to run that progr am using a modified version of the Library.
The precise terms and conditions for copying, distribution and modification follow. P ay
close attention to the difference between a “work based on the libr ary” and a “work
that uses the library”. The former contains code derived fr om the library, whereas the
latter must be combined with the library in order to run.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any softwar e library or other program which
contains a notice placed by the copyright holder or other authorized party saying it
may be distributed under the terms of this Lesser Gener al Public License (also called
“this License”). Each licensee is addressed as “y ou”.
A “library” means a collection of software functions and/or data prepar ed so as to be
conveniently linked with application pr ograms (which use some of those functions and
data) to form executables.
The “Library”, below, refers to an y such software library or work which has been
distributed under these terms. A “work based on the Library” means either the
Library or any derivativ e work under copyright law: that is to say, a work containing
the Library or a portion of it, either verbatim or with modifications and/or tr anslated
straightforwar dly into another language. (Hereinafter, translation is included without
limitation in the term “modification”.)
“Source code” for a work means the pr eferred form of the work for making
modifications to it. For a libr ary, complete source code means all the source code for all
modules it contains, plus any associated interface definition files, plus the scripts used
to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered b y this
License; they are outside its scope. The act of running a program using the Libr ary is
not restricted, and output from such a progr am is covered only if its contents constitute
a work based on the Library (independent of the use of the Library in a tool f or writing
it). Whether that is true depends on what the Library does and what the progr am that
uses the Library does.
1. Y ou may copy and distribute verbatim copies of the Library’s complete source code
as you receive it, in an y medium, provided that you conspicuously and appropriately
publish on each copy an appropriate copyright notice and disclaimer of warranty; k eep
intact all the notices that refer to this License and to the absence of any warranty; and
distribute a copy of this License along with the Library.
Y ou may charge a fee for the physical act of transf erring a copy, and you may at your
option offer warranty pr otection in exchange for a fee.
2. Y ou may modify your copy or copies of the Library or any portion of it, thus forming
a work based on the Library, and copy and distribute such modifications or work under
the terms of Section 1 above, provided that you also meet all of these conditions:
a) The modified work must itself be a software libr ary.
b) Y ou must cause the files modified to carry prominent notices stating that you
changed the files and the date of any change.
c) Y ou 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 f unction or a table of data to be
supplied by an application progr am that uses the facility, other than as an argument
passed when the facility is invoked, then y ou 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 its purpose r emains meaningful.
(For example, a f unction in a library to compute square roots has a purpose that is
entirely well-defined independent of the application. Theref ore, 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 fr om 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 wr ote it.
Thus, it is not the intent of this section to claim rights or contest your rights to
work written entirely by y ou; 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 w ork not based on the Library with the Library
(or with a work based on the Library) on a volume of a stor age or distribution medium
does not bring the other work under the scope of this License.
3. Y ou may opt to apply the terms of the ordinary GNU General Public License instead
of this License to a given copy of the Library. T o do this, you must alter all the notices
that refer to this License, so that they r efer to the ordinary GNU General Public License,
version 2, instead of to this License. (If a newer version than version 2 of the or dinary
GNU General Public License has appear ed, 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 irrev ersible for that copy, so the ordinary
GNU General Public License applies to all subsequent copies and deriv ative 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 libr ary.
4. Y ou 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 1 and 2 above
provided that you accompan y it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy from a designated
place, then offering equivalent access to copy the source code fr om the same place
satisfies the requirement to distribute the sour ce code, even though third parties are
not compelled to copy the source along with the object code.
5. A program that contains no derivativ e of any portion of the Library, but is designed to
work with the Library by being compiled or linked with it, is c alled a “work that uses the
Library”. Such a work, in isolation, is not a derivativ e work of the Library, and therefore
falls outside the scope of this License.
However, linking a “work that uses the Libr ary” with the Library creates an executable
that is a derivative of the Library (because it contains portions of the Libr ary), rather
than a “work that uses the library”. The executable is ther efore covered b y this License.
Section 6 states terms for distribution of such executables.
When a “work that uses the Library” uses material fr om a header file that is part of
the Library, the object code for the work may be a derivative w ork 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 libr ary. 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 deriv ative
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 Libr ary, 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 “w ork that
uses the Library” with the Library to pr oduce 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 rev erse engineering for
debugging such modifications.
Y ou 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 cov ered by this License. Y ou must supply a copy of
this License. If the work during execution displays copyright notices, y ou must include
the copyright notice for the Library among them, as well as a r eference 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-r eadable source
code for the Library including whatever changes w ere 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 Libr ary”, as object
code and/or source code, so that the user can modify the Library and then r elink to
produce a modified executable containing the modified Libr ary. (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 Libr ary. A suitable
mechanism is one that (1) uses at run time a copy of the library already pr esent on the
user’s computer system, rather than copying library f unctions into the executable, and
(2) will operate properly with a modified version of the libr ary, 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 thr ee 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 fr om the same
place.
e) Verify that the user has alr eady received a copy of these materials or that you hav e
already sent this user a copy.
For an executable, the r equired form of the “work that uses the Library” must include
any data and utility programs needed f or reproducing the executable fr om 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 ex ecutable runs,
unless that component itself accompanies the executable.
It may happen that this requirement contr adicts the license restrictions of other
proprietary libraries that do not normally accompany the oper ating system. Such
a contradiction means you cannot use both them and the Library together in an
executable that you distribute.
7. Y ou may place library facilities that are a work based on the Libr ary side-by-side in
a single library together with other library facilities not cov ered by this License, and
distribute such a combined library, provided that the separ ate distribution of the work
based on the Library and of the other library facilities is otherwise permitted, and
provided that you do these tw o things:
a) Accompany the combined library with a copy of the same work based on the Libr ary,
uncombined with any other library facilities. This must be distributed under the terms
of the Sections above.
b) Give prominent notice with the combined library of the f act that part of it is a work
based on the Library, and explaining where to find the accompanying uncombined
form of the same work.
8. Y ou may not copy, modify, sublicense, link with, or distribute the Library except
as expressly provided under this License. An y attempt otherwise to copy, modify,
sublicense, link with, or distribute the Library is void, and will automatically terminate
your rights under this License. However, parties who ha ve received copies, or rights,
from you under this License will not ha ve their licenses terminated so long as such
parties remain in full compliance.
9. Y ou are not required to accept this License, since you ha ve not signed it. However,
nothing else grants you permission to modify or distribute the Libr ary or its derivative
works. These actions are prohibited by law if y ou do not accept this License. Therefore,
by modifying or distributing the Library (or any w ork based on the Library), you indicate
your acceptance of this License to do so, and all its terms and conditions for copying,
distributing or modifying the Library or works based on it.
10. Each time you r edistribute the Library (or any work based on the Library), the
recipient automatically receiv es a license from the original licensor to copy, distribute,
link with or modify the Library subject to these terms and conditions. Y ou may not
impose any further restrictions on the recipients’ ex ercise of the rights granted herein.
Y ou are not responsible for enforcing compliance b y third parties with this License.
11. If, as a consequence of a court judgment or allegation of patent infringement or
for any other reason (not limited to patent issues), conditions ar e imposed on you
(whether by court order, agreement or otherwise) that contr adict the conditions of
this License, they do not excuse you fr om the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this License and any
other pertinent obligations, then as a consequence you may not distribute the Library
at all. For example, if a patent license w ould not permit royalty-fr ee redistribution of
the Library by all those who receiv e copies directly or indirectly through you, then the
only way you could satisfy both it and this License would be to r efrain entirely fr om
distribution of the Library.
If any portion of this section is held invalid or unenforceable under an y particular
circumstance, the balance of the section is intended to apply, and the section as a
whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other
property right claims or to contest validity of any such claims; this section has the
sole purpose of protecting the integrity of the free softwar e distribution system
which is implemented by public license practices. Many people hav e made generous
contributions to the wide range of software distributed thr ough that system in reliance
on consistent application of that system; it is up to the author/donor to decide if he or
she is willing to distribute software through an y other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence
of the rest of this License.
12. If the distribution and/or use of the Library is restricted in certain countries either
by patents or by copyrighted interfaces, the original copyright holder who places the
Library under this License may add an explicit geographical distribution limitation
excluding those countries, so that distribution is permitted only in or among countries
not thus excluded. In such case, this License incorporates the limitation as if written in
the body of this License.
13. The Fr ee Software Foundation may publish r evised and/or new versions of the
Lesser Gener al Public License from time to time. Such new versions will be similar
in spirit to the present version, but may differ in detail to addr ess new problems or
concerns.
Each version is giv en a distinguishing version number. If the Library specifies a version
number of this License which applies to it and “any later version”, you ha ve the option
of following the terms and conditions either of that version or of any later version
published by the Fr ee Software Foundation. If the Libr ary does not specify a license
version number, you may choose an y version ever published by the F ree Software
Foundation.
14. If you wish to incorporate parts of the Libr ary into other free programs whose
distribution conditions are incompatible with these, write to the author to ask for
permission. For softwar e which is copyrighted by the Free Softw are Foundation, write
to the Fr ee Software Foundation; we sometimes mak e exceptions for this. Our decision
will be guided by the two goals of preserving the fr ee status of all derivatives of our free
software and of promoting the sharing and r euse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE LIBRARY, T O THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STA TED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE LIBRARY “AS IS” WITHOUT W ARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED T O, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS F OR A PARTICULAR PURPOSE. THE ENTIRE RISK AS T O
THE QUALITY AND PERFORMANCE OF THE LIBRAR Y IS WITH YOU. SHOULD THE LIBRARY
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESS ARY SERVICING, REP AIR OR
CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR A GREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER P ARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE T O YOU FOR DAMA GES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENT AL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCL UDING BUT NOT
LIMITED TO LOSS OF D AT A OR DAT A BEING RENDERED INACCURATE OR L OSSES
SUSTAINED B Y YOU OR THIRD PAR TIES OR A FAIL URE OF THE LIBRARY TO OPERA TE WITH
ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER P ARTY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These T erms to Your New Libr aries
If you develop a new libr ary, and you want it to be of the greatest possible use to the
public, we recommend making it fr ee software that everyone can r edistribute and
change. Y ou can do so by permitting redistribution under these terms (or, alternatively,
under the terms of the ordinary General P ublic License).
T o apply these terms, attach the following notices to the library. It is safest to attach
them to the start of each source file to most effectively conve y the exclusion of
warranty; and each file should hav e at least the “copyright” line and a pointer to where
the full notice is found.
one line to give the library’s name and an idea of what it does.> C opyright (C) year
name of author
This library is free softw are; you can redistribute it and/or modify it under the terms of
the GNU Lesser Gener al Public License as published by the Fr ee Software Foundation;
either version 2.1 of the License, or (at your option) any later v ersion.
This library is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without ev en the implied warranty of MERCHANT ABILITY or FITNESS FOR A
PAR TICULAR PURPOSE. See the GNU Lesser General P ublic License for more details.
Y ou should have received a copy of the GNU L esser General Public License along with
this library; if not, write to the F ree Software F oundation, Inc., 51 Franklin Street, F ifth
Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
Y ou should also get your employer (if you work as a pr ogrammer) or your school, if
any, to sign a “copyright disclaimer” for the library, if necessary. Her e is a sample; alter
the names:
Y oyodyne, Inc., hereby disclaims all copyright inter est in the library `Fr ob’ (a library for
tweaking knobs) written by James Random Hacker.
signature of T y Coon, 1 April 1990
T y Coon, President of Vice
34