mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-09-08 15:41:15 +02:00
* worker: compile plugin.proto with the protoc that ships with the build seaweed-volume already does this: protoc-bin-vendored carries the binary, so the build needs no package manager and every build sees the same version. An explicit PROTOC still wins, which is what lets the lance crates - whose own build scripts read the same variable - share it. Claude-Session: https://claude.ai/code/session_01Rkp1Mw5E89Jp6dzJFYiMrm * ci: point the worker builds at the vendored protoc The jobs installed protobuf-compiler for lance's build scripts. They read PROTOC, so pointing it at the binary protoc-bin-vendored already puts in the registry serves them without a system package - one less apt call on the way to a release, and the same protoc a developer's build uses. Claude-Session: https://claude.ai/code/session_01Rkp1Mw5E89Jp6dzJFYiMrm * docs: say what the worker build needs from protoc The lance crates' build scripts are the ones that need it, not ours, and they take the same vendored binary. Claude-Session: https://claude.ai/code/session_01Rkp1Mw5E89Jp6dzJFYiMrm
21 lines
1.0 KiB
Rust
21 lines
1.0 KiB
Rust
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
// Use the protoc that ships with protoc-bin-vendored rather than a system
|
|
// one, so the build needs no package manager and always sees the same
|
|
// version. An explicit PROTOC still wins, for packagers supplying their own
|
|
// and for the lance crates, whose own build scripts read the same variable.
|
|
if std::env::var_os("PROTOC").is_none() {
|
|
std::env::set_var("PROTOC", protoc_bin_vendored::protoc_bin_path()?);
|
|
}
|
|
|
|
// Compiled straight out of the Go tree, the way seaweed-volume already reads
|
|
// filer.proto, so the contract cannot drift from a vendored copy.
|
|
tonic_build::configure()
|
|
// The server half is only for tests, which stand up a fake admin.
|
|
.build_server(true)
|
|
.build_client(true)
|
|
.protoc_arg("--experimental_allow_proto3_optional")
|
|
.compile_protos(&["../../../weed/pb/plugin.proto"], &["../../../weed/pb/"])?;
|
|
println!("cargo:rerun-if-changed=../../../weed/pb/plugin.proto");
|
|
Ok(())
|
|
}
|