Title: [License Exception Request] [wasmCloud] [CDLA-Permissive-2.0] webpki-roots · Issue #1582 · cncf/foundation · GitHub
Open Graph Title: [License Exception Request] [wasmCloud] [CDLA-Permissive-2.0] webpki-roots · Issue #1582 · cncf/foundation
X Title: [License Exception Request] [wasmCloud] [CDLA-Permissive-2.0] webpki-roots · Issue #1582 · cncf/foundation
Description: For which CNCF project are you requesting exceptions? wasmCloud Are you an official maintainer of this project? Yes List of components requiring an exception Component Upstream URL Project Usage URL License(s) Purpose webpki-roots 1.0.10...
Open Graph Description: For which CNCF project are you requesting exceptions? wasmCloud Are you an official maintainer of this project? Yes List of components requiring an exception Component Upstream URL Project Usage UR...
X Description: For which CNCF project are you requesting exceptions? wasmCloud Are you an official maintainer of this project? Yes List of components requiring an exception Component Upstream URL Project Usage UR...
Opengraph URL: https://github.com/cncf/foundation/issues/1582
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[License Exception Request] [wasmCloud] [CDLA-Permissive-2.0] webpki-roots","articleBody":"### For which CNCF project are you requesting exceptions?\n\nwasmCloud\n\n### Are you an official maintainer of this project?\n\nYes\n\n### List of components requiring an exception\n\n| Component | Upstream URL | Project Usage URL | License(s) | Purpose |\n|-----------|-----------|-----------|-----------|-----------|\n| webpki-roots 1.0.10 | https://github.com/rustls/webpki-roots | https://github.com/wasmCloud/wasmCloud/blob/main/crates/wash-runtime/Cargo.toml | CDLA-Permissive-2.0 | Mozilla's CA root certificate set, used as the TLS trust store for outbound connections (HTTP egress, OCI registries, Postgres, OTLP export) |\n\n\n### Distribution and integration model\n\n- [x] **CNCF-Distributed**: The CNCF project will distribute the dependency or the resulting combined artifacts to users.\n- [ ] **User-Fetched Dependency**: The CNCF project code will cause the user's system to automatically retrieve the dependency from an upstream source at build, install, or runtime.\n- [ ] **System Component**: The CNCF project expects that the dependency will either already be present on the user's system or will be installed independently by the user.\n- [ ] **Not Distributed + Not Needed by End User (Internal Project Tooling)**: ALL of the following are true:\n\n### Distribution and integration model — explanation\n\n`webpki-roots` is a direct dependency of the Apache-2.0 `wash-runtime` crate (the wasmCloud host runtime) and also arrives through `hyper-rustls` and `reqwest`. It is compiled into the `wash` binary, which wasmCloud publishes on GitHub Releases and in the wasmCloud host container images. The bundled root set lets the host verify TLS servers the same way on every platform, independent of the operating system's trust store.\n\n\n### Modification status\n\n- [ ] **Modified Upstream**: The CNCF project will patch, alter, or otherwise modify the source code of the dependency and contribute upstream.\n- [ ] **Modified Downstream**: The CNCF project will patch, alter, or otherwise modify the source code of the dependency and maintain a downstream fork or local copy.\n- [x] **Unmodified**: The CNCF project will use the dependency exactly as provided by the upstream maintainers without any changes to its source code.\n\n### Modification status — explanation\n\nThe crate is consumed at its published crates.io version with no `[patch]` override or local copy.\n\n\n### Structural separation\n\n- [x] **Separated Component**: The dependency's code will either be (a) kept in a distinct directory or module clearly separated from CNCF project code, or (b) retrieved at build/installation time from a third-party repository and never stored in the CNCF project repository.\n- [ ] **Intermingled Code**: The dependency's code will be \"mixed in\" with CNCF source files, copied into existing project files, or will otherwise lose its distinct directory/module boundary.\n\n### Structural separation — explanation\n\nThe crate is not vendored. Cargo fetches it from crates.io at build time; the repository references it only through `Cargo.toml` and `Cargo.lock`.\n\n\n### Communication mechanism\n\n- [x] **Static Linking**: The dependency and the CNCF project code will be combined into a single binary or similar type of artifact during the build process.\n- [ ] **Dynamic Linking**: The CNCF project code will interact with the dependency by loading it into the shared address space (memory) at run-time. This includes traditional shared objects compiled into a separate binary, as well as runtime module loading in interpreted or JIT-compiled languages.\n- [ ] **Separate Process**: The dependency and the CNCF project code will run as distinct executables and communicate via Inter-Process Communication (e.g., pipes, sockets, or shared files)\n- [ ] **Network Interaction**: The dependency and the CNCF project code will be logically and physically separated by a network boundary, with the CNCF project's code acting as a client or consumer of the remote service and interacting with the dependency exclusively via standardized network protocols.\n\n### Communication mechanism — explanation\n\nAs with any Rust crate dependency, the crate is compiled and statically linked into the `wash` binary.\n\n\n### Data exchange\n\n- [x] **Tightly Coupled**: The upstream dependency and CNCF project code will exchange complex internal data structures such as shared pointers, class instances, or private memory offsets that require extensive knowledge of the other component's internal memory layout.\n- [ ] **Arms-Length Only**: The communication between the dependency and the CNCF project code will be limited to standard serialized data (e.g., JSON, XML, or Protobuf) where data is \"flattened\" for transport and neither component accesses the other's internal memory structures.\n\n### Data exchange — explanation\n\nwasmCloud reads the crate's public `TLS_SERVER_ROOTS` constant in-process and passes it to rustls as a root certificate store. The crate is a static table of certificate data with no behavior of its own.\n\n\n### Additional information — explanation\n\nThe Governing Board approved this same component for OpenTelemetry on June 25, 2025 (https://github.com/cncf/foundation/issues/1007). The CDLA-Permissive-2.0 license covers the certificate data, which `webpki-roots` derives from Mozilla's CA program.\n\nWe would also like confirmation on one license that the audit could not resolve. Wasmtime, Cranelift and related crates (42 crates in the `wash` binary, including `wasmtime`, `cranelift-codegen`, `regalloc2` and `wasm-pkg-client`) are licensed only as `Apache-2.0 WITH LLVM-exception`. The LLVM exception adds permissions to Apache-2.0 and removes none, so we believe no exception is needed, but the expression is not on the allowlist and we found no prior guidance in this repository. Could staff confirm whether these components need an exception request?","author":{"url":"https://github.com/ricochet","@type":"Person","name":"ricochet"},"datePublished":"2026-10-21T14:06:19Z","url":"https://github.com/cncf/foundation/issues/1582"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:ff4fb402-ffec-5dc1-2601-9a80f23ef538 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DFB8:FD5B7:B8E9A:F00F9:6AEBDF51 |
| html-safe-nonce | 0ed748ee32b6e399fae8d4ec91cd73695f0eafadc88e154e867dd9565a3a4b26 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERkI4OkZENUI3OkI4RTlBOkYwMEY5OjZBRUJERjUxIiwidmlzaXRvcl9pZCI6IjcwMDA3NjQ0MzA0Nzk1MTU0NzMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | e7c30694a1ea6924bbce373c7b8a606236cba6bff396e6127e22f0f8a796b4c6 |
| hovercard-subject-tag | issue:5962104987 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/cncf/foundation/1582/issue_layout |
| twitter:image | https://opengraph.githubassets.com/df2c0a4daeb7f486058b2738ca5adaef4f8cf834846514cbf6ce1d5b5072f9af/cncf/foundation/issues/1582 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/df2c0a4daeb7f486058b2738ca5adaef4f8cf834846514cbf6ce1d5b5072f9af/cncf/foundation/issues/1582 |
| og:image:alt | For which CNCF project are you requesting exceptions? wasmCloud Are you an official maintainer of this project? Yes List of components requiring an exception Component Upstream URL Project Usage UR... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ricochet |
| hostname | github.com |
| expected-hostname | github.com |
| None | 701f7e3aecc56e7594e73fa7b7e1483af74322a67f7038be453d0feb05e86e77 |
| turbo-cache-control | no-preview |
| go-import | github.com/cncf/foundation git https://github.com/cncf/foundation.git |
| octolytics-dimension-user_id | 13455738 |
| octolytics-dimension-user_login | cncf |
| octolytics-dimension-repository_id | 65915265 |
| octolytics-dimension-repository_nwo | cncf/foundation |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 65915265 |
| octolytics-dimension-repository_network_root_nwo | cncf/foundation |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 12d1048a3491dd63e4193b2937cf72f1c24a2a52 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width