feat: upgrade Ubuntu images to 24.04 - #290
Conversation
Refresh runtime dependencies and include the Vulkan loader and Mesa drivers so current native Unity plugins can load on the supported Ubuntu baseline. Co-authored-by: Cursor <cursoragent@cursor.com>
📝 WalkthroughWalkthroughThe Ubuntu base image now uses Ubuntu 24.04. Its dependency list includes updated package names and Vulkan packages. Python 3.12 cache cleanup replaces Python 3.10 cleanup, and the OpenSSL workaround describes support for older Unity Editors. ChangesUbuntu 24.04 base image
Estimated code review effort: 2 (Simple) | ~10 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
images/ubuntu/base/Dockerfile (1)
1-1: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winSet a non-root runtime user in the published images.
No
USERinstruction appears in any tracked Dockerfile, including the published Ubuntu base/editor images. Add a non-rootUSERafter build-time installation, or verify that each concrete published image overrides this before executing project code.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@images/ubuntu/base/Dockerfile` at line 1, Add a non-root runtime user to the Ubuntu base image after build-time installation, and switch to it with a USER instruction before runtime execution. Ensure published images inheriting from this base retain the non-root default unless they explicitly override it.Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@images/ubuntu/base/Dockerfile`:
- Line 1: Update the Ubuntu baseline image and its downstream published tags
consistently: either keep release-series tags for unityci/base, unityci/hub, and
unityci/editor on the Jammy base, or introduce Ubuntu-specific tags for the
Ubuntu 24.04 chain. Ensure any ubuntuImage override is propagated to
image-specific dependency configuration rather than relying on the base
Dockerfile-only ARG.
- Around line 17-22: Update the dependency list in the Ubuntu base image to
include validated compatibility coverage for supported legacy Unity 2019.3+
modules, specifically libgconf-2-4, libncurses5, and libtinfo5 where available,
or the established legacy compatibility bundle. Do not rely solely on symlinks,
and preserve the existing modern ncurses/tinfo dependencies.
- Line 61: Update the OpenSSL 1.1 installation commands in the Dockerfile to
fetch the latest patched Ubuntu libssl1.1 package over HTTPS from a trusted
archive, pin the artifact version, and verify its checksum or signature before
passing it to dpkg -i. Preserve compatibility with older Unity Editors and
remove the unverified HTTP download.
---
Nitpick comments:
In `@images/ubuntu/base/Dockerfile`:
- Line 1: Add a non-root runtime user to the Ubuntu base image after build-time
installation, and switch to it with a USER instruction before runtime execution.
Ensure published images inheriting from this base retain the non-root default
unless they explicitly override it.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: c346681d-4f37-4931-a11b-8a01e9d5850d
📒 Files selected for processing (1)
images/ubuntu/base/Dockerfile
| @@ -1,4 +1,4 @@ | |||
| ARG ubuntuImage="ubuntu:22.04" | |||
| ARG ubuntuImage="ubuntu:24.04" | |||
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
# Expect: old tags remain tied to Jammy, and ubuntuImage overrides have matching dependencies.
rg -n --hidden --glob '!.git/**' \
-e 'ubuntuImage' \
-e 'unityci/(base|hub|editor)' \
-e 'docker (build|buildx build|push)' \
-e 'build-push-action' \
-e 'tags:' . || trueRepository: game-ci/docker
Length of output: 40289
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
printf '=== files ===\n'
git ls-files images/.github .github/workflows | sort
printf '\n=== ubuntu base dockerfile ===\n'
cat -n images/ubuntu/base/Dockerfile | sed -n '1,120p'
printf '\n=== ubuntu hub dockerfile ===\n'
cat -n images/ubuntu/hub/Dockerfile | sed -n '1,80p'
printf '\n=== ubuntu editor dockerfile ===\n'
cat -n images/ubuntu/editor/Dockerfile | sed -n '1,120p'
printf '\n=== base workflow tags/events ===\n'
cat -n .github/workflows/new-ubuntu-base-image-requested.yml | sed -n '1,130p'
printf '\n=== hub workflow tags/events ===\n'
cat -n .github/workflows/new-ubuntu-hub-image-requested.yml | sed -n '1,130p'
printf '\n=== editor workflows summary ===\n'
for f in .github/workflows/new-ubuntu-*-editor-image-requested.yml .github/workflows/retry-ubuntu-editor-image-requested.yml .github/workflows/test.yml; do
if [ -f "$f" ]; then
echo "--- $f ---"
rg -n "ubuntu-${{|ubuntu-latest|latest|legacy|base|hub|Dockerfile|build-args|buildx action|build-push-action|tags:" "$f" || true
fi
done
printf '\n=== all ubuntuImage occurrences ===\n'
rg -n --hidden --glob '!.git/**' 'ubuntuImage' . || true
printf '\n=== all From $ubuntuImage or FROM ubuntuImage occurrences ===\n'
rg -n --hidden --glob '!.git/**' 'FROM\s+\$?ubuntuImage|ARG\s+ubuntuImage' . || true
printf '\n=== tag definitions for Ubuntu base ===\n'
rg -n --hidden --glob '!.git/**' 'tags:\s*$|unityci/base:latest|unityci/base:ubuntu-latest|unityci/base:\$\{|\-unityci/base' .github/workflows images || trueRepository: game-ci/docker
Length of output: 24820
Version the Ubuntu baseline across the published image chain.
The default ubuntuImage now starts from Ubuntu 24.04, and Ubuntu build workflows tag unityci/base, unityci/hub, and unityci/editor with latest/major/minor/full release-series tags. Keep those release-series tags on the Jammy base image, or publish Ubuntu 24.04 under Ubuntu-specific tags. Any ubuntuImage override must also update image-specific dependencies, because ubuntuImage is only defined in images/ubuntu/base/Dockerfile.
🧰 Tools
🪛 Trivy (0.72.0)
[error] 1-1: Image user should not be 'root'
Specify at least 1 USER command in Dockerfile with non-root user as argument
Rule: DS-0002
(IaC/Dockerfile)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@images/ubuntu/base/Dockerfile` at line 1, Update the Ubuntu baseline image
and its downstream published tags consistently: either keep release-series tags
for unityci/base, unityci/hub, and unityci/editor on the Jammy base, or
introduce Ubuntu-specific tags for the Ubuntu 24.04 chain. Ensure any
ubuntuImage override is propagated to image-specific dependency configuration
rather than relying on the base Dockerfile-only ARG.
Source: MCP tools
| libasound2t64 \ | ||
| libc6-dev \ | ||
| libcap2 \ | ||
| libgconf-2-4 \ | ||
| libglu1 \ | ||
| libgtk-3-0 \ | ||
| libncurses5 \ | ||
| libgtk-3-0t64 \ | ||
| libncurses6 \ |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
: "${IMAGE:?Set IMAGE to the built image}"
docker run --rm "$IMAGE" sh -eu -c '
for soname in libgconf-2.so.4 libncurses.so.5 libtinfo.so.5; do
ldconfig -p | grep -Fq "$soname" || {
echo "missing $soname" >&2
exit 1
}
done
'Repository: game-ci/docker
Length of output: 202
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
echo "== tracked images/ubuntu/base/Dockerfile =="
if [ -f images/ubuntu/base/Dockerfile ]; then
cat -n images/ubuntu/base/Dockerfile
else
echo "missing images/ubuntu/base/Dockerfile"
fi
echo "== nearby files =="
fd -a . images/ubuntu 2>/dev/null | sed 's#^\./##' | head -100
echo "== Dockerfile references to libgconf/libncurses/unity =="
rg -n "libgconf|libncurses|libtinfo|ubuntu|22\.04|24\.04|Noble|Jammy|Unity|BURST|IL2CPP|game-ci" .Repository: game-ci/docker
Length of output: 50371
🌐 Web query:
Unity 2019.3 Linux Installing Unity Linux dependencies libgconf-2-4 libncurses libtinfo
💡 Result:
To resolve issues when installing or launching Unity 2019.3 on Linux, particularly regarding missing shared library dependencies, follow the guidance below. Common Dependency Issues The most frequent error when launching older versions of Unity (like 2019.3) on modern Linux distributions is a missing libgconf-2-4 library, which manifests as: "error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory" [1][2][3]. On Ubuntu-based distributions, you can resolve this by installing the package manually: sudo apt update sudo apt install libgconf-2-4 Troubleshooting Launch Failures If you experience "Unity Launch error" or are unable to create projects, follow these steps: 1. Use Terminal for Diagnostics: If the Unity Hub or Editor fails to launch silently, run the Unity executable directly from the terminal (e.g., ~/Unity/Editor/Unity). The terminal will explicitly list any missing shared libraries (e.g., libncurses, libtinfo, or others) that are not present on your system [4]. 2. Missing Libraries (libncurses/libtinfo): Depending on your distribution version (e.g., Ubuntu 20.04 or later), older Unity versions may require legacy library versions that are no longer installed by default. If you see errors related to libncurses or libtinfo, you may need to install the compatibility versions (often named libncurses5 or libtinfo5) via your package manager [4][5]. 3. Graphics Drivers: Ensure you have the latest proprietary Nvidia drivers or the current Mesa drivers for AMD/Intel graphics, as Unity requires compatible OpenGL or Vulkan support [6][7][8]. General Recommendations - Official Support: Unity 2019.3 officially targeted Ubuntu 16.04/18.04 and CentOS 7 [6][7]. Running it on much newer distributions (like Ubuntu 22.04+) often requires manually installing these deprecated dependencies [4]. - Verify Execution Permissions: Ensure your Unity Editor binary has executable permissions [7]. - Use the Unity Hub: Always attempt to manage and launch your Unity versions through the current Unity Hub, as it handles many environment configurations automatically [9][10][11].
Citations:
- 1: https://issuetracker.unity3d.com/issues/cannot-launch-editor-due-to-libgconf-2-dot-so-dot-4-cannot-open-shared-object-file-no-such-file-or-directory
- 2: https://discussions.unity.com/t/unable-to-launch-unity-via-terminal/754343/3
- 3: https://discussions.unity.com/t/unity-hub-not-opening-projects-on-linux-solved/762836
- 4: https://discussions.unity.com/t/list-of-2019-1-dependencies-for-linux/915955/2
- 5: https://stackoverflow.com/questions/70928364/unity-hub-not-working-ubuntu-20-04-3-lts
- 6: https://docs.unity3d.com/2019.3/Documentation/Manual/system-requirements.html
- 7: https://docs.unity3d.com/2020.2/Documentation/Manual/GettingStartedInstallingHub.html
- 8: https://github.com/boppygames/Unity-Installer-for-Ubuntu
- 9: https://docs.unity3d.com/2019.3/Documentation/Manual/GettingStartedInstallingHub.html
- 10: https://docs.unity.com/hub/install-hub-linux
- 11: https://discussions.unity.com/t/unity-hub-on-linux/867802
🌐 Web query:
Ubuntu 24.04 libncurses6 package provides libncurses.so.6 libtinfo.so.6
💡 Result:
The Ubuntu 24.04 (Noble Numbat) package libncurses6 provides the ncurses shared library, and it is part of the ncurses source package which includes multiple related libraries, such as libtinfo6 [1][2][3]. While the package libncurses6 contains shared libraries for terminal handling, users often encounter issues with legacy software expecting older versions of these libraries, specifically libncurses.so.5 or libtinfo.so.5 [4][5][6][7]. Ubuntu 24.04 does not provide these version 5 libraries, as it has transitioned to version 6 (e.g., libncurses.so.6 and libtinfo.so.6) [6][7][8]. To address errors where applications report that libncurses.so.5 or libtinfo.so.5 cannot be found, a common technical workaround involves creating symbolic links to the existing version 6 files [4][5][6][9]. For example, users frequently use commands similar to the following to bridge this compatibility gap: sudo ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5 sudo ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5 These libraries are typically located in /usr/lib/x86_64-linux-gnu/ on 64-bit Ubuntu systems [4][6][7][9].
Citations:
- 1: https://packages.ubuntu.com/en/noble/libncurses6
- 2: https://packages.ubuntu.com/en/source/noble/amd64/ncurses
- 3: https://packages.ubuntu.com/source/noble-updates/ncurses
- 4: https://askubuntu.com/questions/1515023/installing-stata-on-ubuntu-24-04-required-libraries-no-longer-existing
- 5: https://joeress.com/making-passmark-performancetest-work-in-xubuntu-24-04/
- 6: https://gist.github.com/Chester-Gillon/a5faa0778713d733006b559be2483924
- 7: https://community.nxp.com/t5/MCUXpresso-IDE/MCUXpresso-V24-12-under-Ubuntu-24-04-libncursesw-so-5-not-found/m-p/2084816
- 8: https://adaptivesupport.amd.com/s/question/0D5KZ00000snNO50AM/error-libtinfoso5-is-required-by-metaxilinxtools?language=en_US
- 9: https://gist.github.com/aitesam961/51a8dd9b785d0cc9f0bed5faf51e982e?permalink_comment_id=5051792
🌐 Web query:
Ubuntu 22.04 libncurses5 package provides libncurses.so.5 libtinfo.so.5
💡 Result:
Yes, the Ubuntu 22.04 (Jammy Jellyfish) repository includes the libncurses5 package [1][2], which is provided as a legacy version of the shared libraries for terminal handling [1][2]. Regarding the specific shared object files: 1. libncurses.so.5: This file is included in the libncurses5 package [1][3]. It is provided specifically to support legacy applications that require version 5 of the ncurses shared library [2]. 2. libtinfo.so.5: This file is not directly provided by the libncurses5 package. Instead, the libtinfo5 package is the legacy package that provides libtinfo.so.5 [1][4]. In many cases, the functionality previously provided by libtinfo (the low-level terminfo library) has been integrated into the main ncurses shared libraries [5]. For applications that specifically look for the libtinfo.so.5 file, users have historically resolved this by ensuring the libtinfo5 package is installed [1] or, in some troubleshooting scenarios, by creating symbolic links from existing ncurses libraries to the expected filename [5]. You can install these legacy packages using the following commands: sudo apt update sudo apt install libncurses5 libtinfo5 Note that for modern applications developed on or for Ubuntu 22.04, the standard packages are libncurses6 and libtinfo6 [6][7][8]. The libncurses5 and libtinfo5 packages should only be used if you are running legacy software that specifically requires these older library versions [2].
Citations:
- 1: https://packages.ubuntu.com/en/jammy/libncurses5
- 2: https://launchpad.net/ubuntu/jammy/+package/libncurses5
- 3: https://stackoverflow.com/questions/73464111/libncurses-so-5-library-missing-in-ubuntu-22-04-installation-for-arm64-rapsberr
- 4: https://packages.ubuntu.com/en/source/jammy/ncurses
- 5: https://bugs.launchpad.net/bugs/259139
- 6: https://packages.ubuntu.com/en/jammy/libncurses-dev
- 7: https://packages.ubuntu.com/jammy/amd64/libncurses-dev
- 8: https://packages.ubuntu.com/en/jammy-updates/libncurses-dev
Add legacy Unity library coverage before dropping these dependencies.
Ubuntu 24.04 provides libncurses.so.6/libtinfo.so.6, while older Unity 2019.3+ guidance still requires libgconf-2-4, libncurses5, and libtinfo5 in many legacy cases. If Unity 2019 modules remain supported, keep compatibility packages or an externally validated legacy compatibility bundle and avoid relying only on symlinks.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@images/ubuntu/base/Dockerfile` around lines 17 - 22, Update the dependency
list in the Ubuntu base image to include validated compatibility coverage for
supported legacy Unity 2019.3+ modules, specifically libgconf-2-4, libncurses5,
and libtinfo5 where available, or the established legacy compatibility bundle.
Do not rely solely on symlinks, and preserve the existing modern ncurses/tinfo
dependencies.
Source: MCP tools
| && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| # Fix "No useable version of libssl" for Ubuntu 22.04 | ||
| # Install OpenSSL 1.1 for older Unity Editors that do not support OpenSSL 3. |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
: "${LIBSSL11_URL:?Set LIBSSL11_URL to the proposed artifact URL}"
: "${LIBSSL11_SHA256:?Set LIBSSL11_SHA256 to the expected SHA-256}"
case "$LIBSSL11_URL" in
https://*) ;;
*) echo "LIBSSL11_URL must use HTTPS" >&2; exit 1 ;;
esac
deb="$(mktemp)"
trap 'rm -f "$deb"' EXIT
curl --fail --location --proto '=https' --tlsv1.2 "$LIBSSL11_URL" -o "$deb"
printf '%s %s\n' "$LIBSSL11_SHA256" "$deb" | sha256sum --check --status
dpkg-deb -f "$deb" Package Version ArchitectureRepository: game-ci/docker
Length of output: 226
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== Dockerfile locations =="
fd -a 'Dockerfile$' . | sed 's#^\./##' | rg 'images/ubuntu/base/Dockerfile|Dockerfile' | head -50
echo
echo "== target lines =="
if [ -f images/ubuntu/base/Dockerfile ]; then
nl -ba images/ubuntu/base/Dockerfile | sed -n '45,80p'
fi
echo
echo "== relevant variables/usages =="
rg -n "LIBSSL|libssl1\.1|OpenSSL|curl|wget|sha256|apt.*install" images/ubuntu/base/Dockerfile README.md .github 2>/dev/null || trueRepository: game-ci/docker
Length of output: 539
🏁 Script executed:
#!/usr/bin/env bash
set -euo pipefail
echo "== candidate remote package lookup =="
# Do not trust repository files as executable code. Use only read-only package metadata lookup.
# Check availability/version and canonical filenames for Ubuntu focal libssl1.1 packages.
python3 - <<'PY'
import urllib.request
urls = [
"https://packages.ubuntu.com/focal/amd64/libssl1.1/download",
"https://packages.ubuntu.com/focal/amd64/libssl1.1/download?mirror=ports.ubuntu.com",
"http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb",
"http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb",
"https://old-releases.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb",
]
for url in urls:
print(f"-- {url}")
try:
req = urllib.request.Request(url, headers={"User-Agent": "mozilla"})
with urllib.request.urlopen(req, timeout=20) as r:
print("status", r.status)
print("final", r.url if hasattr(r, "url") else url)
except Exception as e:
print(type(e).__name__, str(e).splitlines()[0] if str(e) else "")
PY
echo
echo "== available local Dockerfile snippets around libssl1.1 =="
if [ -f images/ubuntu/base/Dockerfile ]; then
rg -n "libssl1\.1|1\.1\.1f|OpenSSL|curl|apt|http|https" images/ubuntu/base/Dockerfile || true
fi
echo
echo "== git diff stat/name-only =="
git diff --stat || true
git diff --name-only || trueRepository: game-ci/docker
Length of output: 2362
🌐 Web query:
Ubuntu USN-4891-1 libssl1.1 1.1.1f-1ubuntu2.3 1ubuntu2.24 CVE
💡 Result:
Ubuntu Security Notice (USN) 4891-1 was published on March 25, 2021, to address an OpenSSL vulnerability related to the incorrect handling of certain renegotiation ClientHello messages [1][2]. This vulnerability is identified as CVE-2021-3449 [3][2]. It allowed a remote attacker to send specially crafted network traffic to an OpenSSL-based server, potentially causing the application to crash (denial of service) or, in some cases, execute arbitrary code [2][4]. Regarding the specific package versions mentioned: - The package version libssl1.1 1.1.1f-1ubuntu2.3 was the corrected version for Ubuntu 20.04 LTS (Focal Fossa) released as part of USN-4891-1 [2][5]. - The package version you inquired about is directly associated with this security fix for CVE-2021-3449 [5][4]. After applying these updates, it is standard practice for Ubuntu systems to require a reboot to ensure that all services using the affected library are properly restarted and using the patched version [1][2].
Citations:
- 1: https://ubuntu.com/security/notices/USN-4891-1
- 2: https://lists.ubuntu.com/archives/ubuntu-security-announce/2021-March/005947.html
- 3: https://osv.dev/vulnerability/USN-4891-1
- 4: http://osv.dev/vulnerability/UBUNTU-CVE-2021-3449
- 5: https://launchpad.net/ubuntu/focal/+source/openssl/+changelog
🌐 Web query:
Ubuntu https packages.ubuntu.com focal libssl1.1 1.1.1f-1ubuntu2.24 amd64 download
💡 Result:
The package libssl1.1 version 1.1.1f-1ubuntu2.24 for Ubuntu 20.04 (Focal Fossa) is a security/update release [1][2][3]. While this specific version was published in the official Ubuntu repositories (e.g., security and updates channels) [2][4], it has since been superseded [2]. In the Ubuntu ecosystem, once a package is superseded, it is often removed from the primary pool/main directory on the main mirrors, although it may still exist in archive mirrors or historical repositories [2]. To locate and download this specific version, you can consult: 1. Launchpad: The official Ubuntu package tracker hosts detailed information and metadata for this version [2][4]. 2. Ubuntu Archive Mirrors: You may find the.deb file in the pool/main/o/openssl directory of various historical or institutional Ubuntu mirrors [5][6]. The specific path for the amd64 architecture is pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb [5]. It is generally recommended to update to the latest available version provided by your system's package manager (apt) rather than manually installing older, superseded versions, to ensure you have the most recent security patches. You can check for available updates by running: sudo apt update apt policy libssl1.1
Citations:
- 1: https://www.ubuntuupdates.org/package/core/focal/main/security/libssl1.1
- 2: https://launchpad.net/ubuntu/focal/amd64/libssl1.1
- 3: https://www.ubuntuupdates.org/package/core/focal/main/updates/libssl1.1
- 4: https://launchpad.net/ubuntu/focal/+package/libssl1.1
- 5: https://www.ubuntuupdates.org/listfile_data/1890211
- 6: https://robohub.eng.uwaterloo.ca/mirror/ubuntu/pool/main/o/openssl/
Install a patched, integrity-checked libssl1.1 artifact over HTTPS.
images/ubuntu/base/Dockerfile:63-64 downloads the unpatched libssl1.1_1.1.1f-1ubuntu2_amd64.deb over HTTP and installs it without checksum/signature verification. Pin this legacy compatibility library to the latest patched Ubuntu libssl1.1 package, fetch it over HTTPS from a trusted archive, and verify the package before dpkg -i.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@images/ubuntu/base/Dockerfile` at line 61, Update the OpenSSL 1.1
installation commands in the Dockerfile to fetch the latest patched Ubuntu
libssl1.1 package over HTTPS from a trusted archive, pin the artifact version,
and verify its checksum or signature before passing it to dpkg -i. Preserve
compatibility with older Unity Editors and remove the unverified HTTP download.
Source: MCP tools

Summary
t64transition and drop obsolete GConfCloses #289.
Test plan
linux/amd646000.5.7f1linux-il2cppEditor image from the new base and Hub6000.5.7f1Checklist
Summary by CodeRabbit