diff options
Diffstat (limited to 'games-rpg/xu4')
-rw-r--r-- | games-rpg/xu4/Manifest | 3 | ||||
-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 | 8 | ||||
-rw-r--r-- | games-rpg/xu4/xu4-0.9.ebuild | 73 |
7 files changed, 365 insertions, 0 deletions
diff --git a/games-rpg/xu4/Manifest b/games-rpg/xu4/Manifest new file mode 100644 index 000000000000..b573d51cce61 --- /dev/null +++ b/games-rpg/xu4/Manifest @@ -0,0 +1,3 @@ +DIST u4upgrad.zip 632072 SHA256 400ac37311f3be74c1b2d7836561b2ead2b146f5162586865b0f4881225cca58 SHA512 4832d8cfd266d3ccc5eab5184bd2b6b9acd4c0203478873fb5e11704d95104dd9285a7752bad77f873d4f8603673184ae9421964509b948ec69944a4ceadd083 WHIRLPOOL 3d9c320efe24b29edca1f0d917dcaad1da7c1c6246c753b2366ada81552f43113bd57f335ca79adf2283cdab6ba24bf0c09aeb7802a33d3fdec5e0bbe1782d01 +DIST ultima4-1.01.zip 537487 SHA256 ec84ef08e9e38156622300065aa62260276fc8f1c1ff2774f7916e7c10db40dc SHA512 c86c29d51e21b93992316552fbaaec948e7e8048fea484f003f43ac82211f82fa587fb15db991cddf744f2c3ff0fc4d411cd51cc7650e13a5b520c4dc620518c WHIRLPOOL f3acdc021449e3b55adc7d0ea967c8f77cdd813a0f9316042ae8e906eb105b6297f19efc90fffbd9be747bca7d6b0ea4b0bbdc1729c906076e89498558250155 +DIST xu4-0.9.tar.gz 320090 SHA256 26d7a957411e98474d3a06a0bf63a683208d3c35c0cf7afe90db992a934b0bf3 SHA512 6c0b27472074d96a5f76e024c800bed89c57c29dbd760278c819ad8b024362480bda5f1584eb9fe64fd6f6cae0b3b8d8571c8cf533f25b842471803acd7cea8d WHIRLPOOL 428ee87920850e16ce411e0a2bd1656a68a61644d96349bf727cbedd041e6fe3c8c134e960eaf5205d0d3f9deeccd9de23cab2186567fbd8c80b382ac5c9f812 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..44a52dd40e95 --- /dev/null +++ b/games-rpg/xu4/files/0.9-savegame.patch @@ -0,0 +1,76 @@ +--- src/savegame.c.orig ++++ 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; + } + +--- src/u4.c.orig ++++ 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..560cdc33f1d9 --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-ldflags.patch @@ -0,0 +1,35 @@ +--- src/Makefile.common.old ++++ 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..58b35316ac0d --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-warnings.patch @@ -0,0 +1,26 @@ +--- u4.orig/src/u4.c ++++ u4/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> +--- u4.orig/u4.desktop ++++ u4/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..c2d2053cb3f8 --- /dev/null +++ b/games-rpg/xu4/files/xu4-0.9-zip.patch @@ -0,0 +1,144 @@ +--- src/unzip.c.orig ++++ 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, +--- src/unzip.h.orig ++++ 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..2d86c15ce51e --- /dev/null +++ b/games-rpg/xu4/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>games</herd> + <upstream> + <remote-id type="sourceforge">xu4</remote-id> + </upstream> +</pkgmetadata> diff --git a/games-rpg/xu4/xu4-0.9.ebuild b/games-rpg/xu4/xu4-0.9.ebuild new file mode 100644 index 000000000000..9e8be7050a63 --- /dev/null +++ b/games-rpg/xu4/xu4-0.9.ebuild @@ -0,0 +1,73 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit eutils games + +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 ppc x86" +IUSE="" + +RDEPEND="dev-libs/libxml2 + media-libs/sdl-mixer[timidity] + media-libs/libsdl[sound,video]" +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}" + mv ultima4-1.01.zip ultima4.zip + mkdir u4-dos + cd u4-dos + unzip -q ../ultima4.zip || die +} + +src_prepare() { + epatch "${FILESDIR}/${PV}-savegame.patch" \ + "${FILESDIR}"/${P}-ldflags.patch \ + "${FILESDIR}"/${P}-zip.patch \ + "${FILESDIR}"/${P}-warnings.patch + sed -i \ + -e "s:/usr/local/lib/u4:$(games_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="${GAMES_BINDIR}" \ + datadir="/usr/share" \ + libdir="$(games_get_libdir)" +} + +src_install() { + emake -C src \ + DEBUGCFLAGS= \ + E_CFLAGS="${CFLAGS}" \ + bindir="${D}${GAMES_BINDIR}" \ + datadir="${D}/usr/share" \ + libdir="${D}$(games_get_libdir)" \ + install + dodoc AUTHORS README doc/*txt "${WORKDIR}/u4-dos/ULTIMA4/"*TXT + insinto "$(games_get_libdir)/u4" + doins "${WORKDIR}/"*zip + prepgamesdirs +} |