Skip to content

It is not possible to compile RustPython (0.5.0 and current main) with feature ssl-vendor #7893

Closed

Description

@im-0

Summary

# cargo clean && cargo build --release --no-default-features --features threading,stdlib,stdio,importlib,host_env,freeze-stdlib,sqlite,ssl-vendor
     Removed 3814 files, 1.1GiB total
  Downloaded openssl v0.10.76
  Downloaded openssl-sys v0.9.112
  Downloaded 2 crates (355.0KiB) in 0.54s
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.22
   Compiling quote v1.0.45
...
   Compiling dirs-next v2.0.0
   Compiling lexopt v0.3.2
   Compiling env_logger v0.11.10
   Compiling liblzma v0.4.6
error[E0425]: cannot find type `LazyLock` in this scope
   --> crates/stdlib/src/openssl.rs:435:24
    |
435 |     static CERT_PATHS: LazyLock<(PathBuf, PathBuf)> = LazyLock::new(|| {
    |                        ^^^^^^^^ not found in this scope
    |
help: consider importing one of these structs
    |
 53 +     use crate::openssl::LazyLock;
    |
 53 +     use std::sync::LazyLock;
    |

error[E0433]: cannot find type `LazyLock` in this scope
   --> crates/stdlib/src/openssl.rs:435:55
    |
435 |     static CERT_PATHS: LazyLock<(PathBuf, PathBuf)> = LazyLock::new(|| {
    |                                                       ^^^^^^^^ use of undeclared type `LazyLock`
    |
help: consider importing one of these structs
    |
 53 +     use crate::openssl::LazyLock;
    |
 53 +     use std::sync::LazyLock;
    |

error[E0425]: cannot find type `LazyLock` in this scope
   --> crates/stdlib/src/openssl.rs:473:28
    |
473 |     static CERT_ENV_NAMES: LazyLock<(String, String)> = LazyLock::new(|| {
    |                            ^^^^^^^^ not found in this scope
    |
help: consider importing one of these structs
    |
 53 +     use crate::openssl::LazyLock;
    |
 53 +     use std::sync::LazyLock;
    |

error[E0433]: cannot find type `LazyLock` in this scope
   --> crates/stdlib/src/openssl.rs:473:57
    |
473 |     static CERT_ENV_NAMES: LazyLock<(String, String)> = LazyLock::new(|| {
    |                                                         ^^^^^^^^ use of undeclared type `LazyLock`
    |
help: consider importing one of these structs
    |
 53 +     use crate::openssl::LazyLock;
    |
 53 +     use std::sync::LazyLock;
    |

error[E0599]: no method named `as_str` found for struct `PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:1049:38
     |
1049 |             let ciphers = cipherlist.as_str();
     |                                      ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for struct `PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:1105:26
     |
1105 |                     if s.as_str().contains('\0') {
     |                          ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for struct `PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:1462:64
     |
1462 |                     *self.psk_identity_hint.lock() = Some(hint.as_str().to_owned());
     |                                                                ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for struct `PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:1490:31
     |
1490 |                         if !s.as_str().is_ascii() {
     |                               ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for reference `&Py<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:1980:22
     |
1980 |                 Ok(s.as_str().as_bytes().to_vec())
     |                      ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for reference `&PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:2036:45
     |
2036 |                 let hostname_str = hostname.as_str();
     |                                             ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0599]: no method named `as_str` found for reference `&PyRef<PyStr>` in the current scope
    --> crates/stdlib/src/openssl.rs:2755:75
     |
2755 |             let cb_type_str = cb_type.as_ref().map_or("tls-unique", |s| s.as_str());
     |                                                                           ^^^^^^
     |
help: there is a method `as_pystr` with a similar name, but with different arguments
    --> crates/vm/src/builtins/str.rs:256:5
     |
 256 |     fn as_pystr(self, ctx: &Context) -> &'a Py<PyStr>;
     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0425, E0433, E0599.
For more information about an error, try `rustc --explain E0425`.
error: could not compile `rustpython-stdlib` (lib) due to 11 previous errors

No such problem when compiling with ssl-rustls instead of ssl-vendor.

The last commit where ssl-vendor compiles is c06cf56. Compilation is broken since at least ccd3d4f.

Expected

Successful compilation.

Actual

Compilation errors.

Python Documentation

N/A

Activity

  1. added 3 commits that reference this issue on May 26, 2026
    f9de717
    d0b84cd
    128779a
  2. added 2 commits that reference this issue on May 28, 2026
    eca26d1
    7d54ba5
  3. added a commit that references this issue on Sep 16, 2026
    83ab570
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions