|
|
Subscribe / Log in / New account

Behind the Puppet license change

May 11, 2011

This article was contributed by Joe 'Zonker' Brockmeier.

The release of Puppet 2.7 brought one major change that has nothing to do with its actual feature list — the license was changed from the GPLv2 to the Apache License 2.0. This came as no surprise to the Puppet contributor community, but it seems as if it might be part of a trend towards more permissive licenses by companies working with open source. Luke Kanies, the founder and CEO of Puppet Labs (the company that has grown up around Puppet) says that he has no political axe to grind with the decision — it's simply a matter of reducing "friction" when it comes to Puppet adoption.

In conversations about licensing, Kanies shows little passion for the topic. But, when asking about the actual goals for Puppet, he exhibits a lot more interest about what Puppet (or something like Puppet) needs to accomplish — the ability to manage large-scale networks without needing to know the particulars for each device in the network.

Puppet is an "enterprise systems management platform" which started as a replacement for Cfengine. Kanies, who was a major contributor to Cfengine before starting Puppet, has a fairly modest goal for Puppet — ubiquity. "If we can get ubiquity, we can accomplish what we're trying to do... profitability is easy. What we're trying to do is [make it so] you don't need to know what OS you're running on."

According to Kanies, there was simply no good reason to remain with the GPL. The license didn't do anything specifically to address his goals for Puppet, and could actually hinder Puppet's ubiquity. Why? Kanies says that "a number of companies", and two in particular, were "quite afraid" of the GPL. One company, he says, avoids even having Puppet in its infrastructure — to the point of having a separate approval process for deploying GPL software. The other company didn't have qualms about the use of GPL software, but did have concerns about mixing GPL code with other code they ship.

It seems odd in 2011 to hear that companies still have "fears" about the GPL, given its widespread adoption and endorsement by such a diverse selection of companies — up to and including a giant like IBM. However, Kanies says that plenty of companies (or perhaps more accurately, their lawyers) have concerns about the GPL — and IBM is perhaps a poor example:

You're right that IBM is comfortable with the GPL, but there aren't many companies that can sue IBM. It's tough to scare IBM, and IBM not being afraid is not a good indicator that everyone else should not be afraid.

So what's the fear? Kanies says that it's the standard argument about the GPL being untested in the courts, along with the fact that there's disagreement and a lack of clarity about what "linking" means with regards to dynamic languages, and whether that linking creates a derivative work. For the record, Kanies points out that he does not share the same fears about the GPL — but he also does not feel particularly strongly about the GPL, and certainly not enough to keep the license if it stands in the way of Puppet adoption.

As a single event, the change of one project's license from GPL to Apache is not particularly important (outside that project, of course). However, if it's part of a larger migration away from the GPL, then it may be worth noting.

Are projects moving away from the GPL? Not in droves, but there does seem to be less of a tendency for companies or projects without a strong philosophical bent to choosing permissive licenses like the Apache, MIT, and BSD licenses. The 451 Group pointed to some evidence last year that companies were favoring more permissive licenses like the LGPL, BSD, Apache, and Eclipse Public Licenses. In January of this year, Stephen O'Grady noted that Black Duck Software's license figures showed a decline for the GPL overall.

The GPL still seems to be the dominant license, however. Black Duck Software tracks the adoption of GPLv3 versus GPLv2. The GPLv2 has dropped to well under 50% (45.42%), with the GPLv3 at nearly 7% of the projects it tracks. The Apache License 2.0 is at nearly 5%, and the MIT license is at just over 8%, as is the Artistic License. According to O'Grady, this is a 4% decline for GPLv2 since August 2009 (with an increase of only 1.34% for GPLv3) and nearly 4% increase for the MIT license.

On Contributor License Agreements

The license change should not come as a surprise to anyone in the Puppet community, though it has been greeted with some surprise in wider circles. Kanies says he has been asking the community for about two years, and has talked to "all of the major contributors" about the change. Kanies says that none of the contributors have raised a fuss, though he's gotten "one person that's said they're upset, and a couple who seem like they aren't that happy with the change and say 'I'd like to better understand this decision that you've made."

Since late 2009, Puppet has required a Contributor License Agreement (CLA) in order to submit code to the project. Kanies says it's similar to the Apache CLA, which basically provides the right to relicense the software any way the project sees fit.

In the case of Puppet, there seems to be little real cause for concern. Kanies provided ample time for the larger Puppet community to comment on the license change, first raising the issue in April, 2009 (when he thought he might go to the Affero GPL), and announcing the planned change to the Apache license five months later. It seems that few in the Puppet community are upset by the change. Users receiving Puppet under the Apache license are essentially in the same place they were before — able to study, modify, use, and distribute Puppet freely. Contributors to Puppet may not receive the same "protections" that the GPL affords, but it seems that the contributor community to Puppet is not particularly concerned about this.

The Puppet change should serve as a reminder to other developers that CLAs are in place for a reason. When giving permission to a project or organization to re-license a work, it should be assumed the organization will exercise its rights at some point — perhaps in a way that is unoffensive, perhaps not. Absent a guarantee in the CLA to stick with a certain class of license, it should be at least considered that the program may be re-licensed in a way that is less friendly to its user and contributor community.


Index entries for this article
GuestArticlesBrockmeier, Joe


to post comments

Behind the Puppet license change

Posted May 12, 2011 3:04 UTC (Thu) by elanthis (guest, #6227) [Link] (4 responses)

There are also platforms for which the GPL is simply unusable. Quite a few embedded platforms that are tightly controlled by vendors, like the iOS platforms, or the XBox.

While the GNU proponents of course argue that these platforms simply shouldn't be used, the reality is that for many of us those platforms are key and we're rather the entire GNU project die in a flood rather than give up on supporting platforms that over 90% of our target userbase owns. I mean, I'd prefer that the platforms were more open myself, but supporting them is simply vastly more important to my personal and professional interests than in supporting GNU. Permissive licenses allow an entirely FOSS project to be released for FOSS-hostile platforms, while licenses like the GPL ensure that those mega-popular platforms will only ever include mega-proprietary software.

Behind the Puppet license change

Posted May 13, 2011 13:44 UTC (Fri) by pboddie (guest, #50784) [Link] (3 responses)

we're rather the entire GNU project die in a flood

That's nice.

I mean, I'd prefer that the platforms were more open myself, but supporting them is simply vastly more important to my personal and professional interests than in supporting GNU.

Nobody is stopping you from writing permissively-licensed software for those platforms if it turns out that the platform vendors impose draconian conditions on everyone using such platforms and the only way to get code in front of end-users is by going along with it all. Quite why GNU and copyleft licences should cease to exist so that you can go ahead with this is something I don't follow, however.

Behind the Puppet license change

Posted May 13, 2011 16:28 UTC (Fri) by bronson (subscriber, #4806) [Link] (2 responses)

Isn't taking quotes out of context fun?

elathis never said that copyleft licenses should cease to exist. In fact, quite the opposite: "I'd prefer that the platforms were more open myself..."

If you left the context around the quote, you'd probably be able to follow what he said.

Behind the Puppet license change

Posted May 13, 2011 16:55 UTC (Fri) by pboddie (guest, #50784) [Link] (1 responses)

I think we can all read the original comment to gain the full context without having to type it out (or copy and paste it) ourselves. That said, I don't see why the ability to deploy software on restrictive, proprietary platforms is dependent on the demise of the GNU project.

Behind the Puppet license change

Posted May 15, 2011 19:45 UTC (Sun) by giraffedata (guest, #1954) [Link]

I don't see why the ability to deploy software on restrictive, proprietary platforms is dependent on the demise of the GNU project.

I follow elanthis's point. I also follow yours, and agree with the way you quoted in order to make it.

Elanthis isn't saying he's faced with a choice between releasing non-GPL software and having the GNU project continue. He's using a syllogism to show how little he cares about free software.

The syllogism takes the form, "Coke costs more than Pepsi. I would rather buy Coke than drink water. Therefore, I would rather buy Pepsi than drink water.

Releasing non-GPL software hurts the Free Software cause. The GNU project dying in a flood hurts it way more. Elanthis says he would hypothetically accept the demise of the GNU project if necessary to reach his market, therefore he would release non-GPL software if necessary to reach his market.

It's still GPL-compatible, so okay

Posted May 12, 2011 9:21 UTC (Thu) by epa (subscriber, #39769) [Link] (2 responses)

Changing from GPL to a permissive licence is not something that should worry anybody. Luckily we've gotten away from the proliferation of mutually incompatible copyleft, not-quite-GPL licences that were popular a decade or so ago. The only difficulty is the split between GPL2-only and GPL3-only projects.

It's still GPL-compatible, so okay

Posted May 12, 2011 11:04 UTC (Thu) by foom (subscriber, #14868) [Link]

Well...not quite: Apache License 2.0 is not GPLv2 compatible, only GPLv3-compatible.

It's still GPL-compatible, so okay

Posted May 12, 2011 17:00 UTC (Thu) by fuhchee (guest, #40059) [Link]

"Changing from GPL to a permissive licence is not something that should worry anybody."

... except those who'd like to assure continued availability of the source code, which requires a copyleft type license.

Behind the Puppet license change

Posted May 16, 2011 12:57 UTC (Mon) by job (guest, #670) [Link] (3 responses)

GPL is not tested enough in court -- but Apache license somehow is? Smells like someone is thinking something but not saying it.

I understand the concern about linking, that's been the hard to understand part of the GPL from the beginning. But isn't Puppet a Ruby application? A runtime interpreted program should not have concerns about linking.

By the way, if Kanies wants Puppet to be ubiquitous that's probably the runtime is probably his primary concern. That dependency will always set a hard limit on the software's ubiquity. Ruby will probably never reach the market size of Pyhon or Perl and neither of those is really ubiquitous.

Behind the Puppet license change

Posted May 19, 2011 11:31 UTC (Thu) by sitaram (guest, #5959) [Link]

"Should not have concerns about linking" is not sufficient for many people. They'd rather not have to even *think* about the tech stack being used, who's calling what and using what API, and does this constitute a GPL "combining", etc.

Apache is so bland, and so clearly does not require *any* source code of your own to be revealed under *any* circumstances, that they are not even worried about "tested in court".

I can certainly see their point, if I put on a paranoid corporate lawyer hat.

Behind the Puppet license change

Posted May 19, 2011 15:18 UTC (Thu) by jjs (guest, #10315) [Link] (1 responses)

Even worse, there's a reason GPL isn't tested in courts. Because it's so rock-solid companies who violate the GPL realize going to court will cost them big. So they settle rather than head to certain failure.

GPL basically says "you have certain rights under copyright. We will grant you additional rights, but you agree grant the same rights to those who get your code. If you don't you don't have a license." Those who violate the GPL end up violating copyright without a license.

The fact that no companies are willing to test it in court signifies to me the strength, not the weakness.

Behind the Puppet license change

Posted May 21, 2011 19:37 UTC (Sat) by gvy (guest, #11981) [Link]

Hm, but IIRC it actually *was* taken to court several years ago, no? (don't remember the exact names by now even if was quite surprised along the same lines you've drawn)


Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds