Note: You are viewing an old revision of this page. View the current version.

The General Public License (GPL) is published by the Free Software Foundation and is intended to guarantee every user the freedom to run, study, adapt, improve, and redistribute the software that it covers. The most famous (some would say notorious) and one of, if not the most widely used OpenSource license. It also a very misunderstood piece of text.

RichardStallman wrote the version 1 and 2 of the GNU GPL. Version 1 was released in 1989, and version 2 in 1991.

Version 3 of the GPL was released on 29 June 2007. This version strengthens the guarantee of freedom, by ensuring that users can modify the free software on their personal and household devices, and granting patent licenses to every user. It also extends compatibility with other free software licenses and increases international uniformity.

See also:

Some common misconceptions

If I write a program for Linux then I have to give away the source code!

This is not true at all. The following quote is from the top of /usr/src/linux/COPYING which is LinusTorvalds' CopyRight licence over the LinuxKernel (this quote is then followed by the GPL):

NOTE! This copyright does not cover user programs that use Kernel services by normal system calls -- this is merely considered normal use of the Kernel, and does not fall under the heading of "derived work". Also note that the GPL below is copyrighted by the FreeSoftwareFoundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

UserSpace programs must be GPLd only if linked (either statically or dynamically) to libraries licensed under the GPL. For example, the C Library is under the LGPL which allows non-GPL programs to link to it, while the GNU readline(3) Library is under the GPL so it does not allow that. Well-known ClosedSource applications for Linux include Oracle and Quake2 (although the latter has since been released under the GPL).

To link against GPLd code without GPLing my program, I'll just split it in two, a GPLd Library and a program that uses that Library...

By dynamically linking to GPLd code, you are creating a derived work. The GPL does not allow you to distribute your derivative program together with the GPLd work.

From section 2 of the GPL
"If identifiable sections of that work are not derived from the Program, 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 Program, 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."

This is why users have to download nVidia's ClosedSource BinaryDriver for Linux separately: since its source is not provided, it may not be redistributed as part of the Linux Kernel, whose license states that any modifications must be made available in SourceCode.

The preamble

This is just here for reference. The full license is available at the GNU project homepage.

Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, 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 or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.

Part of CategoryLicense