use-rustls-ring transitively enables rustls/default (aws-lc-rs), breaking ring-only builds
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust
- Área
- build-system
Línea de trabajo
Comienza con las definiciones de features de Cargo para rustls-ring y rustls que se muestran en el issue; después, ejecuta cargo tree -e features para confirmar la cadena de features actual. Actualiza las referencias a los features opcionales de rustls para que use-rustls-ring no habilite rustls/default y verifica que las compilaciones ring-only ya no incluyan aws-lc-rs.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In 0.25.0 the rustls-ring feature is defined as:
rustls-ring = [
"webpki-roots",
"dep:rustls",
"rustls/ring",
"rustls/logging",
"rustls/std",
"rustls/tls12",
]
The "rustls/ring" entries (without ?) also activate the crate's explicit rustls feature:
rustls = [
"webpki-roots",
"dep:rustls",
"rustls/default",
]
which enables rustls/default, i.e. the aws-lc-rs provider. So a downstream crate asking for use-rustls-ring (expecting ring only) ends up with both ring and aws-lc-rs enabled on rustls. cargo tree -e features shows the chain:
electrum-client feature "rustls"
└── electrum-client feature "rustls-ring"
└── electrum-client feature "use-rustls-ring"
Consequences downstream: rustls can no longer auto-select a process-level CryptoProvider, so any other crate in the same binary that relies on the process default panics on first TLS use with:
Could not automatically determine the process-level CryptoProvider from Rustls crate features.
(electrum-client itself is unaffected since it selects its provider explicitly.) We hit this in a project after bumping electrum-client 0.21 -> 0.25: the shared rustls went from ring only to ring + aws-lc-rs + default, and an unrelated tokio-tungstenite connection in the same binary started panicking.
Suggested fix
Use the ? syntax so rustls-ring does not activate the rustls feature:
rustls-ring = [
"webpki-roots",
"dep:rustls",
"rustls?/ring",
"rustls?/logging",
"rustls?/std",
"rustls?/tls12",
]
(0.21 did not have this problem; the regression came with the feature reshuffle in later releases.)
- Lenguaje dominante
- Rust
- Estrellas
- 89
- Forks
- 87
- Merge medio
- 1 h 25 min
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de bitcoindevkit/rust-electrum-client
-
[Hardening] Reject non-object JSON notifications without panicking (F-008)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
[Hardening] Validate legacy block_headers length before slicing (F-007)Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
bitcoindevkit/rust-electrum-client#221 · 1 comentario ·
-
discussion new feature
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
bitcoindevkit/rust-electrum-client#211 · 2 comentarios ·
-
Rework CI to use `cargo-rbmt`Quizá libre de nuevo @luisschwab la tomó hace 205 días y no hay ningún pull request abierto. Abierto
bitcoindevkit/rust-electrum-client#202 · 1 asignado ·
Todos los issues de bitcoindevkit/rust-electrum-client
Issues similares
-
Panic on live viewport resize when unstyled elements exist in display: none subtreePosiblemente ocupada @GoCoder7 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
DioxusLabs/blitz#1488 ·
Los mantenedores suelen responder en 1 día
-
🏷️ good first issue enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
S-Needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
vectordotdev/vrl#2042 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día