|
To be exact, GPL requirement "distribute code limitations should not exceed distribute binaries limitations", and it include derivatives, and this is tricky thing. For example, if I will use GPL licensed code in some my commercial hardware and distribute update binaries, I must also distribute code including my additions with same conditions as binaries, so if I made patches or additions (with GPL code used), I must also include code of my additions, so people could compile binaries themselves. Viral nature of GPL is really big headache, because make big troubles to use external libs as they could be closed source, so it will be impossible to client to compile binaries himself. Imagine, if I'll use GPL for control of nuclear reactor and have to open control schemes to comply with GPL (in real life, these things keep secret to make more hard for bad people make something wrong with such dangerous object). This solved for very few software packages, for example, GCC, Libc, have exclusion in license, directly allowed to make closed sourced derivatives and to link external library without give access to its code (only need api definition, for example as C header). At the same time, GPL does not limit usage of open source software by hosting companies, who don't make any contributions. That's why some infrastructure companies switched from GPL to different licensing schemes. |
The GPL doesn't care about control schemes though, so your nuclear reactor example seems strange.
The GNU family of licenses don't care about contributions, only about user software freedom. In the case of hosting companies, the AGPL was created to preserve user freedom for network oriented software, it isn't perfect but is reasonably good.
It is incorrect to say these companies are switching to different licensing schemes because of lack of contributions from hosting companies, the correct reason is that the hosting companies make a lot of money and the software companies want that money for themselves.