It is often desirable to distribute free software that is licensed under the GNU General Public License (GPL). When doing so, however, it is important to remember that while such software comes with freedom, it also comes with a certain responsibilities when it comes to distribution.
One of the fundamental protections provided by the GPL is the right to change and improve the software. In order to exercise this right, one must have access to the software's corresponding source code. Because access to the source code is so important, the GPL sets up rules regarding distribution to assure access to the source remains available.
When distributing software that is licensed under the GPL, you must provide access to the full corresponding source code. You can do this in one of two ways:
1) Provide the source code alongside the binaries (the compiled, workable software)
2) Provide a written offer, valid for at least three years, to provide the source code on a physical medium for no more than your costs to do so (i.e. the cost of media and shipping).
It is tempting for those who distribute GPL software to simply provide the binary programs, assuming that the recipient can always get the source code from wherever you got the programs from. This is not an acceptable way to comply with the GPL. While it is possible to "pass along" a written offer for source code to someone else if you are distributing the software for free, this is not always a reliable or compliant way of doing things, depending on the circumstances.
Nor is it appropriate to distribute a modified version of someone else's software without providing the full source code to your modified version. It is not sufficient to simply release the source code for your changes -- you must provide the full corresponding source, including the parts that you did not change from the original developer.
It is often easy for those who distribute GPL software to assume that the recipient will not ever utilize the source code. This attitude is especially prevalent among those who donate PCs loaded with GPL software or operating systems to charity. The point, however, it not whether or not someone who receives the source code is likely to take advantage of it-- the point is that the GPL guarantees them the right to use it, and you are not authorized to take that right away.
Moreover, even if the recipient will never use the source themselves, they may wish to later distribute copies of the program itself. In order for them to do so, and still comply with the GPL, they must also make the source code available. But how can they do so if you never gave them access to it? Therefore by withholding source code from those you give GPL software to; you effectively prevent them from legally redistributing the software in the future.
Free software is an important part of the fight against oppressive technology such as Product Activation and DRM. The GNU General Public License is currently the most popular and likely the most effective free software license, and as such it is important that everyone respect and comply with its terms.