When you release code under the GNU General Public License (GPL), you undertake a specific set of obligations. Many of these obligations, such as providing a copyright notice and a copy of the GPL version you are using, are relatively simple. However, the obligation to provide source code with the object code is more complex, because you have several choices about how to fulfill it – and the choice you make can cause ongoing problems, especially if you are not set up to administer it.
The language governing the distribution of source code varies depending on whether you choose to use the second (GPLv2) or third version (GPLv3) of the license. In GPLv2, source code distribution is explained in Section 3. Two options are listed: to provide source code alongside the object code “on a medium customarily used for software interchange,” or to accompany the source code “with a written offer, valid for at least three years” to send the source code when requested, charging “no more than your cost.”
rest here