diff --git a/cross/cryptography_38/Makefile b/cross/cryptography_38/Makefile
deleted file mode 100644
index eae7e10b6b6..00000000000
--- a/cross/cryptography_38/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-PKG_NAME = cryptography
-PKG_VERS = 38.0.3
-PKG_EXT = tar.gz
-PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
-PKG_DIST_SITE = https://files.pythonhosted.org/packages/source/c/cryptography
-PKG_DIR = $(PKG_NAME)-$(PKG_VERS)
-
-DEPENDS = cross/openssl3 cross/cffi
-
-HOMEPAGE = https://github.com/pyca/cryptography
-COMMENT = Provide cryptographic recipes and primitives to Python developers.
-LICENSE = BSD/ASL2
-
-###
-### This cross/cryptography_38 is needed to generate python-limited abi3 wheels
-### Ref: https://github.com/pyca/cryptography/issues/7671
-###
-### And it is required to link to cross/openssl3 since
-### cryptography < 40 is statically linked to openssl
-### and prebuilt wheels are linked to openssl 1.1
-
-WHEELS_BUILD_ARGS = --py-limited-api=$(PYTHON_LIMITED_API)
-
-include ../../mk/spksrc.python-wheel.mk
diff --git a/cross/cryptography_38/PLIST b/cross/cryptography_38/PLIST
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/cross/cryptography_38/digests b/cross/cryptography_38/digests
deleted file mode 100644
index 84bb9ac5ef8..00000000000
--- a/cross/cryptography_38/digests
+++ /dev/null
@@ -1,3 +0,0 @@
-cryptography-38.0.3.tar.gz SHA1 fa8da1574efb4a44158825a8e8c60e050142e789
-cryptography-38.0.3.tar.gz SHA256 bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd
-cryptography-38.0.3.tar.gz MD5 2148f1283f22df0677e204e46bccaf06
diff --git a/cross/dtlssocket/Makefile b/cross/dtlssocket/Makefile
index 747ee9d0933..47954fd0617 100644
--- a/cross/dtlssocket/Makefile
+++ b/cross/dtlssocket/Makefile
@@ -1,14 +1,14 @@
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
@@ -16,6 +16,6 @@ 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
diff --git a/cross/dtlssocket/PLIST b/cross/dtlssocket/PLIST
index 8b137891791..e69de29bb2d 100644
--- a/cross/dtlssocket/PLIST
+++ b/cross/dtlssocket/PLIST
@@ -1 +0,0 @@
-
diff --git a/cross/dtlssocket/digests b/cross/dtlssocket/digests
index 175e040a549..25738f75876 100644
--- a/cross/dtlssocket/digests
+++ b/cross/dtlssocket/digests
@@ -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
diff --git a/spk/homeassistant/Makefile b/spk/homeassistant/Makefile
index aa4b89f9eb3..3333669ee76 100644
--- a/spk/homeassistant/Makefile
+++ b/spk/homeassistant/Makefile
@@ -1,13 +1,14 @@
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)
@@ -15,7 +16,7 @@ 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.
2. Update HACS integration to v1.31.0.
3. Update to openssl v3.1.1.
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.
2. Update HACS integration to v1.32.1.
3. Add libstdc++ for DSM 6 to fix grpcio dependency.
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/
@@ -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
@@ -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]
@@ -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
@@ -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]
@@ -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
@@ -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
diff --git a/spk/homeassistant/src/hacs.tar.gz b/spk/homeassistant/src/hacs.tar.gz
index 1092759f901..a79c36ae660 100644
Binary files a/spk/homeassistant/src/hacs.tar.gz and b/spk/homeassistant/src/hacs.tar.gz differ
diff --git a/spk/homeassistant/src/postinst_components_requirements.txt b/spk/homeassistant/src/postinst_components_requirements.txt
index ad36be5f0f6..a22f986d0f7 100644
--- a/spk/homeassistant/src/postinst_components_requirements.txt
+++ b/spk/homeassistant/src/postinst_components_requirements.txt
@@ -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
diff --git a/spk/homeassistant/src/requirements-abi3.txt b/spk/homeassistant/src/requirements-abi3.txt
index 22681de36a8..875f99ff3b8 100644
--- a/spk/homeassistant/src/requirements-abi3.txt
+++ b/spk/homeassistant/src/requirements-abi3.txt
@@ -1,2 +1,2 @@
-pycryptodome==3.16.0
-pycryptodomex==3.15.0
+pycryptodome==3.18.0
+pycryptodomex==3.18.0
diff --git a/spk/homeassistant/src/requirements-crossenv.txt b/spk/homeassistant/src/requirements-crossenv.txt
index c62158e7497..2e96306eb89 100644
--- a/spk/homeassistant/src/requirements-crossenv.txt
+++ b/spk/homeassistant/src/requirements-crossenv.txt
@@ -1,70 +1,60 @@
-# Home Assistant core
-# requirements are taken from homeassistant dependency files
-# - pyproject.toml
-# - requirements.txt (including homeassistant/package_constraints.txt)
-# - requirements_all.txt
-# those requirements are splitted into multiple files
-# - requirements-crossenv.txt (containing requirements that need cross compilation, this file)
-# - requirements-pure.txt (containing pure-python requirements for homeassistant core and default_configuration)
-# - postinst_integration_requirements.txt (requirements for integrations)
-# postinst requirements must be pure python wheels.
-# To minimize the package size the spk does not contain dependent wheels that are pure python.
-
-# homeassistant==2023.1.7 ==> pure
-
-aiohttp==3.8.1
-bcrypt==3.1.7
-bitarray==2.6.0
+aiohttp==3.8.5
+bcrypt==4.0.1
+bitstruct==8.17.0
+bluetooth_data_tools==1.3.0
Brotli==1.0.9
-caio==0.9.11
-cbor2==5.4.3
-cchardet==2.1.7
+cbor2==5.4.6
cffi==1.15.1
+chacha20poly1305_reuseable==0.4.1
ciso8601==2.3.0
-# contourpy==1.0.7 => fails to build: ModuleNotFoundError: No module named 'pybind11'
-coverage==7.0.5
-crc16==0.1.1
-# cryptography==38.0.3 => cross/cryptography_38
-Cython==0.29.33
-dbus_fast==1.82.0
-debugpy==1.6.4
-# DTLSSocket==0.1.12 => cross/dtlssocket
+coverage==7.2.7
+crcmod==1.7
+cryptography==41.0.1
+dbus_fast==1.86.0
ephem==4.1.2
-frozenlist==1.3.1
-greenlet==1.1.1
-# grpcio==1.51.1 => fails to build
-guppy3==3.1.2
-# ha_av==10.0.0 => fails to build: libavformat was not found (probably depends on libav of ffmpeg)
-home_assistant_bluetooth==1.9.2
-# kiwisolver==1.4.4 => ModuleNotFoundError: No module named 'cppy'
-lru_dict==1.1.8
+faust_cchardet==2.1.18
+fnv_hash_fast==0.3.1
+frozenlist==1.4.0
+greenlet==2.0.2
+# grpcio==1.51.1 # fails to build, but grpcio==1.56.x successfully installs as dependency
+guppy3==3.1.3
+#ha_av==10.1.0 # fails to build, depends on libav from ffmpeg, but successfully installs as dependency
+home_assistant_bluetooth==1.10.0
+kasa_crypt==0.3.0
+lru_dict==1.2.0
lxml==4.9.1
-MarkupSafe==2.1.1
-# matplotlib==3.6.3 => ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
-miniaudio==1.53
-msgpack==1.0.4
-multidict==6.0.2
+MarkupSafe==2.1.3
+miniaudio==1.59
+msgpack==1.0.5
+multidict==6.0.4
netifaces==0.11.0
numpy==1.23.2
-orjson==3.8.1
-# pandas==1.5.3 => ModuleNotFoundError: No module named 'numpy'
-Pillow==9.3.0
-protobuf==4.21.12
-psutil==5.9.4
-pycares==4.2.2
-# pycryptodome==3.16.0 => abi3
-# pycryptodomex==3.15.0 => abi3
-pydantic==1.10.4
+orjson==3.9.1
+# pandas==2.0.3 # depends on installed numpy wheel ?...
+Pillow==9.5.0
+protobuf==4.23.1
+psutil==5.9.5
+pycares==4.3.0
+pycrc16==0.1.2
+#pycryptodome==3.18.0 => abi3
+#pycryptodomex==3.18.0 => abi3
+pydantic==1.10.12
+pyitachip2ir==0.0.7
PyNaCl==1.5.0
-pyrsistent==0.19.2
-PyYAML==6.0
+PyYAML==6.0.1
regex==2021.8.28
-simplejson==3.18.0
-SQLAlchemy==1.4.44
-tornado==6.2
-# uamqp==1.6.0 => cross/uamqp
-websockets==10.4
-wrapt==1.14.1
-yarl==1.8.1
-zeroconf==0.47.1
-zope.interface==5.5.2
+rpds_py==0.9.2
+simplejson==3.19.1
+SQLAlchemy==2.0.15
+tornado==6.3.2
+ulid_transform==0.7.2
+
+# [webrtcvad]
+# webrtcvad==2.0.10 # requires unreleased version at specific commit for qoriq arch
+git+https://github.com/wiseman/py-webrtcvad@3bd761332a9404f5c9276105070ee814c4428342#egg=webrtcvad==2.0.10
+
+websockets==11.0.3
+wrapt==1.15.0
+yarl==1.9.2
+zeroconf==0.70.0
+zope.interface==6.0
diff --git a/spk/homeassistant/src/requirements-pure.txt b/spk/homeassistant/src/requirements-pure.txt
index 80275c8282b..e1fbf306275 100644
--- a/spk/homeassistant/src/requirements-pure.txt
+++ b/spk/homeassistant/src/requirements-pure.txt
@@ -1,83 +1,68 @@
-# Home Assistant core
-# requirements are taken from homeassistant dependency files
-# - pyproject.toml
-# - requirements.txt (including homeassistant/package_constraints.txt)
-# - requirements_all.txt
-# those requirements are splitted into multiple files
-# - requirements-crossenv.txt (containing requirements that need cross compilation)
-# - requirements-pure.txt (containing pure-python requirements for homeassistant core and default_configuration, this file)
-# - postinst_integration_requirements.txt (requirements for integrations)
-# postinst requirements must be pure python wheels.
-# To minimize the package size the spk does not contain dependent wheels that are pure python.
-
-homeassistant==2023.1.7
-home-assistant-frontend==20230110.0
-hass-nabucasa==0.61.0
-
+homeassistant==2023.7.3
+home_assistant_frontend==20230705.1
+home_assistant_intents==2023.6.28
+hass_nabucasa==0.69.0
acme==1.31.0
-aiodiscover==1.4.13
+aiodiscover==1.4.16
aiohttp_cors==0.7.0
aiosignal==1.3.1
-anyio==3.6.2
+anyio==3.7.0
astral==2.2
-async_upnp_client==0.33.0
+async_upnp_client==0.33.2
atomicwrites_homeassistant==1.4.1
-attrs==22.1.0
+attrs==22.2.0
awesomeversion==22.9.0
-bleak_retry_connector==2.13.0
-bluetooth_adapters==0.15.2
-bluetooth_auto_recovery==1.0.3
+bleak_retry_connector==3.0.2
+bluetooth_adapters==0.15.3
+bluetooth_auto_recovery==1.2.0
boto3==1.20.24
botocore==1.23.24
btsocket==0.2.0
-charset_normalizer==2.1.1
+charset_normalizer==3.2.0
defusedxml==0.7.1
-dnspython==2.3.0
+dnspython==2.4.1
ecdsa==0.18.0
envs==1.4
fnvhash==0.1.0
gTTS==2.2.4
h11==0.14.0
-httpcore==0.16.3
-httpx==0.23.2
+httpcore==0.17.2
+httpx==0.24.1
idna==3.4
-ifaddr==0.1.7
+ifaddr==0.2.0
Jinja2==3.1.2
jmespath==0.10.0
josepy==1.13.0
mac_vendor_lookup==0.1.12
-mediafile==0.11.0
mutagen==1.46.0
psutil_home_assistant==0.0.1
pyasn1==0.4.8
-pycognito==2022.8.0
+pycognito==2022.12.0
pycparser==2.21
-PyJWT==2.5.0
-pyOpenSSL==23.0.0
+PyJWT==2.7.0
+pyOpenSSL==23.2.0
pyRFC3339==1.1
PyRIC==0.1.6.3
-pyroute2==0.7.4
+pyroute2==0.7.5
pyserial==3.5
python_dateutil==2.8.2
python_didl_lite==1.3.2
python_jose==3.3.0
python_slugify==4.0.1
-pytz==2022.7.1
+pytz==2023.3
pyudev==0.23.2
-requests==2.28.1
-requests_toolbelt==0.10.1
-rfc3986==1.5.0
+requests==2.31.0
+requests_toolbelt==1.0.0
rsa==4.9
s3transfer==0.5.2
-scapy==2.4.5
-securetar==2022.2.0
-six==1.16.0
+scapy==2.5.0
+securetar==2023.3.0
sniffio==1.3.0
-snitun==0.31.0
+snitun==0.35.0
text_unidecode==1.3
-typing_extensions==4.4.0
-urllib3==1.26.14
+typing_extensions==4.7.1
+urllib3==1.26.16
usb_devices==0.4.1
voluptuous==0.13.1
-voluptuous_serialize==2.5.0
+voluptuous_serialize==2.6.0
diff --git a/spk/homeassistant/src/service-setup.sh b/spk/homeassistant/src/service-setup.sh
index 0d73ab708fa..fa3c191f9b7 100644
--- a/spk/homeassistant/src/service-setup.sh
+++ b/spk/homeassistant/src/service-setup.sh
@@ -1,5 +1,5 @@
-PYTHON_DIR="/var/packages/python310/target/bin"
+PYTHON_DIR="/var/packages/python311/target/bin"
PATH="${SYNOPKG_PKGDEST}/env/bin:${SYNOPKG_PKGDEST}/bin:${PYTHON_DIR}:${PATH}"
CONFIG_DIR="${SYNOPKG_PKGVAR}/config"
@@ -8,24 +8,25 @@ SVC_WRITE_PID=y
SVC_BACKGROUND=y
SVC_CWD="${SYNOPKG_PKGVAR}"
HOME="${SYNOPKG_PKGVAR}"
-
+# workaround for python modules depending on newer libstdc++ (i.e. grpcio>=1.56.x)
+export LD_LIBRARY_PATH=${SYNOPKG_PKGDEST}/lib
# save and restore the pip-cache on package update
# ------------------------------------------------
# Avoid the use of ${SYNOPKG_PKGVAR} folder for the pip cache.
# Under DSM<7 this folder's ownership will be changed to sc-homeassistant,
-# but the installer runs under root and the cache must be owned by root.
+# but the installer runs under root and the cache must be owned by the same user.
PIP_CACHE_BACKUP_DIR=${TMP_DIR}/pip-cache
PIP_CACHE_DIR=${SYNOPKG_PKGDEST}/pip-cache
export PIP_DOWNLOAD_CACHE=${PIP_CACHE_DIR}
# avoid installation to user specific site-packages folder
-export PYTHONNOUSERSIZE=1
+export PYTHONNOUSERSITE=1
service_save ()
{
if [ -d "${PIP_CACHE_DIR}" ]; then
echo "Save pip cache to ${PIP_CACHE_BACKUP_DIR}"
- $MKDIR ${TMP_DIR}/pip-cache
+ $MKDIR ${PIP_CACHE_BACKUP_DIR}
$CP ${PIP_CACHE_DIR}/. ${PIP_CACHE_BACKUP_DIR}
fi
}
@@ -50,17 +51,13 @@ service_postinst ()
echo "Install Python virtual environment"
install_python_virtualenv
- echo ${separator}
- echo "Downgrade pip for homeassistant compatibility"
- pip install --disable-pip-version-check pip==22.2.2
-
echo ${separator}
echo "Install HACS into: ${CONFIG_DIR}/custom_components/hacs"
mkdir -p "${CONFIG_DIR}/custom_components/hacs"
tar -xzf ${SYNOPKG_PKGDEST}/share/hacs.tar.gz -C ${CONFIG_DIR}/custom_components/hacs
echo ${separator}
- echo "Install packages from wheels"
+ echo "Install packages from wheelhouse"
pip install --disable-pip-version-check --no-deps --no-input --no-index ${SYNOPKG_PKGDEST}/share/wheelhouse/*.whl
echo ${separator}
@@ -74,8 +71,8 @@ service_postinst ()
if [ "${SYNOPKG_PKG_STATUS}" == "UPGRADE" ]; then
if [ "$SYNOPKG_DSM_VERSION_MAJOR" -lt 7 ]; then
- # restore custom requirements file
if [ -f ${TMP_DIR}/requirements-custom.txt ]; then
+ echo "Restore custom requirements file"
$CP ${TMP_DIR}/requirements-custom.txt ${SYNOPKG_PKGVAR}/requirements-custom.txt
fi
fi
@@ -84,8 +81,6 @@ service_postinst ()
echo "Install custom packages from index"
pip install --disable-pip-version-check --no-input --cache-dir ${PIP_CACHE_DIR} --requirement ${SYNOPKG_PKGVAR}/requirements-custom.txt
fi
- else
- $MV ${SYNOPKG_PKGVAR}/requirements-custom.txt.new ${SYNOPKG_PKGVAR}/requirements-custom.txt
fi
if [ ${SYNOPKG_DSM_VERSION_MAJOR} -lt 7 ]; then