You got GPL in my peanut butter

It has never been a more exciting time to be a developer. Numerous open platforms exist in which to ply your trade and make a good living doing it. A platform’s user base grows as it matures, and inevitably gives birth to a thriving developer ecosystem supporting that platform, selling services into it, and when the platform is any good that ecosystem will turn into a marketplace. There has been an explosion of these ecosystems as evidenced by the success of the Apple App Store, Facebook, Twitter, Sales Force and Google Apps. In the last few years, WordPress has come into its own and has generated its own cottage industry for themes, plugins, and other add-on services.

What makes WordPress unique is that the platform itself is open sourced under the GNU General Public License v2. This license imposes itself on derivative works by insisting that they in turn be licensed under the GPLv2 if and when they are distributed to others. Generally, this poses no issues, and everyone releasing plugins and themes on the WordPress.org Extensions db has chosen to release their code under the GPL.

The Premium WordPress Theme and Plugin marketplace has largely adopted the GPLv2 for licensing their goods (at least the parts they are compelled to by the GPL, namely the PHP code). It should be noted that this doesn’t hinder their ability to sell their add-ons or to even limit access to the downloads by putting it behind a paywall and asking users to pay for access to it. The only limitation that is placed on the developer is that, underneath the GPL, you must release certain rights to the end user of the software. The rights given to users are the same the developer received with WordPress: the code can be forked, copied, modified and extended, provided that all derivative works are licensed under the GPL. The GPL was intended to be contagious and to protect the code by ensuring that it always remains free. In other words, it’s free to remain free.

This is in stark opposition to the MIT or BSD Licenses that generally state that you can use the source code for any purpose and with no impetus to release anything you make with the code under any license, much less the same one that they used. And if you think about it, this is real software freedom. And while no Open Source license is perfect, the GPLv2 especially has a number of gray areas, especially given that is couched in the technical language of binaries and source code – which are hard (but not impossible) to reconcile with interpreted scripting languages, such as PHP, Python and Ruby.

The recent debate swirling around the recent #thesiswp has caused me to examine my own relationship to the GPL, the WordPress community and the larger Open Source movement in general. Both sides of the debate have interesting arguments to make, and by and large I feel that the GPL, as interpreted by the core developers and contributors (the copyright holders), the WordPress Foundation (the trademark holders) and many others in the community, extends to Plugins and Themes.

Anyone who has done any serious WordPress development knows that themes and plugins are so intertwined with the WordPress core that saying that they don’t combine into a single unit at run time is laughable. You are constantly navigating between the Theme / functions.php, and the Plugin layers to get anything even moderately elaborate running on WordPress.

I should know. I work on K2, a free theme framework with over a half a million downloads, and have written 100s of plugins for myself and clients, and released a dozen of them. This is what makes WordPress such a great CMS to work with.

WordPress development requires the navigation and manipulation of numerous callback functions, function overrides, class extensions and the use of other PHP language constructs that all of the code turns into one hot mess. Have you ever debugged a typical WordPress request cycle? If you follow it all the way through, you’ll see it jump around between the Core, Theme, and Plugin layers and back again – and if you don’t step into the functions deep enough you won’t even see your plugins and theme in action – it just looks like all WordPress (yet your plugin and theme code will have run and contributed greatly to the final output of the page).

Which brings me to the matter of the GPL, and my own relationship to it. Given its flaws, I can say that my own, non-GPL incumbered, open source contributions will be released under the MIT License. Its short, to the point and strives more to be an open release of source code than a philosophical stance. This is a personal choice, and is one I came to have to talking with other developers (outside of our community) about the GPL, the further research I did in trying to understand both sides of the argument, and actually reading and rereading many of the different open source licenses to get a sense for how I interpreted what I read.

Don’t get me wrong, I think the GPL is fine, am grateful to the numerous software packages I love and use every day that are free to me because of the GPL, but when I want to make something truly free then one of the “non-Copyleft” licenses are just one of the better choices. All of my WordPress related contributions will continue to be released under the GPL license – by choice and by the wishes of the WordPress copyright holders (of which I am one).

As for #thesiswp, the debate will remain largely unsettled and unsettling to the WordPress community. Call it growing pains, call it mud slinging, call it anything you want. Even if the WordPress community stopped persuading “Anti-GPL” hold-outs to release under the GPL license, or if all of the hold-outs (most notably Chris Pearson creator of the Thesis theme) adopted the GPL on their own, nothing would change but their opinion of each other. And there in lies the paradox. They got chocolate in our GPL and we got GPL in their peanut butter.

