Skip to content

Commit

Permalink
games-rpg/xu4: add 1.2.1
Browse files Browse the repository at this point in the history
Migrate from deprecated EAPI6, various fixes and updates.

Closes: https://bugs.gentoo.org/190380
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
  • Loading branch information
winterheart committed Jan 14, 2024
1 parent aa6b4fa commit 3de00b9
Show file tree
Hide file tree
Showing 5 changed files with 169 additions and 0 deletions.
2 changes: 2 additions & 0 deletions games-rpg/xu4/Manifest
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
DIST u4upgrad.zip 632072 BLAKE2B 3691f1cbac940021ef6043dd5e2ee26dcee5f8d7181ed525179211a6984f5ab498b84533d28146129c3e747f0af8946f7d691b7cb817a5a4ecb39e71e2df7b9a SHA512 4832d8cfd266d3ccc5eab5184bd2b6b9acd4c0203478873fb5e11704d95104dd9285a7752bad77f873d4f8603673184ae9421964509b948ec69944a4ceadd083
DIST ultima4-1.01.zip 537487 BLAKE2B 9af5c934e57d3b0151a575efc3ed34fa25f81ed2c43e2cb95ee200afb1b2f49365634199e066787de3d20c4c97903f918de2a4d4f2e9aeeb361ee585e59fbbc1 SHA512 c86c29d51e21b93992316552fbaaec948e7e8048fea484f003f43ac82211f82fa587fb15db991cddf744f2c3ff0fc4d411cd51cc7650e13a5b520c4dc620518c
DIST ultima4.zip 529099 BLAKE2B 62a7e6e05344d0c3496ee3240d6cd98c61f1ff8b8f5d869a8cecec8f786b76c8a42e1bef40fa63861d5652352c00ba67708e49b5e6c9ddfdebbb3ae47ae01e2e SHA512 efc65a53492c0f68c9e2f1507afed4da925992cdfec7a699095e6369725af8156331000c575778121e04ef6ca252af2eef97f8f7183b8378f22a4e7e509fb9a5
DIST xu4-0.9.tar.gz 320090 BLAKE2B 298a97edd2c42edcc2f63ec99656e76f3c541fce13f01a0767f02f63223e0d842a33ee1012742b7cd5bdefa7c66cddba6799130f539a8bb306c87ece8585ea62 SHA512 6c0b27472074d96a5f76e024c800bed89c57c29dbd760278c819ad8b024362480bda5f1584eb9fe64fd6f6cae0b3b8d8571c8cf533f25b842471803acd7cea8d
DIST xu4-1.2.1.gh.tar.gz 8031041 BLAKE2B 54c75d1752bc7a5cf59724e2e97ccfed23b8edf8351b6ccf9ca4f967145bbbb897e06337c107ffe09af5094f2f112094cd60485d9957abac6e61a3e40dd6731e SHA512 ffdfcb9f323b4f3ff664b146b485085dd96fce756682392695e8a25f636c70d6b2d945b65f861a58fd1a47653a788869aa3085be8e1bcc702814fb220cfdeb3e
25 changes: 25 additions & 0 deletions games-rpg/xu4/files/1.2.1-desktop-file.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
From d5065c2c7f3b26bb21cb6d55bab8b0161c60b7d6 Mon Sep 17 00:00:00 2001
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
Date: Fri, 28 Apr 2023 20:42:37 +0300
Subject: [PATCH] Update .desktop file

Follow to Desktop Entry Specification.

https://github.com/xu4-engine/u4/pull/15

--- a/dist/xu4.desktop
+++ b/dist/xu4.desktop
@@ -3,7 +3,7 @@ Encoding=UTF-8
Name=Ultima 4
Comment=Ultima 4 (xu4)
Exec=xu4
-Icon=xu4.png
-Terminal=0
+Icon=xu4
+Terminal=false
Type=Application
-Categories=Application;Game;RolePlaying;
+Categories=Game;RolePlaying;
--
2.39.2

82 changes: 82 additions & 0 deletions games-rpg/xu4/files/1.2.1-system-minizip.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
From bce27acd4063d43da601e0a7a85b35fab69cf4bd Mon Sep 17 00:00:00 2001
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
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 \
- unzip.c \
$(NULL)

CXXSRCS=\
--- a/src/u4file.cpp
+++ b/src/u4file.cpp
@@ -6,9 +6,9 @@
#include <cctype>
#include <cstring>
#include <cstdlib>
+#include <unzip.h>

#include "u4file.h"
-#include "unzip.h"
#include "debug.h"
#include "xu4.h"

--
2.39.2

1 change: 1 addition & 0 deletions games-rpg/xu4/metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<name>Gentoo Games Project</name>
</maintainer>
<upstream>
<remote-id type="github">xu4-engine/u4</remote-id>
<remote-id type="sourceforge">xu4</remote-id>
</upstream>
</pkgmetadata>
59 changes: 59 additions & 0 deletions games-rpg/xu4/xu4-1.2.1.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copyright 1999-2023 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
http://ultima.thatfleminggent.com/ultima4.zip
mirror://sourceforge/xu4/u4upgrad.zip"
S="${WORKDIR}/u4-${PV}/"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"

RDEPEND="
dev-libs/boron
media-libs/allegro:5
media-libs/faun
"
DEPEND="${RDEPEND}
app-arch/unzip"

PATCHES=(
"${FILESDIR}/1.2.1-system-minizip.patch"
"${FILESDIR}/1.2.1-desktop-file.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"
}

0 comments on commit 3de00b9

Please sign in to comment.