From a5c95dfed3e52352284c6ac3e9b9cd0501187922 Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Thu, 15 May 2025 16:26:58 -0400 Subject: [PATCH 1/7] rust-tui: Update Ditto SDK dependency to 4.10.2 --- rust-tui/Cargo.lock | 8 ++++---- rust-tui/Cargo.toml | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/rust-tui/Cargo.lock b/rust-tui/Cargo.lock index 326fdb130..aa7b3113d 100644 --- a/rust-tui/Cargo.lock +++ b/rust-tui/Cargo.lock @@ -448,9 +448,9 @@ dependencies = [ [[package]] name = "dittolive-ditto" -version = "4.10.0" +version = "4.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e6133ccc415b94298d9d7d889a0f7ee91b70e249dfff24df2a99e704ca3c9c2" +checksum = "9e1c20939abecb755f51c28a42f7ff024e7649a23c16644abe50a9e3e0743281" dependencies = [ "base64", "bytemuck", @@ -482,9 +482,9 @@ dependencies = [ [[package]] name = "dittolive-ditto-sys" -version = "4.10.0" +version = "4.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "842bca58e74c22f03b326f129c27d99e29b7e48b8b6152da45b328ce22cda549" +checksum = "4da62bc7567a759c562f186192d6a78e06ee91dc40137179aee13ee23d00244d" dependencies = [ "macro_rules_attribute", "paste", diff --git a/rust-tui/Cargo.toml b/rust-tui/Cargo.toml index 3f66af04e..47f62605e 100644 --- a/rust-tui/Cargo.toml +++ b/rust-tui/Cargo.toml @@ -14,7 +14,7 @@ path = "src/bin/main.rs" [dependencies] # Ditto dependenceis -dittolive-ditto = "4.10.0" +dittolive-ditto = "4.10.2" # External dependencies anyhow = "1" @@ -33,4 +33,3 @@ tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tokio-stream = { version = "0.1.17", features = ["sync"] } uuid = "1.13" - From ebc33721efe59f5a68822064f6cc660e27b42d24 Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Thu, 15 May 2025 16:46:21 -0400 Subject: [PATCH 2/7] Add rust-toolchain which matches the Rust 4.10.2 SDK --- rust-tui/rust-toolchain | 1 + 1 file changed, 1 insertion(+) create mode 100644 rust-tui/rust-toolchain diff --git a/rust-tui/rust-toolchain b/rust-tui/rust-toolchain new file mode 100644 index 000000000..dbd41264a --- /dev/null +++ b/rust-tui/rust-toolchain @@ -0,0 +1 @@ +1.81.0 From 262b8eb41529a87129ad3515225d079dbab52d67 Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Tue, 20 May 2025 10:12:23 -0400 Subject: [PATCH 3/7] Use Rust 1.81.0 in GitHub actions, to ensure compatibility with 4.10.x SDK --- .github/workflows/pr-checks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index a846032ec..b40b63252 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -44,7 +44,7 @@ jobs: - name: Install Rust uses: actions-rs/toolchain@v1 with: - toolchain: stable + toolchain: 1.81.0 override: true components: rustfmt, clippy From a40b0bd05b117328e77a43d5dc63e06ca2b80ccc Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Tue, 20 May 2025 10:26:28 -0400 Subject: [PATCH 4/7] Pass `--allow-multiple-definition` to linker for rust-tui Linux builds --- rust-tui/Cargo.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust-tui/Cargo.toml b/rust-tui/Cargo.toml index 47f62605e..0e2d02b3f 100644 --- a/rust-tui/Cargo.toml +++ b/rust-tui/Cargo.toml @@ -33,3 +33,7 @@ tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tokio-stream = { version = "0.1.17", features = ["sync"] } uuid = "1.13" + +[target.'cfg(target_os = "linux")'.rustflags] +linker-flavor = "gcc" +rustflags = ["-C", "link-arg=-Wl,--allow-multiple-definition"] From 3353f38f95cd734a36bde1e85213542959e332ed Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Tue, 20 May 2025 10:30:27 -0400 Subject: [PATCH 5/7] Fix rust-tui linker flags for Linux --- rust-tui/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust-tui/Cargo.toml b/rust-tui/Cargo.toml index 0e2d02b3f..37506f992 100644 --- a/rust-tui/Cargo.toml +++ b/rust-tui/Cargo.toml @@ -34,6 +34,6 @@ tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tokio-stream = { version = "0.1.17", features = ["sync"] } uuid = "1.13" -[target.'cfg(target_os = "linux")'.rustflags] -linker-flavor = "gcc" -rustflags = ["-C", "link-arg=-Wl,--allow-multiple-definition"] +[target.'cfg(target_os = "linux")'] +linker = "gcc" +rustflags = ["-Clink-arg=-Wl,--allow-multiple-definition"] From 72e89a135776e3c5ddc514870685120ee444250f Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Tue, 20 May 2025 10:35:15 -0400 Subject: [PATCH 6/7] rust-tui: Move Linux linker option setting to build.rs --- rust-tui/Cargo.toml | 4 ---- rust-tui/build.rs | 6 ++++++ 2 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 rust-tui/build.rs diff --git a/rust-tui/Cargo.toml b/rust-tui/Cargo.toml index 37506f992..47f62605e 100644 --- a/rust-tui/Cargo.toml +++ b/rust-tui/Cargo.toml @@ -33,7 +33,3 @@ tracing = "0.1.41" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } tokio-stream = { version = "0.1.17", features = ["sync"] } uuid = "1.13" - -[target.'cfg(target_os = "linux")'] -linker = "gcc" -rustflags = ["-Clink-arg=-Wl,--allow-multiple-definition"] diff --git a/rust-tui/build.rs b/rust-tui/build.rs new file mode 100644 index 000000000..18968100e --- /dev/null +++ b/rust-tui/build.rs @@ -0,0 +1,6 @@ +fn main() { + // Workaround for "multiple definition" linker errors on Linux + if cfg!(target_os = "linux") { + println!("cargo:rustc-link-arg=-Wl,--allow-multiple-definition"); + } +} From 206ec83ab9c36c458baebbc75a89fa626ef8c6b8 Mon Sep 17 00:00:00 2001 From: Kris Johnson Date: Tue, 20 May 2025 10:58:22 -0400 Subject: [PATCH 7/7] Add issue number to workaround comment --- rust-tui/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-tui/build.rs b/rust-tui/build.rs index 18968100e..1ff8aff7b 100644 --- a/rust-tui/build.rs +++ b/rust-tui/build.rs @@ -1,5 +1,5 @@ fn main() { - // Workaround for "multiple definition" linker errors on Linux + // Workaround for "multiple definition" linker errors on Linux (#SDKS-1088) if cfg!(target_os = "linux") { println!("cargo:rustc-link-arg=-Wl,--allow-multiple-definition"); }