python-blosc2 icon indicating copy to clipboard operation
python-blosc2 copied to clipboard

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

Open xmatthias opened this issue 1 year ago • 4 comments

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]

xmatthias avatar Dec 21 '24 07:12 xmatthias

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.

FrancescAlted avatar Dec 24 '24 12:12 FrancescAlted

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.

xmatthias avatar Dec 24 '24 12:12 xmatthias

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.

FrancescAlted avatar Dec 24 '24 13:12 FrancescAlted

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.

xmatthias avatar Dec 24 '24 13:12 xmatthias