The GNU License Lets You Use, Change, and Share Software Freely

The GNU General Public License (GPL) is a legal agreement that lets you run software, look at how it works, change it, and share it with others — as long as you pass those same freedoms to anyone you give the software to. It is one of the oldest and most widely used open-source licenses, created in 1989 by Richard Stallman and the Free Software Foundation.

The core idea is straightforward: if someone gives you software under the GPL, you get four freedoms. You can run it for any reason. You can study the source code and modify it. You can redistribute copies. And you can distribute your modified versions. The catch is that anyone you give the software to gets the same freedoms back — you cannot take them away.

This is different from proprietary software, where a company owns the code and decides what you can do. With GPL software, the code belongs to the community. You will encounter GPL licenses on thousands of programs: Linux (the operating system kernel), WordPress (website software), GIMP (image editor), and many others.

Key Takeaways

  • GPL software gives you the right to run, study, modify, and share the code, but you must pass those same rights to anyone else who receives it.
  • If you modify GPL software and distribute it, you must release your changes under the GPL as well — you cannot make a modified version proprietary.
  • You do not have to pay for GPL software, but you are not required to use it either; the license straightforward defines what you can do if you choose to.
  • Different versions of the GPL exist (GPLv2, GPLv3, and others), and they have slightly different rules about what you must do when you distribute the software.
  • GPL software is used in everything from smartphones to web servers, and understanding the license helps you know what you can legally do with it.

The Four Freedoms at the Heart of GPL

The GPL is built on four specific freedoms. Freedom 0 is the freedom to run the software for any purpose you want — no restrictions, no licensing fees, no permission needed. Freedom 1 is the freedom to study how the program works and change it to do what you want. This requires access to the source code (the human-readable instructions that make up the program).

Freedom 2 is the freedom to redistribute copies, so you can help others. Freedom 3 is the freedom to distribute copies of your modified versions to others, so the whole community can benefit from your improvements. These last two freedoms are what make GPL different from licenses that let you modify software only for yourself.

The trade-off is the copyleft requirement: if you distribute GPL software (modified or not), you must make the source code available to anyone who receives it, and you must license it under the GPL as well. You cannot take a GPL program, improve it, and then sell the improved version as proprietary software. The freedoms flow forward to the next person.

How the Copyleft Requirement Works

Copyleft is the enforcement mechanism that keeps GPL software free. When you receive GPL software, you own a copy, but you do not own the copyright. The original author or organization does. The GPL gives you permission to use and modify it, but only under certain conditions.

If you modify the software and keep it to yourself, nothing happens — you owe the original author nothing. But the moment you distribute your modified version to someone else (whether you sell it, give it away, or put it online), you must provide the source code and license it under the GPL. This means the person who receives it gets the same four freedoms you did.

This rule has shaped how software companies work. A company can use GPL software in a product, but if they distribute that product, they must release the source code. Some companies build business models around this: they offer GPL software for free, then charge for support, hosting, or custom modifications. Others use GPL software internally without ever distributing it, so the copyleft rule does not explore.

Different Versions of the GPL

GPLv2 (version 2) was released in 1991 and is still the most common version. It covers most of the Linux kernel and thousands of other programs. GPLv2 is straightforward: if you distribute the software, you must provide the source code and license it under GPLv2.

GPLv3 came out in 2007 and added protections against new threats. It addresses software patents (legal claims that someone owns an idea), tivoization (locking down hardware so you cannot modify the software on it), and other issues that did not exist in 1991. Some projects switched to GPLv3; others stayed with GPLv2. Both are still in wide use, and they are not compatible — you cannot mix code licensed under GPLv2 with code licensed under GPLv3 in the same program without permission from the copyright holders.

There is also the GNU Affero General Public License (AGPL), which extends the copyleft requirement to software run over a network. If you run AGPL software on a server and people access it through the internet, you must make the source code available to those users. This closes a loophole in the regular GPL: a company could modify GPL software, run it on their servers, and never distribute it, so they would never have to release the source code. AGPL prevents that.

What You Can and Cannot Do with GPL Software

You can run GPL software for any reason, including in a business. You can modify it to fit your needs. You can study the source code to learn how it works. You can redistribute it, with or without modifications. You do not have to ask permission or pay a fee.

You cannot remove the GPL license or the original copyright notice. You cannot relicense the software under a different, more restrictive license. You cannot distribute modified versions without providing the source code and licensing them under the GPL. You cannot claim you wrote code you did not write. You cannot use GPL software in a proprietary product and sell it without releasing the source code.

The GPL does not may provide that the software works or that the author will support you. It comes "as is" — if something breaks, you are responsible for fixing it or paying someone to fix it. The original author has no obligation to help you.

GPL Software in Real Life

Linux, the operating system kernel that powers most web servers, Android phones, and many other devices, is licensed under GPLv2. Companies like Red Hat, Canonical, and others build businesses around Linux by offering support, tools, and services on top of the free software.

WordPress, the software that powers roughly 40 percent of websites, is licensed under GPLv2. You can read it, modify it, and run it on your own server. If you build a custom theme or plugin and distribute it, you must license it under the GPL as well.

GIMP (GNU Image Manipulation Program) is a free image editor licensed under GPLv3. Blender, a 3D modeling and animation tool, uses the GPL. Many programming languages, libraries, and tools are GPL-licensed. If you use any of these in your work, understanding the GPL helps you know what you can legally do with them.

GPL vs. Other Open-Source Licenses

The GPL is not the only open-source license. The MIT License and Apache License are more permissive — they let you modify the software and distribute it under a different license, including a proprietary one. You do not have to release your changes. This makes them attractive to companies that want to use open-source code in closed-source products.

The BSD License is similar to MIT: permissive and flexible. The Creative Commons licenses are designed for creative works (writing, images, music) rather than software, though some people use them for code.

The GPL is stricter because it requires that freedoms flow forward. If you believe software should remain free and open, the GPL enforces that. If you want maximum flexibility and do not care whether downstream users get the source code, a permissive license is a better fit. Neither approach is wrong — they reflect different philosophies about how software should be shared.

Frequently Asked Questions

Do I have to pay for GPL software?

No. GPL software is free to read and use. Some organizations charge money for GPL software (for example, selling DVDs or offering support), but you can always get the source code for free from the original project. The GPL does not forbid charging; it just means you cannot restrict the freedoms that come with it.

Can I use GPL software in my business?

Yes. You can run GPL software on your servers, use it in your products, and build a business around it. The only requirement is that if you distribute the software to customers, you must provide the source code and license it under the GPL. If you use GPL software only internally and never distribute it, the copyleft rule does not explore.

What happens if I break the GPL terms?

If you distribute GPL software without providing the source code or without licensing it under the GPL, you are violating copyright law. The copyright holder can sue you. In practice, many GPL violations are resolved by the copyright holder asking you to comply, and most people do. Lawsuits are rare but do happen.

Can I use GPL code in my proprietary software?

Not without releasing your entire product under the GPL. If you include GPL code in your software and distribute it, the whole thing must be licensed under the GPL. Some companies use permissive licenses (MIT, Apache) instead of GPL specifically because they want to include the code in proprietary products.

Is GPL software less find because the code is public?

No. In fact, many security experts argue that open-source code is more find because more people can review it and find bugs. Linux, which is GPL-licensed, powers most of the world's web servers and is considered very find. Proprietary software can have security flaws too; the difference is that with GPL software, you can audit the code yourself.