User Tools

Site Tools


musings:tech:misc:gpl

Reconsidering the GPL

This article was originally published on December 8, 2012.

2022 Update

All of my projects are released under a modified version of GNU Affero, which adds the following limitation:

This project is prohibited from being held to any code of conduct, contributor covenant, or any other restrictions on the behavior of any contributors to, or forks of, this project.

This project holds no ideology or political position, as it is source code, and source code doesn't care about the beliefs of the people who wrote it.

An awful lot of software these days is released open-source, under various licenses. Gnu GPL is a popular one, in its various iterations. It’s a pretty great idea – software is released for free, the source code is made available to anyone who wants to take the time to compile it, people get access to useful applications without paying exorbitant license fees, and everyone wins. The really big projects like Ubuntu and Firefox get donations from generous users, which allows them to focus on developing great software instead of just making it a hobby they work on during the weekend.

For smaller projects, it tends toward a group of devs who have Real Jobs™ and work on their programs in their free time. For those people, the GPL allows for anyone else to take your source code, compile it, and sell it. They can’t say they wrote it, but they’re more than welcome to profit from your work. And, if they decided to make a few tweaks here and there, other developers can go so far as to include antipiracy or DRM features in derivative works based on your code. GPL v3 explicitly prohibits software released under that license to attempt to legally enforce anti-circumvention laws regarding getting around DRM (such a provision exists in the DMCA in the United States), but there’s nothing keeping a developer from putting those antipiracy measures in place.

How does any of this protect the original developer? I’m not a professional programmer by any means, but I’ve written a few apps in C#, a lot of web-based stuff, and a number of addons for a popular MMO. I’ve always been a proponent of free, open-source software, but now I’m starting to wonder if it’s all it’s cracked up to be. I certainly don’t want to invest days, hours, months, or even years on a quality piece of software just to have someone else take all my efforts, change a few things or make some updates, and sell it for profit – especially when that developer goes so far as to include antipiracy code that prevents users from being able to use the software freely. That seems to be the opposite of free software – both in “freedom” and “price”. The same people who believe it’s unfair that iTunes encrypts their purchases with DRM have no problem including their own DRM in software that they didn’t even write themselves.

I feel bad for FOSS developers who become victims of enterprising developers looking to make a quick buck without much work. Sure, you have to keep updating your own fork when the main trunk is updated, but that’s not much work compared to writing an entire application from scratch, is it? That attitude seems to fly in the face of why a developer might want to release their software under an open-source license. I suppose this is why I’m in favor of software that has a plugin API available. This allows developers to enhance an existing product without changing the core product – and then distributing it for a fee. WordPress is a great example – there are commercial themes and plugins available that may (or may not) be better than what’s out there for free, but the user can still install and use WordPress itself at no charge. Seems like a much better solution all-around.

So what about ports? If I write a tool – let’s say a nice text editor with some extra features for editing source code in various programming languages – and make it available for Windows, someone else might come along and port it to OS X or Linux or even a mobile platform like iOS or Android. Then what? Is it fair for that developer to profit off my work? It might be technically legal under the provisions of the most popular open-source licensing models, like GPL, MPL, and BSD, but is it in the spirit of FOSS? Personally, I’d say no. I am all about getting software into the hands of everyone, not just those on a certain platform or device. At the same time, I may not have the resources to provide compiled binaries of my software for every platform out there – but I also don’t want someone else making money on my efforts, just because they can.

It seems like there is a missing seat in the rotation of open source licenses commonly used. I’d like to see something that allows for free source distribution – but also guaranteed free binary distribution. And, if such a model is either unreasonable or unenforceable, perhaps open source software isn’t the panacea we would like it to be.