commit:     4a75069241b2f2430afa5bb7026be6dfd693307f
Author:     Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
AuthorDate: Fri Jul 19 16:32:33 2024 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Sat Jul 20 11:22:22 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a750692

games-rpg/xu4: add 1.4

Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com>
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 games-rpg/xu4/Manifest                       |  1 +
 games-rpg/xu4/files/1.4-system-minizip.patch | 82 ++++++++++++++++++++++++++++
 games-rpg/xu4/xu4-1.4.ebuild                 | 61 +++++++++++++++++++++
 3 files changed, 144 insertions(+)

diff --git a/games-rpg/xu4/Manifest b/games-rpg/xu4/Manifest
index 95756c6ba909..52b7db3c1478 100644
--- a/games-rpg/xu4/Manifest
+++ b/games-rpg/xu4/Manifest
@@ -1,3 +1,4 @@
 DIST u4upgrad.zip 632072 BLAKE2B 
3691f1cbac940021ef6043dd5e2ee26dcee5f8d7181ed525179211a6984f5ab498b84533d28146129c3e747f0af8946f7d691b7cb817a5a4ecb39e71e2df7b9a
 SHA512 
4832d8cfd266d3ccc5eab5184bd2b6b9acd4c0203478873fb5e11704d95104dd9285a7752bad77f873d4f8603673184ae9421964509b948ec69944a4ceadd083
 DIST ultima4.zip 529099 BLAKE2B 
62a7e6e05344d0c3496ee3240d6cd98c61f1ff8b8f5d869a8cecec8f786b76c8a42e1bef40fa63861d5652352c00ba67708e49b5e6c9ddfdebbb3ae47ae01e2e
 SHA512 
efc65a53492c0f68c9e2f1507afed4da925992cdfec7a699095e6369725af8156331000c575778121e04ef6ca252af2eef97f8f7183b8378f22a4e7e509fb9a5
 DIST xu4-1.2.1.gh.tar.gz 8031041 BLAKE2B 
54c75d1752bc7a5cf59724e2e97ccfed23b8edf8351b6ccf9ca4f967145bbbb897e06337c107ffe09af5094f2f112094cd60485d9957abac6e61a3e40dd6731e
 SHA512 
ffdfcb9f323b4f3ff664b146b485085dd96fce756682392695e8a25f636c70d6b2d945b65f861a58fd1a47653a788869aa3085be8e1bcc702814fb220cfdeb3e
+DIST xu4-1.4.gh.tar.gz 8053080 BLAKE2B 
3d098c426bce5b9e6c7665007388be9f189d2fc780b575fa586418e77196027f23092201bc566d41b1d9725180b85f1a7fcbb811a274c19f94d907adb6df4f43
 SHA512 
2061db91727fe372007c7a79c9f23f9bc78fcc6e1359e2e14ed2e7277e745e3e2a9a8fd7a16e7b42f8bd85ca692115ef22ba95122f8fbfe67c72c2cbed39c95b

diff --git a/games-rpg/xu4/files/1.4-system-minizip.patch 
b/games-rpg/xu4/files/1.4-system-minizip.patch
new file mode 100644
index 000000000000..ed30687e7b4c
--- /dev/null
+++ b/games-rpg/xu4/files/1.4-system-minizip.patch
@@ -0,0 +1,82 @@
+From bce27acd4063d43da601e0a7a85b35fab69cf4bd Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <[email protected]>
+Date: Fri, 28 Apr 2023 16:30:40 +0300
+Subject: [PATCH] Switch to external zlib minizip library
+
+Bundled unzip.[ch] uses deprecated zlib macros and fails to compile.
+Additionaly added pkg-config calls to use system libraries and includes.
+
+https://github.com/xu4-engine/u4/pull/16
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -8,11 +8,13 @@ UI ?= glv
+ GPU ?= scale
+ SOUND=faun
+ 
++PKG_CONFIG ?= pkg-config
++
+ ifeq ($(UI), allegro)
+ ifeq ($(SOUND),allegro)
+-      UILIBS=-lallegro_acodec -lallegro_audio -lallegro
++      UILIBS=$(shell ${PKG_CONFIG} --libs allegro-5 allegro_acodec-5 
allegro_audio-5)
+ else
+-      UILIBS=-lallegro
++      UILIBS=$(shell ${PKG_CONFIG} --libs allegro-5)
+ endif
+ endif
+ 
+@@ -37,23 +39,25 @@ endif
+       UILIBS+=-lboron
+ #endif
+ 
+-CXXFLAGS=-Wall -I. -Isupport $(UIFLAGS) -DVERSION=\"$(VERSION)\"
++CXXFLAGS+=-Wall -I. -Isupport $(UIFLAGS) -DVERSION=\"$(VERSION)\"
+ #CXXFLAGS+=-rdynamic -DHAVE_BACKTRACE=1 -DHAVE_VARIADIC_MACROS=1
+ 
+ # Choose one of these for debug/release mode.
+ #CXXFLAGS+=-g -DDEBUG
+ CXXFLAGS+=-O3 -DNDEBUG
+ 
++CXXFLAGS+=$(shell ${PKG_CONFIG} --cflags minizip)
++
+ ifeq ($(UI), glv)
+ CXXFLAGS+=-Iglv/x11
+ GLV_SRC=glv/x11/glv.c
+-UILIBS+=-lXcursor -lX11
++UILIBS+=$(shell ${PKG_CONFIG} --libs xcursor x11)
+ CFLAGS=$(CXXFLAGS) -DUSE_CURSORS
+ else
+ CFLAGS=$(CXXFLAGS)
+ endif
+ 
+-LIBS=$(UILIBS) -lGL -lpng -lz
++LIBS=$(UILIBS) $(shell ${PKG_CONFIG} --libs gl libpng minizip zlib)
+ 
+ ifeq ($(STATIC_GCC_LIBS),true)
+     LDFLAGS+=-L. -static-libgcc
+--- a/src/Makefile.common
++++ b/src/Makefile.common
+@@ -9,7 +9,6 @@ CSRCS=\
+         support/notify.c \
+         support/stringTable.c \
+         support/txf_draw.c \
+-        support/unzip.c \
+         $(NULL)
+ 
+ CXXSRCS=\
+--- a/src/u4file.cpp
++++ b/src/u4file.cpp
+@@ -6,9 +6,9 @@
+ #include <cstring>
+ #include <cstdlib>
+ #include <map>
++#include <unzip.h>
+ 
+ #include "u4file.h"
+-#include "unzip.h"
+ #include "debug.h"
+ #include "xu4.h"
+ 
+-- 
+2.39.2
+

diff --git a/games-rpg/xu4/xu4-1.4.ebuild b/games-rpg/xu4/xu4-1.4.ebuild
new file mode 100644
index 000000000000..be0cd21ecb06
--- /dev/null
+++ b/games-rpg/xu4/xu4-1.4.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A remake of the computer game Ultima IV"
+HOMEPAGE="https://xu4.sourceforge.net/";
+SRC_URI="https://github.com/xu4-engine/u4/archive/refs/tags/v${PV}.tar.gz -> 
${P}.gh.tar.gz
+       https://ultima.thatfleminggent.com/ultima4.zip
+       https://downloads.sourceforge.net/xu4/u4upgrad.zip";
+S="${WORKDIR}/u4-${PV}/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+       dev-libs/boron
+       media-libs/allegro:5[opengl]
+       media-libs/faun
+       media-libs/libglvnd
+       media-libs/libpng:=
+       sys-libs/zlib:=[minizip]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="app-arch/unzip"
+
+PATCHES=(
+       "${FILESDIR}/1.4-system-minizip.patch"
+)
+
+src_unpack() {
+       # xu4 will read the data files right out of the zip files
+       # but we want the docs from the original.
+       unpack ${P}.gh.tar.gz
+       unpack ultima4.zip
+       # Place zips where make install expects them
+       cp "${DISTDIR}/ultima4.zip" "${DISTDIR}/u4upgrad.zip" "${S}" || die
+}
+
+src_prepare() {
+       default
+
+       # rm as part of using system minizip patch
+       rm -f src/unzip.{c,h} || die
+       sed -i -e '/CXXFLAGS+=-O3 -DNDEBUG/d' src/Makefile || die
+       # Don't strip executable
+       sed -i -e 's:-s src/xu4:src/xu4:g' Makefile || die
+}
+
+src_configure() {
+       # custom configure
+       ./configure --allegro || die
+}
+
+src_install() {
+       emake DESTDIR="${D}/usr" install
+       dodoc AUTHORS README.md doc/*.txt "${WORKDIR}"/*.txt
+       insinto "/usr/share/xu4"
+       doins "${DISTDIR}/ultima4.zip"
+}

Reply via email to