git: cfbb908ce243 - main - games/gemrb: fix crash and improve port
Date: Tue, 20 Feb 2024 20:56:31 UTC
The branch main has been updated by pkubaj:
URL: https://cgit.FreeBSD.org/ports/commit/?id=cfbb908ce243d1bd9e2aedea968e330a214b1d21
commit cfbb908ce243d1bd9e2aedea968e330a214b1d21
Author: bsdcode <bsdcode@disroot.org>
AuthorDate: 2024-02-20 11:54:28 +0000
Commit: Piotr Kubaj <pkubaj@FreeBSD.org>
CommitDate: 2024-02-20 20:56:07 +0000
games/gemrb: fix crash and improve port
- use GCC (https://github.com/gemrb/gemrb/issues/1786)
- add optional OpenGL and SDL2_mixer support
- add disabled pixelscaling to screensize option
- change GemRB.cfg into a proper conffile
(remove from pkg-plist and annotate GemRB.cfg.sample with @sample)
- fix and modernize pkg-message
- use distfiles form GitHub instead of SourceForge
- make PNG, OGG, TTF and OpenAL support optional
- make optional demo assets also optional in the port
- use compiler:c++11-lang
- remove gnome and localbase uses
- remove DOC_DIR and MAN_DIR from CMAKE_ARGS
- set CMake options explicitly
- use CMake options helpers for boolean options
- organize options into AUDIO, RESOURCE and VIDEO groups
git rm games/gemrb/files/patch-gemrb_plugins_TTFImporter_CMakeLists.txt
git add games/gemrb/files/extra-patch-gemrb_plugins_TTFImporter_CMakeLists.txt
---
games/gemrb/Makefile | 91 +++++++++++++++++-----
games/gemrb/distinfo | 8 +-
...patch-gemrb_plugins_TTFImporter_CMakeLists.txt} | 0
games/gemrb/files/pkg-message.in | 24 ++++--
games/gemrb/pkg-plist | 16 ++--
5 files changed, 100 insertions(+), 39 deletions(-)
diff --git a/games/gemrb/Makefile b/games/gemrb/Makefile
index 14d06b5e9359..e78c7b2ec233 100644
--- a/games/gemrb/Makefile
+++ b/games/gemrb/Makefile
@@ -1,8 +1,8 @@
-PORTNAME= gemrb
-PORTVERSION= 0.9.2
-CATEGORIES= games emulators
-MASTER_SITES= SF/${PORTNAME}/Releases/${PORTVERSION}
-DISTNAME= ${PORTNAME}-${PORTVERSION}-sources
+PORTNAME= gemrb
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.9.2
+PORTREVISION= 1
+CATEGORIES= games emulators
MAINTAINER= pkubaj@FreeBSD.org
COMMENT= GemRB (Game engine made with preRendered Background)
@@ -11,27 +11,76 @@ WWW= https://www.gemrb.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-LIB_DEPENDS= libpng.so:graphics/png \
- libvorbis.so:audio/libvorbis \
- libfreetype.so:print/freetype2
-
-USES= cmake compiler:c11 gnome iconv localbase openal:al,alut \
- python sdl shebangfix
+USES= cmake compiler:c++11-lang iconv python sdl shebangfix
SHEBANG_FILES= admin/extend2da.py
-USE_SDL= sdl2
+USE_GCC= yes # https://github.com/gemrb/gemrb/issues/1786
+USE_GITHUB= yes
USE_LDCONFIG= yes
+USE_SDL= sdl2
+
+CMAKE_ARGS= -DCMAKE_BUILD_TYPE=Release \
+ -DHAVE_LDEXPF=1 \
+ -DLAYOUT=fhs \
+ -DPYTHON_VERSION=Auto \
+ -DSANITIZE=None \
+ -DSDL_BACKEND=SDL2
+CMAKE_OFF= DISABLE_WERROR \
+ INSOURCEBUILD \
+ STATIC_LINK \
+ USE_LIBVLC \
+ USE_SDL_CONTROLLER_API
+
+SUB_FILES= pkg-message
+
+OPTIONS_DEFINE= DOCS
+OPTIONS_DEFAULT= DEMO FREETYPE OPENAL OPENGL PNG SDLMIXER VORBIS
+
+OPTIONS_GROUP= AUDIO RESOURCE VIDEO
+OPTIONS_GROUP_AUDIO= OPENAL SDLMIXER
+OPTIONS_GROUP_RESOURCE= DEMO FREETYPE PNG VORBIS
+OPTIONS_GROUP_VIDEO= OPENGL RESIND
+
+OPTIONS_SUB= yes
-OPTIONS_DEFINE= DOCS
-OPTIONS_SUB= yes
+DEMO_DESC= Optional demo assets
+DEMO_GH_ACCOUNT= gemrb:demo
+DEMO_GH_PROJECT= gemrb-assets:demo
+DEMO_GH_TAGNAME= 5b5dcde:demo
-CMAKE_ARGS= -DDOC_DIR="${DOCSDIR}" \
- -DMAN_DIR="${PREFIX}/share/man/man6/" \
- -DSDL_BACKEND=SDL2 \
- -DUSE_OPENAL=ON \
- -DUSE_LIBVLC=OFF \
- -DHAVE_LDEXPF=1
+FREETYPE_LIB_DEPENDS= libfreetype.so:print/freetype2
+FREETYPE_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-gemrb_plugins_TTFImporter_CMakeLists.txt
+FREETYPE_CMAKE_BOOL= USE_FREETYPE
+
+OPENAL_USES= openal:al,alut
+OPENAL_CMAKE_BOOL= USE_OPENAL
+
+OPENGL_USES= gl
+OPENGL_USE= gl=egl
+OPENGL_CMAKE_ON= -DOPENGL_BACKEND=OpenGL
+OPENGL_CMAKE_OFF= -DOPENGL_BACKEND=None
+
+PNG_LIB_DEPENDS= libpng.so:graphics/png
+PNG_CMAKE_BOOL= USE_PNG
+
+RESIND_DESC= Scale to screensize with pixelscaling
+RESIND_CMAKE_BOOL= SDL_RESOLUTION_INDEPENDANCE
+
+SDLMIXER_DESC= Audio support via SDL_mixer
+SDLMIXER_USE= sdl=mixer2
+SDLMIXER_CMAKE_BOOL= USE_SDLMIXER
+
+VORBIS_LIB_DEPENDS= libvorbis.so:audio/libvorbis
+VORBIS_CMAKE_BOOL= USE_VORBIS
PLIST_SUB= PORTVERSION=${PORTVERSION}
-WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
+
+post-extract-DEMO-on:
+ ${MKDIR} ${WRKSRC}/demo/music/mx0100
+ ${INSTALL_DATA} ${WRKSRC_demo}/demo/audio/whispers-seamless.ogg ${WRKSRC}/demo/music/mx0100/mx0100a.ogg
+ ${MKDIR} ${WRKSRC}/demo/music/theme
+ ${INSTALL_DATA} ${WRKSRC_demo}/demo/audio/themea.ogg ${WRKSRC}/demo/music/theme
+
+post-install:
+ ${RM} ${STAGEDIR}${ETCDIR}/GemRB.cfg
.include <bsd.port.mk>
diff --git a/games/gemrb/distinfo b/games/gemrb/distinfo
index 0ae3e5741971..a80d2e1ab4dc 100644
--- a/games/gemrb/distinfo
+++ b/games/gemrb/distinfo
@@ -1,3 +1,5 @@
-TIMESTAMP = 1705483350
-SHA256 (gemrb-0.9.2-sources.tar.gz) = 5206d7e3fee45d21030caac92bc799b12ec011f90e59d7408c4b0eb4a8330d40
-SIZE (gemrb-0.9.2-sources.tar.gz) = 16123769
+TIMESTAMP = 1708291230
+SHA256 (gemrb-gemrb-v0.9.2_GH0.tar.gz) = ea614c067483606dab680ab18cd50527f56803bd46e0888e3c786eec05d3bb7d
+SIZE (gemrb-gemrb-v0.9.2_GH0.tar.gz) = 14327547
+SHA256 (gemrb-gemrb-assets-5b5dcde_GH0.tar.gz) = 3e180e3ae063651bfabaab5795a946183212fd451986e3f4cac9203278283d23
+SIZE (gemrb-gemrb-assets-5b5dcde_GH0.tar.gz) = 11161448
diff --git a/games/gemrb/files/patch-gemrb_plugins_TTFImporter_CMakeLists.txt b/games/gemrb/files/extra-patch-gemrb_plugins_TTFImporter_CMakeLists.txt
similarity index 100%
rename from games/gemrb/files/patch-gemrb_plugins_TTFImporter_CMakeLists.txt
rename to games/gemrb/files/extra-patch-gemrb_plugins_TTFImporter_CMakeLists.txt
diff --git a/games/gemrb/files/pkg-message.in b/games/gemrb/files/pkg-message.in
index c58d42d857b1..26668d0faccb 100644
--- a/games/gemrb/files/pkg-message.in
+++ b/games/gemrb/files/pkg-message.in
@@ -1,14 +1,24 @@
[
{ type: install
message: <<EOM
-To use GemRB, you must copy the Chitin.key from your respective Infinity Engine
-game CD to the GemRB directory. If you do not copy this file, GemRB will not
-work. Additionally, %%ETCDIR%%/GemRB.cfg needs to be edited to point to the
-Infinity Engine game installation directory. Games can be installed with
-emulators/wine-devel, archivers/unshield, or the custom GemRB game installer:
-http://git.njw.name/cgit/cgit.cgi/gemrb-gameinstallers/
+You will need one of the original Infinity Engine games or the free Baldur's Gate II
+demo. GemRB does not support the Enhanced Edition versions of the games. GemRB comes
+with its own short demo.
-Please see http://www.gemrb.org/ for additional help and instructions.
+GemRB needs access to game files. You have several options to provide the files:
+ - copy from a Windows system
+ - install with emulators/wine
+ - extract with archivers/unshield and archivers/cabextract
+ (https://github.com/gemrb/gemrb/wiki/Unshield:-alternative-game-install-method)
+ - use the custom GemRB games installers
+ (http://git.njw.name/cgit/cgit.cgi/gemrb-gameinstallers)
+
+Additionally, %%ETCDIR%%/GemRB.cfg needs to be edited to point to the Infinity
+Engine game installation directory, i.e. the directory where you provide the game
+files from above. If it doesn't point to a valid game directory then GemRB will
+start its demo instead.
+
+Please see https://www.gemrb.org for additional help and instructions.
EOM
}
]
diff --git a/games/gemrb/pkg-plist b/games/gemrb/pkg-plist
index 7d6817e6b2b8..11d19f0345db 100644
--- a/games/gemrb/pkg-plist
+++ b/games/gemrb/pkg-plist
@@ -1,8 +1,7 @@
bin/extend2da.py
bin/gemrb
-%%ETCDIR%%/GemRB.cfg
%%ETCDIR%%/GemRB.cfg.noinstall.sample
-%%ETCDIR%%/GemRB.cfg.sample
+@sample %%ETCDIR%%/GemRB.cfg.sample
lib/gemrb/libgemrb_core.so
lib/gemrb/libgemrb_core.so.%%PORTVERSION%%
lib/gemrb/plugins/2DAImporter.so
@@ -31,20 +30,21 @@ lib/gemrb/plugins/MUSImporter.so
lib/gemrb/plugins/MVEPlayer.so
lib/gemrb/plugins/NullSound.so
lib/gemrb/plugins/NullSource.so
-lib/gemrb/plugins/OGGReader.so
-lib/gemrb/plugins/OpenALAudio.so
+%%VORBIS%%lib/gemrb/plugins/OGGReader.so
+%%OPENAL%%lib/gemrb/plugins/OpenALAudio.so
lib/gemrb/plugins/PLTImporter.so
-lib/gemrb/plugins/PNGImporter.so
+%%PNG%%lib/gemrb/plugins/PNGImporter.so
lib/gemrb/plugins/PROImporter.so
lib/gemrb/plugins/PSTOpcodes.so
lib/gemrb/plugins/PVRZImporter.so
lib/gemrb/plugins/SAVImporter.so
+%%SDLMIXER%%lib/gemrb/plugins/SDLAudio.so
lib/gemrb/plugins/SDLVideo.so
lib/gemrb/plugins/SPLImporter.so
lib/gemrb/plugins/STOImporter.so
lib/gemrb/plugins/TISImporter.so
lib/gemrb/plugins/TLKImporter.so
-lib/gemrb/plugins/TTFImporter.so
+%%FREETYPE%%lib/gemrb/plugins/TTFImporter.so
lib/gemrb/plugins/WAVReader.so
lib/gemrb/plugins/WEDImporter.so
lib/gemrb/plugins/WMPImporter.so
@@ -336,9 +336,9 @@ share/applications/gemrb.desktop
%%DATADIR%%/demo/gem-demo.ini
%%DATADIR%%/demo/keymap.ini
%%DATADIR%%/demo/music/mx0100.mus
-%%DATADIR%%/demo/music/mx0100/mx0100a.ogg
+%%DEMO%%%%DATADIR%%/demo/music/mx0100/mx0100a.ogg
%%DATADIR%%/demo/music/theme.mus
-%%DATADIR%%/demo/music/theme/themea.ogg
+%%DEMO%%%%DATADIR%%/demo/music/theme/themea.ogg
%%DATADIR%%/demo/override/AMB_D18.ogg
%%DATADIR%%/demo/override/AR0100.WED
%%DATADIR%%/demo/override/AR0100HT.BMP