GNU General Public License

A Newbie’s Guide to the GPL and WordPress Licensing

At IvyCat, we rely on Free Software every day to power everything from the version control we use to wrangle our code to the WordPress websites we create. Most of this software is released under a Free Software license called the GPL.

When the average person hears Free Software, they assume that this means software that doesn’t cost anything. While this is often true, the Free in Free Software actually refers to your freedoms, not your wallet.

In geek circles, you’ll hear nuts like me refer to software as, “free as in speech, and free as in beer.” The former referring to your rights, and the latter to your money.

You’ve probably also heard the term Open Source, which is often thought of simply as a collaborative method of development where everyone has access to the source code, but it’s about more than just development; it’s about freedom too.

Free Software vs. Open Source

It’s not uncommon to hear the terms Free Software and Open Source used interchangeably.  The Open Source definition has evolved to be quite similar to the Free Software definition and, while they usually go together like peanut butter and chocolate, there are differences between Free Software and Open Source.

The Free Software Foundation obviously prefers the term Free Software because it emphasizes your freedoms over a method of development.

However, the Free Software Foundation concedes that:

the differences . . . are small: nearly all free software is open source, and nearly all open source software is free.

Personally, I prefer the term Free Software for the same reasons the FSF does, but you can call it what you like.

The Free Software Definition’s Four Freedoms

By the Free Software Foundation’s definition, Free Software guarantees you:

  1. The freedom to run the program, for any purpose.
  2. The freedom to study how the program works, and change it so it does your computing as you wish.
  3. The freedom to redistribute copies so you can help your neighbor.
  4. The freedom to distribute copies of your modified versions to others.

Of course, in true programmer fashion, the list begins with the number zero.

There are a lot of Free Software licenses in common use, including:

Each license has its own terms and may, or may not, be compatible with the GPL’s terms, due to a few especially interesting and often criticized stipulations in the GPL.

The GPL and Copyleft

The GPL was first released in 1989 by Richard Stallman and the Free Software Foundation, which he founded with a mission to protect the freedoms to create, modify and distribute software under what he called copyleft terms.

Copyleft, an obvious play on copyright allows you to, not only make your work free (as in speech), but to ensure that any modified versions will also be free.

For a legal document, the GPL is surprisingly easy to read and anyone that uses software licensed under GPL should understand it, or at least read it once. Yep, that most likely means you.

Really, the gist of the GPL follows the Free Software Definition’s “Four Freedoms,” with the addition of copyleft.

Why People Love the GPL

Of course, we can all get behind protecting our rights to do what we please with our software, which is selling point number one, but the GPL also guarantees that innovations made with free software get contributed back to the community for the good of everyone.

The FSF puts it this way:

Using the GNU GPL will require that all the released improved versions be free software. This means you can avoid the risk of having to compete with a proprietary modified version of your own work. – “Why Use the GPL”

“Pinko Commies!” some folks holler. Well, I’ve been called worse.

Better, I’ve seen what an incredible impact Free Software has had on all our lives. The Free Software project WordPress, currently powers something like 18 – 20% of websites and has fostered an ecosystem of developers and freelancers that make good livings from WordPress-related businesses.

Free software is in every computer and computing device you regularly use and every site you visit.

Why People Hate the GPL

The copyleft requirement that improved versions be released as free software causes hotheads like Steve Ballmer, Microsoft CEO, to sweat and proclaim, “Linux is a cancer that attaches itself in an intellectual property sense to everything it touches.”

Linux software is licensed under the GPL, so if someone modifies it and releases changes to the community, the license passes along with the modified software, so it must be open source too.

You can see why this requirement doesn’t go over well with everybody. Even the Free Software Foundation advises that the GPL isn’t for everyone and sometimes, a more permissive open source license fits better. Licenses like the MIT, Apache, and WTFPL come without the copyleft requirement.

What the GPL Means to You

If you’re a website owner, it’s good to know what your rights are with the software that powers your site. If you’re running software like WordPress on your site, you need to know that nobody can take that software back, or lock down your ability to improve or extend it.

The GPL and WordPress

