Free Software Resources

Software Licenses

I am not a lawyer. This is not legal advice. However, I'll try to explain the concepts in software licenses as best I can.

Copyright

All software is copyright by the author. This is automatic -- unless stated otherwise, the software is copyright and all rights are reserved. Writing "Copyright Me, 1973", might strengthen your claim to copyright in a legal dispute, but it isn't necessary. Sometimes authors are employed in circumstances that mean their work becomes copyright by their workplace.

The copyright may give certain conditions under which you may copy or even use the software. By default, a copyright stops anyone from modifying or redistributing the software. However, it is by no means compulsory to do this. If you do want to change the conditions of your copyright, you need to add a copyright message.

Free Software Rights

The main thrust of free software is that anyone can modify and redistribute the software. There are four factors involved (stated in their most free sense):
Anyone
There are no restrictions on who has what rights. The rights apply to all of humanity.
Use
You can use the software.
Modify
The source code is provided. It can be studied to see how the program works. You can build the program from the source, and what's more, it can be changed. This means bugs can be fixed, features added, the program can be updated to work with new hardware, etc.
Redistribute
The software, including the source, can be copied (even if modified) and given it to other people.

Software Parts

Software is not a solid, physical object. It can exist in a variety of forms. The parts that make up what we call software are:
Source Code
The (usually) human written code that is used to build the executable code. This usually includes build scripts, if it is necessary to create the software.
Binary Code
The (usually) machine generated code that contains the precise instructions the machine must execute. Also called executable code.
Data
Any pure information that is used to build the program. This might include graphics, sounds, maps, even a full database.
License
The conditions under which you can use, copy and modify the software. While not strictly part of the software, the license is intimately tied to the software.

The License

The license restricts the four Free Software Rights to various degrees over the four Software Parts. Notice that the license can restrict the rights over the license itself - some software licenses use this to let you do anything but change the license.

Free software licenses have very few restrictions. Some restrict you from changing the license, or have provisions to make sure the original authors get credit. Some try to make sure users aren't confused by competing versions of the software that claim to be the "real thing". Some have licenses to stop you hiding the source code from the user, or changing the license. Apart from these restrictions you can generally do anything you like with the software.

Semi-free software licenses are like free software licenses, but they restrict the anybody part to exclude certain groups. Often it is commercial users, but sometimes it is military use, or even users of a particular operating system. The people who are excluded usually have to treat the software as non-free software.

Licenses which say "if you like it, you are encouraged to ..." are not restrictions, merely suggestions on how to show your appeciation. If the license says you must do something, it is basically proprietry software, but with a different payment scheme. (If tempted to add conditions like this, consider if some people might find it expensive or even impossible to do such a thing. It might be cheap to send you a postcard or a pizza if you live nearby, but try it from another continent. Even email might be expensive. It's almost always best to simply suggest things - if they are cheap, many people will do them anyway).

Shareware restricts the distribution of source code, but allows distribution of binary code. It also puts a restriction on use, allowing you to use the program for a particular time period or only use certain features. Generally, you may not modify the binary code either.

Proprietry software restricts the distribution of source code, as well as distribution of binary form, use and modification. Usually you can do none of these things, although some licenses give a little more leeway.

Public domain software has no copyright at all - the author has given up any rights to the piece. This means you can do anything you want with it.

Information on Software Licenses

Further Resources