From 64e78659f44b2275ae92de5d1adf12dc161a6ef2 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 29 May 2022 02:00:03 +0200 Subject: 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. --- gnu/local.mk | 1 + gnu/packages/games.scm | 20 +++-- .../irrlicht-link-against-needed-libs.patch | 24 ++++++ .../patches/irrlicht-use-system-libs.patch | 95 ++++++---------------- 4 files changed, 60 insertions(+), 80 deletions(-) create mode 100644 gnu/packages/patches/irrlicht-link-against-needed-libs.patch 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- (lambda _ (substitute* "COSOperator.cpp" (("#include ") "")))) + (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 +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 + +--- + 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 @@ -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 @@ -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 #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 - -- cgit v1.2.3