Rationale for the second draft of the GNU Affero GPL version 3
by brett — last modified 2007-11-19 11:56
The GNU AGPL was released on 2007 November 19. The drafting process is closed; these materials are here for archival purposes. Thank you for your support.
The GNU Affero GPL version 3 consists of the text of GPLv3, slightly adapted for the new name, and an additional paragraph in section 13 that requires people who modify the software to publicly provide source when users interact with the software over a network. The latest draft of the license has changes that fall into two broad categories. First, the license has been synchronized with the final text of GPLv3. Second, we made a few adjustments to the new paragraph in section 13, primarily aimed at clarifying when and how people who modify the software have to provide its source. Some of these changes are inspired by comments we received on the first discussion draft. An annotated copy of the new paragraph is provided below to explain the changes.
One thing we did not change is the phrase "interacting with [the software] remotely through a computer network." Many commenters expressed concern that this would include not only traditional GUIs that users manipulate for web-based applications, but also other kinds of network interaction, such as sending requests to an IMAP or HTTP server.
In fact, we did intend such a broad reading. The GNU AGPL needs to cover all the various protocols and means for network interaction in order to fully achieve its purpose. For example, some developers who work on games that use a client-server architecture have expressed interest in a license that makes sure that both the server and client remain free and available to all players; AGPLv3 would provide that for them. A strong interpretation is also more forward-looking. When the web was first invented, it would have been hard to imagine that someone could interact with software through it. By keeping the GNU AGPL's scope broad, we can do our best to make sure that it will apply well when other methods for interacting with software are invented in the future.
If developers of some programs (such as IMAP and HTTP servers) prefer not to have these requirements apply, they should simply use the ordinary GNU GPL. We don't suggest that all software should be licensed under the GNU AGPL. It is meant to be an option for developers who believe that the license's additional provisions on source availability will be beneficial for their applications. Given this, bringing all kinds of network interaction under the license's scope is the best way to ensure that the license will function as designed. If we tried to limit the kinds of network interaction in question, we would risk opening the license to loopholes or obsolescence.
This is the text for the new paragraph in section 13. Text that has
been removed since the previous draft is indicated by
 This change makes clear that people who modify the software are not compelled to make sure that every user of the software gets a copy of the source code. As long as it is readily available to users, that is sufficient to ensure the license's goals are met. The GPL itself has long worked the same way when distributors make object and source code available together on a network server.
 The new wording here is intended to provide guidance about what sort of "access" will comply with this condition. This is partially modeled on similar wording in section 6(d). This guidance will ensure that users can actually work with the source they receive.
 People who modify the software should be required to provide the source for requisite libraries as well. Otherwise, they may defeat the license's intent by placing their modifications in a library. The definition of Corresponding Source will require someone who modifies the software to provide most of the necessary libraries in order to fulfill this section's obligations. However, since the paragraph after this one in the license is written as an exception to the rest of its terms, allowing the work to be combined with work released under GPLv3, we felt it was important to clarify that the Corresponding Source still included libraries that were incorporated through that exception.