Hello community,
here is the log from the commit of package armagetron for openSUSE:Factory
checked in at Mon Jun 8 16:12:34 CEST 2009.
--------
--- armagetron/armagetron.changes 2009-06-05 13:27:31.000000000 +0200
+++ /mounts/work_src_done/STABLE/armagetron/armagetron.changes 2009-06-08 16:07:34.000000000 +0200
@@ -1,0 +2,8 @@
+Mon Jun 8 05:38:09 CEST 2009 - pth@suse.de
+
+- Rename dominique's patch and make it include cstring not string.h
+- use %{_datadir} instead of /usr/share.
+- Backport fixes regarding conversions from string constants to
+ char* and type-punning from 0.2.8.3_rc2.
+
+-------------------------------------------------------------------
@@ -6,0 +15,6 @@
+Tue May 5 20:17:10 CEST 2009 - dominique-obs@leuenberger.net
+
+- Update to version 0.2.8.2.1
+- Fix the package to actually work (bnc#331629)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
armagetron-64-bit.diff
armagetronad-0.2.7.1.tar.bz2
armagetron_add.diff
armagetron-autoreconf.diff
armagetron-codecleanup.diff
armagetron-glibc210.patch
armagetron-missing_includes.patch
armagetron.png
New:
----
armagetronad-0.2.8.2.1-no_type_punning.patch
armagetronad-0.2.8.2.1-string_const.patch
armagetronad-0.2.8.2.1.tar.bz2
armagetronad-missing_headers.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ armagetron.spec ++++++
--- /var/tmp/diff_new_pack.cG5965/_old 2009-06-08 16:11:57.000000000 +0200
+++ /var/tmp/diff_new_pack.cG5965/_new 2009-06-08 16:11:57.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package armagetron (Version 0.2.7.1)
+# spec file for package armagetron (Version 0.2.8.2.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -20,23 +20,20 @@
Name: armagetron
BuildRequires: SDL_image-devel SDL_mixer-devel kdelibs3-devel
+PreReq: sh-utils fileutils
Summary: OpenGL Game Similar to the Film Tron
-Version: 0.2.7.1
-Release: 257
+Version: 0.2.8.2.1
+Release: 1
License: GPL v2 or later
Group: Amusements/Games/3D/Race
+Url: http://armagetronad.sourceforge.net
Source: %{name}ad-%{version}.tar.bz2
Source1: armagetron_add.tar.gz
-Source2: %name.png
-Patch1: armagetron_add.diff
-Patch3: armagetron-64-bit.diff
-Patch6: armagetron-codecleanup.diff
-Patch7: armagetron-autoreconf.diff
-Patch8: armagetron-missing_includes.patch
-Patch9: armagetron-glibc210.patch
-Url: http://armagetronad.sourceforge.net
+Patch1: armagetronad-missing_headers.patch
+#backports from 0.2.8.3
+Patch2: armagetronad-0.2.8.2.1-no_type_punning.patch
+Patch3: armagetronad-0.2.8.2.1-string_const.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-PreReq: sh-utils fileutils
%description
In this game, race against other players on a permanently moving
@@ -50,79 +47,71 @@
%prep
%setup -q -a 1 -n armagetronad-%version
-find src -name '*.[oa]' | xargs --no-run-if-empty rm
-# outdated, does not give any useful configuration:
-rm armagetron_add/hardware.ArmageTronrc
%patch1
+%patch2
%patch3
-%patch6
-%patch7
-%patch8
-%patch9 -p1
-rm -f acconfig.h acinclude.m4
-%define _prefix /usr
-%define _bindir /usr/games
-%define _datadir %_prefix/share/games/%{name}ad
-%define applnkdir /opt/kde3/share/applnk/Games
-%define mandir %_mandir/man6
%build
-autoreconf -fi
-# Not yet there ...
-#export CXXFLAGS="%optflags -fomit-frame-pointer -ffast-math -fexpensive-optimizations -W -Wall"
-export CXXFLAGS="%optflags -fomit-frame-pointer -ffast-math -fexpensive-optimizations -W -Wall -fno-strict-aliasing"
-./configure --enable-music \
- --prefix=%_prefix/share \
- --bindir=%_bindir \
- --datadir=%_datadir \
- --mandir=%_mandir \
- --infodir=%_infodir \
- --libdir=%{_libdir}
-sed -e s%@DATA_DIR@%\"%_datadir\"%g -e 's%@CONFIG_DIR@%\"%_datadir/config\"%g' config.h > config.h.new && mv config.h.new config.h
-make %{?jobs:-j%jobs}
+export CFLAGS="%{optflags}" CXXFLAGS="%{optflags}"
+%configure \
+ --enable-music \
+ --disable-desktop \
+ --disable-uninstall \
+ --disable-dependency-tracking \
+ --disable-games \
+ --bindir=%{_prefix}/games \
+ --datadir=%{_datadir}/games \
+ --docdir=%{_docdir}
+make
%install
-for dir in %{_bindir} %{_datadir} %{applnkdir} %{_mandir} %{_prefix}/share/applications
-do
- mkdir -p %{buildroot}${dir}
-done
-make install DESTDIR=%buildroot
-install armagetron_add/*.desktop %{buildroot}%{_prefix}/share/applications/
-mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/pixmaps/
-install -m 644 $RPM_SOURCE_DIR/%name.png %{buildroot}%{_prefix}/share/pixmaps
+# the uninstall_location trick was copied from Fedora. Thanks for debugging it :)
+make DESTDIR=%buildroot install uninstall_location=foobar
+mkdir -p %{buildroot}%{_datadir}/applications/
+install armagetron_add/*.desktop %{buildroot}%{_datadir}/applications/
+mkdir -p %{buildroot}%{_datadir}/pixmaps/
+pushd %buildroot
+ln -s %{_datadir}/games/armagetronad/desktop/icons/large/armagetronad.png usr/share/pixmaps/%{name}.png
+popd
+# some cleanups
+chmod 644 %{buildroot}%{_sysconfdir}/armagetronad/rc.config
+rm %{buildroot}%{_datadir}/games/armagetronad/language/update.py
+rm %{buildroot}%{_datadir}/games/armagetronad/scripts/relocate
+rm %{buildroot}%{_datadir}/games/armagetronad/desktop/*.desktop
+mv %{buildroot}%{_docdir}/armagetronad ./armagetron_doc
%suse_update_desktop_file Armagetron Game ArcadeGame
-rm -f %buildroot/usr/share/games/armagetronad/bin/uninstall
-rm -fr %buildroot/etc/armagetronad/.orig
-rm -fr %buildroot/usr/share/games/armagetronad/doc
-rm %buildroot/usr/share/games/armagetronad/COPYING.txt
-mv %buildroot/usr/share/bin/* %{buildroot}%{_bindir}
-rmdir %buildroot/usr/share/bin
-mv %buildroot/usr/share/games/armagetronad/bin/* %{buildroot}%{_bindir}
-rmdir %buildroot/usr/share/games/armagetronad/bin
%files
%defattr(-,root,root)
-%doc README bindist/doc/* armagetron_add/README.SuSE
-/etc/armagetronad
-%{_bindir}/*
-%_datadir
+%doc README armagetron_add/README.SuSE armagetron_doc/*
+%config %{_sysconfdir}/armagetronad
+%{_prefix}/games/armagetronad
+%_datadir/games/armagetronad
%attr(644,root,root) /usr/share/applications/*
-/usr/share/pixmaps/%name.png
+%{_datadir}/pixmaps/%name.png
%post
-if [ ! -e usr/share/games/armagetron/music/fire.xm ]; then
- if [ -r usr/share/games/gltron/music/song_revenge_of_cats.it ]; then
- cp -a usr/share/games/gltron/music/song_revenge_of_cats.it \
- usr/share/games/armagetron/music/fire.xm
+if [ ! -e %{_datadir}/games/armagetron/music/fire.xm ]; then
+ if [ -r %{_datadir}/games/gltron/music/song_revenge_of_cats.it ]; then
+ cp -a %{_datadir}/games/gltron/music/song_revenge_of_cats.it \
+ %{_datadir}/games/armagetron/music/fire.xm
fi
fi
%clean
-#rm -rf %{buildroot}
+rm -rf %{buildroot}
%changelog
+* Mon Jun 08 2009 pth@suse.de
+- Rename dominique's patch and make it include cstring not string.h
+- use %%{_datadir} instead of /usr/share.
+- Backport fixes regarding conversions from string constants to
+ char* and type-punning from 0.2.8.3_rc2.
* Fri Jun 05 2009 coolo@novell.com
- fix usage of strchr
+* Tue May 05 2009 dominique-obs@leuenberger.net
+- Update to version 0.2.8.2.1
+- Fix the package to actually work (bnc#331629)
* Fri Oct 26 2007 pth@suse.de
- Add missing includes.
* Mon Jun 04 2007 pth@suse.de
++++++ armagetronad-0.2.8.2.1-no_type_punning.patch ++++++
--- src/network/nConfig.cpp
+++ src/network/nConfig.cpp
@@ -378,7 +378,7 @@
, reverted_( false )
, group_( c )
, overrideGroupBehavior_( Behavior_Default )
- , overrideGroupBehaviorConf_( item.GetTitle() + "_OVERRIDE", reinterpret_cast< int & >( overrideGroupBehavior_ ) )
+ , overrideGroupBehaviorConf_( item.GetTitle() + "_OVERRIDE", overrideGroupBehavior_ )
{
sn_StrongWatchersAddRef();
sn_GetStrongWatchers().insert(this);
@@ -588,18 +588,18 @@
static nConfItemVersionWatcher::Behavior sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Max ] =
{
- nConfItemVersionWatcher::Behavior_Block,
- nConfItemVersionWatcher::Behavior_Block,
- nConfItemVersionWatcher::Behavior_Nothing,
- nConfItemVersionWatcher::Behavior_Block,
- nConfItemVersionWatcher::Behavior_Nothing,
+ Behavior_Block,
+ Behavior_Block,
+ Behavior_Nothing,
+ Behavior_Block,
+ Behavior_Nothing,
};
-static tSettingItem< int > sn_GroupBehaviorBreaks( "SETTING_LEGACY_BEHAVIOR_BREAKING", reinterpret_cast< int & >( sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Breaking] ) );
-static tSettingItem< int > sn_GroupBehaviorBumpy( "SETTING_LEGACY_BEHAVIOR_BUMPY", reinterpret_cast< int & >( sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Bumpy] ) );
-static tSettingItem< int > sn_GroupBehaviorAnnoyance( "SETTING_LEGACY_BEHAVIOR_ANNOYING", reinterpret_cast< int & >( sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Annoying] ) );
-static tSettingItem< int > sn_GroupBehaviorCheat( "SETTING_LEGACY_BEHAVIOR_CHEATING", reinterpret_cast< int & >( sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Cheating] ) );
-static tSettingItem< int > sn_GroupBehaviorDisplay( "SETTING_LEGACY_BEHAVIOR_VISUAL", reinterpret_cast< int & >( sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Visual] ) );
+static tSettingItem< nConfItemVersionWatcher::Behavior > sn_GroupBehaviorBreaks( "SETTING_LEGACY_BEHAVIOR_BREAKING", sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Breaking] );
+static tSettingItem< nConfItemVersionWatcher::Behavior > sn_GroupBehaviorBumpy( "SETTING_LEGACY_BEHAVIOR_BUMPY", sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Bumpy] );
+static tSettingItem< nConfItemVersionWatcher::Behavior > sn_GroupBehaviorAnnoyance( "SETTING_LEGACY_BEHAVIOR_ANNOYING", sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Annoying] );
+static tSettingItem< nConfItemVersionWatcher::Behavior > sn_GroupBehaviorCheat( "SETTING_LEGACY_BEHAVIOR_CHEATING", sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Cheating] );
+static tSettingItem< nConfItemVersionWatcher::Behavior > sn_GroupBehaviorDisplay( "SETTING_LEGACY_BEHAVIOR_VISUAL", sn_GroupBehaviors[ nConfItemVersionWatcher::Group_Visual] );
// *******************************************************************************************
// *
--- src/network/nConfig.h
+++ src/network/nConfig.h
@@ -210,6 +210,18 @@
virtual void ReadVal(std::istream &s);
};
+//! how we react on a client with a version incompatible with a setting
+enum nConfigItemBehavior
+{
+ Behavior_Nothing = 0, //!< do nothing, let client on
+ Behavior_Revert = 1, //!< revert setting to default value
+ Behavior_Block = 2, //!< don't let the client play at all
+ Behavior_Default = 3 //!< do whatever someone else says
+};
+
+class nConfItemVersionWatcher;
+tCONFIG_ENUM( nConfigItemBehavior );
+
//! configuration item watcher that shuts out clients that don't support a certain interface
class nConfItemVersionWatcher: public nIConfItemWatcher
{
@@ -226,14 +238,7 @@
Group_Max
};
- //! how we react on a client with a version incompatible with a setting
- enum Behavior
- {
- Behavior_Nothing = 0, //!< do nothing, let client on
- Behavior_Revert = 1, //!< revert setting to default value
- Behavior_Block = 2, //!< don't let the client play at all
- Behavior_Default = 3 //!< do whatever someone else says
- };
+ typedef nConfigItemBehavior Behavior;
nConfItemVersionWatcher( nConfItemBase & item, Group group, int min, int max = -1 ); //!< constructor
virtual ~nConfItemVersionWatcher(); //!< destructor
@@ -255,7 +260,7 @@
Group group_; //!< class of incompatibility
Behavior overrideGroupBehavior_; //!< if set, the global behavior for the class gets ignored
- tSettingItem< int > overrideGroupBehaviorConf_; //!< setting item for override
+ tSettingItem< Behavior > overrideGroupBehaviorConf_; //!< setting item for override
};
//! convenience helper class: setting item and version watcher combined
--- src/tron/gMenus.cpp
+++ src/tron/gMenus.cpp
@@ -555,7 +555,9 @@
static uSelectEntryrSysDep::rSwapMode swapMode_60Hz(swapMode,"$swapmode_60hz_text","$swapmode_60hz_help",rSysDep::rSwap_60Hz);
*/
-static tConfItem<int> swapModeCI("SWAP_MODE", reinterpret_cast< int & >( rSysDep::swapMode_ ) );
+tCONFIG_ENUM( rSysDep::rSwapMode );
+
+static tConfItem< rSysDep::rSwapMode > swapModeCI("SWAP_MODE", rSysDep::swapMode_ );
static tConfItem<REAL> sgs("SPEED_GAUGE_SIZE",subby_SpeedGaugeSize);
static tConfItem<REAL> sgx("SPEED_GAUGE_LOCX",subby_SpeedGaugeLocX);
--- src/tron/gServerBrowser.cpp
+++ src/tron/gServerBrowser.cpp
@@ -57,7 +57,8 @@
static tOutput *sg_StartHelpText = NULL;
nServerInfo::QueryType sg_queryType = nServerInfo::QUERY_OPTOUT;
-static tSettingItem< int > sg_query_type( "BROWSER_QUERY_FILTER", reinterpret_cast< int & >( sg_queryType ) );
+tCONFIG_ENUM( nServerInfo::QueryType );
+static tSettingItem< nServerInfo::QueryType > sg_query_type( "BROWSER_QUERY_FILTER", sg_queryType );
class gServerMenuItem;
++++++ armagetronad-0.2.8.2.1-string_const.patch ++++++
--- src/engine/ePlayer.cpp
+++ src/engine/ePlayer.cpp
@@ -497,7 +497,7 @@
-static char *default_instant_chat[]=
+static char const *default_instant_chat[]=
{"/team \\",
"/msg \\",
"/me \\",
--- src/engine/eTeam.cpp
+++ src/engine/eTeam.cpp
@@ -45,18 +45,17 @@
{ 7, 7, 7 } // black
};
-static char* se_team_name[TEAMCOLORS]=
- {
- "$team_name_blue",
- "$team_name_gold",
- "$team_name_red",
- "$team_name_green",
- "$team_name_violet",
- "$team_name_ugly",
- "$team_name_white",
- "$team_name_black"
- };
-
+static tString se_team_name[TEAMCOLORS]=
+{
+ tString("$team_name_blue"),
+ tString("$team_name_gold"),
+ tString("$team_name_red"),
+ tString("$team_name_green"),
+ tString("$team_name_violet"),
+ tString("$team_name_ugly"),
+ tString("$team_name_white"),
+ tString("$team_name_black")
+};
//! Creates a color string inserter
inline static tColoredStringProxy ColorString( const eTeam * t )
--- src/render/rTexture.cpp
+++ src/render/rTexture.cpp
@@ -765,7 +765,7 @@
int rTextureGroups::TextureMode[rTextureGroups::TEX_GROUPS];
-char *rTextureGroups::TextureGroupDescription[rTextureGroups::TEX_GROUPS]=
+char const *rTextureGroups::TextureGroupDescription[rTextureGroups::TEX_GROUPS]=
{
"$texture_mode_0_help",
"$texture_mode_1_help",
--- src/render/rTexture.h
+++ src/render/rTexture.h
@@ -49,7 +49,7 @@
};
static int TextureMode[TEX_GROUPS]; //!< the OpenGL texture modes for the groubs
- static char *TextureGroupDescription[TEX_GROUPS]; //!< descriptions for the groups
+ static char const *TextureGroupDescription[TEX_GROUPS]; //!< descriptions for the groups
};
//! wrapper for SDL surface
--- src/render/rViewport.cpp
+++ src/render/rViewport.cpp
@@ -163,7 +163,7 @@
rViewportConfiguration *rViewportConfiguration::s_viewportConfigurations[]={
&single_vp,&two_vp,&two_b,&three_a,&three_b,&four_vp};
-char *rViewportConfiguration::s_viewportConfigurationNames[]=
+char const *rViewportConfiguration::s_viewportConfigurationNames[]=
{"$viewport_conf_name_0",
"$viewport_conf_name_1",
"$viewport_conf_name_2",
--- src/render/rViewport.h
+++ src/render/rViewport.h
@@ -93,7 +93,7 @@
static rViewportConfiguration *s_viewportConfigurations[];
static const int s_viewportNumConfigurations;
- static char *s_viewportConfigurationNames[];
+ static char const *s_viewportConfigurationNames[];
static rViewportConfiguration *CurrentViewportConfiguration();
--- src/tools/tCommandLine.cpp
+++ src/tools/tCommandLine.cpp
@@ -219,7 +219,7 @@
//!
// *******************************************************************************************
-bool tCommandLineParser::GetSwitch( char const * option, char * option_short )
+bool tCommandLineParser::GetSwitch( char const * option, char const * option_short )
{
if ( End() )
return false;
--- src/tools/tCommandLine.h
+++ src/tools/tCommandLine.h
@@ -62,7 +62,7 @@
struct tCommandLineParser
{
public:
- bool GetSwitch( char const * option, char * option_short=NULL ); //! Tests whether the current argument is the given switch
+ bool GetSwitch( char const * option, char const * option_short=NULL ); //! Tests whether the current argument is the given switch
bool GetOption( tString & target, char const * option, char * option_short=NULL ); //! Tests whether the current argument is the given option and extracts the value
bool End() const; //! Tests whether the command line parsing is done
--- src/tools/tError.h
+++ src/tools/tError.h
@@ -41,7 +41,7 @@
#include