Bundle Poncho Wonky (Patchwork 5.4.0) for x86_64 and aarch64 on the 24.08 freedesktop runtime with the Electron BaseApp. Launcher forces Wayland when a socket is present so the app starts from terminals outside the desktop session. Pinned versions and checksums live in versions.sh and are validated by check-versions.sh.
4.8 KiB
Patchwork Flatpak
Flatpak packaging for Poncho Wonky, the
Secure Scuttlebutt (SSB) desktop client. This is a release-wrapper Flatpak:
it repackages the official upstream tar.gz build from the
GitHub releases page instead of
building from source, so no native modules are recompiled inside the sandbox.
The packaging files in this repository (manifest, launcher, build scripts) are
licensed under CC0-1.0 (see LICENSE). The packaged application itself remains
AGPL-3.0, as declared in nz.scuttlebutt.Patchwork.metainfo.xml.
Layout
| File | Purpose |
|---|---|
nz.scuttlebutt.Patchwork.yaml |
flatpak-builder manifest |
patchwork.sh |
Launcher that runs the app through zypak-wrapper (Electron sandbox) |
nz.scuttlebutt.Patchwork.metainfo.xml |
AppStream metadata for software centers |
build.sh |
One-shot build + install helper |
flathub.json |
Flathub build config |
Prerequisites
On Debian/Ubuntu:
sudo apt install flatpak flatpak-builder
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
Alternatively, flatpak-builder can be installed as a Flatpak:
flatpak install flathub org.flatpak.Builder
If you use org.flatpak.Builder, you'll need to run builds with:
flatpak run --command=flatpak-builder org.flatpak.Builder \
--repo=repo --force-clean build-dir nz.scuttlebutt.Patchwork.yaml
Build and install
./build.sh
or manually:
flatpak install -y flathub \
org.freedesktop.Platform//24.08 \
org.freedesktop.Sdk//24.08 \
org.electronjs.Electron2.BaseApp//24.08
flatpak-builder --repo=repo --force-clean build-dir nz.scuttlebutt.Patchwork.yaml
flatpak --user remote-add --if-not-exists --no-gpg-verify patchwork-repo repo
flatpak --user install -y patchwork-repo nz.scuttlebutt.Patchwork
Run it:
flatpak run nz.scuttlebutt.Patchwork
The launcher (patchwork.sh) forces Electron onto Wayland whenever a Wayland
socket is available, so it also works from terminals that are not part of the
desktop session (local TTY, SSH) where DISPLAY/WAYLAND_DISPLAY would
otherwise be unset and Electron would fail with Missing X server or $DISPLAY.
On X11-only systems it falls back to Electron's default X11 platform.
Updating to a new release
All pinned versions live in versions.sh. Bump the app version first:
-
Note the new version tag (e.g.
v5.5.0) and download the new assets:wget https://github.com/soapdog/patchwork/releases/download/v5.5.0/ponchowonky-5.5.0.tar.gz wget https://github.com/soapdog/patchwork/releases/download/v5.5.0/ponchowonky-5.5.0-arm64.tar.gz sha256sum ponchowonky-5.5.0.tar.gz ponchowonky-5.5.0-arm64.tar.gz -
Update
APP_VERSION,APP_SHA256_X86_64andAPP_SHA256_AARCH64inversions.sh, then run./check-versions.sh— it verifies the manifest URLs/checksums and the metainfo release entry still match. -
Update
url/sha256innz.scuttlebutt.Patchwork.yaml. Nobuild-commandschange is needed: flatpak-builder strips the archive's top-level directory (defaultstrip-components: 1) into theapp/source directory. -
Add a new
<release>entry innz.scuttlebutt.Patchwork.metainfo.xml.
To bump the Flatpak environment, update RUNTIME_VERSION in versions.sh (used
for the freedesktop runtime, SDK and Electron BaseApp — they always move
together).
Notes
- Why
tar.gzand not the AppImage? The upstreamtar.gzassets are the unpackedelectron-builderbuild. Using them avoids the--appimage-extractstep and keeps the manifest architecture-agnostic. - Runtime vs. Electron version. The app ships its own Electron binary inside
the
tar.gz, so the runtime is not tied to Electron's version — it only needs to satisfy the host glibc/GTK stack that Electron requires.RUNTIME_VERSIONshould be bumped to the next freedesktop branch only when a newer Electron stops working on the current one (the manifest change is one line plus a rebuild). - SSB data. Patchwork resolves its data directory from the real user home
(
getpwuid), not$HOME, so it writes to~/.ssbon the host even from inside the sandbox. A non-Flatpak install shares the same data — no migration needed. (Flatpak still redirects~/.cache,~/.configand~/.localfor this app to~/.var/app/nz.scuttlebutt.Patchwork/.) - Network. SSB uses LAN multicast discovery, DHT and direct TCP/UDP;
--share=networkcovers this.--device=allis granted for webcam support and can be removed fromfinish-argsif you do not want it. - Flathub. The metainfo
<screenshots>section is omitted because the upstream screenshot URL currently returns 404. Add screenshots hosted on a stable CDN before submitting to Flathub.