feat: linux package builds

This commit is contained in:
Georg Bauer
2026-08-02 20:25:02 +02:00
parent 3b1d239863
commit c96fd9c041
4 changed files with 20 additions and 2 deletions

View File

@@ -13,7 +13,7 @@ rustflags = [
[target.'cfg(target_os = "linux")'] [target.'cfg(target_os = "linux")']
rustflags = [ rustflags = [
"-C", "prefer-dynamic", "-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")'] [target.'cfg(target_os = "windows")']

View File

@@ -14,6 +14,7 @@ members = [
edition = "2024" edition = "2024"
version = "0.1.0" version = "0.1.0"
license = "MIT" license = "MIT"
authors = ["Georg Bauer <gb@rfc1437.de>"]
[workspace.dependencies] [workspace.dependencies]
# Foundation # Foundation

View File

@@ -3,6 +3,7 @@ name = "bds-ui"
edition.workspace = true edition.workspace = true
version.workspace = true version.workspace = true
license.workspace = true license.workspace = true
authors.workspace = true
[dependencies] [dependencies]
bds-core = { workspace = true } bds-core = { workspace = true }
@@ -58,6 +59,16 @@ icons = [
[package.metadata.packager.macos] [package.metadata.packager.macos]
minimum-system-version = "26.0" 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] [package.metadata.packager.nsis]
installer-icon = "assets/app-icons/bds.ico" installer-icon = "assets/app-icons/bds.ico"

View File

@@ -25,6 +25,10 @@ fn desktop_packages_have_native_icons_and_cargo_commands() {
"identifier = \"de.rfc1437.ruds\"", "identifier = \"de.rfc1437.ruds\"",
"deep-link-protocols = [{ schemes = [\"ruds\"] }]", "deep-link-protocols = [{ schemes = [\"ruds\"] }]",
"minimum-system-version = \"26.0\"", "minimum-system-version = \"26.0\"",
"[package.metadata.packager.deb]",
"libgtk-3-0t64 | libgtk-3-0",
"libwebkit2gtk-4.1-0",
"libxdo3",
"../../target/release/bds-runtime/*", "../../target/release/bds-runtime/*",
"cargo run --quiet -p bds-package-runtime", "cargo run --quiet -p bds-package-runtime",
"cargo run --quiet -p bds-package-runtime -- sign-app-for-dmg", "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(required), "missing {required}");
} }
assert!(!manifest.contains("signing-identity")); 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")) let cargo_config = fs::read_to_string(Path::new(CRATE_DIR).join("../../.cargo/config.toml"))
.expect("Cargo packaging aliases"); .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("prefer-dynamic"));
assert!(cargo_config.contains("-mmacosx-version-min=26.0")); assert!(cargo_config.contains("-mmacosx-version-min=26.0"));
assert!(cargo_config.contains("@executable_path/../Resources")); 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(); let main = fs::read_to_string(Path::new(CRATE_DIR).join("src/main.rs")).unwrap();
assert!(main.contains("assets/app-icons/bds.png")); assert!(main.contains("assets/app-icons/bds.png"));
@@ -52,6 +57,7 @@ fn desktop_packages_have_native_icons_and_cargo_commands() {
let workspace_manifest = let workspace_manifest =
fs::read_to_string(Path::new(CRATE_DIR).join("../../Cargo.toml")).unwrap(); fs::read_to_string(Path::new(CRATE_DIR).join("../../Cargo.toml")).unwrap();
assert!(workspace_manifest.contains("Georg Bauer <gb@rfc1437.de>"));
assert!(workspace_manifest.contains("strip = \"symbols\"")); assert!(workspace_manifest.contains("strip = \"symbols\""));
assert!(workspace_manifest.contains("ort-download-binaries-rustls-tls")); assert!(workspace_manifest.contains("ort-download-binaries-rustls-tls"));