games-action/supertuxkart: Version bump to 1.1
authorJames Le Cuirot <chewi@gentoo.org>
Sat, 28 Mar 2020 20:32:11 +0000 (20:32 +0000)
committerJames Le Cuirot <chewi@gentoo.org>
Sat, 28 Mar 2020 20:37:27 +0000 (20:37 +0000)
Many thanks to Kevin O'Shea for the patches.

Closes: https://bugs.gentoo.org/706088
Package-Manager: Portage-2.3.96, Repoman-2.3.20
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
games-action/supertuxkart/Manifest
games-action/supertuxkart/files/supertuxkart-1.1-fix-buildsystem.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-1.1-irrlicht-arch-support.patch [new file with mode: 0644]
games-action/supertuxkart/supertuxkart-1.1.ebuild [new file with mode: 0644]

index 5a0e070b25a859e08d5ea6997c795c69760de829..fd603cfb6c93364bee04941b1742a5d1efdf0579 100644 (file)
@@ -1,2 +1,3 @@
 DIST supertuxkart-1.0-src.tar.xz 597012504 BLAKE2B ed1b851bad8696b4593c54f215b115528afc29bde237f67627e2918c4a9fab09eddc204d0c879fa85c6b10b5544dba5fa5fc1b437cb83e6d884ac717e3369c28 SHA512 182754610abd09545630fa1f7fda858ba1731bbacb078bc71597e143f9cb2a1cfcedd3038720760d0471a89b79cc3bb1eb292d38fcd53be05aad7cb17c474ca9
+DIST supertuxkart-1.1-src.tar.xz 616739152 BLAKE2B a4dd9ec0a8ee158306dc902d3de363b68e7a317800df1b36339843521019df91c0713b74bdef8dc06b40bee57285237408a17b539c7bd7298cd3ef3deaf99fda SHA512 81d5ff59bb33eba8a00547239d54cacfde25eed0c56c857712a00a62032e4cf371cdd367159eaa4bfec6d4dd5781b705e41b58a26b864aa43678cfe9926bb804
 DIST supertuxkart.png 4435 BLAKE2B b48b95e1cdebe930837cc784c4c5e9a089a69077e2fcfed15fe5e8c4d649a0f8024769b2f2102bbaea3a94eb21f4b58b5d291b97493266c3c5c8d7335cf69a80 SHA512 a180332f79220431922fa8b351cb476ebc5d9d1df09f20707eb3bdd7002fd264cb027b8190c73c5221050e6e8601beb6758a5809d05aedfb18f0bdb426f47eda
diff --git a/games-action/supertuxkart/files/supertuxkart-1.1-fix-buildsystem.patch b/games-action/supertuxkart/files/supertuxkart-1.1-fix-buildsystem.patch
new file mode 100644 (file)
index 0000000..394a196
--- /dev/null
@@ -0,0 +1,20 @@
+diff --git a/lib/irrlicht/CMakeLists.txt b/lib/irrlicht/CMakeLists.txt
+index 92a881c81..1371fdf11 100644
+--- a/lib/irrlicht/CMakeLists.txt
++++ b/lib/irrlicht/CMakeLists.txt
+@@ -94,15 +94,6 @@
+ if(WIN32)
+     add_definitions(-D_IRR_STATIC_LIB_)
+     add_definitions(-D_CRT_SECURE_NO_WARNINGS) # Shut up about unsafe stuff
+-else()
+-    set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -Wall -pipe -O3 -fstrict-aliasing")
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pipe -O3 -fstrict-aliasing")
+-    if(CMAKE_COMPILER_IS_GNUCC)
+-        set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -fexpensive-optimizations")
+-    endif()
+-    if(CMAKE_COMPILER_IS_GNUCXX)
+-        set(CMAKE_CXX_FLAGS   "${CMAKE_CXX_FLAGS} -fexpensive-optimizations")
+-    endif()
+ endif()
+
+ if(USE_GLES2)
diff --git a/games-action/supertuxkart/files/supertuxkart-1.1-irrlicht-arch-support.patch b/games-action/supertuxkart/files/supertuxkart-1.1-irrlicht-arch-support.patch
new file mode 100644 (file)
index 0000000..ad9638f
--- /dev/null
@@ -0,0 +1,47 @@
+From: Christoph Egger <debian@christoph-egger.org>
+Subject: [PATCH] debian/arch-support
+
+Building on non-linux architectures currently fails with unpatched
+irrlicht because irrlicht tries to create Joystick support using
+linux-specific headers. However there's infrastructure to disable
+Joystick support, we just need to activate that on non-linux
+architectures.
+
+Additionally if built on a sparc machine irrlicht assumes wrongly it's
+a solaris system. We fix this wrong assumption as our sparc builds are
+all on linux.
+
+Finally irrlicht exceeds the size constraights for -fpic requiering to
+build with -fPIC. As upstream doesn't do that we need to fix this for
+sparc and s390 builds (powerPC?).
+
+Signed-off-by: Christoph Egger <debian@christoph-egger.org>
+
+---
+ lib/irrlicht/include/IrrCompileConfig.h |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+--- a/lib/irrlicht/include/IrrCompileConfig.h
++++ b/lib/irrlicht/include/IrrCompileConfig.h
+@@ -110,4 +110,8 @@
+ #ifndef _IRR_SOLARIS_PLATFORM_\r
+ #define _IRR_LINUX_PLATFORM_\r
++#include <endian.h>\r
++ #if __BYTE_ORDER == __BIG_ENDIAN\r
++  #define __BIG_ENDIAN__\r
++ #endif\r
+ #endif\r
+ #define _IRR_POSIX_API_\r
+@@ -465,11 +465,7 @@
+     #undef _IRR_WCHAR_FILESYSTEM\r
+ #endif\r
\r
+-#if defined(__sparc__) || defined(__sun__)\r
+-#define __BIG_ENDIAN__\r
+-#endif\r
+-\r
+-#if defined(_IRR_SOLARIS_PLATFORM_)\r
++#if defined(_IRR_SOLARIS_PLATFORM_) || defined(__FreeBSD_kernel__) || defined(__gnu_hurd__)\r
+     #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_\r
+ #endif\r
\r
diff --git a/games-action/supertuxkart/supertuxkart-1.1.ebuild b/games-action/supertuxkart/supertuxkart-1.1.ebuild
new file mode 100644 (file)
index 0000000..5701c73
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake desktop xdg
+
+DESCRIPTION="A kart racing game starring Tux, the linux penguin (TuxKart fork)"
+HOMEPAGE="https://supertuxkart.net/"
+SRC_URI="mirror://sourceforge/${PN}/SuperTuxKart/${PV}/${P}-src.tar.xz
+       mirror://gentoo/${PN}.png"
+
+LICENSE="GPL-2 GPL-3 CC-BY-SA-3.0 CC-BY-SA-4.0 CC0-1.0 public-domain ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug fribidi libressl nettle recorder wiimote"
+
+# don't unbundle irrlicht and bullet
+# both are modified and system versions will break the game
+# https://sourceforge.net/p/irrlicht/feature-requests/138/
+
+RDEPEND="
+       dev-libs/angelscript:=
+       dev-libs/fribidi
+       media-libs/freetype:2
+       media-libs/glew:0=
+       media-libs/libpng:0=
+       media-libs/libvorbis
+       media-libs/openal
+       net-libs/enet:1.3=
+       net-misc/curl
+       sys-libs/zlib
+       virtual/glu
+       virtual/jpeg:0
+       virtual/libintl
+       virtual/opengl
+       x11-libs/libX11
+       x11-libs/libXxf86vm
+       nettle? ( dev-libs/nettle:= )
+       !nettle? (
+               libressl? ( dev-libs/libressl:= )
+               !libressl? ( >=dev-libs/openssl-1.0.1d:0= )
+       )
+       recorder? ( media-libs/libopenglrecorder )
+       wiimote? ( net-wireless/bluez )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       sys-devel/gettext
+       virtual/pkgconfig"
+
+S="${WORKDIR}/${P}-src"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.1-irrlicht-arch-support.patch
+       "${FILESDIR}"/${PN}-0.9.3-irrlicht-system-libs.patch
+       "${FILESDIR}"/${PN}-1.1-fix-buildsystem.patch
+)
+
+src_prepare() {
+       cmake_src_prepare
+
+       # remove bundled libraries, just to be sure
+       rm -r lib/{angelscript,enet,glew,jpeglib,libpng,zlib} || die
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DUSE_SYSTEM_ANGELSCRIPT=ON
+               -DUSE_SYSTEM_ENET=ON
+               -DUSE_SYSTEM_GLEW=ON
+               -DUSE_SYSTEM_SQUISH=OFF
+               -DUSE_SYSTEM_WIIUSE=OFF
+               -DUSE_IPV6=OFF # not supported by system enet
+               -DOpenGL_GL_PREFERENCE=GLVND
+               -DUSE_CRYPTO_OPENSSL=$(usex nettle no yes)
+               -DENABLE_WAYLAND_DEVICE=OFF
+               -DBUILD_RECORDER=$(usex recorder)
+               -DUSE_WIIUSE=$(usex wiimote)
+               -DSTK_INSTALL_BINARY_DIR=bin
+               -DSTK_INSTALL_DATA_DIR=share/${PN}
+               -DBUILD_SHARED_LIBS=OFF # build bundled libsquish as static library
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       dodoc CHANGELOG.md
+
+       doicon -s 64 "${DISTDIR}"/${PN}.png
+}