Intro
The GNU General Public License (GPL) is a license used for open source software. Open source software is simply software which makes the source code (or blueprints) available along with the version that people actually run on their computers. This allows others to edit and improve the software, as well as verify that it doesn't do anything malicious. The current version of the GPL is about 5200 words or 31,000 characters. This may seem very verbose for something that seems rather simple. Indeed, many may question why one would even need a license if they were simply giving the source code away with their software. The answer is that the GPL does a lot more than simply give away the source code.
What does the GPL do?
Recently there was a discussion on Slashdot about the GPL. Slashdot is generally very in favor of the GPL. A few users were going against the grain and commenting on how the GPL was actually virus like. Their point was that any code that became infected with GPL code became GPL code itself, and it was difficult to clean the GPL code out. The replies were that this is the very purpose of the GPL. The GPL essentially says that anyone may use the source code, however they must always make the full source code available with the program. Any changes to the source code are automatically covered by the GPL and must also be made available. The addition of a small piece of GPL code to a very large program makes that entire program GPL'd and the entire source must be released.
How does GPL do this?
Some might see this as unfair. What right does this GPL have to force me to release the source code to software I wrote? The answer is none, unless one agrees to it. How does one agree to it? By using code that is covered by it.
Copyright Review
In just about any country today copyright is automatically applied to anything anyone writes. For example, this blog post is copyrighted by me, despite bearing no formal copyright notice, and despite me not registering it. No one may use this post in anyway without my consent. My consent could be as simple as "you can use it any way you want", or it could be much more complex, with many conditions. In that case, it is called a license. I may come up with whatever conditions I want for you to use this post. Perhaps, I say you can only repost it on Tuesdays, or if you are located in Houston, TX. Note these restrictions don't apply to me, since I "own" the content. I can require you be in Houston to repost it, while I myself am not in Houston. The key is that you are free to not use my work, so you can't argue that my terms are unreasonable or silly.
Another important point is that if you take this post and change it in some way and then republish it, that is called a "derivative work". You may only make derivative works if I consent, and I may place whatever restrictions I wish on the derivative works (however they must be made clear prior to our agreement). A common example might be the requirement that you don't sell the derivative work, i.e., you make it freely available. Or, I may require you to pay me some fee for each copy you do sell. Again, I can come up with whatever restrictions I want, and you can choose to agree to them and make the derivative work, or not agree and not use my work.
Those are the principles the GPL uses to accomplish its job. If someone wants to use code that is covered by the GPL, they are free to do so. However, they are agreeing to a license that says they will then make all derivative works also freely available and covered by the GPL.
BSD License
For software, the main alternative to the GPL is the BSD license. The BSD license is much simpler and can be generalized as saying that anyone can do anything they want with the code as long as they attribute the original author. This is often called a freer license, and strictly speaking, it does place less restrictions, and is thus more free. That being said, the BSD license will allow someone to make changes to software and then keep those changes secret. This is a benefit to the person making changes but hurts the end users who no longer have access to the source code. It is often said that BSD license is more free for programmers and less free for users.
Creative Commons
Creative commons are a recent addition to the family of sharing licenses. While the GPL and BSD license are specifically tailored for software, CC licenses are used more generally by anything covered by copyright (websites, music, video, pictures, etc.). It is perhaps most well known as the license used by Wikipedia. CC offers greater flexibility, and licenses similar to both the GPL and BSD license can be created using it. There are four main conditions which the author can choose to use or not, each with a two letter abbreviation. Attribution (by) requires that one must attribute the original author when one redistributes the work. While technically optional, all the common licenses have the (by) restriction. Noncommercial (nc) requires that one may not sell the work or derivative works. No Derivative Works (nd) means that one may not change the work in any way. Share-alike (sa) means one may only redistribute using an identical license. This gives a similar "virus like" nature to the GPL. There are 16 combinations of those 4 restrictions. However, some can't be used together (e.g. (nd) and (sa) make no sense) and, according to Wikipedia, 98% of licenses use (by). With that in mind, there are six commonly used licenses combinations, which can be reviewed in greater detail on the CC site.
Sunday, May 1, 2011
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment