Skip to content

Commit

Permalink
build appimage with static runtime
Browse files Browse the repository at this point in the history
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
  • Loading branch information
lievenhey committed Jan 23, 2024
1 parent 1ceac8a commit cd4518d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
6 changes: 6 additions & 0 deletions scripts/appimage/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,12 @@ RUN cd /opt && git clone --recursive https://github.com/KDAB/KDDockWidgets.git -
cd KDDockWidgets && mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=/usr -DKDDockWidgets_EXAMPLES=0 -DKDDockWidgets_FRONTENDS="qtwidgets" .. && \
make -j && make install && cd /opt && rm -Rf KDDockWidgets

RUN wget https://github.com/AppImage/type2-runtime/releases/download/continuous/runtime-x86_64 && \
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage && \
chmod +x appimagetool-x86_64.AppImage && mv appimagetool-x86_64.AppImage /usr/bin/ && \
mv runtime-x86_64 /opt/ && \
yum install -y desktop-file-utils

FROM intermediate

WORKDIR /
Expand Down
5 changes: 4 additions & 1 deletion scripts/appimage/build_appimage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

mv Hotspot-x86_64.AppImage "/output/hotspot-$gitversion-x86_64.AppImage"

0 comments on commit cd4518d

Please sign in to comment.