diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rwxr-xr-x | PKGBUILD | 53 | ||||
-rwxr-xr-x | openra-ca | 65 |
3 files changed, 86 insertions, 48 deletions
@@ -1,10 +1,10 @@ pkgbase = openra-ca-git pkgdesc = A mod of OpenRA that combines units from the official Red Alert and Tiberian Dawn mods - pkgver = 1136.git.54593c6 + pkgver = 2473.git.7fb6d71 pkgrel = 1 url = https://github.com/Inq8/CAmod install = openra-ca.install - arch = any + arch = x86_64 license = GPL3 makedepends = dos2unix makedepends = git @@ -14,14 +14,15 @@ pkgbase = openra-ca-git depends = ttf-dejavu depends = openal depends = libgl - depends = freetype2 - depends = sdl2 - depends = lua51 - depends = hicolor-icon-theme depends = gtk-update-icon-cache + depends = libaccounts-glib + depends = libibus + depends = libblockdev + depends = libgexiv2 depends = desktop-file-utils depends = xdg-utils depends = zenity + depends = python-gobject provides = openra-ca options = !strip source = git+https://github.com/Inq8/CAmod.git @@ -29,9 +30,8 @@ pkgbase = openra-ca-git source = openra-ca.appdata.xml source = openra-ca.desktop md5sums = SKIP - md5sums = bdab27df863114bb7447839b9a75c0cf + md5sums = f13888474aeeb31acbe019d10d3d644c md5sums = 1fcf493eabd3fbd6d0ccd387ecc446e6 md5sums = fede5894ebe787ad39d8bdaac2efdc56 pkgname = openra-ca-git - @@ -2,15 +2,16 @@ pkgname=openra-ca-git _pkgname=${pkgname/-git} -pkgver=1136.git.54593c6 +pkgver=2473.git.7fb6d71 pkgrel=1 pkgdesc="A mod of OpenRA that combines units from the official Red Alert and Tiberian Dawn mods" -arch=('any') +arch=(x86_64) url="https://github.com/Inq8/CAmod" license=('GPL3') install=openra-ca.install -depends=('mono' 'ttf-dejavu' 'openal' 'libgl' 'freetype2' 'sdl2' 'lua51' 'hicolor-icon-theme' 'gtk-update-icon-cache' - 'desktop-file-utils' 'xdg-utils' 'zenity') +depends=('mono' 'ttf-dejavu' 'openal' 'libgl' 'gtk-update-icon-cache' + 'libaccounts-glib' 'libibus' 'libblockdev' 'libgexiv2' + 'desktop-file-utils' 'xdg-utils' 'zenity' 'python-gobject') makedepends=('dos2unix' 'git' 'unzip' 'msbuild') provides=('openra-ca') options=(!strip) @@ -19,7 +20,7 @@ source=("git+${url}.git" "openra-ca.appdata.xml" "openra-ca.desktop") md5sums=('SKIP' - 'bdab27df863114bb7447839b9a75c0cf' + 'f13888474aeeb31acbe019d10d3d644c' '1fcf493eabd3fbd6d0ccd387ecc446e6' 'fede5894ebe787ad39d8bdaac2efdc56') @@ -33,33 +34,37 @@ pkgver() { prepare() { cd $srcdir/CAmod dos2unix *.md + printf "Success in converting docs...\n" } build() { cd $srcdir/CAmod - make version VERSION="${pkgver}" make + make version VERSION="${pkgver}" + printf "Success in setting version\n" } package() { cd $srcdir/CAmod - mkdir -p $pkgdir/usr/{lib/openra-ca/mods,bin,share/pixmaps,share/doc/packages/openra-ca,share/applications,share/appdata} - install -dm775 $pkgdir/var/games/openra-ca - cp -r engine/{glsl,lua,AUTHORS,COPYING,*.dll,*.dll.config,'global mix database.dat',launch*.sh,*.exe,VERSION} $pkgdir/usr/lib/openra-ca - cp -r mods/ca $pkgdir/usr/lib/openra-ca/mods - cp -r engine/mods/{common,modcontent} $pkgdir/usr/lib/openra-ca/mods - install -Dm755 $srcdir/openra-ca $pkgdir/usr/bin/openra-ca - cp -r $srcdir/openra-ca.appdata.xml $pkgdir/usr/share/appdata/openra-ca.appdata.xml - cp -r README.md $pkgdir/usr/share/doc/packages/openra-ca/README.md - cp -r packaging/artwork/icon_512x512.png $pkgdir/usr/share/pixmaps/openra-ca.png - - for i in 16x16 32x32 48x48 64x64 128x128 256x256 512x512 - do - install -Dm644 packaging/artwork/icon_${i}.png $pkgdir/usr/share/icons/hicolor/$i/apps/%{name}.png + mkdir -p $pkgdir/usr/{lib/${_pkgname}/mods,bin,share/pixmaps,share/doc/packages/${_pkgname},share/applications,share/appdata} + install -dm775 $pkgdir/var/games/${_pkgname} + cp -r engine/* $pkgdir/usr/lib/${_pkgname} + cp -r mods/ca $pkgdir/usr/lib/${_pkgname}/mods + cp -r mod.config $pkgdir/usr/lib/${_pkgname} + sed -i -e "s|./engine\"|/usr/lib/${_pkgname}\"|g" $pkgdir/usr/lib/${_pkgname}/mod.config + cp -r engine/mods/{common,modcontent} $pkgdir/usr/lib/${_pkgname}/mods + cp -r engine/bin/{*.dll*,*.so} $pkgdir/usr/lib/${_pkgname} + cp -r engine/{glsl,lua,AUTHORS,COPYING,'global mix database.dat',VERSION} $pkgdir/usr/lib/${_pkgname} + install -Dm755 $srcdir/${_pkgname} $pkgdir/usr/bin/${_pkgname} + cp -r $srcdir/../${_pkgname}.appdata.xml $pkgdir/usr/share/appdata/${_pkgname}.appdata.xml + cp -r README.md $pkgdir/usr/share/doc/packages/${_pkgname}/README.md + install -Dm644 $srcdir/${_pkgname}.desktop $pkgdir/usr/share/applications/${_pkgname}.desktop + mkdir -p $pkgdir/usr/share/icons/hicolor/{16x16,32x32,48x48,64x64,128x128,256x256,512x512}/apps + for length in 16 32 48 64 128 256 512; do + size="${length}x${length}" + cp packaging/artwork/icon_${size}.png "$pkgdir/usr/share/icons/hicolor/${size}/apps/${pkgname}.png" done - - install -Dm644 $srcdir/openra-ca.desktop $pkgdir/usr/share/applications/openra-ca.desktop - rm $pkgdir/usr/lib/openra-ca/*.sh + install -Dm644 packaging/artwork/icon_512x512.png ${pkgdir}/usr/share/pixmaps/${pkgname}.png + rm -rf $pkgdir/usr/lib/openra-rv/*{.txt,nunit,.yml,.xslt,.cmd,.md,Mono,Makefile,.sh,sln.*,Test,.mdb,.pdb,.ps1,.AS,packaging,thirdparty,engines,OpenRA.Mods}* + rm -rf $pkgdir/usr/lib/openra-rv/{mods/{all,ra,cnc,d2k,ts},OpenRA.Mods.*,OpenRA.Platforms.Default,OpenRA.Server,OpenRA.Game,OpenRA.Utility,Settings.StyleCop} } - - diff --git a/openra-ca b/openra-ca index d147da754f52..b7e79307d7ef 100755 --- a/openra-ca +++ b/openra-ca @@ -1,19 +1,52 @@ #!/bin/sh -cd "/usr/lib/openra-ca" - -# Run the game -mono --debug OpenRA.Game.exe Game.Mod=ca Engine.LaunchPath="/usr/bin/openra-ca" "Engine.ModSearchPaths=/usr/lib/openra-ca/mods" "$@" - -# Show a crash dialog if something went wrong -if [ $? != 0 ] && [ $? != 1 ]; then - ERROR_MESSAGE="Combined Arms has encountered a fatal error.\nPlease refer to the crash logs and FAQ for more information.\n\nLog files are located in ~/.openra/Logs\nThe FAQ is available at http://wiki.openra.net/FAQ" - if command -v zenity > /dev/null; then - zenity --no-wrap --error --title "Combined Arms" --text "${ERROR_MESSAGE}" 2> /dev/null - elif command -v kdialog > /dev/null; then - kdialog --title "Combined Arms" --error "${ERROR_MESSAGE}" - else - printf "${ERROR_MESSAGE}\n" - fi - exit 1 + +set -e +command -v mono >/dev/null 2>&1 || { echo >&2 "The OpenRA mod SDK requires mono."; exit 1; } +if command -v python3 >/dev/null 2>&1; then + PYTHON="python3" +else + command -v python >/dev/null 2>&1 || { echo >&2 "The OpenRA mod SDK requires python."; exit 1; } + PYTHON="python" +fi + +require_variables() { + missing="" + for i in "$@"; do + eval check="\$$i" + [ -z "${check}" ] && missing="${missing} ${i}\n" + done + if [ ! -z "${missing}" ]; then + echo "Required mod.config variables are missing:\n${missing}Repair your mod.config (or user.config) and try again." + exit 1 + fi +} + +TEMPLATE_LAUNCHER=$(${PYTHON} -c "import os; print(os.path.realpath('$0'))") +PRELIM_MOD_ID=$(echo $TEMPLATE_LAUNCHER | cut -d '/' -f 4) +TEMPLATE_ROOT=/usr/lib/$PRELIM_MOD_ID +MOD_SEARCH_PATHS="${TEMPLATE_ROOT}/mods,./mods" + +# shellcheck source=mod.config +. "${TEMPLATE_ROOT}/mod.config" + +if [ -f "${TEMPLATE_ROOT}/user.config" ]; then + # shellcheck source=user.config + . "${TEMPLATE_ROOT}/user.config" +fi + +require_variables "MOD_ID" "ENGINE_VERSION" "ENGINE_DIRECTORY" +cd "${TEMPLATE_ROOT}" +if [ ! -f "${ENGINE_DIRECTORY}/bin/OpenRA.dll" ] || [ "$(cat "${ENGINE_DIRECTORY}/VERSION")" != "${ENGINE_VERSION}" ]; then + echo "Required engine files not found." + echo "Run \`make\` in the mod directory to fetch and build the required files, then try again."; + exit 1 +fi + +if command -v mono >/dev/null 2>&1 && [ "$(grep -c .NETCoreApp,Version= ${ENGINE_DIRECTORY}/bin/OpenRA.dll)" = "0" ]; then + RUNTIME_LAUNCHER="mono --debug" +else + RUNTIME_LAUNCHER="dotnet" fi +cd "${ENGINE_DIRECTORY}" +${RUNTIME_LAUNCHER} bin/OpenRA.dll Engine.EngineDir=".." Engine.LaunchPath="${TEMPLATE_LAUNCHER}" "Engine.ModSearchPaths=${MOD_SEARCH_PATHS}" Game.Mod="${MOD_ID}" "$@" |