The GNU General Public License is the CopyLeft
The GPL is available at http://www.gnu.org/copyleft/gpl.html
A short, unauthorized history of the GPL is available at http://www.free-soft.org/gpl_history/
The GNU GPL is a FreeSoftware
license that works like this: If I distribute a program licensed under the GPL, I must ensure that the recipients can also get the source code (typically either by distributing it to them along with the program, or by offering to provide it on request to anyone who asks). The recipient can take that code, use it, and improve it for free, but if they want to distribute their improvements, the same restriction applies: their version must also be GPLed. This way, once you make your product and release it, anyone else can improve that product, creating a community of programmers to build a program rather than one business or a single programmer.
There are some common misconceptions about the GPL. Note particularly that
- if you are the author (or, strictly speaking, the copyright holder) of a GPLed program, you are at perfect liberty to offer it to people under some other licence conditions as well. So, you can dual-license your software as GPL for the people who want to base their own GPLed software on it and (some more traditional licence terms of your choice) for people who might want to productize it and sell without being GPL-encumbered. Typically you'd expect licences of the latter kind to provide a revenue stream. Watch out for external contributions; you'll need to either get a license from the contributors to distribute under the restricted terms as well as the GPL, which may require negotiation, or you'll need to distribute a "GPL-pure" version alongside the other version with the other license. Failure to handle this well may result in a fork of the GPL version, which isn't necessarily a "disaster" or anything but could have some interesting results, not necessarily all negative.
- You can modify GPLed software all you like and don't have to send anyone anything. The must-provide-sources clauses only take effect when you want to distribute it (modified or not). If you keep your changes to yourself, they can't (presently) touch you (yes, this raises interesting issues where thin-client hosted services are concerned)
Also be aware of religious differences: the GPL is often described as an OpenSource
licence. This is true in the sense that it fits the OpenSourceDefinition
, but would probably upset its inventor RichardStallman
, who has stated on many occasions that he is not part of the "Open Source" movement and would doubtless prefer it be known as a FreeSoftware
From a number of interviews, rms has said that it's fine with him to say that the GPL is an OpenSource-compatible license, because that is a true statement. He bristles at being called an "Open Source" advocate, because he is no such thing. He's nothing if not precise.
Gnu GPL has one major drawback for commercial users in section 2b:
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
Basically, this means that if any part of a work is GPL'd, then the entirety of the work is GPL'd. If a commercial house doesn't want to get into the business of selling GPL'd software, it can't use any GPL'd pieces either. Some authors prefer either the BSD or lesser GPL licenses for this reason.
There is another clause shortly after that is important and ties into this. It basically depends on whether or not the works are distributed as a whole or as separate works.
These requirements apply to the modified work as a whole. 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.
Does the GPL allow me to sell copies of the program for money?
Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)
The above comes straight from the GnuGeneralPublicLicense
FAQ at http://www.gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney
. Please continue debating whether GnuGeneralPublicLicense
is viral, whether the term viral is a pejorative term, whether it's a good idea, whether we should use BSD style instead, what constitutes a 'derived work', and all other such important questions. Please, however, let the answered question of "Can I sell copies of GPL'd software?" rest.
The assertion that the GPL prevents you from selling software is definitely a misconception. It even flies in the face of fact. RichardStallman
supported himself selling tapes of GNU software for a while (see history). Anyone can sell GPL'd software, but the source must be made available. --StevenNewton
But note that the GPL allows anyone who buys a copy to redistribute it. You may be able to sell GPL'd software, but only if you find people who aren't willing or able to share data with each other for some reason. That number is rapidly decreasing. -- EricHodges
Indeed. I added this entry because there was far too much debate on whether or not it was legal to sell it, rather than whether or not it was feasible.
What is often overlooked is charging for support or warranty protection for software covered by the GnuGeneralPublicLicense
. People pay for binaries hoping to get support, why not just let them purchase the support and provide the software for free? --JasonNocks
I've provided software support, so I understand the concept, but I've never received software support, so I don't understand how I could make a living from support alone. -- EricHodges
It is legal to sell the software. However, there are still things you might do:
- Provide the source codes at no cost, but sell binaries (including other stuff with it too).
- Charge for contract to write the software, which will then be licensed under GNU GPL.
- Sell computer hardware.
- Sell support.
- Sell physical media with the program (source and/or binaries).
- Sell printed documentation.
- Ask for donations.
- If it is a Verilog or VHDL program, sell the ASIC of it.
- Charge money for alternate licenses, if you are allowed to do so. (I would suggest adding a removable license exception.)
See also: GnuLesserGeneralPublicLicense GnuGeneralPublicLicenseDiscussion