mirror of
https://github.com/rangermix/TwitchDropsMiner.git
synced 2026-05-31 09:29:37 +00:00
Ubuntu 20.04 only has Python 3.8, and because the 'truststore' dependency requires at least Python 3.10, the AppImage package would need to bundle CA certificates from 'certifi' to make HTTPS requests work at all, which is quite an ugly workaround. Unfortunately, as a side effect, building on Ubuntu 22.04 increases the minimum required version of glibc from 2.31 to 2.35.
145 lines
4.5 KiB
YAML
145 lines
4.5 KiB
YAML
# Useful links:
|
|
# https://appimage-builder.readthedocs.io/en/latest/reference/recipe.html
|
|
|
|
version: 1
|
|
|
|
script:
|
|
# Clean up any previous builds.
|
|
- rm -rf "$BUILD_DIR" "$TARGET_APPDIR" || true
|
|
- mkdir -p "$BUILD_DIR" "$TARGET_APPDIR"
|
|
- cd "$BUILD_DIR"
|
|
|
|
# Build a recent version of libXft first. This fixes an issue where the app won't start with libXft 2.3.3 if an emoji font is installed on the system.
|
|
- curl -L https://xorg.freedesktop.org/releases/individual/lib/libXft-2.3.8.tar.xz -o libXft.tar.xz
|
|
- tar xvf libXft.tar.xz
|
|
- cd libXft-2.3.8
|
|
- ./configure --prefix="$TARGET_APPDIR/usr" --disable-static
|
|
- make -j$(nproc)
|
|
- make install-strip
|
|
|
|
# Package the app.
|
|
- mkdir -p "$TARGET_APPDIR"/usr/{src,share/icons/hicolor/128x128/apps}
|
|
- cp -r "$SOURCE_DIR/../lang" "$SOURCE_DIR/../pickaxe.ico" "$SOURCE_DIR"/../*.py "$TARGET_APPDIR/usr/src"
|
|
- cp "$SOURCE_DIR/pickaxe.png" "$TARGET_APPDIR/usr/share/icons/hicolor/128x128/apps/io.github.devilxd.twitchdropsminer.png"
|
|
|
|
# Install requirements.
|
|
- python3 -m pip install --ignore-installed --prefix=/usr --root="$TARGET_APPDIR" -r "$SOURCE_DIR/../requirements.txt" certifi
|
|
# Generate byte-code files beforehand, for slightly faster app startup.
|
|
- python3 -m compileall "$TARGET_APPDIR/usr/src/"*.py
|
|
|
|
AppDir:
|
|
app_info:
|
|
id: io.github.devilxd.twitchdropsminer
|
|
name: Twitch Drops Miner
|
|
icon: io.github.devilxd.twitchdropsminer
|
|
version: '{{APP_VERSION}}'
|
|
exec: usr/bin/python3
|
|
exec_args: '${APPDIR}/usr/src/main.py $@'
|
|
|
|
apt:
|
|
arch: amd64
|
|
sources:
|
|
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy main universe
|
|
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-updates main universe
|
|
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-backports main universe
|
|
- sourceline: deb http://archive.ubuntu.com/ubuntu/ jammy-security main universe
|
|
key_url: http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920D1991BC93C
|
|
|
|
include:
|
|
- gir1.2-appindicator3-0.1
|
|
- python3-tk
|
|
|
|
exclude:
|
|
- adwaita-icon-theme
|
|
- dconf-service
|
|
- glib-networking-services
|
|
- gsettings-desktop-schemas
|
|
- hicolor-icon-theme
|
|
- humanity-icon-theme
|
|
- libavahi-client3
|
|
- libavahi-common3
|
|
- libbrotli1
|
|
- libcolord2
|
|
- libcups2
|
|
- libdb5.3
|
|
- libdconf1
|
|
- libgmp10
|
|
- libgnutls30
|
|
- libgssapi-krb5-2
|
|
- libhogweed5
|
|
- libicu66
|
|
- libjson-glib-1.0-0
|
|
- libk5crypto3
|
|
- libkrb5-3
|
|
- libkrb5support0
|
|
- liblcms2-2
|
|
- libncursesw6
|
|
- libnettle7
|
|
- libp11-kit0
|
|
- libpangoxft-1.0-0
|
|
- libpsl5
|
|
- librest-0.7-0
|
|
- libsoup2.4-1
|
|
- libsoup-gnome2.4-1
|
|
- libsqlite3-0
|
|
- libtasn1-6
|
|
- libtiff5
|
|
- libtinfo6
|
|
- libunistring2
|
|
- libwebp6
|
|
- libxft2 # We'll ship our own, updated version of this library.
|
|
- libxml2
|
|
- mime-support
|
|
- readline-common
|
|
- tzdata
|
|
- xkb-data
|
|
|
|
files:
|
|
exclude:
|
|
- etc
|
|
- usr/bin/normalizer
|
|
- usr/bin/pdb3*
|
|
- usr/bin/py3*
|
|
- usr/bin/pydoc*
|
|
- usr/bin/pygettext3*
|
|
- usr/include
|
|
# The next 2 files come from our own build of libXft, and they can be removed.
|
|
- usr/lib/libXft.la
|
|
- usr/lib/pkgconfig
|
|
- usr/lib/python3.9
|
|
- usr/lib/valgrind
|
|
- usr/lib/*-linux-gnu/engines-1.1
|
|
- usr/lib/*-linux-gnu/glib-2.0
|
|
- usr/lib/*-linux-gnu/gtk-3.0
|
|
- usr/lib/*-linux-gnu/libgtk-3.0
|
|
- usr/share/applications
|
|
- usr/share/binfmts
|
|
- usr/share/bug
|
|
- usr/share/doc
|
|
- usr/share/doc-base
|
|
- usr/share/glib-2.0
|
|
- usr/share/lintian
|
|
- usr/share/man
|
|
- usr/share/pixmaps
|
|
- usr/share/python3
|
|
- usr/share/themes
|
|
|
|
runtime:
|
|
env:
|
|
PATH: '${APPDIR}/usr/bin:${PATH}'
|
|
PYTHONHOME: '${APPDIR}/usr'
|
|
PYTHONPATH: '${APPDIR}/usr/lib/python3.10/tkinter:${APPDIR}/usr/lib/python3.10/site-packages'
|
|
APPDIR_LIBRARY_PATH: '${APPDIR}/usr/lib:${APPDIR}/usr/lib/x86_64-linux-gnu:${APPDIR}/lib/x86_64-linux-gnu'
|
|
TCL_LIBRARY: '${APPDIR}/usr/share/tcltk/tcl8.6'
|
|
TK_LIBRARY: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6'
|
|
TKPATH: '${APPDIR}/usr/lib/tcltk/x86_64-linux-gnu/tk8.6'
|
|
# The app seems to have problems running on Wayland at the moment.
|
|
# See: https://github.com/DevilXD/TwitchDropsMiner/issues/321
|
|
GDK_BACKEND: x11
|
|
|
|
AppImage:
|
|
arch: x86_64
|
|
file_name: Twitch.Drops.Miner-x86_64.AppImage
|
|
sign-key: None
|
|
update-information: guess
|