From c96fd9c0410b47594e280ab8dd581f7fd84cdbf7 Mon Sep 17 00:00:00 2001 From: Georg Bauer Date: Sun, 2 Aug 2026 20:25:02 +0200 Subject: [PATCH] feat: linux package builds --- .cargo/config.toml | 2 +- Cargo.toml | 1 + crates/bds-ui/Cargo.toml | 11 +++++++++++ crates/bds-ui/tests/packaging_assets.rs | 8 +++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 7a61ed1..375ed4f 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -13,7 +13,7 @@ rustflags = [ [target.'cfg(target_os = "linux")'] rustflags = [ "-C", "prefer-dynamic", - "-C", "link-arg=-Wl,-rpath,$ORIGIN/../lib/bds-ui", + "-C", "link-arg=-Wl,-rpath,$ORIGIN:$ORIGIN/../lib/bds-ui", ] [target.'cfg(target_os = "windows")'] diff --git a/Cargo.toml b/Cargo.toml index 1588ab2..1ed0322 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ members = [ edition = "2024" version = "0.1.0" license = "MIT" +authors = ["Georg Bauer "] [workspace.dependencies] # Foundation diff --git a/crates/bds-ui/Cargo.toml b/crates/bds-ui/Cargo.toml index e8373e3..cd5bf8b 100644 --- a/crates/bds-ui/Cargo.toml +++ b/crates/bds-ui/Cargo.toml @@ -3,6 +3,7 @@ name = "bds-ui" edition.workspace = true version.workspace = true license.workspace = true +authors.workspace = true [dependencies] bds-core = { workspace = true } @@ -58,6 +59,16 @@ icons = [ [package.metadata.packager.macos] minimum-system-version = "26.0" +[package.metadata.packager.deb] +depends = [ + "libc6", + "libdbus-1-3", + "libgtk-3-0t64 | libgtk-3-0", + "libstdc++6", + "libwebkit2gtk-4.1-0", + "libxdo3", +] + [package.metadata.packager.nsis] installer-icon = "assets/app-icons/bds.ico" diff --git a/crates/bds-ui/tests/packaging_assets.rs b/crates/bds-ui/tests/packaging_assets.rs index c16ad38..5c39648 100644 --- a/crates/bds-ui/tests/packaging_assets.rs +++ b/crates/bds-ui/tests/packaging_assets.rs @@ -25,6 +25,10 @@ fn desktop_packages_have_native_icons_and_cargo_commands() { "identifier = \"de.rfc1437.ruds\"", "deep-link-protocols = [{ schemes = [\"ruds\"] }]", "minimum-system-version = \"26.0\"", + "[package.metadata.packager.deb]", + "libgtk-3-0t64 | libgtk-3-0", + "libwebkit2gtk-4.1-0", + "libxdo3", "../../target/release/bds-runtime/*", "cargo run --quiet -p bds-package-runtime", "cargo run --quiet -p bds-package-runtime -- sign-app-for-dmg", @@ -33,6 +37,7 @@ fn desktop_packages_have_native_icons_and_cargo_commands() { assert!(manifest.contains(required), "missing {required}"); } assert!(!manifest.contains("signing-identity")); + assert!(manifest.contains("authors.workspace = true")); let cargo_config = fs::read_to_string(Path::new(CRATE_DIR).join("../../.cargo/config.toml")) .expect("Cargo packaging aliases"); @@ -42,7 +47,7 @@ fn desktop_packages_have_native_icons_and_cargo_commands() { assert!(cargo_config.contains("prefer-dynamic")); assert!(cargo_config.contains("-mmacosx-version-min=26.0")); assert!(cargo_config.contains("@executable_path/../Resources")); - assert!(cargo_config.contains("$ORIGIN/../lib/bds-ui")); + assert!(cargo_config.contains("$ORIGIN:$ORIGIN/../lib/bds-ui")); let main = fs::read_to_string(Path::new(CRATE_DIR).join("src/main.rs")).unwrap(); assert!(main.contains("assets/app-icons/bds.png")); @@ -52,6 +57,7 @@ fn desktop_packages_have_native_icons_and_cargo_commands() { let workspace_manifest = fs::read_to_string(Path::new(CRATE_DIR).join("../../Cargo.toml")).unwrap(); + assert!(workspace_manifest.contains("Georg Bauer ")); assert!(workspace_manifest.contains("strip = \"symbols\"")); assert!(workspace_manifest.contains("ort-download-binaries-rustls-tls"));