Browse Source

fix(deps): update .NET runtime version for Vintage Story (#4913)

* Changed `dotnet-runtime-8.0` to `dotnet-runtime-10.0` in dependency lists for Ubuntu and Debian.
* Enhanced the `check_deps.sh` script to dynamically check for the required .NET runtime version.
* Added a warning for users on older distributions regarding potential missing .NET runtimes.
pull/4916/head
Daniel Gibbs 1 month ago
committed by GitHub
parent
commit
946cd6fa44
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      lgsm/data/debian-12.csv
  2. 2
      lgsm/data/debian-13.csv
  3. 2
      lgsm/data/ubuntu-24.04.csv
  4. 2
      lgsm/data/ubuntu-26.04.csv
  5. 38
      lgsm/modules/check_deps.sh

2
lgsm/data/debian-12.csv

@ -130,7 +130,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
vints,dotnet-runtime-8.0
vints,dotnet-runtime-10.0
vpmc,openjdk-17-jre
vs
wet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/debian-13.csv

@ -130,7 +130,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
vints,dotnet-runtime-8.0
vints,dotnet-runtime-10.0
vpmc,openjdk-25-jre
vs
wet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-24.04.csv

@ -130,7 +130,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
vints,dotnet-runtime-8.0
vints,dotnet-runtime-10.0
vpmc,openjdk-25-jre
vs
wet

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/data/ubuntu-26.04.csv

@ -130,7 +130,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
vints,dotnet-runtime-8.0
vints,dotnet-runtime-10.0
vpmc,openjdk-25-jre
vs
wet

Can't render this file because it has a wrong number of fields in line 2.

38
lgsm/modules/check_deps.sh

@ -8,15 +8,28 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_install_dotnet_repo() {
local dotnetpackage
dotnetpackage="dotnet-runtime-7.0"
for dep in "${array_deps_missing[@]}"; do
if [[ "${dep}" == dotnet-runtime-* ]]; then
dotnetpackage="${dep}"
break
fi
done
if [ "${distroid}" == "ubuntu" ]; then
# if package dotnet-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
if ! apt-cache show dotnet-runtime-7.0 > /dev/null 2>&1; then
# If the required .NET package is unavailable in Ubuntu repos, add the Microsoft repo.
if ! apt-cache show "${dotnetpackage}" > /dev/null 2>&1; then
fn_fetch_file "https://packages.microsoft.com/config/ubuntu/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
fi
elif [ "${distroid}" == "debian" ]; then
fn_fetch_file "https://packages.microsoft.com/config/debian/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
# If the required .NET package is unavailable in Debian repos, add the Microsoft repo.
if ! apt-cache show "${dotnetpackage}" > /dev/null 2>&1; then
fn_fetch_file "https://packages.microsoft.com/config/debian/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
fi
fi
}
@ -281,10 +294,10 @@ fn_deps_detector() {
depstatus=1
monoinstalled=false
fi
# .NET Core: A .NET Core repo needs to be installed.
elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
# .NET is not installed.
if dotnet --list-runtimes | grep -q "Microsoft.NETCore.App 7.0"; then
# .NET runtime: check installed runtime version for any dotnet-runtime-X.Y package.
elif [[ "${deptocheck}" =~ ^dotnet-runtime-([0-9]+\.[0-9]+)$ ]]; then
dotnetrequired="${BASH_REMATCH[1]}"
if [ "$(command -v dotnet 2> /dev/null)" ] && dotnet --list-runtimes | grep -q "Microsoft.NETCore.App ${dotnetrequired}"; then
depstatus=0
dotnetinstalled=true
else
@ -379,6 +392,15 @@ if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}"
fi
fi
# Vintage Story tracks newer .NET runtimes; older distro releases may not ship required packages.
if [ "${shortname}" == "vints" ]; then
if { [ "${distroid}" == "ubuntu" ] && dpkg --compare-versions "${distroversion}" "lt" "24.04"; } || { [ "${distroid}" == "debian" ] && dpkg --compare-versions "${distroversion}" "lt" "12"; } || [ "${distroid}" == "centos" ] || [ "${distroid}" == "rhel" ] || [ "${distroid}" == "rocky" ] || [ "${distroid}" == "almalinux" ]; then
fn_print_warning_nl "${gamename} may require newer .NET runtimes than ${distroname} provides."
echo -e "If startup fails due to missing .NET runtime, upgrading to Ubuntu 24.04+ or Debian 12+ is recommended."
fn_script_log_warn "${gamename} may require newer .NET runtimes than ${distroname} provides."
fi
fi
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
# Check that the distro dependency csv file exists.
fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"

Loading…
Cancel
Save