Yeah, it's also
really important to understand that they only have to give source code to
their customers. They don't have to provide source code upstream. So it's completely legitimate to take a GPL piece of software, make modifications, sell it anywhere you want, put a conspicuous note that you will supply source code on demand to your customers, and then never, ever supply source code because none of the users are technical enough to want the source code.
This is part of software freedom. Your end users do not have to distribute binaries or code to anyone that they don't want to. It's just that if they distribute a binary or code to someone, they have to grant the same freedoms they received.
Sometimes it's a bit hard to grasp these nuances (especially the, "Hey they can sell my software" bit). It's important to understand that before you choose a license.