Right from the FAQ’s:
Does the GPL require that source code of modified versions be posted to the public? (#GPLRequireSourcePostedPublic)
The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.
But if you release the modified version to the public in some way, the GPL requires you to make the modified source code available to the program’s users, under the GPL.
Thus, the GPL gives permission to release the modified program in certain ways, and not in other ways; but the decision of whether to release it is up to you.
… I guess it depends on the definition of “release to the public”. If you sell it and contract PRIVATELY with a client to give them access to the software you have modified, you are not “releasing it to the public”. I’m not a lawyer, but that’s how I read it.
I think this is further clarified here…
If I know someone has a copy of a GPL-covered program, can I demand they give me a copy? (#CanIDemandACopy)
No. The GPL gives a person permission to make and redistribute copies of the program if and when that person chooses to do so. That person also has the right not to choose to redistribute the program.
…and here
What does “written offer valid for any third party” mean in GPLv2? Does that mean everyone in the world can get the source to any GPLed program no matter what? (#WhatDoesWrittenOfferValid)
If you choose to provide source through a written offer, then anybody who requests the source from you is entitled to receive it.
If you commercially distribute binaries not accompanied with source code, the GPL says you must provide a written offer to distribute the source code later. When users non-commercially redistribute the binaries they received from you, they must pass along a copy of this written offer. This means that people who did not get the binaries directly from you can still receive copies of the source code, along with the written offer.
The reason we require the offer to be valid for any third party is so that people who receive the binaries indirectly in that way can order the source code from you.
… so I think it’s saying “not the world” but everyone who you provide it through a written offer (ie: contract)…. gets the code, which, is standard practise. What you can’t do is encrypt the code in such a way the end user can’t access it.