Doomsday Copyright Notices
<i>This post was originally made by <b>Yagisan</b> on the dengDevs blog. It was posted under the categories: Engine, Games.</i>
As per DaniJ's request- moving to dengDevs.
From: Jamie Jones ;
To: Dani J (Doomsday Linux Bug Reports) ;, Skyjake (Doomsday Linux Bug Reports) ;
Subject: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Thu, 30 Mar 2006 05:49:01 +1100
G'Day DaniJ and Skyjake,
I've done the long and boring task to checking every single file in the 1.9.0beta3 release to prepare a sound argument that deng is suitable for distribution in Ubuntu.
I've documented it as best I can in the attached copyright file. This is to be a required part of the .deb. I need some clarifications from you as the the authors as to the license on some of the code. Could you please make sure I've correctly categorised the source code. As it stands, without clarification, it can not be distributed by Ubuntu.
The copyright and license notices are a real mess in this code. When the list is correct, do you need some help correcting copyright and license notices ?
I will need to do the same for snowberry, and any resource packs in future if deng is accepted.
Thanks for your help.
Regards,
Yagisan
As per DaniJ's request- moving to dengDevs.
From: Jamie Jones ;
To: Dani J (Doomsday Linux Bug Reports) ;, Skyjake (Doomsday Linux Bug Reports) ;
Subject: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Thu, 30 Mar 2006 05:49:01 +1100
G'Day DaniJ and Skyjake,
I've done the long and boring task to checking every single file in the 1.9.0beta3 release to prepare a sound argument that deng is suitable for distribution in Ubuntu.
I've documented it as best I can in the attached copyright file. This is to be a required part of the .deb. I need some clarifications from you as the the authors as to the license on some of the code. Could you please make sure I've correctly categorised the source code. As it stands, without clarification, it can not be distributed by Ubuntu.
The copyright and license notices are a real mess in this code. When the list is correct, do you need some help correcting copyright and license notices ?
I will need to do the same for snowberry, and any resource packs in future if deng is accepted.
Thanks for your help.
Regards,
Yagisan
Comments
To: Jaakko Keränen , Jamie Jones
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Thu, 30 Mar 2006 02:41:45 +0100 (12:41 EST)
Hi Yagisan,
One of my goals for the 1.9.0 release is to try and clear up the license
issues somewhat. This means going through each file used in the deng
project be it data file in end distrobution or original source files for the
packages themselves.
You'll notice I have began seperating some source files which would
be technically covered by multiple (non-compatible) licenses into
seperate files which can be licensed as a whole under one (or more)
compatible licenses.
The reality of the current codebase is that there IS code in the engine
that would be covered under the Hexen license...
eg:
@ The network code was originally based on that of Hexen but I'm
not sure if this since been rewritten completely by skyjake.
@ I would imagine the polyobject code used in Doomsday is also
derived from that used in the original Hexen source release.
This would present a problem in an attempt to package the deng
project, as it stands, in manner suitable for distribution under Ubuntu.
Some notes:
AFAIK the only code copyright to Randy Heit (under a BSD style
license) is that used in the dpDehReader plugin.
Similarly, the only code copyright to Andrew Apted (et all, eg Lee
Killough) is that used in the dpMapLoader plugin.
I'm unsure whether skyjake has "re-licensed" the DOOM source to
use the newer GPL license or whether it IS still covered under the
original DOOM source release. If so then the copyright notices will
need to be changed for each file affected.
Regards,
Daniel Swanson
To: Jamie Jones
Cc: Dani J (Doomsday Linux Bug Reports)
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Thu, 30 Mar 2006 16:54:14 +0300 (Fri, 00:54 EST)
On Mar 29, 2006, at 21:48, Jamie Jones wrote:
> I've done the long and boring task to checking every single file in
> the
> 1.9.0beta3 release to prepare a sound argument that deng is
> suitable for
> distribution in Ubuntu.
Great news. I admit the license issue is a bit messy, and it's good
that the situation is being worked on.
> I will need to do the same for snowberry, and any resource packs in
> future if deng is accepted.
Snowberry is easy. I have written most of the code myself, with
exceptions documented in the python source files. All of Snowberry is
under GNU GPL v2.
> Zlib 1.1.4 Copyright:
> Jean-loup Gailly 1995-2002
> Mark Adler 1995-2002
Any zlib sources should not be included in a Doomsday distribution,
as they are available from the official zlib packages installed in a
system. The reason why they are there in the Windows release is only
for convenience: I could require that people get all the library
dependencies from elsewhere, but I feel that is something that the
average Windows developer will find inconvenient. In the case of
Linux, no zlib code should be included in the Doomsday source code
package.
> The following files are under Zlib's BSD Style license:
> ./Include/zconf.h
> ./Include/zlib.h
>
> The following files are under libpng's BSD Style license:
> ./Include/pngconf.h
> ./Include/png.h
Same goes for libpng.
> lzss Copyright:
> Haruhiko Okumura 1989
> Shawn Hargreaves
> Jaakko Keranen 2000-2006
> The following files are under the ??? license: These need clarification
> ./Include/LZSS.h
> ./Src/Unix/lzss.c
>
> #ubuntu-motu
> (03:36:00) Yagisan: If the entire copyright notice in some code is
> " Use, distribute, and modify this code freely" that would be
> public domain right ?
> (03:36:30) azeem: Yagisan: it dubious whether distribution of
> modified works is allowed under such terms, AIUI
> (03:36:50) azeem: it's definetely not public domain
To me "Use, distribute, and modify this code freely" sounds very much
like a BSD-style license. When it comes to distribution of modified
works, I believe the "freely" covers that one.
> *** Important Notice 1
> Many source files from doom contain the original license
> terms from before id Software mass-relicensed doom under
> the GNU GPL v2 or later. These files are used under the
> terms of the GNU GPL v2 or later.
> ***
Yes. jDoom sources should be updated to say that they are now under
the GNU GPL v2 license.
> The following files are under the FMOD license: Problem: Non-free for Commerical Use
> ./Src/Unix/sys_musd_fmod.c
This is correct. Use of the FMOD API in a commercial product is a
breach of the FMOD EULA. However, FMOD can easily be omitted from the
Linux distribution if this is a problem.
-=-skyjake-=-
To: Danij
Cc: Jamie Jones
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Thu, 30 Mar 2006 17:01:07 +0300 (Fri, 01:01 EST)
On Mar 30, 2006, at 04:41, Danij wrote:
> The reality of the current codebase is that there IS code in the
> engine
> that would be covered under the Hexen license...
> eg:
> @ The network code was originally based on that of Hexen but I'm
> not sure if this since been rewritten completely by skyjake.
The network code has been completely rewritten. No code from Hexen
remains.
> @ I would imagine the polyobject code used in Doomsday is also
> derived from that used in the original Hexen source release.
I think at least the majority of the polyobj code in Doomsday is
written by me, including how they are rendered and controlled in
netgames. In jHexen, the only game where polyobjs are currently
available, the code in the jHexen lib is used for doing the actual
manipulation of the polyobjs.
The polyblocklinks (or something like that) code is taken directly
from Hexen, though.
> I'm unsure whether skyjake has "re-licensed" the DOOM source to
> use the newer GPL license or whether it IS still covered under the
> original DOOM source release. If so then the copyright notices will
> need to be changed for each file affected.
I believe since id Software has changed the license, it also applies
to the code in jDoom. We just need to update the notices in the sources.
-=-skyjake-=-
To: Jaakko Keränen
Cc: Dani J (Doomsday Linux Bug Reports)
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Fri, 31 Mar 2006 01:42:07 +1100
On Thu, 2006-03-30 at 16:54 +0300, Jaakko Keränen wrote:
G'day Skyjake,
> On Mar 29, 2006, at 21:48, Jamie Jones wrote:
>
> > I've done the long and boring task to checking every single file in
> > the
> > 1.9.0beta3 release to prepare a sound argument that deng is
> > suitable for
> > distribution in Ubuntu.
>
> Great news. I admit the license issue is a bit messy, and it's good
> that the situation is being worked on.
Your welcome. I'll try to assist DaniJ in categorising the source, and
I'll try to help with adding license templates to the source code.
>
> > I will need to do the same for snowberry, and any resource packs in
> > future if deng is accepted.
>
> Snowberry is easy. I have written most of the code myself, with
> exceptions documented in the python source files. All of Snowberry is
> under GNU GPL v2.
Excellent news. That should be nice and easy to do.
8 > lzss Copyright:
> > Haruhiko Okumura 1989
> > Shawn Hargreaves
> > Jaakko Keranen 2000-2006
>
> > The following files are under the ??? license: > These need clarification
> > ./Include/LZSS.h
> > ./Src/Unix/lzss.c
> >
> > #ubuntu-motu
> > (03:36:00) Yagisan: If the entire copyright notice in some code is
> > " Use, distribute, and modify this code freely" that would be
> > public domain right ?
> > (03:36:30) azeem: Yagisan: it dubious whether distribution of
> > modified works is allowed under such terms, AIUI
> > (03:36:50) azeem: it's definetely not public domain
>
> To me "Use, distribute, and modify this code freely" sounds very much
> like a BSD-style license. When it comes to distribution of modified
> works, I believe the "freely" covers that one.
This I am in agreement with you. I'll argue that it is BSD style.
>
> > *** Important Notice 1
> > Many source files from doom contain the original license
> > terms from before id Software mass-relicensed doom under
> > the GNU GPL v2 or later. These files are used under the
> > terms of the GNU GPL v2 or later.
> > ***
>
> Yes. jDoom sources should be updated to say that they are now under
> the GNU GPL v2 license.
Thank you. I'll remove that notice once all files are correctly
described.
>
> > The following files are under the FMOD license: > Problem: Non-free for Commerical Use
> > ./Src/Unix/sys_musd_fmod.c
>
> This is correct. Use of the FMOD API in a commercial product is a
> breach of the FMOD EULA. However, FMOD can easily be omitted from the
> Linux distribution if this is a problem.
I'll investigate this, however, it is no bigger issue the the Raven
licensed portion, and results in much less functionality loss if
removed.
Regards,
Yagisan
To: Jaakko Keränen
Cc: Danij
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Fri, 31 Mar 2006 01:42:11 +1100
On Thu, 2006-03-30 at 17:01 +0300, Jaakko Keränen wrote:
> On Mar 30, 2006, at 04:41, Danij wrote:
> > @ I would imagine the polyobject code used in Doomsday is also
> > derived from that used in the original Hexen source release.
>
> I think at least the majority of the polyobj code in Doomsday is
> written by me, including how they are rendered and controlled in
> netgames. In jHexen, the only game where polyobjs are currently
> available, the code in the jHexen lib is used for doing the actual
> manipulation of the polyobjs.
>
> The polyblocklinks (or something like that) code is taken directly
> from Hexen, though.
>
Skyjake,
OK, I see. This sounds like something that needs a file split like DaniJ
mentioned he was doing. Are there any others like this that you can
think of ?
Regards,
Yagisan
To: Danij
Cc: Jaakko Keränen
Subject: Re: Doomsday Copyright Notices. (deng-1.9.0beta3)
Date: Fri, 31 Mar 2006 01:42:14 +1100
On Thu, 2006-03-30 at 02:41 +0100, Danij wrote:
G'Day DaniJ
> Hi Yagisan,
>
> One of my goals for the 1.9.0 release is to try and clear up the license
> issues somewhat. This means going through each file used in the deng
> project be it data file in end distrobution or original source files for the
> packages themselves.
>
> You'll notice I have began seperating some source files which would
> be technically covered by multiple (non-compatible) licenses into
> seperate files which can be licensed as a whole under one (or more)
> compatible licenses.
Thank you for bringing this to my attention. I was planning on auditing
1.9.0beta3, then diffing against 1.9.0beta4 and updating the new files.
Where possible, I'll try to help with this.
>
> The reality of the current codebase is that there IS code in the engine
> that would be covered under the Hexen license...
Skyjakes mail confirms this is exists for some polyobject related stuff.
> This would present a problem in an attempt to package the deng
> project, as it stands, in manner suitable for distribution under Ubuntu.
Correct. It shoots a gaping hole in my argument. Ubuntu applies the same
guidelines as Debian for distribution software, and Doom Legacy is to be
removed because it failed an audit like this. As it doesn't use a plugin
structure, it can't be included until the offending code is re-licensed
or rewritten.
>
> Some notes:
> AFAIK the only code copyright to Randy Heit (under a BSD style
> license) is that used in the dpDehReader plugin.
>
> Similarly, the only code copyright to Andrew Apted (et all, eg Lee
> Killough) is that used in the dpMapLoader plugin.
Yes, Randy Heit has 1 file, Andrew Apted is glbsp, mine is in the manual
page and various glue scripts for ubuntu/debian-based systems and all
packaging. I still am required to list all authors, and the year of
copyright, even if it is just 1 file. I actually went through every .c
and .h file I listed, although I admit I made an educated guess on the
licenses of files with no information in them.
It is your comment that Lee Killough contains copyright in glbsp that
made me realise I may have misunderstood some of the "Based on" comments
- obviously they are meant to convey that it originally used code from
that person/corporation and not that it was written to function like
code by said person/corporation. I may need to check those files with
you or Skyjake to double check if it is a rewrite, or has original code.
Regards,
Yagisan
remains.</blockquote>
In that case we should go through the source files for the network code and remove comments such as "Based on Hexen's network code" as this is no longer the case.
<blockquote>The polyblocklinks (or something like that) code is taken directly
from Hexen, though.</blockquote>
In that case the polyblocklinks code should be collected into a new source file and marked up with the correct license (Hexen's).
It will need to be rewritten before Doomsday can be distributed under Ubuntu. This shouldn't be too much work though as they are only used currently in the line-o-sight code and other iterators (clientside collision/movement prediction).
A bigger problem is the fact that some code currently used in the engine does appear to have come directly from Hexen however it is not clearly identified as such. Instead it appears in source files apparently covered as a whole by the GNU GPL
license stated in the header comments.
This code needs to be identified and if the license is not compatible with that in the header (eg Hexen derived code in a file claiming to be GNU GPL) it should be split to a new source file to await rewritting.
Yagisan - Your list of authors copyright does not seem complete to me. I would suggest you do a search of the source for all instances of "Copyright" to see what other names you uncover.
The code that springs to mind would be:
<ul>
<li>Huffman compression is used with network data packets.</li>
<li>Various routines used for the hq2x texture filtering.</li>
<li>A couple of routines used for file CRC.</li>
<li>I remember various algorithms used for geometric math are not the deng project authors' copyright.</li>
</ul>
I agree, I also though the list was small, but the word copyright is missing from many files. As I go through it again, I'll add people listed in "Based On" to the list of copyright holders.
At present, I've been going though the beta3 release (beta4 FTBFS due to missing files etc)
I'm thinking I should make a few categories,
Known BSD (has a BSD or BSD like copyright notice)
Possible BSD (no copyright notice, but context suggests may be BSD)
Known GPL
Possible GPL
Known Hexen
Possible Hexen
Other Licenses
Mixed Licenses
I'll try to go through a few files per day to create the list.
This should now be resolved. Using SVN to get the latest code from the branch-1-9-0 branch - I can compile a working Doomsday engine plus all libs.
<blockquote>At present, I've been going though the beta3 release</blockquote>
If possible I would suggest you use the latest code from branch-1-9-0 in SVN.
There has been a significant amount of code moved around since the beta3 source package was built. I've already began spliting various source files apart, moving code around and applying correct headers where missing/invalid.
Incidently, I've began rewriting some of the code currently used by jHeretic (using code taken from jDoom as a base) in preperation for commonising (all games share the same code moved under Src/Common) so that there will be no license issues with any newly commonised code. You'll notice a couple of files in the jHeretic beta4 source that include a comment in the header denoting their new status and I've applied the (old) Doom source license to them.
Currently some of the code in Src/Common does prove a problem in determining it's origins. Src/Common/game.c would be the main problem and there are currently some routines in Src/Common/p_start.c which are from Hexen.
<li>CRC: (C) 1986 Gary S. Brown. You may use this program, or code or tables extracted from it, as desired without restriction.</li>
<li>Huffman: I wrote this from scratch.</li>
<li>hq2x: Maxim Stepin (maxst@hiend3d.com), GNU GPL v2.</li>
<li>Math routines, which specifically?</li>
</ul>
This should now be resolved. </blockquote> Except that the Linux build scripts aren't up to date at the moment.
As of svn revision 2999 it's not.
<blockquote>Except that the Linux build scripts aren't up to date at the moment.</blockquote>
If by this you mean autoconf and friends I do that at build time to make sure I have the right auto-foo for Ubuntu.
<blockquote>Math routines, which specifically?</blockquote>I'll check... ...I can't seem to find the ones I'm thinking of, ignore me.
<blockquote>As of svn revision 2999 it's not.</blockquote>Which files are being reported as apparently missing?
It fails with this message.
<code>../../../Include/jHeretic/p_pspr.h:37:18: error: info.h: No such file or directory</code>
When configure is called with --without-jheretic it then fails with
<code>doomsday-p_data.o: In function `P_Init':../../Src/p_data.c:345: undefined reference to `P_InitMapDataFormats'
doomsday-p_data.o: In function `P_LoadMap':../../Src/p_data.c:436: undefined reference to `P_LoadMapData'
doomsday-p_data.o: In function `P_Init':../../Src/p_data.c:346: undefined reference to `P_InitMapUpdate'
collect2: ld returned 1 exit status
rm -f .libs/doomsdayS.o
make[3]: *** [doomsday] Error 1</code>
<blockquote>When configure is called with -without-jheretic it then fails with</blockquote>
Those functions are declared in the headers p_arch.h and p_dmu.h, these should be included by the de_play.h header.
<blockquote>Except that the Linux build scripts aren't up to date at the moment.</blockquote>
If by this you mean autoconf and friends I do that at build time to make sure I have the right auto-foo for Ubuntu.</blockquote> I mean that <tt>Src/Makefile.am</tt> and the games' Makefile.am's have not been updated with the new/renamed source files. Which causes the linking problems.
The former is supposed to be a template (created by me, using info extracted from Ravenlic.txt) for files containing material covered by the Heretic/Hexen limited use license.
Can you guys take a look at it and see if there is any futher info you think should be added to the header (from Ravenlic.txt or other).
The latter is the standard GNU GPL ver 2 license with a pre-applied notice of copyright to id software.
It is my intention that these templates are to be used on any source code files covered under the respective license. So we can use them to mark up any files in the current deng source tree as such.
<blockquote>
LICENSE CONDITIONS.
You shall not:
* Exploit this Program or any of its parts commercially.
* Use this Program, or permit use of this Program, on more than one
computer, computer terminal, or workstation at the same time.
* Make copies of this Program or any part thereof, or make copies of
the materials accompanying this Program.
* Use the program, or permit use of this Program, in a network,
multi-user arrangement or remote access arrangement, including any
online use, except as otherwise explicitly provided by this Program.
* Sell, rent, lease or license any copies of this Program, without
the express prior written consent of Activision.
* Remove, disable or circumvent any proprietary notices or labels
contained on or within the Program.</blockquote>
I know it seems redundant, but it makes it clear to others that it is not gpl compatable.
I'll add these conditions to Src/template_raven.c
<blockquote>Linking ABC statically or dynamically with other modules is making a combined work based on ABC. Thus, the terms and conditions of the GNU General Public License cover the whole combination.
In addition, as a special exception, the copyright holders of ABC give you permission to combine ABC program with free software programs or libraries that are released under the GNU LGPL and with independent modules that communicate with ABC solely through the ABCDEF interface. You may copy and distribute such a system following the terms of the GNU GPL for ABC and the licenses of the other code concerned, provided that you include the source code of that other code when and as the GNU GPL requires distribution of source code.
Note that people who make modified versions of ABC are not obligated to grant this special exception for their modified versions; it is their choice whether to do so. The GNU General Public License gives permission to release a modified version without this exception; this exception also makes it possible to release a modified version which carries forward this exception.</blockquote>
<blockquote> In addition, as a special exception, we, the authours of deng give permission to link the code of our release of deng with the libjhexen and/or the libjheretic libraries (or with modified versions of it that use the same license as the libjhexen or libjheretic libraries), and distribute the linked executables. You must obey the GNU General Public License in all respects for all of the code used other than "libjhexen or libjheretic". If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. </blockquote>
If there are no objections, I'll add it to the gpl template in a few days, then start preparing a list of files that need the templates applied.