piwheels / packages

Issue tracker for piwheels package issues
https://github.com/piwheels/packages/issues
20 stars 5 forks source link

Missing package: orjson #237

Open DaAwesomeP opened 2 years ago

DaAwesomeP commented 2 years ago

Package name

orjson

Package version

all

PyPI URL

https://pypi.org/project/orjson/

piwheels URL

https://www.piwheels.org/project/orjson/

Python version

I am the maintainer

More information

I am unsure if it is just missing a dependency or if it can't be built directly from setup.py.

https://github.com/ijl/orjson#packaging

DaAwesomeP commented 2 years ago

Hello! Just checking in on this. Would it be possible to see the logs so I can assist in troubleshooting/solving?

bennuttall commented 2 years ago

Build log: http://paste.debian.net/1212412/

2021-08-20T22:01:18,246     Running command /usr/bin/python3 /usr/local/lib/python3.9/dist-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /tmp/tmpamj5j7f6
2021-08-20T22:01:18,543     💥 maturin failed                                               
2021-08-20T22:01:18,544       Caused by: Cargo metadata failed. Does your crate compile with `cargo build`?
2021-08-20T22:01:18,544       Caused by: `cargo metadata` exited with an error: error: failed to parse manifest at `/tmp/pip-wheel-an5a4a92/orjson_6776aa522a6845f0b3ec3a95fba399ce/Cargo.toml`

2021-08-20T22:01:18,544     Caused by:                      
2021-08-20T22:01:18,544       feature `resolver` is required                                                                  

2021-08-20T22:01:18,545       consider adding `cargo-features = ["resolver"]` to the manifest
messense commented 2 years ago

The Rust version 1.48 on Debian stable is too lower for orjson to build, @bennuttall what was the reason for https://github.com/piwheels/piwheels/pull/272 may I ask?

bennuttall commented 2 years ago

It's explained here: https://github.com/piwheels/packages/issues/188#issuecomment-778829130

Maybe things have moved on from then?

messense commented 2 years ago

Thanks for the pointer.

Rustup is not safe for concurrent use (see https://github.com/rust-lang/rustup/issues/988) and when used concurrently will corrupt it's working area (see https://github.com/rust-lang/rustup/issues/2417).

I think this is fine for piwheels since it's only used once for installation? If it's proxies are causing issues I guess we can just install a standalone rustc/cargo without these proxies.

Cargo uses locks for safety, but these will not scale to large numbers of users, because they are not RW locks, they are mutexes.

I don't think there will be very large concurrent Cargo builds in piwheels so it's acceptable?

bennuttall commented 2 years ago

Actually sorry I don't think that is an accurate representation of the issue. IIRC the problem was that that adding rustup to our deploy script meant that it installed only for the root user, not for the user that would be building the package.

messense commented 2 years ago

That should be solvable by switching to install as the build user with su - username -c "install rust command" ?

Edit: the full command is su - piwheels -c "curl https://sh.rustup.rs -sSf | sh -s -- -y"

bennuttall commented 1 year ago

Thanks. I'll give it a try and see.

reaperhulk commented 1 year ago

The rustc version is now affecting cryptography 38.0.x piwheel builds on buster as well since it requires >=1.48.

Mike6gPerso commented 1 year ago

I successfully compilet orjson 3.8.6 on a Raspberry Pi Model B Plus Rev 1.2 (armv6) How can i upload it to make it available to everyone ? !