summary refs log tree commit diff
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2022-05-29 02:00:03 +0200
committerTobias Geerinckx-Rice <me@tobias.gr>2022-05-29 02:00:00 +0200
commit64e78659f44b2275ae92de5d1adf12dc161a6ef2 (patch)
tree363009868efc7784bb5266ce994ad77d6c1239a7
parentabd6ea5337079654ad2dba05538bf6e7d9051c4d (diff)
downloadguix-64e78659f44b2275ae92de5d1adf12dc161a6ef2.tar.gz
gnu: irrlicht: Update to 1.8.5.
* gnu/packages/games.scm (irrlicht): Update to 1.8.5.
[source]: Use unmodified Debian patches rather than manually maintain
a custom mash-up.
[arguments]: Add a new 'delete-broken-install-rule phase instead.
Don't explicitly return #t from phases.
* gnu/packages/patches/irrlicht-link-against-needed-libs.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/games.scm20
-rw-r--r--gnu/packages/patches/irrlicht-link-against-needed-libs.patch24
-rw-r--r--gnu/packages/patches/irrlicht-use-system-libs.patch95
4 files changed, 60 insertions, 80 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index d51c1be0d3..708bbdd35d 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1299,6 +1299,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/iputils-libcap-compat.patch		\
   %D%/packages/patches/ipxe-reproducible-geniso.patch	        \
   %D%/packages/patches/irrlicht-use-system-libs.patch		\
+  %D%/packages/patches/irrlicht-link-against-needed-libs.patch	\
   %D%/packages/patches/isl-0.11.1-aarch64-support.patch	\
   %D%/packages/patches/itk-snap-alt-glibc-compat.patch		\
   %D%/packages/patches/json-c-0.13-CVE-2020-12762.patch	\
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 5b48369cec..c5c3e8af18 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -3532,7 +3532,7 @@ are primarily in English, however some in other languages are provided.")
 (define-public irrlicht
   (package
     (name "irrlicht")
-    (version "1.8.4")
+    (version "1.8.5")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -3541,8 +3541,9 @@ are primarily in English, however some in other languages are provided.")
                     "/" version "/irrlicht-" version ".zip"))
               (sha256
                (base32
-                "0cz4z4dwrv5ypl19ll67wl6jjpy5k6ly4vr042w4br88qq5jhazl"))
-              (patches (search-patches "irrlicht-use-system-libs.patch"))
+                "0gagjh2l3a3m8hsixxhhhan3m5xl7735ka8m4g79jl4qsgp7pyzg"))
+              (patches (search-patches "irrlicht-use-system-libs.patch"
+                                       "irrlicht-link-against-needed-libs.patch"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -3556,8 +3557,7 @@ are primarily in English, however some in other languages are provided.")
                        "source/Irrlicht/zlib"))
                   (delete-file "source/Irrlicht/glext.h")
                   (delete-file "source/Irrlicht/glxext.h")
-                  (delete-file "source/Irrlicht/wglext.h")
-                  #t))))
+                  (delete-file "source/Irrlicht/wglext.h")))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -3565,19 +3565,23 @@ are primarily in English, however some in other languages are provided.")
          (add-after 'unpack 'chdir-to-source
            (lambda _
              ;; The actual source is buried a few directories deep.
-             (chdir "source/Irrlicht/")
-             #t))
+             (chdir "source/Irrlicht/")))
          (add-after 'chdir-to-source 'remove-<sys/sysctl.h>
            (lambda _
              (substitute* "COSOperator.cpp"
                (("#include <sys/sysctl.h>") ""))))
+         (add-after 'chdir-to-source 'delete-broken-install-rule
+           (lambda _
+             (substitute* "Makefile"
+               ;; We neither build nor want a static library.  Skip it.
+               ((".*\\bcp .*\\$\\(STATIC_LIB\\).*") ""))))
          (add-after 'chdir-to-source 'fix-build-env
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
                (substitute* "Makefile"
                  (("INSTALL_DIR = /usr/local/lib")
                   (string-append "INSTALL_DIR = " out "/lib"))
-                 ;; Add '-fpermissive' to the CXXFLAGS
+                 ;; Add '-fpermissive' to the CXXFLAGS.
                  (("-Wall") "-Wall -fpermissive")) ; CImageLoaderJPG.cpp
                ;; The Makefile assumes these directories exist.
                (mkdir-p (string-append out "/lib"))
diff --git a/gnu/packages/patches/irrlicht-link-against-needed-libs.patch b/gnu/packages/patches/irrlicht-link-against-needed-libs.patch
new file mode 100644
index 0000000000..2e9f5c78d5
--- /dev/null
+++ b/gnu/packages/patches/irrlicht-link-against-needed-libs.patch
@@ -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>
+
+---
+ source/Irrlicht/Makefile |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+--- irrlicht.orig/source/Irrlicht/Makefile
++++ irrlicht/source/Irrlicht/Makefile
+@@ -90,7 +90,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

++staticlib sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lX11 -lz -lpng -ljpeg -lbz2

+ staticlib sharedlib: CXXINCS += -I/usr/X11R6/include

+ 

+ #OSX specific options

diff --git a/gnu/packages/patches/irrlicht-use-system-libs.patch b/gnu/packages/patches/irrlicht-use-system-libs.patch
index e764f411d3..06cb6db062 100644
--- a/gnu/packages/patches/irrlicht-use-system-libs.patch
+++ b/gnu/packages/patches/irrlicht-use-system-libs.patch
@@ -1,40 +1,13 @@
-This patch is a combination of the two following patches with minor
-changes to the install code
-https://sources.debian.org/src/irrlicht/1.8.4+dfsg1-1/debian/patches/debian/link-against-needed-libs.diff/
-https://sources.debian.org/src/irrlicht/1.8.4+dfsg1-1/debian/patches/debian/use-system-libs.diff/
+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.
 
----
- include/IrrCompileConfig.h                  | 26 +++++++++------------
- source/Irrlicht/CIrrDeviceLinux.h           |  2 +-
- source/Irrlicht/COpenGLExtensionHandler.h   |  8 +++----
- source/Irrlicht/COpenGLSLMaterialRenderer.h |  2 +-
- source/Irrlicht/Makefile                    | 15 ++++++------
- 5 files changed, 25 insertions(+), 28 deletions(-)
+Signed-off-by: Christoph Egger <debian@christoph-egger.org
 
-diff --git a/include/IrrCompileConfig.h b/include/IrrCompileConfig.h
-index 6bb0589..2216353 100644
---- a/include/IrrCompileConfig.h
-+++ b/include/IrrCompileConfig.h
-@@ -238,6 +238,17 @@ for Windows based systems. You also have to set #define UNICODE for this to comp
- #undef _IRR_WCHAR_FILESYSTEM

- #endif

- 

-+//! Define _IRR_COMPILE_WITH_ZLIB_ to enable compiling the engine using zlib.

-+/** This enables the engine to read from compressed .zip archives. If you

-+disable this feature, the engine can still read archives, but only uncompressed

-+ones. */

-+#define _IRR_COMPILE_WITH_ZLIB_

-+

-+//! Define _IRR_USE_NON_SYSTEM_ZLIB_ to let irrlicht use the zlib which comes with irrlicht.

-+/** If this is commented out, Irrlicht will try to compile using the zlib installed in the system.

-+	This is only used when _IRR_COMPILE_WITH_ZLIB_ is defined. */

-+#undef _IRR_USE_NON_SYSTEM_ZLIB_

-+

- //! Define _IRR_COMPILE_WITH_JPEGLIB_ to enable compiling the engine using libjpeg.

- /** This enables the engine to read jpeg images. If you comment this out,

- the engine will no longer read .jpeg images. */

-@@ -249,10 +260,7 @@ the engine will no longer read .jpeg images. */
+--- irrlicht.orig/include/IrrCompileConfig.h
++++ irrlicht/include/IrrCompileConfig.h
+@@ -253,10 +253,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. */

@@ -45,7 +18,7 @@ index 6bb0589..2216353 100644
  

  //! 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,

-@@ -265,10 +273,7 @@ the engine will no longer read .png images. */
+@@ -269,10 +266,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. */

@@ -56,7 +29,7 @@ index 6bb0589..2216353 100644
  

  //! Define _IRR_D3D_NO_SHADER_DEBUGGING to disable shader debugging in D3D9

  /** If _IRR_D3D_NO_SHADER_DEBUGGING is undefined in IrrCompileConfig.h,

-@@ -602,10 +607,7 @@ ones. */
+@@ -606,10 +600,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. */

@@ -67,7 +40,7 @@ index 6bb0589..2216353 100644
  //! 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_

-@@ -623,18 +625,12 @@ library. */
+@@ -627,18 +618,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. */

@@ -86,10 +59,8 @@ index 6bb0589..2216353 100644
  

  //! Define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_ if you want to mount folders as archives

  #define __IRR_COMPILE_WITH_MOUNT_ARCHIVE_LOADER_

-diff --git a/source/Irrlicht/CIrrDeviceLinux.h b/source/Irrlicht/CIrrDeviceLinux.h
-index 4d2a2c6..8cf24ba 100644
---- a/source/Irrlicht/CIrrDeviceLinux.h
-+++ b/source/Irrlicht/CIrrDeviceLinux.h
+--- irrlicht.orig/source/Irrlicht/CIrrDeviceLinux.h
++++ irrlicht/source/Irrlicht/CIrrDeviceLinux.h
 @@ -22,7 +22,7 @@
  #define GLX_GLXEXT_LEGACY 1

  #include <GL/glx.h>

@@ -99,10 +70,8 @@ index 4d2a2c6..8cf24ba 100644
  #endif

  #endif

  

-diff --git a/source/Irrlicht/COpenGLExtensionHandler.h b/source/Irrlicht/COpenGLExtensionHandler.h
-index 1b77bad..3886a0e 100644
---- a/source/Irrlicht/COpenGLExtensionHandler.h
-+++ b/source/Irrlicht/COpenGLExtensionHandler.h
+--- irrlicht.orig/source/Irrlicht/COpenGLExtensionHandler.h
++++ irrlicht/source/Irrlicht/COpenGLExtensionHandler.h
 @@ -35,7 +35,7 @@
  	#endif

  	#include <OpenGL/gl.h>

@@ -133,10 +102,8 @@ index 1b77bad..3886a0e 100644
  	#endif

  #endif

  

-diff --git a/source/Irrlicht/COpenGLSLMaterialRenderer.h b/source/Irrlicht/COpenGLSLMaterialRenderer.h
-index ff71150..f8a6007 100644
---- a/source/Irrlicht/COpenGLSLMaterialRenderer.h
-+++ b/source/Irrlicht/COpenGLSLMaterialRenderer.h
+--- irrlicht.orig/source/Irrlicht/COpenGLSLMaterialRenderer.h
++++ irrlicht/source/Irrlicht/COpenGLSLMaterialRenderer.h
 @@ -25,7 +25,7 @@
  	#include <GL/gl.h>

  #endif

@@ -146,11 +113,9 @@ index ff71150..f8a6007 100644
  #endif

  #endif

  

-diff --git a/source/Irrlicht/Makefile b/source/Irrlicht/Makefile
-index 67a3899..d9ea7f3 100644
---- a/source/Irrlicht/Makefile
-+++ b/source/Irrlicht/Makefile
-@@ -43,7 +43,7 @@ IRRIMAGEOBJ = CColorConverter.o CImage.o CImageLoaderBMP.o CImageLoaderDDS.o CIm
+--- irrlicht.orig/source/Irrlicht/Makefile
++++ irrlicht/source/Irrlicht/Makefile
+@@ -45,7 +45,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

@@ -159,7 +124,7 @@ index 67a3899..d9ea7f3 100644
  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 @@ BZIP2OBJ = bzip2/blocksort.o bzip2/huffman.o bzip2/crctable.o bzip2/randtable.o
+@@ -58,14 +58,14 @@
  EXTRAOBJ =

  LINKOBJ = $(IRRMESHOBJ) $(IRROBJ) $(IRRPARTICLEOBJ) $(IRRANIMOBJ) \

  	$(IRRVIDEOOBJ) $(IRRSWRENDEROBJ) $(IRRIOOBJ) $(IRROTHEROBJ) \

@@ -178,25 +143,11 @@ index 67a3899..d9ea7f3 100644
  ifndef NDEBUG

  CXXFLAGS += -g -D_DEBUG

  else

-@@ -88,7 +88,7 @@ STATIC_LIB = libIrrlicht.a
- LIB_PATH = ../../lib/$(SYSTEM)

- INSTALL_DIR = /usr/local/lib

- sharedlib install: SHARED_LIB = libIrrlicht.so

--sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm

-+staticlib sharedlib: LDFLAGS += -L/usr/X11R6/lib$(LIBSELECT) -lGL -lXxf86vm -lX11 -lz -lpng -ljpeg -lbz2

- staticlib sharedlib: CXXINCS += -I/usr/X11R6/include

- 

- #OSX specific options

-@@ -153,7 +153,8 @@ install install_osx:
- 	$(RM) -r $(INSTALL_DIR)/../include/irrlicht

+@@ -156,6 +156,7 @@
  	mkdir -p $(INSTALL_DIR)/../include/irrlicht

  	cp ../../include/*.h $(INSTALL_DIR)/../include/irrlicht/

--	cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR)

-+	cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR) || true

-+	cp $(LIB_PATH)/$(STATIC_LIB) $(INSTALL_DIR) || true

+ 	cp $(LIB_PATH)/$(SHARED_FULLNAME) $(INSTALL_DIR)

++	cp $(LIB_PATH)/$(STATIC_LIB) $(INSTALL_DIR)

  	cd $(INSTALL_DIR) && ln -s -f $(SHARED_FULLNAME) $(SONAME)

  	cd $(INSTALL_DIR) && ln -s -f $(SONAME) $(SHARED_LIB)

  #	ldconfig -n $(INSTALL_DIR)

--- 
-2.18.0
-