Skip to content

Commit c1f1379

Browse files
committed
fix
1 parent ae4339f commit c1f1379

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

docker/make_appdir.sh

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@ mkdir -p AppDir/usr/bin AppDir/usr/lib AppDir/usr/libexec \
88
cp bin/lem AppDir/usr/libexec/lem.real
99
chmod +x AppDir/usr/libexec/lem.real
1010

11-
# 起動ラッパー(シェル)
11+
# 起動ラッパー(シェル): 実体を起動するだけ(環境変数の設定は AppRun で行う)
1212
cat > AppDir/usr/bin/run-lem <<'EOF'
1313
#!/usr/bin/env bash
1414
APPDIR="${APPDIR:-$(dirname "$(readlink -f "$0")")/..}"
15-
export LD_LIBRARY_PATH="$APPDIR/usr/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
1615
exec "$APPDIR/usr/libexec/lem.real" "$@"
1716
EOF
1817
chmod +x AppDir/usr/bin/run-lem
@@ -24,15 +23,45 @@ cp bin/*.so* AppDir/usr/lib/ || true
2423
sed -E 's/^Exec=.*/Exec=run-lem %F/' resources/lem.desktop > AppDir/lem.desktop
2524
cp 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

Comments
 (0)