Why the FSF Gets Copyright Assignments from Contributors
by Professor Eben Moglen, Columbia University Law SchoolExplanatory note added in Jan 2025: there may be legal mechanisms available to users for obtaining complete and corresponding source code, as is their right, and enforcing full compliance with the GNU GPL. However, the copyright holder remains best empowered to enforce the license in a simple and straightforward way, and so the FSF continues to get copyright assignments to ensure that contributions always remain free.
Explanatory note added in Jan 2013: this point applies to the packages that are FSF-copyrighted. When the developers of a program make it a GNU package, they can decide either to give the copyright to the FSF so it can enforce the GPL for the package, or else to keep the copyright as well as the responsibility for enforcing the GPL. If they make it an FSF-copyrighted package, then the FSF asks for copyright assignments for further contributions, and this page explains why. Additional pertinent explanation.
Under US copyright law, which is the law under which most free software programs have historically been first published, there are very substantial procedural advantages to registration of copyright. And despite the broad right of distribution conveyed by the GPL, enforcement of copyright is generally not possible for distributors: only the copyright holder or someone having assignment of the copyright can enforce the license. If there are multiple authors of a copyrighted work, successful enforcement depends on having the cooperation of all authors.
In order to make sure that all of our copyrights can meet the recordkeeping and other requirements of registration, and in order to be able to enforce the GPL most effectively, FSF requires that each author of code incorporated in FSF projects provide a copyright assignment, and, where appropriate, a disclaimer of any work-for-hire ownership claims by the programmer's employer. That way we can be sure that all the code in FSF projects is free code, whose freedom we can most effectively protect, and therefore on which other developers can completely rely.