games-action/supertuxkart: Version bump to 0.9.2
authorDavid Seifert <soap@gentoo.org>
Fri, 30 Dec 2016 10:00:20 +0000 (12:00 +0200)
committerDavid Seifert <soap@gentoo.org>
Fri, 30 Dec 2016 14:37:33 +0000 (16:37 +0200)
Gentoo-bug: 594396, 598491, 598493
* EAPI=6
* Remove games.eclass
* Add Debian patches for unbundling
* Add GPL-2 license

Package-Manager: Portage-2.3.3, Repoman-2.3.1

games-action/supertuxkart/Manifest
games-action/supertuxkart/files/supertuxkart-0.9.2-fix-angelscript.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-fix-buildsystem.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-arch-support.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-as-needed.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-bundled-libs.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-system-libs.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-unbundle-enet.patch [new file with mode: 0644]
games-action/supertuxkart/files/supertuxkart-0.9.2-unbundle-libs.patch [new file with mode: 0644]
games-action/supertuxkart/supertuxkart-0.9.2.ebuild [new file with mode: 0644]

index 99cc09367098266a87a3a317bf782ba00a38283a..93f2de11f33436b86615fc65ff8d61f40503e03f 100644 (file)
@@ -1,2 +1,3 @@
 DIST supertuxkart-0.9.1-src.tar.xz 425822808 SHA256 c50f00a71df165fb613d20e86bea2d9d5e51ed3e27e1d436fbac3b07cf2ea149 SHA512 11ea064210ea6bc36258f08e57c6aac46739133017ad3ba97ca0edd84c818c2f72dae60bbe7cd79135be9785fb0e15c9904b151c894e1c21b881598113344cf4 WHIRLPOOL 8acd59e878b44f8e504d57687ea1bbece05d5f14b29e0c62a22183729129fb115fccb9a1a89d5e0a86881ac6487c36ea520aab835ba5efaaa3c71471fda9b15f
+DIST supertuxkart-0.9.2-src.tar.xz 501606188 SHA256 0b080bb098a26adb552d6fd48905bcb6b1e873ef1567457d7268d7d3aaa48282 SHA512 57f11d518736f88044d1cb73e1dfcc92f5667f3b1147ab7e54435f6bc560fe856c3650410410da5fa048bf23d0b64fc8a9887c830001e1435b0359c9163e71b0 WHIRLPOOL c534854127981821412437632fdf9ff239988199d60f8d582b59bd624dff87f5e37a5cb54020b679e9fb6d440187a5bd0e0c2eb00311e2ae8de6ba58fb1d1d82
 DIST supertuxkart.png 4435 SHA256 99bc1801cb0514946cb0171d6d5a84484b6dc881edfa7f096b6eb5fea2f28828 SHA512 a180332f79220431922fa8b351cb476ebc5d9d1df09f20707eb3bdd7002fd264cb027b8190c73c5221050e6e8601beb6758a5809d05aedfb18f0bdb426f47eda WHIRLPOOL eef651802a927b451226fc06a682d7dea68b65b05195130ccfc7544165f26f65bda4fc9565e09d6487d02be3cf57880b0c6c257f26587c6bc6d30afc6aa5d3c2
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-fix-angelscript.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-fix-angelscript.patch
new file mode 100644 (file)
index 0000000..a2f4fb1
--- /dev/null
@@ -0,0 +1,27 @@
+Description: Fix FTBFS on arm64, mips/mips64/mipsel, ppc64el, s390x
+Origin: upstream, https://github.com/supertuxkart/stk-code/commit/5e05f1178ce6bc5f3a653b55ab3dc6d016196341
+Bug: https://github.com/supertuxkart/stk-code/issues/2569
+Bug-Debian: https://bugs.debian.org/830748
+Last-Update: 2016-12-03
+
+--- a/lib/angelscript/projects/cmake/CMakeLists.txt
++++ b/lib/angelscript/projects/cmake/CMakeLists.txt
+@@ -68,6 +68,7 @@ set(ANGELSCRIPT_SOURCE
+     ../../source/as_bytecode.cpp
+     ../../source/as_callfunc.cpp
+     ../../source/as_callfunc_x86.cpp
++    ../../source/as_callfunc_mips.cpp
+     ../../source/as_callfunc_x64_gcc.cpp
+     ../../source/as_callfunc_x64_msvc.cpp
+     ../../source/as_callfunc_x64_mingw.cpp
+--- a/lib/angelscript/source/as_config.h
++++ b/lib/angelscript/source/as_config.h
+@@ -844,7 +844,7 @@
+                       #define THISCALL_PASS_OBJECT_POINTER_ON_THE_STACK
+                       #define AS_X86
+                       #undef AS_NO_THISCALL_FUNCTOR_METHOD
+-              #elif defined(__LP64__) && !defined(__arm64__)
++              #elif defined(__x86_64__)
+                       #define AS_X64_GCC
+                       #undef AS_NO_THISCALL_FUNCTOR_METHOD
+                       #define HAS_128_BIT_PRIMITIVES
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-fix-buildsystem.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-fix-buildsystem.patch
new file mode 100644 (file)
index 0000000..6f1c39b
--- /dev/null
@@ -0,0 +1,97 @@
+* 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
+@@ -68,37 +68,10 @@
+ include_directories(${ENET_INCLUDE_DIR})
+ 
+ # Build glew library
++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")
+ 
+-if((WIN32 AND NOT MINGW) 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)
+-    set (PNG_TESTS FALSE)
+-    set (PNG_SHARED FALSE)
+-    add_subdirectory("${PROJECT_SOURCE_DIR}/lib/libpng")
+-    include_directories("${PROJECT_SOURCE_DIR}/lib/libpng")
+-
+-    #build jpeg library
+-    add_subdirectory("${PROJECT_SOURCE_DIR}/lib/jpeglib")
+-    include_directories("${PROJECT_SOURCE_DIR}/lib/jpeglib")
+-
+-    set(PNG_PNG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/libpng/")
+-    set(PNG_LIBRARY png15_static)
+-    set(JPEG_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lib/jpeglib/")
+-    set(JPEG_LIBRARY jpeglib)
+-endif()
+ # Build the irrlicht library
+ add_subdirectory("${PROJECT_SOURCE_DIR}/lib/irrlicht")
+ include_directories("${PROJECT_SOURCE_DIR}/lib/irrlicht/include")
+@@ -130,6 +103,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 "
+@@ -245,14 +219,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
+@@ -342,7 +308,7 @@
+     bulletdynamics
+     bulletcollision
+     bulletmath
+-    glew
++    ${GLEW_LIBRARIES}
+     stkirrlicht
+     ${Angelscript_LIBRARIES}
+     ${CURL_LIBRARIES}
+--- a/lib/irrlicht/CMakeLists.txt
++++ b/lib/irrlicht/CMakeLists.txt
+@@ -20,15 +20,6 @@
+ elseif(MINGW)
+   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 -I/usr/X11R6/include")
+-  set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -Wall -pipe -O3  -fno-exceptions  -fstrict-aliasing -I/usr/X11R6/include")
+-  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()
+ 
+ # Xrandr
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-arch-support.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-arch-support.patch
new file mode 100644 (file)
index 0000000..ec56838
--- /dev/null
@@ -0,0 +1,49 @@
+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
+@@ -101,6 +101,10 @@
+ #ifndef _IRR_SOLARIS_PLATFORM_\r
+ #if !defined(__linux__) && !defined(__FreeBSD__)\r
+ #define _IRR_LINUX_PLATFORM_\r
++#include <endian.h>\r
++ #if __BYTE_ORDER == __BIG_ENDIAN\r
++  #define __BIG_ENDIAN__\r
++ #endif\r
+ #endif\r
+ #endif\r
+ #define _IRR_POSIX_API_\r
+@@ -406,11 +410,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/files/supertuxkart-0.9.2-irrlicht-as-needed.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-as-needed.patch
new file mode 100644 (file)
index 0000000..b6cb0fe
--- /dev/null
@@ -0,0 +1,24 @@
+From: Christoph Egger <Christoph.Egger@gmx.de>
+Subject: [PATCH] debian/link-against-needed-libs
+
+There are quite some libraries irrlicht needs but does not link
+against. This patch makes irrlicht link correctly against all the
+needed libraries.
+
+Signed-off-by: Christoph Egger <Christoph.Egger@gmx.de>
+
+---
+ lib/irrlicht/source/Irrlicht/Makefile |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+--- a/lib/irrlicht/source/Irrlicht/Makefile
++++ b/lib/irrlicht/source/Irrlicht/Makefile
+@@ -88,7 +88,7 @@
+ LIB_PATH = ../../lib/$(SYSTEM)\r
+ INSTALL_DIR = /usr/local/lib\r
+ sharedlib install: SHARED_LIB = libIrrlicht.so\r
+-sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm\r
++staticlib sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lX11 -lz -lpng -ljpeg -lbz2\r
+ staticlib sharedlib: CXXINCS += -I/usr/X11R6/include\r
+ \r
+ #OSX specific options\r
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-bundled-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-bundled-libs.patch
new file mode 100644 (file)
index 0000000..1a1013e
--- /dev/null
@@ -0,0 +1,35 @@
+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 <vcheng@debian.org>
+Last-Update: 2016-07-07
+
+--- a/lib/irrlicht/CMakeLists.txt
++++ b/lib/irrlicht/CMakeLists.txt
+@@ -2,11 +2,7 @@
+ find_package(PNG REQUIRED)
+ find_package(JPEG REQUIRED)
+ 
+-include_directories("${CMAKE_CURRENT_SOURCE_DIR}/include/"
+-                    "${JPEG_INCLUDE_DIR}"
+-                    "${PNG_INCLUDE_DIRS}"
+-                    "${ZLIB_INCLUDE_DIR}"
+-                    "${CMAKE_CURRENT_BINARY_DIR}/../zlib/") # For zconf.h on WIN32
++include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/)
+ 
+ find_package(OpenGL REQUIRED)
+ include_directories(${OPENGL_INCLUDE_DIR})
+@@ -508,7 +504,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(WIN32)
+     target_link_libraries(stkirrlicht imm32)
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-system-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-irrlicht-system-libs.patch
new file mode 100644 (file)
index 0000000..f82dc50
--- /dev/null
@@ -0,0 +1,105 @@
+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 <debian@christoph-egger.org
+
+--- a/lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.h
++++ b/lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.h
+@@ -23,7 +23,7 @@
+ #include <GL/glx.h>\r
+ #ifdef _IRR_OPENGL_USE_EXTPOINTER_\r
+ #define GLX_GLXEXT_PROTOTYPES\r
+-#include "glxext.h"\r
++#include <GL/glxext.h>\r
+ #endif\r
+ #endif\r
+ \r
+--- a/lib/irrlicht/source/Irrlicht/COpenGLExtensionHandler.h
++++ b/lib/irrlicht/source/Irrlicht/COpenGLExtensionHandler.h
+@@ -21,7 +21,7 @@
+       #endif
+       #include <GL/gl.h>
+       #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
+-              #include "glext.h"
++              #include <GL/glext.h>
+       #endif
+       #include "wglext.h"
+ 
+@@ -36,7 +36,7 @@
+       #endif
+       #include <OpenGL/gl.h>
+       #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
+-              #include "glext.h"
++              #include <GL/glext.h>
+       #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 <SDL/SDL_video.h>
+       #include <SDL/SDL_opengl.h>
+         typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode);
+-      #include "glext.h"
++      #include <GL/glext.h>
+ #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\r
+       #include <windows.h>\r
+       #include <GL/gl.h>\r
+-      #include "glext.h"\r
++      #include <GL/glext.h>\r
+ #else\r
+ #if defined(_IRR_OPENGL_USE_EXTPOINTER_)\r
+       #define GL_GLEXT_LEGACY 1\r
+@@ -25,7 +25,7 @@
+       #include <GL/gl.h>\r
+ #endif\r
+ #if defined(_IRR_OPENGL_USE_EXTPOINTER_)\r
+-      #include "glext.h"\r
++      #include <GL/glext.h>\r
+ #endif\r
+ #endif\r
+ \r
+--- a/lib/irrlicht/source/Irrlicht/Makefile
++++ b/lib/irrlicht/source/Irrlicht/Makefile
+@@ -43,7 +43,7 @@
+       CImageWriterBMP.o CImageWriterJPG.o CImageWriterPCX.o CImageWriterPNG.o CImageWriterPPM.o CImageWriterPSD.o CImageWriterTGA.o\r
+ IRRVIDEOOBJ = CVideoModeList.o CFPSCounter.o $(IRRDRVROBJ) $(IRRIMAGEOBJ)\r
+ IRRSWRENDEROBJ = CSoftwareDriver.o CSoftwareTexture.o CTRFlat.o CTRFlatWire.o CTRGouraud.o CTRGouraudWire.o CTRNormalMap.o CTRStencilShadow.o CTRTextureFlat.o CTRTextureFlatWire.o CTRTextureGouraud.o CTRTextureGouraudAdd.o CTRTextureGouraudNoZ.o CTRTextureGouraudWire.o CZBuffer.o CTRTextureGouraudVertexAlpha2.o CTRTextureGouraudNoZ2.o CTRTextureLightMap2_M2.o CTRTextureLightMap2_M4.o CTRTextureLightMap2_M1.o CSoftwareDriver2.o CSoftwareTexture2.o CTRTextureGouraud2.o CTRGouraud2.o CTRGouraudAlpha2.o CTRGouraudAlphaNoZ2.o CTRTextureDetailMap2.o CTRTextureGouraudAdd2.o CTRTextureGouraudAddNoZ2.o CTRTextureWire2.o CTRTextureLightMap2_Add.o CTRTextureLightMapGouraud2_M4.o IBurningShader.o CTRTextureBlend.o CTRTextureGouraudAlpha.o CTRTextureGouraudAlphaNoZ.o CDepthBuffer.o CBurningShader_Raster_Reference.o\r
+-IRRIOOBJ = CFileList.o CFileSystem.o CLimitReadFile.o CMemoryFile.o CReadFile.o CWriteFile.o CXMLReader.o CXMLWriter.o CWADReader.o CZipReader.o CPakReader.o CNPKReader.o CTarReader.o CMountPointReader.o irrXML.o CAttributes.o lzma/LzmaDec.o\r
++IRRIOOBJ = CFileList.o CFileSystem.o CLimitReadFile.o CMemoryFile.o CReadFile.o CWriteFile.o CXMLReader.o CXMLWriter.o CWADReader.o CZipReader.o CPakReader.o CNPKReader.o CTarReader.o CMountPointReader.o irrXML.o CAttributes.o\r
+ IRROTHEROBJ = CIrrDeviceSDL.o CIrrDeviceLinux.o CIrrDeviceConsole.o CIrrDeviceStub.o CIrrDeviceWin32.o CIrrDeviceFB.o CLogger.o COSOperator.o Irrlicht.o os.o\r
+ IRRGUIOBJ = CGUIButton.o CGUICheckBox.o CGUIComboBox.o CGUIContextMenu.o CGUIEditBox.o CGUIEnvironment.o CGUIFileOpenDialog.o CGUIFont.o CGUIImage.o CGUIInOutFader.o CGUIListBox.o CGUIMenu.o CGUIMeshViewer.o CGUIMessageBox.o CGUIModalScreen.o CGUIScrollBar.o CGUISpinBox.o CGUISkin.o CGUIStaticText.o CGUITabControl.o CGUITable.o CGUIToolBar.o CGUIWindow.o CGUIColorSelectDialog.o CDefaultGUIElementFactory.o CGUISpriteBank.o CGUIImageList.o CGUITreeView.o\r
+ ZLIBOBJ = zlib/adler32.o zlib/compress.o zlib/crc32.o zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o zlib/trees.o zlib/uncompr.o zlib/zutil.o\r
+@@ -56,14 +56,14 @@
+ EXTRAOBJ =\r
+ LINKOBJ = $(IRRMESHOBJ) $(IRROBJ) $(IRRPARTICLEOBJ) $(IRRANIMOBJ) \\r
+       $(IRRVIDEOOBJ) $(IRRSWRENDEROBJ) $(IRRIOOBJ) $(IRROTHEROBJ) \\r
+-      $(IRRGUIOBJ) $(ZLIBOBJ) $(JPEGLIBOBJ) $(LIBPNGOBJ) $(LIBAESGM) \\r
+-      $(BZIP2OBJ) $(EXTRAOBJ)\r
++      $(IRRGUIOBJ) $(LIBAESGM) \\r
++      $(EXTRAOBJ)\r
+ \r
+ ###############\r
+ #Compiler flags\r
+-CXXINCS = -I../../include -Izlib -Ijpeglib -Ilibpng\r
++CXXINCS = -I../../include # -Izlib -Ijpeglib -Ilibpng\r
+ CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1\r
+-CXXFLAGS += -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing\r
++CXXFLAGS += -Wall -pipe -fno-exceptions -fstrict-aliasing\r
+ ifndef NDEBUG\r
+ CXXFLAGS += -g -D_DEBUG\r
+ else\r
+@@ -154,6 +154,7 @@
+       mkdir -p $(INSTALL_DIR)/../include/irrlicht\r
+       cp ../../include/*.h $(INSTALL_DIR)/../include/irrlicht/\r
+       cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR)\r
++      cp $(LIB_PATH)/$(STATIC_LIB) $(INSTALL_DIR)\r
+       cd $(INSTALL_DIR) && ln -s -f $(SHARED_FULLNAME) $(SONAME)\r
+       cd $(INSTALL_DIR) && ln -s -f $(SONAME) $(SHARED_LIB)\r
+ #     ldconfig -n $(INSTALL_DIR)\r
diff --git a/games-action/supertuxkart/files/supertuxkart-0.9.2-unbundle-enet.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-unbundle-enet.patch
new file mode 100644 (file)
index 0000000..259627a
--- /dev/null
@@ -0,0 +1,58 @@
+Description: Build supertuxkart against system enet instead of embedded copy
+Forwarded: not-yet
+Author: Vincent Cheng <vcheng@debian.org>
+Last-Update: 2016-07-17
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,9 +63,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
+ add_definitions(-DGLEW_NO_GLU)
+@@ -342,11 +342,11 @@
+     bulletdynamics
+     bulletcollision
+     bulletmath
+-    enet
+     glew
+     stkirrlicht
+     ${Angelscript_LIBRARIES}
+     ${CURL_LIBRARIES}
++    ${ENET_LIBRARIES}
+     ${OGGVORBIS_LIBRARIES}
+     ${OPENAL_LIBRARY}
+     ${OPENGL_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.2-unbundle-libs.patch b/games-action/supertuxkart/files/supertuxkart-0.9.2-unbundle-libs.patch
new file mode 100644 (file)
index 0000000..1ea29e1
--- /dev/null
@@ -0,0 +1,19 @@
+Description: Link against system copies of zlib/libpng/libjpeg/bzip2
+Forwarded: not-yet
+Author: Vincent Cheng <vcheng@debian.org>
+Last-Update: 2016-07-17
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -351,6 +351,11 @@
+     ${OPENAL_LIBRARY}
+     ${OPENGL_LIBRARIES}
+     ${FREETYPE_LIBRARIES}
++    X11
++    z
++    png
++    jpeg
++    bz2
+     )
+ 
+ if(UNIX AND NOT APPLE)
diff --git a/games-action/supertuxkart/supertuxkart-0.9.2.ebuild b/games-action/supertuxkart/supertuxkart-0.9.2.ebuild
new file mode 100644 (file)
index 0000000..12910df
--- /dev/null
@@ -0,0 +1,91 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit cmake-utils eutils gnome2-utils
+
+DESCRIPTION="A kart racing game starring Tux, the linux penguin (TuxKart fork)"
+HOMEPAGE="http://supertuxkart.sourceforge.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 ~ppc ~x86"
+IUSE="debug fribidi wiimote"
+
+# don't unbundle irrlicht and bullet
+# both are modified and system versions will break the game
+# https://sourceforge.net/tracker/?func=detail&aid=3454889&group_id=74339&atid=540679
+
+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 )"
+DEPEND="${RDEPEND}
+       sys-devel/gettext
+       virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.9.2-unbundle-enet.patch
+       "${FILESDIR}"/${PN}-0.9.2-unbundle-libs.patch
+       "${FILESDIR}"/${PN}-0.9.2-fix-angelscript.patch
+       "${FILESDIR}"/${PN}-0.9.2-irrlicht-arch-support.patch
+       "${FILESDIR}"/${PN}-0.9.2-irrlicht-as-needed.patch
+       "${FILESDIR}"/${PN}-0.9.2-irrlicht-bundled-libs.patch
+       "${FILESDIR}"/${PN}-0.9.2-irrlicht-system-libs.patch
+       "${FILESDIR}"/${PN}-0.9.2-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)
+               -DSTK_INSTALL_BINARY_DIR=bin
+               -DSTK_INSTALL_DATA_DIR=share/${PN}
+       )
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+       dodoc CHANGELOG.md TODO.md
+
+       doicon -s 64 "${DISTDIR}"/${PN}.png
+}
+
+pkg_preinst() {
+       gnome2_icon_savelist
+}
+
+pkg_postinst() {
+       gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+       gnome2_icon_cache_update
+}