Przeglądaj źródła

chore(install): rebuild hosted server archives with normalised ownership, permissions and names (#5146)

Point install_server_files.sh at rebuilt copies of 18 archives on
linuxgsm.download. Game content and versions are unchanged; the
rebuilds only remove files.

- Owner and group 0/0, numeric. Several archives were owned by uid 1000.
- Directories 0755, files 0644, ELF executables and shebang scripts 0755.
  Twelve archives were 0777 throughout and the MoHAA archive had 0700
  directories and a non-executable mohaa_lnxded.
- Windows and macOS only files removed (exe, dll, bat, url, lnk, reg,
  sys, dylib, Thumbs.db), plus uninstaller leftovers and stray logs.
- Client-only content removed: Quake 2 renderers, UT3 Direct3D shader
  caches, the MoHAA Windows client utilities, the iortcw pb directory,
  the UT2004 Windows GUI and macOS ucc.
- Sorted entries, no ./ prefix, xz -9e.
- Named <shortname>-<gameversion>-linux-<arch>-linuxgsm-YYYYMMDD.tar.xz.
  This also fixes the cod local_filename, which named 1.5 instead of 1.5b.

Repack the libncurses5 i386 library archive used by fix_bf1942 and
fix_bfv with the libraries at 0644, as Ubuntu ships them. The library
files are byte for byte the same.

The original archives stay hosted, so older releases keep working.
Daniel Gibbs 3 dni temu
rodzic
commit
2eb63e4846

+ 2 - 2
lgsm/modules/fix_bf1942.sh

@@ -14,8 +14,8 @@ if ldd "${executabledir}/bf1942_lnxded.static" 2>&1 | grep -qE "lib(ncurses|tinf
 	# shellcheck disable=SC2034 # Used by fn_fix_msg_start_nl and fn_fix_msg_end.
 	fixname="libncurses5 i386"
 	fn_fix_msg_start_nl
-	fn_fetch_file "https://linuxgsm.download/libraries/libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "" "" "" "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "nochmodx" "norun" "noforce" "ee141cb3a843e4201786b6f188347666"
-	fn_dl_extract "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "${serverfiles}"
+	fn_fetch_file "https://linuxgsm.download/libraries/libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "" "" "" "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "nochmodx" "norun" "noforce" "dd1cc98dd60420ea14345deb6a6beb8a"
+	fn_dl_extract "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "${serverfiles}"
 	fn_clear_tmp
 	fn_fix_msg_end
 fi

+ 2 - 2
lgsm/modules/fix_bfv.sh

@@ -14,8 +14,8 @@ if ldd "${executabledir}/bfv_linded.static" 2>&1 | grep -qE "lib(ncurses|tinfo)\
 	# shellcheck disable=SC2034 # Used by fn_fix_msg_start_nl and fn_fix_msg_end.
 	fixname="libncurses5 i386"
 	fn_fix_msg_start_nl
-	fn_fetch_file "https://linuxgsm.download/libraries/libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "" "" "" "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "nochmodx" "norun" "noforce" "ee141cb3a843e4201786b6f188347666"
-	fn_dl_extract "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3.tar.xz" "${serverfiles}"
+	fn_fetch_file "https://linuxgsm.download/libraries/libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "" "" "" "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "nochmodx" "norun" "noforce" "dd1cc98dd60420ea14345deb6a6beb8a"
+	fn_dl_extract "${tmpdir}" "libncurses5-i386-6.3-2ubuntu0.3-linuxgsm-20261102.tar.xz" "${serverfiles}"
 	fn_clear_tmp
 	fn_fix_msg_end
 fi

+ 54 - 54
lgsm/modules/install_server_files.sh

@@ -9,13 +9,13 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
 
 fn_install_server_files() {
 	if [ "${shortname}" == "ahl" ]; then
-		remote_fileurl="https://linuxgsm.download/ActionHalfLife/action_halflife-1.0.tar.xz"
+		remote_fileurl="https://linuxgsm.download/ActionHalfLife/ahl-1.0-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="action_halflife-1.0.tar.xz"
+		local_filename="ahl-1.0-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="61d7b79fd714888b6d65944fdaafa94a"
+		md5="4b502ed86fafd44b9b9dda99ee4cb44f"
 	elif [ "${shortname}" == "bf1942" ]; then
 		remote_fileurl="https://linuxgsm.download/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full-linuxgsm.tar.xz"
 		local_filedir="${tmpdir}"
@@ -34,21 +34,21 @@ fn_install_server_files() {
 		md5="9a8117732b8abd99cc59f1f0fa92adfa"
 
 	elif [ "${shortname}" == "cod" ]; then
-		remote_fileurl="https://linuxgsm.download/CallOfDuty/cod-lnxded-1.5b-full.tar.xz"
+		remote_fileurl="https://linuxgsm.download/CallOfDuty/cod-1.5b-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="cod-lnxded-1.5-large.tar.xz"
+		local_filename="cod-1.5b-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="ee0ad1ccbfa1fd27fde01a4a431a5c2f"
+		md5="a588df9db95f64ce5b5065fd94995bc1"
 	elif [ "${shortname}" == "coduo" ]; then
-		remote_fileurl="https://linuxgsm.download/CallOfDutyUnitedOffensive/coduo-lnxded-1.51b-full.tar.xz"
+		remote_fileurl="https://linuxgsm.download/CallOfDutyUnitedOffensive/coduo-1.51b-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="coduo-lnxded-1.51b-full.tar.xz"
+		local_filename="coduo-1.51b-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="35cabccd67adcda44aaebc59405915b9"
+		md5="deb2f9a66c9f3c7a23099c31c98242d0"
 	elif [ "${shortname}" == "cod2" ]; then
 		remote_fileurl="https://linuxgsm.download/CallOfDuty2/cod2-lnxded-1.3-full.tar.xz"
 		local_filedir="${tmpdir}"
@@ -58,13 +58,13 @@ fn_install_server_files() {
 		force="noforce"
 		md5="b8c4c611f01627dd43348e78478a3d41"
 	elif [ "${shortname}" == "cod4" ]; then
-		remote_fileurl="https://linuxgsm.download/CallOfDuty4/cod4x18_lnxded.tar.xz"
+		remote_fileurl="https://linuxgsm.download/CallOfDuty4/cod4x-21.2-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="cod4x18_lnxded.tar.xz"
+		local_filename="cod4x-21.2-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="d255b59b9756d7dbead67718208512ee"
+		md5="7c8d55d12e44f321f31ad1320567659a"
 	elif [ "${shortname}" == "codwaw" ]; then
 		remote_fileurl="https://linuxgsm.download/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.xz"
 		local_filedir="${tmpdir}"
@@ -74,45 +74,45 @@ fn_install_server_files() {
 		force="noforce"
 		md5="2c6be1bb66ea631b9b2e7ae6216c6680"
 	elif [ "${shortname}" == "cswon" ]; then
-		remote_fileurl="https://linuxgsm.download/CounterStrikeWON2/hlds_l-3111e-cs15-won2-linuxgsm.tar.xz"
+		remote_fileurl="https://linuxgsm.download/CounterStrikeWON2/cswon-3111e-cs15-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="hlds_l-3111e-cs15-won2-linuxgsm.tar.xz"
+		local_filename="cswon-3111e-cs15-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="8109a66e2e906ff2c309e3a6b412132a"
+		md5="0be5f9f766e48b8bbd480dfa4a9d9aa0"
 	elif [ "${shortname}" == "hlwon" ]; then
-		remote_fileurl="https://linuxgsm.download/HalfLifeWON2/hlds_l-3111e-won2-linuxgsm.tar.xz"
+		remote_fileurl="https://linuxgsm.download/HalfLifeWON2/hlwon-3111e-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="hlds_l-3111e-won2-linuxgsm.tar.xz"
+		local_filename="hlwon-3111e-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="83164405c744a5e424814e67eacf27fb"
+		md5="e64fda09d31f3acc977fb621b5ffd4fd"
 	elif [ "${shortname}" == "mohaa" ]; then
-		remote_fileurl="https://linuxgsm.download/MedalofHonorAlliedAssault/moh_revival_v1.12_RC3.5.1.tar.xz"
+		remote_fileurl="https://linuxgsm.download/MedalofHonorAlliedAssault/mohaa-1.12-rc3.5.1-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="moh_revival_v1.12_RC3.5.1.tar.xz"
+		local_filename="mohaa-1.12-rc3.5.1-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="7c664538999252eeaf2b6d9949416480"
+		md5="bf66cbe1f4aefb221e17924e7bf9bdb4"
 	elif [ "${shortname}" == "ns" ]; then
-		remote_fileurl="https://linuxgsm.download/NaturalSelection/ns_dedicated_server_v32.tar.xz"
+		remote_fileurl="https://linuxgsm.download/NaturalSelection/ns-3.2-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="ns_dedicated_server_v32.tar.xz"
+		local_filename="ns-3.2-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="23ec3cadd93d8bb1c475bad5b9cce370"
+		md5="a44d9769f9a035b98a4d57a7d7e1f81b"
 	elif [ "${shortname}" == "q2" ]; then
-		remote_fileurl="https://linuxgsm.download/Quake2/quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
+		remote_fileurl="https://linuxgsm.download/Quake2/q2-3.20-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
+		local_filename="q2-3.20-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="2908164a32d4808bb720f2161f6b0c82"
+		md5="f0abe39ed649765cd99b7e5e1c62b4f6"
 	elif [ "${shortname}" == "q3" ]; then
 		remote_fileurl="https://linuxgsm.download/Quake3/quake3-1.32c-x86-full-linux.tar.xz"
 		local_filedir="${tmpdir}"
@@ -138,21 +138,21 @@ fn_install_server_files() {
 		force="noforce"
 		md5="82055b7d973206c13a606db8ba288d03"
 	elif [ "${shortname}" == "rtcw" ]; then
-		remote_fileurl="https://linuxgsm.download/ReturnToCastleWolfenstein/iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
+		remote_fileurl="https://linuxgsm.download/ReturnToCastleWolfenstein/rtcw-iortcw-1.51c-linux-amd64-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
+		local_filename="rtcw-iortcw-1.51c-linux-amd64-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="df6ff664d37dd0d22787848bdb3cac5f"
+		md5="6bb410ac0faf9048c2ca8f918b068ed0"
 	elif [ "${shortname}" == "sfc" ]; then
-		remote_fileurl="https://linuxgsm.download/SourceFortsClassic/SFClassic-1.0-RC7-fix.tar.xz"
+		remote_fileurl="https://linuxgsm.download/SourceFortsClassic/sfc-1.0-rc7-fix-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="SFClassic-1.0-RC7-fix.tar.xz"
+		local_filename="sfc-1.0-rc7-fix-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="70077137185700e28fe6bbb6021d12bc"
+		md5="a0e3980e944cd321c5f064d752a7431e"
 	elif [ "${shortname}" == "sof2" ]; then
 		remote_fileurl="https://linuxgsm.download/SoldierOfFortune2/sof2gold-1.03.tar.xz"
 		local_filedir="${tmpdir}"
@@ -162,53 +162,53 @@ fn_install_server_files() {
 		force="noforce"
 		md5="201e23bab04207d00ce813d001c483d9"
 	elif [ "${shortname}" == "ts" ]; then
-		remote_fileurl="https://linuxgsm.download/TheSpecialists/ts-3-linux-final.tar.xz"
+		remote_fileurl="https://linuxgsm.download/TheSpecialists/ts-3.0-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="ts-3-linux-final.tar.xz"
+		local_filename="ts-3.0-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="3c66ecff6e3644f7ac88015732a0fb93"
+		md5="4ff0fdc126ec09c07d6a6f915cb9145f"
 	elif [ "${shortname}" == "ut2k4" ]; then
-		remote_fileurl="https://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-3-ultimate-linux.tar.xz"
+		remote_fileurl="https://linuxgsm.download/UnrealTournament2004/ut2k4-3369.3-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="ut2004-server-3369-3-ultimate-linux.tar.xz"
+		local_filename="ut2k4-3369.3-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="9fceaab68554749f4b45be66613b9a15"
+		md5="f0ce6b3d3c7831e1a45e2a436a6aaa3b"
 	elif [ "${shortname}" == "ut99" ]; then
-		remote_fileurl="https://linuxgsm.download/UnrealTournament99/ut99-server-469b-ultimate-linux.tar.xz"
+		remote_fileurl="https://linuxgsm.download/UnrealTournament99/ut99-469b-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="ut99-server-469b-ultimate-linux.tar.xz"
+		local_filename="ut99-469b-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="dba3f1122a5e60ee45ece7422fcf78f5"
+		md5="ccb9b0907f2f926204c911c3041df743"
 	elif [ "${shortname}" == "ut" ]; then
-		remote_fileurl="https://linuxgsm.download/UnrealTournament/UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
+		remote_fileurl="https://linuxgsm.download/UnrealTournament/ut-xan-3525360-linux-amd64-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
+		local_filename="ut-xan-3525360-linux-amd64-linuxgsm-20261102.tar.xz"
 		chmodx="noexecute"
 		run="norun"
 		force="noforce"
-		md5="41dd92015713a78211eaccf503b72393"
+		md5="ffcb25dd03d82489e0cb3d6b9779e818"
 	elif [ "${shortname}" == "ut3" ]; then
-		remote_fileurl="https://linuxgsm.download/UnrealTournament3/UT3-linux-server-2.1-openspy.tar.xz"
+		remote_fileurl="https://linuxgsm.download/UnrealTournament3/ut3-2.1-openspy-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="UT3-linux-server-2.1-openspy.tar.xz"
+		local_filename="ut3-2.1-openspy-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="f60b745613a8676666eb6a2450cbdc8e"
+		md5="a1ca829bd56d9a1abd17bf129e2bcb77"
 	elif [ "${shortname}" == "vs" ]; then
-		remote_fileurl="https://linuxgsm.download/VampireSlayer/vs_l-6.0_full.tar.xz"
+		remote_fileurl="https://linuxgsm.download/VampireSlayer/vs-6.0-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="vs_l-6.0_full.tar.xz"
+		local_filename="vs-6.0-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="b322f79e0abd31847493c52acf802667"
+		md5="c1f908ab27772d8c6ca8ee731d32ddda"
 	elif [ "${shortname}" == "wet" ]; then
 		remote_fileurl="https://linuxgsm.download/WolfensteinEnemyTerritory/enemy-territory.260b.tar.xz"
 		local_filedir="${tmpdir}"
@@ -226,13 +226,13 @@ fn_install_server_files() {
 		force="noforce"
 		md5="93705e165550c97484678236749198a4"
 	elif [ "${shortname}" == "zmr" ]; then
-		remote_fileurl="https://linuxgsm.download/ZombieMasterReborn/zombie_master_reborn_b6_1.tar.xz"
+		remote_fileurl="https://linuxgsm.download/ZombieMasterReborn/zmr-b6.1-linux-i386-linuxgsm-20261102.tar.xz"
 		local_filedir="${tmpdir}"
-		local_filename="zombie_master_reborn_b6_1.tar.xz"
+		local_filename="zmr-b6.1-linux-i386-linuxgsm-20261102.tar.xz"
 		chmodx="nochmodx"
 		run="norun"
 		force="noforce"
-		md5="0188ae86dbc9376f11ae3032dba2d665"
+		md5="f451da013ed386d3081dfcfc390c7723"
 	else
 		fn_print_fail_nl "Installing ${gamename} Server failed, missing default configuration"
 		fn_script_log_fail "Installing ${gamename} Server failed, missing default configuration"