Earlier on The Intuitive Life Business Blog I wrote a somewhat controversial piece about open source licenses and whether they are a hindrance to the evolution of commercial applications: Is Open Source Hindering the Development of Commercial Software?
Again, a disclaimer: I’m a long-time contributor to the world of open source, have written small parts of BSD Unix, have opened up my entire library of 150+ shell scripts associated with my book Wicked Cool Shell Scripts, and have an entire email package floating around in the open source world, so I’m hardly any sort of crass capitalist who is against the basic premise of open source software and development. However…
There are a couple of interesting updates to this story that I wanted to share, and a bit of a rant I’d like to publish too.
First off, I couldn’t help but be amused by this story: GPL Upgrade Due in 2007 that states:
“Presenting at the LinuxWorld conference on Wednesday, Eben Moglen, president and executive director of the Software Freedom Law Center and a key participant in the planned Version 3.0 of GPL, cited issues expected to be covered in the upgrade. These include resolving patent conflicts, accommodating Web services, and resolving incompatibilities with other licenses. Dealing with wikis in the GPL also has been pondered.”
In my earlier piece, I suggested that perhaps it was a bit optimistic to expect software developers who aren’t part of the open source community to be able to figure out the nuances and complexities of the General Public License (GPL), and I think that a license that’s going to take until 2007 to revise surely demonstrates that indeed the GPL is a phenomenally complex and nuanced license agreement?
Even if it’s all just going to be political debates and trying to reconcile and consolidate the dozens of different open source licenses (including, notably, Sun Microsystems’ own Common Development and Distribution License), then how is a small company supposed to figure it all out and catch all the subtleties buried in word choice and terminology? It can’t.
And so that brings me to the second update too. You’ll recall that earlier I wrote about Vbuzzer and its misappropriation of the Miranda IM open source software. In a gesture of peace and reconciliation, the Vbuzzer team posted a note to the Miranda developer’s discussion forum stating the steps Vbuzzer had taken to reconcile the problem, and indicating that all Vbuzzer changes would be given back to the Miranda project too. That’s here: Vbuzzer GPL Compliance.
Now I’ve gone back to that discussion thread to check the response, and am just aghast to find out that some of the icon sets, plug-ins and extensions to Miranda are distributed under their own non-GPL licenses and that the authors of these add-ons are complaining that their license terms have been violated! Will the madness ever end?
This problem points out exactly what I believe the open source community folk don’t get: you can’t realistically have fifty different licenses with different terms that cover the icons, plug-ins, skins, extensions and documentation, all for a single application, then expect anyone to not be in violation somewhere along the way.
Again, I believe that this situation demonstrates exactly how open source zealots, though they have the best of intentions, are hindering the development of high quality commercial code. Am I wrong?
I don’t expect that we’ll see a “One True License” because authors will have different expectations around code they release. Some will be fine with having their code included in commercial products, so the BSD license will suit them. Others will only want their code used by other open-source projects, so they’ll go GPL. When you release your code to the world, you should certainly get to set the terms under which it can be used.
But that said, I don’t think the baffling array of licenses available reflects well on the community. I’m an open-source author myself and I have a hard time picking how to license my stuff. As a general rule of thumb I follow precedent, for example my Perl modules in CPAN are under the Perl Artistic License because that’s what Perl and most other modules use. I don’t want to muddy the waters for Perl coders wanting to use my modules. But as for projects without clear precedent to follow…. hmmm… now how exactly is license xyz different than license abc again?
Go to opensource.org and look at their license index. It’s quite a list to behold, much less understand each entry in all its nuance. What would be very helpful is to boil these down to perhaps 3 licenses, ranging from very flexible to very restrictive. Then have a matrix showing exactly which each allows/denies. This would allow both content authors and users to quickly see what’s what. The Creative Commons license(s) are a good example of this principle — they go so far as to have 3 graphical icons showing the license at a glance.
Unfortunately, I don’t have high hopes for creating a good license “in the community.” Get 100 open source advocates in a room and you can’t avoid creating a many-headed monster of a license. (That’s assuming you can create anything at all.) There are simply too many agendas at play. I’m curious to see if GPL will be the future of open source over the next 5-10 years, or if the community will go in a different — and hopefully simpler — direction entirely.
I agree that we’re not going to have any viable candidates for The One True License anytime soon. The only way that I see as working – and IANAL – is an approach where the various open licenses include clauses that say something to the effect that “you can create derivative or complementary works so long as those works are released under a license that does not restrict any of the freedoms and rights granted by this license”. In other words, a plugin for a package released under the LGPL could be released under the GPL but not vice versa. I was of the understanding that most licenses had that sort of language in them already, but with the complexity and subtlety of legalistic linguistics, it’s hard for nonprofessionals (non-lawyers) to figure things out sometimes.