From 470045b42e4175ed778a24664c910ed57c510c4f Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Mon, 27 Nov 2023 15:28:38 -0500 Subject: Upgrade KUKSA.val components to 0.4.2 release Upgrade to the KUKSA.val 0.4.2 release that includes the changes required to build the databroker on RISC-V. Notes: - A patch is required to allow building the databroker with Rust 1.68 instead of 1.70, which is currently not available to us on top of Yocto kirkstone. The patch only fixes the versions of the clap command-line parser crate and some of its direct dependencies to what was effectively being used with 0.4.0, so the risk seems minimal at present. When time permits, backporting Rust 1.70 to kirkstone using a mixin layer will be investigated, as that seems better with respect to handling any more KUKSA.val updates during the Quillback lifecycle. - The new optional VISS support has been enabled in the databroker build, but it has not yet been tested on target (a configuration change is required). - The kuksa-client recipe has been updated to build from the new separate kuksa-python-sdk repository. This futureproofs things a bit, as any further 0.4.x releases will only be buildable from the separate repository instead of kuksa.val as before. - The kuksa-dbc-feeder recipe has been left using the 0.4.0 tag commit for now, as no 0.4.2 tag has been made in the feeders repository. As well, some of the post-0.4.0 changes will require rework of the local patches on our side. Bug-AGL: SPEC-4893 Change-Id: I5f92fdea0095a432977c9fa7da05fe5347f7e789 Signed-off-by: Scott Murray Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29490 Tested-by: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller ci-image-build: Jenkins Job builder account --- ...lder-clap-version-to-build-with-Rust-1.68.patch | 266 +++++++++++++++++++++ .../0001-Remove-protobuf-src-usage.patch | 88 ------- .../0002-Remove-protobuf-src-usage.patch | 88 +++++++ 3 files changed, 354 insertions(+), 88 deletions(-) create mode 100644 recipes-connectivity/kuksa-val/kuksa-databroker/0001-Force-older-clap-version-to-build-with-Rust-1.68.patch delete mode 100644 recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch create mode 100644 recipes-connectivity/kuksa-val/kuksa-databroker/0002-Remove-protobuf-src-usage.patch (limited to 'recipes-connectivity/kuksa-val/kuksa-databroker') diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Force-older-clap-version-to-build-with-Rust-1.68.patch b/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Force-older-clap-version-to-build-with-Rust-1.68.patch new file mode 100644 index 00000000..b796742e --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Force-older-clap-version-to-build-with-Rust-1.68.patch @@ -0,0 +1,266 @@ +From 7b9a150acf2e0e05282590765f2b72b53cf0e79f Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Thu, 23 Nov 2023 10:36:27 -0500 +Subject: [PATCH 1/2] Force older clap version to build with Rust 1.68 + +To avoid needing Rust 1.70 for Yocto Kirkstone, patch the Cargo +configuration to use older versions of the clap command-line parser +crate and its dependencies. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Scott Murray +--- + Cargo.lock | 88 ++++++++++++++++------ + Cargo.toml | 2 +- + kuksa_databroker/databroker-cli/Cargo.toml | 2 +- + kuksa_databroker/databroker/Cargo.toml | 2 +- + 4 files changed, 69 insertions(+), 25 deletions(-) + +diff --git a/Cargo.lock b/Cargo.lock +index b3b48bf..bb9ec7f 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -52,29 +52,30 @@ dependencies = [ + + [[package]] + name = "anstream" +-version = "0.6.4" ++version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" ++checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" + dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", ++ "is-terminal", + "utf8parse", + ] + + [[package]] + name = "anstyle" +-version = "1.0.4" ++version = "1.0.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" ++checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" + + [[package]] + name = "anstyle-parse" +-version = "0.2.2" ++version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" ++checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" + dependencies = [ + "utf8parse", + ] +@@ -90,9 +91,9 @@ dependencies = [ + + [[package]] + name = "anstyle-wincon" +-version = "3.0.1" ++version = "1.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" ++checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" + dependencies = [ + "anstyle", + "windows-sys 0.48.0", +@@ -356,19 +357,20 @@ dependencies = [ + + [[package]] + name = "clap" +-version = "4.4.7" ++version = "4.3.24" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "ac495e00dcec98c83465d5ad66c5c4fabd652fd6686e7c6269b117e729a6f17b" ++checksum = "fb690e81c7840c0d7aade59f242ea3b41b9bc27bcd5997890e7702ae4b32e487" + dependencies = [ + "clap_builder", + "clap_derive", ++ "once_cell", + ] + + [[package]] + name = "clap_builder" +-version = "4.4.7" ++version = "4.3.24" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c77ed9a32a62e6ca27175d00d29d05ca32e396ea1eb5fb01d8256b669cec7663" ++checksum = "5ed2e96bc16d8d740f6f48d663eddf4b8a0983e79210fd55479b7bcd0a69860e" + dependencies = [ + "anstream", + "anstyle", +@@ -379,9 +381,9 @@ dependencies = [ + + [[package]] + name = "clap_derive" +-version = "4.4.7" ++version = "4.3.12" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" ++checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" + dependencies = [ + "heck", + "proc-macro2", +@@ -391,9 +393,9 @@ dependencies = [ + + [[package]] + name = "clap_lex" +-version = "0.6.0" ++version = "0.5.0" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" ++checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" + + [[package]] + name = "clru" +@@ -1640,6 +1642,28 @@ version = "0.3.12" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "e1be380c410bf0595e94992a648ea89db4dd3f3354ba54af206fd2a68cf5ac8e" + ++[[package]] ++name = "io-lifetimes" ++version = "1.0.11" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" ++dependencies = [ ++ "hermit-abi", ++ "libc", ++ "windows-sys 0.48.0", ++] ++ ++[[package]] ++name = "is-terminal" ++version = "0.4.9" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" ++dependencies = [ ++ "hermit-abi", ++ "rustix 0.38.21", ++ "windows-sys 0.48.0", ++] ++ + [[package]] + name = "itertools" + version = "0.10.5" +@@ -1759,6 +1783,12 @@ version = "0.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + ++[[package]] ++name = "linux-raw-sys" ++version = "0.3.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" ++ + [[package]] + name = "linux-raw-sys" + version = "0.4.10" +@@ -2399,6 +2429,20 @@ version = "0.1.23" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + ++[[package]] ++name = "rustix" ++version = "0.37.25" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d4eb579851244c2c03e7c24f501c3432bed80b8f720af1d6e5b0e0f01555a035" ++dependencies = [ ++ "bitflags 1.3.2", ++ "errno", ++ "io-lifetimes", ++ "libc", ++ "linux-raw-sys 0.3.8", ++ "windows-sys 0.48.0", ++] ++ + [[package]] + name = "rustix" + version = "0.38.21" +@@ -2408,7 +2452,7 @@ dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", +- "linux-raw-sys", ++ "linux-raw-sys 0.4.10", + "windows-sys 0.48.0", + ] + +@@ -2760,17 +2804,17 @@ dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.4.1", +- "rustix", ++ "rustix 0.38.21", + "windows-sys 0.48.0", + ] + + [[package]] + name = "terminal_size" +-version = "0.3.0" ++version = "0.2.6" + source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" ++checksum = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237" + dependencies = [ +- "rustix", ++ "rustix 0.37.25", + "windows-sys 0.48.0", + ] + +@@ -3325,7 +3369,7 @@ dependencies = [ + "either", + "home", + "once_cell", +- "rustix", ++ "rustix 0.38.21", + ] + + [[package]] +diff --git a/Cargo.toml b/Cargo.toml +index 51db3f1..df8e82d 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -21,7 +21,7 @@ members = [ + ] + + [workspace.dependencies] +-clap = { version = "4.2", default-features = false } ++clap = { version = "=4.3", default-features = false } + databroker-proto = { path = "kuksa_databroker/databroker-proto" } + # prost has no features + prost = "0.11" +diff --git a/kuksa_databroker/databroker-cli/Cargo.toml b/kuksa_databroker/databroker-cli/Cargo.toml +index fc54372..9dc362f 100644 +--- a/kuksa_databroker/databroker-cli/Cargo.toml ++++ b/kuksa_databroker/databroker-cli/Cargo.toml +@@ -32,7 +32,7 @@ tokio = { workspace = true, features = [ + tokio-stream = { workspace = true, features = ["sync"] } + linefeed = "0.6" + ansi_term = "0.12" +-clap = { workspace = true, features = [ ++clap = { version = "=4.3", workspace = true, features = [ + "std", + "env", + "derive", +diff --git a/kuksa_databroker/databroker/Cargo.toml b/kuksa_databroker/databroker/Cargo.toml +index d48df29..b34bdb5 100644 +--- a/kuksa_databroker/databroker/Cargo.toml ++++ b/kuksa_databroker/databroker/Cargo.toml +@@ -40,7 +40,7 @@ tracing-subscriber = { version = "0.3.11", default-features = false, features = + "env-filter", + "ansi", + ] } +-clap = { workspace = true, features = [ ++clap = { version = "=4.3", workspace = true, features = [ + "std", + "env", + "derive", +-- +2.42.0 + diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch b/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch deleted file mode 100644 index a797b7ef..00000000 --- a/recipes-connectivity/kuksa-val/kuksa-databroker/0001-Remove-protobuf-src-usage.patch +++ /dev/null @@ -1,88 +0,0 @@ -From 4c21bc033a84949b557a78e5147b7bd1d4f38aff Mon Sep 17 00:00:00 2001 -From: Scott Murray -Date: Mon, 7 Aug 2023 15:19:34 -0400 -Subject: [PATCH] Remove protobuf-src usage - -The vendoring of a protoc and libprotobuf build that was added in -commit 890703c9 by using protobuf-src is not really workable with -OpenEmbedded / Yocto Project, and somewhat undesirable for any -distribution package builds when it comes to transparency and -reproducibility. Remove it so that building in OE/YP will work. - -Upstream-Status: Pending - -Signed-off-by: Scott Murray ---- - Cargo.lock | 19 ------------------- - kuksa_databroker/databroker-proto/Cargo.toml | 1 - - kuksa_databroker/databroker-proto/build.rs | 1 - - 3 files changed, 21 deletions(-) - -diff --git a/Cargo.lock b/Cargo.lock -index 54defdf..2795ace 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -170,15 +170,6 @@ version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - --[[package]] --name = "autotools" --version = "0.2.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" --dependencies = [ -- "cc", --] -- - [[package]] - name = "axum" - version = "0.6.19" -@@ -536,7 +527,6 @@ version = "0.4.0" - dependencies = [ - "prost", - "prost-types", -- "protobuf-src", - "tonic", - "tonic-build", - ] -@@ -2258,15 +2248,6 @@ dependencies = [ - "prost", - ] - --[[package]] --name = "protobuf-src" --version = "1.1.0+21.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" --dependencies = [ -- "autotools", --] -- - [[package]] - name = "quote" - version = "1.0.32" -diff --git a/kuksa_databroker/databroker-proto/Cargo.toml b/kuksa_databroker/databroker-proto/Cargo.toml -index af73696..023c709 100644 ---- a/kuksa_databroker/databroker-proto/Cargo.toml -+++ b/kuksa_databroker/databroker-proto/Cargo.toml -@@ -25,4 +25,3 @@ prost-types = { workspace = true } - - [build-dependencies] - tonic-build = { workspace = true, features = ["transport", "prost"] } --protobuf-src = "1.1.0" -diff --git a/kuksa_databroker/databroker-proto/build.rs b/kuksa_databroker/databroker-proto/build.rs -index d02a006..d3a70ac 100644 ---- a/kuksa_databroker/databroker-proto/build.rs -+++ b/kuksa_databroker/databroker-proto/build.rs -@@ -12,7 +12,6 @@ - ********************************************************************************/ - - fn main() -> Result<(), Box> { -- std::env::set_var("PROTOC", protobuf_src::protoc()); - tonic_build::configure() - .compile_well_known_types(false) - .protoc_arg("--experimental_allow_proto3_optional") --- -2.41.0 - diff --git a/recipes-connectivity/kuksa-val/kuksa-databroker/0002-Remove-protobuf-src-usage.patch b/recipes-connectivity/kuksa-val/kuksa-databroker/0002-Remove-protobuf-src-usage.patch new file mode 100644 index 00000000..05e92c7d --- /dev/null +++ b/recipes-connectivity/kuksa-val/kuksa-databroker/0002-Remove-protobuf-src-usage.patch @@ -0,0 +1,88 @@ +From 37c2a7380c2b1993e62deee4d80e85ad0340ef78 Mon Sep 17 00:00:00 2001 +From: Scott Murray +Date: Thu, 23 Nov 2023 10:43:38 -0500 +Subject: [PATCH 2/2] Remove protobuf-src usage + +The vendoring of a protoc and libprotobuf build that was added in +commit 890703c9 by using protobuf-src is not really workable with +OpenEmbedded / Yocto Project, and somewhat undesirable for any +distribution package builds when it comes to transparency and +reproducibility. Remove it so that building in OE/YP will work. + +Upstream-Status: Pending + +Signed-off-by: Scott Murray +--- + Cargo.lock | 19 ------------------- + kuksa_databroker/databroker-proto/Cargo.toml | 1 - + kuksa_databroker/databroker-proto/build.rs | 1 - + 3 files changed, 21 deletions(-) + +diff --git a/Cargo.lock b/Cargo.lock +index bb9ec7f..383e7e6 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -162,15 +162,6 @@ version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" + checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +-[[package]] +-name = "autotools" +-version = "0.2.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" +-dependencies = [ +- "cc", +-] +- + [[package]] + name = "axum" + version = "0.6.20" +@@ -604,7 +595,6 @@ version = "0.4.1" + dependencies = [ + "prost", + "prost-types", +- "protobuf-src", + "tonic", + "tonic-build", + ] +@@ -2244,15 +2234,6 @@ dependencies = [ + "prost", + ] + +-[[package]] +-name = "protobuf-src" +-version = "1.1.0+21.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +-dependencies = [ +- "autotools", +-] +- + [[package]] + name = "quote" + version = "1.0.33" +diff --git a/kuksa_databroker/databroker-proto/Cargo.toml b/kuksa_databroker/databroker-proto/Cargo.toml +index 5957b7e..9b92162 100644 +--- a/kuksa_databroker/databroker-proto/Cargo.toml ++++ b/kuksa_databroker/databroker-proto/Cargo.toml +@@ -25,4 +25,3 @@ prost-types = { workspace = true } + + [build-dependencies] + tonic-build = { workspace = true, features = ["transport", "prost"] } +-protobuf-src = "1.1.0" +diff --git a/kuksa_databroker/databroker-proto/build.rs b/kuksa_databroker/databroker-proto/build.rs +index d02a006..d3a70ac 100644 +--- a/kuksa_databroker/databroker-proto/build.rs ++++ b/kuksa_databroker/databroker-proto/build.rs +@@ -12,7 +12,6 @@ + ********************************************************************************/ + + fn main() -> Result<(), Box> { +- std::env::set_var("PROTOC", protobuf_src::protoc()); + tonic_build::configure() + .compile_well_known_types(false) + .protoc_arg("--experimental_allow_proto3_optional") +-- +2.42.0 + -- cgit 1.2.3-korg