From e6532de05dd104f6427e27a6445b58e4ba062da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20Carton?= Date: Tue, 26 Dec 2017 05:01:24 +0100 Subject: games-action/supertuxkart: add version 0.9.3 Closes: https://bugs.gentoo.org/show_bug.cgi?id=640574 --- games-action/supertuxkart/Manifest | 1 + .../files/supertuxkart-0.9.3-fix-buildsystem.patch | 103 +++++++++++++++++++++ .../supertuxkart-0.9.3-irrlicht-arch-support.patch | 47 ++++++++++ .../supertuxkart-0.9.3-irrlicht-bundled-libs.patch | 33 +++++++ .../supertuxkart-0.9.3-irrlicht-system-libs.patch | 56 +++++++++++ .../files/supertuxkart-0.9.3-unbundle-enet.patch | 57 ++++++++++++ .../files/supertuxkart-0.9.3-unbundle-libs.patch | 19 ++++ .../supertuxkart/supertuxkart-0.9.3.ebuild | 90 ++++++++++++++++++ 8 files changed, 406 insertions(+) create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-fix-buildsystem.patch create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-arch-support.patch create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-bundled-libs.patch create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-system-libs.patch create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-enet.patch create mode 100644 games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-libs.patch create mode 100644 games-action/supertuxkart/supertuxkart-0.9.3.ebuild (limited to 'games-action') diff --git a/games-action/supertuxkart/Manifest b/games-action/supertuxkart/Manifest index 784666bf9dd7..dcfa47b571f9 100644 --- a/games-action/supertuxkart/Manifest +++ b/games-action/supertuxkart/Manifest @@ -1,2 +1,3 @@ DIST supertuxkart-0.9.2-src.tar.xz 501606188 BLAKE2B cc77900ef49b31bfa26cd7be244279a64422757fce6bd020b262bfb8159d486d454a0bcfe49b6c958b8951b60accdbf7a41061cd69b1e2c74e9dfd7ac736919e SHA512 57f11d518736f88044d1cb73e1dfcc92f5667f3b1147ab7e54435f6bc560fe856c3650410410da5fa048bf23d0b64fc8a9887c830001e1435b0359c9163e71b0 +DIST supertuxkart-0.9.3-src.tar.xz 544517772 BLAKE2B 84ab64371a59bf302905181ad98dd12542a9ffda18b9081ecfa6fcbb61d89c6b1f76f3598184459bbb40a42a1c968767837e76bbd0c9b2ade6b4c18831bc61fb SHA512 29eb1d8fb8e336453e590273089af09eac9a563f82c0bc797d43d5e21d5c9d1274a84ea7ee46487b3d127c47e55e3d233ad7e0e8c502c15dbafc1cc0f5c861c9 DIST supertuxkart.png 4435 BLAKE2B b48b95e1cdebe930837cc784c4c5e9a089a69077e2fcfed15fe5e8c4d649a0f8024769b2f2102bbaea3a94eb21f4b58b5d291b97493266c3c5c8d7335cf69a80 SHA512 a180332f79220431922fa8b351cb476ebc5d9d1df09f20707eb3bdd7002fd264cb027b8190c73c5221050e6e8601beb6758a5809d05aedfb18f0bdb426f47eda diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.3-fix-buildsystem.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-fix-buildsystem.patch new file mode 100644 index 000000000000..def5c80340ba --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-fix-buildsystem.patch @@ -0,0 +1,103 @@ +* Unbundle remaining libraries: GLEW, zlib, png, jpeg +* Add -DAS_DEPRECATED for Angelscript +* Remove definition of debug macros +* Build bundled Irrlicht with user flags + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -110,43 +110,11 @@ + include_directories(${ENET_INCLUDE_DIR}) + + # Build glew library + if(NOT USE_GLES2 AND NOT SERVER_ONLY) ++ find_package(GLEW REQUIRED) ++ include_directories(${GLEW_INCLUDE_DIRS}) + add_definitions(-DGLEW_NO_GLU) +- add_subdirectory("${PROJECT_SOURCE_DIR}/lib/glew") +- include_directories("${PROJECT_SOURCE_DIR}/lib/glew/include") + endif() + +-if(MSVC OR APPLE) +- if (NOT APPLE) +- # Build zlib library +- add_subdirectory("${PROJECT_SOURCE_DIR}/lib/zlib") +- include_directories("${PROJECT_SOURCE_DIR}/lib/zlib") +- +- set(ZLIB_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/zlib" "${PROJECT_BINARY_DIR}/lib/zlib/") +- set(ZLIB_LIBRARY zlibstatic) +- endif() +- +- # Build png library +- set(SKIP_INSTALL_ALL TRUE) +- set(PNG_STATIC TRUE CACHE BOOL "Build static lib") +- set(PNG_TESTS FALSE CACHE BOOL "Build libpng tests") +- set(PNG_SHARED FALSE CACHE BOOL "Build shared lib") +- add_subdirectory("${PROJECT_SOURCE_DIR}/lib/libpng") +- include_directories("${PROJECT_SOURCE_DIR}/lib/libpng") +- +- set(PNG_PNG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/libpng/") +- set(PNG_LIBRARY png_static) +-endif() +- +-# Add jpeg library +-if (APPLE) +- add_subdirectory("${PROJECT_SOURCE_DIR}/lib/jpeglib") +- include_directories("${PROJECT_SOURCE_DIR}/lib/jpeglib") +- set(JPEG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/jpeglib/") +- set(JPEG_LIBRARY jpeglib) +-else() +- find_package(JPEG REQUIRED) +- include_directories(${JPEG_INCLUDE_DIR}) +-endif() + + if (BUILD_RECORDER) +@@ -206,6 +174,7 @@ + find_package(Angelscript) + if(ANGELSCRIPT_FOUND) + include_directories(${Angelscript_INCLUDE_DIRS}) ++ add_definitions(-DAS_DEPRECATED) + else() + message(FATAL_ERROR "Angelscript not found. " + "Either install angelscript or use built-in version using " +@@ -307,14 +276,6 @@ + # VS will automatically add NDEBUG for release mode, but only _DEBUG in debug mode. + # Since STK uses DEBUG, this is added for debug compilation only: + set_property(DIRECTORY PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG) +-else() +- # All non VS generators used create only a single compile mode, so +- # compile flags can be simplye be added +- if(CMAKE_BUILD_TYPE MATCHES Debug) +- add_definitions(-DDEBUG) +- else() +- add_definitions(-DNDEBUG) +- endif() + endif() + + # TODO: remove this switch +@@ -426,7 +395,7 @@ + if(NOT SERVER_ONLY) + if(NOT USE_GLES2) +- target_link_libraries(supertuxkart ${OPENGL_gl_LIBRARY} glew graphics_utils) ++ target_link_libraries(supertuxkart ${OPENGL_gl_LIBRARY} ${GLEW_LIBRARIES} graphics_utils) + else() + target_link_libraries(supertuxkart GLESv2) + endif() + endif() +--- a/lib/irrlicht/CMakeLists.txt ++++ b/lib/irrlicht/CMakeLists.txt +@@ -68,15 +68,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 -fno-exceptions -fstrict-aliasing") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pipe -O3 -fno-exceptions -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-0.9.3-irrlicht-arch-support.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-arch-support.patch new file mode 100644 index 000000000000..66191861a963 --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-arch-support.patch @@ -0,0 +1,47 @@ +From: Christoph Egger +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 + +--- + 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_ + #define _IRR_LINUX_PLATFORM_ ++#include ++ #if __BYTE_ORDER == __BIG_ENDIAN ++ #define __BIG_ENDIAN__ ++ #endif + #endif + #define _IRR_POSIX_API_ +@@ -460,11 +464,7 @@ + #undef _IRR_WCHAR_FILESYSTEM + #endif + +-#if defined(__sparc__) || defined(__sun__) +-#define __BIG_ENDIAN__ +-#endif +- +-#if defined(_IRR_SOLARIS_PLATFORM_) ++#if defined(_IRR_SOLARIS_PLATFORM_) || defined(__FreeBSD_kernel__) || defined(__gnu_hurd__) + #undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_ + #endif + diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-bundled-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-bundled-libs.patch new file mode 100644 index 000000000000..194f278b958d --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-bundled-libs.patch @@ -0,0 +1,33 @@ +Description: Remove embedded libraries in Irrlicht source (flagged by lintian) + Since removing the subdirectories containing libjpeg/libpng/zlib/bzip2/lzma + would make this patch way too large, this patch should be applied on top of + rm -rf lib/jpeglib/ + rm -rf lib/zlib/ + rm -rf lib/libpng/ + in debian/rules (e.g. in the clean target). +Forwarded: no +Author: Vincent Cheng +Last-Update: 2016-07-07 + +--- a/lib/irrlicht/CMakeLists.txt ++++ b/lib/irrlicht/CMakeLists.txt +@@ -2,9 +2,6 @@ + find_package(PNG REQUIRED) + find_package(JPEG REQUIRED) + +-include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include/" +- "${JPEG_INCLUDE_DIR}" +- "${PNG_INCLUDE_DIRS}" +- "${ZLIB_INCLUDE_DIR}") ++include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/) + + if(MSVC OR APPLE) +@@ -576,7 +573,7 @@ + endif() + + add_library(stkirrlicht STATIC ${IRRLICHT_SOURCES}) + +-target_link_libraries(stkirrlicht ${PNG_LIBRARY} ${JPEG_LIBRARY} ${ZLIB_LIBRARY}) ++target_link_libraries(stkirrlicht png jpeg z) + + if(NOT SERVER_ONLY) diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-system-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-system-libs.patch new file mode 100644 index 000000000000..ce7ce63fa661 --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-irrlicht-system-libs.patch @@ -0,0 +1,56 @@ +Subject: [PATCH] debian/use-system-libs + +Path to build irrlicht using the system libraries for png,zlib and +jpeg as well as the glext family of header files. + +Signed-off-by: Christoph Egger + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) +- #include "glext.h" ++ #include + #endif + #include "wglext.h" + +@@ -36,7 +36,7 @@ + #endif + #include + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) +- #include "glext.h" ++ #include + #endif + #elif defined(_IRR_COMPILE_WITH_SDL_DEVICE_) && !defined(_IRR_COMPILE_WITH_X11_DEVICE_) + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) +@@ -50,7 +50,7 @@ + #include + #include + typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +- #include "glext.h" ++ #include + #else + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) + #define GL_GLEXT_LEGACY 1 +--- a/lib/irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.h ++++ b/lib/irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.h +@@ -12,7 +12,7 @@ + #define WIN32_LEAN_AND_MEAN + #include + #include +- #include "glext.h" ++ #include + #else + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) + #define GL_GLEXT_LEGACY 1 +@@ -25,7 +25,7 @@ + #include + #endif + #if defined(_IRR_OPENGL_USE_EXTPOINTER_) +- #include "glext.h" ++ #include + #endif + #endif + diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-enet.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-enet.patch new file mode 100644 index 000000000000..8c00fce7e186 --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-enet.patch @@ -0,0 +1,57 @@ +Description: Build supertuxkart against system enet instead of embedded copy +Forwarded: not-yet +Author: Vincent Cheng +Last-Update: 2016-07-17 + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -105,9 +105,9 @@ + add_subdirectory("${PROJECT_SOURCE_DIR}/lib/bullet") + include_directories("${PROJECT_SOURCE_DIR}/lib/bullet/src") + +-# Build the ENet UDP network library +-add_subdirectory("${PROJECT_SOURCE_DIR}/lib/enet") +-include_directories("${PROJECT_SOURCE_DIR}/lib/enet/include") ++# ENet ++find_package(ENet REQUIRED) ++include_directories(${ENET_INCLUDE_DIR}) + + # Build glew library + if(NOT USE_GLES2 AND NOT SERVER_ONLY) +@@ -406,10 +406,10 @@ + bulletdynamics + bulletcollision + bulletmath +- enet + stkirrlicht + ${Angelscript_LIBRARIES} + ${CURL_LIBRARIES} ++ ${ENET_LIBRARIES} + ${OGGVORBIS_LIBRARIES} + ${OPENAL_LIBRARY} + ${FREETYPE_LIBRARIES} +--- /dev/null ++++ b/cmake/FindENet.cmake +@@ -0,0 +1,22 @@ ++# - Find ENet ++# Find the ENet includes and libraries ++# ++# Following variables are provided: ++# ENET_FOUND ++# True if ENet has been found ++# ENET_INCLUDE_DIR ++# The include directories of ENet ++# ENET_LIBRARIES ++# ENet library list ++ ++ ++find_path(ENET_INCLUDE_DIR enet/enet.h /usr/include) ++find_library(ENET_LIBRARY NAMES enet PATHS /usr/lib) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(ENet DEFAULT_MSG ENET_INCLUDE_DIR ENET_LIBRARY) ++ ++# Publish variables ++set(ENET_INCLUDE_DIRS ${ENET_INCLUDE_DIR}) ++set(ENET_LIBRARIES ${ENET_LIBRARY}) ++mark_as_advanced(ENET_INCLUDE_DIR ENET_LIBRARY) diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-libs.patch new file mode 100644 index 000000000000..798a6cdea7ac --- /dev/null +++ b/games-action/supertuxkart/files/supertuxkart-0.9.3-unbundle-libs.patch @@ -0,0 +1,19 @@ +Description: Link against system copies of zlib/libpng/libjpeg/bzip2 +Forwarded: not-yet +Author: Vincent Cheng +Last-Update: 2016-07-17 + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -416,6 +416,11 @@ + ${JPEG_LIBRARIES} + ${TURBOJPEG_LIBRARY} + #${VPX_LIBRARIES} ++ X11 ++ z ++ png ++ jpeg ++ bz2 + ) + + if(NOT SERVER_ONLY) diff --git a/games-action/supertuxkart/supertuxkart-0.9.3.ebuild b/games-action/supertuxkart/supertuxkart-0.9.3.ebuild new file mode 100644 index 000000000000..48522586a24f --- /dev/null +++ b/games-action/supertuxkart/supertuxkart-0.9.3.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit cmake-utils eutils gnome2-utils + +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-2.0 public-domain ZLIB" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug fribidi wiimote openglrecorder" + +# 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=" + 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 + fribidi? ( dev-libs/fribidi ) + wiimote? ( net-wireless/bluez ) + openglrecorder? ( media-libs/libopenglrecorder )" +DEPEND="${RDEPEND} + sys-devel/gettext + virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${PN}-0.9.3-unbundle-enet.patch + "${FILESDIR}"/${PN}-0.9.3-unbundle-libs.patch + "${FILESDIR}"/${PN}-0.9.3-irrlicht-arch-support.patch + "${FILESDIR}"/${PN}-0.9.3-irrlicht-bundled-libs.patch + "${FILESDIR}"/${PN}-0.9.3-irrlicht-system-libs.patch + "${FILESDIR}"/${PN}-0.9.3-fix-buildsystem.patch +) + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled libraries, just to be sure + rm -r lib/{enet,glew,jpeglib,libpng,zlib} || die +} + +src_configure() { + local mycmakeargs=( + # system dev-libs/angelscript leads + # to failed assert segfaults + -DUSE_SYSTEM_ANGELSCRIPT=OFF + -DUSE_FRIBIDI=$(usex fribidi) + -DUSE_WIIUSE=$(usex wiimote) + -DBUILD_RECORDER=$(usex openglrecorder) + -DSTK_INSTALL_BINARY_DIR=bin + -DSTK_INSTALL_DATA_DIR=share/${PN} + ) + cmake-utils_src_configure +} + +src_install() { + cmake-utils_src_install + dodoc CHANGELOG.md + + doicon -s 64 "${DISTDIR}"/${PN}.png +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} -- cgit v1.2.3