From 7bfc44432d15d293b005b0d2ede9fdbf263bb57a Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 15 Jul 2026 22:52:17 -0700 Subject: [PATCH] fix Rust build with protoc versions lacking native proto3 optional (#10343) pass --experimental_allow_proto3_optional to protoc in the Rust build filer.proto now carries a proto3 optional field, which the protoc 3.12 shipped in ubuntu-22.04 apt rejects unless this flag is set. Newer protoc versions still accept the flag, so it is safe everywhere. --- seaweed-volume/build.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/seaweed-volume/build.rs b/seaweed-volume/build.rs index 08d5cb392..a42b8bdfc 100644 --- a/seaweed-volume/build.rs +++ b/seaweed-volume/build.rs @@ -3,6 +3,9 @@ fn main() -> Result<(), Box> { tonic_build::configure() .build_server(true) .build_client(true) + // filer.proto uses proto3 optional; older protoc (e.g. 3.12 from ubuntu-22.04 apt) + // rejects it without this flag, and newer protoc still accepts the flag + .protoc_arg("--experimental_allow_proto3_optional") .file_descriptor_set_path(out_dir.join("seaweed_descriptor.bin")) .compile_protos( &[