summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO16
-rwxr-xr-xPKGBUILD53
-rwxr-xr-xopenra-ca65
3 files changed, 86 insertions, 48 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 9a7f2a067e3f..2971aa82b3fd 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
-
diff --git a/PKGBUILD b/PKGBUILD
index 3d33698a6bdb..5056ff4ba64a 100755
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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}" "$@"