summaryrefslogtreecommitdiff
path: root/games-rpg
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-07-20 12:29:37 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-07-20 12:29:37 +0100
commitd3ae3ea75073c53ed5f3a4418e76383436bb0f58 (patch)
treee7bdf993ecf567ea3b6d9c8c00797f63ae25ea02 /games-rpg
parentc59df12b8749ab7bbd5a0692072652d4fbb0d2cf (diff)
gentoo auto-resync : 20:07:2024 - 12:29:37
Diffstat (limited to 'games-rpg')
-rw-r--r--games-rpg/Manifest.gzbin8301 -> 8297 bytes
-rw-r--r--games-rpg/xu4/Manifest14
-rw-r--r--games-rpg/xu4/files/0.9-savegame.patch76
-rw-r--r--games-rpg/xu4/files/1.2.1-desktop-file.patch25
-rw-r--r--games-rpg/xu4/files/1.2.1-system-minizip.patch82
-rw-r--r--games-rpg/xu4/files/xu4-0.9-ldflags.patch35
-rw-r--r--games-rpg/xu4/files/xu4-0.9-warnings.patch26
-rw-r--r--games-rpg/xu4/files/xu4-0.9-zip.patch144
-rw-r--r--games-rpg/xu4/metadata.xml1
-rw-r--r--games-rpg/xu4/xu4-0.9-r1.ebuild76
-rw-r--r--games-rpg/xu4/xu4-1.2.1.ebuild62
11 files changed, 176 insertions, 365 deletions
diff --git a/games-rpg/Manifest.gz b/games-rpg/Manifest.gz
index 739d28f9d55c..ec08089f501f 100644
--- a/games-rpg/Manifest.gz
+++ b/games-rpg/Manifest.gz
Binary files differ
diff --git a/games-rpg/xu4/Manifest b/games-rpg/xu4/Manifest
index fa64ea01b77a..e2d8dbe1fde2 100644
--- a/games-rpg/xu4/Manifest
+++ b/games-rpg/xu4/Manifest
@@ -1,9 +1,7 @@
-AUX 0.9-savegame.patch 1716 BLAKE2B fc0fb7a9fac04bb9a386b52de0dc44719ad24f17b9cb086651803169a1a43a0a01129d3c5ecaad1bfa056355a488e9bbd743820b5a7716a3c599f63febb58c96 SHA512 b6484a2abc6b32933157cf3e7875d2863473bc863076efa3c4398dbd28cc037cbac2e376c5ce4bbd6c7fabdb2c0bc907be872e2167f6a00f4ca311ea8301ad77
-AUX xu4-0.9-ldflags.patch 1721 BLAKE2B 99181c971612b6ef1c929743612a0cbf8c0a7b90c4269dfe665e0909b3d1fcf7ae92a242b803474442e7f3aa7999799163089417e0a2efd4b22cc5a65420997d SHA512 1e0c3b8f6595f9b9f7fecda9264460cd67e289a7a0ba19fc181473546e3db4b2cadde825be46f27fdfec9b872fb6cb6ea8e474a890f25677b49b85093ffa957c
-AUX xu4-0.9-warnings.patch 454 BLAKE2B fb8c8b32013893e4db0aa7c20a39ceba9077b1fe64e10df5a4d0e2b7356bfedf9122a1d900b2527dc292054d827a1ed2237d16f18536045bc6113afb81c7189e SHA512 0a92b7510789a55c712f8d9a2130ac4d9cdf6e2403201c258d24c121fdae6e0d932504677715bea062652ee6aff7b27ec6419c578cb5fe56406b1965c387b361
-AUX xu4-0.9-zip.patch 4980 BLAKE2B 761a3251b23a22c3b1bc445a6cdc5a90f5ebe374dabd2ffebdf27c255250508db2010a514b256c07d8e94a6dfcf1fa50d4224b7d675360fa02e3394452453a44 SHA512 b531fd545f1827cff61eec4f5b60bb9b98e4b907c02a9477c269f75e3cccaf1741189abe47a1dcac6205c3fffadff7b13e57bfd80e2ac771f38546ef7c21a85c
+AUX 1.2.1-desktop-file.patch 565 BLAKE2B fa6746ab5fe1395949040e6a8e4665c7a94c85808beeb29222916bda4033d80354ba8ba39987f65e52a890bb774b68667ec53207f2e9cf176f5857e95739935c SHA512 d4ff28aa332d6b9d42f99b51652f8740a3754328d3e9c9d1afaddd407ceb6d931aa0c7c54e0687db9d54c79cc14e5416c1d579805a1487712b5df1e54e55adc8
+AUX 1.2.1-system-minizip.patch 2027 BLAKE2B 4605e637383f3da505885ae412cd15fd1afd5c292734092685d60145a4ceb02a3fbaeb828dbbf42719bd940a2f7f0c6c23397955207ef745c997f0da2309edee SHA512 7a61e9193354db9565ffe09278d0a9c7294b99c6de8ff2a646b77f49cf83e9c5ccaa53a427f5f33a04d9fa1a32c425a5ada1c9b967a860d0c9c4842d03ee8132
DIST u4upgrad.zip 632072 BLAKE2B 3691f1cbac940021ef6043dd5e2ee26dcee5f8d7181ed525179211a6984f5ab498b84533d28146129c3e747f0af8946f7d691b7cb817a5a4ecb39e71e2df7b9a SHA512 4832d8cfd266d3ccc5eab5184bd2b6b9acd4c0203478873fb5e11704d95104dd9285a7752bad77f873d4f8603673184ae9421964509b948ec69944a4ceadd083
-DIST ultima4-1.01.zip 537487 BLAKE2B 9af5c934e57d3b0151a575efc3ed34fa25f81ed2c43e2cb95ee200afb1b2f49365634199e066787de3d20c4c97903f918de2a4d4f2e9aeeb361ee585e59fbbc1 SHA512 c86c29d51e21b93992316552fbaaec948e7e8048fea484f003f43ac82211f82fa587fb15db991cddf744f2c3ff0fc4d411cd51cc7650e13a5b520c4dc620518c
-DIST xu4-0.9.tar.gz 320090 BLAKE2B 298a97edd2c42edcc2f63ec99656e76f3c541fce13f01a0767f02f63223e0d842a33ee1012742b7cd5bdefa7c66cddba6799130f539a8bb306c87ece8585ea62 SHA512 6c0b27472074d96a5f76e024c800bed89c57c29dbd760278c819ad8b024362480bda5f1584eb9fe64fd6f6cae0b3b8d8571c8cf533f25b842471803acd7cea8d
-EBUILD xu4-0.9-r1.ebuild 1730 BLAKE2B bf06a955a95a2231d68c01dff4b96b57f287e4956465b9050b4cacdf983ee813f1ea3792e59ee44d426fd987a52b7095a13a9b850e4eba8247ab99bef5d92917 SHA512 64448f61e89ffd23f223eaca3d37f07e11e1ffea20c775c6dce3bcac9c893330010f5dc005ea2d15a636bafd72212b369d836407cab1ff374f02871f184c65d1
-MISC metadata.xml 327 BLAKE2B 0263141d11243d3153061a3c49b6d7f373998798baa559cbcda22f2a13fb24835958a562d10f3de07a9a69fed3d04c33931341a3ac08b49ee8fa5bc02053a3f0 SHA512 62921e0f493336b542b6abebacb65e52fee1f1c27156f6aea8197ad30b5aff46df1eea15353c9cf6e5f2a4f6c98a876b8fff8799b2ba32c863d0027daa73f430
+DIST ultima4.zip 529099 BLAKE2B 62a7e6e05344d0c3496ee3240d6cd98c61f1ff8b8f5d869a8cecec8f786b76c8a42e1bef40fa63861d5652352c00ba67708e49b5e6c9ddfdebbb3ae47ae01e2e SHA512 efc65a53492c0f68c9e2f1507afed4da925992cdfec7a699095e6369725af8156331000c575778121e04ef6ca252af2eef97f8f7183b8378f22a4e7e509fb9a5
+DIST xu4-1.2.1.gh.tar.gz 8031041 BLAKE2B 54c75d1752bc7a5cf59724e2e97ccfed23b8edf8351b6ccf9ca4f967145bbbb897e06337c107ffe09af5094f2f112094cd60485d9957abac6e61a3e40dd6731e SHA512 ffdfcb9f323b4f3ff664b146b485085dd96fce756682392695e8a25f636c70d6b2d945b65f861a58fd1a47653a788869aa3085be8e1bcc702814fb220cfdeb3e
+EBUILD xu4-1.2.1.ebuild 1512 BLAKE2B 7bc0f32d111b22a6582efb631d5ff879ddd9e47ae4c51bbeb429354613244d3036b58598d5fc1e01aaa60c79ac7f25cd21fa166552ececd3a9d631627893a50b SHA512 d012b6cc8bbe76ae35d13e2d8f7fc31aaf571a01a1c7cfec614ac9910c54d649f9a53d6aab8893cb3a9585fb79de7619944d935b68704ed29799b3ecf3f67bcf
+MISC metadata.xml 380 BLAKE2B 65d2fee26c17071008bb1b02ab8101239735c241e4c90dcd84b0f3fe920696b14be733a10a45681706146fc4edb6df044d5b646070c6ca739257db081b771f4f SHA512 28f0cea0923a1c0f1b9800ad5eaac3af5c5fc393d6ac1580516b89d9d108638e07a8b07d18572fd21ed9149a6899f8fbb05a5e18cd999bd1a08fd8398f9171f5
diff --git a/games-rpg/xu4/files/0.9-savegame.patch b/games-rpg/xu4/files/0.9-savegame.patch
deleted file mode 100644
index 96d16360f37c..000000000000
--- a/games-rpg/xu4/files/0.9-savegame.patch
+++ /dev/null
@@ -1,76 +0,0 @@
---- a/src/savegame.c.
-+++ b/src/savegame.c
-@@ -21,23 +21,24 @@
- char *partySavFilename() {
- char *fname;
-
--#if defined(MACOSX)
- char *home;
-
- home = getenv("HOME");
- if (home && home[0]) {
- fname = (char *) malloc(strlen(home) +
-+#if defined(MACOSX)
- strlen(MACOSX_USER_FILES_PATH) +
-+#endif
-+strlen("/.u4/") +
- strlen(PARTY_SAV_BASE_FILENAME) + 2);
- strcpy(fname, home);
-+#if defined(MACOSX)
- strcat(fname, MACOSX_USER_FILES_PATH);
-- strcat(fname, "/");
-+#endif
-+ strcat(fname, "/.u4/");
- strcat(fname, PARTY_SAV_BASE_FILENAME);
- } else
- fname = strdup(PARTY_SAV_BASE_FILENAME);
--#else
-- fname = strdup(PARTY_SAV_BASE_FILENAME);
--#endif
-
- return fname;
- }
-@@ -45,24 +45,24 @@
- char *monstersSavFilename() {
- char *fname;
-
--#if defined(MACOSX)
- char *home;
-
- home = getenv("HOME");
- if (home && home[0]) {
- fname = (char *) malloc(strlen(home) +
-+#if defined(MACOSX)
- strlen(MACOSX_USER_FILES_PATH) +
-+#endif
-+strlen("/.u4/") +
- strlen(MONSTERS_SAV_BASE_FILENAME) + 2);
- strcpy(fname, home);
-+#if defined(MACOSX)
- strcat(fname, MACOSX_USER_FILES_PATH);
-- strcat(fname, "/");
-+#endif
-+ strcat(fname, "/.u4/");
- strcat(fname, MONSTERS_SAV_BASE_FILENAME);
- } else
- fname = strdup(MONSTERS_SAV_BASE_FILENAME);
--#else
-- fname = strdup(MONSTERS_SAV_BASE_FILENAME);
--#endif
--
- return fname;
- }
-
---- a/src/u4.c
-+++ b/src/u4.c
-@@ -38,6 +38,10 @@
- osxInit(argv[0]);
- #endif
-
-+ if (getenv("HOME")) {
-+ chdir(getenv("HOME"));
-+ mkdir(".u4", 0777);
-+ }
- settingsRead();
-
- for (i = 1; i < (unsigned int)argc; i++) {
diff --git a/games-rpg/xu4/files/1.2.1-desktop-file.patch b/games-rpg/xu4/files/1.2.1-desktop-file.patch
new file mode 100644
index 000000000000..442deb0971b3
--- /dev/null
+++ b/games-rpg/xu4/files/1.2.1-desktop-file.patch
@@ -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
+
diff --git a/games-rpg/xu4/files/1.2.1-system-minizip.patch b/games-rpg/xu4/files/1.2.1-system-minizip.patch
new file mode 100644
index 000000000000..8466e27550c5
--- /dev/null
+++ b/games-rpg/xu4/files/1.2.1-system-minizip.patch
@@ -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
+
diff --git a/games-rpg/xu4/files/xu4-0.9-ldflags.patch b/games-rpg/xu4/files/xu4-0.9-ldflags.patch
deleted file mode 100644
index 7f1e5cd922d7..000000000000
--- a/games-rpg/xu4/files/xu4-0.9-ldflags.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- a/src/Makefile.common
-+++ b/src/Makefile.common
-@@ -68,25 +68,25 @@
- mkutils:: dumpsavegame$(EXEEXT) lzwenc$(EXEEXT) lzwdec$(EXEEXT) rleenc$(EXEEXT) rledec$(EXEEXT) tlkconv$(EXEEXT)
-
- $(MAIN): $(OBJS)
-- $(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJS) $(LIBS)
-
- dumpsavegame$(EXEEXT) : util/dumpsavegame.o savegame.o io.o names.o
-- $(CC) $(CFLAGS) -o dumpsavegame util/dumpsavegame.o savegame.o io.o names.o
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o dumpsavegame util/dumpsavegame.o savegame.o io.o names.o
-
- lzwenc$(EXEEXT) : util/lzwenc.o lzw/hash.o util/pngconv.o
-- $(CC) $(CFLAGS) -o lzwenc util/lzwenc.o lzw/hash.o util/pngconv.o -lpng -lz
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o lzwenc util/lzwenc.o lzw/hash.o util/pngconv.o -lpng -lz
-
- lzwdec$(EXEEXT) : util/lzwdec.o lzw/lzw.o lzw/u4decode.o lzw/hash.o util/pngconv.o
-- $(CC) $(CFLAGS) -o lzwdec util/lzwdec.o lzw/lzw.o lzw/u4decode.o lzw/hash.o util/pngconv.o -lpng -lz
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o lzwdec util/lzwdec.o lzw/lzw.o lzw/u4decode.o lzw/hash.o util/pngconv.o -lpng -lz
-
- rleenc$(EXEEXT) : util/rleenc.o util/pngconv.o
-- $(CC) $(CFLAGS) -o rleenc util/rleenc.o util/pngconv.o -lpng -lz
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o rleenc util/rleenc.o util/pngconv.o -lpng -lz
-
- rledec$(EXEEXT) : util/rledec.o rle.o util/pngconv.o
-- $(CC) $(CFLAGS) -o rledec util/rledec.o rle.o util/pngconv.o -lpng -lz
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o rledec util/rledec.o rle.o util/pngconv.o -lpng -lz
-
- tlkconv$(EXEEXT) : util/tlkconv.o
-- $(CC) $(CFLAGS) -o tlkconv util/tlkconv.o $(shell xml2-config --libs)
-+ $(CC) $(LDFLAGS) $(CFLAGS) -o tlkconv util/tlkconv.o $(shell xml2-config --libs)
-
- clean:: cleanutil
- rm -rf *~ */*~ $(OBJS) $(MAIN)
diff --git a/games-rpg/xu4/files/xu4-0.9-warnings.patch b/games-rpg/xu4/files/xu4-0.9-warnings.patch
deleted file mode 100644
index e52b610e61d4..000000000000
--- a/games-rpg/xu4/files/xu4-0.9-warnings.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/src/u4.c
-+++ b/src/u4.c
-@@ -3,6 +3,8 @@
- */
-
- #include <stdio.h>
-+#include <sys/stat.h>
-+#include <sys/types.h>
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
---- a/u4.desktop
-+++ b/u4.desktop
-@@ -1,9 +1,8 @@
- [Desktop Entry]
--Encoding=UTF-8
- Name=Ultima 4
- Comment=Ultima 4 (xu4)
- Exec=u4
--Icon=u4.png
--Terminal=0
-+Icon=u4
-+Terminal=false
- Type=Application
--Categories=Application;Game;RolePlaying;
-+Categories=Game;RolePlaying;
diff --git a/games-rpg/xu4/files/xu4-0.9-zip.patch b/games-rpg/xu4/files/xu4-0.9-zip.patch
deleted file mode 100644
index a8d2c58971c9..000000000000
--- a/games-rpg/xu4/files/xu4-0.9-zip.patch
+++ /dev/null
@@ -1,144 +0,0 @@
---- a/src/unzip.c
-+++ b/src/unzip.c
-@@ -493,7 +493,7 @@
- /*
- Get Info about the current file in the zipfile, with internal only info
- */
--local int unzlocal_GetCurrentFileInfoInternal OF((unzFile file,
-+local int unzlocal_GetCurrentFileInfoInternal _Z_OF((unzFile file,
- unz_file_info *pfile_info,
- unz_file_info_internal
- *pfile_info_internal,
---- a/src/unzip.h
-+++ b/src/unzip.h
-@@ -8,7 +8,7 @@
- Encryption and multi volume ZipFile (span) are not supported.
- Old compressions used by old PKZip 1.x are not supported
-
-- THIS IS AN ALPHA VERSION. AT THIS STAGE OF DEVELOPPEMENT, SOMES API OR STRUCTURE
-+ THIS IS AN ALPHA VERSION. AT THIS STAGE _Z_OF DEVELOPPEMENT, SOMES API OR STRUCTURE
- CAN CHANGE IN FUTURE VERSION !!
- I WAIT FEEDBACK at mail info@winimage.com
- Visit also http://www.winimage.com/zLibDll/unzip.htm for evolution
-@@ -111,7 +111,7 @@
- tm_unz tmu_date;
- } unz_file_info;
-
--extern int ZEXPORT unzStringFileNameCompare OF ((const char* fileName1,
-+extern int ZEXPORT unzStringFileNameCompare _Z_OF ((const char* fileName1,
- const char* fileName2,
- int iCaseSensitivity));
- /*
-@@ -124,7 +124,7 @@
- */
-
-
--extern unzFile ZEXPORT unzOpen OF((const char *path));
-+extern unzFile ZEXPORT unzOpen _Z_OF((const char *path));
- /*
- Open a Zip file. path contain the full pathname (by example,
- on a Windows NT computer "c:\\zlib\\zlib111.zip" or on an Unix computer
-@@ -135,14 +135,14 @@
- of this unzip package.
- */
-
--extern int ZEXPORT unzClose OF((unzFile file));
-+extern int ZEXPORT unzClose _Z_OF((unzFile file));
- /*
- Close a ZipFile opened with unzipOpen.
- If there is files inside the .Zip opened with unzOpenCurrentFile (see later),
- these files MUST be closed with unzipCloseCurrentFile before call unzipClose.
- return UNZ_OK if there is no problem. */
-
--extern int ZEXPORT unzGetGlobalInfo OF((unzFile file,
-+extern int ZEXPORT unzGetGlobalInfo _Z_OF((unzFile file,
- unz_global_info *pglobal_info));
- /*
- Write info about the ZipFile in the *pglobal_info structure.
-@@ -150,7 +150,7 @@
- return UNZ_OK if there is no problem. */
-
-
--extern int ZEXPORT unzGetGlobalComment OF((unzFile file,
-+extern int ZEXPORT unzGetGlobalComment _Z_OF((unzFile file,
- char *szComment,
- uLong uSizeBuf));
- /*
-@@ -163,20 +163,20 @@
- /***************************************************************************/
- /* Unzip package allow you browse the directory of the zipfile */
-
--extern int ZEXPORT unzGoToFirstFile OF((unzFile file));
-+extern int ZEXPORT unzGoToFirstFile _Z_OF((unzFile file));
- /*
- Set the current file of the zipfile to the first file.
- return UNZ_OK if there is no problem
- */
-
--extern int ZEXPORT unzGoToNextFile OF((unzFile file));
-+extern int ZEXPORT unzGoToNextFile _Z_OF((unzFile file));
- /*
- Set the current file of the zipfile to the next file.
- return UNZ_OK if there is no problem
- return UNZ_END_OF_LIST_OF_FILE if the actual file was the latest.
- */
-
--extern int ZEXPORT unzLocateFile OF((unzFile file,
-+extern int ZEXPORT unzLocateFile _Z_OF((unzFile file,
- const char *szFileName,
- int iCaseSensitivity));
- /*
-@@ -189,7 +189,7 @@
- */
-
-
--extern int ZEXPORT unzGetCurrentFileInfo OF((unzFile file,
-+extern int ZEXPORT unzGetCurrentFileInfo _Z_OF((unzFile file,
- unz_file_info *pfile_info,
- char *szFileName,
- uLong fileNameBufferSize,
-@@ -215,20 +215,20 @@
- from it, and close it (you can close it before reading all the file)
- */
-
--extern int ZEXPORT unzOpenCurrentFile OF((unzFile file));
-+extern int ZEXPORT unzOpenCurrentFile _Z_OF((unzFile file));
- /*
- Open for reading data the current file in the zipfile.
- If there is no error, the return value is UNZ_OK.
- */
-
--extern int ZEXPORT unzCloseCurrentFile OF((unzFile file));
-+extern int ZEXPORT unzCloseCurrentFile _Z_OF((unzFile file));
- /*
- Close the file in zip opened with unzOpenCurrentFile
- Return UNZ_CRCERROR if all the file was read but the CRC is not good
- */
-
-
--extern int ZEXPORT unzReadCurrentFile OF((unzFile file,
-+extern int ZEXPORT unzReadCurrentFile _Z_OF((unzFile file,
- voidp buf,
- unsigned len));
- /*
-@@ -242,17 +242,17 @@
- (UNZ_ERRNO for IO error, or zLib error for uncompress error)
- */
-
--extern z_off_t ZEXPORT unztell OF((unzFile file));
-+extern z_off_t ZEXPORT unztell _Z_OF((unzFile file));
- /*
- Give the current position in uncompressed data
- */
-
--extern int ZEXPORT unzeof OF((unzFile file));
-+extern int ZEXPORT unzeof _Z_OF((unzFile file));
- /*
- return 1 if the end of file was reached, 0 elsewhere
- */
-
--extern int ZEXPORT unzGetLocalExtrafield OF((unzFile file,
-+extern int ZEXPORT unzGetLocalExtrafield _Z_OF((unzFile file,
- voidp buf,
- unsigned len));
- /*
diff --git a/games-rpg/xu4/metadata.xml b/games-rpg/xu4/metadata.xml
index f6c4eeb680aa..dfb64cd69633 100644
--- a/games-rpg/xu4/metadata.xml
+++ b/games-rpg/xu4/metadata.xml
@@ -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>
diff --git a/games-rpg/xu4/xu4-0.9-r1.ebuild b/games-rpg/xu4/xu4-0.9-r1.ebuild
deleted file mode 100644
index ce71208f5d6c..000000000000
--- a/games-rpg/xu4/xu4-0.9-r1.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A remake of the computer game Ultima IV"
-HOMEPAGE="http://xu4.sourceforge.net/"
-SRC_URI="https://downloads.sourceforge.net/xu4/${P}.tar.gz
- https://downloads.sourceforge.net/xu4/ultima4-1.01.zip
- https://downloads.sourceforge.net/xu4/u4upgrad.zip"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-RDEPEND="dev-libs/libxml2
- media-libs/libsdl[sound,video]
- media-libs/sdl-mixer[timidity]"
-DEPEND="${RDEPEND}
- app-arch/unzip"
-
-S=${WORKDIR}/u4
-
-PATCHES=(
- "${FILESDIR}/${P}-ldflags.patch"
- "${FILESDIR}/${PV}-savegame.patch"
- "${FILESDIR}/${P}-warnings.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}.tar.gz
- cp "${DISTDIR}"/{ultima4-1.01.zip,u4upgrad.zip} . || die
- cd "${WORKDIR}" || die
- mv ultima4-1.01.zip ultima4.zip || die
- mkdir u4-dos || die
- cd u4-dos || die
- unzip -q ../ultima4.zip || die
-}
-
-src_prepare() {
- default
-
- sed -i \
- -e "s:/usr/local/lib/u4:/usr/$(get_libdir)/u4:" src/u4file.c \
- || die
- sed -i \
- -e 's:-Wall:$(E_CFLAGS):' src/Makefile \
- || die
-
- has_version "<sys-libs/zlib-1.3" && eapply "${FILESDIR}/${P}-zip.patch"
-}
-
-src_compile() {
- emake -C src \
- DEBUGCFLAGS= \
- E_CFLAGS="${CFLAGS}" \
- bindir="/usr/bin" \
- datadir="/usr/share" \
- libdir="/usr/$(get_libdir)"
-}
-
-src_install() {
- emake -C src \
- DEBUGCFLAGS= \
- E_CFLAGS="${CFLAGS}" \
- bindir="${D}/usr/bin" \
- datadir="${D}/usr/share" \
- libdir="${D}/usr/$(get_libdir)" \
- install
- dodoc AUTHORS README doc/*txt "${WORKDIR}/u4-dos/ULTIMA4/"*TXT
- insinto "/usr/$(get_libdir)/u4"
- doins "${WORKDIR}/"*zip
-}
diff --git a/games-rpg/xu4/xu4-1.2.1.ebuild b/games-rpg/xu4/xu4-1.2.1.ebuild
new file mode 100644
index 000000000000..3c52dcb8012c
--- /dev/null
+++ b/games-rpg/xu4/xu4-1.2.1.ebuild
@@ -0,0 +1,62 @@
+# 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.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"
+}