The GNU General Public License
The GPL is where software licensing starts to feel a bit more complicated, mostly because it is trying to achieve something different from MIT or BSD.
It is a copyleft licence.
What does it mean in normal English?
Very roughly: you can use, study, change and share GPL-covered software, but if you distribute covered software or modified covered versions, you have to preserve the GPL freedoms and meet its source-code requirements.
That is deliberately stronger than a permissive licence.
Can I just use GPL software?
Yes.
Running a GPL program does not mean you have to publish your documents, your game saves, your database or whatever else you happen to create with it.
Using a GPL text editor does not make the text you write GPL. That would be a fairly surprising afternoon.
What if I change it for myself?
You can modify GPL software privately.
The obligations people usually worry about become important when covered software is conveyed or distributed to other people.
What if I distribute my modified version?
Then the GPL's conditions apply. The covered work remains under the GPL, and recipients need the rights the GPL gives them.
You also need to meet the relevant requirements around source code.
Do I have to provide source code?
When distributing object code, the GPL has specific ways of satisfying the requirement to provide or offer the Corresponding Source.
"Corresponding Source" is defined by the licence. It is not always as simple as throwing the one source file you happened to edit into a ZIP.
Can GPL software be sold?
Yes. Absolutely.
This catches people out because the word "free" in free software is about freedom, not necessarily price.
You can charge for copies of GPL software. The people receiving those copies still get the GPL rights.
Does GPL mean my entire computer becomes GPL?
No.
The harder questions are about combining code: linking libraries, creating derivative or combined works and distributing them together.
Those situations can get technical and legally significant. Don't rely on the phrase "GPL is viral" as though it explains the licence. It really doesn't.
GPL version 2 and GPL version 3
There are different versions of the GPL, and the exact version matters.
You may see things such as "GPLv2 only", "GPLv2 or later" or "GPLv3". Those are not decorative words. They affect which licence terms apply and which later versions may be used.
What about software on a server?
Ordinary GPL does not generally add a source-code requirement merely because users interact with your modified copy over a network without receiving that copy.
If that distinction bothers you, the AGPL was created specifically to address network interaction.
An example
You download a GPL application, change it and give compiled copies of your changed version to other people.
You cannot simply say, "here's the EXE; the source is secret now." You need to distribute it in accordance with the GPL, including the relevant source requirements.
When might I choose GPL?
GPL may suit you if you want strong copyleft and want distributed modified versions of the covered software to preserve those freedoms.
If you actively want companies to be able to put your code into proprietary products without that kind of copyleft requirement, a permissive licence may suit your aim better.
Image Description