Skip to content

fix(ci): restore GLIBC 2.35 compatibility for deb packages - #3955

Open
vjnrv wants to merge 1 commit into
block:mainfrom
vjnrv:feat/glibc-compat-ubuntu-22-04-pr
Open

fix(ci): restore GLIBC 2.35 compatibility for deb packages#3955
vjnrv wants to merge 1 commit into
block:mainfrom
vjnrv:feat/glibc-compat-ubuntu-22-04-pr

Conversation

@vjnrv

@vjnrv vjnrv commented Jul 31, 2026

Copy link
Copy Markdown

Summary

PR #3602 resolved the rendering-related colrv1_configure_skpaint crash (issues #2548 and #2982) on newer host distributions (like Ubuntu 24.04+ and Fedora 40+) by bumping the Linux AppImage build container to ubuntu:24.04. This ensured that the bundled WebKitGTK in the AppImage matched the FT_ColorStopIterator layout changes introduced in FreeType 2.13+.

However, upgrading the build container to ubuntu:24.04 had the unintended side effect of raising the minimum GLIBC floor of the entire build pipeline to 2.39. As a result, the generated .deb packages (which were compiled inside the same container) now require GLIBC_2.38 or higher, breaking installations on stable distributions such as Ubuntu 22.04 LTS (GLIBC 2.35) and Debian 12 (GLIBC 2.36).

Because .deb packages do not bundle WebKitGTK (they use the system's libwebkit2gtk package), they are completely unaffected by the FreeType struct mismatch. The system-provided WebKitGTK is already compiled against the system-provided FreeType layout. Thus, there is no technical requirement to compile .deb packages on Ubuntu 24.04.

By splitting the Linux build environments, we can restore first-class support for Ubuntu 22.04 LTS and Debian 12 via the .deb package while fully preserving the AppImage fixes for newer hosts.

Solution

  • Split Linux Build Pipelines:
    • .github/workflows/linux-canary.yml: Refactored the build job to use a strategy.matrix separating target platforms.
      • AppImage is built in ubuntu:24.04 to maintain FreeType 2.13+ layout compatibility.
      • Debian is built in ubuntu:22.04 to restore the GLIBC 2.35 floor.
      • Updated steps (tauri build, fix-appimage.sh gating, artifact collection, and uploading) to be matrix-aware.
    • .github/workflows/release.yml:
      • Isolated the existing release-linux job to only build appimage on ubuntu:24.04.
      • Added a new release-linux-deb job running on ubuntu:22.04 to compile the deb package only.
      • Updated the assemble-manifest job to wait for both release-linux and release-linux-deb before completing the release draft.

References

Validation

  • The workflows have been validated by running them on a fork:
    • The AppImage matrix job successfully compiled the AppImage package on ubuntu:24.04.
    • The Debian matrix job successfully compiled the .deb package on ubuntu:22.04.
    • The generated .deb package was downloaded and verified to install and launch without GLIBC errors on an Ubuntu 22.04 LTS system (GLIBC 2.35).

@vjnrv
vjnrv requested a review from a team as a code owner July 31, 2026 17:03
Signed-off-by: Pedro Junior <vjuniorv@gmail.com>
@vjnrv
vjnrv force-pushed the feat/glibc-compat-ubuntu-22-04-pr branch from d56f2ee to 827aa34 Compare July 31, 2026 17:04
-o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30
apt-get install -y --no-install-recommends \
-o Acquire::Retries=3 \
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants