License Codes
Due to the rather extreme propagation of software licenses which
are open, closed, community, free, semi-free, etc etc ad nauseum, I
hereby put forth a modest proposal aimed at clarifying this situation
once and for all.
People who have been on the net for a while have probably run into
geek codes, bear codes, or the like, in which people describe various
personal attributes using a concise set of letters and punctuation.
The purpose is to avoid the awkward need to interact with other human
beings in order to communicate various routine personal facts. Since
most people enjoy reading legalese even less than engaging in idle
chit-chat, it should be obvious that the need for a software license
code is considerably more pressing.
Examples
The GNU Public License (GPL) is P+ L- H- A- (LGPL is similar but H+).
The BSD license is P- L- H++ A+ (XFree86 is similar but A-).
On to the codes
- A--
- Not only do the authors discourage using their name in
advertising, they believe that if anyone starts telling the world
about the software, the unwashed masses will immediately destroy what
had been a delightful small community. For maximum purity, the
original authors should also refrain from using the software
themselves. You can never be too sure.
- A-
- Instead of acknowledging authorship, the advertiser is
perfectly free to misleadingly imply they produced the software, the
documentation, and many types of sliced bread. Why companies want to
be associated with the software and its documentation, given its usual
unfinished state, is an open question. Sliced bread isn't all it's
cracked up to be either, but I digress.
- A+
- The authors of the software must be acknowledged in
advertisements for products incorporating the code. The software
distribution itself should, of course, bury the authorship information
as cleverly as possible in order to avoid depriving people who write
ads from the pleasure of the treasure hunt of finding who is to be
credited.
- A++
- The authors of the software must be acknowledged in
advertisements, but only when an omnipotent and omniscient observer
would conclude that doing so would cause lots of good publicity for
the authors, zero negative publicity, and no technical support calls.
If the advertisement can start the ball rolling on eternal salvation
for the authors, that is a plus but is not required.
- H-
- The author is trying their best to make it hard for vendors
to do anything as silly as feed their family by charging for a license
on their product using the code. The only constraint on how far the
license is willing to extent its tendrils is what the lawyers told the
author they could get away with.
- H+
- The code tries to be usable as some kind of component but
doesn't let people take the whole package lock, stock and barrel, and
then add value (the concept of value add is central to the software
industry; see below for further discussion). The goal is for the
lawyers to make money arguing over the definition of component (which
is, of course, long and in legalese).
- H++
- No limits on your ability to combine this code with other
code which implements incompatible interfaces, improves the quality of
the screenshots, introduces bugs, and puts in features which look
great in a marketing blurb but don't quite work. In the software
industry this is known as "adding value".
- P-
- Distributing modifications without any ado is allowed, in fact one
is encouraged to be rather loose and fast with attributing the
authorship, on the theory that this will encourage authors to let go
of their control issues.
- P+
- The license tries to be fair in terms of authorship
attribution without imposing any particular burdens concerning how
modifications may be distributed. This is, of course, futile. People
will still mess up the attributions, and/or flame away about who
deserves credit.
- P++
- One must distribute modifications in a separate patch file.
Furthermore, to avoid any confusion about whether the patch file is
from the original author, one is encouraged to be very clear about
separating the patch and the original. For example, distribute the
original distribution to people whose names begin with A through M and
the patch to people whose names begin with N through Z.
- P+++
- Although making modifications is technically allowed, once
you do, the owner expects to flame you considering your technical
judgment, means of distributing the patch, attempts to help anyone
using the software, and your personal hygiene. You can expect to be
loudly vilified until you withdraw the patch.
- L--
- Like L-, but in fact the owner of the software finds money
to be a rather distasteful concept. Far from trying to get you to
send them some, they might be flame you for your mercenary assumptions
if you tried.
- L-
- The owner of the software is not trying to use the license
to put a wedge between you and your hard earned money.
- L+
- Like L++, but without an attempt to squeeze blood from
turnips (for example, no payment for personal use, academic use,
noncommercial use, or something of the sort).
- L++
- Fork it over, Bill Gates is in town.
- ?
- This character should be liberally sprinkled in to denote
provisions which are vague, subject to interpretation according to the
whim of the author, or just plain ungrammatical. A fair scoring of
all the licenses out there would surely assign more "?" than "-" or
"+".
Are you serious?
The net being what is it, I'm sure that someone will take
this seriously. In a perverse way, I think I kind of hope for it.
Feedback concerning this page
"You are a fundamentally warped and sick individual. You know, I
*like* that in a person..." - Eric Raymond, email of 22 Mar 1999.
I must say well done on this. It really is a fine piece of work. We've
decided to publish it as a "Special Feature" in a day or two. This means
it'll stay up on the Segfault front page for at least the next few
months and always be available from the "Special Features" link at the
top.
Thanks for a well written story!
- Scott James Remnant of segfault.org, email of 30 Mar 1999.
I disclaim copyright interest in the contents of this web page; it
is in the public domain.
This page is part of Jim
Kingdon's personal pages.