OK, I've not mentioned this before since a couple of simple and discreet emails to Mr Coolegem should suffice, certainly not any sort of "public crucifixion". However, people are now considering redistributing this programme themselves, so here we go.
It's a rather complex tale to tell so please bear with me, this is all relevant.
Sharing to help your friends and neighbours is generally a good and positive thing. It's at the heart of much of our culture and certainly our folk music culture (as we all experience on this website of course). It is also at the heart of the Free Software Movement.
Wouldn't it be great to be able to say to a friend "look, here's this great bit of software" and have them be able to install and use it without any artificial restrictions; with no-one stipulating, for example in long "End User Agreements" or crippled features, when and where and how they are allowed to run it or what they must do to enable certain features.
More than that, what if your friend notices something they'd like to change in the software, like in ABCEdit as discussed on this thread? What if they were able to do it themselves, or maybe get together with you and others to do it. Or even pay someone else to do it for you?
After adapting the software wouldn't it be great if you were allowed to tell others about it and give them copies?
Many people aren't aware of this, but this is not a fantasy. This software exists and is used by millions of people every day.
However, there is a problem. If I simply put a piece of software into the public domain with no restrictions at all then there is nothing stopping someone else from taking that software, maybe also changing it, but then redistributing it in a form that means no-one else down the line is able to study or adapt it. They may also build in artificial restrictions on when, where and how you may use or redistribute the software, or cripple certain functions like printing on a whim.
There is a process called "compiling" that most software goes through. This is when the software code that is written by people (known as the "source code") is taken and converted into something that a computer can use to run the software. Since the computers that we have use the binary system (everything is distilled by a computer to switches, ie. on/off or ones and zeroes), these files are called "binaries". These binary files are not reabable by humans.
So, how do we address that problem and keep software that was meant to be fully shared by the whole community, in the community? This was an issue addressed back in the early 1980's by the Free Software Foundation and it's founder Richard Stallman. He came up with the "Free Software definition" to show what the aims were and the "GNU General Public Licence" to protect those aims in software.
The Free Software definition is as follows:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (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 distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
Essentially, the way that the GNU General Public Licence (GNU GPL) protects the freedom of the software user is by stipulating the conditions under which software covered by it may be redistributed (shared). These conditions are enforced through copyright law.
If you use the software on your own computer, then you are not restricted in what you are allowed to do with it. However, it says that if you redistribute software covered by the GNU GPL then people receiving it must
be informed of their rights (along with receiving a copy of the GNU GPL) and it must
either be accompanied by the source code or a written offer, valid for at least three years, to give any third party a complete machine-readable copy of the corresponding source code. This is to be done at cost and in the usual way that software is distributed on physical media. eg. on a CD rather than written on the side of a camel or printed out on reams of paper.
This is a simplification of the rights the GNU GPL offers of course. The GNU GPL is eminently readable, it's meant to be read by "normal" people so it is not full of inpenetrable legalese.
OK (phew!), on to ABCEdit.
ABCEdit uses code from at least two free software projects. Namely abcm2ps and Ghostscript. Their code is covered by the GNU GPL. The use of the code is clear from the installed files, though it is difficult to tell exactly how these programmes have been incorporated into ABCEdit.
The right to take code from either of these projects and do whatever you like on your own computer is explicitly allowed by the GNU GPL. However, if you redistribute that code then you are not allowed to deny other people their rights under the GNU GPL.
If the redistributer does not comply with the GNU GPL then they must stop redistributing the software since is it the GNU GPL alone that gives them this right. Deny others their rights under the GNU GPL and it will defend Free Software.
There were no lawyers "cease and desist letters" or silly threats, just a couple of emails to Mr Coolegem informing him of the rights that he is denying users of ABCEdit and the fact that he should be complying with the terms of the GNU GPL. The aim is education, not litigation. We want to make friends not enemies.
What Mr Coolegem wishes to do next is up to him. You cannot force people to share their own code, that's not a thing that the GNU GPL can do even if it were desirable. He ought to do the decent thing by the community (and the free software developers whos code he adapted and redistributed) and release the source code covered by the GNU GPL.
Sharing is good. Once won, lets keep that freedom.
Some links for further reading:
- Why software should not have owners
- Other articles on the philosophy of Free Software
- The Free Software Foundation
- The GNU operating system
(the heart of GNU/Linux)