From 23bac3cff5d44b022de820ce75187e0b15f259cc Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Fri, 3 Jul 2026 15:15:04 -0700 Subject: [PATCH] Build CEF Linux as experimental AppImage --- .github/workflows/release-app.yml | 24 ++++++++++-- Cargo.lock | 52 ++++++++++++++++++++++++- Cargo.toml | 2 +- crates-tauri/yaak-app-client/Cargo.toml | 4 +- 4 files changed, 75 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release-app.yml b/.github/workflows/release-app.yml index c6198625..6a49cd82 100644 --- a/.github/workflows/release-app.yml +++ b/.github/workflows/release-app.yml @@ -17,32 +17,50 @@ jobs: args: '--target aarch64-apple-darwin --config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "arm64" os: "macos" + runtime: "wry" targets: "aarch64-apple-darwin" - platform: "macos-latest" # for Intel-based Macs. args: '--target x86_64-apple-darwin --config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "x64" os: "macos" + runtime: "wry" targets: "x86_64-apple-darwin" - platform: "ubuntu-22.04" - args: '--config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","cef"]}}''' + args: '--config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "x64" os: "ubuntu" + runtime: "wry" targets: "" - platform: "ubuntu-22.04-arm" - args: '--config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","cef"]}}''' + args: '--config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "arm64" os: "ubuntu" + runtime: "wry" + targets: "" + - platform: "ubuntu-22.04" + args: '--bundles appimage --config ./tauri.release.conf.json --config ''{"productName":"yaak-cef","mainBinaryName":"yaak-cef","identifier":"app.yaak.desktop.cef","build":{"features":["license","cef"]},"bundle":{"createUpdaterArtifacts":false}}''' + yaak_arch: "x64" + os: "ubuntu" + runtime: "cef" + targets: "" + - platform: "ubuntu-22.04-arm" + args: '--bundles appimage --config ./tauri.release.conf.json --config ''{"productName":"yaak-cef","mainBinaryName":"yaak-cef","identifier":"app.yaak.desktop.cef","build":{"features":["license","cef"]},"bundle":{"createUpdaterArtifacts":false}}''' + yaak_arch: "arm64" + os: "ubuntu" + runtime: "cef" targets: "" - platform: "windows-latest" args: '--config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "x64" os: "windows" + runtime: "wry" targets: "" # Windows ARM64 - platform: "windows-latest" args: '--target aarch64-pc-windows-msvc --config ./tauri.release.conf.json --config ''{"build":{"features":["updater","license","wry"]}}''' yaak_arch: "arm64" os: "windows" + runtime: "wry" targets: "aarch64-pc-windows-msvc" runs-on: ${{ matrix.platform }} timeout-minutes: 40 @@ -67,7 +85,7 @@ jobs: cache-on-failure: true - name: Cache CEF (Linux only) - if: matrix.os == 'ubuntu' + if: matrix.os == 'ubuntu' && matrix.runtime == 'cef' uses: actions/cache@v4 with: path: ~/.cache/tauri-cef diff --git a/Cargo.lock b/Cargo.lock index 0e4df5f6..9b28c4c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -256,6 +256,27 @@ dependencies = [ "zbus", ] +[[package]] +name = "ashpd" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f3f79755c74fd155000314eb349864caa787c6592eace6c6882dad873d9c39" +dependencies = [ + "enumflags2", + "futures-channel", + "futures-util", + "rand 0.9.1", + "raw-window-handle", + "serde", + "serde_repr", + "tokio", + "url", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "zbus", +] + [[package]] name = "assert_cmd" version = "2.1.2" @@ -1717,7 +1738,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18e1a09f280e29a8b00bc7e81eca5ac87dca0575639c9422a5fa25a07bb884b8" dependencies = [ - "ashpd", + "ashpd 0.10.3", "async-std", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -1940,6 +1961,15 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "dlib" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab8ecd87370524b461f8557c119c405552c396ed91fc0a8eec68679eab26f94a" +dependencies = [ + "libloading 0.7.4", +] + [[package]] name = "dlopen2" version = "0.8.0" @@ -5857,6 +5887,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "pollster" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" + [[package]] name = "poly1305" version = "0.8.0" @@ -6549,6 +6585,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a15ad77d9e70a92437d8f74c35d99b4e4691128df018833e99f90bcd36152672" dependencies = [ + "ashpd 0.11.1", "block2 0.6.1", "dispatch2", "glib-sys", @@ -6560,7 +6597,9 @@ dependencies = [ "objc2-app-kit", "objc2-core-foundation", "objc2-foundation 0.3.1", + "pollster", "raw-window-handle", + "urlencoding", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -7307,6 +7346,12 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -8924,6 +8969,7 @@ dependencies = [ "signal-hook-registry", "socket2 0.6.1", "tokio-macros", + "tracing", "windows-sys 0.61.2", ] @@ -9864,6 +9910,7 @@ dependencies = [ "cc", "downcast-rs", "rustix 0.38.44", + "scoped-tls", "smallvec", "wayland-sys", ] @@ -9922,6 +9969,8 @@ version = "0.31.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" dependencies = [ + "dlib", + "log 0.4.29", "pkg-config", ] @@ -11422,6 +11471,7 @@ dependencies = [ "ordered-stream", "serde", "serde_repr", + "tokio", "tracing", "uds_windows", "windows-sys 0.60.2", diff --git a/Cargo.toml b/Cargo.toml index 51b855f7..81df1687 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,7 @@ tauri = { version = "2.11.1", default-features = false, features = [ "dynamic-acl", ] } tauri-plugin = "2.6.1" -tauri-plugin-dialog = "2.7.1" +tauri-plugin-dialog = { version = "2.7.1", default-features = false } tauri-plugin-shell = "2.3.5" thiserror = "2.0.17" tokio = "1.48.0" diff --git a/crates-tauri/yaak-app-client/Cargo.toml b/crates-tauri/yaak-app-client/Cargo.toml index 9ba4a91b..4bdb1c8c 100644 --- a/crates-tauri/yaak-app-client/Cargo.toml +++ b/crates-tauri/yaak-app-client/Cargo.toml @@ -13,8 +13,8 @@ crate-type = ["staticlib", "cdylib", "lib"] [features] cargo-clippy = [] default = [] -cef = ["tauri/cef"] -wry = ["tauri/wry", "tauri/x11", "tauri/dbus"] +cef = ["tauri/cef", "tauri-plugin-dialog/xdg-portal"] +wry = ["tauri/wry", "tauri/x11", "tauri/dbus", "tauri-plugin-dialog/gtk3"] updater = [] license = ["yaak-license"]