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

homeassistant: update to v2025.1.4 and python312 #6453

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

hgy59
Copy link
Contributor

@hgy59 hgy59 commented Feb 15, 2025

Description

  • homeassistant is now limited to DSM 7 (comcerto2k is not supported)
  • add cross/dtlssocket_ha and cross/pillow_ha with HA specific versions
  • update homeassistant to v2025.1.4
  • update HACS to v2.0.5
  • update python wheels (requirements)
  • remove postinst_components_requirements.txt as those requirements are installed on demand
  • add requirements-cross_from_index.txt to install cross built wheels from index
  • add python312 custom crossenv requirements for propcach, pymicro_vad and pyseex_noise
  • avoid building pure-python wheels and download at installation time only

Fixes #6332, fixes #6008, fixes #5849

Remarks

  • Homeassistant with Python 3.12 is supported on DSM 7 only (comcerto2k, i.e. DS414j, with DSM 7 is not supported)
  • 2025.1.4 is the latest version that runs with Python 3.12. Further updates will require Python 3.13 (the system log shows a related warning)
  • wheels that can't be built with spksrc framework are downloaded from the index at package installation (numpy, av and others)
  • so far only x64 archs are validated to work

TODO:

  • include numpy==2.2.0 (mandatory requirement, not available in index for evansport and ARMv7)
  • document limited functionality for cross wheels not available in index for aarch64, evansport, ARMv7

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Package update

- homeassistant is now limited to DSM 7 (comcerto2k is not supported)
- add cross/dtlssocket_ha and cross/pillow_ha with HA specific versions
- update homeassistant to v2025.1.4
- update HACS to v2.0.5
- update python wheels (requirements)
- remove postinst_components_requirements.txt as those requirements are installed on demand
- add requirements-cross_from_index.txt to install cross built wheels from index
- add python312 custom crossenv requirements for propcach, pymicro_vad and pyseex_noise
- avoid building pure-python wheels and download at installation time only
@hgy59 hgy59 mentioned this pull request Feb 14, 2025
6 tasks
@mreid-tt
Copy link
Contributor

@hgy59, this is an interesting approach — loading cross-compiled wheels that couldn't be built with spksrc directly from the package index during installation. I’m considering a similar approach for the packages I couldn’t build in Beets. What are your thoughts?

@hgy59
Copy link
Contributor Author

hgy59 commented Feb 15, 2025

@hgy59, this is an interesting approach — loading cross-compiled wheels that couldn't be built with spksrc directly from the package index during installation. I’m considering a similar approach for the packages I couldn’t build in Beets. What are your thoughts?

most cross wheels are only available for x64 (x86_64) and aarch64, some are available for armv7 (armv7l in wheel name) and if you are lucky also for evansport (i686).
Often those are not compatible with DSM 6 (manylinux2014 and manylinux_2_17 is, but manylinux_2_27 or manylinux_2_34 is not)
remarks: the manylinux_2* names are compatible with related glibc versions. DSM 6 has gblic <= 2.20 and DSM 7.1 (except comcerto2k) have glibc 2.26 and DSM 7.2 have glibc 2.36.

So you have to check every wheel what whl files are downloadable on pypi.

I tried to support DSM 6 in homeasistant, but there are mandatory wheels that are missing. The worst is pyspeex_noise==1.0.2 that is only available as source and requires c++17 to build.

- numpy is available for evansport but not for aarch64
- comment unsupported features by arch
- av is not available for armv7l in the index
- temp download numpy for aarch64 from index
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants