I understand, that I am not allowed to do some modifications to Linux, then compile it, put it in CD and start selling or distributting without source code, right?
Correct and... because it's a copy-left license, if you create something based on the original source covered by this license, that must also be covered by the same license.
Ex. If you download the latest code from TuxBrowser and it's GPL, if you rewrite the internal engine and release a new browser TuxBrowserOnCrack it will also have to be released under GPL.
That's the reason why many people accuse this license of being 'viral' (IMHO, because it is).
Other terms include:
- If you provide a binary, you must provide a means to make the source code available whether by providing it in the distribution package or by providing information on where to get it.
- Or if you provide a binary you can choose to Not provide the source code with the binary package but you must provide a means to access the source code at a user's request.
By providing source code this includes all third-party packages/libraries or dependencies must also be available to the users so, any libraries you use with your software must also be under a licence that allows their source to be distributed.
I understand, that i am not allowed to do some modifications to Linux, then compile it, put it in CD and start selling or distributting without source code, right?
Wrong... you can, but first you need to:
- make the it available under the same (GPL) license
- give credit to the original source of the code that the work is derived from
- include a copy of the license with the package
- if the program is interactive (console app or GUI) it must display the copyright notice
- the source code doesn't have to be distributed with the software but it does have to be made available at the user's request no matter how much it costs to you to make it available.
But what about software that I develop for being used with Linux? Can I hide the source code of it and sell it?
Yes, an application that runs on an operating system falls under the special exception. Plugins, or items that are loaded using a GPL licensed software don't automatically inherit the license.
If they did, it would be the equivalent of saying that:
- if you loaded a photo in GIMP it automatically needs to be redistributed under GPL
- if you created a plug-in script for a GPL software it would also have to be GPL
- if you ran a rom in a GPL NES emulator the game would have to inherit the GPL
Even for a license that is as copy-left as GPL (which is traditionally the most copy-left) those requirements are beyond far-reaching; and, if that were the case, you wouldn't be able to use Firefox, Apache, or hundreds of other really popular Open Source applications because they're not licensed under the GPL.
So, in essence... You can sell GPL software all you want for however much you want. You just have to make the license known, make the license available, make sure all third-party libraries/dependencies can be distributed freely (GPL compatible), and make the source available. If you create any derived works from the source, they must follow all the same rules and inherit the same license.
That's why OpenSuse can be sold by Novell. Sure, Novell provides updates and a lot of extras on top of the Operating system when you're a paying customer but there's always a link somewhere on their site where you can download the source for free. They just won't offer any help or support to get it up and running. That's what the open source community is for.
Heres a link to the GPL v2 if you want the lawyer-speak version.
Here's a link to a human-readable explanation of GPL.
SideNote: If you're considering creating an Open Source original work not derived from GPL source I highly suggest you use a license more along the lines of Apache or MIT license, because they don't make people who derive their works off of yours inherit the same license. IMHO, viral licenses don't represent freedom in the truest sense because you don't have the freedom to create works based on them without being required to inherit them.