That Thesis Thing

Update 7/22/2010: Thesis adopts the GPL!

Over the last few days, the WordPress community has exploded into debate over one thing: Thesis and it’s restrictive, non-GPL-compliant license.  If you’re already familiar with the particulars of what Thesis is and what the debate is, you can skip the summary (to be honest, I’m sick of reading people rehashing the whole thing in order to provide enough background for casual visits, but I understand it’s necessry). I’ve taken the last several days absorbing all the information, the arguments on both sides, and held off writing anything about it until there was more information available.  As GPL-supported commercial themes developers, we’re a bit biased on which side of the fence Chris Pearson — the author of Thesis and DIYThemes — should be, the question is whether it is accurate to require him to comply with WordPress’ GPLv2 license.

What is Thesis?

Thesis is a WordPress theme, plain and simple.  What separates Thesis from some other commercial themes is its’ fairly exhaustive options pages which allow you to control various aspects of the front-end layout and design, as well as its claim of “airtight SEO.”  You have several pages of options allowing you to customize just about every aspect of the layout and colors of your site with an option to use custom-coding to expand it even more.  It promises “lightning-fast” page loads and encourages you to “just add killer content.”

Our initial bias

When we first started doing web design, particularly design based on WordPress, the internet was littered with requests to “customize Thesis theme.”  We took one look at what it was, and made a decision then to never work with it.  Our decision was based on this: if you have a theme that is built to offer unlimited customization options what’s the point of hiring a designer?  The entire point of Thesis is that you shouldn’t need a designer, and if you still do need a designer, obviously the theme isn’t doing its job.  At the same time, it’s easy to  understand without even looking what the pitfalls of a theme like that would be: the very fact that it offers unlimited possibilities is, in fact, more limiting than if it did not.  The typical user is not going to be able to look at a color wheel and say “yep, I want #EAFF63.”  They’re going to look at the range of 16 million colors, maybe pick a combination that looks horrid, and then ask someone else who knows what they’re doing to tell them what they want.  The entire point of hiring a designer to build a custom WordPress theme is that you don’t want to deal with the design elements or the coding, and would rather put your trust and faith in a professional who makes it their business to create attractive websites.  To us, customizing Thesis represented a conflict of interest.

What is GPL?

As stated on our GPL page, the GPL is a software license.  WordPress was forked from an earlier blogging platform that was no longer being developed, called B2.  B2 was released under the GPLv2 license.  Under the terms of the license, any derivative software, modifications, or forks must be released under the same license (or a later version of the license).  So, for example, WordPress could potentially be released under the GPLv3 license, but it could not be released under a more restrictive, proprietary license (like Thesis), or even an alternate open source license like a  Creative Commons license, BSD license or MIT license.  This is an important point, as there has been some discussion of WordPress simply adopting a less-restrictive license: they can’t.  By the terms of the GPL under which the original code was written for B2, WordPress cannot legally adopt another license.  Period.

Our bias towards the GPL

I’ve been a fan of open source for years, ever since I discovered that you could find a free, open source alternative to just about any application you were looking for.  I’ve dabbled more than a little with Linux and used a variety of different open source web software applications for different tasks.  When we finished building our Museum Themes and started getting the site ready for distribution, we were forced to think about licenses.  When Museum Themes was just an idea, licensing wasn’t something we thought about much.  We considered doing a user license and a developer license and a multi-use license.  But when it came closer and I was building up the site, I did extensive research on WordPress, the GPL, and the pros, cons, and debate about whether it’s even applicable (or whether that matters at all).  In the end, we embraced the GPL not because we believed, as derivative software, we’re required to use the GNU Public License or a GPL-compatible license ourselves, and not because StudioPress, WooThemes and many others have embraced it.  It came down to what we wanted to do with our themes and what we wanted our users to do with our themes.

I can — without question — understand not wanting people to steal your code.  We worked long and hard on these themes.  The last thing we’d want is someone else to sell them cheaper than what we are (or put them somewhere for free) after spending so much time on them and losing our fledgling business before it’s even had a chance to spread its wings.  So I can understand Chris Pearson putting a restrictive license on his software; he wants to protect his investment and his intellectual property.  On the other hand, we asked ourselves: what do we want our users to be able to do?  Do we want our users to take our themes and modify them to their heart’s content? Yes.  Do we ever want to limit or restrict how our users use our themes or in what context or otherwise prevent them from using it in any way they see fit? No.  We really don’t.  Do we want to be compensated for putting in weeks and months of hard work designing and coding and then maintaining this site and all future updates? Yes.  Would we be willing to fully offer support to users who purchased our themes through official channels? Absolutely.  Broken down into those terms, adopting the GPL seemed like a no-brainer, and a perfect fit for us.

So we have a partial bias towards the GPL, although we did explore all avenues when we were considering licensing for Museum Themes.

The argument

