What Is GPL? The GNU General Public License Explained
Understand GPL freedoms, copyleft, source-code obligations and commercial use, with clear examples and a practical explanation of WordPress licensing.
GPL stands for General Public License. In software licensing, it usually means the GNU General Public License: a free software license that lets you run, study, modify and share a program. Its defining feature is copyleft. When you distribute a covered work, you must preserve the freedoms the license gives its recipients and meet its source-code requirements.
A GPL license allows commercial use and paid distribution. It does not require every private change to be published online, and it does not automatically give you a developer's support subscription or cloud account. Those distinctions matter whether you are installing a WordPress plugin, building an application or sharing a modified program.

What a GPL license means for your copy
The GNU GPL is published by the Free Software Foundation. GNU identifies the project behind the license; GPL names the license itself. “GPL license” and “GPL licence” refer to the same concept, with different English spellings. The actual terms depend on the version and licensing notice attached to the software.
The word free describes freedom rather than a guaranteed zero price. Someone can charge for a GPL-covered program. Once you receive a copy under the GPL, paying for it does not remove the rights granted by that license. GNU explains this distinction in its free software definition.
Those rights make several ordinary activities possible:
- Run the software: use it for your own purposes, including business work.
- Study it: examine the source to understand how it works.
- Change it: adapt the code to your requirements.
- Share it: redistribute permitted copies, including modified versions, while following the applicable GPL terms.
For example, a small business might use a GPL application to manage its internal records. A developer might alter a function to fit a different workflow. A distributor might offer copies alongside installation help. The license supports these activities, but the obligations differ according to what is being shared.
Reading the license is therefore more useful than asking whether a program is simply “free.” Check what the notice covers, which GPL version applies and whether other components carry separate terms.
Copyleft keeps permissions with the software
Copyright still exists in GPL-covered code. The authors use a copyright license to grant permissions with conditions. GPL software is therefore different from software placed in the public domain.
Copyleft means that a distributor cannot take a covered derivative work and deny recipients the GPL freedoms attached to it. It protects the next person's ability to work with the program, rather than giving only the first recipient permission to do so. GNU's explanation of copyleft describes this mechanism.
Imagine an illustrative project: a GPL scheduling application whose time-zone display you improve. You can use your modified copy privately. If you distribute that covered modified application, you must follow the relevant GPL requirements for the distributed work. A notice saying “you may use this, but never redistribute it” would conflict with the rights recipients are supposed to receive.
That does not mean every unrelated file on your computer becomes GPL-covered. Whether code forms a covered derivative or combined work depends on its relationship to the GPL program. Sharing a storage device or server with another application does not, by itself, settle that question. Treat library integration and combined products as licensing decisions that require examining the actual architecture.
Using software and distributing software are different actions
The most useful question is: are you giving someone a copy of the covered software? Charging money is a separate issue.
For GPLv3, the license uses the term convey for activities that enable others to make or receive copies. It explicitly distinguishes this from interacting through a network without transferring a copy. GPLv2 uses distribution language. The GPLv3 text, sections 0–2, sets out these definitions and basic permissions.
| Illustrative action | What to consider |
|---|---|
| Run a GPL program for business work | Commercial use is permitted; running it does not itself require public source release. |
| Modify a copy and keep it privately | Private modifications do not have to be posted online merely because they exist. |
| Give a customer a covered program or modified version | Distribution obligations apply, including the relevant notices, licensing and source requirements. |
| Sell copies of a covered program | Payment is allowed; recipients retain the applicable GPL rights. |
| Let visitors use server-side GPL software through a website | Network interaction alone is not conveying under GPLv3; check whether any covered code is also delivered. |
An installer, downloadable archive or client-side code bundle can change the analysis because the user may receive software. Likewise, handing a modified package to a separate organization is different from keeping it on your own machine. The table is an orientation, not a conclusion about every possible contractor, company group or deployment arrangement.

