diff options
author | Sefa Eyeoglu | 2020-01-02 13:44:44 +0100 |
---|---|---|
committer | Sefa Eyeoglu | 2020-01-02 13:44:44 +0100 |
commit | 8463f18c7cc23b66870679462e8521c2d3d23e2c (patch) | |
tree | bbdcd8da7f1c7f0cca9ad31d360513b729d79150 | |
parent | cfe5175c2b130a5a07ad44f31914e96d77dcc10f (diff) | |
download | aur-8463f18c7cc23b66870679462e8521c2d3d23e2c.tar.gz |
upgpkg: tshock 14.3.26-1
upstream release
Update to 4.3.26. Switch to building instead of downloading binary
-rw-r--r-- | .SRCINFO | 29 | ||||
-rw-r--r-- | PKGBUILD | 117 | ||||
-rw-r--r-- | default.conf | 5 | ||||
-rw-r--r-- | service | 12 | ||||
-rw-r--r-- | sysusers | 1 | ||||
-rw-r--r-- | tmpfiles | 1 | ||||
-rw-r--r-- | tshock.install | 18 | ||||
-rw-r--r-- | tshock.sh | 69 | ||||
-rw-r--r-- | tshock@.service | 12 |
9 files changed, 163 insertions, 101 deletions
@@ -1,21 +1,30 @@ pkgbase = tshock pkgdesc = A Terraria Server administration modification that runs on the open source TerrariaAPI. - pkgver = 4.3.25 + pkgver = 4.3.26 pkgrel = 1 epoch = 1 - url = http://tshock.co/xf/ + url = http://tshock.co/xf install = tshock.install arch = any - license = GPL - depends = tmux + license = GPL3 + makedepends = nuget depends = mono - backup = srv/tshock/tshock/config.json - source = https://github.com/NyxStudios/TShock/releases/download/v4.3.25/tshock_4.3.25.zip + depends = tmux + provides = tshock + conflicts = tshock + backup = etc/conf.d/tshock/default.conf + source = tshock::git+https://github.com/Pryaxis/TShock.git#tag=v4.3.26 source = tshock.sh - source = tshock@.service - sha512sums = 9d405df99d9acf52c53e48d164ae5894c25a70e5022eca478c0981f0aafb2b217dfeff8f8274b6b9fc6f7b21d1e05e037cc3d7e4d4be406116bea4802d22bb91 - sha512sums = e73ca357516700bbd4ec5e6529320984b81fc7c6abc882181a9a9b3aad32f0d655b7686470fdbf7a953ce1935a79dbed983397aff0bf7ff26a1611dbcca391fb - sha512sums = 563ada981c2e08293462485fd85b2c4e0b190c55ed3bcea4139b955f931d970d97c2bd89fba5b190231e9f2adeddd2c385abd11781bf1a98b13b78b8951bf623 + source = default.conf + source = service + source = tmpfiles + source = sysusers + sha512sums = SKIP + sha512sums = f0958448b53ff9851c47876b89f1cef6d3e33ce1b8cbe13167c685ed1c9d89a8bf0f01929d47200e4f0f964c3e7796a2d9ca558e5d9f1269db3f2e4537a6c97a + sha512sums = d530a528ba84d57dfcb360e03ec62b1b38da6fa2383bef8cdb0cd039ba6466b053dd99a130a858c86405c8957ba86a0a080f2f56089843a7055662fa41cee102 + sha512sums = 7c1788f21664f038c32da6c0cbe817404a83f81b7b8be07bb0483d5ffd35991a07b647b18d7aa316db369edd4e7eab21c1b81ab3b45aa2c3692c6c63673a3fdb + sha512sums = a04b458932bb3882b9d40f9b5a9074b681e60cb3284635d1efb7e54293f39df334e7ae526dabf50f633ecdde980f287a939d3ea6eb0d4098663fbda21af70a65 + sha512sums = 5752f8453fbb4d973ebe71bba371ae7b0ddd2313ccd17de89b3942d024e295805324085640756e7118e4cc76abee675f5e253526261cb62cb76b0bc155aca317 pkgname = tshock @@ -1,42 +1,99 @@ -# Maintainer: Philip Abernethy <chais.z3r0@gmail.com> +# Maintainer: Sefa Eyeoglu <contact@scrumplex.net> +# Contributor: Philip Abernethy <chais.z3r0@gmail.com> -pkgname=tshock -pkgver=4.3.25 +_pkgname=tshock +pkgname=${_pkgname} +pkgver=4.3.26 # Because of tag 4.2200 is 4.2.2.1228 and tag 4.2202 is 4.2.2.0224 epoch must be 1 epoch=1 pkgrel=1 pkgdesc="A Terraria Server administration modification that runs on the open source TerrariaAPI." arch=(any) -url="http://tshock.co/xf/" -license=("GPL") -depends=('tmux' - 'mono') -source=("https://github.com/NyxStudios/TShock/releases/download/v${pkgver}/${pkgname}_${pkgver}.zip" - 'tshock.sh' - 'tshock@.service') +url="http://tshock.co/xf" +license=("GPL3") +depends=("mono" "tmux") +makedepends=("nuget") +provides=($_pkgname) +conflicts=($_pkgname) +install="${pkgname}.install" +source=("${_pkgname}::git+https://github.com/Pryaxis/TShock.git#tag=v${pkgver}" + "tshock.sh" + "default.conf" + "service" + "tmpfiles" + "sysusers") +sha512sums=('SKIP' + 'f0958448b53ff9851c47876b89f1cef6d3e33ce1b8cbe13167c685ed1c9d89a8bf0f01929d47200e4f0f964c3e7796a2d9ca558e5d9f1269db3f2e4537a6c97a' + 'd530a528ba84d57dfcb360e03ec62b1b38da6fa2383bef8cdb0cd039ba6466b053dd99a130a858c86405c8957ba86a0a080f2f56089843a7055662fa41cee102' + '7c1788f21664f038c32da6c0cbe817404a83f81b7b8be07bb0483d5ffd35991a07b647b18d7aa316db369edd4e7eab21c1b81ab3b45aa2c3692c6c63673a3fdb' + 'a04b458932bb3882b9d40f9b5a9074b681e60cb3284635d1efb7e54293f39df334e7ae526dabf50f633ecdde980f287a939d3ea6eb0d4098663fbda21af70a65' + '5752f8453fbb4d973ebe71bba371ae7b0ddd2313ccd17de89b3942d024e295805324085640756e7118e4cc76abee675f5e253526261cb62cb76b0bc155aca317') -sha512sums=('9d405df99d9acf52c53e48d164ae5894c25a70e5022eca478c0981f0aafb2b217dfeff8f8274b6b9fc6f7b21d1e05e037cc3d7e4d4be406116bea4802d22bb91' - 'e73ca357516700bbd4ec5e6529320984b81fc7c6abc882181a9a9b3aad32f0d655b7686470fdbf7a953ce1935a79dbed983397aff0bf7ff26a1611dbcca391fb' - '563ada981c2e08293462485fd85b2c4e0b190c55ed3bcea4139b955f931d970d97c2bd89fba5b190231e9f2adeddd2c385abd11781bf1a98b13b78b8951bf623') +backup=("etc/conf.d/${_pkgname}/default.conf") -install=tshock.install -backup=('srv/tshock/tshock/config.json') +prepare() { + cd "$_pkgname" + + git submodule init + git submodule update + + export BUILD_MODE=Release + + nuget restore + nuget restore TerrariaServerAPI/ + + xbuild TerrariaServerAPI/TShock.4.OTAPI.sln /p:Configuration=$BUILD_MODE + + pushd "TerrariaServerAPI/TShock.Modifications.Bootstrapper/bin/${BUILD_MODE}" + mono TShock.Modifications.Bootstrapper.exe -in=OTAPI.dll -mod=../../../TShock.Modifications.**/bin/$BUILD_MODE/TShock.Modifications.*.dll -o=Output/OTAPI.dll + popd + + xbuild ./TerrariaServerAPI/TerrariaServerAPI/TerrariaServerAPI.csproj /p:Configuration=$BUILD_MODE + + # Workaround + mkdir -p "TShockAPI/bin/Release" + cp "TerrariaServerAPI/TShock.Modifications.Bootstrapper/bin/Release/Output/OTAPI.dll" "TShockAPI/bin/Release/OTAPI.dll" + +} + +build() { + cd "$_pkgname" + + export BUILD_MODE=Release + + xbuild ./TShockAPI/TShockAPI.csproj /p:Configuration=$BUILD_MODE +} package() { - install -d "${pkgdir}/srv/tshock/ServerPlugins/" - install -d "${pkgdir}/etc/conf.d/tshock/" - echo "BASEDIR=/srv/tshock -PORT=7777 -WORLDDIR=Terraria/Worlds -WORLD=World1 -SIZE=2" > "${pkgdir}/etc/conf.d/tshock/default.conf" - - install -Dm755 "${srcdir}/tshock.sh" "${pkgdir}/srv/tshock/" - install -Dm644 "${srcdir}/tshock@.service" "${pkgdir}/usr/lib/systemd/system/tshock@.service" - - install -Dm644 "${srcdir}/ServerPlugins"/* "${pkgdir}/srv/tshock/ServerPlugins/" - install -Dm644 "${srcdir}/sqlite3.dll" "${pkgdir}/srv/tshock/" - install -Dm644 "${srcdir}/Newtonsoft.Json.dll" "${pkgdir}/srv/tshock/" - install -Dm644 "${srcdir}/TerrariaServer.exe" "${pkgdir}/srv/tshock/" + install -Dm755 "${srcdir}/tshock.sh" "${pkgdir}/usr/bin/tshock" + + install -Dm644 "${srcdir}/default.conf" "${pkgdir}/etc/conf.d/${_pkgname}/default.conf" + + # Install sysusers + install -Dm644 "${srcdir}/sysusers" "$pkgdir/usr/lib/sysusers.d/${_pkgname}.conf" + + # Install tmpfiles + install -Dm644 "${srcdir}/tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/${_pkgname}.conf" + + # Install service + install -Dm644 "${srcdir}/service" "${pkgdir}/usr/lib/systemd/system/tshock@.service" + + cd "$_pkgname" + + basedir="${pkgdir}/srv/tshock" + + install -Dm755 "TerrariaServerAPI/TerrariaServerAPI/bin/Release/TerrariaServer.exe" "${basedir}/TerrariaServer.exe" + install -Dm644 "TerrariaServerAPI/TerrariaServerAPI/bin/Release/OTAPI.dll" "${basedir}/OTAPI.dll" + install -Dm644 "prebuilts/sqlite3.dll" "${basedir}/sqlite3.dll" + install -Dm644 "prebuilts/GeoIP.dat" "${basedir}/GeoIP.dat" + install -Dm644 "packages/Newtonsoft.Json.10.0.3/lib/net45/Newtonsoft.Json.dll" "${basedir}/Newtonsoft.Json.dll" + + install -Dm644 "prebuilts/HttpServer.dll" "${basedir}/ServerPlugins/HttpServer.dll" + install -Dm644 "prebuilts/Mono.Data.Sqlite.dll" "${basedir}/ServerPlugins/Mono.Data.Sqlite.dll" + install -Dm644 "packages/BCrypt.Net.0.1.0/lib/net35/BCrypt.Net.dll" "${basedir}/ServerPlugins/BCrypt.Net.dll" + install -Dm644 "packages/MySql.Data.6.9.8/lib/net45/MySql.Data.dll" "${basedir}/ServerPlugins/MySql.Data.dll" + + install -Dm644 "TShockAPI/bin/Release/TShockAPI.dll" "${basedir}/ServerPlugins/TShockAPI.dll" + } diff --git a/default.conf b/default.conf new file mode 100644 index 000000000000..d23962f4b027 --- /dev/null +++ b/default.conf @@ -0,0 +1,5 @@ +BASEDIR=/srv/tshock +PORT=7777 +WORLDDIR=Terraria/Worlds +WORLD=World1 +SIZE=2 diff --git a/service b/service new file mode 100644 index 000000000000..42042b298948 --- /dev/null +++ b/service @@ -0,0 +1,12 @@ +[Unit] +Description=TShock Terraria server. + +[Service] +Type=forking +User=terraria +Group=terraria +ExecStart=/usr/bin/tshock start %i +ExecStop=/usr/bin/tshock stop %i + +[Install] +WantedBy=multi-user.target diff --git a/sysusers b/sysusers new file mode 100644 index 000000000000..9d482978dd16 --- /dev/null +++ b/sysusers @@ -0,0 +1 @@ +u terraria - "Terraria Server user" /srv/tshock diff --git a/tmpfiles b/tmpfiles new file mode 100644 index 000000000000..bca124823bd4 --- /dev/null +++ b/tmpfiles @@ -0,0 +1 @@ +d /srv/tshock 0755 terraria terraria - diff --git a/tshock.install b/tshock.install index ac4440157bb9..609e681cec5d 100644 --- a/tshock.install +++ b/tshock.install @@ -1,21 +1,3 @@ post_install() { - getent group tshock >/dev/null 2>&1 || groupadd tshock - getent passwd tshock >/dev/null 2>&1 || useradd -g tshock -d /srv/tshock/ -s /bin/bash tshock - chown -R tshock:tshock /srv/tshock/ - echo ">>> You can start the server in a default configuration by starting tshock@default.service" } - -post_upgrade() { - post_install $1 -} - -post_remove() { - if getent passwd tshock >/dev/null 2>&1; then - userdel tshock - fi - if getent group tshock >/dev/null 2>&1; then - groupdel tshock - fi -} - diff --git a/tshock.sh b/tshock.sh index 989f5741851b..4e3afbed47f7 100644 --- a/tshock.sh +++ b/tshock.sh @@ -3,16 +3,16 @@ CONFDIR='/etc/conf.d/tshock' if [ -n "$2" ]; then - INSTANCE=$2 + INSTANCE=$2 else - INSTANCE=default + INSTANCE=default fi if [ -r ${CONFDIR}/${INSTANCE}.conf ]; then - source ${CONFDIR}/${INSTANCE}.conf + source ${CONFDIR}/${INSTANCE}.conf else - echo "TShock could not be started because ${CONFDIR}/${INSTANCE}.conf could not be read." - exit 1 + echo "TShock could not be started because ${CONFDIR}/${INSTANCE}.conf could not be read." + exit 1 fi TMUX_CONSOLE=tshock-console-${INSTANCE} @@ -55,35 +55,42 @@ TMUX_CONSOLE=tshock-console-${INSTANCE} ## wiki use. case "$1" in - start) - if [ ! $(tmux has -t ${TMUX_CONSOLE} &> /dev/null) ]; then - tmux new-session -d -s ${TMUX_CONSOLE} -d "cd ${BASEDIR}; mono --server --gc=sgen -O=all TerrariaServer.exe -port ${PORT} -worldpath ${WORLDDIR} -world ${WORLDDIR}/${WORLD}.wld -autocreate ${SIZE}" - if [ $? -gt 0 ]; then - exit 1 - fi - else - echo "This TShock instance is already running" - exit 1 - fi - ;; + start) + if tmux has-session -t ${TMUX_CONSOLE} &> /dev/null ; then + echo "This TShock instance is already running" + exit 1 + else + tmux new-session -d -s ${TMUX_CONSOLE} -d "cd ${BASEDIR}; mono --server --gc=sgen -O=all TerrariaServer.exe -port ${PORT} -worldpath ${WORLDDIR} -world ${WORLDDIR}/${WORLD}.wld -autocreate ${SIZE}" + if [ $? -gt 0 ]; then + echo "Could not start instance" + exit 1 + fi + fi + ;; - stop) - tmux send-keys -t ${TMUX_CONSOLE} 'broadcast NOTICE: Server shutting down in 5 seconds!' C-m - sleep 5 - tmux send-keys -t ${TMUX_CONSOLE} 'exit' C-m - sleep 10 - ;; + stop) + if tmux has-session -t ${TMUX_CONSOLE} &> /dev/null ; then + tmux send-keys -t ${TMUX_CONSOLE} 'broadcast NOTICE: Server shutting down in 5 seconds!' C-m + sleep 5 + tmux send-keys -t ${TMUX_CONSOLE} 'exit' C-m + sleep 10 + else + echo "This TShock instance is not running" + exit 1 + fi + ;; - console) - tmux attach -t ${TMUX_CONSOLE} - ;; + console) + if tmux has-session -t ${TMUX_CONSOLE} &> /dev/null ; then + tmux attach -t ${TMUX_CONSOLE} + else + echo "This TShock instance is not running" + exit 1 + fi + ;; - install) - bash -c "cd ${BASEDIR}; mono --server --gc=sgen -O=all TerrariaServer.exe -worldpath ${WORLDDIR}" - ;; - - *) - echo "usage: $0 {start|backup|console|install} [instance]" + *) + echo "usage: $0 {start|backup|console} [instance]" esac exit 0 diff --git a/tshock@.service b/tshock@.service deleted file mode 100644 index 95f43e499609..000000000000 --- a/tshock@.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=A Terraria Server administration modification that runs on the open source TerrariaAPI. - -[Service] -User=tshock -Group=tshock -ExecStart=/srv/tshock/tshock.sh start %i -ExecStop=/srv/tshock/tshock.sh stop %i -Type=forking - -[Install] -WantedBy=multi-user.target |