In Order to Offer your Source Here
There is just one requirement that has to be met in order for someone to
offer their source code on this site. It has to be licensed in such a way
as to be compatible with open source.
What this means is that the source code must meet the
guidelines as given
by the Open Source Organization
and the Debian
Free Software Guidelines. A
quick summary of those guidelines appears here. In addition, we have a
selection of ready-built licenses to choose from.
Licenses to Choose From
There are a number of existing licenses which meet the criteria for open
source and that are generally applicable to many types of software. Here are
a few I am aware of.
- Public Domain - This is where you tell the world they are free to do
anything they want with the code. This is the form that is most free, and
what I consider the highest goal. It basically means that there is no license.
- Chainware - This is my own version of Public
Domain, but one that allows you to ship a license file and have a little fun. I
wrote it after getting one too many chain letter emails, and used to attach an
older version of it to free software I wrote for local BBS's back in the 80's
and early 90's.
- BSD - This is a license
that still provides wide use of the source code. Basically, it just says that
your copyright license has to remain in place in the code.
- X Consortium - This
license has a few more restrictions than the BSD license.
- MozPL - Originally the
Netscape Public License, or NPL, which
is used on the Netscape Communicator source code that has been released as
Mozilla, the NPL out of necessity gave Netscape too many special privileges to
be considered for general use. The Mozilla Public License is the more general
version they are promoting.
- Artistic License -
This is the license distributed with Perl.
- LGPL - The Free Software
Foundation had a lot of problems originally with people who were afraid to use
their wonderful GCC compiler for fear that the copyleft would taint their code.
The Library Gnu Public License addresses some of these concerns.
- GPL - The license which
is promoted by the Free Software Foundation. Personally I don't like it, and would
encourage everyone to choose another license instead.
But if the GPL is what you want to use, go ahead. Your code still qualifies to be
included here.
Other summaries of licenses
You can find a number of other resources that try to describe the different
aspects of each of the open-source licenses. These include the Mozilla site's
Netscape's Public License FAQ,
The Free Software Foundation's
Categories of Free Software,
and Debian's Social Contract.
What is required
I am drawing from two texts in defining what qualifies as open source for the
purposes of this site. The first to offer a useable definition was the
Debian
Free Software
Guidelines. These laid out the basic notions of what a license had to allow
in order to qualify for open source.
To see exactly what was specified, take a look on the Debian web site. It spells
everything out better than I can. As a summary, however, the points
I consider important are as follows:
- No limitations on who can use your source code. You cannot make
limitations based on the type of person nor on the type of use the code is
put to. That may be hard for those who like to put a limitation on using
their code for any military purpose, for example, but the rationale seems a
good one and I will follow it, with the possible exception of the
implicit limitations in the GPL, which I will
allow.
- The source and binaries must both be freely redistributable. Free
redistribution means that the license must allow people to both give it
away and to sell it, so "free" is being used in the sense of "freedom"
rather than "no cost". However, it also means "no cost" in that no royalty
or fee can be charged by the author.
- Modifications must be allowed, and redistribution of the modifications
must be allowed in some way, even if it is just as patch files.
- No additional licenses can be required. So no releasing an encryption
algorithm and saying "By the way, you have to go buy a license from RSA
before you can use this." That also means that you can't require the use of
libraries that don't meet the open-source standard.
- Licenses must not contaminate other software.
I think that the GPL blows this one terribly, and I'm not sure how to
interpret this rule if the GPL is still considered to meet the guidelines.
However, there are obvious areas where contamination will not be allowed,
and apart from the GPL I will try to keep contamination to a minimum.
The second definition of open source comes from the
Open Source Organization. They have
written their Open Source
Definition drawing heavily from the Debian guidelines. In fact, it is
almost word for word, with some slight changes which I will list.
- An added feature is the ability to explore the
rationale behind a
particular rule. This can be particularly handy if the rule seems unreasonable
to you and you want to see why it is included.
- Source code redistribution is explicitly not required with the binaries.
However, the place to download a free copy must be offered, and there are further
restrictions on the form of the source code. It must not be obfuscated, passed
through a preprocessor, etc.
Return to Bruce Atherton's Home Page