From be3de5a4ce8a728c9d9488cc27ab95aa623e62a2 Mon Sep 17 00:00:00 2001 From: jwinterm Date: Fri, 19 Jun 2026 07:04:38 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20bundle=20QtQml.WorkerScript=20in=20AppIm?= =?UTF-8?q?age=20=E2=80=94=20qmlimportscanner=20skips=20qmldir=20transitiv?= =?UTF-8?q?e=20'depends',=20so=20copy=20QtQml=20tree=20in=20explicitly=20b?= =?UTF-8?q?etween=20linuxdeploy=20populate=20+=20appimagetool=20package?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e0cfe18a..83072fd1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -59,11 +59,20 @@ jobs: export EXTRA_QT_PLUGINS="svg;multimedia;tls" export QML_SOURCES_PATHS="$PWD/src/assets/qml" export PATH="$PWD:$PATH" + # Populate AppDir (libs + Qt plugins + QML modules) — no --output yet, so we can patch QML first. ./linuxdeploy --appdir AppDir --plugin qt \ -d AppDir/usr/share/applications/wowlet.desktop \ - -i AppDir/usr/share/icons/hicolor/256x256/apps/wowlet.png \ - --output appimage - mv *.AppImage wowlet-x86_64.AppImage 2>/dev/null || true + -i AppDir/usr/share/icons/hicolor/256x256/apps/wowlet.png + # qmlimportscanner doesn't follow qmldir `depends`, so QtQuick's transitive QtQml.WorkerScript + # (+ QtQml.Models) get skipped. Copy the whole installed QtQml tree in explicitly. + QMLDIR=$(qmake6 -query QT_INSTALL_QML) + mkdir -p AppDir/usr/qml + cp -rn "$QMLDIR/QtQml" AppDir/usr/qml/ 2>/dev/null || true + ls AppDir/usr/qml/QtQml/ | sed 's/^/ bundled QtQml submodule: /' + # Package (linuxdeploy already wrote AppRun + .desktop + .DirIcon into AppDir root). + curl -sL -o appimagetool https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage + chmod +x appimagetool + ARCH=x86_64 ./appimagetool AppDir wowlet-x86_64.AppImage ls -la wowlet-x86_64.AppImage - name: upload wowlet AppImage uses: actions/upload-artifact@v4