Bug 432033

Summary: Review Request: crystalspace - Crystal Space a free 3D engine
Product: [Fedora] Fedora Reporter: Hans de Goede <hdegoede>
Component: Package ReviewAssignee: Mamoru TASAKA <mtasaka>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, mtasaka, notting
Target Milestone: ---Flags: mtasaka: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-20 10:38:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 432185, 432335    
Bug Blocks: 432034    
Attachments:
Description Flags
License check list for crystalspace none

Description Hans de Goede 2008-02-08 14:55:37 UTC
Spec URL: http://people.atrpms.net/~hdegoede/crystalspace.spec
SRPM URL: http://people.atrpms.net/~hdegoede/crystalspace-1.2-2.fc9.src.rpm
Description:
Crystal Space is a free (LGPL) and portable 3D SDK
written in C++.

Comment 1 Mamoru TASAKA 2008-02-08 17:25:43 UTC
Only just tried to build, but after some long time it failed
only on ppc??

http://koji.fedoraproject.org/koji/taskinfo?taskID=403509

Comment 2 Hans de Goede 2008-02-09 14:24:24 UTC
Hmm, it fails with an assembler syntax error while assembling code generated by
g++ -> toolchain bug. I've filed bug 432185 for this.


Comment 3 Hans de Goede 2008-02-09 15:07:09 UTC
If possible I would like to continue with the review of this, if bug 432185
doesn't have a fix in sight when the review is completed I'll just add
ExcludeArch ppc for now.


Comment 4 Mamoru TASAKA 2008-02-09 15:16:04 UTC
Well, I want to review this, however if you want me to review this
package please wait until I write comments on other (about) 5-6
review requests... (and perhaps I will go to bed in one or two hours)

BTW I am reviewing bug 426492 , however this fails to rebuild
with gcc43 on many points and I would appreciate it if you would
help me fixing the source codes.

Comment 5 Hans de Goede 2008-02-09 15:29:09 UTC
(In reply to comment #4)
> BTW I am reviewing bug 426492 , however this fails to rebuild
> with gcc43 on many points and I would appreciate it if you would
> help me fixing the source codes.

Okay, I've downloaded the srpm (link in the review is broken btw) and I'm
working on fixing this with gcc-4.3 now. Feel free to drop requests like this to
me more often, I think you're doing an _awesome_ job with all those reviews and
I'm always happy to help out where I can.


Comment 6 Mamoru TASAKA 2008-02-10 12:52:48 UTC
Hans, I noticed today that:
(note: I always enable "koji static-repos" repo)

[root@localhost ~]# yum check-update
.... skip ........
xerces-c.i386                            2.8.0-1.fc9            koji-rawhide    
xerces-c-devel.i386                      2.8.0-1.fc9            koji-rawhide    
....................
[root@localhost ~]#  Resolving Dependencies
--> Running transaction check
---> Package xerces-c-devel.i386 0:2.8.0-1.fc9 set to be updated
---> Package xerces-c.i386 0:2.8.0-1.fc9 set to be updated
--> Processing Dependency: libxerces-c.so.27 for package: cegui
--> Finished Dependency Resolution
cegui-0.5.0b-6.fc8.i386 from installed has depsolving problems
  --> Missing Dependency: libxerces-c.so.27 is needed by package
cegui-0.5.0b-6.fc8.i386 (installed)
Error: Missing Dependency: libxerces-c.so.27 is needed by package
cegui-0.5.0b-6.fc8.i386 (installed)

We have to update cegui first (as this package has cegui-devel
as BR)

Currently cegui build on rawhide fails as:
http://koji.fedoraproject.org/koji/taskinfo?taskID=411388

Comment 7 Mamoru TASAKA 2008-02-14 07:07:48 UTC
For 1.2-2:

A. spec file issue
* scriptlet output
  - I guess that (although I could not find where it is written)
    Fedora requests that scriptlet output must be quiet.

    For now -utils %post scriptlets shows a lot of output messages.
    If you want to keep these messages IMO these should be redirected
    to some log file.

* Directory ownership issue
  - My directory check shows (I have not installed -doc subpackage)
----------------------------------------------------------------
[tasaka1@localhost crystalspace]$ grep package DIR-check.log | grep any
/usr/share/doc/crystalspace-1.2/LICENSE         crystalspace-1.2-2.1.fc9       
        file /usr/share/doc/crystalspace-1.2 is not owned by any package
/usr/share/doc/crystalspace-1.2/README          crystalspace-1.2-2.1.fc9       
        file /usr/share/doc/crystalspace-1.2 is not owned by any package
/usr/share/doc/crystalspace-1.2/history.old             crystalspace-1.2-2.1.fc9
               file /usr/share/doc/crystalspace-1.2 is not owned by any package
/usr/share/doc/crystalspace-1.2/history.txt             crystalspace-1.2-2.1.fc9
               file /usr/share/doc/crystalspace-1.2 is not owned by any package
/usr/share/doc/crystalspace-1.2/history_1.2.txt         crystalspace-1.2-2.1.fc9
               file /usr/share/doc/crystalspace-1.2 is not owned by any package
----------------------------------------------------------------

* Multilib issue
  - I don't know how we should deal with multilib issue (no, I REALLY
    don't know!!), however
    at least %_bindir/cs-config-1.2 causes multilib conflict.
----------------------------------------------------------------
[tasaka1@localhost bin]$ diff -u /usr/bin/cs-config-1.2 ./cs-config-1.2 
--- /usr/bin/cs-config-1.2      2008-02-14 13:47:02.000000000 +0900
+++ ./cs-config-1.2     2008-02-14 13:41:13.000000000 +0900
@@ -26,7 +26,7 @@
 do
   prefix="${p}"
   exec_prefix="${prefix}"
-  makeout="./out/linuxx86/debug"
+  makeout="./out/linux/debug"
   version="1.2"
   longversion="crystalspace 1.2"
   newincdir=""
@@ -92,7 +92,7 @@
     case $1 in
         -lcrystalspace-1.2) DEPS=" -lpthread -lpthread -lz" ;;
         -lcrystalspace_opengl-1.2) DEPS=" -lcrystalspace-1.2 -lGL -lXext -lX11
