I never thought licensing free software would be so interesting. Before I start releasing more source code, I figured it was time to understand what the Free Software Foundation and GPL (General Public License) is all about. So here are my thoughts about licensing free software:
Why Even Bother?
To write software and not license it opens the door for corporations or businesses with money (more money than you) to take your source code, redistribute it with their name on it, removing credit from you (the developer), and profiting off of your work. Most people would agree that even free software needs to be licensed and copyrighted.
What License Should I Use?
Once you've decided to license your source code, their are a ton of licensing choices. Many types of licenses make sense for various types of software. For a free, open-source software project, the GNU GPL (version 3) makes a lot of sense. However, their are 2 main variations of the GPL that you should consider:
GPL vs LGPL
The main difference between these two licenses is the LGPL license can be freely modified by anyone, and doesn't require the modifications (i.e. modified source code) to be re-distributed. It's perfectly legal to only distribute the binaries from your changes, and never share your source code. Why is this dangerous? Because it allows proprietary versions of your software to be released, and thus you no longer have a "free" software product.
The main selling point of GPL (over other licenses) is your code can be freely modified by anyone, and even redistributed by anyone, but any public release of any version of your software (by anyone) must make the source code available. It's also perfectly fine for someone to sell a version of a GPL software product, however they must make the source code available, and they must not charge extra for the source code.
What about GStreamer?
The GStreamer library is unique, in that it uses many non-free, proprietary codecs. If your software wants to use this library, it will be in violation with the GPL (version 3). What does the GStreamer team recommend? They recommend adding an exception clause to your GPL similar to this example:
"The EXAMPLE project hereby grants permission for non-GPL compatible GStreamer plugins to be used and distributed together with GStreamer and EXAMPLE. This permission is above and beyond the permissions granted by the GPL license by which EXAMPLE is covered. If you modify this code, you may extend this exception to your version of the code, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version."Are There Any Other Licenses?
Of course, there are many open-source licenses to consider, not just the GNU GPL. The Open Source Initiative (OSI) has a comprehensive list of OSI approved licenses for you to consider.
Summary
Just to be clear, I am no lawyer, and I strongly recommend you speak to a lawyer if you are interested in licensing an open-source project, especially if it uses libraries that contain non-free software. Also, there are many great resources on the Internet related to this topic, so head to Google and start learning.


















July 31, 2008 9:17 AM
Quoting:
GPL vs LGPL: The main difference between these two licenses is the LGPL license can be freely modified by anyone, and doesn't require the modifications (i.e. modified source code) to be re-distributed.
I don't believe this to be accurate. Here's an example case that I think correctly shows the difference between these two licenses:
Suppose someone writes a shared code library, say to do XML parsing or something. Then suppose I write a program that makes use of this library.
If the original library was licensed with LGPL, my obligations I are pretty limited. If I make code changes to the library itself, I have to release that code back under the LGPL license, but my main application can be licensed however I see fit.
In contrast, if the library was released under the GPL, my entire application written using that library is forced to be licensed also as GPL. (This is why the GPL is often considered to be "viral".)
April 6, 2010 8:38 AM
kazoolist, you are right, my understanding on GPL and LGPL so far is like what you describe. I think the original text was not right.