Greg Black
Mailing lists
Free software

Contacting me
FAQ list
Personal stuff
GnuPG/PGP keys

Greg Black: Free Software Information

Open Source, Free Software, etc

There are many schools of thought in the free software movement, and there is a certain amount of bigotry amongst adherents of the various religions. I think there's room for all flavours, although I normally use either the GNU or BSD licences.

Because the GNU GPL was an early and influential licence, I have provided some information about it here; below, there are pointers to some other information.

A Brief GNUish Definition

The following text is part of the GNU Project Free Software Definition. You can find the full text here.

“Free software” is a matter of liberty, not price. To understand the concept, you should think of “free speech”, not “free beer.”

“Free software” refers to the users’ freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this.

A program is free software if users have all of these freedoms. Thus, you should be free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask or pay for permission.

You should also have the freedom to make modifications and use them privately in your own work or play, without even mentioning that they exist. If you do publish your changes, you should not be required to notify anyone in particular, or in any particular way.

The freedom to use a program means the freedom for any kind of person or organization to use it on any kind of computer system, for any kind of overall job, and without being required to communicate subsequently with the developer or any other specific entity.

The freedom to redistribute copies must include binary or executable forms of the program, as well as source code. (It is ok if there is no way to produce a binary or executable form, but people must have the freedom to redistribute such forms should they find a way to make them.)

In order for the freedoms to make changes, and to publish improved versions, to be meaningful, you must have access to the source code of the program. Therefore, accessibility of source code is a necessary condition for free software.

In order for these freedoms to be real, they must be irrevocable as long as you do nothing wrong; if the developer of the software has the power to revoke the license, without your doing anything to give cause, the software is not free.

Links to Useful Pages

The Open Source Initiative: Definitions of Open Source and useful links
GNU Philosophy: Links to GNU (and other) articles
The GNU Project: Free Software Definition
Richard Stallman: The GNU GPL and the American Way
Dan Bernstein: Software user’s rights
Dan Bernstein: Internet reader’s rights

Copyright © 2001, 2004 Greg Black — All Rights Reserved
$Id: free-software.html 2.2 2004-07-13 11:26:55+10 gjb Exp $

Back to top