On Monday 03 Jan 2011, Kenneth Gonsalves wrote:
please do - very curious to know why people who develop code in closets choose the GPL for their so-called 'community versions'.
It has nothing to do with developing code in closets or in the open. The reason why people who have dual-licensing models choose the GPL is:
People who make packages with libraries (or just libraries), like Qt used to be and MySQL is today, prefer the GPL for their libraries because then their product cannot be incorporated into a proprietary product. So if you are using, say, MySQL to develop your proprietary application you need to use the MySQL libraries for your app to interact with the database. Since the MySQL library is under the GPL, any code linked to it also must be under the GPL.
As a developer using any GPL platform as the base, you are left with only two choices:
1. Make your application also open under the GPL.
2. Make your application proprietary and try to get a proprietary licence from the platform owner. If there is a single owner (as in the case of MySQL), they can dual-license the the base product and sell you the same product under a proprietary licence that allows you to make proprietary products with the product. If there is no single owner (as in the case of the Linux kernel), you cannot make proprietary applications at all that use or link to the GPL code.
Of course, this only works because of the way the GPL works. If the original product (or its libraries) are under a non-copyleft licence, you can embed them in proprietary products in any case.
So finally, the situation boils down to this:
- If you don't care about people making proprietary products using your platform, don't use a copyleft licence.
- If you don't want people making proprietary products using your platform, use the GPL or another copyleft licence. That will ensure that all derivatives remain open, since the GPL (and its copyleft brethren) is the only licence that guarantees openness.
- If you want to charge people for making proprietary products using your platform and still want to retain the "FOSS" tag, use the GPL, take unilateral control of the code base, and dual license the platform for open and proprietary use. This is what MySQL did and what Canonical is trying to do now -- get all contributor copyrights assigned to itself.
Regards,
-- Raj