Просмотр исходного кода

fix(ios): use 64-bit server and stop map reload loop (#5024)

IOSoccer moved to a 64-bit server (srcds_run_64) on 7 October 2026. The new engine executes the server cfg on every map load, so the map line in the default cfg caused an endless map reload. Add fix_ios.sh to comment it out on existing installs, and bump glibc to 2.29.

Fixes #5023
Daniel Gibbs 5 дней назад
Родитель
Сommit
e712367221

+ 2 - 2
lgsm/config-default/config-lgsm/iosserver/_default.cfg

@@ -172,7 +172,7 @@ consoleinteract="yes"
 # Do not edit
 gamename="IOSoccer"
 engine="source"
-glibc="2.3.6"
+glibc="2.29"
 
 #### Directories ####
 # Edit with care
@@ -180,7 +180,7 @@ glibc="2.3.6"
 ## Game Server Directories
 systemdir="${serverfiles}/iosoccer"
 executabledir="${serverfiles}"
-executable="./srcds_run"
+executable="./srcds_run_64"
 servercfgdir="${systemdir}/cfg"
 servercfg="${selfname}.cfg"
 servercfgdefault="server.cfg"

+ 5 - 0
lgsm/modules/core_modules.sh

@@ -413,6 +413,11 @@ fix_ins.sh() {
 	fn_fetch_module
 }
 
+fix_ios.sh() {
+	modulefile="${FUNCNAME[0]}"
+	fn_fetch_module
+}
+
 fix_kf.sh() {
 	modulefile="${FUNCNAME[0]}"
 	fn_fetch_module

+ 1 - 1
lgsm/modules/fix.sh

@@ -53,7 +53,7 @@ fn_apply_fix() {
 	fi
 }
 
-apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sm sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm xnt zmr)
+apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins ios kf nmrih onset pvr ro rust rw samp sdtd sfc sm sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm xnt zmr)
 apply_post_install_fix=(av kf kf2 ro ut2k4 ut ut3)
 
 # validate registered fixes for safe development

+ 16 - 0
lgsm/modules/fix_ios.sh

@@ -0,0 +1,16 @@
+#!/bin/bash
+# LinuxGSM fix_ios.sh module
+# Author: Daniel Gibbs
+# Contributors: https://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Resolves issues with IOSoccer.
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+# Fixes: IOSoccer 64-bit server stuck reloading the map #5023.
+if [ -f "${servercfgfullpath}" ] && grep -qE '^\s*map\s' "${servercfgfullpath}"; then
+	fixname="remove map from ${servercfg}"
+	fn_fix_msg_start
+	sed -i -E 's|^(\s*map\s.*)$|// \1|' "${servercfgfullpath}"
+	fn_fix_msg_end
+fi