fix(build): harden rustls dependency path for Linux builds (#275)

This commit is contained in:
Chummy 2026-02-17 00:39:28 +08:00 committed by GitHub
parent 3234159c6c
commit b36f23784a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 16 additions and 8 deletions

View file

@ -95,7 +95,7 @@ http-body-util = "0.1"
# OpenTelemetry — OTLP trace + metrics export
opentelemetry = { version = "0.31", default-features = false, features = ["trace", "metrics"] }
opentelemetry_sdk = { version = "0.31", default-features = false, features = ["trace", "metrics"] }
opentelemetry-otlp = { version = "0.31", default-features = false, features = ["trace", "metrics", "http-proto", "reqwest-blocking-client"] }
opentelemetry-otlp = { version = "0.31", default-features = false, features = ["trace", "metrics", "http-proto", "reqwest-client", "reqwest-rustls-webpki-roots"] }
[features]
default = []

View file

@ -67,8 +67,8 @@ ls -lh target/release/zeroclaw
```bash
git clone https://github.com/zeroclaw-labs/zeroclaw.git
cd zeroclaw
cargo build --release
cargo install --path . --force
cargo build --release --locked
cargo install --path . --force --locked
# Quick setup (no prompts)
zeroclaw onboard --api-key sk-... --provider openrouter
@ -474,6 +474,18 @@ A git hook runs `cargo fmt --check`, `cargo clippy -- -D warnings`, and `cargo t
git config core.hooksPath .githooks
```
### Build troubleshooting (Linux OpenSSL errors)
If you see an `openssl-sys` build error, sync dependencies and rebuild with the repository lockfile:
```bash
git pull
cargo build --release --locked
cargo install --path . --force --locked
```
ZeroClaw is configured to use `rustls` for HTTP/TLS dependencies; `--locked` keeps the transitive graph deterministic on fresh environments.
To skip the hook when you need a quick push during development:
```bash

View file

@ -52,7 +52,6 @@ const CHANNEL_MAX_IN_FLIGHT_MESSAGES: usize = 64;
struct ChannelRuntimeContext {
channels_by_name: Arc<HashMap<String, Arc<dyn Channel>>>,
provider: Arc<dyn Provider>,
provider_name: Arc<String>,
memory: Arc<dyn Memory>,
tools_registry: Arc<Vec<Box<dyn Tool>>>,
observer: Arc<dyn Observer>,
@ -188,7 +187,7 @@ async fn process_channel_message(ctx: Arc<ChannelRuntimeContext>, msg: traits::C
&mut history,
ctx.tools_registry.as_ref(),
ctx.observer.as_ref(),
"channels",
"channel-runtime",
ctx.model.as_str(),
ctx.temperature,
),
@ -969,7 +968,6 @@ pub async fn start_channels(config: Config) -> Result<()> {
let runtime_ctx = Arc::new(ChannelRuntimeContext {
channels_by_name,
provider: Arc::clone(&provider),
provider_name: Arc::new(provider_name),
memory: Arc::clone(&mem),
tools_registry: Arc::clone(&tools_registry),
observer,
@ -1162,7 +1160,6 @@ mod tests {
let runtime_ctx = Arc::new(ChannelRuntimeContext {
channels_by_name: Arc::new(channels_by_name),
provider: Arc::new(ToolCallingProvider),
provider_name: Arc::new("openrouter".to_string()),
memory: Arc::new(NoopMemory),
tools_registry: Arc::new(vec![Box::new(MockPriceTool)]),
observer: Arc::new(NoopObserver),
@ -1253,7 +1250,6 @@ mod tests {
provider: Arc::new(SlowProvider {
delay: Duration::from_millis(250),
}),
provider_name: Arc::new("openrouter".to_string()),
memory: Arc::new(NoopMemory),
tools_registry: Arc::new(vec![]),
observer: Arc::new(NoopObserver),