J-F Bilodeau's Blog @ chronogears.com

Saturday, March 22, 2008

Free Software 201

If you haven't read my previous entry, Free Software 101, I would recommend you do so before moving onto this one.

In this article, I would like to continue the discussion on the definition of free software. Previously, we explored the four freedoms attached to free software. For a software to be called free, it needs to meet those criteria.

Some software are given away, like the giftware license of the Allegro game library. Others are said to be public domain, in the sense that they do not have a copyright, and thus, have no limitations in terms of use.

Software that falls under the 'giftware' license or public domain may have the four freedoms. Any individual or organization can use the source code for any purpose, including proprietary and commercial software. Their use and the changes that they bring to the code does not have to be given back to the community. Thus, the new implementation of the software and its users looses the four freedoms.

To protect those four freedoms, the Free Software Foundation, founded and headed by Richard Stallman, created the GNU GPL (General Public License). The goal of the GPL is to ensure that any softwares licensed so would not lose their four freedoms.

This is the license that is used in countless open-source softwares like the Linux kernel, the MySQL Database and the Java programming language. Even Wikipedia uses the GPL to protect the content of their articles. A quick search on SourceForge found over 79,000 projects that uses the GPL.

The GPL is written so that anyone can use it -- both the developer of the original code, and the end user of the code. Agreeing to the GPL pretty much binds you to the four freedoms. That is, you can use the code, view the code, copy the code and share your changes, but you cannot remove those four freedoms from your work.

The GPL allows you to sell a product that includes GPL code as long as you do not remove those four freedoms in any way.

There is more to the GPL than what I've discussed here. For instance, the GPL protects the copyright holder by offering no warranty and the GPL version 3 addresses software patents. However, what I believe is important here is the spirit of the license. If you are considering using GPL code in a commercial project, you may want to consult a lawyer or contact the Free Software Foundation to clarify your right (I'm a coder Jim, not a lawyer). However, keep in mind that there are thousands of successful commercial products out there that uses GPL code. The Asus Eee PC readily comes to mind.

The GPL is one of many licenses that are designed to preserve the four freedoms. Such licenses are known as copyleft licenses. The symbol for copyleft is a reverse copyright (©) but has no legal meaning. Copyleft licenses are also known as viral licenses, since your use and derivative of the work is bound by the same terms as the original license, like a computer virus that infects every executable it touches. The analogy may be less than savory and also misleading. Installing a GPL software like OpenOffice on a machine does not spread the GPL to all your programs. However, using OpenOffice's code in a development project does bind you with the GPL. Whatever use and modification you bring to that code must retain the four freedoms. That is, you could not commercialize a new office suite based on the OpenOffice source code without releasing the source.

Does that mean you could not create a commercial software product based on GPL code? There are many commercial products that include GPL code. As a matter of fact, many commercial applications were later released under the GPL.

Examples include the Linux kernel, which is used in a number of software packages, such as paid-for distributions like Mandriva Linux. Another example is TransGaming Cedega, a program that runs most Windows games on the Linux platform.

There are many advantages to open sourcing software under the GPL, or another open source license. However, I will leave this discussion to another post.

Labels: , , , , , , ,

0 Comments:

Post a Comment



Links to this post:

Create a Link

<< Home