Commit Graph
15 Commits
Author SHA1 Message Date
guihkx 9e9ac04b7f ci/linux: use git version of appimage-builder
appimage-builder is a tool that is not officially part of the AppImage
ecosystem, and lately its maintainer hasn't been able to keep up with
the latest AppImage ideas, most notably:

- The move to a new statically-linked runtime: Before this, all AppImages
using the old runtime, would depend on libfuse2 to be installed on the
host system just to be able to run out of the box. This wasn't much of
a problem back then, because libfuse2 was ubiquitous. However, nowadays,
some have distros don't even have it in their official repositories.
- The removal of the xz compression algorithm (used by default), and the
addition of Zstd.

Luckily, the problems above have been fixed in the git version of
appimage-builder, but a stable release is yet to be made, so we'll have
to use the git version, because other AppImage-making tools are not as
nice and convenient as appimage-builder.
2025-07-26 23:40:01 +02:00
guihkx f33486aac6 linux/appimage: manually download the runtime to fix build error
This manually downloads the old AppImage runtime (now marked as
obsolete), to prevent appimage-builder v1.1.0 from failing to make the
AppImage.

The download URL appimage-builder v1.1.0 uses for the AppImage runtime
is hardcoded into the tool, and unfortunately it's been recently
removed, so this is merely a workaround, until hopefully a future
appimage-builder release fixes this.

See: https://redirect.github.com/AppImageCrafters/appimage-builder/issues/375
2025-07-24 07:26:16 +02:00
biast12andGuilherme Silva 82654680f6 Linux: Move to Ayatana's AppIndicator
The reference AppIndicator implementation has been deprecated/abandoned in newer distros.

Co-Authored-By: Guilherme Silva <626206+guihkx@users.noreply.github.com>
2024-12-31 21:05:35 +01:00
guihkx 49e8db9e22 linux/appimage: install meson and ninja from PyPI
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.
2024-09-11 11:47:05 +02:00
DevilXD 35c46c2b78 Implement a dynamic tray icon status picture 2024-07-01 21:20:27 +02:00
guihkx 3897a8bccf ci/linux: build AppImage on Ubuntu 22.04 (Python 3.10)
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.
2024-01-22 23:29:38 +01:00
guihkx 6e5fee7103 linux/appimage: generate byte-code files and package them
This makes the app start slightly faster, as byte-code files won't need
to be generated every time users run the app.

https://docs.python.org/3.10/library/compileall.html
2024-01-22 23:29:38 +01:00
DevilXD 9c0318dab1 Fix missing certifi certificate 2024-01-21 09:48:45 +01:00
DevilXD 9e18c1ab20 Revert AppImage back to using 3.8 2024-01-20 18:39:42 +01:00
DevilXD 0d72f1ebea Install requirements via the 3.10 version 2024-01-20 11:42:36 +01:00
DevilXD 0df7d9e57f Yet another attempt at passing env vars to the script 2024-01-20 11:16:43 +01:00
DevilXD aede883062 Try a different env var reference syntax 2024-01-20 11:12:50 +01:00
DevilXD 0a4bef728e Switch back to ubuntu-20.04 runners, fix AppImage builder exec 2024-01-20 11:09:06 +01:00
DevilXD 8cfa43b52b Make AppImage build python-version independent 2024-01-19 20:06:56 +01:00
guihkx a31fa375c9 linux: add support for AppImage packages
AppImage is a more flexible packaging solution for Linux than what
PyInstaller currently offers.

Some of the benefits are:

- Ability to ship the app with predefined environment variables
(solving issues like #321)
- Improved integration with the desktop environment (if you're using
go-appimage[1] or libappimage[2])
- Much lighter in size (~27 MB difference)

To actually make the AppImage, I'm using appimage-builder[3], which
makes the process a bit easier.

For more details about the AppImage technology, check out their
website[4].

[1] https://github.com/probonopd/go-appimage
[2] https://github.com/AppImageCommunity/libappimage
[3] https://appimage-builder.readthedocs.io/en/latest/index.html
[4] https://appimage.org/
2023-11-16 20:36:25 +01:00