Development

What the hell is the GPL?

If you’ve been using WordPress, developed for WordPress, or looked into WordPress – or software development as a whole – you’ll likely have heard of the GNU General Public Licence or GPL. It’s a software licence that’s common in the open source community, and WordPress is released under the second version of the licence (GPLv2). If you release themes or plugins through the WordPress directories, they must also be released under the GPL version 2 or later

But what the hell is the GPL? Allow me to explain.

A word of caution ...

It goes without saying that I am not a lawyer; I am a WordPress developer.  I am not trained in law, I have not taken any workshops in law, I know less than nothing about law, especially copyright and licencing laws.  What I post here is my personal understanding of the GPL thanks to other websites and resources.  It is my interpretation of what is important to cover and nothing more.  This is in no way to be construed as legal advice.  If you wish to get specific advice on using the GPL for your own project, it is recommended that you consult a lawyer that does specialise in this.

The GPL in a nutshell

The GPL is a one of a set of free software licences set out certain freedoms for end users to run, study, share, and modify the software released under it.  WordPress is one such piece of software released under the GPL.  While WordPress is released under version 2 of the GPL, the most recent version is GPL version 3 (GPLv3).

The licence sets our four basic freedoms for users of the software.  These freedoms are maintained for as long as the GPL is maintained on the software.  These freedoms are:

execution

The freedom to run the software for any purpose.

study

The freedom to study the source code and change the software for any purpose.

network

The freedom to share the software with others.

file-sharing

The freedom to share your own modified versions of the software with others.

Is the GPL safe?

Yes.  One could make the case that the GPL and other “open source” licenses are much safer than proprietary or “closed source” licenses.  Open source projects – especially large and incredibly popular projects such as WordPress – are heavily scrutinised and reviewed, and the community will often offer patches for bugs and security holes which will be incorporated into the core software.  Such projects will be so significant because they are widely adopted, and the community will readily offer fixes for issues since they too benefit from stable software.

Compare that with proprietary software, and any bugs are usually uncovered with a small but dedicated team and not with the efforts of a supportive community, and it’s possible for some bugs to slip through the net.  A community that benefits from the software they are fixing creates this idea of a “mutual benefit” – the developers have a very stable product to release because of the community, and the community has a stable product to use because of the developers.  Closed-source software doesn’t allow this.

Can I sell software under the GPL?

You can indeed. Software under the GPL is considered “free as in libre, not as in gratis.”  It is often simplified to “free as in speech, not as in beer” but what it means is that you are not limited in using the software as you wish, and that freedom means that you can also sell the software for a fee.

The only thing that you need to remember is that the GPL must travel with the software.  If I make a piece of software and release it under the GPL, I must release it with its source.  I can release it free of charge if I wanted to.  You can then download the software and edit it as you wish, rebrand it, repackage it, and then sell it, but you must release your version of the software under the GPL as well.  Similarly, I can release my software for a fee under the GPL, and you can edit it, rebrand it, repackage it, and release it free of charge, but it must be released under GPL.

What about plugins or themes?

Plugins and themes are considered “derivative works” and would inherit the license from the parent software.  WordPress, for example, is released under the GPL, and as such any add-ons such as plugins or themes inherit the license from WordPress.  This includes premium plugins and themes.  Often, plugin and theme developers will release their product under the GPL regardless, sometimes under the most recent version of the license.

What's the difference between GPLv2 and GPLv3?

The GPL was updated to version 3 by the Free Software Foundation (FSF) on June 28th 2007, and the new version of the license covers three major developments that version 2 didn’t.  You can read more about the changes on the GNU project website.

The first aspect that is covered is the term “Tivoization”.  This is a term in reference to the TiVo TV recording system, but it applies to many other products.  Such systems would incorporate software licensed under GPLv2 such as the Linux kernel and GNU software, and the software would maintain the GPL as part of the license.  The companies, though, would use hardware-based restrictions to prevent any changes to the software being made or prevent any modified software running on the same hardware.  Technically, TiVo systems complied with the GPLv2 because the source code was released and other users could modify the software as they wished, but the fact that the modified software could not then be run on TiVo hardware caused a lot of backlash.  GPLv3 tries to allow Digital Rights Management (DRM) for security purposes, but contains provisions that seek to prevent Tivoization.

The second is in relation to DRM and laws that prevent you from bypassing DRM, such as the Digital Millennium Copyright Act and the European Union Copyright Directive.  These laws make any software that can bypass DRM on DVDs and other media illegal, and makes it illegal for you to write your own tools that can do so.  This restricts your freedoms under the GPL heavily, as you should be free to write any software that you wish.  According to the GNU Project website:

… if someone does that with code protected by GPLv3, section 3 says that the system will not count as an effective technological “protection” measure. This means that if you break the DRM, you’ll be free to distribute your own software that does that, and you won’t be threatened by the DMCA or similar laws.

The third significant change to the GPL in version 3 is with regards to patents.  The GPL has done everything to ensure that developers are free to edit and share software, but patents place heavy restrictions on your rights to do so.  Many free software licenses have made changes that protect users from patent suits, and version 3 of the GPL has done work in that direction.  As part of the new license, any software written under GPL v3 that is covered by patents must also come with any applicable patent agreements to ensure user rights are maintained.  It also offers protections to those who are under a patent lawsuit, such as removing the license from those who use patent suits to prevent users from modifying software.

Are all GPLv2 licenses now GPLv3 licenses?

No.  GPLv2 software is covered under GPLv2, and GPLv3 software is covered under GPLv3.  However, GPLv2 software can allow you to use later versions for derivative works.  WordPress, for example, states that it is covered by GPLv2 (or later).  That means plugins and themes can be released under GPLv3 without any issues.  But the software is released under that license.

While it is possible to upgrade your license from GPLv2 to GPLv3, it is not possible to release your software under both GPLv2 and GPLv3.  If you include work that is released under GPLv3 in your GPLv2 project, the license terms are incompatible and cannot legally be enforced.

What you can do, to some extent, is combine work created under the GPL with work created under other licenses.  You can see which licenses are compatible with GPLv2 and GPLv3 on the GPLv3 Wiki.

Where can I get more information about GPL?

If you want more information about the GPL, your first stop should be the GNU website.  You can read the full GPLv3 license text there, and you can also check out the links at the top of the page which may give you a little more information.

Specifically with regards to the GPL and WordPress, you can check out the glossary page on WPBeginner, which explains how the GPL works with regards to the WordPress system, as well as how plugins and themes work within the GPL.  While the language focusses on WordPress, it applies to any such system.

Got any questions or comments? Got any corrections that should be here or resources that may help others get a better understanding of the GPL? Head on down to the comments and let’s discuss.

Join the conversation

Your email address will not be published.


This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posted on: