r13931 - in packages/trunk/supertuxkart/debian: . patches

Vincent Cheng vincentc-guest at alioth.debian.org
Sat Dec 29 22:36:25 UTC 2012


Author: vincentc-guest
Date: 2012-12-29 22:36:24 +0000 (Sat, 29 Dec 2012)
New Revision: 13931

Added:
   packages/trunk/supertuxkart/debian/patches/irrlicht_fix_non_linux_ftbfs.patch
   packages/trunk/supertuxkart/debian/patches/irrlicht_use_system_libs.patch
Modified:
   packages/trunk/supertuxkart/debian/README.source
   packages/trunk/supertuxkart/debian/control
   packages/trunk/supertuxkart/debian/patches/series
   packages/trunk/supertuxkart/debian/rules
Log:
supertuxkart: Build embedded irrlicht with system copies of zlib, bzip2, libpng, libjpeg, and glext family of headers provided in mesa-common-dev (and add appropriate build-depends)


Modified: packages/trunk/supertuxkart/debian/README.source
===================================================================
--- packages/trunk/supertuxkart/debian/README.source	2012-12-29 22:24:51 UTC (rev 13930)
+++ packages/trunk/supertuxkart/debian/README.source	2012-12-29 22:36:24 UTC (rev 13931)
@@ -15,6 +15,10 @@
    segfaults (e.g. [5][6][7][8][9][10][11]...), and is simply infeasible now
    that upstream STK devs plan on making more intrusive changes to Irrlicht.
 
+Note that the embedded copy of Irrlicht is built with Debian's zlib/bzip2/
+libpng/libjpeg/glext instead of the embedded copies within the Irrlicht source
+code (which should address security concerns relating to embedding Irrlicht).
+
 If interested, a more thorough discussion on this topic can be reviewed on
 debian-devel-games, in this thread [12] (starting with [13]).
 

Modified: packages/trunk/supertuxkart/debian/control
===================================================================
--- packages/trunk/supertuxkart/debian/control	2012-12-29 22:24:51 UTC (rev 13930)
+++ packages/trunk/supertuxkart/debian/control	2012-12-29 22:36:24 UTC (rev 13931)
@@ -12,14 +12,19 @@
  debhelper (>= 9),
  docbook-to-man,
  libalut-dev,
+ libbz2-dev,
  libcurl4-gnutls-dev | libcurl4-dev,
  libenet-dev (>= 1.3.1),
  libfribidi-dev,
+ libjpeg-dev,
  libopenal-dev,
+ libpng-dev,
  libsdl-image1.2-dev,
  libsdl-ttf2.0-dev,
  libvorbis-dev,
- libxxf86vm-dev
+ libxxf86vm-dev,
+ mesa-common-dev,
+ zlib1g-dev
 Standards-Version: 3.9.4
 Vcs-Svn: svn://svn.debian.org/svn/pkg-games/packages/trunk/supertuxkart/
 Vcs-Browser: http://svn.debian.org/wsvn/pkg-games/packages/trunk/supertuxkart/

Added: packages/trunk/supertuxkart/debian/patches/irrlicht_fix_non_linux_ftbfs.patch
===================================================================
--- packages/trunk/supertuxkart/debian/patches/irrlicht_fix_non_linux_ftbfs.patch	                        (rev 0)
+++ packages/trunk/supertuxkart/debian/patches/irrlicht_fix_non_linux_ftbfs.patch	2012-12-29 22:36:24 UTC (rev 13931)
@@ -0,0 +1,65 @@
+Description: Fix FTBFS on some non-Linux and big endian architectures
+ 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?).
+ 
+ Also, sys/sysctl.h is not implemented on hurd, so don't include it if we're
+ building Irrlicht on hurd.
+ 
+ Note that this patch has been taken directly from Debian's irrlicht source
+ package.
+Forwarded: not-yet
+Author: Christoph Egger <christoph at debian.org>
+        Vincent Cheng <Vincentc1208 at gmail.com>
+Last-Update: 2012-12-29
+
+--- a/lib/irrlicht/include/IrrCompileConfig.h
++++ b/lib/irrlicht/include/IrrCompileConfig.h
+@@ -100,6 +100,10 @@
+ #if !defined(_IRR_WINDOWS_API_) && !defined(_IRR_OSX_PLATFORM_)
+ #ifndef _IRR_SOLARIS_PLATFORM_
+ #define _IRR_LINUX_PLATFORM_
++#include <endian.h>
++ #if __BYTE_ORDER == __BIG_ENDIAN
++  #define __BIG_ENDIAN__
++ #endif
+ #endif
+ #define _IRR_POSIX_API_
+ #define _IRR_COMPILE_WITH_X11_DEVICE_
+@@ -763,11 +767,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
+ 
+--- a/lib/irrlicht/source/Irrlicht/COSOperator.cpp
++++ b/lib/irrlicht/source/Irrlicht/COSOperator.cpp
+@@ -13,9 +13,11 @@
+ #include <unistd.h>
+ #ifndef _IRR_SOLARIS_PLATFORM_
+ #include <sys/types.h>
++#if !defined(__gnu_hurd__)
+ #include <sys/sysctl.h>
+ #endif
+ #endif
++#endif
+ 
+ #if defined(_IRR_COMPILE_WITH_X11_DEVICE_)
+ #include "CIrrDeviceLinux.h"

Added: packages/trunk/supertuxkart/debian/patches/irrlicht_use_system_libs.patch
===================================================================
--- packages/trunk/supertuxkart/debian/patches/irrlicht_use_system_libs.patch	                        (rev 0)
+++ packages/trunk/supertuxkart/debian/patches/irrlicht_use_system_libs.patch	2012-12-29 22:36:24 UTC (rev 13931)
@@ -0,0 +1,154 @@
+Description: Build embedded irrlicht with system zlib/bzip2/libpng/libjpeg/glext
+ Note that this patch has been taken directly from Debian's irrlicht source
+ package.
+Forwarded: http://sourceforge.net/apps/trac/supertuxkart/ticket/689
+Author: Christoph Egger <christoph at debian.org>
+Last-Update: 2012-12-29
+
+--- a/lib/irrlicht/include/IrrCompileConfig.h
++++ b/lib/irrlicht/include/IrrCompileConfig.h
+@@ -245,10 +245,7 @@
+ //! Define _IRR_USE_NON_SYSTEM_JPEG_LIB_ to let irrlicht use the jpeglib which comes with irrlicht.
+ /** If this is commented out, Irrlicht will try to compile using the jpeg lib installed in the system.
+ 	This is only used when _IRR_COMPILE_WITH_LIBJPEG_ is defined. */
+-#define _IRR_USE_NON_SYSTEM_JPEG_LIB_
+-#ifdef NO_IRR_USE_NON_SYSTEM_JPEG_LIB_
+ #undef _IRR_USE_NON_SYSTEM_JPEG_LIB_
+-#endif
+ 
+ //! Define _IRR_COMPILE_WITH_LIBPNG_ to enable compiling the engine using libpng.
+ /** This enables the engine to read png images. If you comment this out,
+@@ -261,10 +258,7 @@
+ //! Define _IRR_USE_NON_SYSTEM_LIBPNG_ to let irrlicht use the libpng which comes with irrlicht.
+ /** If this is commented out, Irrlicht will try to compile using the libpng installed in the system.
+ 	This is only used when _IRR_COMPILE_WITH_LIBPNG_ is defined. */
+-#define _IRR_USE_NON_SYSTEM_LIB_PNG_
+-#ifdef NO_IRR_USE_NON_SYSTEM_LIB_PNG_
+ #undef _IRR_USE_NON_SYSTEM_LIB_PNG_
+-#endif
+ 
+ //! Define _IRR_D3D_NO_SHADER_DEBUGGING to disable shader debugging in D3D9
+ /** If _IRR_D3D_NO_SHADER_DEBUGGING is undefined in IrrCompileConfig.h,
+@@ -598,10 +592,7 @@
+ /** If this is commented out, Irrlicht will try to compile using the zlib
+ installed on the system. This is only used when _IRR_COMPILE_WITH_ZLIB_ is
+ defined. */
+-#define _IRR_USE_NON_SYSTEM_ZLIB_
+-#ifdef NO_IRR_USE_NON_SYSTEM_ZLIB_
+ #undef _IRR_USE_NON_SYSTEM_ZLIB_
+-#endif
+ //! Define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_ if you want to read AES-encrypted ZIP archives
+ #define _IRR_COMPILE_WITH_ZIP_ENCRYPTION_
+ #ifdef NO_IRR_COMPILE_WITH_ZIP_ENCRYPTION_
+@@ -619,18 +610,12 @@
+ /** If this is commented out, Irrlicht will try to compile using the bzlib
+ installed on the system. This is only used when _IRR_COMPILE_WITH_BZLIB_ is
+ defined. */
+-#define _IRR_USE_NON_SYSTEM_BZLIB_
+-#ifdef NO_IRR_USE_NON_SYSTEM_BZLIB_
+ #undef _IRR_USE_NON_SYSTEM_BZLIB_
+-#endif
+ //! Define _IRR_COMPILE_WITH_LZMA_ if you want to use LZMA compressed zip files.
+ /** LZMA is a very efficient compression code, known from 7zip. Irrlicht
+ currently only supports zip archives, though. */
+-#define _IRR_COMPILE_WITH_LZMA_
+-#ifdef NO_IRR_COMPILE_WITH_LZMA_
+ #undef _IRR_COMPILE_WITH_LZMA_
+ #endif
+-#endif
+ 
+ //! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives
+ #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_
+--- a/lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.h
++++ b/lib/irrlicht/source/Irrlicht/CIrrDeviceLinux.h
+@@ -22,7 +22,7 @@
+ #define GLX_GLXEXT_LEGACY 1
+ #include <GL/glx.h>
+ #ifdef _IRR_OPENGL_USE_EXTPOINTER_
+-#include "glxext.h"
++#include <GL/glxext.h>
+ #endif
+ #endif
+ 
+--- 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"
+ 
+@@ -49,7 +49,7 @@
+ 	#define NO_SDL_GLEXT
+ 	#include <SDL/SDL_video.h>
+ 	#include <SDL/SDL_opengl.h>
+-	#include "glext.h"
++	#include <GL/glext.h>
+ #else
+ 	#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
+ 		#define GL_GLEXT_LEGACY 1
+@@ -61,9 +61,9 @@
+ 	#include <GL/gl.h>
+ 	#include <GL/glx.h>
+ 	#if defined(_IRR_OPENGL_USE_EXTPOINTER_)
+-	#include "glext.h"
++	#include <GL/glext.h>
+ 	#undef GLX_ARB_get_proc_address // avoid problems with local glxext.h
+-	#include "glxext.h"
++	#include <GL/glxext.h>
+ 	#endif
+ #endif
+ 
+--- a/lib/irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.h
++++ b/lib/irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.h
+@@ -25,7 +25,7 @@
+ 	#include <GL/gl.h>
+ #endif
+ #if defined(_IRR_OPENGL_USE_EXTPOINTER_)
+-	#include "glext.h"
++	#include <GL/glext.h>
+ #endif
+ #endif
+ 
+--- 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
+ IRRVIDEOOBJ = CVideoModeList.o CFPSCounter.o $(IRRDRVROBJ) $(IRRIMAGEOBJ)
+ 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
+-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
++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
+ IRROTHEROBJ = CIrrDeviceSDL.o CIrrDeviceLinux.o CIrrDeviceConsole.o CIrrDeviceStub.o CIrrDeviceWin32.o CIrrDeviceFB.o CLogger.o COSOperator.o Irrlicht.o os.o
+ 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
+ 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
+@@ -56,14 +56,14 @@
+ EXTRAOBJ =
+ LINKOBJ = $(IRRMESHOBJ) $(IRROBJ) $(IRRPARTICLEOBJ) $(IRRANIMOBJ) \
+ 	$(IRRVIDEOOBJ) $(IRRSWRENDEROBJ) $(IRRIOOBJ) $(IRROTHEROBJ) \
+-	$(IRRGUIOBJ) $(ZLIBOBJ) $(JPEGLIBOBJ) $(LIBPNGOBJ) $(LIBAESGM) \
+-	$(BZIP2OBJ) $(EXTRAOBJ)
++	$(IRRGUIOBJ) $(LIBAESGM) \
++	$(EXTRAOBJ)
+ 
+ ###############
+ #Compiler flags
+-CXXINCS = -I../../include -Izlib -Ijpeglib -Ilibpng
++CXXINCS = -I../../include # -Izlib -Ijpeglib -Ilibpng
+ CPPFLAGS += $(CXXINCS) -DIRRLICHT_EXPORTS=1
+-CXXFLAGS += -Wall -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
++CXXFLAGS += -Wall -pipe -fno-exceptions -fstrict-aliasing
+ ifndef NDEBUG
+ CXXFLAGS += -g -D_DEBUG
+ else
+@@ -88,7 +88,7 @@
+ LIB_PATH = ../../lib/$(SYSTEM)
+ INSTALL_DIR = /usr/local/lib
+ sharedlib install: SHARED_LIB = libIrrlicht.so
+-sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm
++sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lX11 -lz -lpng -ljpeg -lbz2
+ staticlib sharedlib: CXXINCS += -I/usr/X11R6/include
+ 
+ #OSX specific options

Modified: packages/trunk/supertuxkart/debian/patches/series
===================================================================
--- packages/trunk/supertuxkart/debian/patches/series	2012-12-29 22:24:51 UTC (rev 13930)
+++ packages/trunk/supertuxkart/debian/patches/series	2012-12-29 22:36:24 UTC (rev 13931)
@@ -1,2 +1,4 @@
 build_against_system_enet.patch
+irrlicht_use_system_libs.patch
+irrlicht_fix_non_linux_ftbfs.patch
 fix_desktop_file.patch

Modified: packages/trunk/supertuxkart/debian/rules
===================================================================
--- packages/trunk/supertuxkart/debian/rules	2012-12-29 22:24:51 UTC (rev 13930)
+++ packages/trunk/supertuxkart/debian/rules	2012-12-29 22:36:24 UTC (rev 13931)
@@ -17,8 +17,8 @@
 	# Generate sources.cmake
 	sh update_file_list.sh
 	
-	dh_auto_configure -DSTK_INSTALL_BINARY_DIR="games" \
-	                  -DSTK_INSTALL_DATA_DIR="share/games/supertuxkart"
+	dh_auto_configure -- -DSTK_INSTALL_BINARY_DIR="games" \
+	                     -DSTK_INSTALL_DATA_DIR="share/games/supertuxkart"
 
 override_dh_auto_build:
 	# Generate manual page




More information about the Pkg-games-commits mailing list