From ed6131e3edf0c08f20179b6c5872b85c04acbbb0 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Mon, 27 Jul 2026 23:40:56 +0200 Subject: [PATCH 1/5] feat(linux): add Flatpak CI, .deb builder, and AUR PKGBUILD Co-authored-by: Cursor --- .github/workflows/flatpak-linux.yml | 32 ++++++++++++++ linux/.gitignore | 2 + linux/flatpak/com.tablepro.linux.json | 24 ++++++++-- linux/flatpak/com.tablepro.linux.metainfo.xml | 8 ++-- linux/packaging/README.md | 43 ++++++++++++++++++ linux/packaging/aur/PKGBUILD | 44 +++++++++++++++++++ linux/packaging/debian/changelog | 5 +++ linux/packaging/debian/compat | 1 + linux/packaging/debian/control | 27 ++++++++++++ linux/packaging/debian/copyright | 17 +++++++ linux/packaging/debian/rules | 32 ++++++++++++++ linux/scripts/build-deb.sh | 44 +++++++++++++++++++ linux/scripts/build-flatpak.sh | 32 ++++++++++++++ linux/scripts/generate-cargo-sources.sh | 23 ++++++++++ 14 files changed, 327 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/flatpak-linux.yml create mode 100644 linux/packaging/README.md create mode 100644 linux/packaging/aur/PKGBUILD create mode 100644 linux/packaging/debian/changelog create mode 100644 linux/packaging/debian/compat create mode 100644 linux/packaging/debian/control create mode 100644 linux/packaging/debian/copyright create mode 100755 linux/packaging/debian/rules create mode 100755 linux/scripts/build-deb.sh create mode 100755 linux/scripts/build-flatpak.sh create mode 100755 linux/scripts/generate-cargo-sources.sh diff --git a/.github/workflows/flatpak-linux.yml b/.github/workflows/flatpak-linux.yml new file mode 100644 index 000000000..90e6a3e24 --- /dev/null +++ b/.github/workflows/flatpak-linux.yml @@ -0,0 +1,32 @@ +name: Flatpak Linux + +on: + push: + branches: [linux, "linux/**", "feat/linux-**"] + paths: + - "linux/**" + - ".github/workflows/flatpak-linux.yml" + pull_request: + paths: + - "linux/**" + - ".github/workflows/flatpak-linux.yml" + workflow_dispatch: + +jobs: + flatpak: + name: flatpak-builder + runs-on: ubuntu-24.04 + container: + image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-47 + options: --privileged + steps: + - uses: actions/checkout@v5 + with: + ref: ${{ github.event_name == 'schedule' && 'linux' || github.ref }} + - name: Build Flatpak + uses: flatpak/flatpak-github-actions/flatpak-builder@v6 + with: + bundle: tablepro.flatpak + manifest-path: linux/flatpak/com.tablepro.linux.json + cache-key: flatpak-builder-${{ github.sha }} + upload-artifact: true diff --git a/linux/.gitignore b/linux/.gitignore index 52b9a8a86..64936c716 100644 --- a/linux/.gitignore +++ b/linux/.gitignore @@ -3,3 +3,5 @@ target/ .DS_Store docs/audit-*.md +target/ +packaging/out/ diff --git a/linux/flatpak/com.tablepro.linux.json b/linux/flatpak/com.tablepro.linux.json index 9dde351f2..49cbc6f77 100644 --- a/linux/flatpak/com.tablepro.linux.json +++ b/linux/flatpak/com.tablepro.linux.json @@ -4,7 +4,8 @@ "runtime-version": "47", "sdk": "org.gnome.Sdk", "sdk-extensions": [ - "org.freedesktop.Sdk.Extension.rust-stable" + "org.freedesktop.Sdk.Extension.rust-stable", + "org.freedesktop.Sdk.Extension.llvm19" ], "command": "tablepro-app", "finish-args": [ @@ -17,17 +18,34 @@ "--talk-name=org.freedesktop.secrets" ], "build-options": { - "append-path": "/usr/lib/sdk/rust-stable/bin", + "append-path": "/usr/lib/sdk/rust-stable/bin:/usr/lib/sdk/llvm19/bin", + "prepend-ld-library-path": "/usr/lib/sdk/llvm19/lib", "env": { "CARGO_HOME": "/run/build/tablepro-app/cargo" } }, "modules": [ + { + "name": "gtksourceview5", + "buildsystem": "meson", + "config-opts": [ + "-Dgtk_doc=false", + "-Dvapi=false", + "-Dintrospection=enabled" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/gtksourceview/5.16/gtksourceview-5.16.0.tar.xz", + "sha256": "ab35d420102f3e8b055dd3b8642d3a48209f888189e6254d0ffb4b6a7e8c3566" + } + ] + }, { "name": "tablepro-app", "buildsystem": "simple", "build-commands": [ - "cargo build --release -p tablepro-app", + "cargo build --release -p tablepro-app --locked", "install -Dm755 target/release/tablepro-app /app/bin/tablepro-app", "install -Dm644 flatpak/com.tablepro.linux.desktop /app/share/applications/com.tablepro.linux.desktop", "install -Dm644 flatpak/com.tablepro.linux.metainfo.xml /app/share/metainfo/com.tablepro.linux.metainfo.xml", diff --git a/linux/flatpak/com.tablepro.linux.metainfo.xml b/linux/flatpak/com.tablepro.linux.metainfo.xml index caf374148..032546858 100644 --- a/linux/flatpak/com.tablepro.linux.metainfo.xml +++ b/linux/flatpak/com.tablepro.linux.metainfo.xml @@ -8,13 +8,13 @@

TablePro is a fast, native database client for Linux. It connects to - PostgreSQL, MySQL, and SQLite, and lets you browse tables, edit data - in place, run SQL, and tunnel through SSH bastions — all from a clean - GTK4 / libadwaita interface. + PostgreSQL, MySQL, SQLite, Microsoft SQL Server, and ClickHouse, and + lets you browse tables, edit data in place, run SQL, and tunnel through + SSH bastions — all from a clean GTK4 / libadwaita interface.

Features:

    -
  • PostgreSQL, MySQL, and SQLite drivers
  • +
  • PostgreSQL, MySQL, SQLite, MSSQL, and ClickHouse drivers
  • In-place cell editing with primary-key safety
  • SQL editor with syntax highlighting and Run / Cancel
  • SSH tunneling with TOFU host-key checking
  • diff --git a/linux/packaging/README.md b/linux/packaging/README.md new file mode 100644 index 000000000..af58dd328 --- /dev/null +++ b/linux/packaging/README.md @@ -0,0 +1,43 @@ +# Packaging + +Community packaging for TablePro Linux. Flathub remains the primary distribution channel; `.deb` and AUR are secondary. + +## Flatpak + +Manifest: [`../flatpak/com.tablepro.linux.json`](../flatpak/com.tablepro.linux.json) + +```bash +./scripts/build-flatpak.sh +``` + +CI: [`.github/workflows/flatpak-linux.yml`](../../.github/workflows/flatpak-linux.yml) builds the manifest on every Linux-path PR. + +For Flathub offline sources: + +```bash +git clone https://github.com/flatpak/flatpak-builder-tools +./scripts/generate-cargo-sources.sh ./flatpak-builder-tools +``` + +## Debian / Ubuntu (`.deb`) + +Debian source packaging lives in [`debian/`](debian/). For a quick local binary package without a full source upload: + +```bash +./scripts/build-deb.sh +# → packaging/out/tablepro_0.1.0-1_amd64.deb +sudo apt install ./packaging/out/tablepro_0.1.0-1_amd64.deb +``` + +Build-Depends (source package): `cargo`, `rustc (>= 1.93)`, `libgtk-4-dev`, `libadwaita-1-dev`, `libgtksourceview-5-dev`, `libssl-dev`, `libsecret-1-dev`, `gettext`. + +## Arch (AUR) + +[`aur/PKGBUILD`](aur/PKGBUILD) builds from the upstream `linux` branch. + +```bash +cd packaging/aur +makepkg -si +``` + +Pin a release tag / commit and fill `sha256sums` before submitting to the AUR. diff --git a/linux/packaging/aur/PKGBUILD b/linux/packaging/aur/PKGBUILD new file mode 100644 index 000000000..bbf3000fd --- /dev/null +++ b/linux/packaging/aur/PKGBUILD @@ -0,0 +1,44 @@ +# Maintainer: TablePro Contributors +pkgname=tablepro +pkgver=0.1.0 +pkgrel=1 +pkgdesc="Native Linux database client (GTK4 / libadwaita)" +arch=('x86_64') +url="https://github.com/TableProApp/TablePro" +license=('AGPL-3.0-or-later') +depends=('gtk4' 'libadwaita' 'gtksourceview5' 'libsecret' 'openssl') +makedepends=('cargo' 'git' 'pkgconf' 'clang' 'mold') +source=("$pkgname-$pkgver::git+https://github.com/TableProApp/TablePro.git#branch=linux") +sha256sums=('SKIP') +options=('!lto') + +prepare() { + cd "$srcdir/$pkgname-$pkgver/linux" + export RUSTUP_TOOLCHAIN=1.93 + cargo fetch --locked --target "$CARCH-unknown-linux-gnu" +} + +build() { + cd "$srcdir/$pkgname-$pkgver/linux" + export RUSTUP_TOOLCHAIN=1.93 + export CARGO_TARGET_DIR="$srcdir/target" + cargo build --release --locked -p tablepro-app +} + +check() { + cd "$srcdir/$pkgname-$pkgver/linux" + export RUSTUP_TOOLCHAIN=1.93 + export CARGO_TARGET_DIR="$srcdir/target" + cargo test --workspace --lib --locked +} + +package() { + cd "$srcdir/$pkgname-$pkgver/linux" + install -Dm755 "$srcdir/target/release/tablepro-app" "$pkgdir/usr/bin/tablepro-app" + install -Dm644 flatpak/com.tablepro.linux.desktop \ + "$pkgdir/usr/share/applications/com.tablepro.linux.desktop" + install -Dm644 flatpak/com.tablepro.linux.metainfo.xml \ + "$pkgdir/usr/share/metainfo/com.tablepro.linux.metainfo.xml" + install -Dm644 flatpak/icons/scalable/com.tablepro.linux.svg \ + "$pkgdir/usr/share/icons/hicolor/scalable/apps/com.tablepro.linux.svg" +} diff --git a/linux/packaging/debian/changelog b/linux/packaging/debian/changelog new file mode 100644 index 000000000..3635794d8 --- /dev/null +++ b/linux/packaging/debian/changelog @@ -0,0 +1,5 @@ +tablepro (0.1.0-1) UNRELEASED; urgency=medium + + * Initial Debian packaging for the Linux GTK4 client. + + -- TablePro Contributors Mon, 27 Jul 2026 00:00:00 +0000 diff --git a/linux/packaging/debian/compat b/linux/packaging/debian/compat new file mode 100644 index 000000000..b1bd38b62 --- /dev/null +++ b/linux/packaging/debian/compat @@ -0,0 +1 @@ +13 diff --git a/linux/packaging/debian/control b/linux/packaging/debian/control new file mode 100644 index 000000000..dd07a7771 --- /dev/null +++ b/linux/packaging/debian/control @@ -0,0 +1,27 @@ +Source: tablepro +Section: database +Priority: optional +Maintainer: TablePro Contributors +Build-Depends: + debhelper-compat (= 13), + cargo, + rustc (>= 1.93), + pkg-config, + libgtk-4-dev, + libadwaita-1-dev, + libgtksourceview-5-dev, + libssl-dev, + libsecret-1-dev, + gettext +Standards-Version: 4.7.0 +Homepage: https://github.com/TableProApp/TablePro +Rules-Requires-Root: no + +Package: tablepro +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Native Linux database client + TablePro is a fast, native GTK4 / libadwaita database client. It connects + to PostgreSQL, MySQL, SQLite, Microsoft SQL Server, and ClickHouse, with + in-place editing, a SQL editor, SSH tunnels, and Secret Service password + storage. diff --git a/linux/packaging/debian/copyright b/linux/packaging/debian/copyright new file mode 100644 index 000000000..e343c4002 --- /dev/null +++ b/linux/packaging/debian/copyright @@ -0,0 +1,17 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: TablePro +Upstream-Contact: https://github.com/TableProApp/TablePro/issues +Source: https://github.com/TableProApp/TablePro + +Files: * +Copyright: TablePro Authors +License: AGPL-3.0-or-later + +License: AGPL-3.0-or-later + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + On Debian systems, the full text of the GNU Affero General Public + License version 3 can be found in /usr/share/common-licenses/AGPL-3. diff --git a/linux/packaging/debian/rules b/linux/packaging/debian/rules new file mode 100755 index 000000000..418ffd474 --- /dev/null +++ b/linux/packaging/debian/rules @@ -0,0 +1,32 @@ +#!/usr/bin/make -f + +export DH_VERBOSE = 1 +export CARGO_HOME = $(CURDIR)/debian/cargo-home +# Build from the linux/ workspace root (this debian/ lives under packaging/). +export TABLEPRO_LINUX = $(CURDIR)/../.. + +%: + dh $@ + +override_dh_auto_configure: + @true + +override_dh_auto_build: + cd $(TABLEPRO_LINUX) && cargo build --release -p tablepro-app --locked + +override_dh_auto_test: + cd $(TABLEPRO_LINUX) && cargo test --workspace --lib + +override_dh_auto_install: + install -Dm755 $(TABLEPRO_LINUX)/target/release/tablepro-app \ + $(CURDIR)/debian/tablepro/usr/bin/tablepro-app + install -Dm644 $(TABLEPRO_LINUX)/flatpak/com.tablepro.linux.desktop \ + $(CURDIR)/debian/tablepro/usr/share/applications/com.tablepro.linux.desktop + install -Dm644 $(TABLEPRO_LINUX)/flatpak/com.tablepro.linux.metainfo.xml \ + $(CURDIR)/debian/tablepro/usr/share/metainfo/com.tablepro.linux.metainfo.xml + install -Dm644 $(TABLEPRO_LINUX)/flatpak/icons/scalable/com.tablepro.linux.svg \ + $(CURDIR)/debian/tablepro/usr/share/icons/hicolor/scalable/apps/com.tablepro.linux.svg + +override_dh_auto_clean: + cd $(TABLEPRO_LINUX) && cargo clean || true + rm -rf $(CARGO_HOME) diff --git a/linux/scripts/build-deb.sh b/linux/scripts/build-deb.sh new file mode 100755 index 000000000..cf045a5f0 --- /dev/null +++ b/linux/scripts/build-deb.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# Build a local .deb from linux/ using dpkg-buildpackage (or a fallback +# that stages files when debhelper is unavailable). +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +OUT="${DEB_OUT:-$ROOT/packaging/out}" +mkdir -p "$OUT" + +export CARGO_TARGET_DIR="${CARGO_TARGET_DIR:-$ROOT/target}" +cd "$ROOT" + +if [[ -f "$ROOT/scripts/dev-env.sh" ]]; then + # shellcheck source=/dev/null + source "$ROOT/scripts/dev-env.sh" +fi + +echo "==> cargo build --release -p tablepro-app" +cargo build --release -p tablepro-app --locked + +STAGE="$OUT/tablepro_0.1.0-1_amd64" +rm -rf "$STAGE" +install -Dm755 "$CARGO_TARGET_DIR/release/tablepro-app" "$STAGE/usr/bin/tablepro-app" +install -Dm644 flatpak/com.tablepro.linux.desktop "$STAGE/usr/share/applications/com.tablepro.linux.desktop" +install -Dm644 flatpak/com.tablepro.linux.metainfo.xml "$STAGE/usr/share/metainfo/com.tablepro.linux.metainfo.xml" +install -Dm644 flatpak/icons/scalable/com.tablepro.linux.svg \ + "$STAGE/usr/share/icons/hicolor/scalable/apps/com.tablepro.linux.svg" + +mkdir -p "$STAGE/DEBIAN" +cat >"$STAGE/DEBIAN/control" < +Depends: libgtk-4-1, libadwaita-1-0, libgtksourceview-5-0, libsecret-1-0 +Description: Native Linux database client + TablePro is a fast, native GTK4 / libadwaita database client. +EOF + +dpkg-deb --root-owner-group --build "$STAGE" "$OUT/tablepro_0.1.0-1_amd64.deb" +echo "Wrote $OUT/tablepro_0.1.0-1_amd64.deb" +dpkg-deb -I "$OUT/tablepro_0.1.0-1_amd64.deb" diff --git a/linux/scripts/build-flatpak.sh b/linux/scripts/build-flatpak.sh new file mode 100755 index 000000000..e4c860c8a --- /dev/null +++ b/linux/scripts/build-flatpak.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# Attempt an end-to-end flatpak-builder run (requires flatpak + flatpak-builder). +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +BUILD_DIR="${FLATPAK_BUILD_DIR:-/tmp/tablepro-flatpak-build}" +REPO_DIR="${FLATPAK_REPO_DIR:-/tmp/tablepro-flatpak-repo}" + +if ! command -v flatpak-builder >/dev/null; then + cat >&2 <<'EOF' +flatpak-builder is not installed. + +Debian / Ubuntu: + sudo apt install -y flatpak flatpak-builder + flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak install -y flathub org.gnome.Sdk//47 org.gnome.Platform//47 \ + org.freedesktop.Sdk.Extension.rust-stable//24.08 \ + org.freedesktop.Sdk.Extension.llvm19//24.08 + +Arch: + sudo pacman -S --needed flatpak flatpak-builder + # then install the same runtimes from Flathub as above +EOF + exit 1 +fi + +mkdir -p "$BUILD_DIR" "$REPO_DIR" +cd "$ROOT" +flatpak-builder --force-clean --repo="$REPO_DIR" "$BUILD_DIR" flatpak/com.tablepro.linux.json +flatpak build-bundle "$REPO_DIR" /tmp/tablepro.flatpak com.tablepro.linux +echo "Bundle: /tmp/tablepro.flatpak" +echo "Install: flatpak install --user /tmp/tablepro.flatpak" diff --git a/linux/scripts/generate-cargo-sources.sh b/linux/scripts/generate-cargo-sources.sh new file mode 100755 index 000000000..d464f3493 --- /dev/null +++ b/linux/scripts/generate-cargo-sources.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# Generate flatpak/generated-sources.json from Cargo.lock for offline / +# Flathub builds. Requires flatpak-builder-tools (cargo sources script). +# +# git clone https://github.com/flatpak/flatpak-builder-tools +# ./scripts/generate-cargo-sources.sh /path/to/flatpak-builder-tools +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +TOOLS="${1:-}" + +if [[ -z "$TOOLS" || ! -f "$TOOLS/cargo/flatpak-cargo-generator.py" ]]; then + echo "usage: $0 /path/to/flatpak-builder-tools" >&2 + echo "Clone https://github.com/flatpak/flatpak-builder-tools and pass its root." >&2 + exit 1 +fi + +python3 "$TOOLS/cargo/flatpak-cargo-generator.py" \ + "$ROOT/Cargo.lock" \ + -o "$ROOT/flatpak/generated-sources.json" + +echo "Wrote $ROOT/flatpak/generated-sources.json" +echo "For Flathub, set CARGO_NET_OFFLINE=true and add \"generated-sources.json\" to the tablepro-app module sources." From 323aa7ccdbd17fc74e2777fd2e606b764b0d4b38 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 29 Jul 2026 18:45:13 +0200 Subject: [PATCH 2/5] fix(linux): align packaging metadata with drivers on linux Co-authored-by: Cursor --- linux/.gitignore | 1 - linux/flatpak/com.tablepro.linux.metainfo.xml | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/linux/.gitignore b/linux/.gitignore index 64936c716..8042e42b8 100644 --- a/linux/.gitignore +++ b/linux/.gitignore @@ -3,5 +3,4 @@ target/ .DS_Store docs/audit-*.md -target/ packaging/out/ diff --git a/linux/flatpak/com.tablepro.linux.metainfo.xml b/linux/flatpak/com.tablepro.linux.metainfo.xml index 032546858..640a7cf3f 100644 --- a/linux/flatpak/com.tablepro.linux.metainfo.xml +++ b/linux/flatpak/com.tablepro.linux.metainfo.xml @@ -8,13 +8,13 @@

    TablePro is a fast, native database client for Linux. It connects to - PostgreSQL, MySQL, SQLite, Microsoft SQL Server, and ClickHouse, and - lets you browse tables, edit data in place, run SQL, and tunnel through - SSH bastions — all from a clean GTK4 / libadwaita interface. + PostgreSQL, MySQL, SQLite, and Microsoft SQL Server, and lets you browse + tables, edit data in place, run SQL, and tunnel through SSH bastions, + all from a clean GTK4 / libadwaita interface.

    Features:

      -
    • PostgreSQL, MySQL, SQLite, MSSQL, and ClickHouse drivers
    • +
    • PostgreSQL, MySQL, SQLite, and MSSQL drivers
    • In-place cell editing with primary-key safety
    • SQL editor with syntax highlighting and Run / Cancel
    • SSH tunneling with TOFU host-key checking
    • From 2748ebb499397ec29aadb3ecca43a7f7096ab8e4 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 29 Jul 2026 19:01:10 +0200 Subject: [PATCH 3/5] fix(linux): use gtksourceview -Ddocumentation for Flatpak Meson Co-authored-by: Cursor --- linux/flatpak/com.tablepro.linux.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux/flatpak/com.tablepro.linux.json b/linux/flatpak/com.tablepro.linux.json index 49cbc6f77..7943b1ce1 100644 --- a/linux/flatpak/com.tablepro.linux.json +++ b/linux/flatpak/com.tablepro.linux.json @@ -29,7 +29,7 @@ "name": "gtksourceview5", "buildsystem": "meson", "config-opts": [ - "-Dgtk_doc=false", + "-Ddocumentation=false", "-Dvapi=false", "-Dintrospection=enabled" ], From a4b2f6ca18cd3872ed6c1f68a2354008a5ad4270 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 29 Jul 2026 19:05:56 +0200 Subject: [PATCH 4/5] fix(linux): pin Flatpak GtkSourceView to 5.14 for GNOME 47 Co-authored-by: Cursor --- linux/flatpak/com.tablepro.linux.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linux/flatpak/com.tablepro.linux.json b/linux/flatpak/com.tablepro.linux.json index 7943b1ce1..50495d917 100644 --- a/linux/flatpak/com.tablepro.linux.json +++ b/linux/flatpak/com.tablepro.linux.json @@ -36,8 +36,8 @@ "sources": [ { "type": "archive", - "url": "https://download.gnome.org/sources/gtksourceview/5.16/gtksourceview-5.16.0.tar.xz", - "sha256": "ab35d420102f3e8b055dd3b8642d3a48209f888189e6254d0ffb4b6a7e8c3566" + "url": "https://download.gnome.org/sources/gtksourceview/5.14/gtksourceview-5.14.2.tar.xz", + "sha256": "1a6d387a68075f8aefd4e752cf487177c4a6823b14ff8a434986858aeaef6264" } ] }, From 0bdfc8c5c622f368e61fa1a1322b48e3f8f8ee97 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Wed, 29 Jul 2026 19:23:16 +0200 Subject: [PATCH 5/5] fix(linux): allow Cargo network during Flatpak CI builds Co-authored-by: Cursor --- linux/flatpak/com.tablepro.linux.json | 5 +++++ linux/packaging/README.md | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/linux/flatpak/com.tablepro.linux.json b/linux/flatpak/com.tablepro.linux.json index 50495d917..e9d8ff282 100644 --- a/linux/flatpak/com.tablepro.linux.json +++ b/linux/flatpak/com.tablepro.linux.json @@ -44,6 +44,11 @@ { "name": "tablepro-app", "buildsystem": "simple", + "build-options": { + "build-args": [ + "--share=network" + ] + }, "build-commands": [ "cargo build --release -p tablepro-app --locked", "install -Dm755 target/release/tablepro-app /app/bin/tablepro-app", diff --git a/linux/packaging/README.md b/linux/packaging/README.md index af58dd328..ca1f6f0b7 100644 --- a/linux/packaging/README.md +++ b/linux/packaging/README.md @@ -10,15 +10,14 @@ Manifest: [`../flatpak/com.tablepro.linux.json`](../flatpak/com.tablepro.linux.j ./scripts/build-flatpak.sh ``` -CI: [`.github/workflows/flatpak-linux.yml`](../../.github/workflows/flatpak-linux.yml) builds the manifest on every Linux-path PR. - -For Flathub offline sources: +CI: [`.github/workflows/flatpak-linux.yml`](../../.github/workflows/flatpak-linux.yml) builds the manifest on every Linux-path PR. The app module uses `--share=network` so Cargo can fetch crates during CI. Flathub forbids that, so generate offline sources before a Flathub submission: ```bash git clone https://github.com/flatpak/flatpak-builder-tools ./scripts/generate-cargo-sources.sh ./flatpak-builder-tools ``` +Then wire `flatpak/generated-sources.json` into the module sources and set `CARGO_NET_OFFLINE=true` (see the script's output). ## Debian / Ubuntu (`.deb`) Debian source packaging lives in [`debian/`](debian/). For a quick local binary package without a full source upload: