Thursday, August 20, 2009

Can Corporations Lock Up GPL Software?

On Thu, Aug 20, 2009 at 10:36 AM, Joel VerDuin wrote:

Tom,

Thanks for your comment about GPL licensing and Moodle. Please understand my next question comes out of ignorance and confusion not a desire to be argumentative.

How does the GPL licensing model work in the context of a products like Red Hat or SUSE Linux? I'm not really savvy in the details behind GPL, but it looks to me like products that once were licensed under the GPL (and maybe still are), but have moved more towards a corporate end user license agreement.

Is there any degree of accuracy to my conception that products under GPL license can transition into something else, or am I really misunderstanding the issue?

To say that most of us who hold technology director positions are underinformed about GPL would probably be an accurate statement.

Thanks in advance - I follow your blog svc blog regularly as I am interested in what you have to say around school reform.

Hi Joel,

I'll start with the most technical point and work down (probably a bad idea).

Relicensing: If I control the copyright (or a share thereof) on every line of code on a body of GPL software (or version thereof) I can *also* issue that version of the software under a different license, including a commercial license. Since Red Hat, SuSe and other Linux distributions don't control the copyright of most of the GPL'ed software they distribute, they can't change the licenses.

OTOH, for example, SchoolTool has agreements from all contributors to our repository to give a share of the copyright to the Shuttleworth Foundation, so the foundation does have the ability to sell commercial licenses *in addition to* the GPL'ed version. In my (pragmatic) opinion whether or not this would be a good idea depends on just how much money the Foundation would get for it, and what they'd do with it.

For example, if in return for giving Pearson the right to sell a commercial version of SchoolTool in the US (while the free version would still be available), we made enough money to fund development of the free version for five years, or provided hardware, software and support to 10,000 schools in the developing world, I'd probably be ok with that. However, we can't (and wouldn't want to) change the license of existing releases.

The most *the copyright holder* of a piece of software release can do is stop working on the free version, release a proprietary version, and do all subsequent work only on that version. They can't take away the existing free version, and they can't prevent other people from picking up its development and distribution under the GPL.

As another example, the copyright for the Linux kernel is held by thousands of individuals and corporations who have contributed parts, while nobody really paid attention to creating a unified copyright holder, so for all practical purposes, relicensing the kernel is impossible (unless you could figure out who all the copyright holders are and get their explicit permission) (arguably, due to the wording of the GPL you might be able change to a later version of the GPL without that permission, I'm not really sure).

I'll also note that I've run into people who argue that all licenses can be retroactively changed and that pretty much everything everyone else says is naive handwaving. This is, to me, like listening to someone argue that the federal government has no constitutional right to levy income taxes. I can't conclusively judge if it is right or wrong, but it doesn't have anything to do with how the real world I can see with my eyes actually works. It is an argument that requires virtually every IP lawyer from IBM on down to be wrong, which is hardly likely.

Getting back to Red Hat, SuSe, and other Linux distros, they can't change the licenses of the software they distribute, but a few factors limit redistribution of their products. The key distinctions here are the difference between distributing and redistributing a binary version vs a source distribution, and the difference between redistributing individual works of free software vs. a packaged combination of free and unfree software.

It is completely within the terms of the GPL to not allow redistribution of binary versions of GPL software, so simply have to also provide access to the source, which can be redistributed (and used to create binaries which you can redistribute). Thus you have Red Hat Enterprise Linux. They don't allow you to redistribute the binaries -- the computer-readable versions of the software that actually run on your computer.

But you can download all the sources used to make the binaries, and you always will be able to do so under the terms of the GPL, and, in the case of CentOS, they take all those sources, rebuild all the binaries, and distribute essentially an identical distribution of their own, allowing redistribution of the binaries. I don't think Red Hat's approach is necessarily a bad thing, since it makes clear the distinction between the supported, "official" Red Hat distro and other versions. It is not out of the spirit or intent of the GPL.

The other factor that leads to limits on the distribution of Linux distros is the inclusion of commercial (or some patented) software as part of the overall installation -- we'll just think of this as "the DVD" to make it more concrete. If I give you a DVD that has 9,999 pieces of GPL software that I'm happy to allow you to redistribute in binary form, but one piece of software which is bound by patent or proprietary software licenses, you can't copy redistribute the DVD. That's why non-commercial Linux distributions don't include Flash or some media codecs, for example. A company can pay for license to put mp3 encoders and decoders on their DVD, but they can't (afford to...) pay for a license to let *you* redistribute it. And that's part of the reason they can charge you for it -- it is a value-add you can't get from the non-commercial distros.

Historically, distros have intentionally made key parts of the distribution proprietary, particularly the installer, to limit redistribution. This strategy has largely come to be seen as counterproductive (and by my reading against the spriit and intent of the GPL) and has fallen away.

In particular, it is worth noting that both Red Hat and SuSe supportnon-commercial, freely distributable, versions of their own distros(Fedora and OpenSuSe), and Ubuntu is essentially non-commercial in the sense that they don't limit redistribution at all on any of their versions. It is extremely unlikely that the above will change for the worse any time soon. This is the approach which has clearly won out in the marketplace over the past decade.

1 comment:

Peter Rock said...

"it is a value-add"

Or as RMS puts it by cutting through the marketing bullshit, "freedom-subtracted".

Thanks for this post, Tom. Lots of useful info here.