diff options
Diffstat (limited to 'games-rpg')
-rw-r--r-- | games-rpg/eternal-lands/Manifest | 1 | ||||
-rw-r--r-- | games-rpg/eternal-lands/eternal-lands-1.9.5.3.ebuild | 76 | ||||
-rw-r--r-- | games-rpg/eternal-lands/files/el-wrapper | 53 | ||||
-rw-r--r-- | games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-build.patch | 70 | ||||
-rw-r--r-- | games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-minizip.patch | 90 |
5 files changed, 290 insertions, 0 deletions
diff --git a/games-rpg/eternal-lands/Manifest b/games-rpg/eternal-lands/Manifest index e644551c904a..f79208e9c8b7 100644 --- a/games-rpg/eternal-lands/Manifest +++ b/games-rpg/eternal-lands/Manifest @@ -1,2 +1,3 @@ DIST elc_1.9.3-20120213.tar.bz2 2401172 BLAKE2B 496315a0d09d0b7cb99a77c77965d3d85a675659ae1970dc2c7c7560146b165a48a35f6dfd7eb461d4347ee2023df91ba47c05120957f52f777ea530e868b8d9 SHA512 3580d3ceb94094443ef25f6e4880c9ffe3fff256c8d8e6657b4e0683a05184da9e6a76264557d2065a8187e3d36febd9d30ff5adff83a17607b1e478be90fabc +DIST eternal-lands-1.9.5.3.tar.gz 2814562 BLAKE2B ccb3dd78d12817912293f8babbd5f5dde6f0e3ea0cb34526edd7a3f0371f5313f94ff2d6b22cf472442869dfcf9893c19ec72d7ccf879b0e6a3dbfa05249c38f SHA512 bf0da70080377a76c66d6201da6032aae2967051e23f8aa433d450ec845bcd91145b965632fa63f66feebc15eaa9a65ff8f33884cc1b7c3605125f1536d91563 DIST eternal-lands.png 9955 BLAKE2B 376f6826bab88e798c39d79f00bd8c8758798b70beb980d44bfcdf0c4afb696ea15f58177267ddf189ce53ef6c2c33efdcf507f5135ccc000b56ca28de078f80 SHA512 c77571c949bb43fa7f95ae58f863ed972cfc76e184de5d0fa0a3599e4f7539f6334b843233b61fc807c90ef270d87cd57494510ce559427b592d255c198729bf diff --git a/games-rpg/eternal-lands/eternal-lands-1.9.5.3.ebuild b/games-rpg/eternal-lands/eternal-lands-1.9.5.3.ebuild new file mode 100644 index 000000000000..772635913942 --- /dev/null +++ b/games-rpg/eternal-lands/eternal-lands-1.9.5.3.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +inherit desktop toolchain-funcs xdg + +DESCRIPTION="A 3D fantasy MMORPG written in C and SDL" +HOMEPAGE="http://www.eternal-lands.com" +SRC_URI="https://github.com/raduprv/Eternal-Lands/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="eternal_lands" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND="app-arch/unzip + dev-libs/libxml2 + media-libs/cal3d[-16bit-indices] + media-libs/freealut + media-libs/libpng:0= + media-libs/libsdl[X,opengl,video] + media-libs/libvorbis + media-libs/openal + media-libs/sdl-image + media-libs/sdl-net + sys-libs/zlib[minizip] + virtual/glu + virtual/opengl + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXext" +DEPEND="${RDEPEND} + app-eselect/eselect-opengl + media-libs/glew" +BDEPEND="${DEPEND} + virtual/pkgconfig + doc? ( + app-doc/doxygen + media-gfx/graphviz + )" + +S="${WORKDIR}/Eternal-Lands-${PV}" + +PATCHES=( + "${FILESDIR}/${PN}-1.9.5.3-build.patch" + "${FILESDIR}/${PN}-1.9.5.3-minizip.patch" +) + +src_prepare() { + default + + sed -i "s/FEATURES/EL_FEATURES/g" make.defaults || die + sed -i "s/FEATURES/EL_FEATURES/g" Makefile.linux || die + + # Remove bundled minizip + rm io/{crypt,ioapi,unzip,zip}.h || die + rm io/{ioapi,unzip,zip}.c || die + + cp Makefile.linux Makefile || die +} + +src_compile() { + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" + use doc && emake docs +} + +src_install() { + dobin el.linux.bin + newbin "${FILESDIR}"/el-wrapper el + newicon -s 48 elc.png ${PN}.png + make_desktop_entry el "Eternal Lands" + + dodoc CHANGES TODO + use doc && dodoc -r docs/html/ +} diff --git a/games-rpg/eternal-lands/files/el-wrapper b/games-rpg/eternal-lands/files/el-wrapper new file mode 100644 index 000000000000..ab392d334207 --- /dev/null +++ b/games-rpg/eternal-lands/files/el-wrapper @@ -0,0 +1,53 @@ +#!/bin/bash -e + +elc=~/.elc +datadir=$elc/el_data +browser=xdg-open + +if [[ ! -e $elc ]] || [[ ! -e $datadir ]] || [[ ! -e $elc/servers.lst ]] || + [[ ! -e $elc/el.ini ]]; then + + [[ -e $elc ]] || mkdir -p $elc + + if [[ ! -e $datadir ]]; then + echo + echo "The \"Eternal Lands\" launcher is downloading the game data..." + echo "It is only needed before the first start." + echo "The default data location is ~/.elc/el_data" + echo + + tmpdir="`mktemp -d /tmp/eternal-lands.XXXXXXXXXX`" + trap "rm -r $tmpdir" EXIT + wget https://github.com/raduprv/Eternal-Lands/releases/download/1.9.5.2/el_195_1_data_files.zip -P $tmpdir + unzip $tmpdir/el_195_1_data_files.zip -d $elc + + echo + echo "The game sound and music are optional, you can download \ +them now or any time later from the official website and unpack into \ +~/.elc/el_data/sound and ~/.elc/el_data/music" + while true; do + read -r -n 1 -p "Download the game sound and music now? (y/n) " yn + case $yn in + [Yy]) break;; + [Nn]) break;; + *) echo -e "\nPlease answer Yes or No.";; + esac + done + echo + + if [[ $yn == [Yy] ]]; then + wget https://github.com/raduprv/Eternal-Lands/releases/download/1.9.5.2/eternallands-sound_1.9.4.zip -P $tmpdir + wget https://github.com/raduprv/Eternal-Lands/releases/download/1.9.5.2/music_full.zip -P $tmpdir + unzip $tmpdir/eternallands-sound_1.9.4.zip -d $datadir + mkdir $datadir/music + unzip $tmpdir/music_full.zip -d $datadir/music + fi + + rm -r $tmpdir + fi + + [[ -e $elc/servers.lst ]] || cp $datadir/servers.lst $elc/ + [[ -e $elc/el.ini ]] || cp $datadir/el.ini $elc/ +fi + +exec /usr/bin/el.linux.bin -dir="$datadir" -b="$browser" "$@" diff --git a/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-build.patch b/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-build.patch new file mode 100644 index 000000000000..28f4ab0da542 --- /dev/null +++ b/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-build.patch @@ -0,0 +1,70 @@ +From ef13ae006609e51eaddbcdf0495f44cfde797e26 Mon Sep 17 00:00:00 2001 +From: Stefan Strogin <steils@gentoo.org> +Date: Tue, 14 May 2019 20:34:47 +0300 +Subject: [PATCH 1/2] Respect {C,CXX,LD}FLAGS + +Upstream-Status: Inappropriate [Gentoo-specific] +Signed-off-by: Stefan Strogin <steils@gentoo.org> +--- + Makefile.linux | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/Makefile.linux b/Makefile.linux +index c57aeeeb..a0839c5c 100644 +--- a/Makefile.linux ++++ b/Makefile.linux +@@ -17,11 +17,11 @@ OPTIONS = -DLINUX -DELC $(foreach FEATURE, $(FEATURES), -D$(FEATURE)) -D_7ZIP_ST + $(shell pkg-config vorbisfile --cflags) \ + $(shell pkg-config zlib --cflags) + +-CFLAGS=$(PLATFORM) $(CWARN) -O0 -ggdb -pipe $(OPTIONS) -fno-strict-aliasing $(EXTRA_INCLUDES) ++CFLAGS += $(OPTIONS) -fno-strict-aliasing $(EXTRA_INCLUDES) + +-CXXFLAGS=$(PLATFORM) $(CXXWARN) -O0 -ggdb -pipe $(OPTIONS) -fno-strict-aliasing $(EXTRA_INCLUDES) ++CXXFLAGS += $(OPTIONS) -fno-strict-aliasing $(EXTRA_INCLUDES) + +-LDFLAGS=$(shell pkg-config sdl --libs) \ ++LDFLAGS += $(shell pkg-config sdl --libs) \ + $(shell pkg-config libxml-2.0 --libs) \ + $(shell pkg-config SDL_net --libs) \ + $(shell pkg-config SDL_image --libs) \ +@@ -111,7 +111,7 @@ HEADER_DIRS = . books eye_candy io pawn fsaa engine xz + DEP_FILES=$(foreach OBJ, $(COBJS), .deps/$(OBJ).P) $(foreach OBJ, $(CXXOBJS), .deps/$(OBJ).P) + #(shell echo $OBJ |sed s/\.o/\.P/)) + +-EXE=el.x86.linux.bin ++EXE=el.linux.bin + + ifndef CC + CC=gcc +@@ -127,8 +127,8 @@ all: $(EXE) + + # the compile targets + $(EXE): $(OBJS) +- @echo " LINK $(EXE)" +- @$(LINK) $(CFLAGS) -o $(EXE) $(OBJS) $(LDFLAGS) ++ @echo "$(CC) $(CFLAGS) -o $(EXE) $(OBJS) $(LDFLAGS)" ++ @$(CC) $(CFLAGS) -o $(EXE) $(OBJS) $(LDFLAGS) + + #recompile on Makefile or conf change + #.depend $(OBJS): Makefile.linux make.conf +@@ -136,14 +136,14 @@ $(EXE): $(OBJS) + DEPS_MAGIC := $(shell mkdir .deps .deps/io .deps/shader .deps/eye_candy .deps/exceptions .deps/xz .deps/xml .deps/fsaa .deps/engine > /dev/null 2>&1 || :) + + $(COBJS): %.o: %.c Makefile.linux make.conf +- @echo " CC $@" ++ @echo "$(CC) $(CFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@" + @if $(CC) $(CFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ + mv ".deps/$@.pp" ".deps/$@.P"; \ + else rm -f ".deps/$@.pp"; exit 1; \ + fi + + $(CXXOBJS): %.o: %.cpp Makefile.linux make.conf +- @echo " CXX $@" ++ @echo "$(CXX) $(CXXFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@" + @if $(CXX) $(CXXFLAGS) -MT '$@' -MD -MP -MF '.deps/$@.pp' -c $< -o $@; then \ + mv ".deps/$@.pp" ".deps/$@.P"; \ + else rm -f ".deps/$@.pp"; exit 1; \ +-- +2.21.0 + diff --git a/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-minizip.patch b/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-minizip.patch new file mode 100644 index 000000000000..c1eb35fdc849 --- /dev/null +++ b/games-rpg/eternal-lands/files/eternal-lands-1.9.5.3-minizip.patch @@ -0,0 +1,90 @@ +From 7df2f0a47ff2d25898063dc2fb30ba3d80d63afb Mon Sep 17 00:00:00 2001 +From: Stefan Strogin <steils@gentoo.org> +Date: Thu, 16 May 2019 05:31:16 +0300 +Subject: [PATCH 2/2] Unbundle minizip + +Original patch by Julian Ospald <hasufell@gentoo.org>. +Bug: https://bugs.gentoo.org/423327 + +Upstream-Status: Pending +Signed-off-by: Stefan Strogin <steils@gentoo.org> +--- + Makefile.linux | 4 +++- + io/elfilewrapper.c | 2 +- + io/ziputil.h | 4 ++-- + new_update.c | 4 ++-- + 4 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/Makefile.linux b/Makefile.linux +index a0839c5c..d29ac912 100644 +--- a/Makefile.linux ++++ b/Makefile.linux +@@ -12,6 +12,7 @@ OPTIONS = -DLINUX -DELC $(foreach FEATURE, $(FEATURES), -D$(FEATURE)) -D_7ZIP_ST + $(shell pkg-config cal3d --cflags) \ + $(shell pkg-config gl --cflags) \ + $(shell pkg-config glu --cflags) \ ++ $(shell pkg-config minizip --cflags) \ + $(shell pkg-config openal --cflags) \ + $(shell pkg-config vorbis --cflags) \ + $(shell pkg-config vorbisfile --cflags) \ +@@ -28,6 +29,7 @@ LDFLAGS += $(shell pkg-config sdl --libs) \ + $(shell pkg-config cal3d --libs) \ + $(shell pkg-config gl --libs) \ + $(shell pkg-config glu --libs) \ ++ $(shell pkg-config minizip --libs) \ + $(shell pkg-config openal --libs) \ + $(shell pkg-config vorbis --libs) \ + $(shell pkg-config vorbisfile --libs) \ +@@ -64,7 +66,7 @@ COBJS=2d_objects.o 3d_objects.o \ + hud.o hud_misc_window.o hud_quickbar_window.o hud_statsbar_window.o hud_quickspells_window.o \ + help.o highlight.o ignore.o image_loading.o init.o interface.o items.o io/fileutil.o \ + io/e3d_io.o io/elc_io.o io/map_io.o io/elpathwrapper.o io/xmlcallbacks.o \ +- io/half.o io/normal.o io/elfilewrapper.o io/unzip.o io/ioapi.o io/zip.o io/ziputil.o \ ++ io/half.o io/normal.o io/elfilewrapper.o io/ziputil.o \ + keys.o knowledge.o langselwin.o lights.o list.o load_gl_extensions.o loginwin.o loading_win.o \ + main.o manufacture.o map.o mapwin.o \ + md5.o mines.o minimap.o misc.o missiles.o multiplayer.o \ +diff --git a/io/elfilewrapper.c b/io/elfilewrapper.c +index fad99d62..5dee9a37 100644 +--- a/io/elfilewrapper.c ++++ b/io/elfilewrapper.c +@@ -1,5 +1,5 @@ + #include "elfilewrapper.h" +-#include "unzip.h" ++#include <unzip.h> + #include "elpathwrapper.h" + #include "fileutil.h" + #include <sys/stat.h> +diff --git a/io/ziputil.h b/io/ziputil.h +index 86128315..51fa232b 100644 +--- a/io/ziputil.h ++++ b/io/ziputil.h +@@ -8,8 +8,8 @@ + + #include <SDL.h> + #include "../md5.h" +-#include "zip.h" +-#include "unzip.h" ++#include <zip.h> ++#include <unzip.h> + + #ifdef __cplusplus + extern "C" +diff --git a/new_update.c b/new_update.c +index febd10ae..ec039f6c 100644 +--- a/new_update.c ++++ b/new_update.c +@@ -5,8 +5,8 @@ + #include <string.h> + #include "md5.h" + #include "elc_private.h" +-#include "io/zip.h" +-#include "io/unzip.h" ++#include <zip.h> ++#include <unzip.h> + #include "io/ziputil.h" + #include "io/fileutil.h" + #include "io/elfilewrapper.h" +-- +2.21.0 + |