diff --git a/games/el-data/Makefile b/games/el-data/Makefile index 5c3e7246da1e..a33442406984 100644 --- a/games/el-data/Makefile +++ b/games/el-data/Makefile @@ -1,64 +1,61 @@ PORTNAME= data -DISTVERSION= 1.9.5.9-1 +DISTVERSION= 1.9.7.0-4 +_DATA_VER= ${DISTVERSION:R} +_SOUND_VER= 1.9.6.1 +_MUSIC_VER= 1.9.5.9 PORTEPOCH= 1 CATEGORIES= games MASTER_SITES= https://github.com/raduprv/Eternal-Lands/releases/download/${DISTVERSION}/ PKGNAMEPREFIX= el- DISTFILES= ${EL_DATA} DIST_SUBDIR= ${PKGNAMEPREFIX:S/-//} MAINTAINER= acm@FreeBSD.org COMMENT= Eternal Lands data, sound, and music files WWW= https://www.eternal-lands.com/ NO_ARCH= yes NO_BUILD= yes USES= dos2unix zip:infozip DOS2UNIX_GLOB= *.ini *.txt DATADIR= ${PREFIX}/share/${PKGNAMEPREFIX:S/-//} WRKSRC= ${WRKDIR}/${PKGNAMEPREFIX:S/-/_/}data -EL_DATA= eternallands-data_${DISTVERSION}${EXTRACT_SUFX} +EL_DATA= eternallands-data_${_DATA_VER}${EXTRACT_SUFX} PORTDATA= * OPTIONS_DEFINE= ELSOUND ELMUSIC OPTIONS_DEFAULT= ELSOUND ELMUSIC ELSOUND_DESC= Install additional sound files +ELSOUND_DISTFILES= eternallands-sound_${_SOUND_VER}${EXTRACT_SUFX} ELMUSIC_DESC= Install additional music files +ELMUSIC_DISTFILES= eternallands-music_${_MUSIC_VER}${EXTRACT_SUFX} .include -.if ${PORT_OPTIONS:MELSOUND} -DISTFILES+= eternallands-sound_${DISTVERSION:S/-1//}${EXTRACT_SUFX} -.endif - -.if ${PORT_OPTIONS:MELMUSIC} -DISTFILES+= eternallands-music_${DISTVERSION:S/-1//}${EXTRACT_SUFX} -.endif - do-extract: @${MKDIR} ${WRKSRC} @${UNZIP_CMD} -q ${_DISTDIR}/${EL_DATA} -d ${WRKDIR} .if ${PORT_OPTIONS:MELSOUND} - @${UNZIP_CMD} -q ${_DISTDIR}/eternallands-sound_${DISTVERSION:S/-1//}${EXTRACT_SUFX} -d ${WRKSRC} + @${UNZIP_CMD} -q ${_DISTDIR}/eternallands-sound_${_SOUND_VER}${EXTRACT_SUFX} -d ${WRKSRC} .endif .if ${PORT_OPTIONS:MELMUSIC} @${MKDIR} ${WRKSRC}/music - @${UNZIP_CMD} -q ${_DISTDIR}/eternallands-music_${DISTVERSION:S/-1//}${EXTRACT_SUFX} -d ${WRKSRC}/music + @${UNZIP_CMD} -q ${_DISTDIR}/eternallands-music_${_MUSIC_VER}${EXTRACT_SUFX} -d ${WRKSRC}/music .endif post-extract: @${FIND} ${WRKSRC} -type d -name CVS -print0 | \ ${XARGS} -0 ${RM} -R @${FIND} ${WRKSRC} -type f -name "*.dll" -print0 | \ ${XARGS} -0 ${RM} -R @${FIND} ${WRKSRC} -type f -name "*.exe" -print0 | \ ${XARGS} -0 ${RM} -R @${FIND} ${WRKSRC} -type f -name "*.bin" -print0 | \ ${XARGS} -0 ${RM} -R do-install: cd ${WRKSRC} && ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR} .include diff --git a/games/el-data/distinfo b/games/el-data/distinfo index 25a2a8ffee63..dde4ed183be4 100644 --- a/games/el-data/distinfo +++ b/games/el-data/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1627698011 -SHA256 (el/eternallands-data_1.9.5.9-1.zip) = 00f105ce44998b939bb92361c113961f2220afa0a3b21e53beed35968ae23ae4 -SIZE (el/eternallands-data_1.9.5.9-1.zip) = 66147974 -SHA256 (el/eternallands-sound_1.9.5.9.zip) = 13a030bf5aca4e9e881707216f269df5826ff00345c93afac94a3f58455af542 -SIZE (el/eternallands-sound_1.9.5.9.zip) = 42907788 +TIMESTAMP = 1775590097 +SHA256 (el/eternallands-data_1.9.7.zip) = 2ab4d5549ee66da6bdb10bc86d9dd4ac7ca578aafb291111b330fae8d4c77f98 +SIZE (el/eternallands-data_1.9.7.zip) = 107608413 SHA256 (el/eternallands-music_1.9.5.9.zip) = 1ea4de25081034ac684aaebf127ab6ca8524ba5367532863d84d63837dd631ec SIZE (el/eternallands-music_1.9.5.9.zip) = 65511882 +SHA256 (el/eternallands-sound_1.9.6.1.zip) = e8dc68698b42256cb3c69935f892336e2c5de4002b9bef2c21af2124a5274e3f +SIZE (el/eternallands-sound_1.9.6.1.zip) = 42907816 diff --git a/games/el/Makefile b/games/el/Makefile index 4592597406e2..73bfc4a863f6 100644 --- a/games/el/Makefile +++ b/games/el/Makefile @@ -1,51 +1,48 @@ PORTNAME= el -DISTVERSION= 1.9.5.9-1 -PORTREVISION= 3 +DISTVERSION= 1.9.7.0-4 PORTEPOCH= 1 CATEGORIES= games MAINTAINER= acm@FreeBSD.org COMMENT= Eternal Lands is a free 3D MMORPG WWW= https://www.eternal-lands.com/ -BROKEN= Fails to build, error: implicit instantiation of undefined template 'std::char_traits' - BUILD_DEPENDS= nlohmann-json>0:devel/nlohmann-json LIB_DEPENDS= libpng.so:graphics/png \ libvorbis.so:audio/libvorbis \ libcal3d.so:graphics/cal3d RUN_DEPENDS= ${LOCALBASE}/share/${PORTNAME}/el.ini:games/el-data USES= compiler:c++11-lang desktop-file-utils gl gmake gnome iconv \ openal:al,alut sdl xorg USE_GNOME= libxml2 USE_SDL= sdl2 net2 image2 ttf2 USE_GL= gl glu USE_XORG= x11 USE_GITHUB= yes GH_ACCOUNT= raduprv GH_PROJECT= Eternal-Lands LDFLAGS+= -L${LOCALBASE}/lib ${ICONV_LIB} -lX11 LDFLAGS_i386= -Wl,-znotext ALL_TARGET= el.bin MAKEFILE= Makefile.bsd PLIST_FILES= bin/eternallands \ %%DATADIR%%/el.bin \ share/applications/eternallands.desktop \ share/icons/hicolor/48x48/apps/eternallands.png pre-install: @${ECHO} "#!/bin/sh" > ${WRKDIR}/eternallands @${ECHO} "cd ${DATADIR} || exit 1 " >> ${WRKDIR}/eternallands @${ECHO} "exec ${DATADIR}/el.bin" >> ${WRKDIR}/eternallands do-install: @${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_SCRIPT} ${WRKDIR}/eternallands ${STAGEDIR}${PREFIX}/bin/eternallands ${INSTALL_PROGRAM} ${WRKSRC}/el.bin ${STAGEDIR}${DATADIR} @${MKDIR} ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps ${INSTALL_DATA} ${WRKSRC}/pkgfiles/eternallands.png ${STAGEDIR}${PREFIX}/share/icons/hicolor/48x48/apps/eternallands.png ${INSTALL_DATA} ${WRKSRC}/pkgfiles/eternallands.desktop ${STAGEDIR}${PREFIX}/share/applications/eternallands.desktop .include diff --git a/games/el/distinfo b/games/el/distinfo index 9a3968754461..80f729e15076 100644 --- a/games/el/distinfo +++ b/games/el/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1627692684 -SHA256 (raduprv-Eternal-Lands-1.9.5.9-1_GH0.tar.gz) = 9d9078f46a9be0b798ffe7fd2769a315522914c0884bdde0e950cb7ab4f71e42 -SIZE (raduprv-Eternal-Lands-1.9.5.9-1_GH0.tar.gz) = 3808122 +TIMESTAMP = 1773109004 +SHA256 (raduprv-Eternal-Lands-1.9.7.0-4_GH0.tar.gz) = 3cb78a0057b6621d47c55cca75c668b293b1042b05bf93cb46e24165b5754560 +SIZE (raduprv-Eternal-Lands-1.9.7.0-4_GH0.tar.gz) = 3877513 diff --git a/games/el/files/patch-Makefile.bsd b/games/el/files/patch-Makefile.bsd index e4b709f4dc90..72cfc34f0693 100644 --- a/games/el/files/patch-Makefile.bsd +++ b/games/el/files/patch-Makefile.bsd @@ -1,56 +1,79 @@ ---- Makefile.bsd.orig 2021-04-11 19:03:51 UTC -+++ Makefile.bsd -@@ -2,23 +2,25 @@ +--- Makefile.bsd.orig 2024-12-04 12:34:01.000000000 -0800 ++++ Makefile.bsd 2026-03-09 22:09:45.668531000 -0700 +@@ -5,23 +5,25 @@ -include make.conf +XDIR=-L$(LOCALBASE)/lib + # basic compiling and linking - rarely changed OPTIONS = -DBSD -DUSE_FILE32API -DELC $(foreach FEATURE, $(FEATURES), -D$(FEATURE)) -D_7ZIP_ST -CFLAGS=$(PLATFORM) $(CWARN) -O0 -ggdb -pipe $(OPTIONS) $(shell sdl-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) -_CFLAGS=$(PLATFORM) -O2 -fomit-frame-pointer -ffast-math -pipe $(OPTIONS) $(shell sdl-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) -CXXFLAGS=$(PLATFORM) $(CXXWARN) -O0 -ggdb -pipe $(OPTIONS) $(shell sdl-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) -_CXXFLAGS=$(PLATFORM) -O3 -fomit-frame-pointer -ffast-math -pipe $(OPTIONS) $(shell sdl-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) +CFLAGS+=$(PLATFORM) $(CWARN) $(OPTIONS) $(shell sdl2-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) +_CFLAGS=-fomit-frame-pointer -ffast-math -pipe $(OPTIONS) $(shell sdl2-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) +CXXFLAGS+=$(CXXWARN) $(OPTIONS) $(shell sdl2-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) +_CXXFLAGS=-fomit-frame-pointer -ffast-math $(OPTIONS) $(shell sdl2-config --cflags) $(shell xml2-config --cflags) -fno-strict-aliasing $(EXTRA_INCLUDES) PNG_SCREENSHOT_LIBS = -lpng -LDFLAGS=$(shell sdl-config --libs) $(shell xml2-config --libs) -lSDL_net -lSDL_image -lopenal $(XDIR) -lGL -lGLU -lcal3d -lm $(EXTRA_LIBS) -lz -lpng -lvorbis -lvorbisfile \ -+LDFLAGS+=$(shell sdl2-config --libs) $(shell xml2-config --libs) -lSDL2_net -lSDL2_image -lSDL2_ttf -lopenal $(XDIR) -lGL -lGLU -lcal3d -lm $(EXTRA_LIBS) -lz -lpng -lvorbis -lvorbisfile \ ++LDFLAGS+=$(shell sdl2-config --libs) $(shell xml2-config --libs) -lSDL2_net -lSDL2_image -lSDL2_ttf -lopenal $(XDIR) -lGL -lGLU -lcal3d -lm $(EXTRA_LIBS) -lz -lpng -lvorbis -lvorbisfile -lcrypto -lssl\ $(foreach FEATURE, $(FEATURES), $($(FEATURE)_LIBS)) -_LDFLAGS=$(XDIR) -lGL -lpthread -lstdc++ -+_LDFLAGS=$(XDIR) -lGL -pthread ++_LDFLAGS=$(XDIR) -lGL -pthread -lcrypto -lssl # This works on Ubuntu 8.04 (LTS) at least # Install these packages in addition to those required for a standard build # libasound2-dev libaudio-dev libartsc0-dev libesd0-dev libpulse-dev libaa1-dev libgpmg1-dev libdirectfb-dev LIBD=/usr/lib -STATICLIBS=$(LIBD)/libSDL_net.a $(LIBD)/libSDL.a $(LIBD)/libSDL_image.a $(LIBD)/libopenal.a $(LIBD)/libvorbisfile.a $(LIBD)/libvorbis.a $(LIBD)/libogg.a $(LIBD)/libxml2.a $(LIBD)/libcal3d.a $(LIBD)/libpng.a $(LIBD)/libasound.a $(LIBD)/libaudio.a $(LIBD)/libartsc.a $(LIBD)/libesd.a $(LIBD)/libpulse-simple.a $(LIBD)/libpulse.a $(LIBD)/libaa.a $(LIBD)/libgpm.a $(LIBD)/libcurses.a $(LIBD)/libslang.a $(LIBD)/libdirectfb.a $(LIBD)/libdirect.a $(LIBD)/libfusion.a $(LIBD)/librt.a $(LIBD)/libtiff.a $(LIBD)/libjpeg.a $(LIBD)/libGLU.a $(LIBD)/libz.a +STATICLIBS=$(LIBD)/libSDL2_net.a $(LIBD)/libSDL2.a $(LIBD)/libSDL2_image.a $(LIBD)/libopenal.a $(LIBD)/libvorbisfile.a $(LIBD)/libvorbis.a $(LIBD)/libogg.a $(LIBD)/libxml2.a $(LIBD)/libcal3d.a $(LIBD)/libpng.a $(LIBD)/libasound.a $(LIBD)/libaudio.a $(LIBD)/libartsc.a $(LIBD)/libesd.a $(LIBD)/libpulse-simple.a $(LIBD)/libpulse.a $(LIBD)/libaa.a $(LIBD)/libgpm.a $(LIBD)/libcurses.a $(LIBD)/libslang.a $(LIBD)/libdirectfb.a $(LIBD)/libdirect.a $(LIBD)/libfusion.a $(LIBD)/librt.a $(LIBD)/libtiff.a $(LIBD)/libjpeg.a $(LIBD)/libGLU.a $(LIBD)/libz.a # the objects we need ENCYCLOPEDIA_COBJ = books/fontdef.o books/parser.o books/symbol.o books/typesetter.o sort.o symbol_table.o -@@ -85,16 +87,16 @@ HEADER_DIRS = . books eye_candy io pawn fsaa engine xz +@@ -30,6 +32,7 @@ + pawn/amxfloat.o pawn/amxstring.o pawn/elpawn.o + CUSTOM_UPDATE_COBJ = custom_update.o new_update.o + FSAA_COBJ = fsaa/fsaa_glx.o fsaa/fsaa.o ++PACKET_COMPRESSION_COBJ = ext_protocol_shared.o + COBJS=2d_objects.o 3d_objects.o \ + actor_scripts.o actors.o alphamap.o asc.o astrology.o \ + bbox_tree.o buddy.o buffs.o bags.o \ +@@ -60,11 +63,12 @@ + $(foreach FEATURE, $(FEATURES), $($(FEATURE)_COBJ)) + + JSON_FILES_CXXOBJ = json_io.o +-CXXOBJS=achievements.o actor_init.o books.o cal3d_wrapper.o command_queue.o \ ++USE_SSL_CXXOBJ = connection.o ipaddress.o socket.o ++CXXOBJS=actors_list.o achievements.o actor_init.o books.o cal3d_wrapper.o command_queue.o \ + context_menu.o cppwindows.o elloggingwrapper.o engine/logging.o exceptions/extendedexception.o \ + font.o hud_indicators.o hud_timer.o icon_window.o invasion_window.o io/cal3d_io_wrapper.o item_info.o item_lists.o \ + named_colours.o password_manager.o optimizer.o quest_log.o select.o \ +- sendvideoinfo.o trade_log.o user_menus.o xml/xmlhelper.o eye_candy_wrapper.o \ ++ sendvideoinfo.o textpopup.o trade_log.o user_menus.o xml/xmlhelper.o eye_candy_wrapper.o \ + engine/hardwarebuffer.o xor_cipher.o \ + eye_candy/eye_candy.o eye_candy/math_cache.o eye_candy/effect_lamp.o \ + eye_candy/effect_candle.o \ +@@ -88,16 +92,16 @@ DEP_FILES=$(foreach OBJ, $(COBJS), .deps/$(OBJ).P) $(foreach OBJ, $(CXXOBJS), .deps/$(OBJ).P) #(shell echo $OBJ |sed s/\.o/\.P/)) -EXE=el.x86.bsd.bin +EXE=el.bin ifndef CC -CC=gcc +CC?=gcc endif ifndef CXX -CXX=g++ +CXX?=g++ endif ifndef LINK -LINK=gcc +LINK?=$(CXX) endif all: $(EXE) diff --git a/games/el/files/patch-platform.h b/games/el/files/patch-platform.h index 45a1ae797260..bc7582cb7822 100644 --- a/games/el/files/patch-platform.h +++ b/games/el/files/patch-platform.h @@ -1,30 +1,59 @@ ---- platform.h.orig 2021-04-11 19:03:51 UTC -+++ platform.h +--- platform.h.orig 2024-12-04 12:34:01.000000000 -0800 ++++ platform.h 2026-03-09 21:09:29.579167000 -0700 @@ -11,7 +11,7 @@ // http://predef.sourceforge.net/prearch.html , these ought to work on // gcc, Sun Studio and Visual Studio. // Throw in ia64 as well, though I doubt anyone will play EL on that. -#if defined (__x86_64__) || defined (_M_X64) || defined (__ia64__) || defined (_M_IA64) +#if defined (__x86_64__) || defined (_M_X64) || defined (__ia64__) || defined (_M_IA64) || defined (__amd64__) #define X86_64 #endif -@@ -85,16 +85,13 @@ - #include "elglext.h" - #define APIENTRY - #define APIENTRYP * --#elif !defined(BSD) -+#else - #define GL_GLEXT_LEGACY - #include - #include - #undef GL_VERSION_1_2 - #undef GL_VERSION_1_3 -- #include "glext.h" --#else // BSD -- #include -- #include -+ #include +@@ -192,6 +192,47 @@ + + #ifdef __cplusplus + } // extern "C" ++ ++#include ++#include ++ ++namespace std { ++ template<> struct char_traits { ++ typedef unsigned char char_type; ++ typedef int int_type; ++ typedef streamoff off_type; ++ typedef streampos pos_type; ++ typedef mbstate_t state_type; ++ ++ static void assign(char_type& c1, const char_type& c2) noexcept { c1 = c2; } ++ static bool eq(const char_type& c1, const char_type& c2) noexcept { return c1 == c2; } ++ static bool lt(const char_type& c1, const char_type& c2) noexcept { return c1 < c2; } ++ ++ static int compare(const char_type* s1, const char_type* s2, size_t n) { ++ return memcmp(s1, s2, n); ++ } ++ static size_t length(const char_type* s) { ++ return strlen(reinterpret_cast(s)); ++ } ++ static const char_type* find(const char_type* s, size_t n, const char_type& a) { ++ return static_cast(memchr(s, a, n)); ++ } ++ static char_type* move(char_type* s1, const char_type* s2, size_t n) { ++ return static_cast(memmove(s1, s2, n)); ++ } ++ static char_type* copy(char_type* s1, const char_type* s2, size_t n) { ++ return static_cast(memcpy(s1, s2, n)); ++ } ++ static char_type* assign(char_type* s, size_t n, char_type a) { ++ return static_cast(memset(s, a, n)); ++ } ++ static int_type not_eof(const int_type& i) noexcept { return i != eof() ? i : !eof(); } ++ static char_type to_char_type(const int_type& i) noexcept { return static_cast(i); } ++ static int_type to_int_type(const char_type& c) noexcept { return static_cast(c); } ++ static bool eq_int_type(const int_type& i1, const int_type& i2) noexcept { return i1 == i2; } ++ static int_type eof() noexcept { return static_cast(EOF); } ++ }; ++} #endif - // Inlucde the plaform specific location sound libs + #endif // PLATFORM_H