And unlike some of the folks in this debate (and very much like others) I don’t feel that this particular Philosophical Reese Cup would be settled, nay! could be settled with a court case. A GPL battle would be a huge distraction for the community, and as I’ve stated previously, it would probably create a largely inefficient outcome for both parties – no matter who ‘wins’. Its unfortunate that there are clear GPL violations in the current Thesis codebase, since that changes the nature of any possible court case from being a test of the GPL to one of code “theft”, which begs the question: Can free code even be stolen?

And this is where my relationship to the GPL shifted. You see, the GPL builds upon copyright law and not contract law like End User License Agreements (EULAs) do. And even if you only take the GPL-inheritance definition at face value, you can see how this Copyleft license starts to resemble a EULA – in so far as they both pose some limitations. Obviously this comparison is a bit of a stretch given that there is ton of freedom afforded by the GPL – for both developer and user – and building your business on GPL code is a fine idea with a lot of perks, and when one of those perks is 20 Million+ users allowing limitations becomes part of the trade off.

I liken it to Apple’s Developer Agreement and the other great debate of our day, Apple v. Adobe. Does Apple, the platform creator/innovator, get to make up arbitrary rules and ask that all developers for their platforms play by those rules? Absolutely. And despite the drawbacks of their proprietary platform and the flaming bizzaro hoops you have to jump through to release on their platform, developers that are willing to play by the rules are making an absolute killing.

The WordPress marketplace for Premium Themes, Plugins, Services, Hosting, Consulting, and other add-on Services is growing every day and many companies, including the one owned by Mr. Pearson, are themselves making a killing. Most developers are willing to play by the rules of the GPL license, but since WordPress doesn’t control the distribution of paid add-ons, compliance has to be voluntary. If we give the corporate person Apple enough leeway to say: “Your agreement sucks, but I’ll comply in order to make cool stuff for people to buy” then why can’t we afford the same respect to the thousands of real people that are represented by the WordPress copyright?

Its seems to me to be easier to adopt the GPL and continue offering your products and services, than to publicly, and at many times antagonistically, defy the wishes of the WordPress copyright holders. That just seems like bad business with a side of disrespect.

Its a shame that the substance of this battle is so largely philosophical. Both sides are being asked to change their minds and give up their own personal principles to make each other happy, and that’s just not something humans are very good at doing.

P.S. – There are a number of great posts on both sides of the issues of this debate that I couldn’t be bothered linking to each and everyone of them inside of the post. Instead I offer you a collection of bookmarks I’ve been curating on this issue.

13 thoughts on “You got GPL in my peanut butter

  1. Pingback: You got GPL in my peanut butter « xentek at The WordPress GPL Debate

  2. I completely support people releasing their own work under other Open Source licenses, and I respect that decision the same way I would hope people respect the WP community’s decision to contribute to GPL software. Let me describe my personal decision tree for picking a license.

    The main difference to me is whether or not you care what happens to your code after it’s out in the world. If I’m doing small libraries or throwaway snippets I choose MIT because it has basically no restrictions and sounds cool. It can be embedded and reused and misused till the cows come home.

    When I create a more substantial work, though, particularly one that targets end-users as the primary audience, I choose GPL. With MIT someone could take my code under free terms and then subject their own users to highly restrictive, freedom-limiting terms. I consider this a bad thing because it’s a net loss of freedom in the world, my work is enabling someone else to restrict their users. All the power is in the hands of the developer, they could even arbitrarily change their license from day to day. The GPL prevents that, and I consider that a more free license because the restriction on the developer that you can’t harm your users by restricting their freedom I don’t see as a negative at all because it ultimately benefits the world by increasing net freedom.

    In the end, the GPL protects users, and savvy users should seek GPL-style software wherever possible. For better writing than I could do on this, and with a real-world example, check out Mark Pilgrim’s essay Freedom 0, it’s worth re-reading a few times.

    http://diveintomark.org/archives/2004/05/14/freedom-0

    • The relative value of the code – both to the developer and the end user was playing at the back of my mind as I was writing this but didn’t find a way to bring it up, so I appreciate you raising the topic.

      Given the relative size of the project now I absolutely think going with the GPL was a smart move. The end-user freedoms afforded by the GPL have in no small part fueled the growth of the WordPress ecosystem – a platform and community that drives over 80% of my business now. The only unfortunate thing, I feel, is that we are locked into v2 – when newer versions (some that may not even be written yet) may strengthen the GPL’s position and couch its definitions to reflect modern computing conditions.

      Copyright, GPL, and related issues are deeply nuanced subjects that aren’t so easily delivered as cliff notes. Each time I question my assumptions about copyright and open source licenses I learn something new about it, and about myself.

      - Eric

      P.S. – Thanks for the link. I’ve read it before, but its been a while. Going back to read it now.

  3. @Matt

    Freedom 0 is a great article and, in my mind, one of the most important milestones in the history of WordPress.

    But the “freedom 0” it talks about (“The freedom to run the program, for any purpose”) is not a unique feature of the GPL. It is a feature of ALL free licenses, of which there are many[1] (including the MIT license and several other well-known and widely-used licenses).

    For this reason, it is misleading to present the Freedom 0 article as an argument for the GPL exclusively or explicitly. The Freedom 0 article is an argument for ALL free licenses.

    [1] List of free and non-free open-source licenses according to the GNU project: http://www.gnu.org/licenses/license-list.html

    • While that is true, Demetris, the article specifically calls out WordPress and the GPL. Matt linked to the article as an example of another personal account of someone’s relationship to the GPL. Thanks for you comment.

      • Eric,

        Read carefully what Matt says.

        First he compares the MIT license with the GPL license to explain why he prefers the latter for substantial works.

        (The comparison, by the way, says something inaccurate: That an MIT license can change any day, while the GPL prevents that. That is not true: Any license can change any day as long as the copyright owners agree to change it.)

        Then he goes on to cite Mark Pilgrim’s article as a cautionary tale of why “savvy” users should have the same preference.

        Now go and read carefully what Mark Pilgrim writes.

        Mark Pilgrim would have written the same article if WordPress was licensed under another FREE license. The four freedoms Pilgrim cares about (freedoms 0, 1, 2 and 3) are all guaranteed by ANY free license, of which, as I said, there are many: MIT/X11, Apache, BSD, GPL — the list is long. (See the link I gave above.)

        Mark Pilgrim’s article is about FREE licenses and about the pitfalls of non-free licenses. It is not about which license prevents restrictive relicensing (the problem with MT is that its license was restrictive BEFORE the relicensing), it is not about the GPL, it is not about WordPress and the GPL, and it certainly is not about why the GPL license is better or worse than the MIT license, or about why “savvy” users should choose the one or the other.

        • Demetris,

          Matt didn’t insinuate that Mark’s article was about why savvy users should seek out GPL software – that was clearly Matt’s own opinion.

          Mark’s article did however specifically call out the GPL (with no specific mention of any other licenses) and even spends two paragraphs detailing why and how the GPL specifically protects user’s freedom due to its insistence on variants, forks, and derivatives of the original software must bear the same license.

          You are correct that an open source license can change if all of the copyright holders can come to an agreement to change the license, but given the sheer number of contributors to most large GPL code bases, it becomes a matter of impracticality: finding all of the contributors to sign off on such a change would be a monumental task and I can think of only one piece of software that did it, which is squeak (there may be others, but this is the only one I know of).

          Regardless, WP is not going to change licenses anytime soon, and Matt’s personal decision tree for license choice is a matter of preference and not universal law.

  4. As a musician, what do you have to say about the “Share-Alike” variant of the Creative Commons? Are your feelings the same when it comes to other creative media?

    • My understanding of CC licenses is that they have a different purpose, and that there are some things that cover public performance which aren’t the same as GPL.

      • Indeed. Its quite hard to perform code publicly, and while it could be likened to the program execution, all software licenses agree on one thing: you’re allowed to run the program (even if some licenses require certain conditions be met before you can run them).

    • For works I want to release commercially, I retain copyright or use a non-ShareAlike version of the Creative Commons, for everything else I default to the ShareAlike licenses. Most of the music I listen to is rooted in a long and storied ‘remix culture’ and much of my music comes incorporates found sounds and other sampling techniques. Some of those elements are fair use and others aren’t and my thinking around these types of works are a bit different than software, given that pulling elements out of a piece of music is not the same as mixing in code from other sources – there’s almost an implicit amount of creative effort required to pull it off, something that’s not quite true for software development where whole passages can be lifted without changing a thing. This thinking can and does break down under heavy scrutiny but this is how I think about it at least.

  5. Actually BSD/MIT does not give me all freedoms, like taking over authorship for example. If you talk about real freedom, I would expect as well to have the freedom to claim the authorship. Sadly, it doesn’t offer that. So not really free :/

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>