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
strikeout; text that has been added is
emphasized. Explanations of the changes are provided in
footnotes.
Notwithstanding any other provision of this License, if you
modify the Program, your modified version must give
prominently offer[1] all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version by providing access to copy the
Corresponding Source from a network server at no
charge., through some standard or customary means
of facilitating copying of software.[2]
This Corresponding Source shall include the Corresponding Source
for any work covered by version 3 of the GNU General Public License that is
incorporated pursuant to the following paragraph.[3]
[1] 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.
[2] 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.
[3] 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.