Revisiting the license unification idea
Daniel Drake
ddrake at brontes3d.com
Sat Sep 22 15:23:01 PDT 2007
Hi,
A quick background: I'm involved in development of a kiosk-like embedded
product which runs the X.org X11 implementation. In other words, we will
be distributing X11 binaries to our customers.
License compliance is important for us. So, we spent time processing all
the open source licenses and figuring out what would be needed to be in
compliance.
xorg licensing proved to be a pain here, for a few reasons.
The license requires us to include the license text *and* copyright
notices with the product (some say "with all copies" but we believe that
a binary constitutes as a copy, some explicitly talk about
documentation). Many packages didn't have COPYING files or had
incomplete ones (e.g. without copyright notices). So I had to go through
lots of code finding all the notices, and aggregating them into our
product documentation.
Doing this for the X server took most of a day.
Add to that the fact that there are loads of small variations on the
licenses and some people who embed their names in the license text.
While producing our product documentation I did submit almost all of my
work in the form of COPYING files, which Alan Coopersmith and Daniel
Stone recently committed. Thanks!
I also see that there was discussion on this before:
http://lists.freedesktop.org/archives/xorg/2006-October/018648.html
and more recently:
http://marc.info/?l=freedesktop-xorg&m=118469455423316&w=2
We'd like to assist in this process of license unification and I can
spend time doing so.
I have a few ideas and proposals, outlined below. I will spend time
making these happen if people like them. I'm not really involved in
X.org development, so if any of these ideas are a little off, please
forgive me (and help me come up with more realistic ones) :)
I would like to see the following happen:
- A decision on an official "X.org license", backed by the X.org
foundation
- A wiki page publishing this license, plus a recommendation that
past/current/future code is published under this license.
- Some guidelines on keeping the COPYING file updated with new
copyright notices, so that binary distributors can simply aggregate
COPYING files from all xorg components and include them in the
documentation
It obviously wouldn't be realistic for us to relicense all old code,
although I would put time into contacting some individual developers and
asking if I could submit a patch relicensing all their work.
Would we want to require this license to be used for all future code
submissions, or would we just leave it as a recommendation?
Anyway, hopefully I haven't jumped the gun, but I've drafted the content
for the wiki page which I'm including below in hope that people will
review it (assuming the above ideas are generally acceptable). Sorry for
the slightly inconvenient wrapping. I've selected the license mentioned
by Daniel Stone in the above marc link. I've also assumed we want it as
a recommendation rather than a requirement for new code.
Please send me feedback.
------------
X.org licensing
The X.org source code has a long history, and has had many contributors
over time. The licenses chosen by contributors have varied slightly,
leading to a large collection of similar-but-not-the-same licenses in
use over the codebase.
In order to make life easier for distributors and to increase
consistency, we've selected an official X.org license which we encourage
you to use for past, current and future X.org contributions. You are not
required to use this license, however the usual vetting will apply: if
it's not MIT/X11-like, your submission will be rejected (just like
before we had this license recommendation in place).
The X.org license is below:
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE
SOFTWARE.
You should include the license at the top of all source files, prepended
by copyright notices.
Copyright notices should be in the form:
Copyright © YEAR NAME
Multiple years should be listed as a range (START-END) where
appropriate, or if you need to specify non-consecutive years, as a
comma-separated list (or a mix of both).
Some examples:
Copyright © 2007 A Person
Copyright © 2002-2007 A Person
Copyright © 2002-2004, 2007 A Person
So, a .c file would look something like the following:
/*
* Library functions to enhance the renderer
*
* Copyright © 2006-2007 Fred Brown
* Copyright © 2001, 2004 Frizter, Inc
*
* Permission is hereby granted, free of charge, to any person obtaining a
...
You should include a COPYING file in the root of your source
distribution. This should include the full X.org license text as above,
preferably as the first license entry in the file. Again, the license
should be prepended with copyright notices which form an aggregate of
the copyright notices prepending the X.org license text in all the
source files in your package.
As an example, consider that you have render.c and display.c in your
project, with this at the top of each file respectively:
/*
* render.c: Library functions to enhance the renderer
*
* Copyright © 2006-2007 Fred Brown
* Copyright © 2001, 2004 Jamie McManus
*
* Permission is hereby granted, free of charge, to any person obtaining a
...
/*
* display.c: Manipulate display controls
*
* Copyright © 2004 Fred Brown
* Copyright © 2003 Frizter, Inc
*
* Permission is hereby granted, free of charge, to any person obtaining a
...
Your COPYING file would then aggregate the copyright notices and then
include the complete license text, i.e.:
Copyright © 2004, 2006-2007 Fred Brown
Copyright © 2003 Frizter, Inc
Copyright © 2001, 2004 Jamie McManus
Permission is hereby granted, free of charge, to any person obtaining a
[...]
When updating copyright notices in source files, or adding or removing
files from the project [which contain license text], you should update
the COPYING file accordingly too. This may be a little bit of extra
work, but it is simply how we avoid making life hell for people wishing
to redistribute X.org binaries: they can be within license compliance
simply take the COPYING file from each package and include it in their
product documentation. So, please take care to keep COPYING up-to-date
and advising that your contributors do the same.
More information about the xorg
mailing list