Skip to content

Commit

Permalink
homeassistant: update to v2023.7.3 (#5757)
Browse files Browse the repository at this point in the history
* homeassistant: update to v2023.5.4
- update homeassistant to v2023.5.4
- update HACS integration to v1.32.1
- update DTLSSocket to v0.1.15
- update and adjust requirements

* fix build of greenlet wheel for older compilers
* fix build of protobuf wheel for older compilers

* fix build of webrtcvad for arch-qoriq-6.1
- thanks to @th0ma7 for wiseman/py-webrtcvad#78
- thanks to @smaarn for wiseman/py-webrtcvad@3bd7613

* homeassistant: update to v2023.7.3
- update homeassistant to v2023.7.3
- update to python311 with openssl3
- this PR now depends on #5820 to be merged first

* fix some integrations
- add cross/libstdc++ to fix grpcio for DSM < 7
- add cross/opus to fix voice over ip integration
- fix Google Generative AI Conversation integration (requires grpcio fix and google_generativeai)

* migrate to PYTHON_PACKAGE
  • Loading branch information
hgy59 authored Aug 20, 2023
1 parent e28aba8 commit 8bb1112
Show file tree
Hide file tree
Showing 13 changed files with 188 additions and 294 deletions.
24 changes: 0 additions & 24 deletions cross/cryptography_38/Makefile

This file was deleted.

Empty file removed cross/cryptography_38/PLIST
Empty file.
3 changes: 0 additions & 3 deletions cross/cryptography_38/digests

This file was deleted.

10 changes: 5 additions & 5 deletions cross/dtlssocket/Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
PKG_NAME = DTLSSocket
PKG_VERS = 0.1.12
PKG_VERS = 0.1.15
PKG_EXT = tar.gz
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://files.pythonhosted.org/packages/35/42/4e2d2c03e6194d4b82dbd921e18a49e5ef113840f76cc8d0a7e6c5cb810c
PKG_DIST_SITE = https://files.pythonhosted.org/packages/72/dc/8171d3106233efbd28620539594ca705f1aa9e140287823e23cd46ca7c42
PKG_DIR = $(PKG_NAME)-$(PKG_VERS)

BUILD_DEPENDS = cross/cython

HOMEPAGE = https://git.fslab.de/jkonra2m/tinydtls-cython
COMMENT = DTLSSocket is a Cython wrapper for tinydtls with a Socket like interface
COMMENT = DTLSSocket is a Cython wrapper for tinydtls with a Socket like interface.
LICENSE = Eclipse Public License 1.0

PRE_CONFIGURE_TARGET = dtlssocket_pre_configure

include ../../mk/spksrc.python-wheel.mk

.PHONY: dtlssocket_pre_configure
# configure tinydtls to cross compile
dtlssocket_pre_configure:
@$(RUN) sed -i 's%"\./configure", "--without-ecc"%"\./configure", "--without-ecc", "--host=$(TC_TARGET)", "--build=i686-pc-linux"%g' setup.py
@$(MSG) configure tinydtls to cross compile
@$(RUN) sed -i.bak 's%"\./configure"%"\./configure --host=$(TC_TARGET) --build=i686-pc-linux"%g' setup.py
1 change: 0 additions & 1 deletion cross/dtlssocket/PLIST
Original file line number Diff line number Diff line change
@@ -1 +0,0 @@

6 changes: 3 additions & 3 deletions cross/dtlssocket/digests
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
DTLSSocket-0.1.12.tar.gz SHA1 8cc20ea9636d33635d61bec4283184b941130829
DTLSSocket-0.1.12.tar.gz SHA256 909a8f52f1890ec9e92fd46ef609daa8875c2a1c262c0b61200e73c6c2dd5099
DTLSSocket-0.1.12.tar.gz MD5 82a16a8975ad4edf1ffb792317265d0d
DTLSSocket-0.1.15.tar.gz SHA1 e0f7d4455cac5863d7f67d5b884da56f2ff70f25
DTLSSocket-0.1.15.tar.gz SHA256 456b1c53126c98b908d863e39e94b5a0954fb09fb16ea3c02a4e10d46ec84aee
DTLSSocket-0.1.15.tar.gz MD5 c5c6fe31e8acd0a6512dd2ec4360896d
66 changes: 40 additions & 26 deletions spk/homeassistant/Makefile
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
SPK_NAME = homeassistant
SPK_VERS = 2023.1.7
SPK_VERS = 2023.7.3
SPK_REV = 21
SPK_ICON = src/homeassistant.png

HACS_VERS = 1.31.0
HACS_VERS = 1.32.1

SPK_DEPENDS = "python310>=3.10.12-18"
PYTHON_PACKAGE = python311
SPK_DEPENDS = "$(PYTHON_PACKAGE)>=3.11.4-7"

BUILD_DEPENDS = cross/python310
OPTIONAL_DEPENDS = cross/libstdc++

# [numpy] > 1.22.4
UNSUPPORTED_ARCHS = $(ARMv5_ARCHS) $(OLD_PPC_ARCHS) $(ARMv7L_ARCHS)

MAINTAINER = hgy59
DESCRIPTION = "Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control."
DISPLAY_NAME = Home Assistant Core
CHANGELOG = "1. Update homeassistant to 2023.1.7.<br/>2. Update HACS integration to v1.31.0.<br/><br/>3. Update to openssl v3.1.1.<br/><br/>REMARKS: Only arch specific python modules are included in the package. Other modules are downloaded at installation time."
CHANGELOG = "1. Update homeassistant to 2023.7.3. and depend on Python 3.11 and OpenSSL 3.1.<br/>2. Update HACS integration to v1.32.1.<br/>3. Add libstdc++ for DSM 6 to fix grpcio dependency.<br/><br/>REMARKS: Only arch specific python modules are included in the package. Other modules are downloaded at installation time."
STARTABLE = yes

HOMEPAGE = https://www.home-assistant.io/
Expand All @@ -26,7 +27,7 @@ WIZARDS_DIR = src/wizard
SERVICE_USER = auto
SERVICE_SETUP = src/service-setup.sh
SERVICE_PORT = 8123
SERVICE_PORT_TITLE = $(DISPLAY_NAME)
SERVICE_PORT_TITLE = Home Assistant Core (HTTP)
ADMIN_PORT = $(SERVICE_PORT)

USE_ALTERNATE_TMPDIR = 1
Expand All @@ -36,16 +37,23 @@ POST_STRIP_TARGET = homeassistant_extra_install
# Include cross compiled wheels only, the package installer downloads pure python wheels at installation time.
WHEELS = src/requirements-abi3.txt src/requirements-crossenv.txt src/requirements-pure.txt

# cross wheels from source
# ------------------------
# those that do not build in crossenv (yet)
include ../../mk/spksrc.common.mk

# [DTLSSocket] Required for postinst [tradfri]
DEPENDS += cross/dtlssocket
# [grpcio]
# for DSM < 7 with too old libstdc++
# avoid error: undefined symbol: _ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
# this is a fix for integrations depending on grpcio (google nest, google generativeai and starlink)
# the fix requires to additionally set the LD_LIBRARY_PATH to homeassistant/target/lib
ifeq ($(call version_lt, ${TCVERSION}, 7.0),1)
DEPENDS += cross/libstdc++
endif

# [voip_utils]
# for voice over ip integration
DEPENDS += cross/opus

# definitions and libraries
# to build wheels of src/requirements-crossenv.txt
# to build wheels of src/requirements-crossenv.txt and src/requirements-abi3.txt
# ------------------------

# [gevent]
Expand Down Expand Up @@ -76,15 +84,11 @@ WHEELS_BUILD_ARGS += --enable-freetype
WHEELS_BUILD_ARGS += --enable-jpeg
WHEELS_BUILD_ARGS += --enable-zlib

# [bcrypt]
# [bcrypt, cryptography]
ENV += PYO3_CROSS_LIB_DIR=$(STAGING_INSTALL_PREFIX)/lib/
ENV += PYO3_CROSS_INCLUDE_DIR=$(STAGING_INSTALL_PREFIX)/include/

# [cryptography]
DEPENDS += cross/cryptography_38

# [uamqp]
DEPENDS += cross/uamqp
# fix for openssl-sys crate (for cryptography >= 40.0.0)
# https://docs.rs/openssl/latest/openssl/#manual

# [gevent]
DEPENDS += cross/libev cross/c-ares
Expand All @@ -95,21 +99,30 @@ ENV += GEVENTSETUP_EMBED_LIBEV=FALSE
DEPENDS += cross/libxml2
DEPENDS += cross/libxslt

include ../../mk/spksrc.python.mk

include ../../mk/spksrc.spk.mk
# prefer native python tools (pip, maturin, ...)
ENV += PATH=$(realpath $(WORK_DIR)/../../../native/$(PYTHON_PACKAGE)/work-native/install/usr/local/bin):$(PATH)

# prefere native python tools (pip, maturin, ...)
ENV += PATH=$(realpath $(WORK_DIR)/../../../native/python310/work-native/install/usr/local/bin):$(PATH)
# [greenlet]
ifeq ($(call version_lt, ${TC_GCC}, 5.0),1)
WHEELS_CPPFLAGS += [greenlet] -std=c++11
endif

# [numpy]
# Fix wheel building with older compilers
ifeq ($(call version_lt, $(TC_GCC), 5.0),1)
WHEELS_CPPFLAGS = [numpy] -std=c++0x
WHEELS_CPPFLAGS += [numpy] -std=c++0x
# workaround for compiler bug:
# https://github.com/numpy/numpy/issues/13622
ifeq ($(findstring $(ARCH),$(ARMv8_ARCHS)),$(ARCH))
WHEELS_CFLAGS = [numpy] -O0
WHEELS_CFLAGS += [numpy] -O0
endif
endif

# [protobuf]
ifeq ($(call version_lt, ${TC_GCC}, 5.0),1)
WHEELS_CFLAGS += [protobuf] -std=c99
endif

# [pycryptodome] [pycryptodomex] [ciso8601]
Expand All @@ -123,8 +136,9 @@ WHEELS_CFLAGS += [pycryptodomex] -std=c99
WHEELS_CFLAGS += [ciso8601] -std=c99
endif


# target to download and prepare hacs after changing HACS_VERS above
# usage:
# make get_hacs
.PHONY: get_hacs
get_hacs:
wget https://github.com/hacs/integration/releases/download/$(HACS_VERS)/hacs.zip
Expand All @@ -140,4 +154,4 @@ homeassistant_extra_install:
@install -m 755 -d $(STAGING_DIR)/share $(STAGING_DIR)/var
@install -m 644 src/postinst_components_requirements.txt $(STAGING_DIR)/share/
@install -m 644 src/hacs.tar.gz $(STAGING_DIR)/share/
@install -m 644 src/requirements-custom.txt $(STAGING_DIR)/var/requirements-custom.txt.new
@install -m 644 src/requirements-custom.txt $(STAGING_DIR)/var/requirements-custom.txt
Binary file modified spk/homeassistant/src/hacs.tar.gz
Binary file not shown.
162 changes: 50 additions & 112 deletions spk/homeassistant/src/postinst_components_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,142 +5,80 @@
# for HACS
aiogithubapi==22.10.1

abodepy==1.2.0
accuweather==0.4.0
accuweather==1.0.0
adax==0.2.0
adext==0.4.2
adguardhome==0.6.1
advantage_air==0.4.1
AEMET_OpenData==0.2.1
aenum==3.1.11
advantage_air==0.4.4
AEMET_OpenData==0.2.2
agent_py==0.0.23
aioambient==2021.11.0
aioambient==2023.4.0
aioasuswrt==1.4.0
aioazuredevops==1.3.5
aiocoap==0.4.3
aiofiles==22.1.0
aiohue==4.5.0
aiosqlite==0.18.0
aiocoap==0.4.7
aiohue==4.6.2
airly==1.1.0
alarmdecoder==1.13.11
ambiclimate==0.2.1
arcam_fmj==1.0.1
arrow==1.2.3
asyncio_dgram==2.1.2
asyncio_throttle==1.0.2
asyncssh==2.13.0
Authlib==1.2.0
axis==44
backoff==2.2.1
Ambiclimate==0.2.1
arcam_fmj==1.4.0
axis==48
beautifulsoup4==4.11.1
bellows==0.34.6
bimmer_connected==0.12.0
bitstring==4.0.1
blebox_uniapi==2.1.3
blinkpy==0.19.2
boschshcpy==0.2.35
bellows==0.35.8
bimmer_connected==0.13.8
blebox_uniapi==2.1.4
blinkpy==0.21.0
boschshcpy==0.2.57
broadlink==0.18.3
brother==2.1.1
brother==2.3.0
buienradar==1.0.5
casttube==0.2.1
CO2Signal==0.4.2
commentjson==0.9.0
convertdate==2.4.0
crccheck==1.3.0
crcmod==1.7
croniter==1.0.6
cssselect==1.2.0
dacite==1.7.0
dataclasses_json==0.5.3
dateparser==1.1.6
deepmerge==1.1.0
denonavr==0.10.12
dicttoxml==1.7.16
denonavr==0.11.2
fjaraskupan==2.2.0
fritzconnection==1.10.3
future==0.18.3
geographiclib==2.0
geojson==2.5.0
fritzconnection==1.12.0
gassist_text==0.0.10
geopy==2.3.0
getmac==0.8.2
google_api_core==2.11.0
google_auth==2.16.0
greeclimate==1.3.0
haversine==2.7.0
ha_ffmpeg==3.0.2
hijri_converter==2.2.4
httpsig==1.3.0
inflection==0.5.1
intelhex==2.3.0
isodate==0.6.1
jsonpickle==3.0.1
jsonrpc_async==2.1.1
jsonrpc_base==2.1.1
jsonrpc_websocket==3.1.4
keyring==23.13.1
korean_lunar_calendar==0.3.1
loguru==0.6.0
lomond==0.3.3
marshmallow==3.19.0
marshmallow_dataclass==8.5.11
marshmallow_enum==1.5.1
metar==1.9.0
ms_cv==0.1.1
mypy_extensions==0.4.3
oauthlib==3.2.2
packaging==21.3
pkce==1.0.3
platformdirs==2.6.2
plumbum==1.8.1
# psutil_home_assistant==0.0.1 => pure
ptyprocess==0.7.0
pubnub==7.1.0
google_generativeai==0.1.0
google_nest_sdm==2.2.5
greeclimate==1.4.1
# grpcio is not a pure python package, but is available on pypi for all supported archs (except qoriq)
# grpcio==1.51.1 is not available for python311 for supported archs, but 1.56.x is
# but packages depending on grpcio==1.51.1 do not work with 1.56.x:
# Error occurred loading flow for integration nest: /volume1/@appstore/homeassistant/env/lib/python3.11/site-packages/grpc/_cython/cygrpc.cpython-311-aarch64-linux-gnu.so: undefined symbol: _ZTVNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE
# this is an issue with aarch64 and too old libstdc++ (https://github.com/grpc/grpc/issues/33734)
grpcio>=1.51.1
ha_ffmpeg==3.1.0
pyairvisual==2022.12.1
pyalmond==0.0.2
pyatag==0.3.5.3
pyatv==0.10.3
pyclimacell==0.18.2
pydaikin==2.8.0
pydantic==1.10.2
pyfritzhome==0.6.7
pydaikin==2.10.5
pyfritzhome==0.6.8
pyialarm==2.2.0
pyicloud==1.0.0
pyipp==0.12.1
pyMetno==0.9.0
pyoctoprintapi==0.1.9
pyipp==0.14.0
PyMetno==0.10.0
pyoctoprintapi==0.1.11
pyownet==0.10.0.post1
pyquery==2.0.0
pyserial_asyncio==0.6
pysiaalarm==3.0.2
pysmb==1.2.9.1
pysnmplib==5.0.20
# pysocketio==0.9.6a4 => requires gevent==0.13.7 (this is python2 only)
# python-awair==0.2.1 => python-awair 0.2.1 requires voluptuous<0.13.0,>=0.11.7, but homeassistant==2023.1.7 requires voluptuous==0.13.1
python_engineio==3.14.2
pysiaalarm==3.1.1
pysnmplib==5.0.21
python_awair==0.2.4
python_izone==1.2.9
python_socketio==4.6.1
python_songpal==0.15.1
pytradfri==9.0.0
pyusb==1.2.1
pywemo==0.9.1
python_nest==4.2.0
python_songpal==0.15.2
pytradfri==9.0.1
pywemo==1.1.0
py_canary==0.5.3
py_synologydsm_api==1.0.8
py_synologydsm_api==2.1.4
radios==0.1.1
requests_file==1.5.1
requests_oauthlib==1.3.1
semver==2.13.0
srptools==1.0.1
starlink_grpc_core==1.1.1
synology_srm==0.2.0
tenacity==8.1.0
typing_inspect==0.8.0
tzlocal==4.2
voip_utils==0.1.0
WSDiscovery==2.0.0
xmltodict==0.13.0
yalexs==1.2.6
zeep==4.2.1
zha_quirks==0.0.90
zigpy==0.53.0
zigpy_deconz==0.19.2
zigpy_xbee==0.16.2
zigpy_zigate==0.10.3
zigpy_znp==0.9.2
yalexs==1.5.1
zha_quirks==0.0.101
zigpy==0.56.2
zigpy_deconz==0.21.0
zigpy_xbee==0.18.1
zigpy_zigate==0.11.0
zigpy_znp==0.11.3
Loading

0 comments on commit 8bb1112

Please sign in to comment.