The Free Software Foundation (FSF) on Monday published the GNU Affero General Public License version 3 (GNU AGPLv3), a version of the GNU GPLv3 designed specifically for network-oriented free software.
The AGPLv3 is based on version 3 of the GPL but includes an additional terms to allow users who interact with the licensed software over a network to receive the source code for that program. By publishing the license, the FSF aims to foster user and development communities around network-oriented free software, it said.
“The GNU GPL has been the most successful free software license because it makes a program’s source available to its users,” said FSF board member Benjamin Mako Hill. “This enables massive collaboration between developers, since everyone gets the same benefits from this rule. The GNU AGPL will enable the same kind of cooperation around Web services and other networked software.”
The FSF’s GNU GPL — version 3 was released this summer — allows people to modify software and share their modified versions with others, as long as they make the source code available when they do. However, users can change software and run the altered version on a network server without releasing it.
Since use of the server does not imply that people can download a copy of the program, modifications might never be released. “Many programmers choose to use the GNU GPL to cultivate community development; if many of the modifications developed by the program’s users are never released, this can be discouraging for them,” the FSF said.
The FSF recommends the GNU AGPL for any software that is commonly run over a network.
Mix and Match
The GPLv3 and GNU AGPL can be mixed and matched to some extent, allowing developers working on a project under one to combine it with code released under the other. As a result, programmers who want to use the GNU AGPL for their own work can take advantage of the libraries and other source files available under GPLv3.
Conversely, developers working on projects under GPLv3 will often be able to use modules under the GNU AGPL as well, since the AGPL’s additional term has no requirements for software that doesn’t interact with users over a network, the FSF said.
“There’s no case where someone would have to use AGPL — it’s a choice developers have,” Brett Smith, licensing compliance engineer for the FSF, told LinuxInsider. “The cases where developers will be most likely to choose AGPL are when their software is primarily designed to be run on a server and have users interact with it there.”
Web site forum software is one example, Smith noted, where users log in to a forum and post messages; another is Web mail software.
The benefit of using AGPL is that when someone modifies software for their site and runs it on their server, “they’ll be required to disclose the source code for the modifications they make, which means that the feature they added can make it back to the original developers, who can incorporate it into their version, and everybody can benefit from it,” Smith explained.
Traditionally, the GNU GPL assumed more limited forms of distribution than are available today, Stephen O’Grady, an analyst for RedMonk, told LinuxInsider.
“A lot of the definitions of freedom enforced by the GPL referred to software distributed in some form such as by CD or via download,” O’Grady explained. “That is what the word ‘distribution’ meant.”
Today, however, with Google and other online services, “distribution has a different meaning,” he noted.
An Iterative Process
When GNU GPLv3 was crafted, “there was a lot of debate as to whether it should address this new definition, but it was decided to leave that to this license,” O’Grady noted. “AGPL is very similar to GPL, but it’s designed to enforce the same rules pertinent to software distribution online rather than through traditional means.”
Two drafts of the GNU AGPL were published this summer, and the FSF heard comments on both through its Web-based feedback system.
“The GNU AGPL is very much a community license,” said Peter Brown, executive director of the FSF. “The feedback we received while working on GPLv3 demonstrated a clear desire for this sort of license. And thanks to the community’s help during the drafting, we’re happy that the GNU AGPL meets those needs.”
Software as a Service
By providing for situations in which software is accessible for use over a network, the new license reflects the growing trend toward Software as a Service (SaaS).
“The original GPL treats Software as a Service as a private use of software, which means users could keep their changes private as well,” Yankee Group analyst Laura DiDio told LinuxInsider. “Now we’re going into a much more highly customizable world, so we needed a version of the GPL that suits not just the current environment but also what’s coming in the next three, five or 10 years.”