Software License Notice
the exclusion of warranty; and each fi le should
have at least the “copyright” line and a pointer to
where the full notice is found.
<one line to give the program’s name and a
brief idea of what it does.>
Copyright © <year> <name of author>
This program is free software; you can
redistribute it and/ or modify it under the
terms of the GNU General Public License as
published by the Free Software Foundation;
either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope
that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the
GNU General Public License along with this
program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA.
Also add information on how to contact you by
electronic and paper mail.
If the program is interactive, make it output
a short notice like this when it starts in an
interactive mode:
Gnomovision version 69, Copyright © year
name of author
Gnomovision comes with ABSOLUTELY NO
WARRANTY; for details type ‘show w’. This
is free software, and you are welcome to
redistribute it under certain conditions; type
‘show c’ for details.
The hypothetical commands ‘show w’ and
‘show c’ should show the appropriate parts
of the General Public License. Of course, the
commands you use may be called something
other than ‘show w’ and ‘show c’; they could
even be mouse-clicks or menu items - whatever
suits your program.
You should also get your employer (if you work
as a programmer) or your school, if any, to
sign a “copyright disclaimer” for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright
interest in the program ‘Gnomovision’ (which
makes passes at compilers) written by James
Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit
incorporating your program into proprietary
programs. If your program is a subroutine library,
you may consider it more useful to permit linking
proprietary applications with the library. If this
is what you want to do, use the GNU Lesser
General Public License instead of this License.
GNU LESSER GENERAL PUBLIC
LICENSE
Version 2.1, February 1999
Copyright © 1991, 1999 Free Software
Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
Everyone is permitted to copy and distribute
verbatim copies of this license document, but
changing it is not allowed.
[This is the fi rst released version of the Lesser
GPL. It also counts as the successor of the GNU
Library Public License, version 2, hence the
version number 2.1.]
Preamble
The licenses for most software are designed to
take away your freedom to share and change it.
By contrast, the GNU General Public Licenses
are intended to guarantee your freedom to share
and change free software - to make sure the
software is free for all its users. This license,
the Lesser General Public License, applies to
some specially designated software packages
- typically libraries - of the Free Software
Foundation and other authors who decide to
use it. You can use it too, but we suggest you
fi rst think carefully about whether this license or
the ordinary General Public License is the better
strategy to use in any particular case, based on
the explanations below.
When we speak of free software, we are
referring to freedom of use, not price. Our
General Public Licenses are designed to make
sure that you have the freedom to distribute
copies of free software (and charge for this
service if you wish); that you receive source
code or can get it if you want it; that you can
change the software and use pieces of it in new
free programs; and that you are informed that
you can do these things.
To protect your rights, we need to make
restrictions that forbid distributors to deny you
these rights or to ask you to surrender these
rights. These restrictions translate to certain
responsibilities for you if you distribute copies of
the library or if you modify it.
For example, if you distribute copies of the
library, whether gratis or for a fee, you must give
the recipients all the rights that we gave you. You
must make sure that they, too, receive or can
get the source code. If you link other code with
the library, you must provide complete object
fi les to the recipients, so that they can relink
them with the library after making changes to the
library and recompiling it. And you must show
them these terms so they know their rights. We
protect your rights with a two-step method: (1)
we copyright the library, and (2) we offer you
this license, which gives you legal permission to
copy, distribute and/or modify the library.
To protect each distributor, we want to make it
very clear that there is no warranty for the free
library. Also, if the library is modifi ed by someone
else and passed on, the recipients should know
that what they have is not the original version,
so that the original author’s reputation will not be
affected by problems that might be introduced
by others.
Finally, software patents pose a constant threat
to the existence of any free program. We wish
to make sure that a company cannot effectively
restrict the users of a free program by obtaining
a restrictive license from a patent holder.
Therefore, we insist that any patent license
obtained for a version of the library must be
consistent with the full freedom of use specifi ed
in this license.
Most GNU software, including some libraries,
is covered by the ordinary GNU General Public
License. This license, the GNU Lesser General
Public License, applies to certain designated
libraries, and is quite different from the ordinary
General Public License. We use this license for
certain libraries in order to permit linking those
libraries into nonfree programs.
When a program is linked with a library,
whether statically or using a shared library,
the combination of the two is legally speaking
a combined work, a derivative of the original
library. The ordinary General Public License
therefore permits such linking only if the entire
combination fi ts its criteria of freedom. The
Lesser General Public License permits more lax
criteria for linking other code with the library.
We call this license the “Lesser” General Public
License because it does Less to protect the
user’s freedom than the ordinary General
Public License. It also provides other free
software developers Less of an advantage
over competing non-free programs. These
disadvantages are the reason we use the
ordinary General Public License for many
libraries. However, the Lesser license provides
advantages in certain special circumstances.
For example, on rare occasions, there may be a
special need to encourage the widest possible
use of a certain library, so that it becomes a
de-facto standard. To achieve this, non-free
programs must be allowed to use the library.
A more frequent case is that a free library does
the same job as widely used non-free libraries.
In this case, there is little to gain by limiting the
free library to free software only, so we use the
Lesser General Public License.
In other cases, permission to use a particular
library in nonfree programs enables a greater
number of people to use a large body of free
software. For example, permission to use the
GNU C Library in non-free programs enables
many more people to use the whole GNU
operating system, as well as its variant, the GNU
Linux operating system.
Although the Lesser General Public License
is Less protective of the users’ freedom, it
does ensure that the user of a program that
is linked with the Library has the freedom and
the wherewithal to run that program using a
modifi ed version of the Library.
The precise terms and conditions for copying,
distribution and modifi cation follow. Pay close
attention to the difference between a “work
based on the library” and a “work that uses the
library”. The former contains code derived from
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
software 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 General Public License (also called
“this License”). Each licensee is addressed
as “you”.
A “library” means 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.
The “Library”, below, refers to any such
software library or work which has been
distributed under these terms. A “work
based on the Library” means either the
Library or any derivative work under
copyright law: that is to say, a work
containing the Library or a portion of it,
either verbatim or with modifi cations and/
or translated straightforwardly into another
language. (Hereinafter, translation is included
without limitation in the term “modifi cation”.)
“Source code” for a work means the
preferred form of the work for making
modifi cations to it. For a library, complete
source code means all the source code for
all modules it contains, plus any associated
interface defi nition fi les, plus the scripts used
to control compilation and installation of the
library.
Activities other than copying, distribution
and modifi cation are not covered by this
License; they are outside its scope. The act
of running a program using the Library is not
restricted, and output from such a program
is covered only if its contents constitute a
work based on the Library (independent of
the use of the Library in a tool for writing it).
Whether that is true depends on what the
Library does and what the program that
uses the Library does.
1. You may copy and distribute verbatim copies
of the Library’s complete source code as you
receive it, in any medium, provided that you
conspicuously and appropriately publish on
each copy an appropriate copyright notice
and disclaimer of warranty; keep 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.
You may charge a fee for the physical act
of transferring a copy, and you may at your
option offer warranty protection in exchange
for a fee.
2. You 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 modifi cations or work under
the terms of Section 1 above, provided that
you also meet all of these conditions:
a) The modifi ed work must itself be a
software library.
b) You must cause the fi les modifi ed to
carry prominent notices stating that you
changed the fi les 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 modifi ed 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 its purpose
remains meaningful. (For example, a
function in a library to compute square
roots has a purpose that is entirely well-
defi ned 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 modifi ed
work as a whole. If identifi able 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 refer to 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 1 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 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 from the same place
satisfi es 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 fi le 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 signifi cant 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 defi ned by law.
If such an object fi le 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 fi le 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
modifi cation of the work for the customer’s
own use and reverse engineering for
debugging such modifi cations.
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 modifi ed executable containing
the modifi ed Library. (It is understood
that the user who changes the contents
of defi nitions fi les in the Library will
not necessarily be able to recompile
the application to use the modifi ed
defi nitions.)
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 modifi ed version of the library, if the
user installs one, as long as the modifi ed
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 specifi ed 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 specifi ed 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.
7. You may place library facilities that are a
work based on the Library side-by-side in
a single library together with other library
facilities not covered by this License, and
distribute such a combined library, provided
that the separate distribution of the work