Thursday, April 12, 2007

Principles of Free Software

It is with a degree of exasperation that, whilst observing the development of the 3rd version of the GNU General Public Licence (GPL) [GPLv2] [GPLv3], one regularly come across opinions and news articles published by various so called luminaries and pundits blatantly misunderstanding the concepts, principles and objectives of Free Software.

There seems to be this strange impression that Free Software should conform to the commercial models, processes and ambitions of it's proprietary counterparts and that the two can be compared using the same criteria.

Fundamentally, what is largely forgotten, ignored or misunderstood by these unenlightened hacks, is the fact that Free Software development, licencing and distribution is carried out under the principles and mores of freedom, non-discrimination and inclusiveness.

As detailed on the Free Software Foundation's website, Free Software is governed by the following four basic concepts of freedom:


  • The freedom to run the program, for any purpose.
  • The freedom to study how the program works, and adapt it to your needs.
  • The freedom to redistribute copies of the software, in order to help others.
  • The freedom to improve the program, and pass those improvements on to others to the benefit of all.

It is these concepts which override any and all other considerations. Yes, for example, greater interoperability with proprietary software is or would be nice, but certainly not at the cost of compromising any of the above mentioned freedoms to even the slightest degree. In essence; commercial, proprietary and pecuniary interests have no direct part to play in the licencing framework and processes of Free Software.



"If you want to be free, there is but one way; it is to guarantee an equally full
measure of liberty to all your neighbors. There is no other."
Carl Schurz, (1829 - 1906)



In order to ensure that these freedoms are passed from one user of the software to the next, without the corruption of the principle intent of the original developers, Free Software licenced under the GPL employs copyright law to ensure that the preservation and conveyance of these freedoms are a condition of it's use and distribution. This method of licencing, referred to as copyleft, is one of the cornerstones of preserving the freedoms granted by the developers of Free Software.



"Eternal vigilance is the price of liberty."
Wendell Phillips, (1811-1884)
(often incorrectly attributed to Thomas Jefferson)*



Safeguarding these principles of software freedom especially depends upon the relentless re-evaluation and augmentation of the licences used to guarantee these freedoms. This incessant re-evaluation must take into consideration ever changing laws and methods practised globally, with an attentive and decidedly gimlet eye towards any threat that may present itself against these principles of freedom.

Development of the General Public Licence Version 3


When one evaluates the merits, clauses, demands and precepts of a Free Software licence, one must always take into consideration the developers intent. There are numerous licences available to software developers ranging from "gift" licences such as the Modified BSD to extremely restrictive commercial licences, so it is essential to understand what statement a developer or contributor is making when they provide or contribute software under a licence such as the GPL.

Examining the development of the 3rd version of the GPL provides us with some interesting insights into the challenges facing the preservation of Free Software today. Many people say that the 2nd version of the GPL is "good enough", but looking at the issues and particulars raised and addressed during the development process, should provide an insight to of some of the threats facing Free Software today.

Various issues addressed during the development of new version of the licence that can be used to illustrate the improvements that can be made and what the potential threats are:


  1. Copyright laws have changed quite significantly on a global scale since version 2 was developed. This has necessitated that the text of the licence has been revised to cater for these legal obstacles and to resolve some of the country specific issues.
  2. The term "distribution" has essentially been replaced with the terms "propogate" and "convey" which, amongst other things, allows for clearer delineation between the various types of distributors. In association with this, modern download and peer-to-peer distribution mechanisms have been recognised by the licence.
  3. Whilst inferred in version 2 of the GPL, version 3 directly addresses the granting of patent licences by contributors to all users of the software.
  4. Technical barriers to modification have been addressed, particularly focusing on the process commonly referred to as "Tivoisation". (More below.)
  5. Instances of collusive and discriminatory practices such as the recent Novell/Microsoft patent agreement have been attended to. (More below.)

Technical Barriers to Modification


To the audible howls of those with commercial and proprietary interests, the GPLv3 has directly addressed the issue of so called "Tivoisation". "What is this, and why is it significant?" I hear you say. Let's lay it out.

"Tivoisation" is the method whereby a company, organisation or individual takes Free Software, uses it in the development of a product, and then has the gall to deny the user his/her freedoms granted by the software licence.

It works like this...


  • A company develops a hardware product which requires a software component such as, say, a personal video recorder (PVR).
  • Instead of developing their own software from scratch or paying for proprietary software to run on the device, the company takes some Free Software, which they proceed modify to suit their needs. (Making perfectly legitimate use of the freedoms granted by the licence.)
  • The PVR is then marketed and sold by the company who happily complies with the requirements of the licence and provides the software under the same licence as they received it.
  • The consumer/user purchases the device and then decides that he/she would like to modify the software to, say, skip advertisements, stop providing usage information or use a different scheduling service. (Perfectly legitimate under the terms of the software licence.)
  • After modifying the software themselves, or obtaining a modified version from someone else, the user now installs it on their PVR, but runs into a problem.
  • The PVR will not allow the modified software to run. In fact, the PVR will only allow software to be run on it with a special key and/or method only known and available to the company.
  • So, the user has received all their freedoms from the company in question, as required by the software licence, but is now denied the right/capability to exercise their freedom, blatantly in contradiction to the intent of the software licence.

Now, under the GPLv2, the company used in the example above, is technically in compliance with the requirements of the licence, but is this what was intended by the authors of the software? The obvious answer is no.

In addition, as the advertisements go, "that is not all folks". Use your imagination to extend this scenario to all manner of devices. Imagine a general purpose computer which will only allow a specific operating system to be used, or will not allow you to run an application of your choice. Even worse examples are when the device will run the software you install, but deliberately degrades performane or disables device features.

The GPLv3 now addresses this issue by making it a condition that the the necessary information required to install and run the free software on a user product is provided. One major exception being if the device is designed in such a way as the software cannot be modified by anyone, including the manufacturer.

CiarĂ¡n O'Riordan has written an excellent article explaining "Tivoisation".

Collusive and Discriminatory Practices


The recent Novell/Microsoft agreement introduced a new method of circumventing the principles of freedom enshrined by the GPL. In this agreement Microsoft essentially provides a pledge not to sue Novell's customers for patent infringement under a number of conditions. Whilst not technically a breach of the GPLv2, this agreement provides discriminatory protection to Novell's customers specifically, in direct contrast to the spirit of Free Software, which would require that this protection be extended to all users of the software, regardless from whom or where they received it.

In order to protect against these types of agreements, the GPLv3 introduces a prohibition on the distribution of software if the distributor is party to such an agreement.

Final Notes


Overall there are a great deal of significant changes to the GPL introduced in the drafts of version 3, many of which deserve a closer examination. The points discussed in this posting have in some ways been oversimplified, mainly in order to demonstrate the point that Free Software is about freedom above all else.

What is important to take cognisance of, is that Free Software is primarily an exercise and expression of freedom without the dereliction of morality and constraints of the proprietary and decidedly pecuniary models of today.




* The quote by Wendell Phillips is considered to originate from this quotation:
"It is the common fate of the indolent to see their rights become a prey to the active.
The condition upon which God hath given liberty to man is eternal vigilance;
which condition if he break, servitude is at once the consequence of his crime
and the punishment of his guilt."

John Philpot Curran, Speech upon the Right of Election, 1790.


No comments: