gemrb: update to 0.9.3 (#11141)

- Fix to cache directory issue
- Recipe more compatible with 32 bit builds (DBIN_DIR)
- Switched icon to official svg one
This commit is contained in:
Peppersawce
2024-09-25 10:16:20 +02:00
committed by GitHub
parent 327126e40e
commit 578d3832ab
6 changed files with 248 additions and 184 deletions

View File

@@ -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

View File

@@ -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"
};

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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"
}

View File

@@ -0,0 +1,61 @@
From 7a7535d517ab1073b37b97efb2e887649e0d4816 Mon Sep 17 00:00:00 2001
From: Yourself <user@shredder.fritz.box>
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