-
Notifications
You must be signed in to change notification settings - Fork 257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
build appimage with static runtime #600
base: master
Are you sure you want to change the base?
Conversation
@GitMensch since you seem to have access to a non glibc system (unlike me) can you test if the appimage works there? I can confirm it works on |
f732996
to
1ea5ea8
Compare
1ea5ea8
to
cd4518d
Compare
@milianw I applied your changes. I will push an update once I build the docker container. |
Rechecked old appimage on Alpine:
new one:
Note: I do get the same error message on Debian, while the old one worked :-(
One of the nice things: the new one is around 12% smaller than the old one. |
This allows the user to run the appimage on non fuse2 systems (all moderns systems use fuse3). This is achieved by using the static appimage runtime. Since linuxdeploy doesn't support changing the runtime I only use it to create the appdir directory. Then I use the original appimagetool to package the appimage using the static runtime. This should also make it possible to run the appimage on a non glibc system but I don't have access to one so I can't test it. fixes: #485
cd4518d
to
2a27d2a
Compare
note: the Debian one has libfuse2 installed, the Alpine environment no libfuse, seems the static part of this is missing. |
Test results so far: all cleans installs (except Arch Linux CentOS 7 and Alpine where I installed kde) |
Do you have any idea why the previous appimage works fine on my Debian 11.8, but the one from this one fails with a fuse error (and my Alpine experiencing the exact same thing)? |
Alpine has lots of unresolved symbols, debian no idea |
Until we find out why that appimage does not run on environments it previously did, I suggest to mark this PR as draft. |
@@ -74,4 +74,7 @@ linuxdeploy-x86_64.AppImage --appdir appdir --plugin qt \ | |||
-d "./appdir/usr/share/applications/com.kdab.hotspot.desktop" \ | |||
--output appimage | |||
|
|||
mv Hotspot*x86_64.AppImage "/output/hotspot-$gitversion-x86_64.AppImage" | |||
# package appdir with type 2 runtime so we don't depend on glibc and fuse2 | |||
appimagetool-x86_64.AppImage --runtime-file /opt/runtime-x86_64 appdir |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't quite get it - isn't the linuxdeploy --output appimage
command above already creating an AppImage? I think that should be changed, no? We should only create on AppImage. AFAIR linuxdeploy
can just create the AppDir (maybe just remove the --output appimage
?) and then we can run appimagetool here next
@@ -43,7 +43,7 @@ RUN sed -i 's#enabled=1#enabled=0#' /etc/yum/pluginconf.d/fastestmirror.conf && | |||
# kgraphviewer | |||
boost boost-devel graphviz-devel \ | |||
# appimages | |||
fuse fuse-libs bzip2 && \ | |||
fuse fuse-libs bzip2 desktop-file-utils && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
out of interest: what is this required for?
Rechecked this PRs appimage on updated Debian 11.9: still getting
while the appimage outside of this PR works fine. I really like to have the appimage be more portable, including to non-glibc Linux environments, but until this is solved we likely should mark it as draft. |
This allows the user to run the appimage on non fuse2 systems (all moderns systems use fuse3). This is achieved by using the static appimage runtime. Since linuxdeploy doesn't support changing the runtime I only use it to create the appdir directory. Then I use the original appimagetool to package the appimage using the static runtime.
This should also make it possible to run the appimage on a non glibc system but I don't have access to one so I can't test it.
fixes: #485