AppImage: increase compatibility & add tests #17
Merged
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.
This PR aims to improve the compatibility of created AppImages.
Current Problems
The current AppImages are based on Ubuntu LTS releases Jammy and Noble. They crash on some environments, at least:
The commented environment requires an AppImage build based on Ubuntu Lunar while Lunar is EOL.
Causes
The crashes have different causes:
The AppImage documentation explains some concepts which are important for compatibility, e.g.:
The current AppImages are not based on these concepts.
Solutions
Library exclusions have been revisited.
According to the first concept ("Build on old systems"), additional AppImages are built for popular Debian-based distributions:
The build contains a test job that runs sc-controller with the existing
check-dependency
argument. A build success now means that a) all required dependencies are part of the AppImage and b) the libraries are compatible to the host systems (at least to the extent ofcheck-dependency
). The test job runs in a Docker container for several popular linux distributions:Implementation notes
/lib64
directory in Ubuntu Noble.AppImageBuilder.yml
because no apt packagepython3-vdf
exists for these distributions. When they run EOL, these extra files can be deleted.amd64
arch only (I didn't figure out how to run them onarm64
).Known issues
There's an open compatibility issue concerning the AppImages for newer AppImages (primarily Ubuntu Noble & Debian Trixie). They cause a segmentation fault on most distributions. The test job knows about this issue and does not fail. Here is the summary of some manual and CI tests:
The segmentation fault occurs in
ld-linux-x86-64.so.2
(part of glibc) loaded by thepython3
process. The kernel reports