July 15, 2006

Source Distribution and the GNU GPL

Author: Richard Stallman

The goal of the GNU GPL is to ensure that all users have the four essential freedoms -- (0) to run the program, (1) to study and change it, (2) to redistribute it, and (3) to distribute modified versions. Access to the source code is essential for freedom 1 and freedom 3. Thus, we designed the GNU GPL to insist that all redistributors make the source code available to their users. This requires them to do a little extra work, but that work is generally necessary for the sake of the users' freedom. Keeping source code conveniently and reliably available for the users is more important than saving distributors a little effort.

Under GPL version 2, distributors who release binaries through a network server have to release the corresponding source code in the same way. This requirement is the only way to assure that users can get the source, and the that it is the right source.

The simplest way to fulfill this requirement is to put them both on the same server. This requires extra work, but not much. The distibutor needs server space for the source as well as the binary, and has to upload both. Anyone that does these things for the binary can manage to do them for the source as well.

Distributors that distribute binaries on CD have two options for distributing the corresponding source: either distribute a source CD with each binary CD, or offer to provide the source CD subsequently by mail order. The second alternative is meant for consumer products with embedded free software; for nearly everyone else, the first alternative is the one to use. GNU/Linux distributors that find the second alternative inconvenient should drop it and use the first instead.

GPL version 3 (current draft) keeps these requirements basically unchanged. We clarified the fact that binaries on physical media require sources on physical media, but this isn't really a change.

The current draft does propose two small substantive changes to these requirements. One requires those who sell products with embedded software to continue providing source by mail order for as long as they provide other customer support for the product. This won't affect GNU/Linux distributors. The other allows distributors to charge a higher price for mail order sources (but we've since decided to revert that change).

However, we're now considering a major change in this policy. The coming draft of GPL version 3 will propose a new alternative allowing, for the first time, distribution of binaries on physical media and providing the source code over the network. This will require a commitment to keep the corresponding source code version available on a network server for three years.

I rejected that option in the past because downloading the sources corresponding to a binary CD was an insupportable burden for nearly all users. I'm amenable to it now because that situation has changed. If no one shows substantial problems with this option, it will be part of the official GPL version 3.

Copyright 2006 Richard Stallman
Verbatim copying and distribution of this entire article are permitted without royalty provided this notice and the copyright notice are preserved.


  • Legal
Click Here!