It seems like there’s a constant rumble about the GPL from some corner of the WordPress community. Like I said, not everyone likes it.

So, Matt Mullenweg, founded the WordPress Foundation to “ensure free access, in perpetuity, to the software projects we support” and, I believe, to make it very clear that WordPress isn’t a company, but rather it’s a Free Software project with guidelines and rules that are independent of any company or individual.

It’s clear that the GPL is no joke to Mr. Mullenweg, the folks at Automattic, and The WordPress Foundation, and it’s one of the things I respect most about the WordPress project.

WordPress’s GPL Requirement

All software that you’ll find on WordPress.org in the Plugins Directory and the Themes Directory must be licensed under the GPL v. 2, or a compatible license. This ensures that all software on wordpress.org is free as in speech and free as in beer.

Earlier this year, the WordPress Foundation contacted some WordPress community members apparently informing them that they couldn’t volunteer or speak at WordCamps because they sell themes or plugins that don’t entirely adhere to the GPL or compatible licenses. That sparked a load of drama on Twitter; if you’re interested in reading more, check out Jake Caputo’s posts: Automattically Blackballed and Un-Blackballed.

Why would the WordPress community care so much about licensing? Well, WordPress.org states it very clearly on their License page:

The reasons for WordPress releasing under the GPL are both practical and idealistic. WordPress was born of the very freedom mentioned earlier. The predecessor to the WordPress project, b2/cafelog, was also an open source project.

Due to its origins, WordPress is obligated to copyleft, but the ideals of the GPL are clearly near and dear to many in the core of the WordPress community, and that includes me.

Non-GPL WordPress Themes & Plugins

Depending on where you’re shopping, you may come across some WordPress plugins or themes that aren’t licensed under the GPL or a compatible license.  What do you do?

Be careful! Go find and read the license so you understand your rights. Some themes and plugins don’t protect your rights to run, study, change, and distribute copies.  Even worse, some plugin and theme developers make their code even harder to work with by encoding it in what looks like gibberish that must be de-coded before it makes any sense to a developer.

Developers do this to protect their property, but in this community, it gives me the willies and there are certainly better ways to make money with plugins and themes.

How WordPress Plugin and Theme Developers Make Money

Right now, IvyCat has a few WordPress plugins in the WordPress Plugin Directory and they’re all released under the GPL v. 2.  We also purchase and use several commercial plugins that are also licensed under the GPL.

Technically, if I buy a theme or plugin and it’s released under the GPL, I have the right to share it with friends, make copies, and even improve it.  Of course, if I improve or extend it and release it to the community, it has to also be under the same, or a compatible, license.

So, what’s the business model?  If it’s free software, why do you pay for it?

Premium WordPress plugin and theme developers usually sell you a license key, which allows you access to support and automatic upgrades.  Without this license, the software should continue to work, but you won’t benefit from updates that may provide new features, bug fixes, and security hardening.  And you don’t have support when you have questions or problems.

This model of selling support and updates makes a lot of sense and works very well for a lot of companies.  At IvyCat, we happily pay for licenses for Free Software, because we value the updates and must have support when we need it.

The Wrap

While software licensing sounds about as exciting as watching paint dry, it’s actually quite fascinating and it touches our lives every day.  Plus, there are a lot of really brilliant, funny, and entertaining characters involved in the Free Software movement like Richard Stallman.

I encourage you to read up a little bit and make sure you know your software rights.

If you’d like to learn more about Free Software, the GPL, and Software Licensing, check out:

And, if you’d like a really entertaining look at the origins of Linux and Free Software, you must check out the movie Revolution OS (also on Netflix).

13 responses to “A Newbie’s Guide to the GPL and WordPress Licensing”

  1. Rich Conley Avatar
    Rich Conley

    In simplistic terms, I’ve always considered GPL to mean that the software cannot be repackaged and sold as one’s own product.
    Nor can direct derivatives be sold as one’s own product.
    And in all cases the GPL licensing text must accompany the software.
    Again, this is a simple synopsis and it serves a simple purpose – to help keep sticky fingered would be developers honest. :)

    1. Eric Amundson Avatar

      Thanks for the comment, Rich.

      That is a simple synopsis, but not entirely accurate, I think.

      I think the focus of the GPL is more about preserving software freedom than preventing software copying.

      Nor can direct derivatives be sold as one’s own product.

      This is touchy, really, but here’s an example:

      Let’s say I love the commercial (paid) WordPress plugin Gravity Forms – it’s not a stretch because I truly do love it. Then, let’s say that I thought I could make a better form plugin.

      Because Gravity Forms is licensed under the GPL, I really can share and modify the software. So, I could start with their codebase and extend it and then if I wanted, I could release it under another name as a premium plugin for sale. The GPL doesn’t prevent this at all.

      The catches: if I release my new plugin to the world, I have to credit the original authors, maintain a compatible license, and make the source code available, right?

      I think most developers shy away from this behavior because:

      1. they’re not just in it for money
      2. community backlash – who wants to look like a big thief
      3. just because you release a plugin doesn’t mean you can support it well.

      After all, we pay Gravity Forms because it’s a great product and we need the support and updates they provide. These are not things we can, or want to, take on.

      1. Marty Diamond Avatar

        Hey Eric – really interesting/informative article –

        Ok so taking your Gravity Forms example to a different place.

        Suppose as a developer you specialize in a specific niche that needs a unique form developed. You use Gravity Forms and decide to build the new form using their plugin. The form needs to function in a very specific way requiring quite a bit of coding and modification. This new form could possibly be used by everyone in your niche – but wouldn’t work for the general population.

        Is this a case where creating a niche plugin to be used in conjunction with Gravity forms makes sense – or do you just do the custom coding for each client you work with?

        1. Eric Amundson Avatar

          Great question, Marty.

          First, we as a rule never modify a plugin’s core files because that’s asking for trouble when updates come along. Rather, we rely on hooks and filters created by the plugin developer to extend, or alter, the functionality of their plugin and Gravity Forms is pretty great with hooks and filters.

          So, in your example, we wouldn’t modify Gravity Forms at all, just the form itself and the code used to process it.

          So, we’d most likely handle this in one of a few ways:

          1. Create a special plugin for processing the niche form entries and possibly release it to the community, or
          2. Add the code for form processing to an existing, custom plugin for the customer and keep it private.

          I feel strongly that functionality should be put in plugins rather than themes, so the user isn’t locked into one theme forever. On all of our new projects, we create a custom plugin for the customer that contains most of their site’s functionality. We could just as easily incorporate changes into their theme’s functions.php file, but that’s tied to the theme, so if they switch themes, they lose functionality.

          So, really, the decision for us would probably come down to:

          1. Will this code help others in this niche?
          2. Is it something we can, or want to, support?
          3. How will it affect our bottom line?

          An example: we created the Washington State Sales Tax for Shopp plugin for a project we were working on and, because there are other Shopp users in WA and we wanted to raise our profile in the Shopp community, we release this plugin under the GPL. When enabled, it simple extends Shopp’s abilities.

  2. Mark k. Avatar
    Mark k.

    This is probably one of the subjects that developers should leave to lawyers. there is a reason why lawyers exist to interpret contracts and licenses like the GPL. The common developer doesn’t have the knowledge required to even talk about it, partly because the knowledge doesn’t exist yet, the interpretation eople give to the GPL are just guesses until the GPL is tested in court and not all of its aspects were tested yet.

    Which is one of the reasons you should avoid using a GPL for your software as you will need to hire a lawyer to verify that the license is compatible with your expectations. Most people can’t understand such licenses by themselves.

    In practice GPL doesn’t protect your rights as the original developer. To protect your rights you will to be able to identify an infringement and to afford a lawyer to sue. Both are impractical to probably 99% of wordpress plugins and themes developers.

    There are also philosophical objections to the GPL, because it is a restrictive license just being marketed as “free”.

    And every SSL traffic is probably transmitted by the usage of the openSSL library which was developed under the MIT license. Can you imagine what an impact a truly free software can do?

    1. Eric Amundson Avatar

      This is probably one of the subjects that developers should leave to lawyers.

      I obviously disagree or I wouldn’t have written this post and you do yourself and FLOSS developers a disservice when you assume that we can’t understand the GPL; it’s not rocket science.

      Don’t you think it’s important to understand the terms under which you’re releasing software?

      Which is one of the reasons you should avoid using a GPL for your software as you will need to hire a lawyer to verify that the license is compatible with your expectations. Most people can’t understand such licenses by themselves.

      In practice GPL doesn’t protect your rights as the original developer. To protect your rights you will to be able to identify an infringement and to afford a lawyer to sue. Both are impractical to probably 99% of wordpress plugins and themes developers.

      For those of us who are small FLOSS developers that need assistance, there are terrific organizations like the Software Freedom Law Center, which “provides pro-bono legal services to developers of Free, Libre, and Open Source Software.” and the Software Freedom Conservancy, which “helps promote, improve, develop, and defend Free, Libre, and Open Source Software (FLOSS) projects.“

      There are also philosophical objections to the GPL, because it is a restrictive license just being marketed as “free”.

      I completely understand the objections, but I view the GPL as a Free Software license with copyleft terms. Copyleft is really the catch and, as I said in the post, the GPL isn’t for everyone.

  3. Ian Harrold Avatar

    Great explanation! Thanks for making it so simple to understand.

    1. ivycat Avatar

      Glad you liked it – my pleasure.

  4. Greg Winiarski Avatar
    Greg Winiarski

    I think that mentioned Richard Stallman is idealist, he did not see that business savy people can and will take advantage of GPL.

    The most prominent example in WordPress community is Jigoshop, that was “forked” by WooThemes in 2011, sure they took community backlash but that’s about it, in the long run that did not affect WooThemes in any way, and 2 years later (probably) no one thinks less of them for doing this. What about Jigoshop? They hardly got any traction compared to WooCommerce (or at least got less than they could) http://www.google.com/trends/explore?q=jigoshop%2C+woocommerce#q=jigoshop%2C%20woocommerce&date=1%2F2011%2030m&cmpt=q

    So, what i guess i am saying is that GPL is great for big, reputable companies like Woo or GravityForms, not so good for small teams with good project.

    1. Eric Amundson Avatar

      I’ll agree that Mr. Stallman is a bit of an idealist, but I love him for it. He’s about as far left on software freedom as one can be, but we need guys like Richard out there advocating Free Software.

      I’m not sure that forking a project is taking advantage of the GPL, in a bad sense. I can’t speak to the WooThemes / Jigoshop issue personally, but I really like, and agree with Joost de Valk’s WooCommerce vs JigoShop post on the subject.

    2. Greg Winiarski Avatar
      Greg Winiarski

      By “taking advantage” i mean that what they did was legal, but hardly ethical, couple of things in this case that i personally did not liked:
      – Jigoshop was forked just before 1.0 stable release, so whole heavy lifting was done by Jigoshop (don’t want to get in discussion if the did it on purpose or not, i like to think they did not, but the fact remains)
      – (at least) in the beginning WooCommerce was just rebranded Jigoshop
      – Woo offered to purchase Jigoshop, when the offer (hardly fair as far as i know) was declined, the code was forked

      Of course there are also positive examples, when Matt Mullenweg and Mike Little forked b2, good but almost dead project, if they could not do that, we wouldn’t be talking right now :)

      1. Eric Amundson Avatar

        Good points, Greg. :)

        It’s interesting that, while the GPL preserves your right to copy, improve, and re-distribute software, it has no way of protecting you from potentially seeming scuzzy when you do so.

        In many cases, it’s not an issue at all when a project is forked for a different treatment or direction, but when a company does it to create their own product, they don’t always win friends, at least initially.

        Again, I’m no expert on the Woo/Jigo issue, but since Woo gives WooCommerce away for free and has a big name and huge client base (many fanatical), they have already grown their e-com community immensely by fostering further development. They now have something like 250 extensions for WooCommerce, which have helped many users, developers, and probably WordPress as a whole, while providing a load of competition.

        So, it’s definitely a tough one. Does the positive outweigh the negative, assuming that the original developers get credit?

  5. […] is a section about WordPress in the article, it’s good to understand how the scripts you use are […]