"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do."

-- unsure; often attributed without source to information philosopher Ted Nelson

Software development

Software development guidelines by Ken Gaillot

Licensing

In today's hyperlegal world, every software package should explicitly specify its legal status (copyrighted or uncopyrighted). Each source code file should include a line near the top that says either "This software is in the public domain" or "Copyright (C) year copyright-holder".

Copyright information should also be displayed in each program's "--version" message.

The software package might have one license for the whole package, or separate licenses for programs, libraries and documentation. Any licenses for the software package as a whole should be included in a plain text file named "COPYING" in the top-level directory. Licenses may also be included in other documentation as appropriate.

Packages may wish to list the principal authors of the software, including which files each has substantially written or modified, in a plain text file named "AUTHORS" in the top-level directory. This information can be used to register a copyright.

Types of licenses

Each developer is free to set unique license conditions. There are three broad categories:

There are standard licenses available, including the Free Software Foundation (FSF) licenses:


Security

Software licenses are legal documents, so consulting an attorney may be helpful in some cases to address legal liability.

Tools