Skip to content

Enable native-certs for ureq across all crates - #2

Merged
michaelroy-amd merged 1 commit into
mainfrom
native-certs
Jun 14, 2026
Merged

Enable native-certs for ureq across all crates#2
michaelroy-amd merged 1 commit into
mainfrom
native-certs

Conversation

@rominf

@rominf rominf commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Enable ureq's native-certs feature in every crate that makes HTTPS requests (rocm, rocmd, rocm-core, rocm-engine-lemonade), so TLS validates against the operating system's certificate store instead of the bundled webpki-roots static set.

Why: in environments that terminate TLS with a custom/private root CA or a corporate MITM proxy, the static webpki root set rejects the re-signed certificate chain and downloads fail. Using the system trust store lets those certificates (already installed at the OS level) be honored, while remaining a no-op on machines with a standard public CA chain.

Risk: low — only changes which trust anchors ureq consults; no API or behavior change for standard public endpoints.

Test plan

  • cargo build across the workspace with the feature enabled.
  • Verified downloads succeed behind a TLS-intercepting proxy with a custom root CA, where they previously failed certificate verification.

Switch ureq's TLS from the bundled webpki-roots to the platform's native
certificate store by enabling the `native-certs` feature in every crate that
makes HTTPS requests (rocm, rocmd, rocm-core, lemonade).

This lets downloads succeed in environments that terminate TLS with a custom
root CA or a corporate MITM proxy, where the static webpki root set rejects
the re-signed certificate chain.
@r0x0r

r0x0r commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator

TLS error is gone when downloading Python on macOS with this pr

@rominf

rominf commented Jun 12, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks for a review, @r0x0r. Let's wait for #4 to be merged, to make all CI checks pass.

@michaelroy-amd michaelroy-amd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving: clean native-certs enablement across crates. Incremental PR-stack merge.

@michaelroy-amd
michaelroy-amd merged commit 1ed6572 into main Jun 14, 2026
1 of 5 checks passed
michaelroy-amd added a commit that referenced this pull request Jun 29, 2026
The 5-tab IA has no ActiveTab::Overview and overview::draw had zero
callers; tabs/mod.rs::draw_placeholder was likewise uncalled (rominf #2,
in-scope part). Removes overview.rs, its pub mod decl, draw_placeholder,
and the imports only those needed. tui.rs is deferred to a tracked issue.

Signed-off-by: Michael Roy <michael.roy@amd.com>
michaelroy-amd added a commit that referenced this pull request Jul 14, 2026
The readiness-reason helper hand-rolled two authority parsers
(port_from_base_url / host_from_base_url) with rsplit(':'), which mangles
a bracketed IPv6 loopback: host_from_base_url("http://[::1]:8000") kept
the brackets so is_loopback_host("[::1]") was false, and
port_from_base_url("http://[::1]/v1") parsed "1]" and failed. Either
path silently disabled chat_backend_wait_reason for a legitimate local
IPv6 endpoint.

Replace both helpers with the crate's existing parse_host_port, which
already strips IPv6 brackets, defaults the port from the scheme, and is
pinned by parse_host_port_handles_bracketed_ipv6. Drop the now-redundant
per-helper unit tests (covered by the llm.rs suite) and add a
bracketed-IPv6 regression test against chat_backend_wait_reason.

Also tighten the doc comment: Running is not a hard HTTP-readiness
guarantee, and record the #106/#107 status-signal dependency in-tree so
the Starting/Stopped/Error arms are discoverable as pending until that
work lands beneath this change.

Addresses pr-review-watcher blocking finding #2 (IPv6) and the doc /
test-coverage non-blocking notes on #108.

Signed-off-by: Michael Roy <michael.roy@amd.com>
@rominf
rominf deleted the native-certs branch July 22, 2026 10:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants