Some devices are designed to deny users access to
install or run modified versions of the software inside
them, although the manufacturer can do so. This is
fundamentally incompatible with the aim of protecting
users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for
individuals to use, which is precisely where it is most
unacceptable. Therefore, we have designed this version
of the GPL to prohibit the practice for those products. If
such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in
future versions of the GPL, as needed to protect the
freedom of users.
Finally, every program is threatened constantly by
software patents. States should not allow patents to
restrict development and use of software on general-
purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free
program could make it effectively proprietary. To
prevent this, the GPL assures that patents cannot be
used to render the program non-free.
The precise terms and conditions for copying,
distribution and modification follow.
TERMS AND CONDITIONS0. Definitions.
“This License” refers to version 3 of the GNU General
Public License.
“Copyright” also means copyright-like laws that apply to
other kinds of works, such as semiconductor masks.
“The Program” refers to any copyrightable work
licensed under this License. Each licensee is addressed
as “you”. “Licensees” and “recipients” may be
individuals or organizations.
To “modify” a work means to copy from or adapt all or
part of the work in a fashion requiring copyright
permission, other than the making of an exact copy.
The resulting work is called a “modified version” of the
earlier work or a work “based on” the earlier work.
A “covered work” means either the unmodified Program
or a work based on the Program.
To “propagate” a work means to do anything with it
that, without permission, would make you directly or
secondarily liable for infringement under applicable
copyright law, except executing it on a computer or
modifying a private copy. Propagation includes copying,
distribution (with or without modification), making
available to the public, and in some countries other
activities as well.
To “convey” a work means any kind of propagation that
enables other parties to make or receive copies. Mere
interaction with a user through a computer network,
with no transfer of a copy, is not conveying.
An interactive user interface displays “Appropriate Legal
Notices” to the extent that it includes a convenient and
prominently visible feature that (1) displays an
appropriate copyright notice, and (2) tells the user that
there is no warranty for the work (except to the extent
that warranties are provided), that licensees may convey
the work under this License, and how to view a copy of
this License. If the interface presents a list of user
commands or options, such as a menu, a prominent
item in the list meets this criterion.
1. Source Code.
The “source code” for a work means the preferred form
of the work for making modifications to it. “Object code”
means any non-source form of a work.
A “Standard Interface” means an interface that either is
an official standard defined by a recognized standards
body, or, in the case of interfaces specified for a
particular programming language, one that is widely
used among developers working in that language.
The “System Libraries” of an executable work include
anything, other than the work as a whole, that (a) is
included in the normal form of packaging a Major
Component, but which is not part of that Major
Component, and (b) serves only to enable use of the
work with that Major Component, or to implement a
Standard Interface for which an implementation is
available to the public in source code form. A “Major
Component”, in this context, means a major essential
component (kernel, window system, and so on) of the
specific operating system (if any) on which the
executable work runs, or a compiler used to produce
the work, or an object code interpreter used to run it.
The “Corresponding Source” for a work in object code
form means all the source code needed to generate,
install, and (for an executable work) run the object code
and to modify the work, including scripts to control
those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally
available free programs which are used unmodified in
performing those activities but which are not part of the
work. For example, Corresponding Source includes
interface definition files associated with source files for
the work, and the source code for shared libraries and
dynamically linked subprograms that the work is
specifically designed to require, such as by intimate
data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything
that users can regenerate automatically from other parts
of the Corresponding Source.