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

SickChill: Wheel build as Python38 (cp38) and not cp37 #4867

Closed
BKSteve opened this issue Sep 18, 2021 · 6 comments
Closed

SickChill: Wheel build as Python38 (cp38) and not cp37 #4867

BKSteve opened this issue Sep 18, 2021 · 6 comments

Comments

@BKSteve
Copy link
Contributor

BKSteve commented Sep 18, 2021

I wish to know how to make a package build it's wheel as cp38 and not cp37 when doing make all-supported
#4835 (comment)

This is a common error which x64 systems can resolve and download the tar.gz but when installing on some models (arm) it causes the system to fail it's install.
The configuration is to use Python 3.8 but this wheel for some reason is built with 3.7 and I wish to know how to resolve.
ERROR: tornado-6.1-cp37-none-any.whl is not a supported wheel on this platform.

From build spk.

Collecting tornado==6.1
  Downloading tornado-6.1.tar.gz (497 kB)
...
  Building wheel for tornado (setup.py): started
  Building wheel for tornado (setup.py): finished with status 'done'
  Created wheel for tornado: filename=tornado-6.1-cp37-cp37m-linux_x86_64.whl size=414483 sha256=8705a07c6363477174bceb6d1473adf870f4abbbd2f6cf76e2ea794607bacf24
  Stored in directory: /tmp/pip-ephem-wheel-cache-ssmx83xm/wheels/02/62/2c/f52c662d8ae374c4abda0c13ce432fb58eb1c75281a27b406c

Grateful for any guidance.

@BKSteve BKSteve changed the title Wheel build as Python38 (cp38) Wheel build as Python38 (cp38) and not cp37 Sep 18, 2021
@hgy59
Copy link
Contributor

hgy59 commented Sep 18, 2021

The error is in spk/sickchill/Makefile (I suppose you want to build sickchill?)
There must be something like BUILD_DEPENDS = cross/python38 cross/setuptools cross/pip cross/wheel to use python38 for the creation of cross compiled wheels. Otherwise it uses python from the path of the build environment i.e. the docker image.

@hgy59 hgy59 changed the title Wheel build as Python38 (cp38) and not cp37 SickChill: Wheel build as Python38 (cp38) and not cp37 Sep 18, 2021
@hgy59
Copy link
Contributor

hgy59 commented Sep 18, 2021

Another error of the SickChill Package:
With dependency of wheels for tornado and wrapt the package is not noarch anymore, i.e. those wheels need to be cross compiled and the packages get arch specific.

@BKSteve
Copy link
Contributor Author

BKSteve commented Sep 18, 2021

But why do I need to do all this cross compilation when the x64 based devices load and run the package as is?
SickChill has the code to pull all the necessary components in and builds the site-packages / virtual env with all needed items.

It just these older ARM devices that have an issue and can't get past the initial basic install to actually run to pull all the pieces.
Just asking is all.
With your advice above I will now go and add the cross items as suggested and see if we can overcome the ARM issues.
Thanks for you input.

@BKSteve
Copy link
Contributor Author

BKSteve commented Sep 18, 2021

Another error of the SickChill Package:
With dependency of wheels for tornado and wrapt the package is not noarch anymore, i.e. those wheels need to be cross compiled and the packages get arch specific.

please explain, I am unclear on noarch and how to get tornado to cp38

@hgy59
Copy link
Contributor

hgy59 commented Sep 18, 2021

But why do I need to do all this cross compilation when the x64 based devices load and run the package as is?

To build the wheels for x64 there is no cross compilation required as both archs are x64.
To build wheels for python packages that are not pure python (i.e. the code in the wheel depends on the target cpu) the wheel must be cross compiled (you need a (cross-)compiler that runs on x64 and generates code for each specifique cpu architecture).

SickChill has the code to pull all the necessary components in and builds the site-packages / virtual env with all needed items.

SickChill cannot build (i.e. compile) packages on the Diskstation as the build environment is not available (make, gcc and other build tools).

It just these older ARM devices that have an issue and can't get past the initial basic install to actually run to pull all the pieces.
Just asking is all.

Some wheels can be downloaded on pypi.org for x64 (amd64) and armv8 (aarch64) but most are not downloadable for armv7l and ppc archs.

@BKSteve
Copy link
Contributor Author

BKSteve commented Sep 18, 2021

Thanks for taking the time to explain, most appreciated.

@hgy59 hgy59 mentioned this issue Sep 18, 2021
3 tasks
@BKSteve BKSteve mentioned this issue Oct 9, 2021
3 tasks
@BKSteve BKSteve closed this as completed Oct 28, 2021
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