diff --git a/games-engines/gemrb/additional-files/gemrb-postinstall.sh b/games-engines/gemrb/additional-files/gemrb-postinstall.sh new file mode 100644 index 000000000..25d8479c4 --- /dev/null +++ b/games-engines/gemrb/additional-files/gemrb-postinstall.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +#SYS_SETTINGS_PATH=$(finddir B_SYSTEM_SETTINGS_DIRECTORY)/gemrb + +#if [ ! -e $SYS_SETTINGS_PATH/GemRB.cfg ]; then + #move standard dir path declaration here +#else + #eventually read dir paths from the cfg +#fi + +CACHE_PATH=$(finddir B_USER_CACHE_DIRECTORY)/gemrb +SAVE_PATH=$(finddir B_USER_SETTINGS_DIRECTORY)/gemrb + +if [ ! -e $CACHE_PATH ]; then + mkdir -p $CACHE_PATH +fi +if [ ! -e $SAVE_PATH ]; then + mkdir -p $SAVE_PATH +fi diff --git a/games-engines/gemrb/additional-files/gemrb.rdef.in b/games-engines/gemrb/additional-files/gemrb.rdef.in new file mode 100644 index 000000000..023238149 --- /dev/null +++ b/games-engines/gemrb/additional-files/gemrb.rdef.in @@ -0,0 +1,40 @@ +resource app_flags B_SINGLE_LAUNCH | B_ARGV_ONLY; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + minor = @MINOR@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "GemRB", + long_info = "Infinity Engine Emulator" +}; + +resource app_signature "application/x-vnd.gemrb"; + +resource vector_icon { + $"6E636966060500036156FF03867DFF033C2EFF032212FF03AAA4FF08020FB68D" + $"5EB68D5EB68DC937B68DC43EB68DC6BAB68DC139BC04BEC7B900BEC7BC04C05F" + $"BC04C38FBC04C1F7BC04C80EC42A5EBFAA5EC8A95ECC4FC38FCC4FC80ECC4FBF" + $"0FC42ABB6AC8A9BB6AC291BB6ABF61BB6AC0F9BB6ABF61B8DFBF61B3CBBF61B6" + $"55BE42B4EABC04B728BD23B609BC04B893BC04BB6ABC04B9FEB724BB6AB330C4" + $"3EB330BF5EB330C6BAB3305EB330C937B44F5EB68D5EB56E5EB68D5EB68D5EB6" + $"8D5EB68D5E0606FF07BF8BC4CCBF8BC4CCBF70C467BF61C38FBF61C3FCBF61C1" + $"F7BF61BEC7BF61C05FC0F9C05FC42AC38FC291C1F7C29FC3F8BF8BC4CCC115C4" + $"62BF8BC4CCC4CC0605FF01C42AC38FC42AC38FC3C0C519C2EDC82E49C6A3C147" + $"C7BDBF8BC4CCBFFBC671C115C462C42AC38FC29FC3F8C42AC38FC38F0606FF07" + $"C42AC38FC42AC38FC54AC4AFC78BC6F0C66BC5D0C6AEC7CEC42AC857C57CC857" + $"4AC857C2EDC82EC352C84949C6A3C42AC38FC3C0C519C42AC38FC38F0606FF07" + $"C8C8C252C8C8C252C8E3C2B7C8F2C38FC8F2C321C8F2C4E1C78BC6F0C869C613" + $"C66BC5D0C42AC38FC54AC4AFC5B4C325C8C8C252C73EC2BCC8C8C252C2520605" + $"FF01C42AC38FC42AC38FC493C205C566BEF0C4FDC07AC70CBF61C8C8C252C858" + $"C0ACC73EC2BCC42AC38FC5B4C325C42AC38FC38F0606FF07BF61BEC7BF61BEC7" + $"C0F9BEC7C42ABEC7C291BEC7C497BEC7C566BEF0C501BED5C4FDC07AC42AC38F" + $"C493C205C291C1F7BF61BEC7C0F9C05FBF61BEC7BEC70207C1A0C43DC1A0C43D" + $"C1DAC364C24EC1B3C214C28CC326C179C4D8C105C3FFC13FC576C1A4C6B3C2E1" + $"C615C242C679C3B9C605C56BC63FC492C52DC5A5C37BC619C454C5DFC2DDC57A" + $"C1A0C43DC23EC4DBC1A0C43D080A000100000A010101000A020102000A010103" + $"000A030104000A040105000A030106000A05010700" +}; diff --git a/games-engines/gemrb/gemrb-0.8.6.recipe b/games-engines/gemrb/gemrb-0.8.6.recipe deleted file mode 100644 index 272df9aad..000000000 --- a/games-engines/gemrb/gemrb-0.8.6.recipe +++ /dev/null @@ -1,84 +0,0 @@ -SUMMARY="An infinite game engine generator" -DESCRIPTION="GemRB (Game Engine Made with preRendered Background) \ -is a port (actually a new implementation) of the original Infinity \ -Engine (the one of Baldur's Gate, Icewind Dale, Planescape: Torment, ...) \ -to Linux/Unix, MacOS X and Windows with some enhancements. Would \ -you like to create a game like Baldur's Gate?" -HOMEPAGE="https://github.com/gemrb/gemrb" -COPYRIGHT="2003-2017 The GemRB Team" -LICENSE="MIT" -REVISION="3" -SOURCE_URI="https://github.com/gemrb/gemrb/archive/v$portVersion.tar.gz" -CHECKSUM_SHA256="ee8bbdf553be346cad25fa3e07c64263cbe5f248ccd3d3db9cd9f5fb4520c58f" -SOURCE_FILENAME="gemrb-$portVersion.tar.gz" - -ARCHITECTURES="all !x86_gcc2" -SECONDARY_ARCHITECTURES="!x86" - -GLOBAL_WRITABLE_FILES=" - settings/gemrb/GemRB.cfg.noinstall.sample keep-old - settings/gemrb/GemRB.cfg.sample keep-old - " - -PROVIDES=" - gemrb$secondaryArchSuffix = $portVersion - cmd:extend2da.py$secondaryArchSuffix = $portVersion - cmd:gemrb$secondaryArchSuffix = $portVersion - " -REQUIRES=" - haiku$secondaryArchSuffix - lib:libfreetype$secondaryArchSuffix - lib:libiconv$secondaryArchSuffix - lib:libintl$secondaryArchSuffix - lib:libogg$secondaryArchSuffix - lib:libopenal$secondaryArchSuffix - lib:libpng16$secondaryArchSuffix - lib:libSDL_1.2$secondaryArchSuffix - lib:libSDL_mixer_1.2$secondaryArchSuffix - lib:libvorbis$secondaryArchSuffix - lib:libz$secondaryArchSuffix - " - -BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel - devel:libfreetype$secondaryArchSuffix - devel:libiconv$secondaryArchSuffix - devel:libintl$secondaryArchSuffix - devel:libogg$secondaryArchSuffix - devel:libopenal$secondaryArchSuffix - devel:libpng16$secondaryArchSuffix - devel:libSDL_1.2$secondaryArchSuffix - devel:libSDL_mixer_1.2$secondaryArchSuffix - devel:libvorbis$secondaryArchSuffix - devel:libz$secondaryArchSuffix - " -BUILD_PREREQUIRES=" - cmd:cmake - cmd:gcc$secondaryArchSuffix - cmd:make - cmd:python - " - -defineDebugInfoPackage gemrb$secondaryArchSuffix \ - "$binDir"/gemrb - -BUILD() -{ - mkdir -p build - cd build - - cmake .. \ - $cmakeDirArgs \ - -Wno-dev \ - -DDATA_DIR=$dataDir/gemrb \ - -DMAN_DIR=$manDir/man6 \ - -DSYSCONF_DIR=$settingsDir/gemrb \ - -DDOC_DIR=$documentationDir/gemrb - make $jobArgs -} - -INSTALL() -{ - cd build - make install -} diff --git a/games-engines/gemrb/gemrb-0.8.7.270.recipe b/games-engines/gemrb/gemrb-0.8.7.270.recipe deleted file mode 100644 index 60200bcee..000000000 --- a/games-engines/gemrb/gemrb-0.8.7.270.recipe +++ /dev/null @@ -1,100 +0,0 @@ -SUMMARY="An infinite game engine generator" -DESCRIPTION="GemRB (Game Engine Made with preRendered Background) \ -is a port (actually a new implementation) of the original Infinity \ -Engine (the one of Baldur's Gate, Icewind Dale, Planescape: Torment, ...) \ -to Linux/Unix, MacOS X and Windows with some enhancements. Would \ -you like to create a game like Baldur's Gate? \ -(Originals games' data is not included)" -HOMEPAGE="https://gemrb.org" -COPYRIGHT="2003-2021 The GemRB Team" -LICENSE="MIT" -REVISION="1" -srcGitRev="0f383aad6ef51f2d0695ebadd4b73d5bb19fc706" -SOURCE_URI="https://github.com/gemrb/gemrb/archive/$srcGitRev.zip" -CHECKSUM_SHA256="8bc09de3b2d8301490afba2191f856d5e7947afa43e82eae2039a306e6ed4718" -SOURCE_FILENAME="gemrb-$srcGitRev.zip" -SOURCE_DIR="gemrb-$srcGitRev" - -ARCHITECTURES="all !x86_gcc2" -SECONDARY_ARCHITECTURES="!x86" - -GLOBAL_WRITABLE_FILES=" - settings/gemrb/GemRB.cfg.noinstall.sample auto-merge - settings/gemrb/GemRB.cfg.sample auto-merge - " - -PROVIDES=" - gemrb$secondaryArchSuffix = $portVersion - cmd:extend2da.py$secondaryArchSuffix = $portVersion - cmd:gemrb$secondaryArchSuffix = $portVersion - " -REQUIRES=" - haiku$secondaryArchSuffix - lib:libfreetype$secondaryArchSuffix - lib:libiconv$secondaryArchSuffix - lib:libintl$secondaryArchSuffix - lib:libogg$secondaryArchSuffix - lib:libopenal$secondaryArchSuffix - lib:libpng16$secondaryArchSuffix - lib:libSDL2_2.0$secondaryArchSuffix - lib:libSDL2_mixer_2.0$secondaryArchSuffix - lib:libvorbis$secondaryArchSuffix - lib:libz$secondaryArchSuffix - " - -BUILD_REQUIRES=" - haiku${secondaryArchSuffix}_devel - devel:libfreetype$secondaryArchSuffix - devel:libiconv$secondaryArchSuffix - devel:libintl$secondaryArchSuffix - devel:libogg$secondaryArchSuffix - devel:libopenal$secondaryArchSuffix - devel:libpng16$secondaryArchSuffix - devel:libSDL2$secondaryArchSuffix - devel:libSDL2_mixer$secondaryArchSuffix - devel:libvorbis$secondaryArchSuffix - devel:libz$secondaryArchSuffix - " -BUILD_PREREQUIRES=" - cmd:cmake - cmd:gcc$secondaryArchSuffix - cmd:make - cmd:python - " - -defineDebugInfoPackage gemrb$secondaryArchSuffix \ - "$binDir"/gemrb - -BUILD() -{ - mkdir -p build - cd build - - cmake .. \ - $cmakeDirArgs \ - -Wno-dev \ - -DDATA_DIR=$dataDir/gemrb \ - -DMAN_DIR=$manDir/man6 \ - -DSYSCONF_DIR=$settingsDir/gemrb \ - -DDOC_DIR=$documentationDir/gemrb \ - -DSDL2_INCLUDE_DIR=/boot/system/develop/headers/SDL2/ \ - -DSDL2_MIXER_INCLUDE_DIR=/boot/system/develop/headers/SDL2 - make $jobArgs -} - -INSTALL() -{ - cd build - make install -} - -TEST() -{ - cd $settingsDir/gemrb - cp GemRB.cfg.sample GmRB.cfg.bots - echo GamePath=$dataDir/gemrb/minimal >> GmRB.cfg.bots - echo GameType=test >> GmRB.cfg.bots - echo AudioDriver=none >> GmRB.cfg.bots - gemrb.exe -c GmRB.cfg.bots - rm GmRB.cfg.bots -} diff --git a/games-engines/gemrb/gemrb-0.9.3.recipe b/games-engines/gemrb/gemrb-0.9.3.recipe new file mode 100644 index 000000000..0c3e70c10 --- /dev/null +++ b/games-engines/gemrb/gemrb-0.9.3.recipe @@ -0,0 +1,128 @@ +SUMMARY="An Infinity Engine Emulator" +DESCRIPTION="GemRB (Game Engine Made with preRendered Background) \ +is a new implementation of the original Infinity Engine \ +(used in Baldur's Gate, Icewind Dale, Planescape: Torment etc.) \ +to Linux/Unix, MacOS X, Windows (and Haiku) with some enhancements. + +(Originals games' data is not included)" +HOMEPAGE="https://gemrb.org/" +COPYRIGHT="2003-2024 The GemRB Team" +LICENSE="MIT" +REVISION="1" +SOURCE_URI="https://github.com/gemrb/gemrb/archive/refs/tags/v$portVersion.tar.gz" +CHECKSUM_SHA256="71bb16a77b84cd873d5582af675357c0cb94bbc64d54fac2e3397b366ac2adde" +SOURCE_FILENAME="v$portVersion.tar.gz" +PATCHES="gemrb-$portVersion.patchset" +ADDITIONAL_FILES=" + gemrb.rdef.in + gemrb-postinstall.sh + " +POST_INSTALL_SCRIPTS="$relativePostInstallDir/gemrb-postinstall.sh" + +ARCHITECTURES="?all !x86_gcc2 x86_64" +SECONDARY_ARCHITECTURES="x86" + +GLOBAL_WRITABLE_FILES=" + settings/gemrb/GemRB.cfg keep-old + " +USER_SETTINGS_FILES=" + settings/gemrb directory + " + +PROVIDES=" + gemrb$secondaryArchSuffix = $portVersion + cmd:extend2da.py = $portVersion + cmd:gemrb = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libfreetype$secondaryArchSuffix + lib:libiconv$secondaryArchSuffix + lib:libintl$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libopenal$secondaryArchSuffix + lib:libpng16$secondaryArchSuffix + lib:libSDL2_2.0$secondaryArchSuffix + lib:libSDL2_mixer_2.0$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libfreetype$secondaryArchSuffix + devel:libiconv$secondaryArchSuffix + devel:libintl$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libopenal$secondaryArchSuffix + devel:libpng16$secondaryArchSuffix + devel:libSDL2_2.0$secondaryArchSuffix + devel:libSDL2_mixer_2.0$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:cmake + cmd:gcc$secondaryArchSuffix + cmd:make + cmd:python3 + " + +defineDebugInfoPackage gemrb$secondaryArchSuffix \ + $binDir/gemrb + +BUILD() +{ + mkdir -p build + cd build + + cmake .. \ + $cmakeDirArgs \ + -Wno-dev \ + -DCMAKE_BUILD_TYPE=Release \ + -DBIN_DIR=$binDir \ + -DDATA_DIR=$dataDir/gemrb \ + -DMAN_DIR=$manDir/man6 \ + -DSYSCONF_DIR=$settingsDir/gemrb \ + -DDOC_DIR=$docDir + + make $jobArgs +} + +INSTALL() +{ + cd build + make install + + # Remove extra cfg files and setup Haiku-specific config + # Setting DBIN_DIR in CMake moves the cfg files as well + mkdir -p $settingsDir/gemrb + mv -t $settingsDir/gemrb $prefix/etc/gemrb/GemRB.cfg + rm -r $prefix/etc + + # Edit Cache path + cachedir=$(finddir B_USER_CACHE_DIRECTORY)/gemrb + sed -i "s,.\/Cache2/,${cachedir},g" $settingsDir/gemrb/GemRB.cfg + + # Edit Save path + savedir=$(finddir B_USER_SETTINGS_DIRECTORY)/gemrb + sed -i "s,#SavePath=\/mnt/windows/Programmi/Black Isle/BGII - SoA/,SavePath=${savedir},g" $settingsDir/gemrb/GemRB.cfg + + # Generate the rdef + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local MINOR="`echo "$portVersion" | cut -d. -f3`" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + $portDir/additional-files/gemrb.rdef.in > gemrb.rdef + + # Setup post-install script (to prevent issues with save and cache paths) + mkdir -p $postInstallDir + cp $portDir/additional-files/gemrb-postinstall.sh $postInstallDir + chmod +x $postInstallDir/gemrb-postinstall.sh + + addResourcesToBinaries gemrb.rdef $binDir/gemrb + addAppDeskbarSymlink $binDir/gemrb "GemRB" +} diff --git a/games-engines/gemrb/patches/gemrb-0.9.3.patchset b/games-engines/gemrb/patches/gemrb-0.9.3.patchset new file mode 100644 index 000000000..868b43794 --- /dev/null +++ b/games-engines/gemrb/patches/gemrb-0.9.3.patchset @@ -0,0 +1,61 @@ +From 7a7535d517ab1073b37b97efb2e887649e0d4816 Mon Sep 17 00:00:00 2001 +From: Yourself +Date: Mon, 23 Sep 2024 17:36:06 +0200 +Subject: Fixes to extend2da.py, Cmake build and handling cache directory + + +diff --git a/admin/extend2da.py b/admin/extend2da.py +index 6ea945f..49c6a18 100755 +--- a/admin/extend2da.py ++++ b/admin/extend2da.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!python3 + # GemRB - Infinity Engine Emulator + # Copyright (C) 2011 The GemRB Project + # +diff --git a/cmake/Helpers.cmake b/cmake/Helpers.cmake +index 6084862..854600b 100644 +--- a/cmake/Helpers.cmake ++++ b/cmake/Helpers.cmake +@@ -678,10 +678,10 @@ FUNCTION(INSTALL_APP_RESOURCES) + + IF (NOT APPLE) + INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/gemrb.6" DESTINATION ${MAN_DIR}) ++ SET(ADMIN_PATH ${CMAKE_SOURCE_DIR}/admin) + IF (NOT HAIKU) + SET(ARTWORK_PATH ${CMAKE_SOURCE_DIR}/artwork) + SET(LINUX_PATH ${CMAKE_SOURCE_DIR}/platforms/linux) +- SET(ADMIN_PATH ${CMAKE_SOURCE_DIR}/admin) + + INSTALL(FILES ${ARTWORK_PATH}/gemrb-logo.png DESTINATION ${ICON_DIR} RENAME gemrb.png) + INSTALL(FILES ${ARTWORK_PATH}/logo04-rb_only.svg DESTINATION ${SVG_DIR} RENAME gemrb.svg) +diff --git a/cmake/modules/FindSDL2_mixer.cmake b/cmake/modules/FindSDL2_mixer.cmake +index def6a4a..044cf25 100644 +--- a/cmake/modules/FindSDL2_mixer.cmake ++++ b/cmake/modules/FindSDL2_mixer.cmake +@@ -37,7 +37,7 @@ find_path(SDL2_MIXER_INCLUDE_DIR SDL_mixer.h + HINTS + ENV SDLMIXERDIR + ENV SDLDIR +- PATH_SUFFIXES include/SDL2 include/SDL include ++ PATH_SUFFIXES include/SDL2 include/SDL include SDL2 + PATHS + ~/Library/Frameworks/ + /Library/Frameworks/ +diff --git a/gemrb/core/Interface.cpp b/gemrb/core/Interface.cpp +index 14e0e3d..543e089 100644 +--- a/gemrb/core/Interface.cpp ++++ b/gemrb/core/Interface.cpp +@@ -237,7 +237,7 @@ Interface::Interface(CoreSettings&& cfg) + gamedata = new GameData(); + sgiterator = new SaveGameIterator(); + +- if (!MakeDirectories(config.CachePath)) { ++ if (!MakeDirectories(config.CachePath) && errno != EEXIST && errno != EROFS) { + throw CIE(fmt::format("Unable to create cache directory '{}'", config.CachePath)); + } + +-- +2.45.2 +