From cc31c0dfbf5b30b4d9bd2b3232b9981148c8fda4 Mon Sep 17 00:00:00 2001 From: Schrijvers Luc Date: Mon, 10 Jul 2023 13:01:00 +0200 Subject: [PATCH] exult, new recipe (#9008) --- .../exult/additional-files/exult.rdef.in | 27 ++++ games-engines/exult/exult-1.8.recipe | 131 ++++++++++++++++++ .../exult/patches/exult-1.8.patchset | 48 +++++++ 3 files changed, 206 insertions(+) create mode 100644 games-engines/exult/additional-files/exult.rdef.in create mode 100644 games-engines/exult/exult-1.8.recipe create mode 100644 games-engines/exult/patches/exult-1.8.patchset diff --git a/games-engines/exult/additional-files/exult.rdef.in b/games-engines/exult/additional-files/exult.rdef.in new file mode 100644 index 000000000..2c7e39acc --- /dev/null +++ b/games-engines/exult/additional-files/exult.rdef.in @@ -0,0 +1,27 @@ +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = @MAJOR@, + middle = @MIDDLE@, + + variety = B_APPV_FINAL, + internal = 0, + + short_info = "@APP_NAME@", + long_info = "@LONG_INFO@" +}; + +resource app_signature "@APP_SIGNATURE@"; + +resource vector_icon { + $"6E636966010200040249090977FF282833020606FF07BD33B89CBD33B89CBD33" + $"BAA640BCB0BE58BCB0C127BCB0C24CB89CC24CBAA6C24CB62540B50AC0C5B50A" + $"BEBAB50ABD33B89CBD33B625BD33B89CB89C021440204020C1CA20C457B89CC4" + $"96B487C425BC2EC1EEBE38C1EEBE38C3DCBE3854BE38C5CABE38C898BE38C55C" + $"C147C62FC077C3E9C033C0F0C042C174C042C0C5C042C1CAC7E8C042C661C25F" + $"C87DC2D6C940C2D3C8E8C2D9C983C281C9F3C2BBC9BDC196CACC4060C0ABCBA6" + $"BED9CBA6BD0CC9F3BDF2CACCBCD6C9C0BCB6C94DBCB7C98ABCB3C8F2BDB5C7E8" + $"BD19C885BF3DC661BE95C042BEBAC042BE10C042BA23C147BB96C038B950C077" + $"B7CDBE38B6DCBE38B9B9BE38BD93BE38BBA6BE38BD93BE38BB28B89CBB65BC2E" + $"BAECB4874020BDB5204020402040204020010A0002000100" +}; diff --git a/games-engines/exult/exult-1.8.recipe b/games-engines/exult/exult-1.8.recipe new file mode 100644 index 000000000..641406045 --- /dev/null +++ b/games-engines/exult/exult-1.8.recipe @@ -0,0 +1,131 @@ +SUMMARY="Ultima 7 game engine that runs on modern operating systems" +DESCRIPTION="As computers evolve, we risk losing classic games from the not-so-distant past. One \ +of these, Ultima VII, a two part RPG from the early 1990's, still has a huge following, and many \ +consider it to be one of the most immersive games ever produced. +Exult is a project to recreate Ultima VII for modern operating systems, using the game's original \ +plot, data, and graphics files. + +For Haiku: +Users should install the game data to ~/config/non-packaged/data/exult to be able to play the game." +HOMEPAGE="https://exult.sourceforge.io/" +COPYRIGHT="2022 The Exult Team" +LICENSE="GNU GPL v2" +REVISION="1" +SOURCE_URI="http://prdownloads.sourceforge.net/exult/exult-$portVersion.tar.gz" +CHECKSUM_SHA256="dae6b7b08925d3db1dda3aca612bdc08d934ca04de817a008f305320e667faf9" +SOURCE_URI_2="http://downloads.sourceforge.net/exult/exult_audio.zip" +CHECKSUM_SHA256_2="72e10efa8664a645470ceb99f6b749ce99c3d5fd1c8387c63640499cfcdbbc68" +PATCHES="exult-$portVersion.patchset" +ADDITIONAL_FILES="exult.rdef.in" + +ARCHITECTURES="all !x86_gcc2" +SECONDARY_ARCHITECTURES="x86" + +commandBinDir=$binDir +commandSuffix=$secondaryArchSuffix +if [ "$targetArchitecture" = x86_gcc2 ]; then + commandSuffix= + commandBinDir=$prefix/bin +fi + +PROVIDES=" + exult$secondaryArchSuffix = $portVersion + cmd:cmanip$commandSuffix = $portVersion + cmd:expack$commandSuffix = $portVersion + cmd:exult$commandSuffix = $portVersion +# cmd:exult_studio$commandSuffix = $portVersion + cmd:ipack$commandSuffix = $portVersion + cmd:mklink$commandSuffix = $portVersion + cmd:rip$commandSuffix = $portVersion + cmd:shp2pcx$commandSuffix = $portVersion + cmd:splitshp$commandSuffix = $portVersion + cmd:textpack$commandSuffix = $portVersion + cmd:u7voice2syx$commandSuffix = $portVersion + cmd:ucxt$commandSuffix = $portVersion + cmd:wuc$commandSuffix = $portVersion + " +REQUIRES=" + haiku$secondaryArchSuffix +# lib:libatk_1.0$secondaryArchSuffix +# lib:libcairo$secondaryArchSuffix +# lib:libcairo_gobject$secondaryArchSuffix + lib:libfluidsynth$secondaryArchSuffix +# lib:libgdk_3$secondaryArchSuffix +# lib:libgdk_pixbuf_2.0$secondaryArchSuffix +# lib:libgio_2.0$secondaryArchSuffix +# lib:libglib_2.0$secondaryArchSuffix +# lib:libgobject_2.0$secondaryArchSuffix +# lib:libharfbuzz$secondaryArchSuffix + lib:libintl$secondaryArchSuffix +# lib:libpango_1.0$secondaryArchSuffix +# lib:libpangocairo_1.0$secondaryArchSuffix +# lib:libpng16$secondaryArchSuffix + lib:libSDL2_2.0$secondaryArchSuffix + lib:libogg$secondaryArchSuffix + lib:libvorbis$secondaryArchSuffix + lib:libvorbisfile$secondaryArchSuffix + lib:libz$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libfluidsynth$secondaryArchSuffix +# devel:libgdk_3$secondaryArchSuffix +# devel:libgdk_pixbuf_2.0$secondaryArchSuffix + devel:libSDL2_2.0$secondaryArchSuffix + devel:libogg$secondaryArchSuffix + devel:libvorbis$secondaryArchSuffix + devel:libvorbisfile$secondaryArchSuffix + devel:libz$secondaryArchSuffix + " +BUILD_PREREQUIRES=" + cmd:autoconf + cmd:automake + cmd:gcc$secondaryArchSuffix + cmd:libtool$secondaryArchSuffix + cmd:make + cmd:pkg_config$secondaryArchSuffix + " + +BUILD() +{ + ./autogen.sh + runConfigure --omit-dirs binDir ./configure \ + --bindir=$commandBinDir #--enable-exult-studio + make $jobArgs +} + + +INSTALL() +{ + make install + + local MAJOR="`echo "$portVersion" | cut -d. -f1`" + local MIDDLE="`echo "$portVersion" | cut -d. -f2`" + local APP_NAME="Exult" + local LONG_INFO="$SUMMARY" + local APP_SIGNATURE="application/x-vnd.exult" + sed \ + -e "s|@MAJOR@|$MAJOR|" \ + -e "s|@MIDDLE@|$MIDDLE|" \ + -e "s|@MINOR@|$MINOR|" \ + -e "s|@LONG_INFO@|$LONG_INFO|" \ + -e "s|@APP_NAME@|$APP_NAME|" \ + -e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \ + $portDir/additional-files/exult.rdef.in > exult.rdef + + addResourcesToBinaries exult.rdef $commandBinDir/exult + + # install music pack + mkdir -p $dataDir/exult/music + cp $sourceDir2/*.flx $dataDir/exult + cp $sourceDir2/*.txt $dataDir/exult + cp $sourceDir2/music/*.ogg $dataDir/exult/music + + # we are not linux + rm -rf $dataDir/{applications,icons} + + # create Deskbar links + addAppDeskbarSymlink $commandBinDir/exult Exult +# addAppDeskbarSymlink $commandBinDir/exult_studio "Exult Studio" +} diff --git a/games-engines/exult/patches/exult-1.8.patchset b/games-engines/exult/patches/exult-1.8.patchset new file mode 100644 index 000000000..4544407ee --- /dev/null +++ b/games-engines/exult/patches/exult-1.8.patchset @@ -0,0 +1,48 @@ +From 4579cedc5be64382502eac86ea121ea0a117d85a Mon Sep 17 00:00:00 2001 +From: Begasus +Date: Sat, 8 Jul 2023 12:43:29 +0000 +Subject: Set config directory for Haiku + + +diff --git a/files/utils.cc b/files/utils.cc +index 3bd8f1c..234cb00 100644 +--- a/files/utils.cc ++++ b/files/utils.cc +@@ -759,6 +759,10 @@ static string Get_config_dir(const string& home_dir) { + string config_dir(home_dir); + config_dir += "/Library/Preferences"; + return config_dir; ++#elif defined(__HAIKU__) ++ string config_dir(home_dir); ++ config_dir += "/config/settings/exult"; ++ return config_dir; + #else + return home_dir; + #endif +@@ -775,6 +779,11 @@ static string Get_savehome_dir(const string& home_dir, const string& config_dir) + string savehome_dir(home_dir); + savehome_dir += "/Library/Application Support/Exult"; + return savehome_dir; ++#elif defined(__HAIKU__) ++ ignore_unused_variable_warning(config_dir); ++ string savehome_dir(home_dir); ++ savehome_dir += "/config/settings/exult"; ++ return savehome_dir; + #elif defined(XWIN) + ignore_unused_variable_warning(config_dir); + string savehome_dir(home_dir); +@@ -795,6 +804,11 @@ static string Get_gamehome_dir(const string& home_dir, const string& config_dir) + #elif defined(MACOSX) + ignore_unused_variable_warning(home_dir, config_dir); + return "/Library/Application Support/Exult"; ++#elif defined(__HAIKU__) ++ ignore_unused_variable_warning(config_dir); ++ string gamehome_dir(home_dir); ++ gamehome_dir += "/config/non-packaged/data/exult"; ++ return gamehome_dir; + #elif defined(XWIN) + ignore_unused_variable_warning(home_dir, config_dir); + return EXULT_DATADIR; +-- +2.37.3 +