"Companies that develop free software and release it under the
GNU GPL sometimes distribute some copies of the code in other ways.
If they distribute the exact same code under a different license to
certain users that pay for this, typically permitting including the
code in proprietary programs, we call it "selling exceptions". If
they distribute some version of the code solely in a proprietary
manner, we call that releasing a purely proprietary version of the
why selling exceptions is acceptable, though only barely. By
contrast, releasing a purely proprietary version is outright wrong,
like any other proprietary software.
"Companies normally sell exceptions using code they themselves
have developed. Since they hold the copyright on that code, they
can legally distribute it in any manner, even in multiple manners
in parallel. But what happens when you publish a modified version
of that free program, and the company wants to include your changes
in its version?"