Repository navigation
Expand file tree
/
Copy pathmake_appimage.sh
More file actions
executable file
·76 lines (58 loc) · 2.08 KB
/
Copy pathmake_appimage.sh
File metadata and controls
executable file
·76 lines (58 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
set -e
# ===[ SETUP ]===
APPDIR=~/AppImageBuild/electrumsv-appdir
PYTHON_DIR=~/AppImageBuild/python-3.9.13
VENV_DIR=~/AppImageBuild/py39-venv
SRC_DIR=~/AppImageBuild/electrumsv
ICON_PATH=~/Downloads/electrumsvicon.png
APP=electrumsv
APP_EXEC=electrum-sv
APP_VERSION=1.3.16
APPIMAGE_NAME=ElectrumSV-${APP_VERSION}-x86_64.AppImage
mkdir -p "$APPDIR/usr/bin" "$APPDIR/usr/lib" "$APPDIR/usr/share/applications"
echo "[INFO] Using AppDir: $APPDIR"
# ===[ COPY PYTHON + VENV ]===
echo "[INFO] Copying Python 3.9.13 and virtual environment..."
cp -a "$VENV_DIR" "$APPDIR/usr/venv"
# ===[ Install ElectrumSV into venv ]===
echo "[INFO] Installing ElectrumSV into venv..."
source "$APPDIR/usr/venv/bin/activate"
pip install --no-deps "$SRC_DIR"
deactivate
# ===[ Desktop entry + icon ]===
echo "[INFO] Setting up desktop integration..."
cat > "$APPDIR/$APP.desktop" <<EOF
[Desktop Entry]
Name=ElectrumSV
Exec=$APP_EXEC
Icon=$APP
Type=Application
Categories=Finance;
EOF
cp "$ICON_PATH" "$APPDIR/$APP.png"
# ===[ AppRun launcher script ]===
cat > "$APPDIR/AppRun" << 'EOF'
#!/bin/bash
HERE="$(dirname "$(readlink -f "$0")")"
export PYTHONHOME="$HERE/usr/venv"
export PYTHONPATH="$PYTHONHOME/lib/python3.9/site-packages"
export LD_LIBRARY_PATH="$HERE/usr/lib:$LD_LIBRARY_PATH"
exec "$PYTHONHOME/bin/python3" -m electrumsv "$@"
EOF
chmod +x "$APPDIR/AppRun"
# ===[ Bundle shared libs (manual or optional)] ===
# Optionally copy necessary .so libraries (libxcb, libGL, etc.) to $APPDIR/usr/lib
# ===[ Final packaging with appimagetool ]===
# TEMPORARY echo "[INFO] Creating AppImage..."
mkdir -p ~/AppImageBuild/tools
cd ~/AppImageBuild/tools
if [ ! -f appimagetool ]; then
wget -O appimagetool https://github.com/AppImage/AppImageKit/releases/download/13/appimagetool-x86_64.AppImage
chmod +x appimagetool
fi
# ===[ Final packaging with appimagetool ]===
echo "[INFO] Creating AppImage with fallback support (no FUSE2)..."
export APPIMAGE_EXTRACT_AND_RUN=1
~/AppImageBuild/tools/appimagetool-v7 "$APPDIR" ~/AppImageBuild/$APPIMAGE_NAME
echo "[✅ DONE] AppImage created at: ~/AppImageBuild/$APPIMAGE_NAME"