Repository navigation
Linux packages run on Ubuntu 22.04 - #113
Merged
Merged
Conversation
SharpHook's libuiohook-xrecord.so and libuiohook-x11.so need GLIBC_2.38 (__isoc23_sscanf, built on Ubuntu 26.04) and rhwp's Linux release needs GLIBC_2.39, so neither starts on Ubuntu 22.04 (#102). - portable.yml: a linux-native job builds both from pinned, unmodified source on ubuntu-22.04 and ubuntu-22.04-arm (build/build-linux-native.py: libuiohook at SharpHook 8.0.0's submodule commit with SharpHook's CMake flags and unit tests; rhwp v0.8.7 with cargo +1.93.1 --locked), cached. The Linux package jobs pass them to build-portable.ps1 (-RhwpOverride, -UiohookOverride); local builds keep using the downloads. - build-linux-native.py check fails when Directory.Packages.props or engines.json move to another SharpHook or rhwp version than it builds. - build/check-elf-glibc.py (standard library ELF reader) lists the newest GLIBC version of every ELF file and fails above 2.35, on the native builds and on every Linux package. - The package smoke steps move to build/smoke-portable.ps1 and build/smoke-launch-app.py, add TXT -> HWPX -> HWP -> PDF through rhwp, load libuiohook-xrecord.so and fail on ErrorLinuxLoadBackend in the app log. A new job runs them on Ubuntu 22.04 (x64 and arm64) with its own packages. - The Shortcuts page explains a Linux back end that doesn't load (X11 session, libxtst6 and libxt6) instead of the raw error; the log keeps the libuiohook result. - INSTALL.txt has the Ubuntu 22.04 and 24.04 dependency commands with libxt6; READMEs say Ubuntu 22.04+; notices and docs describe the builds. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SharpHook 8.0.1 builds libuiohook for older glibc again: all of its Linux back ends (x64, arm64, arm) need GLIBC_2.34 at most. The Linux packages use SharpHook's own libraries again, so the libuiohook source build, its CI dependencies and -UiohookOverride are gone. rhwp is still built from source on Ubuntu 22.04. The glibc audit and the Ubuntu 22.04 smoke job stay and fail if a SharpHook or engine update raises the requirement again. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #102.
Linux packages now run on Ubuntu 22.04 (glibc 2.35). Two native pieces needed newer glibc: SharpHook 8.0.0's X11 hook backends (2.38,
__isoc23_sscanf) and the rhwp release binary (2.39).Changes
linux-nativeCI job (ubuntu-22.04 / ubuntu-22.04-arm) builds them from source withbuild/build-linux-native.py:git ls-tree), with SharpHook's own flags. It builds only the xrecord/x11 backends and runsuiohook_tests --headless.--locked.checkfails whenDirectory.Packages.propsorengines.jsonmove to versions the script doesn't pin.build-portable.ps1gets-RhwpOverride/-UiohookOverride(Linux only). Local builds are unchanged.build/check-elf-glibc.py): fails if any ELF in the package needs a GLIBC newer than 2.35.smoke-portable.ps1,smoke-launch-app.py). They add a TXT → HWPX → HWP → PDF round trip through rhwp, a check that the hook backend loads, and a check forErrorLinuxLoadBackendin the app log.ubuntu-22-04job (x64 + arm64) runs those smoke tests on the 24.04-built package with only 22.04 runtime packages installed.sudo apt install libxtst6 libxt6) instead of showing a raw code.Not verified locally
The Linux builds and the 22.04 smoke run for the first time in this PR's CI. Watch for:
-std=gnu2xand CMake 4.2.3 with extra-cmake-modules 5.92.--lockedand build time.Update: SharpHook 8.0.1
SharpHook 8.0.1 (released after this PR was opened, TolikPylypchuk/SharpHook#177) builds libuiohook for older glibc again. All twelve Linux libraries in its package (linux-x64/arm64/arm:
libuiohook.so,-x11,-xrecord,-wayland) need GLIBC_2.34 at most (build/check-elf-glibc.py --max 2.35).This PR now bumps SharpHook to 8.0.1 and drops the libuiohook source build:
uiohookcommand ofbuild/build-linux-native.pylinux-nativejob-UiohookOverrideinbuild/build-portable.ps1The Linux packages ship SharpHook's own native libraries again. Only rhwp (its release binary needs GLIBC_2.39) is still built from pinned source on Ubuntu 22.04 and passed in with
-RhwpOverride.The ELF glibc audit and the Ubuntu 22.04 x64/arm64 smoke job are unchanged. They still load the X11 hook back end on 22.04, so CI fails if a later SharpHook or engine update raises the glibc requirement again.
docs/ENGINES.mdsays what to do then.🤖 Generated with Claude Code