Menu

#236 Unclear License of sc_man.c, i_simd.c and i_simd.h

v2.2.6.*
open
nobody
None
5
2014-01-27
2013-11-07
No

Hello. I'm trying to introduce the prboom-plus engine in Fedora Linux and we ancountered a licensing issue in case of the following 3 source files:

sc_man.c - Raven Software, Corp.
i_simd.c - Copyright (C) 2004 Id Software, Inc.
i_simd.h - Copyright (C) 2004 Id Software, Inc.

The i_simd.* sources can be removed locally as the code is not compiled into binary form on Linux, but the sc_man.c code needs some clarification. If the code author allowed relicensing under the GPL, then change the header statement, please.

The following file contains a list of all licenses detected in the headers.

https://bugzilla.redhat.com/attachment.cgi?id=819952

The following licenses were detected in the 2.5.1.3 version:
- BSD (3 clause)
- GPL (v2 or later) (with incorrect FSF address)
- LGPL (v2.1 or later) (with incorrect FSF address)
- MIT/X11 (BSD like)
- Public domain
- Unknown or generated

It would be nice if someone responsible for the product licensing could fix the statements in the file headers (according to the bugzilla attachement).

Thanks in advance.

Discussion

  • Andrey Budko

    Andrey Budko - 2013-11-07

    Also you can try to contact with "fabian" on DoomWorld.com. He made much stuff for the latest test build for making prboom+ really free. He wants to introduce prboom+ in Debian.

     

    Last edit: Andrey Budko 2013-11-07
  • Fabian Greffrath

    Hi Jaromir and Andrey,

    Also you can try to contact with "fabian" on DoomWorld.com

    I am also "fabian_deb" here on sourceforge, if that is easier for you.

    He made much stuff for the latest test build for making prboom+ really free.
    He wants to introduce prboom+ in Debian.

    Well, that has already been achieved. prboom-plus is part of Debian main since 2013-08-08:

    http://packages.qa.debian.org/p/prboom-plus.html
    (on that page you will find further ways to contact me, if needed)

    You can find the results of my (mostly manual) copyright and license review here:

    http://ftp-master.metadata.debian.org/changelogs/main/p/prboom-plus/unstable_copyright

    I have, however, decided to rip some files out of the source tree before packaging. This affects mostly pre-rendered text strings and wolf-3d sprites and sounds in the data/ directory, which were generated from non-GPL material - to say the least. Please find my repackaging script (and the rest of the Debian packaging) here:

    http://anonscm.debian.org/gitweb/?p=pkg-games/prboom-plus.git

    (site is currently down for maintenance, though)

    To remain on topic, generally, if there is a COPYING or LICENSE file in the source root directory, I interpret this license to apply to all files in that source unless declared otherwise.

     
  • Jaromír Cápík

    Hello guys.

    The AUTHORS file contains a nice license clarification that says the doom sources were re-licensed under the GPL in 1999. That means it covers the 3 mentioned files too. The only issue with this process is that some of the file headers still contain the old license statement and as it sometimes happens, that the re-licensing is not authorized, this could cause confusions in the future.
    File headers should ALWAYS match the license mentioned in the COPYING/LICENSE. If more licenses are applicable, then ALL of them should have a corresponding LICENSE-whateverlicense file in the root tree (example LICENSE-GPLv2, LICENSE-MIT, LICENSE-BSD, etc.)

    You should put the GPL license statement in the headers of ALL GPL licensed source files which support comments. The next problem might be the double-licensing. Some of the headers contain two license statements (BSD and GPL). I know it might sound like an unimportant and uninteresting stuff, but trust me, it isn't. It can reliably deny the distribution maintainers to include your engine in their distros. And that would be pity, right? :]

    Thanks,
    Jaromir.

     
  • Jaromír Cápík

    Andrey ... it isn't difficult to fix the headers ... you can take the statements from other files in some cases, but it's always better to check for the latest statement templates as they sometimes contain updated info like adresses, etc.

    Example:

    1.) GPLv2 statement with old and invalid FSF address (should be replaced with the new statement version):

    • PrBoom: a Doom port merged with LxDoom and LSDLDoom
    • based on BOOM, a modified and improved DOOM engine
    • Copyright (C) 1999 by
    • id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
    • Copyright (C) 1999-2000 by
    • Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
    • Copyright 2005, 2006 by
    • Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
    • This program is free software; you can redistribute it and/or
    • modify it under the terms of the GNU General Public License
    • as published by the Free Software Foundation; either version 2
    • of the License, or (at your option) any later version.
    • This program is distributed in the hope that it will be useful,
    • but WITHOUT ANY WARRANTY; without even the implied warranty of
    • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    • GNU General Public License for more details.
    • You should have received a copy of the GNU General Public License
    • along with this program; if not, write to the Free Software
    • Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
    • 02111-1307, USA.

    2.) GPLv2 statement with the correct FSF address (taken from http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

    • PrBoom: a Doom port merged with LxDoom and LSDLDoom
    • based on BOOM, a modified and improved DOOM engine
    • Copyright (C) 1999 by
    • id Software, Chi Hoang, Lee Killough, Jim Flynn, Rand Phares, Ty Halderman
    • Copyright (C) 1999-2000 by
    • Jess Haas, Nicolas Kalkhof, Colin Phipps, Florian Schulze
    • Copyright 2005, 2006 by
    • Florian Schulze, Colin Phipps, Neil Stevens, Andrey Budko
    • This program is free software; you can redistribute it and/or
    • modify it under the terms of the GNU General Public License
    • as published by the Free Software Foundation; either version 2
    • of the License, or (at your option) any later version.
    • This program is distributed in the hope that it will be useful,
    • but WITHOUT ANY WARRANTY; without even the implied warranty of
    • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    • GNU General Public License for more details.
    • You should have received a copy of the GNU General Public License
    • along with this program; if not, write to the Free Software
    • Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
     

    Last edit: Jaromír Cápík 2013-11-18
  • Jaromír Cápík

    Additionally, you can use the following link pointing to the Fedora licensing guide ... you can find all GOOD licenses and their statements there.

    http://fedoraproject.org/wiki/Licensing:Main#Good_Licenses

     

    Last edit: Jaromír Cápík 2013-11-18
  • Jaromír Cápík

    Note: Double licensing might be a problem in the future as some of the licenses are incompatible (for example some versions of GPL and BSD are incompatible). It is not a problem as long as all the modifications are also double-licensed. But when someone decides to do modifications under the GPL only, then it can quickly become a problem. It's unbelievably difficult to track GPL-only changes in scope of one file and the same applies to the modifications (deciding whether a for cycle with modified limits is still GPL-only or BSD is something you REALLY don't want to do ... EVER). If I was you, I would try to get rid of all double-licensed statements if the authors are ok with that.

     

    Last edit: Jaromír Cápík 2013-11-18
  • Fabian Greffrath

    Now that the i_simd.* files have been removed (and as soon as the source compiles again ;) we should try to rebase sc_man.c on the current implementation in chocolate-hexen and then be able to close this ticket.

     
  • Andrey Budko

    Andrey Budko - 2014-01-27

    Rebase? Do you mean just changing header?

     
  • Fabian Greffrath

    Heh, it might in fact come down to this.

    My idea was to compare both implementations and create a minimal diff between them (like I did with that getopt()-implementation from BSD).

     
  • Andrey Budko

    Andrey Budko - 2014-01-27

    Is it enough to copy header and add
    * Copyright(C) 1993-2008 Raven Software
    before
    * Copyright (C) 1999-2000 by

     
  • Fabian Greffrath

    Hm, not sure, I am not a lawyer. However, I would not copy the standard prboom header over, since the file is nor part of Boom, but Hexen. I'd either copy the entire header or even the entire file.

    Have you checked the other differences between both files in prboom-plus and chocolate-hexen?

     
  • Andrey Budko

    Andrey Budko - 2014-01-27

    I have some const, dbooleand instead of boolean and a few help function OpenScriptByName/Num

     
  • Fabian Greffrath

    Right, the const and dboolean differences should be trivial.

    OpenScript does not have void arguments anymore, but does now take a lump name (if type == LUMP_SCRIPT). So it has replaced OpenScriptByNum.
    OpenScriptByName would just be a wrapper around that using W_GetLumpInfoByNum(lump)->name, just as before.

    Shouldn't we just take that file and do the minor adjustments instead of replacing headers?

     
  • Andrey Budko

    Andrey Budko - 2014-01-27

    I don't see much sense to copy that file from chocolate and then replace all things which are already been replaced before :) Four spaces instead of two, const, dboolean, some fixes for making it compatible with prboom sources, etc

     
  • Fabian Greffrath

    Yes, maybe you are right. That wouldn't change the license, anyway.

     

Log in to post a comment.