Edit: To be clear I'm talking more about philosophy, not licensing. I do still struggle with the idea of GPL requiring changes to be made public.
So if I sell you software under the GPL, I have to provide you the source. You are then allowed, but not required, to publish the source.
I can understand that many here disagree with this, and I am an open source advocate myself. Nevertheless, it is important to understand how some companies work. The best way to change this, is to create enough open source software, which can be used as a replacement for closed packages.
Equivalent basis for support contracts, which have actually been the key part for many years in most non-consumer software contracts even when they nominally include copyright licenses, are quite possible (and common) with GPL software.
You're not paying for the software on that server.
You're paying for a license to use a few non-free packages containing trademarked material (basically the visual skins / logos nicely factored out) but more importantly, support.
Most of the web stuff that people work on these days is rather outside of this problem, unless is an AGPL license.
It is tricky if you want to base your commercial product on a derivation of a GPL licensed software.
But per-copy licensing without source code availability is an atrocity enabled only by misapplication of copyright/IP laws, where copyright holder can write practically anything into the EULA and have the law system enforce the terms "for free". I hope our civilization eventually comes up with better and more GPL-aligned software distribution model.
The things with FOSS is there are different degrees of rigidity. On the one hand, you have copyleft licenses like GPL that tend to make commercial development very tricky. On the other hand you have more permissive licenses like MIT and Apache that do encourage further open source work but where the vast majority of improvements don't get committed back upstream (since they become a part of proprietary offerings).