Skip to content

lakers-python: Fails to build from dist tarball (at least on Python 3.13) #289

@chrysn

Description

@chrysn

Where no wheels are available (on pypy as on #288, or on Python 3.13 because that's not released yet so doesn't get built by default I guess), builds fail related to the missing lakers-crypto-psa crate.

To reproduce:

$ docker run --rm -it docker.io/python:3.13-rc /bin/bash
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh /dev/stdin -y
$ . "$HOME/.cargo/env"
$ pip install cbor_diag
[succeeds -- just to show that Rust based crates can be built]
$ pip install lakers-python
[...]
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
      error: failed to load manifest for workspace member `/tmp/pip-install-galefl6n/lakers-python_3efcab44afde4189bc4835002ee9b6c9/lakers-python`
      referenced by workspace at `/tmp/pip-install-galefl6n/lakers-python_3efcab44afde4189bc4835002ee9b6c9/Cargo.toml`
      
      Caused by:
        failed to load manifest for dependency `lakers`
      
      Caused by:
        failed to load manifest for dependency `lakers-crypto`
      
      Caused by:
        failed to load manifest for dependency `lakers-crypto-psa`
      
      Caused by:
        failed to read `/tmp/pip-install-galefl6n/lakers-python_3efcab44afde4189bc4835002ee9b6c9/crypto/lakers-crypto-psa/Cargo.toml`
      
      Caused by:
        No such file or directory (os error 2)
      💥 maturin failed
        Caused by: Cargo metadata failed. Does your crate compile with `cargo build`?
        Caused by: `cargo metadata` exited with an error:
      Error running maturin: Command '['maturin', 'pep517', 'write-dist-info', '--metadata-directory', '/tmp/pip-modern-metadata-8f1fdte4', '--interpreter', '/usr/local/bin/python']' returned non-zero exit status 1.
      Checking for Rust toolchain....
      Running `maturin pep517 write-dist-info --metadata-directory /tmp/pip-modern-metadata-8f1fdte4 --interpreter /usr/local/bin/python`
      [end of output]
[...]

(Note that while pip complains about a newer version being available, pip install --upgrade pip doesn't change anything about the actual result)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions