From 21cd8ee0efaf301423215941c04f334ab556a024b9ddc19fad695309f5f51757 Mon Sep 17 00:00:00 2001 From: Pavol Rusnak Date: Wed, 11 May 2011 13:33:53 +0000 Subject: [PATCH] Accepting request 70034 from home:ketheriel:UnknownHorizons New package - FIFE Engine, a 2D game engine under active development. Dependency for "Unknown Horizons" soon to be provided. OBS-URL: https://build.opensuse.org/request/show/70034 OBS-URL: https://build.opensuse.org/package/show/games/fife?expand=0&rev=1 --- .gitattributes | 23 +++ fife-0.3.2.tar.bz2 | 3 + fife-changeset_r3592.patch | 70 +++++++++ fife-opensuse-packaging-fixes.patch | 26 ++++ fife-rpmlintrc | 2 + fife-soname-fix.patch | 13 ++ fife.changes | 25 ++++ fife.spec | 218 ++++++++++++++++++++++++++++ 8 files changed, 380 insertions(+) create mode 100644 .gitattributes create mode 100644 fife-0.3.2.tar.bz2 create mode 100644 fife-changeset_r3592.patch create mode 100644 fife-opensuse-packaging-fixes.patch create mode 100644 fife-rpmlintrc create mode 100644 fife-soname-fix.patch create mode 100644 fife.changes create mode 100644 fife.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/fife-0.3.2.tar.bz2 b/fife-0.3.2.tar.bz2 new file mode 100644 index 0000000..e43594d --- /dev/null +++ b/fife-0.3.2.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22c1be393b047f3bbcd2061e9ad20bf88391177217ab959410435857d3b16c4e +size 4728905 diff --git a/fife-changeset_r3592.patch b/fife-changeset_r3592.patch new file mode 100644 index 0000000..7c78f8b --- /dev/null +++ b/fife-changeset_r3592.patch @@ -0,0 +1,70 @@ +diff -urN fife-0.3.2.old//engine/core/vfs/vfsdirectory.cpp fife-0.3.2/engine/core/vfs/vfsdirectory.cpp +--- fife-0.3.2.old//engine/core/vfs/vfsdirectory.cpp 2010-02-11 04:18:42.000000000 +0000 ++++ fife-0.3.2/engine/core/vfs/vfsdirectory.cpp 2011-05-09 17:59:03.878062479 +0100 +@@ -25,6 +25,7 @@ + // 3rd party library includes + #include + #include ++#include + + // FIFE includes + // These includes are split up in two parts, separated by one empty line +@@ -37,6 +38,27 @@ + #include "vfsdirectory.h" + + namespace bfs = boost::filesystem; ++ ++namespace ++{ ++ // grab the major and minor version of boost, ++ // calculations taken from boost/version.hpp ++ #define BOOST_MAJOR_VERSION BOOST_VERSION / 100000 ++ #define BOOST_MINOR_VERSION BOOST_VERSION / 100 % 1000 ++ ++#if (BOOST_MAJOR_VERSION >= 1 && BOOST_MINOR_VERSION >= 46) ++ // this define will tell us to use boost filesystem ++ // version 3 since this is the default version of the library ++ // starting in boost version 1.46 and above ++ #define USE_BOOST_FILESYSTEM_V3 ++#elif (BOOST_MAJOR_VERSION >= 1 && BOOST_MINOR_VERSION >= 36) ++ // this define will tell us not to use the deprecated functions ++ // in boost filesystem version 2 library which were introduced ++ // in boost version 1.36 and above ++ #define USE_NON_DEPRECATED_BOOST_FILESYSTEM_V2 ++#endif ++} ++ + namespace FIFE { + static Logger _log(LM_VFS); + +@@ -94,10 +116,26 @@ + if (bfs::is_directory(*i) != directorys) + continue; + +- // This only works with boost 1.34 and up +- // list.insert(i->path().leaf()); +- // This one should be ok with both 1.33 and above +- list.insert(i->leaf()); ++#if defined(USE_BOOST_FILESYSTEM_V3) ++ // boost version 1.46 and above uses ++ // boost filesystem version 3 as the default ++ // which has yet a different way of getting ++ // a filename string ++ bfs::path filenamePath = i->path().filename(); ++ list.insert(filenamePath.string()); ++#elif defined(USE_NON_DEPRECATED_BOOST_FILESYSTEM_V2) ++ // the new way in boost filesystem version 2 ++ // to get a filename string ++ //(this is for boost version 1.36 and above) ++ list.insert(i->path().filename()); ++#else ++ // the old way in boost filesystem version 2 ++ // to get a filename string ++ //(this is for boost version 1.35 and below) ++ list.insert(i->leaf()); ++#endif ++ ++ + } + } + catch (const bfs::filesystem_error& ex) { diff --git a/fife-opensuse-packaging-fixes.patch b/fife-opensuse-packaging-fixes.patch new file mode 100644 index 0000000..54d2a0e --- /dev/null +++ b/fife-opensuse-packaging-fixes.patch @@ -0,0 +1,26 @@ +diff -urN fife-0.3.2.old//build/linux2-config.py fife-0.3.2/build/linux2-config.py +--- fife-0.3.2.old//build/linux2-config.py 2010-11-09 15:46:04.000000000 +0000 ++++ fife-0.3.2/build/linux2-config.py 2011-05-08 23:45:02.815939632 +0100 +@@ -30,19 +30,15 @@ + def initEnvironment(env): + + rootpath = env.Dir('#.').srcnode().abspath +- extincludepath = os.path.join(rootpath, 'ext', 'install', 'include') +- extlibpath = os.path.join(rootpath, 'ext', 'install', 'lib') + + env.Append(CPPPATH = [os.path.join('/', 'opt', 'include'), + os.path.join('/', 'usr', 'include', 'vorbis'), + os.path.join('/', 'usr', 'include', 'SDL'), +- os.path.join('/', 'usr', 'include', pythonversion), +- extincludepath]) ++ os.path.join('/', 'usr', 'include', pythonversion)]) + +- env.Append(LIBPATH = [os.path.join('/', 'opt', 'lib'), +- extlibpath]) ++ env.Append(LIBPATH = [os.path.join('/', 'opt', '%{_lib}')]) + +- env.AppendENVPath('LD_RUN_PATH', os.path.join('..', '..', '..', extlibpath)) ++ env.AppendENVPath('LD_RUN_PATH', os.path.join('..', '..', '..')) + + env.AppendUnique(CXXFLAGS=["-DPNG_SKIP_SETJMP_CHECK"]) + diff --git a/fife-rpmlintrc b/fife-rpmlintrc new file mode 100644 index 0000000..9905b5d --- /dev/null +++ b/fife-rpmlintrc @@ -0,0 +1,2 @@ +# Nevertheless, useful comments... +addFilter("macro-in-comment") diff --git a/fife-soname-fix.patch b/fife-soname-fix.patch new file mode 100644 index 0000000..c242f82 --- /dev/null +++ b/fife-soname-fix.patch @@ -0,0 +1,13 @@ +diff -urN fife-0.3.2.old//engine/SConscript fife-0.3.2/engine/SConscript +--- fife-0.3.2.old//engine/SConscript 2010-07-05 20:36:41.000000000 +0100 ++++ fife-0.3.2/engine/SConscript 2011-05-09 01:15:23.731939633 +0100 +@@ -128,7 +128,8 @@ + SHLIBEMITTER = '') + else: + sharedlib = env.SharedLibrary(target = fife_tgt, +- source = compilefiles) ++ source = compilefiles, ++ LINKFLAGS=['-Wl,-soname,libfife.so.SONAME']) + + #************************************************************************** + #python library target diff --git a/fife.changes b/fife.changes new file mode 100644 index 0000000..bf92abd --- /dev/null +++ b/fife.changes @@ -0,0 +1,25 @@ +------------------------------------------------------------------- +Tue May 10 00:23:58 UTC 2011 - nmarques@opensuse.org + +- Add necessary changes to enable Fedora builds. + + Replaced %py_requires macro (uncool for Fedora builds); + + Minor cleanups. + +------------------------------------------------------------------- +Mon May 9 16:12:10 UTC 2011 - nmarques@opensuse.org + +- Add patches: + + fife-opensuse-packaging-fixes.patch: removes 'ext' (bundled + libraries), we build with system shared libraries; + + fife-changeset_r3592.patch: cherry picked from git, fixes some + build issues with boost. + + fife-soname-fix.patch: Adds soname to package. +- Add rpmlintrc: currently used to supress 'macro-in-comments'. +- Spec changes: several tweaks. + +------------------------------------------------------------------- +Mon May 9 03:22:18 UTC 2011 - nmarques@opensuse.org + +- Initial package from version 0.3.2 + + Parallel builds disable, don't work for this package. + diff --git a/fife.spec b/fife.spec new file mode 100644 index 0000000..4233fa8 --- /dev/null +++ b/fife.spec @@ -0,0 +1,218 @@ +# +# spec file for fife (Version 0.3.2) +# +# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +%global soname 0 + +# Release sources: http://sourceforge.net/projects/fife/files/active/src/%{name}-%{version}.tar.gz/download +# The sources were recompressed as: %{name}-%{version}.tar.bz2 for this package. +# Not building the documentation for this package, anyone wants docs? + +Name: fife +# Quick workaround for a fast library package +%define _name libfife +Version: 0.3.2 +Release: 1 +License: LGPLv2+ +Summary: A powerful 2D game engine +Url: http://www.fifengine.de +Group: Amusements/Games/Other +Source: %{name}-%{version}.tar.bz2 +# Currently: "macro-in-comment" +Source99: %{name}-rpmlintrc +# PATCH-FIX-OPENSUSE - fife-opensuse-packaging-fixes.patch nmarques@opensuse.org -- Remove 'ext' so we use system shared libraries +Patch0: %{name}-opensuse-packaging-fixes.patch +# PATCH-FIX-UPSTREAM - fife-changeset_r3592.patch nmarques@opensuse.org -- Cherry picked from git, fixes some issues with boost on vfsdirectory.cpp +Patch1: %{name}-changeset_r3592.patch +# PATCH-FIX-UPSTREAM - fife-soname-fix.patch -- Modified for openSUSE from existing Fedora patch +Patch2: %{name}-soname-fix.patch +BuildRequires: boost-devel +BuildRequires: freeglut-devel +BuildRequires: gcc-c++ +BuildRequires: guichan-devel +BuildRequires: libpng-devel +BuildRequires: libstdc++-devel +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(openal) +BuildRequires: pkgconfig(sdl) +BuildRequires: pkgconfig(vorbis) +BuildRequires: python-devel +# Required for a quick rpath workaround +BuildRequires: chrpath +BuildRequires: scons +BuildRequires: swig +BuildRequires: zlib-devel +# openSUSE/Fedora specific BRs. Unfortunatly no pkgconfig() present! +%if 0%{?suse_version} +BuildRequires: libSDL_image-devel +BuildRequires: libSDL_ttf-devel +BuildRequires: pkg-config +%endif +%if 0%{?fedora_version} +BuildRequires: SDL_image-devel +BuildRequires: SDL_ttf-devel +BuildRequires: libXcursor-devel +BuildRequires: pkgconfig +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +FIFE stands for Flexible Isometric Free Engine and is a cross platform +game creation framework. It provides you with the ability to create a +game using Python interfaces. + +You can make just about any 2D game with FIFE but it is more geared +toward a RTS or RPG in just about any view style (isometric ortop-down). +For more information on FIFE's capabilities visit the Features page. + + --- + http://www.fifengine.de + http://wiki.fifengine.net/Features + +%package -n %{_name}%{soname} +Summary: System shared libraries for fife engine games +Group: Amusements/Games/Other + +%description -n %{_name}%{soname} +FIFE stands for Flexible Isometric Free Engine and is a cross platform +game creation framework. It provides you with the ability to create a +game using Python interfaces. + +This package provides the shared libraries. + + --- + http://www.fifengine.de + http://wiki.fifengine.net/Features + +%package -n python-%{name} +Summary: Python extensions for the fife engine +Group: Amusements/Games/Other +Requires: python + +%description -n python-%{name} +FIFE stands for Flexible Isometric Free Engine and is a cross platform +game creation framework. It provides you with the ability to create a +game using Python interfaces. + +This package provides the python extensions. + + --- + http://www.fifengine.de + http://wiki.fifengine.net/Features + +%package devel +Summary: Development files for %{name} engine +Group: Development/Libraries/Other +Requires: %{_name}%{soname} = %{version} +Requires: python-%{name} = %{version} +%if 0%{?suse_version} +Requires: pkg-config +%endif +%if 0%{?fedora_version} +Requires: pkgconfig +%endif + +%description devel +FIFE stands for Flexible Isometric Free Engine and is a cross platform +game creation framework. It provides you with the ability to create a +game using Python interfaces. + +This package provides the development files. + + --- + http://www.fifengine.de + http://wiki.fifengine.net/Features + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +# Add soname to generated library +%patch2 -p1 +sed -i "s|SONAME|%{soname}|g" \ + engine/SConscript +# Use libdir instead of lib (for 64bit systems) +for l in ./engine/SConscript ./build/linux2-config.py +do + sed -i "s|'lib'|'%{_lib}'|g" $l +done +# UTF-8 friendly fix - upstream pinged! +for f in AUTHORS CHANGES COPYING README +do + iconv -f iso-8859-1 -t utf-8 $f |sed 's|\r||g' > $f.utf8 + touch -c -r $f $f.utf8 + mv $f.utf8 $f +done + +%build +# Parallel builds will break the package - upstream pinged +scons \ + CXXFLAGS='%{optflags}' \ + --prefix=%{_prefix} \ + --python-prefix=%{python_sitelib} \ + --enable-rend-camzone \ + --enable-rend-grid \ + %{name}-shared \ + %{name}-python \ + %{name}-swig + +%install +# Parallel builds will break the package - upstream pinged +scons \ + CXXFLAGS='%{optflags}' \ + DESTDIR=%{buildroot} \ + install-shared \ + install-python \ + install-dev \ + --prefix=%{_prefix} \ + --python-prefix=%{python_sitelib} +# rpath workaround +find %{buildroot} -name '*.so' -print -type f -exec chrpath --delete {} \; +# playing a little bit with soname +mv %{buildroot}/%{_libdir}/%{_name}.so %{buildroot}/%{_libdir}/%{_name}.so.%{version} +pushd %{buildroot}%{_libdir} +ln -s %{_name}.so.%{version} %{_name}.so.%{soname} +ln -s %{_name}.so.%{version} %{_name}.so +popd +# We use system shared libraries, not static +find %{buildroot}%{_libdir} -name '*.a' -type f -delete -print + +%clean +%{?buildroot:%__rm -rf "%{buildroot}"} + +%post -n %{_name}%{soname} -p /sbin/ldconfig + +%postun -n %{_name}%{soname} -p /sbin/ldconfig + +%files -n %{_name}%{soname} +%defattr(-,root,root) +%doc AUTHORS COPYING README +%{_libdir}/*.so.* + +%files -n python-%{name} +%defattr(-,root,root) +%{python_sitelib}/fife/ + +%files devel +%defattr(-,root,root) +%doc CHANGES +%{_includedir}/fife/ +%{_libdir}/*.so + +%changelog +