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..8042e42b8 100644 --- a/linux/.gitignore +++ b/linux/.gitignore @@ -3,3 +3,4 @@ target/ .DS_Store docs/audit-*.md +packaging/out/ diff --git a/linux/flatpak/com.tablepro.linux.json b/linux/flatpak/com.tablepro.linux.json index 9dde351f2..e9d8ff282 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,39 @@ "--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": [ + "-Ddocumentation=false", + "-Dvapi=false", + "-Dintrospection=enabled" + ], + "sources": [ + { + "type": "archive", + "url": "https://download.gnome.org/sources/gtksourceview/5.14/gtksourceview-5.14.2.tar.xz", + "sha256": "1a6d387a68075f8aefd4e752cf487177c4a6823b14ff8a434986858aeaef6264" + } + ] + }, { "name": "tablepro-app", "buildsystem": "simple", + "build-options": { + "build-args": [ + "--share=network" + ] + }, "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..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, 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, 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: