owen

It’s hard to make headway against the “leading brand” without showing exactly what sets you apart from them; what you do better. I think that Habari needs and can provide many examples of how we’ve taking what everyone looks toward - probably most rightly - as the “standard” in blog software, and done something radically better. This is one example that stands out firmly in my mind.

I am not the only person who has noticed that WordPress is released under the GNU General Public License. In the license, it very plainly states:

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

The only conclusion is that if your theme executes functions that are provided by WordPress, then your theme is indelibly connected to WordPress, and must itself be made available under the same terms as WordPress.

Of course, the howling cries of designers begin here. “How can a theme I design be restricted by a license on some other software?” The answer is obvious. Your theme doesn’t run without that particular other software, and so to make legal use of the functions within that software you must abide by the terms of the license. Abiding by the terms of the license means that if you release your theme, then your theme must also be GPL-licensed. It’s straightforward, simple.

The consequence of this is that when you sell your theme (which you are perfectly entitled to do even if it is GPL-licensed), then whoever buys it is granted permission to use it under that license. This includes giving it away for free, or even selling it themselves! So you had better charge a lot for that first theme download.

This bothers theme developers more than plugin developers, because it seems nonsensical that your graphic design should fall under this license when you’re just using a few lines of GPL code. But if you choose to include GPL calls in your theme, like the_title() or the_content(), then your whole theme becomes tainted by the GNU GPL, and you’re stuck. With plugins, the problem is even more obvious. Without the calls to register WordPress hooks, you can’t even create a working plugin for WordPress.

This is not an unfamilar situation even in other fields. With video games, game manufacturers pay licensing fees to the console manufacturers before they’re allowed to sell a product that runs on their systems. If you want to write a game for the Wii, making use of its components, and release it legally, you must pay a fee to Nintendo. Just like Nintendo applies a requirement to produce Wii games, WordPress (and any software that uses GPL) applies a requirement to supplementary modules like plugins or themes. The requirement is not money, but simply that your module be released under the same terms as WordPress.

The GNU GPL FAQ says it pretty clearly (emphasis mine):

If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means the plug-ins must be released under the GPL or a GPL-compatible free software license, and that the terms of the GPL must be followed when those plug-ins are distributed.

Think this doesn’t apply to WordPress? Think maybe the words “dynamically link” don’t bind? Even Matt thinks they do. He’s completely correct.

Another way this is evidenced as absolutely being true is that there are other open source licenses that do not similarly taint ancillary works. And this is the one way I was talking about in which Habari slaughters WordPress.

Habari is released under the Apache Software License. The ASL makes no such restrictions for released works. In fact, it specifically says that the ASL does not apply to works that merely link to the original:

Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.

It’s really the flavor of the licenses that needs to be taken into account. Understanding what the aims of the two licenses are brings into the light why they differ so much.

The GPL was designed with the intent that free software should remain free; the intent that anyone who benefits from the use of that free software should also contribute their work back to the community of free software users. It’s a noble goal, growing the open source ecosystem. You can read this into the FSF’s almost Marxist propaganda.

Of course it’s correct that not all software that is “open source” is free, but applying a license to your software that removes the freedom of developers to license their ancillary software (themes and plugins) as they see fit doesn’t seem like it holds so high those ideals of freedom, does it?

The ASL seeks to apply a license that protects the original work and allows a vibrant ecosystem of both free and commercial interests to take part. Just as free and open alternatives to pretty much any commercial software you can think of have arisen over the years, the ASL will allow the same behavior to build a thriving community for Habari users.

People have asked countless times why Habari is not GPL. It limits what libraries we can include because including GPL code in Habari’s core code would taint Habari and require that we release it under the GPL. But we’re insistent. We want our themers to have the right to charge for their hard work. We want a rich ecosystem of themes and plugins where market competition - not measured simply in money charged, but in who can make the best modules, free or not - dictates the flow of interest. I find it very hard to believe that if a popular plugin or theme was sold for $50 we’d see no free look-alikes released within days.

This issue is crazy because there are hundreds of themes out there whose authors have slapped CC licenses on them or included stipulations that their affiliate links can’t be removed. The former is a failure to comply with the WordPress license and the latter is specifically what the GPL is meant to prevent!

So that’s it. Before you even get into the technical merits of the platforms, think about the license, especially if you’re a theme developer. Slapping a Creative Commons license on your theme will work just fine for Habari. Doing it for WordPress is a violation of their license.