From 97fc9c7061a95646acf78fc8f2b5797b6b07bdf7 Mon Sep 17 00:00:00 2001 From: deepend Date: Sun, 22 Feb 2026 09:59:16 -0700 Subject: [PATCH] Updated the AppImage CI workflow to explicitly verify built-in plugin .so files are present in AppDir after install, checking checksum, fishlim, lua, perl, python, and sysinfo (and therefore excluding the Windows updater plugin from required Linux AppImage contents). Updated the generated AppRun script to set ZOITECHAT_LIBDIR to the bundled plugin directory inside the AppImage (usr/lib/x86_64-linux-gnu/zoitechat/plugins with fallback to usr/lib/zoitechat/plugins) so plugin discovery resolves correctly at runtime from the AppImage payload. --- .github/workflows/appimage-build.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/appimage-build.yml b/.github/workflows/appimage-build.yml index fde6780b..3ecee2b3 100644 --- a/.github/workflows/appimage-build.yml +++ b/.github/workflows/appimage-build.yml @@ -61,6 +61,17 @@ jobs: rm -rf AppDir DESTDIR="${PWD}/AppDir" ninja -C build install + - name: Verify bundled plugins + run: | + set -eux + + # Include every built-in plugin except the Windows-only update plugin. + find AppDir/usr/lib -maxdepth 4 -type f -name '*.so' -path '*/zoitechat/plugins/*' -print | sort + + for plugin in checksum fishlim lua perl python sysinfo; do + find "AppDir/usr/lib" -maxdepth 4 -type f -name "${plugin}.so" -path '*/zoitechat/plugins/*' -print -quit | grep -q . + done + - name: Build AppImage env: APPIMAGE_EXTRACT_AND_RUN: 1 @@ -91,6 +102,12 @@ jobs: export LD_LIBRARY_PATH="$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH:-}" export XDG_DATA_DIRS="$APPDIR/usr/share:${XDG_DATA_DIRS:-/usr/local/share:/usr/share}" + if [ -d "$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" ]; then + export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/x86_64-linux-gnu/zoitechat/plugins" + elif [ -d "$APPDIR/usr/lib/zoitechat/plugins" ]; then + export ZOITECHAT_LIBDIR="$APPDIR/usr/lib/zoitechat/plugins" + fi + if [ -d "$APPDIR/usr/share/glib-2.0/schemas" ]; then export GSETTINGS_SCHEMA_DIR="$APPDIR/usr/share/glib-2.0/schemas${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}" fi