@@ -8,11 +8,10 @@ mkdir -p AppDir/usr/bin AppDir/usr/lib AppDir/usr/libexec \
88cp bin/lem AppDir/usr/libexec/lem.real
99chmod +x AppDir/usr/libexec/lem.real
1010
11- # 起動ラッパー(シェル)
11+ # 起動ラッパー(シェル): 実体を起動するだけ(環境変数の設定は AppRun で行う)
1212cat > AppDir/usr/bin/run-lem << 'EOF '
1313#!/usr/bin/env bash
1414APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")/..}"
15- export LD_LIBRARY_PATH="$APPDIR/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
1615exec "$APPDIR/usr/libexec/lem.real" "$@"
1716EOF
1817chmod +x AppDir/usr/bin/run-lem
@@ -24,15 +23,45 @@ cp bin/*.so* AppDir/usr/lib/ || true
2423sed -E ' s/^Exec=.*/Exec=run-lem %F/' resources/lem.desktop > AppDir/lem.desktop
2524cp resources/lem.png AppDir/lem.png
2625
27- # ★ --executable は渡さない!
26+ # ★ --executable は渡さない!(SBCL 実体を触らせない)
2827/usr/local/bin/linuxdeploy-x86_64.AppImage \
2928 --appdir AppDir \
3029 --desktop-file AppDir/lem.desktop \
3130 --icon-file AppDir/lem.png
3231
33- # 念のため:AppRun が symlink になっているか確認。なければ自前で置く
34- if [ ! -e AppDir/AppRun ]; then
35- ln -sf usr/bin/run-lem AppDir/AppRun
36- fi
32+ # linuxdeploy が作った AppRun(symlink)を自前スクリプトで置き換える
33+ rm -f AppDir/AppRun
34+ cat > AppDir/AppRun << 'EOF '
35+ #!/usr/bin/env bash
36+ set -e
37+ APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")}"
38+
39+ # AppImage 同梱の .so を優先
40+ export LD_LIBRARY_PATH="$APPDIR/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
41+
42+ # WebKitGTK の helper プロセス (WebKitNetworkProcess, WebKitWebProcess) の場所を検出
43+ for d in \
44+ /usr/lib/x86_64-linux-gnu/webkit2gtk-4.1 \
45+ /usr/lib64/webkit2gtk-4.1 \
46+ /usr/lib/webkit2gtk-4.1 \
47+ /usr/lib64/webkit2gtk-41 \
48+ /usr/lib/webkit2gtk-41
49+ do
50+ if [ -x "$d/WebKitNetworkProcess" ] && [ -x "$d/WebKitWebProcess" ]; then
51+ export WEBKIT_EXEC_PATH="$d"
52+ break
53+ fi
54+ done
55+
56+ # Fedora/openSUSE などで必要になることがある Gio モジュール
57+ mods=""
58+ [ -d /usr/lib64/gio/modules ] && mods="/usr/lib64/gio/modules"
59+ [ -d /usr/lib/x86_64-linux-gnu/gio/modules ] && mods="${mods:+$mods:}/usr/lib/x86_64-linux-gnu/gio/modules"
60+ [ -n "$mods" ] && export GIO_EXTRA_MODULES="${mods}${GIO_EXTRA_MODULES:+:$GIO_EXTRA_MODULES}"
61+
62+ exec "$APPDIR/usr/bin/run-lem" "$@"
63+ EOF
64+ chmod +x AppDir/AppRun
3765
66+ # パッケージ化
3867/usr/local/bin/appimagetool-x86_64.AppImage AppDir
0 commit comments