Skip to content

Commit fef8c43

Browse files
romgrkclaude
andcommitted
docs: flatpak gotcha — runtime API surface vs dev machine
A rolling-release host can expose introspected names an older GNOME runtime doesn't (glib 2.88 introspects g_unix_signal_add_full as GLibUnix.signalAdd; the GNOME 49 runtime's glib 2.86 exposes signalAddFull). Document the version-tolerant lookup pattern and the one-liner to get a node REPL inside the sandbox. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 7212b35 commit fef8c43

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

doc/bundling.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,21 @@ Defaults grant only GUI access (`wayland`, `fallback-x11`, `ipc`, `dri`) —
197197
network and filesystem are deliberately opt-in; request the minimum, Flathub
198198
reviews it.
199199

200-
Two things that bite:
200+
Three things that bite:
201201

202202
- **The flatpak id must equal your `Gtk.Application` `applicationId`**
203203
otherwise GNOME Shell can't associate windows with the app (generic icon,
204204
wrong dock entry).
205205
- The sandbox has no host filesystem by default: `fs` reads outside the
206206
sandbox need `--filesystem=` permissions, or better, the XDG portals.
207+
- **The API surface follows the runtime's libraries, not your dev
208+
machine's.** A rolling-release host can expose introspected names a
209+
slightly older GNOME runtime doesn't (e.g. glib ≥2.88 introspects
210+
`g_unix_signal_add_full` as `GLibUnix.signalAdd`; the GNOME 49 runtime's
211+
glib 2.86 calls it `signalAddFull`). Write version-tolerant lookups
212+
(`GLibUnix.signalAdd ?? GLibUnix.signalAddFull`) and test inside the
213+
sandbox — a node REPL against the runtime is one command:
214+
`flatpak run --command=/app/bin/node <your.app.Id>`.
207215

208216
## Shipping on Flathub
209217

0 commit comments

Comments
 (0)