mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-19 11:06:17 +00:00
fix(build): support non-Linux Unix targets (illumos/Solaris/*BSD) (#5853)
* 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>
This commit is contained in:
Generated
+2
-15
@@ -2006,17 +2006,6 @@ version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
||||
|
||||
[[package]]
|
||||
name = "clocksource"
|
||||
version = "0.8.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "46a4f8c23584e9dc6e40de1406e8c776ae727c49f7cb85c0bb23fb8c2096f7e0"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"time",
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "cmake"
|
||||
version = "0.1.58"
|
||||
@@ -8394,12 +8383,10 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ratelimit"
|
||||
version = "0.10.1"
|
||||
version = "2.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5dc94ed8e3de45f6d8d052869d48c0dbeebcaa7a6c345ec7f0f917e10347428e"
|
||||
checksum = "e78b08065c51c82ff8c4a0d88e3dce3edfce39c375e946c3464210fff3433fb8"
|
||||
dependencies = [
|
||||
"clocksource",
|
||||
"parking_lot",
|
||||
"thiserror 2.0.20",
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user