The debate comes down to this: Matt Mullenweg, founder of Automattic and WordPress, believes themes are derivative works, and therefore require a GPL-compatible license if you are planning on distributing your theme.

Chris Pearson, founder of DIYThemes and Thesis, believes the GPL doesn’t apply to themes, or to him, and doesn’t feel right about releasing his work under any license that requires you to provide the source for free.

There is no precedent in any United States court on this topic, though a some related cases have been tossed around.  According to Matt, in the United States, any time the GPL came into question on an issue like this, the major companies have backed down and settled out of court.

Chris Pearson cites a Florida lawyer’s analysis on the GPL as it relates to WordPress themes, and ultimately determines that themes are not derivatives, fall within the scope of “fair use” and, therefore, the GPL not only does not apply, but doesn’t matter.

Matt Mullenweg asked the Software Freedom Law Center (a pro bono consortium of legal experts with regards to the GPL) to analyse the way WordPress used themes and provide their analysis.  They determined that themes, based on how they interacted with the core WordPress software, were derivatives and therefore fell under the scope of the GPL (although images and CSS files didn’t need to be GPL explicitly since they had no direct relationship with the core WordPress functionality).

And so the debate has been.  Now we’re all caught up to right about where we were last Wednesday when two things happened almost simultaneously: 1) Bill Erickson, a WordPress developer and consultant was dropped from the list of WordPress consultants on the official WordPress site for endorsing Thesis and 2) Thesis 1.7 and 1.8-beta downloads were injected with malicious code.  This started some heated comments to get thrown back and forth on Twitter by both Pearson and Matt Mullenweg and their respective legions, culminating in both appearing live on Mixergy to duke it out (figuratively).  (You can listen to the replay, watch the whole thing, or read the transcript on Mixergy.)

As much as I’d like to, I won’t get into the actual debate and some of the classic comments that will likely be tossed around the internet for months, if not years to come.  The Reader’s Digest version is this: it amounted to nothing.  Both parties were pissed off (though Matt did a much better job of handling it diplomatically while Chris seemed to be verging on hysteria for the last half of the interview), but in the end, Chris Pearson said he would be “personally fraudulent” if he adopted any sort of license that went against his own personal beliefs (in adopting the GPL).  Furthermore, he said the GPL was one of those laws that wasn’t enforceable, comparing it to a Georgia law that prohibited blowjobs.

Despite claims of “character assassination” that Chris made on Twitter, really, the only character assassin by the end of the interview — if there was one — was Chris himself.  However, anyone who’s followed him for any amount of time would know that this is not a new thing.  He’s always been brash and argumentative, verging on nonsensical at times with his perpetual habit of getting lost in tangents and forgetting the question.  Here he is bullying a poor Thesis fanboy into pulling down the theme he created that was designed to emulate (at least in appearances) Thesis.  Here he is going ballistic about Matt Mullenweg giving credit to the open source community for the 7 year anniversary of WordPress.

Chris Pearson’s personality does not prove or disprove the issue of GPL violation.  It doesn’t look good, and certainly explains (at least to some extent) his resistance at adopting the GPL, but it doesn’t matter no matter how much his attitude seemed similar to a person walking into a grocery store and saying “I don’t really feel like paying five bucks for these apples, here’s one, which is what I feel they’re worth.”  At this point in the story, that’s where things would sit.

Discussion

Various theories and arguments have been tossed back and forth.  The, now standard, defense that themes are not required to be GPL and it doesn’t matter anyway by Mike Wasylik continued to be Thesis’ main defense.  He contends:

It’s just not enough to say that themes running on top of, and using function calls from, a piece of software are “derivative” of that software. If that were the case, then any software application would be a derivative work of the operating system it runs on – such as Windows, Linux, or OS X – which in turn would be a derivative work of the software hard-coded into the chips running the computer. For that is the way all software works, down to the bare iron – it sits on top of, and makes function calls to, the software layer beneath it, until to get down to the silicon pathways in the chip itself. No software could run without those lower layers, and nothing is truly independent of them. But “dependent” and “derivative” are not the same thing.

Programmer Drew Blas sums it up this way:

The long and short is that SFLC’s opinion could be applied to any software that runs on Linux. Meaning you could never have a closed-source software product running on the linux kernel (“Oh, your code calls fork()? GPL!”). It is commonly accepted that simply integrating with an existing product does not produce a derivative work. If your code is totally your own, the GPL has no say over how you license it.

However, WordPress’ lead developer Mark Jaquith has a well-written counter-argument to that the thesis to which is that “themes interact with WordPress (and WordPress with themes) the exact same way that WordPress interacts with itself.”  ”They do not run separately,” he says.  ”They run as one cohesive unit. They don’t even run in a sequential order. WordPress starts up, WordPress tells the theme to run its functions and register its hooks and filters, then WordPress runs some queries, then WordPress calls the appropriate theme PHP file, and then the theme hooks into the queried WordPress data and uses WordPress functions to display it, and then WordPress shuts down and finishes the request. On that simple view, it looks like a multi-layered sandwich. But the integration is even more amalgamated than the sandwich analogy suggests.”