Does GPL require your source code to be public?
It does not impose a universal requirement to upload every change to a public repository. For distributed covered software, you must satisfy the source-access rules of the applicable version and distribution method.
There is an important qualification: some permitted written-offer routes extend beyond the immediate buyer. For example, GPLv2 section 3(b) describes an offer to provide source to any third party. Therefore, “source only ever goes to your customers” is also too broad. Read the route you are using in the GPLv2 text, section 3.
For a distributor, a better practical question is: can the person entitled to the corresponding source actually obtain the correct source for this copy? A vague reference to an upstream project is weaker than a clear, version-matched delivery arrangement.
What is corresponding source?
Source is the form developers use to modify the work. Under GPLv3, corresponding source includes the material required to generate, install, run and modify the covered object code, subject to the license's defined exclusions.
An illustrative distributor changes an application's processing logic and sends a compiled build to customers. Sending only the original upstream source would leave out the change customers received. The source arrangement needs to match that build, including relevant build material. This example is about consistency between a distributed copy and its source; the exact delivery options still come from the applicable license.
Preserving the license text and relevant notices also matters. A readable source folder does not replace those requirements. Keep the source, notices and distribution method together as one release task.
GPLv2 and GPLv3: read the notice before choosing
GPLv2 and GPLv3 are separate versions of the GNU GPL. GPLv2 dates from 1991; GPLv3 from 2007. Both are copyleft licenses, but their wording and requirements are not interchangeable. A newer license does not automatically replace the one attached to an existing program.
GPLv3 includes explicit patent provisions, revised compatibility provisions and installation-information requirements in defined User Product circumstances. These changes address situations beyond the basic example of downloading source code. GNU's quick guide to GPLv3 explains the changes.
Installation information is particularly easy to overgeneralize. GPLv3 does not require every software seller to hand over every operational password. Its section 6 addresses covered object code conveyed in, with, or specifically for use in certain User Products, under specified conditions and exceptions. That distinction is relevant to products that could otherwise prevent a recipient from installing a modified version.
For most readers, the first task is simpler: find the program's license notice.
- GPLv2 only: permission is limited to that version unless another applicable permission exists.
- GPLv2 or later: the notice permits choosing GPLv2 or a later version published by the FSF.
- GPLv3 only: the program is licensed under GPLv3 without a general later-version option.
GPLv2-only and GPLv3 code are not automatically compatible for a combined work. A GPLv2-or-later notice may provide a path to use GPLv3. GNU's license compatibility list explains this distinction.
Do not infer “or later” from a website headline that says only GPL. If the package has multiple dependencies, check their notices too. One component's permission to use a later version does not rewrite every dependency's license.
GPL, LGPL, AGPL and MIT answer different questions
These names describe different license arrangements. Knowing the basic distinction helps you find the right text without treating every open-source license as equivalent.
| License | Main distinction | Useful question |
|---|---|---|
| GNU GPL | Strong copyleft for covered distributed works | Are we distributing a covered program or combined work? |
| GNU LGPL | Additional permissions allow certain combinations with differently licensed applications, subject to conditions | Can users replace or relink the LGPL component as required? |
| GNU AGPL | Adds a source-offer requirement for users interacting remotely with a modified version in the relevant circumstances | Have we modified AGPL software that people use over a network? |
| MIT | A permissive license with notice requirements, without GPL-style copyleft | Have we retained the required copyright and permission notice? |
The Lesser General Public License is often used for libraries. It is not permission to ignore their licensing conditions. For example, LGPLv3 section 4 includes conditions affecting combined works, notices and the user's ability to work with a modified library.
The Affero General Public License addresses remote interaction more directly. AGPLv3 section 13 requires a modified version to prominently offer corresponding source to users interacting with it remotely through a computer network. Ordinary GPLv3 does not create that same obligation merely because a program runs on a server.
The MIT license allows broad reuse while requiring preservation of its copyright and permission notice. MIT-licensed code can generally be incorporated into a GPL-covered project if those terms are preserved. That does not turn existing GPL-covered code into MIT code or remove the combined work's GPL obligations.
There is no universal winner between these licenses. For an author, the choice reflects how they want downstream sharing to work. For someone using an existing project, the available permissions start with the license the copyright holders actually granted.
Where GPL can constrain a project
The main constraint arises when your intended distribution terms conflict with copyleft. If you want recipients of a covered combined work to receive executable code while being forbidden to redistribute it or access its corresponding source, GPL may not fit that release plan. Source preparation and dependency compatibility also need time in the release process.
The practical tradeoff is preserving downstream freedom versus keeping particular distribution restrictions. It does not prevent building a business around the software. Evaluate that tradeoff before incorporating a GPL component into a product you plan to deliver, rather than discovering conflicting commitments at release time.
What GPL means for WordPress, plugins and themes
WordPress states that its software is released under GPLv2 or later. Its official licensing page also explains the project's position that plugins and themes are derivative works, while acknowledging legal grey areas around what constitutes a derivative work.
This is why GPL appears so frequently in discussions of WordPress extensions. It allows covered software to be shared under its terms, including through commercial distribution. However, a product name or marketplace label does not tell you everything about a particular package.
Separate three things when considering a plugin:
- The copyright license: what permissions apply to the covered code?
- The delivered package: which files and separately licensed assets are actually included?
- The service arrangement: who provides downloads, updates, support and any hosted functionality?
A developer's account key may control access to a service or update channel. That is a different question from the copyright permission attached to code you received. The GPL itself does not promise a vendor account, a paid remote service or future support.
WordPress directory requirements also have their own scope. The Plugin Directory guidelines require submitted code, data and images to use GPL-compatible licensing. That is a directory rule; it is not proof that every downloadable archive elsewhere has identical contents or rights.
If your practical question is what comes with a third-party WordPress download, read the guide to GPL WordPress plugin packages. It covers the package and service decision in more depth. This general explanation concerns the license, rather than comparing sellers or individual plugins.
Four examples that make the boundaries clearer
The following scenarios are illustrative. They show which fact changes the question; they are not reports of product tests.
A shop runs a GPL application internally
A shop installs a GPL inventory tool and uses it to track stock. It charges customers for physical products. That business activity does not itself distribute the inventory application. The relevant software action is running the program, which the GPL permits for commercial purposes.
The shop should still retain a record of what it installed and its license. If it later supplies the application to another organization, that new action needs a distribution review.
A developer shares a modified application with a client
A developer changes a GPL application's report format and gives the modified application to a client. The client receives a software copy, so the applicable distribution requirements need to be satisfied. Payment for development work does not remove them.
Before delivery, the developer should identify the covered changes, keep required notices and arrange the matching source. A contract can describe the work and support, but should not promise restrictions that conflict with the GPL rights conveyed to the client.
A website uses server-side GPL software
A company modifies a GPLv3 program to perform calculations on its server. Visitors send inputs and receive results without receiving a copy of that program. Network interaction alone is not conveying under GPLv3.
Now change one fact: the site sends covered program code to visitors' devices. The distribution question returns. Change another fact: the server program uses AGPLv3, and the company has modified it. The AGPL network-source provision becomes relevant. “It is a website” is therefore insufficient to identify the applicable obligations.
A designer creates content with a GPL tool
A designer uses a GPL graphics application to make an original illustration. The application being GPL does not automatically make the illustration GPL. The output's content matters: GPLv3 covers output only when that output itself constitutes a covered work.
The designer should separately check any fonts, templates or assets used in the illustration. The license of the editing tool and the permissions for those inputs are different facts. GNU addresses this principle in its FAQ on program output.
How to use GPL for your own software
You do not obtain GPL by buying a special activation key. If you have the necessary copyright permissions, you can release your own software under it. GNU's guide to applying GNU licenses describes the process.
Begin by identifying which code you control. A project may include contributions, employer-owned work, dependencies and assets with different rights. Choosing GPL for your original files does not give you permission to relicense other people's material.
Then choose the license version and decide whether your notice permits later versions. Include the full license text and appropriate notices with the source. Make the licensing choice visible in the project's documentation and prepare any distribution-specific source arrangement before supplying builds.
For an illustrative small utility written entirely by one author, the practical work might be straightforward: add a license file, apply the appropriate notices and publish the source with clear build instructions. A larger project with dependencies needs a component-by-component review. Copying a GPL label into a README is insufficient if the package tells a different story.
Short answers to remaining GPL questions
Can you sell GPL-licensed software?
Yes. GPL allows paid distribution of covered software when its conditions are met. Buyers receive the applicable GPL rights, including redistribution rights. GNU's guidance on selling free software explains why charging money and preserving freedom can coexist.
Is GPL the same as open source?
GPL is an open-source license, but open source includes other licenses with different conditions. A permissive license such as MIT and a copyleft license such as GPL both allow source-based collaboration while setting different rules for downstream distribution.
Does GPL give you the right to use a project's trademark?
Software copyright permissions do not automatically settle trademark rights. Redistributing code does not necessarily authorize claiming that the original developer endorses your version. WordPress, for example, has a separate trademark policy.
Does a GPL label prove a download is safe?
No. Licensing terms describe permissions and obligations. They do not establish the origin, integrity or maintenance of an individual archive. Those are separate checks, whether the software is GPL, permissively licensed or proprietary.
Start with the copy and the action
To apply this explanation to a real project, record the software's license notice, identify what you intend to do and determine whether someone receives covered code. Then check the terms for that version and distribution method.
For a WordPress purchase, add a separate check of the package and services you need. For a development release, check dependencies and corresponding source. Those concrete facts will tell you far more than the word GPL on its own.