License Categories
Categories Of Software Licenses
Public Domain
Public Domain software gives up all copyright. There are no restrictions
on what anyone can do with this code. They can remove the authors name
from the code, change it at will, release it as a commercial product,
and copy it for all their friends.
Some software has a license that says "This software is public domain",
and then goes on to list restrictions upon use, modification or
distribution. This is nonsense - if the software is public domain, there
are no restrictions. You should contact the original author and ask
them what they meant.
Here
is an example of a public domain license.
Pros:
- Anyone can do anything with your software.
Cons:
- People can change the license so the versions they
distribute are not public domain. Ultimately, this
means your contribution might be used to kick-start
a piece of software that has no intention of contributing
back.
BSD-style Licenses
A BSD-style license allows source and binaries to be modified and
redistributed, but adds a few conditions.
The license must be kept with the software and the documentation,
any advertising must acknowledge the use of the software (and the
original authors) and the authors cannot be used to endorse or
promote products without permission.
For more details, see the BSD-style license
here.
Pros:
- People can use, modify and redistribute the software.
- People don't have to distribute the source code when
they redistribute the software.
- The conditions are not difficult to satisfy (indeed, they
would usually just be considered "polite").
Cons:
- If people don't re-distribute the source code, the binary
only copies cannot be modified. This allows people to use your
software to kick-start proprietry software.
Artistic Licenses
The "Artistic" license allows modification and redistribution, but
has certain restrictions. The restrictions are aimed at giving the
original author some control over the software.
It distinguishes the "Standard Version" from modified versions, and
essentially says you can modify the standard version, but can't
re-release it as the standard version (unless certain conditions are
met). It also stops people making a profit on the software itself,
although you can make a profit on distributions of which the software
is only a small part. You can also take parts of the software and
re-used them in another piece of software, without the Artistic license
applying to your software (with certain conditions). You can't use the
author's name to endorse your software.
The Artistic license take the attitude of "you can make changes if
you make them free software, or you can make changes and keep them
proprietry, but then you have to go to more trouble to make sure people
won't get confused between your proprietry version and the free version".
It has special cases to deal with "local" changes where you're just
customizing for your workplace (for example), and don't intend to
redistribute to the world. It's a fairly complex license to summarize.
For more details, see the Artistic license
here.
Pros:
- People can use, modify and redistribute the software,
although redistribution has some conditions.
- People don't have to distribute the source code when
they redistribute so long as certain conditions are
met.
- People can re-use parts of your software in their own
software without needing to keep your license.
- There's little chance of people releasing competing
versions or confusing users with subtly different
or inferior versions.
Cons:
- The license is a little complex.
- The conditions can be difficult
- The license can be removed if people use your code in
another piece of software.
- If people don't re-distribute the source code, the binary
only copies cannot be modified. This allows people to use your
software to kick-start proprietry software.
GNU General Public License (GPL)
The GPL is designed to make the software free, and ensure that all
future verions and derivatives are also free software.
There are no restrictions on use of the software. If you distribute
or modify the software, you have certain responsibilities. You need
to make sure the recipient can see what rights they have, and that
the modifications are clearly marked.
Fees can be charged for copying or providing a warranty. You can modify
the software to make a derivative work (providing you meet certain
conditions). You can distribute binary copies, provided that it is
accompanies by source code, a location where access is available to obtain
source code, or an offer to provide source code. By redistributing
(modified or unmodified), you may not impose any futher restrictions.
For more details, see the GPL license
here.
Pros:
- The license cannot be hidden from the end user, so they
know their rights.
- Derivate works and future versions will always be free
software.
Cons:
- The license is a little complex.
- Some people find it inconvenient to have to provide
source code (however, if your distribution includes source
code, your responsibility is already met. If your aim is to
hide the source code, you will have a difficult time doing it).
- Code linked with GPL code must be GPL licensed.
GNU Library General Public License (LGPL)
This license weakens the conditions of the GPL to provide a better
compromise for libraries. Essentially, the end difference is you can link
with an LGPL library and keep your original license.
Because of the need to describe what is meant by works based on a
library and works which use a library, the license is quite different in
details to the GPL, but has the same spirit.
You have the option under the LPGL to simply fall back to the GPL.
For more details, see the LGPL license
here.
Semi-Free Licenses
Some licenses restrict who can use the software, or who can use the
software without payment. They may limit modification to be without
re-distribution, or redistribution to be not-for-profit. These
licenses, while better than a proprietry license, can still have the
same problems if you fall into one of the groups that must pay for
copying, or want to modify distributed copies.
Since many of the people who contribute to free software are doing it
outside of work hours, or work in a not-for-profit organization, it's
tempting to develop software that is based upon semi-free software.
They should realize that in effect, their software is only as free as
the least free dependency.
Semi-free licenses are also problematic because they can hinder the
development of completely free alternatives, simply by filling the
need for such a product for most (but not all) users.
Shareware Licenses
A shareware license allows you to copy the binary format (often
forbidding making a profit), and restricts your usage to an evaluation
period, after which you must send payment to the author. You have no
access to the source code, and modification of the binary is usually
forbidden.
This is basically much the same as proprietry software, but with a
different distribution scheme and an evaluation period.
Proprietry Licenses
Proprietry software licenses are designed to create profits for the
author in a particular way. They do this by controlling the distribution
(for which they set a price) and stopping modifications (because they
charge for upgrades). It's important to remember that anyone producing
proprietry software believes that the profits they are making are more
important than the general good the program could do for humanity,
otherwise they would not be protecting their profits so carefully.
Proprietry software generally doesn't include source code, doesn't allow
redistribution of even binary code, and doesn't allow modification
(indeed, many disallow modifying even the binary code).
Some proprietry software is provide free-of-charge (This is often
called "gratis software", to distinguish it from software which has
"freedom", although there is some confusion over the terminology).
Gratis software is usually part of a long term plan to
increase profits, perhaps by eliminating competiton or controlling
standards, or even making profits indirectly (e.g. a gratis finance
program that does deals with banks for a share of any transaction fees).
Pros:
- The author can make profit (at the expense of many people not
being able to afford their tool, and therefore not being
able to benefit from it).
- The author can make profit out of the deficiencies of current
versions of the tool, because people cannot legally fix
problems without them.
- The author has complete control over the future of the tool.
- The author can put logic bombs into your programs to make sure
people pay, and they are unlikely to find them.
Cons:
- You have complete responsibility for the future of the
tool. Compatibility with future hardware, bug fixes,
updates, variants, must all be done in-house.
- Users won't be able to provide you with anything but
complaints and requests.
- Customers can and will drop your product if you cannot move with
them.
- Millions of people won't ever find the tool useful,
because they cannot afford it.
- Motivating workers may become difficult.
- Quality of work is likely to be lower because of stunted
feedback loop.
- Customers are wary of becoming locked in to proprietry standards.
- Free software alternatives will eventually be developed in
direct proportion to the popularity of the program.
- Developing a proprietry program may simply retard
development of an entire field (compare the growth of
proprietry network content with the WWW).
See this piece on an
alternate software industry if you are interested in making a profit
from the software industry without retarding the growth of the field
or making profit from simply restricting the benefit of your software.
Information on Software Licenses
Further Resources
