Just over a week ago, the the third revision of the GNU Public Licence was released. This is a software licence designed to protect free software, ensuring that users and developers are free to use and develop the software as they wish, while ensuring that any modifications or improvements made remain accessible to the free software community.
In an age where software development and computer technology is so governed by copyright and legal restrictions, the knock-on effects that this legal licence will have mean that it is probably a more significant release than new versions of most software applications.
Having already talked about Free software and the commons (and still with a few more things to say about it in the future), I thought it would be worth talking about exactly what “Free software” is and what it means to software users and developers.
What is Free Software?
There are two commonly used definitions of “free software.” The first that people naturally tend to think of is free in terms of cost (“free” as in “free beer.”) The second, which people more involved in software may be more likely to associate with the phrase, is free of restrictions (“free” as in “freedom.”) The Free Software community is focussed on the second definition of the word.
To try to sidestep the ambiguity of the word “free”, a number of other terms have sprung up- such as “open source” or FLOSS (Free/Libre Open Source Software), but for various reasons none has really taken off as well as the catch-all term that “free software” covers.
According to Richard Stallman and the Free Software Foundation, software is ‘free software’ if people who receive a copy of the software have the following four freedoms:
- Freedom 0: The freedom to run the program for any purpose.
- Freedom 1: The freedom to study and modify the program.
- Freedom 2: The freedom to copy the program so you can help your neighbor.
- Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
However, because of the grey area that lies around these freedoms, Free software is ultimately defined by the licence that a particular piece of software is released under.
International copyright laws automatically give the author certain rights over their work, but in order to allow users to enjoy freedoms like those listed above, permissive “Copyleft” licences have been created. Rather than the EULA ‘contracts’ frequently seen when installing software (where you agree to a number of restrictions on what you can do- ie. not to copy, reverse-engineer, sell or loan the software you’re about to install on your computer- or to blame anyone responsible if it does anything wrong), Copyleft licences work the opposite way in granting certain rights to the user which are usually exclusively given to the author- although sometimes with the restriction that they must also be passed on to any subsequent recipient.
Alternatively, there are permissive Free licences (such as the FreeBSD or MIT licences) which give users the rights to modify or distribute the software, but without the restrictions to ensure that the code remains free. This means that software licenced under these permissive licences can be freely incorporated into closed source commercial applications. The downside of this is that improvements or fixes don’t have to be shared back with the community, or passed on as free software. For example, it would be perfectly legal to take permissively-licenced Free software, rebrand it and sell it to customers who are unaware of the freely available software.
There are a number of different licenses offering different degrees of freedom, depending on whether they are focussed on ensuring the freedom of the end user, or maintaining the free status of the code and any derivative works, the General Public License being the most prominent. Broadly speaking, they break down into three groups;
- The GPL licence— about to have it’s third version release— is aimed towards ensuring that the code remains free. The Linux kernel is currently under Version 2 of the GPL licence (although whether future versions of the kernel will be released under the GPL v3 licence is yet to be seen.) It guarantees that the source code is accessible and modifiable, so that anyone can use and modify any GPL software in any way they like. However, the main restriction is that any software which incorporates GPL code must also be covered by the GPL licence. In other words, you can’t use a piece of GPL code in a project which you intend to keep closed source— if the project contains some GPL code, then the entire project must be released under the GPL licence (something which has been referred to as a “viral” nature- because if you choose to use GPL code, it “infects” your own code; although as I see it, that’s not unlike the way using proprietary code in a “Free” project renders the entire project legally liable.) This also means that any improvements made to the GPL’d code must be made available to the community- so, for example, if a company finds and fixes a security flaw in the Linux kernel, that fix would be made available to be incorporated into the next release.
- BSD-style licenses— so called because they are applied to much of the software distributed with the BSD operating systems— are aimed at ensuring that the user is free to do what they want with the software. The author retains copyright protection solely to disclaim warranty and require proper attribution of modified works, but permits redistribution and modification in any work, even proprietary ones, again, for as long as the author wishes.
- Public domain software – the author has abandoned the copyright. Since public-domain software lacks copyright protection, it may be freely incorporated into any work, whether commercial or non-commercial, proprietary or free. Importantly, software released thus goes completely out of control of the author, who, even if he subsequently so desires, cannot impose any restriction on its use, making the software truly free in every sense.
It’s often interesting to see how people like Microsoft’s Steve Ballmer and Bill Gates talk publicly about free software- quick to focus that it’s not really free of cost, pointing at issues like total cost of ownership or making vaguely threatening statements about software patent liability, but rarely if ever referring to the concept of software freedom, or the costs of forced upgrades or migrations when the developers withdraw support or abandon their products entirely.
(Note- This is a slightly late post, breaking my self-imposed “one post a week” rule for the second time, but I’ve simply been too busy to find the time to write this to cover enough information to make the post worthwhile. And not just busy on Facebook… However, any forseeable gaps between posts in future will be filled by shorter articles instead.)
2 comments
To add this to Digg, you’ll need to log into Digg, then click on “submit a new story” at the top right of the page.
Cheers!
Comment by SomeRandomNerd — July 19, 2007 @ 10:25 pm
Bookmarks…
How I add this article to Digg?…
Trackback by Albert G — July 19, 2007 @ 4:36 pm