Add ability to build GTK app AppImage (#240)

#238 Add AppImage build support

Implements

- Downgrade to libadwaita 1.3 for wider distro support
- Add build script, workflow, and docs for AppImage
- Add build docs for Debian (apt) and Void Linux
- Building AppImage in CI
This commit is contained in:
David Zhong 2024-02-15 19:27:14 -08:00 committed by GitHub
parent 44ecf042a3
commit ab73183b2b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 311 additions and 147 deletions

View file

@ -1,22 +1,79 @@
# Linux GTK App Getting Started
Currently, the GTK App can be built as a binary or as an AppImage.
Note that the flatpak version can compile but will not run properly!
## Dependencies
### Install Build Dependencies
<details>
<summary>Fedora</summary>
<summary>Debian</summary>
1. Install build dependencies
> Note: Burrow currently cannot compile on Debian Stable (Bookworm) due to its outdated dependencies
1. Install build dependencies
```
sudo dnf install clang ninja cmake meson gtk4-devel glib2-devel libadwaita-devel desktop-file-utils libappstream-glib
sudo apt install -y clang meson cmake pkg-config libgtk-4-dev libadwaita-1-dev gettext desktop-file-utils
```
2. Install flatpak builder (Optional)
```
sudo dnf install flatpak-builder
sudo apt install -y flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo apt install -y wget fuse file
```
</details>
<details>
<summary>Fedora</summary>
1. Install build dependencies
```
sudo dnf install -y clang ninja-build cmake meson gtk4-devel glib2-devel libadwaita-devel desktop-file-utils libappstream-glib
```
2. Install flatpak builder (Optional)
```
sudo dnf install -y flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo dnf install -y util-linux wget fuse fuse-libs file
```
</details>
<details>
<summary>Void Linux (glibc)</summary>
1. Install build dependencies
```
sudo xbps-install -Sy gcc clang meson cmake pkg-config gtk4-devel gettext desktop-file-utils gtk4-update-icon-cache appstream-glib
```
2. Install flatpak builder (Optional)
```
sudo xbps-install -Sy flatpak-builder
```
3. Install AppImage build tools (Optional)
```
sudo xbps-install -Sy wget fuse file
```
</details>
@ -51,10 +108,10 @@ flatpak install --user \
<details>
<summary>Flatpak</summary>
1. Compile and install the flatpak
1. Compile and install the flatpak
```
flatpak-builder
flatpak-builder
--user --install --force-clean --disable-rofiles-fuse \
flatpak_debug/ \
burrow-gtk/build-aux/com.hackclub.burrow.devel.json
@ -62,6 +119,23 @@ flatpak install --user \
</details>
<details>
<summary>AppImage</summary>
1. Enter the `burrow-gtk`
```bash
cd burrow-gtk
```
2. Compile the AppImage
```
./build-aux/build_appimage.sh
```
</details>
## Running
@ -83,3 +157,14 @@ flatpak install --user \
```
</details>
<details>
<summary>AppImage</summary>
The compiled binary can be found in `build-appimage/Burrow-*.AppImage`.
```
./build-appimage/Burrow-*.AppImage
```
</details>