diff options
Diffstat (limited to 'games-rpg/xu4')
-rw-r--r-- | games-rpg/xu4/Manifest | 9 | ||||
-rw-r--r-- | games-rpg/xu4/files/0.9-savegame.patch | 76 | ||||
-rw-r--r-- | games-rpg/xu4/files/xu4-0.9-ldflags.patch | 35 | ||||
-rw-r--r-- | games-rpg/xu4/files/xu4-0.9-warnings.patch | 26 | ||||
-rw-r--r-- | games-rpg/xu4/files/xu4-0.9-zip.patch | 144 | ||||
-rw-r--r-- | games-rpg/xu4/metadata.xml | 11 | ||||
-rw-r--r-- | games-rpg/xu4/xu4-0.9-r1.ebuild | 75 |
7 files changed, 376 insertions, 0 deletions
diff --git a/games-rpg/xu4/Manifest b/games-rpg/xu4/Manifest new file mode 100644 index 000000000000..bfb57e535012 --- /dev/null +++ b/games-rpg/xu4/Manifest @@ -0,0 +1,9 @@ +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 +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 1664 BLAKE2B b6cdc4c4b22521b2a8892b55965aa5daa74a2654c58aeb718372dc1bfd27eb9d036ba5c855947dc0d911a1bfacf8c5ff4922524e0912e6b4ce64eedc8a2f2cd2 SHA512 558b73be5403e28590790461f416cd7179dd57ea6303a5cc55de678eaefb9bb40f394a04bc1e836219f165eb172f6fddff15213fb17b344ff52032c635bb12c1 +MISC metadata.xml 326 BLAKE2B c34bb1f21e6b7a60bb30b7bb3196af118f53137fcfd6508c3bc84c6abd1f62d53c1f43e72a1816c86f982f6f49b7dfa774647d1f42fc6ab696479b1ad645f9a9 SHA512 cdeb23df21e2a0ad4994adffe0ecf7fdca9fb886b6afc13483a80ffd481c9a031c2039894c86693b1ecf9652f882c2816e7091a3d6dd9ad76013b563e8780ec3 diff --git a/games-rpg/xu4/files/0.9-savegame.patch b/games-rpg/xu4/files/0.9-savegame.patch new file mode 100644 index 000000000000..96d16360f37c --- /dev/null +++ b/games-rpg/xu4/files/0.9-savegame.patch @@ -0,0 +1,76 @@ +--- 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/xu4-0.9-ldflags.patch b/games-rpg/xu4/files/xu4-0.9-ldflags.patch new file mode 100644 index 000000000000..7f1e5cd922d7 --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-ldflags.patch @@ -0,0 +1,35 @@ +--- 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 new file mode 100644 index 000000000000..e52b610e61d4 --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-warnings.patch @@ -0,0 +1,26 @@ +--- 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 new file mode 100644 index 000000000000..a8d2c58971c9 --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-zip.patch @@ -0,0 +1,144 @@ +--- 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 new file mode 100644 index 000000000000..4bc2f4a79c26 --- /dev/null +++ b/games-rpg/xu4/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>games@gentoo.org</email> + <name>Gentoo Games Project</name> + </maintainer> + <upstream> + <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 new file mode 100644 index 000000000000..69fd4ed87d0b --- /dev/null +++ b/games-rpg/xu4/xu4-0.9-r1.ebuild @@ -0,0 +1,75 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit eutils + +DESCRIPTION="A remake of the computer game Ultima IV" +HOMEPAGE="http://xu4.sourceforge.net/" +SRC_URI="mirror://sourceforge/xu4/${P}.tar.gz + mirror://sourceforge/xu4/ultima4-1.01.zip + mirror://sourceforge/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 + +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 +} + +PATCHES=( + "${FILESDIR}/${P}-ldflags.patch" + "${FILESDIR}/${PV}-savegame.patch" + "${FILESDIR}/${P}-warnings.patch" + "${FILESDIR}/${P}-zip.patch" +) +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 +} + +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 +} |