mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-10 15:16:56 +00:00
9996d567d9
* fix(build): support non-Linux Unix targets (illumos/Solaris/*BSD) Two independent build-infrastructure blockers kept RustFS from building on non-Linux Unix platforms. Neither touches runtime logic. 1. pulsar regenerates its protobuf bindings in build.rs on every build, which needs `protoc`. Platforms without a packaged protoc (illumos/Solaris/*BSD) now enable pulsar's `protobuf-src` feature via a cfg-gated dependency, which builds a vendored protoc from C++ sources. Mainstream targets keep the lean dependency and their existing system/CI protoc. 2. clocksource 0.8.3 (pulled in transitively by ratelimit 0.10) used the Linux-only `CLOCK_MONOTONIC_COARSE`. ratelimit 2.0 dropped the clocksource dependency entirely, so upgrading removes the portability problem at the root rather than patching clocksource. The bandwidth throttle's bulk `consume()` is rewritten onto ratelimit 2.0's `try_wait_n`, preserving the best-effort partial-consumption semantics. Verified: cargo check + bandwidth monitor unit tests pass; cargo tree confirms protobuf-src is enabled only for illumos/Solaris/*BSD and clocksource is gone from the graph. The final illumos build must be confirmed on-platform. Closes #3195 * fix(ecstore): guard ratelimit v2 capacity overflow Co-Authored-By: heihutu <heihutu@gmail.com> * test(ecstore): avoid slow bandwidth reader timeout Co-Authored-By: heihutu <heihutu@gmail.com> * fix(targets): drop vendored pulsar protobuf build Co-Authored-By: heihutu <heihutu@gmail.com> --------- Co-authored-by: houseme <housemecn@gmail.com> Co-authored-by: heihutu <heihutu@gmail.com>