Biella Coleman wants to know what protections GPLv3 provides for Everyblock code now that Everyblock has been bought by MSNBC.com. Here’s the answer: GPLv3 requires that, if MSNBC.com releases future versions of Everyblock, it do so only under GPLv3. There are, however, two rather large caveats.
First, the copyright holders always have the right to authorize release under new license terms. If all the copyright holders of Everyblock agree to it, they can give MSNBC.com permission to also distribute Everyblock (whether in code or binary form) under any other license. Since MSNBC.com owns Everyblock, the question is whether there are any third-party copyrights in the codebase. If Everyblock was accepting lots of outside code contributions (and not making people sign over rights), then the outside code contributors have some ability to prevent distribution of the code under non-GPLv3 terms.
Second, since Everyblock is a web service, MSNBC.com can use it on its own servers and never distribute it at all. GPLv3 only protects access to source code when software is distributed. Merely running the code doesn’t trigger any obligations, which means that MSNBC.com can improve the code on its own and never share it with anybody.
These caveats raise two important considerations. If you are going to contribute to a project that is a web service, insist on a better license than GPLv3. Use the Affero GPL, Version 3 or later. It is like GPLv3, but it also requires source distribution when code is accessed as a network service. In other words, if Everyblock were AGPLv3, MSNBC.com would have to share source with its customers.
The other consideration is that if you contribute code to a project, don’t sign over copyrights unless the project agrees to always (or only) release code under a free license like AGPLv3. More to the point, if a company holds most of the copyrights in a set of code and controls what goes into the codebase, they can usually close its source over time. This is why the free alternatives to Java are still so important.
It might be disappointing that MSNBC.com can close-source Everyblock, but we still have the code. If the code is valuable to the community, we can take the last published version and use it as we want. If MSNBC.com trades a healthy free software project for a proprietary development cycle, we’ve lost nothing, and MSNBC.com has thrown away the most important asset they had– the community behind and around the code.