Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.

Bug 221065

Summary: Review Request: warzone2100 - Innovative 3D real-time strategy
Product: [Fedora] Fedora Reporter: Karol Trzcionka <karlikt>
Component: Package ReviewAssignee: Francois Aucamp <francois.aucamp>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: chris.stone, gauret, lemenkov, mtasaka, sander
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-01-23 15:00:28 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:    
Bug Blocks: 163779    
Attachments:
Description Flags
warzone2100 failed build log for x86_64
none
Log file for failed build on FC5/x86_64 after modifying BuildRequires none

Description Karol Trzcionka 2006-12-31 22:21:43 UTC
Spec URL: http://karlik.nonlogic.org/warzone/warzone2100.spec
SRPM URL: http://karlik.nonlogic.org/warzone/warzone2100-2.0.5-1.src.rpm
Description:
Warzone 2100 was an innovative 3D real-time strategy game back in 1999, and
most will agree it didn't enjoy the commercial success it should have had. The
game's source code was liberated on December 6th, 2004, under a GPL license
(see COPYING in this directory for details). Soon after that, the Warzone 2100
ReDev project was formed to take care of its future.

I am looking for a sponsor.

Comment 1 RafaƂ Psota 2006-12-31 22:54:14 UTC
This is not an official review, I'm looking for a sponsor.

* rpmlint returns only no-documentation in warzone2100-data package
* package and specfile are named well
* package is licensed under GPL (which is included)
* specfile is legible
* source file match upstream
* package successfully build in mock (FC6 i386)- BuildRequires are proper
* no locales
* no duplicates in %files

Comment 2 Mamoru TASAKA 2007-01-06 13:00:38 UTC
Removing NEEDSPONSOR (bug 221349)

Comment 3 Francois Aucamp 2007-01-09 16:48:42 UTC
I'll take this one - am itching to play this game... :-)

Comment 4 Mamoru TASAKA 2007-01-09 16:56:52 UTC
(just adding myself to cc list)

Comment 5 Francois Aucamp 2007-01-09 18:03:31 UTC
Ok, here's the review.

MUST items:
 * rpmlint output:

W: warzone2100-data no-documentation  --- can be ignored, silent otherwise

 * package is named well
 * spec file is named well
 * package meets Packaging Guidelines
!* package license is GPL, COPYING file included, however, see NOTES below
 * License field in spec file matches actual license
 * license file is included in %doc
 * spec file is written in American English and legible
 * package source md5sum matches upstream source:

56e83a64d5b7aa60ced3d7ac7281bb42  warzone2100-2.0.5.tar.bz2

 * package builds successfully on fc6/i386 (built in mock)
 * BuildRequires are good
 * package handles locales properly (no locales)
 * package has no need for %post and %postun sections
 * package is not relocatable
 * package owns directories it creates
 * no duplicate entries in %files
 * file permissions are good
 * proper %clean section
 * spec file macros are used consistently
!* main package contains code, -data subpackage contains what seems to be
   permissable content - see NOTES, below
 * no -doc, -devel subpackages necessary
 * contents in %doc not required for runtime functionality of application
 * .desktop present and properly handled

SHOULD items::
 * package builds in mock (fc6/i386)
 * package functions as described :-)
 * subpackages require the base package using a fully versioned dependency


NOTES:

There is a potential problem with the game's data files; according to upstream
they have contacted the developers to no avail, and released the data as GPL (as
per the README.COPYING file, included in the package).

Personally, I agree with the following from README.COPYING:
"Since in the absence of a license the released data could not be distributed,
we find that interpreting the license for the data as being under the same
license as the source to be the best interpretation to fit the intention behind
the release."

Since the game has no significant game engine (significant==well known,
successful), it is assumed that the GPL-release was done to "let the game live
on", in good spirit; logically, it is therefore quite safe to assume a free
license for the data as well. Further evidence supporting this is the fact that
the game's movies AND the code for the movie player were never actually released
along with the rest of the GPL'ed package (see upstream URL for details);
obviously, these were not supposed to be distributed.

STATUS:

This package meets all the packaging guidelines, but suffers from a slight
"grey-area" concerning the game data.
I am very much inclined to approve this, but in all fairness it needs to be
addressed by someone more schooled in these matters than me. Therefore, I am
postponing approval, and will ask for assistance on fedora-extras. 
Mamoru, any thoughts on this?


