Skip to content

Commit

Permalink
linux/appimage: install meson and ninja from PyPI
Browse files Browse the repository at this point in the history
Some systems (e.g. Ubuntu 22.04, which we use to make the AppImage),
have ancient versions of meson and ninja, which is not good when we
have dependencies like PyGObject 3.47+ (and more recently, one of its
transitive dependencies, pycairo 1.27+) requiring a fairly recent
version of meson to be able to be built.

So, instead of relying on whatever meson/ninja version the current
system provides us with to make the AppImage, this change will simply
install up-to-date, official wheels of meson/ninja directly from PyPI.

This also allows us to finally unpin PyGObject's version.
  • Loading branch information
guihkx authored and DevilXD committed Sep 11, 2024
1 parent 9c58bef commit 49e8db9
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
2 changes: 2 additions & 0 deletions appimage/AppImageBuilder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ script:
- cp -r "$SOURCE_DIR/../lang" "$SOURCE_DIR/../icons" "$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"

# Create a virtual environment and install up-to-date versions of meson and ninja.
- python3 -m venv env && source ./env/bin/activate && python3 -m pip install meson ninja
# 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.
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
aiohttp>=3.9,<4.0
Pillow
pystray
PyGObject<3.47; sys_platform == "linux" # required for better system tray support on Linux
PyGObject; sys_platform == "linux" # required for better system tray support on Linux

# environment-dependent dependencies
pywin32; sys_platform == "win32"
Expand Down

0 comments on commit 49e8db9

Please sign in to comment.