From 186c396b0a90d8b4cb6e1f723d4082f8c551a593 Mon Sep 17 00:00:00 2001 From: "riseproject-dev[bot]" <330740410+riseproject-dev[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 08:52:02 +0000 Subject: [PATCH 1/3] nemo-relay: Add versions 0.9.4, 0.10.0 Signed-off-by: riseproject-dev[bot] <330740410+riseproject-dev[bot]@users.noreply.github.com> --- docs/packages/nemo-relay.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/packages/nemo-relay.yaml b/docs/packages/nemo-relay.yaml index 0c059535088..7bcd3c10dfb 100644 --- a/docs/packages/nemo-relay.yaml +++ b/docs/packages/nemo-relay.yaml @@ -37,3 +37,5 @@ versions: - filename: nemo_relay-0.9.3-cp311-abi3-manylinux_2_39_riscv64.whl sha256: aa052d9c32f2a32410d920b30e388b7373c372ee765852a939ddc52e0ba1c05a requires-python: '>=3.11' +- version: 0.9.4 +- version: 0.10.0 From dff8706f700ef253369c46e47eac9eed45584bf2 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Fri, 9 Oct 2026 16:32:13 +0000 Subject: [PATCH 2/3] nemo-relay: carry forward riscv64 patches to 0.9.4, 0.10.0 Nightly version bump omitted the patches/nemo-relay/ directory for 0.9.4, 0.10.0, so the build's unconditional `git apply .../*.patch` step failed with "No such file or directory" before any build/test ran. Copied forward the same patch set from 0.9.3 (unchanged since then). --- ...l-back-to-prost-build-s-own-protoc-l.patch | 39 +++++++++++++++++++ ...l-back-to-prost-build-s-own-protoc-l.patch | 39 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch create mode 100644 patches/nemo-relay/0.9.4/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch diff --git a/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch b/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch new file mode 100644 index 00000000000..c1892394f22 --- /dev/null +++ b/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch @@ -0,0 +1,39 @@ +From 7d7539c7e835dd8fd9cabd470748296a7a8bad72 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 6 Sep 2026 09:43:30 +0200 +Subject: [PATCH] worker-proto: fall back to prost-build's own protoc lookup on + riscv64 + +Upstream-Status: Inappropriate [protoc-bin-vendored ships no riscv64 binary; prost_build::Config::new() already defaults protoc_executable to its own PROTOC-env/PATH lookup, so simply not overriding it on unsupported platforms is the whole fix] + +protoc_bin_vendored::protoc_bin_path() returns Err on any platform outside +its small enum of prebuilt targets (x86, x86_64, aarch64, ppc64le, s390x, +macOS, Windows), which the crate's build.rs propagated with ?, aborting +the build before prost_build ever got a chance to look for a protoc on +PATH or via $PROTOC. Only calling protoc_executable() when the vendored +lookup succeeds restores that fallback, which is documented in +prost-build's own "Sourcing protoc" section. + +Signed-off-by: Ludovic Henry +--- + crates/worker-proto/build.rs | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/crates/worker-proto/build.rs b/crates/worker-proto/build.rs +index 5fddbc74..888ec366 100644 +--- a/crates/worker-proto/build.rs ++++ b/crates/worker-proto/build.rs +@@ -7,7 +7,12 @@ fn main() -> Result<(), Box> { + let proto = "proto/nemo/relay/worker/v1/plugin_worker.proto"; + let include = "proto"; + let mut prost = prost_build::Config::new(); +- prost.protoc_executable(protoc_bin_vendored::protoc_bin_path()?); ++ // protoc-bin-vendored ships no riscv64 binary; falling through leaves ++ // prost_build's own PROTOC-env/PATH lookup in charge, which resolves to ++ // the system protoc installed alongside this crate's build on that arch. ++ if let Ok(protoc) = protoc_bin_vendored::protoc_bin_path() { ++ prost.protoc_executable(protoc); ++ } + + tonic_prost_build::configure().compile_with_config(prost, &[proto], &[include])?; + Ok(()) diff --git a/patches/nemo-relay/0.9.4/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch b/patches/nemo-relay/0.9.4/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch new file mode 100644 index 00000000000..c1892394f22 --- /dev/null +++ b/patches/nemo-relay/0.9.4/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch @@ -0,0 +1,39 @@ +From 7d7539c7e835dd8fd9cabd470748296a7a8bad72 Mon Sep 17 00:00:00 2001 +From: Ludovic Henry +Date: Sun, 6 Sep 2026 09:43:30 +0200 +Subject: [PATCH] worker-proto: fall back to prost-build's own protoc lookup on + riscv64 + +Upstream-Status: Inappropriate [protoc-bin-vendored ships no riscv64 binary; prost_build::Config::new() already defaults protoc_executable to its own PROTOC-env/PATH lookup, so simply not overriding it on unsupported platforms is the whole fix] + +protoc_bin_vendored::protoc_bin_path() returns Err on any platform outside +its small enum of prebuilt targets (x86, x86_64, aarch64, ppc64le, s390x, +macOS, Windows), which the crate's build.rs propagated with ?, aborting +the build before prost_build ever got a chance to look for a protoc on +PATH or via $PROTOC. Only calling protoc_executable() when the vendored +lookup succeeds restores that fallback, which is documented in +prost-build's own "Sourcing protoc" section. + +Signed-off-by: Ludovic Henry +--- + crates/worker-proto/build.rs | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/crates/worker-proto/build.rs b/crates/worker-proto/build.rs +index 5fddbc74..888ec366 100644 +--- a/crates/worker-proto/build.rs ++++ b/crates/worker-proto/build.rs +@@ -7,7 +7,12 @@ fn main() -> Result<(), Box> { + let proto = "proto/nemo/relay/worker/v1/plugin_worker.proto"; + let include = "proto"; + let mut prost = prost_build::Config::new(); +- prost.protoc_executable(protoc_bin_vendored::protoc_bin_path()?); ++ // protoc-bin-vendored ships no riscv64 binary; falling through leaves ++ // prost_build's own PROTOC-env/PATH lookup in charge, which resolves to ++ // the system protoc installed alongside this crate's build on that arch. ++ if let Ok(protoc) = protoc_bin_vendored::protoc_bin_path() { ++ prost.protoc_executable(protoc); ++ } + + tonic_prost_build::configure().compile_with_config(prost, &[proto], &[include])?; + Ok(()) From cb7cc2bd3199039ce0f59de512bd5bff59c0c144 Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sat, 10 Oct 2026 07:49:56 +0000 Subject: [PATCH 3/3] nemo-relay: rebase worker-proto protoc patch onto 0.10.0 Upstream 0.10.0 added a prost.boxed(...) call right after the protoc_executable(protoc_bin_vendored::protoc_bin_path()?) line in crates/worker-proto/build.rs, so the carried-forward hunk no longer matched. The vendored-protoc lookup is still unconditional upstream, so the riscv64 fallback is still needed; only the context changed. --- ...rker-proto-fall-back-to-prost-build-s-own-protoc-l.patch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch b/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch index c1892394f22..91f9906f196 100644 --- a/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch +++ b/patches/nemo-relay/0.10.0/0001-worker-proto-fall-back-to-prost-build-s-own-protoc-l.patch @@ -1,4 +1,4 @@ -From 7d7539c7e835dd8fd9cabd470748296a7a8bad72 Mon Sep 17 00:00:00 2001 +From 42afa57b64ccb33cb3319688b4a3a82326198d2b Mon Sep 17 00:00:00 2001 From: Ludovic Henry Date: Sun, 6 Sep 2026 09:43:30 +0200 Subject: [PATCH] worker-proto: fall back to prost-build's own protoc lookup on @@ -20,7 +20,7 @@ Signed-off-by: Ludovic Henry 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/worker-proto/build.rs b/crates/worker-proto/build.rs -index 5fddbc74..888ec366 100644 +index 8bf3a868..b765910f 100644 --- a/crates/worker-proto/build.rs +++ b/crates/worker-proto/build.rs @@ -7,7 +7,12 @@ fn main() -> Result<(), Box> { @@ -34,6 +34,6 @@ index 5fddbc74..888ec366 100644 + if let Ok(protoc) = protoc_bin_vendored::protoc_bin_path() { + prost.protoc_executable(protoc); + } + prost.boxed(".nemo.relay.worker.v1.LlmInvocation.execution_codec_context"); tonic_prost_build::configure().compile_with_config(prost, &[proto], &[include])?; - Ok(())