Comment 6 Sander Hoentjen 2007-01-09 20:11:29 UTC
Created attachment 145190 [details]
warzone2100 failed build log for x86_64

This failes to build on x86_64

Comment 7 Christopher Stone 2007-01-09 21:07:07 UTC
/usr/include/SDL/SDL_config.h:39:29: error: SDL_config-i386.h: No such file or
directory

It should probably include
/usr/include/SDL/SDL_config-x86_64.h

on x86_64 platforms.


Comment 8 Christopher Stone 2007-01-09 21:15:06 UTC
Here is the problem from configure.ac:
# add some required C flags here
# -DYY_STATIC is required by flex
# -m32 forces 32-bit compile, since code is not clean enough for 64-bit yet
WZ_CFLAGS="${WZ_CFLAGS} -m32 -DYY_STATIC
-DDEFAULT_DATADIR=\\\"${datadir}/warzone2100\\\""

I guess we will have to excludearch x86_64

Comment 9 Karol Trzcionka 2007-01-09 21:15:47 UTC
I can not check it, because I have not x86_64. Probably the warzone2100 must
have ExclusiveArch: i386. My friend will test it (build & play) on x86_64 and I
will fix it or add an ExclusiveArch.

Comment 10 Sander Hoentjen 2007-01-09 21:58:07 UTC
When I remove the -m32 it builds (with a lot of "warning: cast from pointer to
integer of different size") but it segfaults when trying to run.

Have a look at http://fedoraproject.org/wiki/Extras/SIGs/x86-64 

Comment 11 Karol Trzcionka 2007-01-09 22:35:38 UTC
It does not work on x86_64 and very probably on ppc. I have added the 
ExclusiveArch:  i386

New URLs:
http://karlik.nonlogic.org/warzone/warzone2100.spec
http://karlik.nonlogic.org/warzone/warzone2100-2.0.5-2.src.rpm

Comment 12 David Woodhouse 2007-01-10 01:48:33 UTC
If you want to volunteer as a maintainer for a package, it's best if you're
willing and able to look into problems with it. The fact that it doesn't build
on x86_64 or PowerPC is indicative that the code will have many quality issues
and will need some real maintenance.

If you send me a SSH public key, I can provide access to a PowerPC machine on
which you can build and debug. I'm sure someone else can provide similar access
for x86_64.

As an absolute minimum, you'd need to file a bug describing precisely _what_ is
wrong with the code when it's built for x86_64 and/or PowerPC. To say just "it
doesn't work" is acceptable for a user to file in a bug report, but isn't
something we expect to hear from a maintainer :)

Comment 13 Francois Aucamp 2007-01-10 17:47:49 UTC
Created attachment 145270 [details]
Log file for failed build on FC5/x86_64 after modifying BuildRequires

I've managed to get access to a x86_64 box running FC5... The build fails
*much* earlier for me on this machine, during configure, with the following
output:

<snip>
checking for SDL - version >= 1.1.4... yes
checking for presence of SDL_net... Found SDL_net in path
checking SDL/SDL_opengl.h usability... no
checking SDL/SDL_opengl.h presence... no
checking for SDL/SDL_opengl.h... no
checking for main in -lGL... yes
checking for main in -lGLU... no
checking for main in -lglu32... no
checking OpenGL... no
configure: error: OpenGL is currently mandatory
error: Bad exit status from /home/francois/redhat/tmp/rpm-tmp.38734 (%build)

--Adding "mesa-libGLU-devel" to the BuildRequires fixes this.
However, the build still fails, but differently than in comment #6. I haven't
got round to debugging this, but have attached the build log if anyone else
wants to take a look.

Comment 14 Karol Trzcionka 2007-01-10 18:03:29 UTC
(In reply to comment #13)
> --Adding "mesa-libGLU-devel" to the BuildRequires fixes this.
> However, the build still fails, but differently than in comment #6. I haven't
> got round to debugging this, but have attached the build log if anyone else
> wants to take a look.
I can not fix it, because author forces flag -m32 and in the same time there are
set -m32 and -m64. I can remove it from makefile, but if author think that code
is not prepared for x86_64 (yet?), so removing does not make any sense.
When I get the access to ppc, I will describe build/work errors on architectures
ppc and x86_64


Comment 15 Tom "spot" Callaway 2007-01-15 18:01:28 UTC
Interpretation on content being under the GPL works for me. I'll sign off on it
as ok.

Comment 16 Karol Trzcionka 2007-01-16 15:26:04 UTC
I remove ExcludeArch-ppc, the building is correct. I do not know if it run (I
can not check it), but build is normal .
About x86_64:
I do not want to change a code (to build), because I am not author. I analized
logs in attachment and I think it will be better if authors prepare code to work
under x86_64 architecture than if I modified source-files. There must be
important reason to force flag -m32.
New URLs (delete ExclusiveArch and add ExcludeArch):
http://karlik.nonlogic.org/warzone/warzone2100.spec
http://karlik.nonlogic.org/warzone/warzone2100-2.0.5-3.src.rpm

Comment 17 David Woodhouse 2007-01-16 21:09:33 UTC
It is the job of a package maintainer to modify sources as appropriate and to
feed the changes upstream. The "important reason to flag -m32" is just that the
code is broken and the authors do not consider fixing it a priority. Fedora has
different standards, and you should take the lead on fixing it for 64-bit operation.

Comment 18 Francois Aucamp 2007-01-17 07:24:13 UTC
(In reply to comment #15)
> Interpretation on content being under the GPL works for me. I'll sign off on it
> as ok.

Thanks, noted. :-)

(In reply to comment #16)
> I remove ExcludeArch-ppc, the building is correct. I do not know if it run (I
can not check it), but build is normal .

Have you tried starting it up via SSH with X11 forwarding? ("ssh -X") It would
be *dead* slow, but at least it should boot up.

(In reply to comment #17)
> It is the job of a package maintainer to modify sources as appropriate and to
> feed the changes upstream. The "important reason to flag -m32" is just that the
> code is broken and the authors do not consider fixing it a priority. Fedora has
> different standards, and you should take the lead on fixing it for 64-bit
operation.

I agree with this. However, having played around with the code a bit, it is
clear that a 64-bit port of this application will take some serious maintenance,
mostly due to its (legacy) Windows-centric memory handling (lots of ugly DWORDs
etc). Currently it compiles and starts up, but segfaults after the initial
loading screen.

Fixing this is a slightly big(ish) and time-consuming endeavour, one which would
benefit greatly from the assistance of a bigger Fedora audience; therefore my
current recommendation is to exclude x86_64 for now, add it to "devel", and file
a bug report against warzone2100 detailing the 32-bit-windows-to-64-bit-linux
pointer issues (see Bug #158646 for an example). The point is, in the long run,
the 64-bit issue will *have* to be fixed, but it might be solved quicker if the
package is accepted for devel/i386 and ppc, and a specific bug report is filed
against it.

I will let this suggestion simmer for a day or so before taking action, so if
someone does not agree with this idea, please speak up.


Comment 19 Karol Trzcionka 2007-01-17 21:59:45 UTC
I mailed to devels of warzone and I have got a answer that the run version 2.0.5
on x86_64 is impossible and they are working to fix it in v2.1. I can see some
solutions:
1. The package is accepted with ExcludeArch (and it will be removed when it will
run on 64-bits).
2. The package is "waiting" for next release.
3. I can try to patch it, but I have not x86_64 and it is very hard, because the
devels wrote me that running is imposs., so there is a lot of code to changing
(my programming skills might be insufficient).
If anyone can see other way, please write it.
(In reply to comment #18)
> Have you tried starting it up via SSH with X11 forwarding? ("ssh -X") It would
> be *dead* slow, but at least it should boot up.
I have not any access to ppc machine, the "build test" was did by one person on
IRC (thanks to him)

>therefore my
> current recommendation is to exclude x86_64 for now, add it to "devel", and file
> a bug report against warzone2100 detailing the 32-bit-windows-to-64-bit-linux
> pointer issues (see Bug #158646 for an example). 
I can not a publish the package in FE without block "FE-ACCEPT".


Comment 20 Francois Aucamp 2007-01-18 07:13:29 UTC
(In reply to comment #19)
> I mailed to devels of warzone and I have got a answer that the run version 2.0.5
> on x86_64 is impossible and they are working to fix it in v2.1.

I'm glad to see you've contacted upstream about this. :-) Do they have any
estimated release dates or progress indicators? Perhaps some of the fixes
already exist in CVS/SVN somewhere?

 I can see some
> solutions:
> 1. The package is accepted with ExcludeArch (and it will be removed when it will
> run on 64-bits).

This is basically much what I meant in comment #18, only with a specific "64-bit
issue" bug report against the package after it has been accepted. So this is the
course of action we'll take if no-one opposes the idea.

> 2. The package is "waiting" for next release.

IMHO this wouldn't solve anything really.

> 3. I can try to patch it, but I have not x86_64 and it is very hard, because the
> devels wrote me that running is imposs., so there is a lot of code to changing
> (my programming skills might be insufficient).

It's not impossible, but it's certainly time-consuming and non-trivial. Not
having access to an x86_64 box to play around with doesn't help, either.

> I have not any access to ppc machine, the "build test" was did by one person on
> IRC (thanks to him)

Indeed, thanks. Could you possibly ask him to just quickly test whether the
program actually runs on PPC (considering it *does* actually compile on x86_64
also, with a few tweaks). 

> 
> >therefore my
> > current recommendation is to exclude x86_64 for now, add it to "devel", and file
> > a bug report against warzone2100 detailing the 32-bit-windows-to-64-bit-linux
> > pointer issues (see Bug #158646 for an example). 
> I can not a publish the package in FE without block "FE-ACCEPT".
> 

See the next sentence in that comment: "...it might be solved quicker if the
package is accepted for devel/i386 and ppc". This would be the "FE-ACCEPT". ;-) 

The only real blocker for me at this stage (scanning through this quickly) is
whether the program actually runs correctly on PPC. Please ask your ppc contact
to verify this, or ask fedora-extras-list for assistance. After we have
confirmation, I'll do a 2nd review and approve the package for i386 and PPC if
it is fit.


Comment 21 Karol Trzcionka 2007-01-21 19:43:17 UTC
One test is done. In mail from mailing list (fedora-extras-list) we can read:
"Seems to start up and looks OK.[...]" (dwmw2), so it work (I do not know how
fast/slow, but it runs).
I think it can be approved for i386 and ppc.
Probably in a few days I will receive results of a second test.

Comment 22 Karol Trzcionka 2007-01-21 20:31:30 UTC
I receive result of second test:
"I've got PowerPC box, and I tried to play with your SRPM today -
everything looks OK. [...] In any case i found no troubles."

Comment 23 Francois Aucamp 2007-01-22 06:43:25 UTC
Thanks for requesting the tests. Now at least we are sure. :-)

MUST items:
 * rpmlint output:

W: warzone2100-data no-documentation --- can be ignored, silent otherwise

 * package is named well
 * spec file is named well
 * package meets Packaging Guidelines
 * package license is GPL, COPYING file included
 * License field in spec file matches actual license
 * license file is included in %doc
 * spec file is written in American English and legible
 * package source md5sum matches upstream source:

56e83a64d5b7aa60ced3d7ac7281bb42  warzone2100-2.0.5.tar.bz2

 * package builds successfully on fc6/i386, PPC
   (PPC builds not done by me, but tested throughout review)
 * BuildRequires are good
 * package handles locales properly (no locales)
 * package has no need for %post and %postun sections
 * package is not relocatable
 * package owns directories it creates
 * no duplicate entries in %files
 * file permissions are good
 * proper %clean section
 * spec file macros are used consistently
 * main package contains code, -data subpackage contains permissable content
 * no -doc, -devel subpackages necessary
 * contents in %doc not required for runtime functionality of application
 * .desktop file present and properly handled

SHOULD items:
 * package builds in mock (fc6/i386)
 * package functions properly on i386 and PPC
   - ExludeArch x86_64 is present until this issue is can be resolved
     (see comments #16 and #20 for resolution)
 * subpackages require the base package using a fully versioned dependency

Everything has been met. 

-------------------------
This package is APPROVED.
-------------------------

After importing this package, please file a bug against it detailing the 64-bit
pointer issues as discussed in comment #18. The bug number should then also be
placed in a comment, next to the corresponding ExcludeArch line in the spec file.


Comment 24 Karol Trzcionka 2007-01-23 15:00:28 UTC
I can close this bug (correctly build on i386 and ppc). The bug report is #223992