Doomsday Copyright Notices

edited 2006 May 14 in Developers
<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

Comments

  • From: Danij
    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
  • From: Jaakko Keränen
    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-=-
  • From: Jaakko Keränen
    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-=-
  • From: Jamie Jones
    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
  • From: Jamie Jones
    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
  • From: Jamie Jones
    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
  • <blockquote>The network code has been completely rewritten. No code from Hexen
    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>
  • <blockquote>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.</blockquote>
    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.
  • <blockquote>(beta4 FTBFS due to missing files etc)</blockquote>
    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.
  • <blockquote>The code that springs to mind would be:</blockquote><ul>
    <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>
  • <blockquote>(beta4 FTBFS due to missing files etc)

    This should now be resolved. </blockquote> Except that the Linux build scripts aren't up to date at the moment.
  • <blockquote>This should now be resolved.</blockquote>
    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>Huffman: I wrote this from scratch.</blockquote>My mistake in that case, I thought it had originated from elsewhere.
    <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?
  • <blockquote>Which files are being reported as apparently missing?</blockquote>
    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>../../../Include/jHeretic/p_pspr.h:37:18: error: info.h: No such file or directory</blockquote>There was a mix up in case with the filename to include, it should be Info.h not info.h (fixed in SVN).
    <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>
  • <blockquote><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.
  • I've just added <tt>Src/template_raven.c</tt> and <tt>Src/template_gnuv2_id.c</tt> to SVN.

    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.
  • I think Src/template_raven.c should include this summary from the Ravenlic.txt

    <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.
  • You exemplify a good point in that currently the header of Src/template_raven.c reads similarly to the GNU V2 header. Without KNOWING the Raven license one could wrongly assume by that header that it is GPL compatible.

    I'll add these conditions to Src/template_raven.c
  • I've had some further discusiions with some of the Ubuntu maintainers with regards to licenscing issues, and have been advised, that we should add an exemption to the gpl covered work, to allow linking it with any raven licensed code. This exception should look something like this.
    <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>
  • Thinking about it, I feel the abouve is too broad and we are better suited with the following
    <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.
  • Template updated with the exception for libjheretic and libjhexen
Sign In or Register to comment.