Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

piwheel builds fail, causing uninstallability on raspberry pi's. #354

Open
xmatthias opened this issue Dec 21, 2024 · 4 comments
Open

piwheel builds fail, causing uninstallability on raspberry pi's. #354

xmatthias opened this issue Dec 21, 2024 · 4 comments

Comments

@xmatthias
Copy link

Describe the bug
blosc2 doesn't provide wheels for armhf.
A reliable workaround for this is to rely on piwheels, which provides pre-built wheels for most popular packages.

This worked fine for blosc2==2 - but fails for blosc2==3, as they fail to build these wheels

To Reproduce

Look at the logs on piwheels
Analyze the comment from @bennuttall about what the issue with the piwheels build is here - which essentially seems to be that blosc2 is downloaded from github.

Expected behavior
Either provide wheels for raspberry on pypi 3.9 and 3.11 should do - or help fix the issue with piwheels building.

Desktop (please complete the following information):

  • OS: [e.g. iOS] raspbian
  • Version [e.g. 22]
@FrancescAlted
Copy link
Member

Unfortunately, there is no explicit support for 32-bit OS/CPUs in Blosc2 anymore. We are actively supporting AMD64 and ARM64 as the main deployment platforms, so support for others will need help from the community.

@xmatthias
Copy link
Author

well but that's the point - piwheels tries to do that - but it fails because the installation process tries to download/clone the underlying C library for blosc2.
I don't think doing a clone in any installation step is necessary - if any, it should download the latest release tarball.

@FrancescAlted
Copy link
Member

Ok. So your issue should stem from here: https://github.com/Blosc/python-blosc2/blob/main/CMakeLists.txt#L51-L54. The reason is that normally there is quite of dependency of C-Blosc2 sources, and this is a nice way to provide latest sources while developing the Python version. This has been implemented during the development of 3.0, and it is working well for us, so we would like to continue using it as-is.

@xmatthias
Copy link
Author

xmatthias commented Dec 24, 2024

I understand that for development, this can be desirable.
For a release however, it shouldn't pull upstream's main branch.
That's VERY bad practice, and can lead to bugs and incompatibilities very soon if people try to install pinned, older versions.

@FrancescAlted can you please work with @bennuttall (see also linked issue above) to find a solution suitable for all parties to have wheels available on either pypi or piwheels?

The alternative is that blosc2 (3.0+) is not available on any raspberry pi or needs to be built from source (which is in my experience quite flaky).
Other than being the one reporting the wheel as missing on piwheels - i got little to no involvement with blosc2.

The project i'm maintaining currently depends on tables - which itself depends on blosc2.
Please understand that i have no will to support installation problems due to missing wheels on some transient dependency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants