GPL, plug-ins, themes and derivative works, the case of ‘Free as in Pizza’

When Richard Stallman first thought of Free Software he had the four basic freedoms of the GPL in mind: the freedom to run the program, the freedom to modify the source code, the freedom to redistribute the program and the freedom to allow improvement and evolution of software. Stallman’s case was quite simple: He worked as a programmer at MIT’s AI labs and wanted to fix the Xerox printer  drivers. When Xerox moved to proprietary drivers and prevented Stallman to access the printer’s source code, he first thought of free software in order to help himself and others share knowledge and tinker with software. (Read more here)

Since the evolution of GPL began, there were many debates (and I’ve had the pleasure to take part in at least one of them) about the virtues of free software. However, this week’s events and announcements show that the basic freedoms of the GPL are not what the Free Software  Movement has in mind when they interpret the GPL, when sometimes their interpretation may be the one that might harm the community instead of helping it.

Two popular content management systems (CMS) who are quite popular decided to implement a strict interpretation of the GPL. the two popular open source systems are server based and released under the popular GPL licence. Both WordPress and Joomla decided that in order to appear in their add-on database, you must release your theme or plug-in under the terms of the GPL. WordPress’ decision that WordPress themes must be GPL to be listed and Joomla’s decision that all extensions need to be released under the GPL both rely on the same strict interpretation of the GPL by the SFLC: “it is our opinion that the themes presented, and any that are substantially similar, contain elements that are derivative works of the WordPress software as well as elements that are potentially separate works”.

In order to understand this, one must understand the GPL and its terms. The GPL requires that  all derivative works (meaning works based on the original program) will be released under the GPL as well (clause 2 of the GPLv2): “You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work…”; the user is granted the freedom to modify the work without any concern as long as he  does not distribute the modification in any form of license but the GPL. This is the viral nature of the GPL: all improvements in the software have to be released under GPL (if they are released).

However, freedom 1, as defined by Stallman himself, means the freedom to tinker with the software, without having to share your tinkers. When I patch a computer software to fit my system, or when I design a blog theme, I do not have to release it to the public (that’s what the aGPL is for, and if wordpress wasn’t so heavily based on other’s GPL code, it could have been released under aGPL to assert those freedoms). What Joomla and WordPress are doing is quite the opposite, they are taking away freedoms instead of using the freedoms of free software.

Take, for example, Omry Yadan’s popular software,Firestats. Omry wrote a php application to provide simple and efficient web analytics. This software runs on virtually any server and with any CMS, and is provided for free. Moreover, Firestats is definitely not a derivative work of WordPress or Joomla, it is a “separate and independent work” (GPLv3 clause 5, GPLv2 clause 2) which means that they are in the safe zone for GPL, as it states that ” If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works.”

Meaning that even were Firestats was distributed with one of the GPL’d CMSs, it would still be considered ok to distribute without licensing it under the GPL. However, in order to be included in the Plug-in directory it has to comply with the GPL for no legal reason.

Now, this absurdity comes to mind when GPL-laundrying occurs. Think of the following situation: I used several pieces of code in my design, including CC-licensed code from a manual, and designed a template. In order to run my template, I used both WordPress commands and PHP commands:

<title><?php if (is_home () ) { bloginfo('name'); } elseif ( is_category() ) {
single_cat_title(); echo " - "; bloginfo('name');
} elseif (is_single() || is_page() ) {
single_post_title();
} elseif (is_search() ) {
bloginfo('name'); echo " search results: "; echo wp_specialchars($s);
} else { wp_title('',true); }
?></title>

This example demonstrates the use of PHP, MySQL and WordPress libraries, all use in the same script. However, this is not a derivative work of PHP or MySQL; this is obvious. Therefore, why is this considered a derivative work from WordPress? Would things be considered different if WordPress had an API for posts and information, and the Theme itself was running separately? Right, a theme (most of the time) can’t be considered Independent, but only Separate. However, a plug-in might be considered both.

This problem even goes beyond that, as the themes and plug-ins are not distributed with WordPress, but separately, therefore need not to comply: freedom 1 (as well as fair use) grants me the freedom to tinker the software on my server for my personal use; I need not to worry about it as long as I don’t distribute. Should I wish to distribute WordPress with several plug-ins (or themes) pre-installed, then I would have to  get the right permission from all the developers to package it as one software.

The latest interpretation of the GPL as restricting use of non-GPL’d code in GPL’d software only restricts the freedoms in free software, and might provide others incentives to package their code differently and use it under a different name.

[Title originated here]

5 thoughts on “GPL, plug-ins, themes and derivative works, the case of ‘Free as in Pizza’

  1. You seem to ignore the benefit of the user.

    Consider the addons directory of Firefox. When you want to install something from there, you have really no idea what the extension does (or even what’s its license is).

    Having a large repository of free software encoreges others to contribute to it. This is even more so when the repository is copyleft. Such a large repository is, in turn, very useful for users of the software.

    And the users of the software are, basically, its developers.

  2. Hi Tzafrir,

    I’m not ignoring the user; If the software repository was more on an SVN than a place where there are links for other plug-ins then i’d agree. But where a repository is an App-Store (more like Apple than like SVN) then I think that it’s not justified to discriminate on the basis of open sourceness.

    The question is more of fairness than of legality, but if it’s usability, then when you get all plugins and themes in source form (since they are PHP) then the question of tinkering is inexistent.

  3. It’s not an app-store. There’s no monopoly here. If you think you can do better than them – go ahead and provide a competing service. Recall that Joomla is the result of users not liking some decisions done by some of Mambo’s developers. They would surely be aware of the option of forking.

    Why would you, as a user, have to worry about the license?

    BTW: you should also care much about Debian discriminating against software that does not comply with their social contract. Isn’t it the same sort of discrimination?

  4. Tzafrir,

    I know that anyone can actually install any plug-in, and that there’s no monopoly, but drafting the default rules based on licensing seems strange.

    And regarding Debian, I think that mono took care of that.

Leave a Reply

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