Nothing included in this post should be construed as anything remotely resembling legal advice. I am not a lawyer, CaseySoftware does not provide legal consultation, and your decisions must be based on your specific sitatuation. Where the GNU Public License is mentioned below, it is refering specifically to the GPL v2. Now that that's out of the way…
Whether you want to acknowledge it or not, copyrights form the foundation of modern software licensing, distribution, etc. Whether you are developing something completely proprietary or developing GPL'd code, it all comes down to copyright.
First, let's cover the basics. Last month at NoVaLUG, Jay Westermeier, an attorney from DLA Piper, identified that there are 5 basic rights in Copyright Law. The ability to copy/reproduce, the ability to modify/create derivative works, the ability to distribute, the ability to perform, and the ability to display. Some of those make no sense for software, but when you consider that Copyright Law has to cover everything from indie bands to the latest Harry Potter book to dotProject, they fit together a bit more smoothly.
As the originator of a work, you get to determine/dictate all of the above which is called “licensing”. Unless you give up the rights to the work, you can even go as far as revoking someone's usage of your work if they don't follow the license.
This is where many people get a bit nervous and has caused software licensing to be a contentious issue. Once you buy a physical product, you can basically do what you want with it. There are entire markets based on this concept… PC case mod'ers, hot rodders, etc. Personally, my childhood was filled with a series of old electronics dismantled and eventually led me to seek a degree in Electrical Engineering. Limiting someone's ability to dismantle what they've lawfully received rubs many people the wrong way. Theoretically, if I wanted to limit your license to only use my original software on Tuesdays in January if you own a cat and Mondays in June if you own a dog, I could do it quite easily. Yes, enforcement is another issue all together. 😉
The response to this was the GNU Public License (GPL) which is probably the most common and familiar Open Source License. If Person X releases something as GPL, they are explicitly allowing reproduction, the creation of derivative works, and distribution rights. Open the hood, take out the engine, figure out how it works, put it back together, tweak the processes, do whatever you want… but if you distribute it, you have to distribute it under a specific set of terms.
Notice the interesting aspect though, Person X has not shared the copyright. Licensing != Copyright. The copyright is still entirely owned by Person X and therefore no one except Person X can grant/change the rights granted. This gives them the opportunity to distribute the same work or its derivative under a completely different set of terms. This is how we get the dual license model of companies like MySQL. And it also explains why the purchase of InnoDB by Oracle last year did not affect MySQL immediately. The InnoDB license MySQL has is GPL, therefore, as long as they follow the terms, it can't be revoked.
So what should you get from all of this?
Copyrights and licenses are important and regardless of where you work or what you do, if you work with Intellectual Property of any kind, this is something you need to understand. You can never grant or deny rights that you don't have yourself. If you create something and have the rights to release it as GPL, you also have the rights to release it as something else. If you get something that is GPL, you don't have the rights to release it as something else.