Bug 355971 (poker3d) - Review Request: poker3d - Three dimensional multi-user online poker game
Summary: Review Request: poker3d - Three dimensional multi-user online poker game
Keywords:
Status: CLOSED NEXTRELEASE
Alias: poker3d
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Hans de Goede
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: poker3d-data
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-10-28 19:01 UTC by Christopher Stone
Modified: 2007-11-30 22:12 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-11-18 17:39:01 UTC
Type: ---
Embargoed:
hdegoede: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Christopher Stone 2007-10-28 19:01:22 UTC
Spec URL: http://tkmame.retrogames.com/fedora-extras/poker3d.spec
SRPM URL: http://tkmame.retrogames.com/fedora-extras/poker3d-1.1.36-1.fc7.src.rpm

Description:
Three dimensional multi-user online poker game.

Comment 1 Christopher Stone 2007-10-28 21:40:22 UTC
rpmlint output:
poker3d.x86_64: E: wrong-script-interpreter /usr/bin/poker3d
"/usr/libexec/poker3d/underware"

This is a bug in rpmlint, see bug #355861

Comment 2 Hans de Goede 2007-11-06 20:42:33 UTC
I'll review this. Here are some MUST Fix and Should Fix from a first
semi-thorough look:

Must Fix:
---------
* Source0 URL is invalid
* icon cache scriptlets to not match the scriplets page on the wiki
  (the user will see an error printed when gtk-update-icon-cache isn't installed

Should Fix:
-----------
* Since the libraries are private, wouldn't it be a better idea to use a wrapper
script which sets LD_LIBRARY_PATH, rather then adding the used dir to
ld.so.conf.d, because that way they will still be in the global namespace, and
there is little use in putting them in their own dir.

* according to upstreams website 1.1.37 is out


Comment 3 Hans de Goede 2007-11-06 20:47:12 UTC
Hmm,

My build has exited with:
configure: Found working python compilation environment for =2.5
checking for POKER_NETWORK... no
configure: error: poker-network is a mandatory library
error: Bad exit status from /var/tmp/rpm-tmp.83390 (%build)

config.log says:
configure:24637: $PKG_CONFIG --exists --print-errors "poker-network >= 1.0.21"
Package poker-network was not found in the pkg-config search path.
Perhaps you should add the directory containing `poker-network.pc'
to the PKG_CONFIG_PATH environment variable
No package 'poker-network' found

Note that I'm on a 64 bit machine, this is probably due to poker-network being
noarch and thus having its .pc file as:
/usr/lib/pkgconfig/poker-network.pc
Whereas a 64 bit pkg-config expects it to be:
/usr/lib64/pkgconfig/poker-network.pc

I don't know how to solve this cleanly though.



Comment 4 Ville Skyttä 2007-11-06 20:54:28 UTC
If poker-network including its *.pc file is truly noarch, it should most likely
install the *.pc to /usr/share/pkgconfig - pkg-config searches from there too on
all arches.

Comment 5 Christopher Stone 2007-11-06 21:12:02 UTC
Wait, are you guys using devel?  You should be using poker-network and poker2d
version 1.2.0-3.

I pushed these to updates-testing two weeks ago, I really expected them to be
there by now, but there is bug #360291 which we think is causing problems.

If you need F8 packages, please use:
https://admin.fedoraproject.org/updates/F8/FEDORA-2007-2865
https://admin.fedoraproject.org/updates/F8/FEDORA-2007-2901


Comment 6 Christopher Stone 2007-11-06 22:40:05 UTC
(In reply to comment #2)
> Must Fix:
> ---------
> * Source0 URL is invalid
> 
> Should Fix:
> -----------
> * according to upstreams website 1.1.37 is out

1.1.37 hasn't officially been released yet.  Only the official releases are put
in the Source0 URL.  The problem is that upstream hasn't updated that URL in a
while so I pinged them to update it.


Comment 7 Hans de Goede 2007-11-07 15:20:33 UTC
(In reply to comment #6)
> (In reply to comment #2)
> > Must Fix:
> > ---------
> > * Source0 URL is invalid
> > 
> > Should Fix:
> > -----------
> > * according to upstreams website 1.1.37 is out
> 
> 1.1.37 hasn't officially been released yet.  Only the official releases are put
> in the Source0 URL.  The problem is that upstream hasn't updated that URL in a
> while so I pinged them to update it.
> 

Well you don't necessarily need to do a 1.1.37 srpm to get this approved, but I
do need a working Source0 url or some other way to verify the included sources
match what upstream is distributing.


Comment 8 Christopher Stone 2007-11-15 20:07:46 UTC
I have updated the spec file with the same URL that upstream gave me for the
current sources.  Hopefully we can use this temporarily to get it approved. 
Upstream informs me that they plan on having the normal URL fixed soon, so I
just commented it out for now.

Spec URL: http://tkmame.retrogames.com/fedora-extras/poker3d.spec
SRPM URL: http://tkmame.retrogames.com/fedora-extras/poker3d-1.1.36-3.fc7.src.rpm

%changelog
* Thu Nov 15 2007 Christopher Stone <chris.stone> 1.1.36-3
- Use a temporary URL until upstream updates the stable tarballs

* Tue Nov 06 2007 Christopher Stone <chris.stone> 1.1.36-2
- Update icon cache scriptlets


Comment 9 Hans de Goede 2007-11-15 20:56:38 UTC
Still does not build on F-8 x86_64:
 g++ -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/glib-2.0
-I/usr/lib64/glib-2.0/include -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-I/usr/include/python2.5 -I/usr/include/libxml2 -DCAL3D_VERSION=11
-DOSGAL_VERSION=0X000600 -I../.. -I../../include -I../../examples/poker -O2 -g
-pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
--param=ssp-buffer-size=4 -m64 -mtune=generic -MT
libmaf_la-MultipleAnimationPathCallback.lo -MD -MP -MF
.deps/libmaf_la-MultipleAnimationPathCallback.Tpo -c
MultipleAnimationPathCallback.cpp  -fPIC -DPIC -o
.libs/libmaf_la-MultipleAnimationPathCallback.o
/usr/include/osg/AnimationPath: In member function 'virtual void
MultipleAnimationPathCallbackVisitor::apply(osg::PositionAttitudeTransform&)':
/usr/include/osg/AnimationPath:123: error: 'osg::Quat
osg::AnimationPath::ControlPoint::_rotation' is protected
MultipleAnimationPathCallback.cpp:62: error: within this context
/usr/include/osg/AnimationPath:124: error: 'osg::Vec3d
osg::AnimationPath::ControlPoint::_scale' is protected
MultipleAnimationPathCallback.cpp:65: error: within this context
/usr/include/osg/AnimationPath:122: error: 'osg::Vec3d
osg::AnimationPath::ControlPoint::_position' is protected
MultipleAnimationPathCallback.cpp:71: error: within this context
/usr/include/osg/AnimationPath:123: error: 'osg::Quat
osg::AnimationPath::ControlPoint::_rotation' is protected
MultipleAnimationPathCallback.cpp:72: error: within this context
/usr/include/osg/AnimationPath:124: error: 'osg::Vec3d osg::AnimationPath::Contr
olPoint::_scale' is protected
MultipleAnimationPathCallback.cpp:73: error: within this context


Comment 10 Christopher Stone 2007-11-15 23:26:08 UTC
Ugh, this is not good.  Looks like a gcc bug.  Fedora 7's gcc compiles it properly.


Comment 11 Christopher Stone 2007-11-15 23:57:54 UTC
Actually hold on, I just discovered this:

#if OSG_VERSION_RELEASE != 9 && OSG_VERSION_MAJOR != 1
#define getRotation() _rotation
#define getScale() _scale
#define getPosition() _position
#endif // OSG_VERSION_RELEASE != 9 && OSG_VERSION_MAJOR != 1

at the top of src/maf/MultipleAnimationPathCallback.cpp

let me try patching this out and see if that fixes things. :)

Comment 12 Christopher Stone 2007-11-16 00:32:19 UTC
Looks like it worked, this was just a bad attempt at trying to detect OSG 0.9
without thinking about the possibility there may one day be a OSG 2.0.

Patching this code out for Fedora is benign since FC-6+ does not use OSG 0.9.

New RPMs here:
http://koji.fedoraproject.org/koji/taskinfo?taskID=244045


Comment 13 Christopher Stone 2007-11-16 01:16:15 UTC
I'll look into making a wrapper as you suggested in comment #2. I think I should
also use some 3d wrapper too, I'll try to find out more.

Comment 14 Hans de Goede 2007-11-16 08:21:37 UTC
You probably want something like this as wrapper:
#!/bin/sh

. /usr/share/opengl-games-utils/opengl-game-functions.sh

checkDriOK poker3d

if [ -d /usr/lib64/taxipilot ]; then
  export LD_LIBRARY_PATH=/usr/lib64/poker3d
else
  export LD_LIBRARY_PATH=/usr/lib/poker3d
fi

exec poker3d "$@"


Then you can get rid of the ld.so.d file, and you will need to add a
Requires: opengl-games-utils

The checkDriOK thingie checks if hardware accelerated opengl is present and if
not shows an error dialog explaining things and then exits.

You can then either call this script poker3d-wrapper and adapt the .desktop
file, or call it plain poker3d and move poker3d itself to /usr/libexcec

Let me know if you need any more help with this.


Comment 15 Christopher Stone 2007-11-16 14:03:24 UTC
The only question I have is that I would like for people to still be able to
type "poker3d" from the command line and still have this wrapper executed.  So I
think the wrapper should be in /usr/bin/poker3d and perhaps we can place the
binary in /usr/games/poker3d.  Does this make sense?  I'm already manually
moving the poker3d binary from /usr/games to /usr/bin so it should be a bit
cleaner this way if possible.  Let me know what you think.  Thanks.

Comment 16 Hans de Goede 2007-11-16 15:16:36 UTC
(In reply to comment #15)
> The only question I have is that I would like for people to still be able to
> type "poker3d" from the command line and still have this wrapper executed.  So I
> think the wrapper should be in /usr/bin/poker3d and perhaps we can place the
> binary in /usr/games/poker3d.  Does this make sense?  I'm already manually
> moving the poker3d binary from /usr/games to /usr/bin so it should be a bit
> cleaner this way if possible.  Let me know what you think.  Thanks.

Yes thats possible, install the wrapper as /usr/bin/poker3d and make it call
/usr/libexec/poxker3d, and install poker3d itself under /usr/libexec, no
/usr/games please, /usr/games is obsolete / deprecated.

Comment 17 Christopher Stone 2007-11-16 20:55:06 UTC
Spec URL: http://tkmame.retrogames.com/fedora-extras/poker3d.spec
SRPM URL: http://tkmame.retrogames.com/fedora-extras/poker3d-1.1.36-5.fc7.src.rpm

%changelog
* Fri Nov 16 2007 Christopher Stone <chris.stone> 1.1.36-5
- Add a wrapper script to invoke poker3d instead of using ld.so.conf

* Thu Nov 15 2007 Christopher Stone <chris.stone> 1.1.36-4
- Add patch to fix compile with OSG2.x

* Thu Nov 15 2007 Christopher Stone <chris.stone> 1.1.36-3
- Use a temporary %%SOURCE0 URL until upstream updates stable tarballs

Comment 18 Christopher Stone 2007-11-16 21:48:40 UTC
Also, do I still need to run ldconfig in the %post/un sections?

Comment 19 Hans de Goede 2007-11-17 09:09:04 UTC
(In reply to comment #18)
> Also, do I still need to run ldconfig in the %post/un sections?

No.

Must Fix
--------
-remove /sbin/ldconfig invocation from %post %postun

Could Fix
---------
-why use a subdir under /usr/libexec for only one binary?

Approved, under the condition that you remove the 2 /sbin/ldconfig calls from
the scripts.


Comment 20 Christopher Stone 2007-11-17 16:49:00 UTC
Hi, che mentioned a couple problems last night, and I asked him to post to this
bug.  I put him on the CC list.  One thing he mentioned was a missing

Requires: xwnc

I think he also mentioned something else too, but I'm not sure, so I want to
wait to hear from him.

@Hans: Did xwnc get installed on your system when you tested this?

Comment 21 Hans de Goede 2007-11-17 17:02:52 UTC
(In reply to comment #20)
> 
> @Hans: Did xwnc get installed on your system when you tested this?

I must admit I didn't test it. I'm not much into poker, I only did a technical
review, and for the record, no xwnc did not get installed.


Comment 22 Christopher Stone 2007-11-17 17:14:38 UTC
Spec URL: http://tkmame.retrogames.com/fedora-extras/poker3d.spec
SRPM URL: http://tkmame.retrogames.com/fedora-extras/poker3d-1.1.36-6.fc7.src.rpm

%changelog
* Sat Nov 17 2007 Christopher Stone <chris.stone> 1.1.36-6
- Remove no longer needed ldconfig
- Add xwnc to Requires

This one should be good enough for updates-testing. I'll have che and a couple
others test it from the testing repo.  Thanks for the review!

New Package CVS Request
=======================
Package Name: poker3d
Short Description: Three dimensional multi-user online poker game
Owners: xulchris
Branches: F-7 F-8
InitialCC:
Cvsextras Commits: yes


Comment 23 Kevin Fenzi 2007-11-18 01:09:10 UTC
cvs done.

Comment 24 Christopher Stone 2007-11-18 17:39:01 UTC
Build successful for devel, thanks again for the review! :D
http://koji.fedoraproject.org/koji/taskinfo?taskID=247125



Note You need to log in before you can comment on or make changes to this bug.