summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'games-strategy')
-rw-r--r--games-strategy/s25rttr/files/s25rttr-0.8.1-miniupnpc-api-14.patch36
-rw-r--r--games-strategy/s25rttr/s25rttr-0.8.1-r1.ebuild110
2 files changed, 146 insertions, 0 deletions
diff --git a/games-strategy/s25rttr/files/s25rttr-0.8.1-miniupnpc-api-14.patch b/games-strategy/s25rttr/files/s25rttr-0.8.1-miniupnpc-api-14.patch
new file mode 100644
index 000000000000..d2ff0ee1fe39
--- /dev/null
+++ b/games-strategy/s25rttr/files/s25rttr-0.8.1-miniupnpc-api-14.patch
@@ -0,0 +1,36 @@
+From 3b08b907235c09ab84e3bb23d1e05fe5a1d1c00e Mon Sep 17 00:00:00 2001
+From: Manuel Zeise <mail@manuel-zeise.de>
+Date: Sun, 3 Jan 2016 16:54:05 +0100
+Subject: [PATCH] Switch for miniUPnPc API version 14 and above
+
+API version 14 of miniUPnPc has introduced a new TTL argument to
+upnpDiscover() with a recommended default value of 2. A new preprocessor
+statement evaluates the API version and selects the correct version of
+upnpDiscover() based on the API version.
+
+--- s25rttr-0.8.1/libutil/src/UPnP.cpp
++++ s25rttr-0.8.1/libutil/src/UPnP.cpp
+@@ -210,7 +210,11 @@
+ UPNPDev* devicelist = NULL;
+ #ifdef UPNPDISCOVER_SUCCESS
+ int upnperror = 0;
++#if (MINIUPNPC_API_VERSION >= 14) /* miniUPnPc API version 14 adds TTL parameter */
++ devicelist = upnpDiscover(2000, NULL, NULL, 0, 0 /* ipv6 */, 2, &upnperror);
++#else
+ devicelist = upnpDiscover(2000, NULL, NULL, 0, 0 /* ipv6 */, &upnperror);
++#endif
+ #else
+ devicelist = upnpDiscover(2000, NULL, NULL, 0);
+ #endif
+@@ -276,7 +280,11 @@
+ UPNPDev* devicelist = NULL;
+ #ifdef UPNPDISCOVER_SUCCESS
+ int upnperror = 0;
++#if (MINIUPNPC_API_VERSION >= 14) /* miniUPnPc API version 14 adds TTL parameter */
++ devicelist = upnpDiscover(2000, NULL, NULL, 0, 0 /* ipv6 */, 2, &upnperror);
++#else
+ devicelist = upnpDiscover(2000, NULL, NULL, 0, 0 /* ipv6 */, &upnperror);
++#endif
+ #else
+ devicelist = upnpDiscover(2000, NULL, NULL, 0);
+ #endif
diff --git a/games-strategy/s25rttr/s25rttr-0.8.1-r1.ebuild b/games-strategy/s25rttr/s25rttr-0.8.1-r1.ebuild
new file mode 100644
index 000000000000..9f39e6bb536d
--- /dev/null
+++ b/games-strategy/s25rttr/s25rttr-0.8.1-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils cmake-utils gnome2-utils games
+
+DESCRIPTION="Open Source remake of The Settlers II game (needs original game files)"
+HOMEPAGE="http://www.siedler25.org/"
+# no upstream source tarball yet
+# https://bugs.launchpad.net/s25rttr/+bug/1069546
+SRC_URI="https://dev.gentoo.org/~hasufell/distfiles/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug glfw"
+
+RDEPEND="app-arch/bzip2
+ media-libs/libsamplerate
+ media-libs/libsdl[X,sound,opengl,video]
+ media-libs/libsndfile
+ media-libs/sdl-mixer[vorbis]
+ net-libs/miniupnpc
+ virtual/libiconv
+ virtual/opengl
+ glfw? ( <media-libs/glfw-3 )"
+DEPEND="${RDEPEND}
+ sys-devel/gettext"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-cmake.patch \
+ "${FILESDIR}"/${P}-soundconverter.patch \
+ "${FILESDIR}"/${P}-fpic.patch \
+ "${FILESDIR}"/${P}-miniupnpc-api-14.patch
+}
+
+src_configure() {
+ local arch
+ case ${ARCH} in
+ amd64)
+ arch="x86_64" ;;
+ x86)
+ arch="i386" ;;
+ *) die "Architecture ${ARCH} not yet supported" ;;
+ esac
+
+ local mycmakeargs=(
+ -DCOMPILEFOR="linux"
+ -DCOMPILEARCH="${arch}"
+ -DCMAKE_SKIP_RPATH=YES
+ -DPREFIX="${GAMES_PREFIX}"
+ -DBINDIR="${GAMES_BINDIR}"
+ -DDATADIR="${GAMES_DATADIR}"
+ -DLIBDIR="$(games_get_libdir)/${PN}"
+ -DDRIVERDIR="$(games_get_libdir)/${PN}"
+ -DGAMEDIR="~/.${PN}/S2"
+ $(cmake-utils_use_build glfw GLFW_DRIVER)
+ )
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ # work around some relative paths (CMAKE_IN_SOURCE_BUILD not supported)
+ ln -s "${CMAKE_USE_DIR}"/RTTR "${CMAKE_BUILD_DIR}"/RTTR || die
+
+ cmake-utils_src_compile
+
+ mv "${CMAKE_USE_DIR}"/RTTR/{sound-convert,s-c_resample} "${T}"/ || die
+}
+
+src_install() {
+ cd "${CMAKE_BUILD_DIR}" || die
+
+ exeinto "$(games_get_libdir)"/${PN}
+ doexe "${T}"/{sound-convert,s-c_resample}
+ exeinto "$(games_get_libdir)"/${PN}/video
+ doexe driver/video/SDL/src/libvideoSDL.so
+ use glfw && doexe driver/video/GLFW/src/libvideoGLFW.so
+ exeinto "$(games_get_libdir)"/${PN}/audio
+ doexe driver/audio/SDL/src/libaudioSDL.so
+
+ insinto "${GAMES_DATADIR}"
+ doins -r "${CMAKE_USE_DIR}"/RTTR
+ dosym ./LSTS/splash.bmp "${GAMES_DATADIR}"/RTTR/splash.bmp
+
+ doicon -s 64 "${CMAKE_USE_DIR}"/debian/${PN}.png
+ dogamesbin src/s25client
+ make_desktop_entry "s25client" "Settlers RTTR" "${PN}"
+ dodoc RTTR/texte/{keyboardlayout.txt,readme.txt}
+
+ prepgamesdirs
+}
+
+pkg_preinst() {
+ games_pkg_preinst
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ games_pkg_postinst
+ elog "Copy your Settlers2 game files into ~/.${PN}/S2"
+
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}