Document GTK4 blocker in README and devel-setup.sh

Tauri v2's Linux backend hard-depends on GTK3 + webkit2gtk-4.1; GTK4
support is tracked upstream (tauri#7335, tao#1104, wry#1228) but
unmerged with no ETA. Note this so it isn't re-investigated from
scratch later.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 19:49:50 -05:00
parent 399c628461
commit 131554532a
2 changed files with 15 additions and 7 deletions

View File

@@ -31,6 +31,14 @@ Both default to the OS app-data dir (e.g. `~/.local/share/com.garrettmills.mtgc/
npm install # frontend deps
```
> **Why GTK3, not GTK4?** Tauri v2's Linux backend (`wry`/`tao`) hard-depends on
> GTK3 + `webkit2gtk-4.1`; there's no GTK4/webkitgtk-6.0 option yet. GTK4 support is
> tracked upstream but unmerged with no ETA:
> [tauri#7335](https://github.com/tauri-apps/tauri/issues/7335),
> [tao#1104](https://github.com/tauri-apps/tao/pull/1104),
> [wry#1228](https://github.com/tauri-apps/wry/issues/1228). Revisit once Tauri
> ships GTK4 support (likely Tauri v3).
## Run
```bash
@@ -63,24 +71,19 @@ Outputs (under the workspace `target/release/`):
libraries (`webkit2gtk4.1`, `gtk3`), so those must be present on the machine that
runs it — they are on any modern desktop Linux and are installed by
`devel-setup.sh`.
- **`target/release/bundle/appimage/*.AppImage`** — a single portable file that
bundles the app together with its runtime. This is the closest thing to a
download-and-run **single self-contained binary**: `chmod +x` it and run.
**Recommended** for copying to another machine.
- **`target/release/bundle/rpm/*.rpm`** and **`.../deb/*.deb`** — native installers
(Fedora / Debian-based) that add a menu entry and icon.
Useful variants:
```bash
cargo tauri build --bundles appimage # only the portable AppImage, skip installers
cargo tauri build --no-bundle # only the bare target/release/mtgc-app binary
```
Notes:
- On Linux the truly portable single file is the **AppImage**; the bare `mtgc-app`
binary is also a single file but relies on the system WebKit/GTK libs.
- The `mtgc-app` binary is a single file but relies on the system WebKit/GTK libs
being present (installed by `devel-setup.sh`).
- The binary does **not** embed card data — first run still downloads the Scryfall
bulk into the OS app-data dir, and your synced `library.db` lives there by default
(override with *Choose library file…*).

View File

@@ -33,6 +33,11 @@ else
fi
# --- 2. Tauri v2 system libraries (Fedora / dnf) ---------------------------
#
# These are GTK3 packages by necessity, not choice: Tauri v2's Linux backend
# (wry/tao) hard-depends on GTK3 + webkit2gtk-4.1. GTK4 support is tracked
# upstream but unmerged with no ETA — see the README's "Why GTK3, not GTK4?"
# note (tauri#7335, tao#1104, wry#1228) before "fixing" this in isolation.
FEDORA_PKGS=(
webkit2gtk4.1-devel