Re: git: cfbb908ce243 - main - games/gemrb: fix crash and improve port
- In reply to: Piotr Kubaj : "git: cfbb908ce243 - main - games/gemrb: fix crash and improve port"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 20 Feb 2024 21:14:49 UTC
On 2024-02-20T21:56:31.000+01:00, Piotr Kubaj <pkubaj@FreeBSD.org>
wrote:
> 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 [http://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 [http://libpng.so:graphics/png] \
>
> - libvorbis.so:audio/libvorbis [http://libvorbis.so:audio/libvorbis] \
>
> - libfreetype.so:print/freetype2 [http://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 [http://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 [http://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 [http://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 [http://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> [http://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 [http://pkg-message.in] b/games/gemrb/files/pkg-message.in [http://pkg-message.in]
>
> index c58d42d857b1..26668d0faccb 100644
>
> --- a/games/gemrb/files/pkg-message.in [http://pkg-message.in]
>
> +++ b/games/gemrb/files/pkg-message.in [http://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 [http://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 [http://core.so]
>
> lib/gemrb/libgemrb_core.so [http://core.so].%%PORTVERSION%%
>
> lib/gemrb/plugins/2DAImporter.so [http://2DAImporter.so]
>
> @@ -31,20 +30,21 @@ lib/gemrb/plugins/MUSImporter.so [http://MUSImporter.so]
>
> lib/gemrb/plugins/MVEPlayer.so [http://MVEPlayer.so]
>
> lib/gemrb/plugins/NullSound.so [http://NullSound.so]
>
> lib/gemrb/plugins/NullSource.so [http://NullSource.so]
>
> -lib/gemrb/plugins/OGGReader.so [http://OGGReader.so]
>
> -lib/gemrb/plugins/OpenALAudio.so [http://OpenALAudio.so]
>
> +%%VORBIS%%lib/gemrb/plugins/OGGReader.so [http://OGGReader.so]
>
> +%%OPENAL%%lib/gemrb/plugins/OpenALAudio.so [http://OpenALAudio.so]
>
> lib/gemrb/plugins/PLTImporter.so [http://PLTImporter.so]
>
> -lib/gemrb/plugins/PNGImporter.so [http://PNGImporter.so]
>
> +%%PNG%%lib/gemrb/plugins/PNGImporter.so [http://PNGImporter.so]
>
> lib/gemrb/plugins/PROImporter.so [http://PROImporter.so]
>
> lib/gemrb/plugins/PSTOpcodes.so [http://PSTOpcodes.so]
>
> lib/gemrb/plugins/PVRZImporter.so [http://PVRZImporter.so]
>
> lib/gemrb/plugins/SAVImporter.so [http://SAVImporter.so]
>
> +%%SDLMIXER%%lib/gemrb/plugins/SDLAudio.so [http://SDLAudio.so]
>
> lib/gemrb/plugins/SDLVideo.so [http://SDLVideo.so]
>
> lib/gemrb/plugins/SPLImporter.so [http://SPLImporter.so]
>
> lib/gemrb/plugins/STOImporter.so [http://STOImporter.so]
>
> lib/gemrb/plugins/TISImporter.so [http://TISImporter.so]
>
> lib/gemrb/plugins/TLKImporter.so [http://TLKImporter.so]
>
> -lib/gemrb/plugins/TTFImporter.so [http://TTFImporter.so]
>
> +%%FREETYPE%%lib/gemrb/plugins/TTFImporter.so [http://TTFImporter.so]
>
> lib/gemrb/plugins/WAVReader.so [http://WAVReader.so]
>
> lib/gemrb/plugins/WEDImporter.so [http://WEDImporter.so]
>
> lib/gemrb/plugins/WMPImporter.so [http://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 [http://AR0100.WED]
>
> %%DATADIR%%/demo/override/AR0100HT.BMP
Hi,
What's the reasoning behind moving away from a static release archive?
This is opposite of how we want to fetch sources. See also the warning
section in Porters Handbook:
https://docs.freebsd.org/en/books/porters-handbook/book/#makefile-master_sites-github
Why is CMAKE_BUILD_TYPE defined?
https://cgit.freebsd.org/ports/tree/Mk/Uses/cmake.mk#n97
Best regards,
Daniel