mirror of
https://github.com/archlinux/aur.git
synced 2026-03-14 23:16:48 +01:00
Initial upload: Build 42 unstable (42.13.2)
- Dedicated server for Project Zomboid Build 42 (unstable beta branch) - Requires jre-openjdk-headless>=25 (B42 uses Java 25) - Systemd service with RCON graceful shutdown - Provides/conflicts project-zomboid-server for coexistence with stable B41 package
This commit is contained in:
commit
2b2d3925e8
7 changed files with 200 additions and 0 deletions
30
.SRCINFO
Normal file
30
.SRCINFO
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
pkgbase = project-zomboid-server-unstable
|
||||
pkgdesc = Dedicated server for the game Project Zomboid (Build 42 unstable)
|
||||
pkgver = 42.13.2
|
||||
pkgrel = 1
|
||||
url = https://projectzomboid.com
|
||||
install = project-zomboid-server.install
|
||||
arch = x86_64
|
||||
license = custom:ProjectZomboid
|
||||
makedepends = steamcmd
|
||||
depends = jre-openjdk-headless>=25
|
||||
depends = lib32-glibc
|
||||
depends = libxext
|
||||
depends = gcc-libs
|
||||
depends = libsm
|
||||
depends = rcon-cli
|
||||
provides = project-zomboid-server
|
||||
conflicts = project-zomboid-server
|
||||
options = !strip
|
||||
options = !debug
|
||||
backup = etc/project-zomboid/server.conf
|
||||
source = project-zomboid-server.service
|
||||
source = project-zomboid-server.conf
|
||||
source = project-zomboid-server.sysusers
|
||||
source = project-zomboid-server.tmpfiles
|
||||
sha256sums = 448325d636dfa825c8dd849303b6a92fa63eee628da57e2438dd173657b9b056
|
||||
sha256sums = 1314a94efda4bfbef5df3e325e0f41afb46fe442c9a61466988251db6cfaedab
|
||||
sha256sums = 561f21c7cc53dc4a14eae829c04050e917d668649a1fffab630647c62f94bb08
|
||||
sha256sums = ecd0abe220d2fa7ad1c31d7a46aa086c74e92aa5801cb013c7943dc301f411a0
|
||||
|
||||
pkgname = project-zomboid-server-unstable
|
||||
54
PKGBUILD
Normal file
54
PKGBUILD
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
# Maintainer: BabbleBones <babblebones at protonmail dot com>
|
||||
# Contributor: Kyle Brady <kyle at spark - gap dot com>
|
||||
|
||||
pkgname=project-zomboid-server-unstable
|
||||
_basename=project-zomboid-server
|
||||
# While the pkgver is set here, the latest unstable version will always be downloaded via steamcmd
|
||||
# Build 42 is currently on the unstable beta branch
|
||||
pkgver=42.13.2
|
||||
pkgrel=1
|
||||
pkgdesc="Dedicated server for the game Project Zomboid (Build 42 unstable)"
|
||||
arch=('x86_64')
|
||||
url='https://projectzomboid.com'
|
||||
license=('custom:ProjectZomboid')
|
||||
depends=('jre-openjdk-headless>=25' 'lib32-glibc' 'libxext' 'gcc-libs' 'libsm' 'rcon-cli')
|
||||
makedepends=('steamcmd')
|
||||
provides=('project-zomboid-server')
|
||||
conflicts=('project-zomboid-server')
|
||||
options=('!strip' '!debug')
|
||||
backup=('etc/project-zomboid/server.conf')
|
||||
install='project-zomboid-server.install'
|
||||
source=('project-zomboid-server.service'
|
||||
'project-zomboid-server.conf'
|
||||
'project-zomboid-server.sysusers'
|
||||
'project-zomboid-server.tmpfiles')
|
||||
sha256sums=('448325d636dfa825c8dd849303b6a92fa63eee628da57e2438dd173657b9b056'
|
||||
'1314a94efda4bfbef5df3e325e0f41afb46fe442c9a61466988251db6cfaedab'
|
||||
'561f21c7cc53dc4a14eae829c04050e917d668649a1fffab630647c62f94bb08'
|
||||
'ecd0abe220d2fa7ad1c31d7a46aa086c74e92aa5801cb013c7943dc301f411a0')
|
||||
|
||||
prepare() {
|
||||
steamcmd +force_install_dir "$srcdir/$_basename" +login anonymous +app_update 380870 -beta unstable validate +quit
|
||||
}
|
||||
|
||||
package() {
|
||||
cd "$srcdir"
|
||||
mkdir -p "$pkgdir/opt"
|
||||
cp -r $_basename "$pkgdir/opt/"
|
||||
|
||||
# Remove bundled JRE — we use system jre-openjdk-headless>=25
|
||||
# B42 ships Azul Zulu JDK 25 (class file version 69.0)
|
||||
rm -rf "$pkgdir/opt/$_basename/jre64"
|
||||
|
||||
# Remove unnecessary launch scripts
|
||||
rm -f "$pkgdir/opt/$_basename/start-server.sh"
|
||||
rm -f "$pkgdir/opt/$_basename/ProjectZomboid32.json"
|
||||
rm -f "$pkgdir/opt/$_basename/"*.bat
|
||||
|
||||
install -Dm644 $_basename.service "$pkgdir/usr/lib/systemd/system/$_basename.service"
|
||||
install -Dm644 $_basename.conf "$pkgdir/etc/project-zomboid/server.conf"
|
||||
install -Dm644 $_basename.sysusers "$pkgdir/usr/lib/sysusers.d/$_basename.conf"
|
||||
install -Dm644 $_basename.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$_basename.conf"
|
||||
# B42 renamed PZLicense.txt to "Project Zomboid.txt"
|
||||
install -Dm644 "$pkgdir/opt/$_basename/license/Project Zomboid.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
|
||||
}
|
||||
22
project-zomboid-server.conf
Normal file
22
project-zomboid-server.conf
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Save/server to use
|
||||
NAME="servertest"
|
||||
|
||||
# Bypasses the create a password prompt
|
||||
ADMIN_PASSWORD="CHANGE_ME"
|
||||
|
||||
# RCON Options both here and in:
|
||||
# /opt/project-zomboid-server/Zomboid/Server/$NAME.ini
|
||||
RCON_PORT="27015"
|
||||
# Password used to connect to RCON for graceful shutdowns
|
||||
RCON_PASSWORD="CHANGE_ME"
|
||||
|
||||
# Most options should be set via:
|
||||
# /opt/project-zomboid-server/ProjectZomboid64.json
|
||||
# /opt/project-zomboid-server/Zomboid/Server/$NAME*
|
||||
# But any extra startup arguments to java and zomboid can be set with:
|
||||
#JVM_ARGS=
|
||||
#SERVER_ARGS=
|
||||
|
||||
# NOTE: JVM memory settings (Xmx/Xms) must be set in ProjectZomboid64.json,
|
||||
# NOT via JVM_ARGS. The ProjectZomboid64 binary reads them from the JSON file.
|
||||
# Build 42 defaults to 16GB max heap. Recommended minimum for MP is 8-9GB.
|
||||
46
project-zomboid-server.install
Normal file
46
project-zomboid-server.install
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
## arg 1: the new package version
|
||||
post_install() {
|
||||
echo "=========================================================="
|
||||
echo " Project Zomboid Dedicated Server — Build 42 (unstable)"
|
||||
echo "=========================================================="
|
||||
echo ""
|
||||
echo "CHANGE THE PASSWORDS IN /etc/project-zomboid/server.conf BEFORE STARTING THE SERVICE"
|
||||
echo ""
|
||||
echo "UDP ports 16261 and 16262 need to be open in your firewall for users to connect."
|
||||
echo "RCON password needs to be updated in the game settings to enable graceful service shutdown."
|
||||
echo ""
|
||||
echo "Settings can be configured via:"
|
||||
echo " Passwords & launch args: /etc/project-zomboid/server.conf"
|
||||
echo " Server & game settings (made on start): /opt/project-zomboid-server/Zomboid/Server/servertest*"
|
||||
echo " JVM settings (RAM): /opt/project-zomboid-server/ProjectZomboid64.json"
|
||||
echo ""
|
||||
echo "NOTE: JVM memory (Xmx/Xms) must be configured in ProjectZomboid64.json, not via command line."
|
||||
echo "Build 42 recommends at least 8-9GB RAM for multiplayer (default max heap is 16GB)."
|
||||
echo ""
|
||||
echo "By default, saves will be stored in /opt/project-zomboid-server/Zomboid/Saves/Multiplayer/"
|
||||
echo "Start project-zomboid-server.service to create a default world."
|
||||
echo ""
|
||||
echo "WARNING: Build 42 is unstable. B41 saves and mods are NOT compatible."
|
||||
echo " Devs recommend no more than 20 players and disabling all mods."
|
||||
}
|
||||
|
||||
## arg 1: the new package version
|
||||
## arg 2: the old package version
|
||||
post_upgrade() {
|
||||
echo "=========================================================="
|
||||
echo " Project Zomboid Server upgraded"
|
||||
echo "=========================================================="
|
||||
echo ""
|
||||
echo "WARNING: Build 42 unstable updates may break existing saves."
|
||||
echo "Back up /opt/project-zomboid-server/Zomboid/ before restarting the service."
|
||||
echo ""
|
||||
echo "If upgrading from Build 41:"
|
||||
echo " - B41 saves and mods are NOT compatible with B42"
|
||||
echo " - Ports changed: now UDP 16261 + 16262 (was 16261 + 8766)"
|
||||
echo " - Delete the db/ folder if you encounter Thread-0 errors"
|
||||
}
|
||||
|
||||
## arg 1: the old package version
|
||||
post_remove() {
|
||||
echo "Game saves, settings, and mods may be left in /opt/project-zomboid-server/"
|
||||
}
|
||||
40
project-zomboid-server.service
Normal file
40
project-zomboid-server.service
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[Unit]
|
||||
Description=Project Zomboid dedicated server (Build 42)
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=zomboid
|
||||
Group=zomboid
|
||||
|
||||
Environment=LD_LIBRARY_PATH="/opt/project-zomboid-server/linux64:/opt/project-zomboid-server/natives:/opt/project-zomboid-server/:${LD_LIBRARY_PATH}"
|
||||
# Force Java 25 — ProjectZomboid64 uses PATH to locate libjvm.so
|
||||
Environment=PATH="/usr/lib/jvm/java-25-openjdk/bin:/usr/bin"
|
||||
EnvironmentFile=/etc/project-zomboid/server.conf
|
||||
# These variables need to be changed from the default value in the EnvironmentFile
|
||||
ExecCondition=/usr/bin/test "${ADMIN_PASSWORD}" != "CHANGE_ME"
|
||||
ExecCondition=/usr/bin/test "${RCON_PASSWORD}" != "CHANGE_ME"
|
||||
ExecStart=/opt/project-zomboid-server/ProjectZomboid64 $JVM_ARGS -- -adminpassword "${ADMIN_PASSWORD}" -servername "${NAME}" $SERVER_ARGS
|
||||
ExecStop=/usr/bin/rcon -a "127.0.0.1:${RCON_PORT}" -p "${RCON_PASSWORD}" -t rcon quit
|
||||
# Quitting / saving is async, and doesn't have a good way to be wrapped by systemd
|
||||
# use timeout + tail to try and give the process some time to exit
|
||||
ExecStop=/usr/bin/timeout 60s /usr/bin/tail --pid="${MAINPID}" -f /dev/null
|
||||
ExecReload=/usr/bin/rcon -a "127.0.0.1:${RCON_PORT}" -p "${RCON_PASSWORD}" -t rcon reloadoptions
|
||||
|
||||
WorkingDirectory=/opt/project-zomboid-server
|
||||
ReadWritePaths=/opt/project-zomboid-server
|
||||
ProtectSystem=full
|
||||
ProtectHome=true
|
||||
PrivateTmp=yes
|
||||
PrivateDevices=yes
|
||||
ProtectClock=yes
|
||||
ProtectKernelTunables=yes
|
||||
ProtectKernelModules=yes
|
||||
ProtectKernelLogs=yes
|
||||
ProtectControlGroups=yes
|
||||
RestrictSUIDSGID=yes
|
||||
RestrictRealtime=yes
|
||||
RestrictNamespaces=yes
|
||||
NoNewPrivileges=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
2
project-zomboid-server.sysusers
Normal file
2
project-zomboid-server.sysusers
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#Type Name ID GECOS Home directory Shell
|
||||
u zomboid - "Project Zomboid dedicated server" /opt/project-zomboid-server
|
||||
6
project-zomboid-server.tmpfiles
Normal file
6
project-zomboid-server.tmpfiles
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#Type Path Mode User Group Age Argument
|
||||
d /opt/project-zomboid-server 0755 zomboid zomboid
|
||||
# Zomboid Server needs to be able to write mods to the steamapps folder
|
||||
d /opt/project-zomboid-server/steamapps 0755 zomboid zomboid
|
||||
# Build 42 uses a SQLite database for server state
|
||||
d /opt/project-zomboid-server/db 0755 zomboid zomboid
|
||||
Loading…
Add table
Reference in a new issue