-lX11 -lXext -lpthread -lm" ;;
-        -lcrystalspace_python-1.2) DEPS=" -lcrystalspace-1.2
-L/usr/lib/python2.5 -lpython2.5 -lpthread -ldl -lutil -lm -lpthread" ;;
+        -lcrystalspace_python-1.2) DEPS=" -lcrystalspace-1.2
-L/usr/lib64/python2.5 -lpython2.5 -lpthread -ldl -lutil -lm -lpthread" ;;
         -lcrystalspace_staticplugins-1.2) DEPS="" ;;
 
        *)
-----------------------------------------------------------------
    Someone says that on -devel subpackage multilib confilct must be
    avoided.

* Dependency for -devel subpackage
  - Please check the dependency for -devel subpackage.
    Example:
    - From /usr/include/crystalspace-1.2/csplugincommon/opengl/glcommon2d.h :
-----------------------------------------------------------------
    26  #if defined(CS_OPENGL_PATH)
    27  #include CS_HEADER_GLOBAL(CS_OPENGL_PATH,gl.h)
    28  #else
    29  #include <GL/gl.h>
    30  #endif
-----------------------------------------------------------------
    - /usr/include/crystalspace-1.2/ivideo/wxwin.h has #include <wx/wx.h>
    - And some others.

? Timestamps
  - This rpm installs many "non-built" files and keeping timestamps on
    them are generally desirable. Would you try to keep timestamps on
    installed files as much as possible?
    (usually adding INSTALL="install -p" works, at least on recent
     autotool-based Makefiles)

!!
  For license issues, I will check it later (as the tarball contains more than
  10000 files, which is the largest number I have ever reviewed)

!!
  Again currently crystalspace does not build due to missing dep for hal :(
  http://koji.fedoraproject.org/koji/taskinfo?taskID=425708
  Simply rebuilding hal against new libsmbios seems good
  http://koji.fedoraproject.org/koji/taskinfo?taskID=425729

Comment 8 Hans de Goede 2008-02-14 16:07:35 UTC
(In reply to comment #7)
> For 1.2-2:
> 
> A. spec file issue
> * scriptlet output
>   - I guess that (although I could not find where it is written)
>     Fedora requests that scriptlet output must be quiet.
> 
>     For now -utils %post scriptlets shows a lot of output messages.
>     If you want to keep these messages IMO these should be redirected
>     to some log file.
> 

I didn't silence this to check it went ok during development, silenced now.

> * Directory ownership issue
>   - My directory check shows (I have not installed -doc subpackage)

Fixed


> * Multilib issue
>   - I don't know how we should deal with multilib issue (no, I REALLY
>     don't know!!), however
>     at least %_bindir/cs-config-1.2 causes multilib conflict.

Fixed


> * Dependency for -devel subpackage
>   - Please check the dependency for -devel subpackage.
>     Example:
>     - From /usr/include/crystalspace-1.2/csplugincommon/opengl/glcommon2d.h :
> -----------------------------------------------------------------
>     26  #if defined(CS_OPENGL_PATH)
>     27  #include CS_HEADER_GLOBAL(CS_OPENGL_PATH,gl.h)
>     28  #else
>     29  #include <GL/gl.h>
>     30  #endif
> -----------------------------------------------------------------
>     - /usr/include/crystalspace-1.2/ivideo/wxwin.h has #include <wx/wx.h>

Hmm, thats optional better to not frag in wx for people who use crystalspace
without wx.

Otherwise Fixed.

> ? Timestamps
>   - This rpm installs many "non-built" files and keeping timestamps on
>     them are generally desirable. Would you try to keep timestamps on
>     installed files as much as possible?
>     (usually adding INSTALL="install -p" works, at least on recent
>      autotool-based Makefiles)
> 

This does not use regular makefiles but jam, which I've been fighting all the
way to stop it from using custom CFLAGS, so I see no sane way to fix this.

New version:
Spec URL: http://people.atrpms.net/~hdegoede/crystalspace.spec
SRPM URL: http://people.atrpms.net/~hdegoede/crystalspace-1.2-3.fc9.src.rpm


Comment 9 Mamoru TASAKA 2008-02-15 17:35:09 UTC
For 1.2-3:

* As I wrote some missing dependency for -devel subpackage as "Example",
  it seems that there are some more missing dependencies for -devel package
  - cegui-devel
  - zlib-devel
  (I guess adding more 2 BR listed above should be enough)

* It seems that adding INSTALL="install -p" to make install actually works
  http://koji.fedoraproject.org/koji/taskinfo?taskID=426911

! This weekend I will try to check license issues (if any) for this
  package (more than 10000 files needs checking)

Comment 10 Mamoru TASAKA 2008-02-16 12:07:54 UTC
Created attachment 295066 [details]
License check list for crystalspace

(For non-legal issue, please see my previous comments)
Note:
Unless you specify license tag for subpackages, subpackages
inherits license tag from main package.
For example, currently -doc subpackage has
"License: LGPLv2+ and GPLv2+ and GPLv2".

Legal issue:

GPLv2:
GPLv2/apps/import/maya2spr/binarytree.cpp
  -> maya2spr (in -utils) is GPLv2
GPLv2/scripts/max/exportcsp.mcr
GPLv2/scripts/max/exportlights.mcr
GPLv2/scripts/max/exportsprite.mcr
GPLv2/scripts/max/fixmaterials.mcr
GPLv2/scripts/max/sanitycheck.ms
GPLv2/scripts/max/showMap.mcr
  -> all these files (in -utils) are GPLv2

GPLv2+:
GPLv2+/apps/tests/ceguitest/ceguitest.cpp
GPLv2+/apps/tests/ceguitest/ceguitest.h
  -> ceguitest (in -demos) is GPLv2+
GPLv2+/libs/csplugincommon/sndsys/
  -> libcrystalspace-1.2.so (in main) is GPLv2+ (not LGPLv2+)
-----------------------------------------------------------------------------
  1810	  echo './out/linuxx86/debug/libs/cstool/memory_pen.o@'
'./out/linuxx86/debug/libs/cstool/csfxscr.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/scrshot.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/x11-keys.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/cursorconvert.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/softfontcache.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/fontcache.o@'
'./out/linuxx86/debug/libs/csplugincommon/canvas/graph2d.o@'
'./out/linuxx86/debug/libs/csplugincommon/imageloader/commonimagefile.o@'
'./out/linuxx86/debug/libs/csplugincommon/imageloader/optionsparser.o@'
'./out/linuxx86/debug/libs/csplugincommon/particlesys/partgen.o@'
'./out/linuxx86/debug/libs/csplugincommon/render3d/txtmgr.o@'
'./out/linuxx86/debug/libs/csplugincommon/render3d/normalizationcube.o@'
'./out/linuxx86/debug/libs/csplugincommon/renderstep/parserenderstep.o@'
'./out/linuxx86/debug/libs/csplugincommon/renderstep/basesteptype.o@'
'./out/linuxx86/debug/libs/csplugincommon/renderstep/basesteploader.o@'
'./out/linuxx86/debug/libs/csplugincommon/script/scriptcommon.o@'
'./out/linuxx86/debug/libs/csplugincommon/shader/shaderprogram.o@'
'./out/linuxx86/debug/libs/csplugincommon/sndsys/convert.o@'
'./out/linuxx86/debug/libs/csplugincommon/sndsys/cyclicbuf.o@'
'./out/linuxx86/debug/libs/csplugincommon/sndsys/sndstream.o@'
'./out/linuxx86/debug/libs/csplugincommon/sndsys/snddata.o@' | sed 's/@ /@/g' |
tr '@' '
  1811	' >> ./out/linuxx86/debug/libs/libcrystalspace-1.2.so.resp
  1812	
  1813	
  1814	  g++ -Wl,--as-needed -shared -o
./out/linuxx86/debug/libs/libcrystalspace-1.2.so
-Wl,@./out/linuxx86/debug/libs/libcrystalspace-1.2.so.resp  -lm -ldl -lnsl
-Wl,-z,defs -Wl,--warn-unresolved-symbols -Wl,-E -g3 -lpthread -lpthread -lz
-lm -ldl -lnsl -Wl,-z,defs -Wl,--warn-unresolved-symbols -Wl,-E -g3 \
  1815	    -Wl,-soname,libcrystalspace-1.2.so
-----------------------------------------------------------------------------
GPLv2+/plugins/sndsys/element/
  -> sndsysXXX.so (in main) is GPLv2+
GPLv2+/plugins/utilities/movierecorder/
  -> movierecorder.so (in main) is GPLv2+ (not GPLv2)
GPLv2+/scripts/jamtemplate/createproject.sh
  -> createproject.sh (in -devel) is GPLv2+

Check for GPLv2+ pollution
root:
GPLv2+/include/csplugincommon/sndsys/snddata.h ->
LGPLv2+/include/csplugincommon.h:#include "csplugincommon/sndsys/snddata.h" ->
LGPLv2+/include/crystalspace.h:#include "csplugincommon.h" ->
File_C_or_C++/plugins/cscript/pycscegui/cs_cegui.cpp:#include "crystalspace.h"
File_C_or_C++/plugins/cscript/csperl5/cswigpl5.cpp:#include "crystalspace.h"
LGPLv2+/apps/tools/genmeshify/converter.cpp:#include "crystalspace.h"
LGPLv2+/apps/tools/genmeshify/genmeshify.cpp:#include "crystalspace.h"
LGPLv2+/apps/tools/genmeshify/processor.cpp:#include "crystalspace.h"
LGPLv2+/apps/tools/genmeshify/stdloadercontext.cpp:#include "crystalspace.h"
LGPLv2+/apps/tools/startme/startme.h:#include <crystalspace.h>
LGPLv2+/apps/tools/lighter2/common.h:#include "crystalspace.h"
LGPLv2+/apps/tools/basemapgen/basemapgen.h:#include "crystalspace.h"
LGPLv2+/apps/tools/heightmapgen/heightmapgen.h:#include "crystalspace.h"
LGPLv2+/apps/tools/partconv/partconv.cpp:#include "crystalspace.h"
( -----------------
LGPLv2+/apps/walktest/walktest.cpp:#include "crystalspace.h"
LGPLv2+/apps/pysimp/pysimp.h:#include <crystalspace.h>
LGPLv2+/apps/tests/imptest/imptest.h:#include <crystalspace.h>
LGPLv2+/apps/tests/eventtest/eventtest.h:#include <crystalspace.h>
LGPLv2+/apps/tests/sndtest/sndtest.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/pathtut/pathtut.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simpcd/simpcd.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simple2/simple2.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/mazing/gamestuff.cpp:#include <crystalspace.h>
LGPLv2+/apps/tutorial/mazing/appmazing.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simplept/simplept.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/phystut/phystut.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simpmap/simpmap.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simpvs/simpvs.h:#include <crystalspace.h>
LGPLv2+/apps/tutorial/simple1/simple1.h:#include <crystalspace.h>
------------- can be killed )
-> _pycscegui.so (in crystalspace-devel) is polluted
-> Some files in -utils are also polluted

GPLv2+/include/csplugincommon/sndsys/sndstream.h ->
LGPLv2+/include/csplugincommon.h:#include "csplugincommon/sndsys/sndstream.h"
(-> same above)

GPLv2+/include/ivaria/movierecorder.h ->
LGPLv2+/include/ivaria.h:#include "ivaria/movierecorder.h" ->
(-> not pollute any more)

Summary
main  : LGPLv2+ and GPLv2+
-utils: LGPLv2+ and GPLv2+ and GPLv2
-demos: LGPLv2+ and GPLv2+
-devel: LGPLv2+ and GPLv2+
-doc:	????

Comment 11 Mamoru TASAKA 2008-02-17 04:33:37 UTC
Ah... as libcrystalspace-1.2.so is polluted by GPLv2+,
the tag "LGPLv2+" seems almost nonsense.

Comment 12 Hans de Goede 2008-02-17 16:55:26 UTC
(In reply to comment #9)
> For 1.2-3:
> 
> * As I wrote some missing dependency for -devel subpackage as "Example",
>   it seems that there are some more missing dependencies for -devel package
>   - cegui-devel
>   - zlib-devel
>   (I guess adding more 2 BR listed above should be enough)
> 

Sorry, I missunderstood. I did a full check and couldn't find any other headers
besides the 2 above which I've added

> * It seems that adding INSTALL="install -p" to make install actually works
>   http://koji.fedoraproject.org/koji/taskinfo?taskID=426911
> 

Strange as the makefile is justb a skeleton calling jam, but if it works thats
good! Added.

> ! This weekend I will try to check license issues (if any) for this
>   package (more than 10000 files needs checking)

Okay, about your analysis, I agree, except that the movierecorder plugin really
is GPLv2 and not GPLv2+, as it includes (and uses) the nuppelvideo.h file which
says:
/* This file is from the NuppelVideo project:
 *
 * (c) Roman Hochleitner roman.ac.at
 * NuppelVideo is distributed under the GNU GENERAL PUBLIC LICENSE version 2
 */

This makes the list:
main  : GPLv2+ and GPLv2
-utils: GPLv2+ and GPLv2
-demos: GPLv2+
-devel: GPLv2+
-doc:	????

So to make things easier, esp the ????, I've just added a License tag of:
"GPLv2+ and GPLv2" to the main package, and let all the subpackages inherent
this. I've added a large comment above the main License tag explaining why it is
what it is. Also I will contact upstream about this, as I believe they intend
the core of crystalspace to be LGPL not GPL.

Here is a new (hopefully the last) version:
Spec URL: http://people.atrpms.net/~hdegoede/crystalspace.spec
SRPM URL: http://people.atrpms.net/~hdegoede/crystalspace-1.2-4.fc9.src.rpm


Comment 13 Mamoru TASAKA 2008-02-17 17:07:50 UTC
Thanks I will check this after rebuilding this on koji again.

By the way I will appreciate it if you would review my review request
bug 433182 (IMO very simple)

(In reply to comment #12)
> Also I will contact upstream about this, as I believe they intend
> the core of crystalspace to be LGPL not GPL.
I guess so.


Comment 14 Mamoru TASAKA 2008-02-18 11:24:22 UTC
Okay.

------------------------------------------------------------------------
   This package (crystalspace) is APPROVED by me
------------------------------------------------------------------------

Comment 15 Hans de Goede 2008-02-18 21:59:07 UTC
Thanks for the review!

New Package CVS Request
=======================
Package Name:      crystalspace
Short Description: Crystal Space a free 3D engine
Owners:            jwrdegoede
Branches:          F-8
InitialCC: 
Cvsextras Commits: Yes


Comment 16 Kevin Fenzi 2008-02-19 17:27:25 UTC
cvs done.

Comment 17 Hans de Goede 2008-02-20 10:38:05 UTC
Imported, build and Fedora 8 update requested in bodhi, closing.