tecosystems

GPL Version 3

Share via Twitter Share via Facebook Share via Linkedin Share via Reddit

Right about the time I was sleeping in on an air mattress at a Breckenridge condo yesterday morning, taking my first Martin Luther King day off in a long time, Mike Olson and Simon Phipps were busy attending the launch of the discussion period for version 3 of the GPL. Love it or hate it, the GPL is a hugely important license (though some would disagree), governing amongst other projects the L and the M pieces of the LAMP stack.

As such, I strongly considered accepting the invite graciously extended by Jennifer Cloer at Page One PR to attend the same session, before discovering that other plans made it not realistic. Fortunately, there were lots of smart folks there taking notes. Like Tim, I read with interest Danese and Simon’s record of the event[1], but ultimately I was most interested in what Mike had to say here:

Next, the most anticipated or feared provision, depending upon who you are: The elimination of the ASP loophole. Briefly, the old GPL required you to share your changes if you shared your program. The way you shared programs in the old days was to give copies of them to others. Today, many software packages are “shared” by connecting to a central Web server and using a browser to do things. Application Service Providers, or ASPs, don’t ship software, but they still use and enhance GPL’ed packages (sometimes!) and perform the changed version for users.

Many in the developer community want to see those enhancements shared. Many large ASPs want to keep them private. Both sides muster reasonable arguments in favor of their positions. This change has been a lightning rod in the run-up to the new version, and many of us were eager to see how the FSF would address it.

The answer is, they ducked it. There’s a provision in the draft agreement — section 7(d), for those of you reading along at home — that permits developers to add the requirement to share enhancements that ASPs and companies like them develop, but nothing in the official draft requires that.

This was the provision I thought would be far and away the most controversial. Once I get a chance to digest the license more completely and observe the feedback from some of the folks with legal training, we’ll see if that holds true. But at the moment, I think the dodge may end up being an interesting if problematic compromise between advocates and critics of the so-called “ASP” provision. It has the advantage of not unilaterally imposing on GPL users that count themselves in the latter camp a licensing aspect they’re uncomfortable with, but I’m curious as to what the longer term impact could be to the GPL brand, for lack of a better term.

To explain, let’s say we have two GPLv3 projects – one which adds a provision requiring ASPs to redistribute their code and one which does not. While they’re both nominally governed by the same license, they actually carry very different requirements – at least for ASP type customers. Could this lead to consumers of GPL projects asking “well, which GPL are we talking about?” Seems possible. Andy Oram speaks fairly positively on this possibility here, but I’m a bit skeptical.

Given the fact that I still find myself explaining some of the basic, high level philosophical differences between licenses such as the BSD and GPL, I don’t relish the thought of detailing why the GPL applied to this project is different than the GPL applied to that one. But perhaps I’m overreacting; I’d be interested for feedback on that score.

Apart from my concern at the idea of a fractured GPL, I think the major changes in the license look good – and overall, it’s fairly readable. So kudos to the folks involved, and I look forward to monitoring the review period. If any of you would like to comment on the license draft itself, hop on over here.

[1] While unlike Danese and Simon I don’t have SubEthaEdit, I would love to test Gobby – a Linux equiv – sometime with someone not on my local network. If you’ve got Gobby, and have 10 minutes to spare, let me know.