I’m not a software developer, or a legal expert (this much should be obvious), but it seems to me, using the same Linux comparison, that this would be less like a single application running on the Linux platform (which would be allowed under the GPL if the application didn’t call any GPL-specific libraries or functions or include any GPL code) and more like an entire distribution of Linux (Ubuntu, RedHat, Slackware, Gentoo, etc).  Sure, for the 5 seconds it takes to boot up to GRUB, you’re free and clear, but everything after that is touched by the specific distribution, from the loading screen to the desktop environment.  Saying that could be released under a non-GPL license would mean that all the software used in that distribution would need to be proprietary — no GPL software could be used as part of the closed-license distribution.  It’s like booting up Linux and getting a Windows desktop instead.  (In recent history SCO attempted to claim copyright over Linux code, which would have resulted in Linux users and developers being required to pay a royalty fee to use it.  They lost.)

But then the plot thickened…

See, the derivative (or not) argument is an interpretation.  Now, granted, it’s an interpretation that Joomla! and Drupal both stand by, but still, it’s an interpretation, and whether it would stand up in court is the subject of much debate.  However, after a couple WordPress developers (Andy Peatling & Andrew Nacin) started picking through Thesis code, they found lines that were literally copied and pasted from WordPress into Thesis — a clear GPL violation.  That prompted a programmer, the aforementioned Drew Blas, to write a script that compared Thesis source code with WordPress and identified each bit of substantial code that was obviously lifted from core WordPress.  And that lead to the discovery of what has come to be known as the “copy pasta,” a chunk of code deliberately lifted from WordPress that included this comment:

/**
* This function is mostly copy pasta from WP (wp-includes/media.php),
* but with minor alteration to play more nicely with our styling.
**/

This was added by Rick Beckman (aka KingdomGeek) when he was working for DIYThemes, which he acknowledges on Matt’s blog.  Even the liberal “fair use” argument would no longer apply if large chunks of code were lifted from WordPress.  And this throws a major wrench in Thesis’ operation.  Because even if Chris Pearson removes the offending code (which he says he is working on), all previous versions of Thesis are still GPL.  And arguably, any subsequent versions of Thesis would be considered derivative works and therefore the GPL would still apply.  The only way to avoid the issue entirely would be to rewrite all of Thesis.  Good luck with that.

The thing is, Thesis isn’t even all that fantastic.  From a design standpoint it’s okay, but nothing phenomenally groundbreaking.  As a designer who has worked very closely with users, though, I can guarantee that putting a color wheel and allowing your users to choose the colors for their site is a monumentally bad idea (it’s why we don’t do it).  The problem is that all those options, all that unlimited possibility is overwhelming.  It’s why people buy Thesis and then hire a designer to customize it for them.  It’s failing to do its job.  Other themes, or theme frameworks, can do similar things without as much headache: ShiftNews by WPShift has a lot of the same sorts of customization options and Thematic by ThemeShaper has a solid framework upon which to build child themes.  For that matter, we took all these things into account when we were building Museum Themes, and provided ways to allow you to customize your blog design without making it look like this.  It was sort of the point behind Museum One.  Even then, though, we were careful not to put too much stuff so as to overwhelm casual users, and I think that’s Thesis’ main failing.

Honestly, I can’t see Thesis continuing to be a lasting one-trick-pony.  Increasingly, free and other GPL-compatible premium themes are able to match any level of originality or innovation Thesis may once have had.  And if 1.7 (and many previous versions) are GPL from the code that was copied from WordPress, then Chris Pearson’s worst fear may come true — someone re-releasing it for free, protected by the GPL, or else using it as a framework for another competing theme.  Chris Pearson was right about one thing: users don’t (generally) care about the GPL.  But that’s fine, because they don’t have to; the GPL only really applies if you intend to distribute your theme.  Additionally, it gives you permission to modify the code as much as you please (compare that to a typical Microsoft EULA which defines the terms under which you can use the software, and manipulating any core systemic functions or hacking the software to add customization options or additional functionality is expressly prohibited).  However, a look at Matt’s Twitter stream over the days since he and Chris debated on Mixergy gives evidence that people do care about software licenses, and they care if their theme violates the license under which the software it uses was released.  The cat is out of the bag, and there’s no way to shove it back in.  It will be interesting to see how this progresses and what effect it has on WordPress themes in general, and Thesis in particular.

You might also be interested in these:

  1. Gee, there’s a thought…
  2. How to upgrade your Museum Theme to the most current version after you’ve made changes to the files
  3. 12 Free WordPress Themes I Like (and you should, too)