From c4a104d8255695808e38815f1d61612f47c1256c Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Tue, 28 Apr 2026 08:39:57 +0300 Subject: [PATCH 1/3] domoticz: fix build and add test.sh boost::asio::post() without an explicit executor fails to compile with Boost >= 1.82 due to changes in the executor model: bare lambdas no longer have an implicit system executor that satisfies the blocking.never requirement. Pass io_context_ explicitly as the first argument so the handler is dispatched on the correct io_context thread, which is the original intent of the call (making stop() safe to call from any thread). Add test.sh domoticz is a daemon requiring a database and network port; it does not implement a --version flag. Verify the binary is present and executable. Disable LTO to fix link failure on i386 with musl fortify Suggested via https://github.com/openwrt/packages/pull/29239 Also tested. Signed-off-by: Alexandru Ardelean --- utils/domoticz/Makefile | 4 ++-- .../patches/002-fix-boost-asio-post-executor.patch | 11 +++++++++++ utils/domoticz/test.sh | 7 +++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 utils/domoticz/patches/002-fix-boost-asio-post-executor.patch create mode 100644 utils/domoticz/test.sh diff --git a/utils/domoticz/Makefile b/utils/domoticz/Makefile index 6b08373dcc05b6..0ff146881116a1 100644 --- a/utils/domoticz/Makefile +++ b/utils/domoticz/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=domoticz PKG_VERSION:=2025.2 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/domoticz/domoticz/tar.gz/$(PKG_VERSION)? @@ -21,7 +21,7 @@ PKG_LICENSE_FILES:=License.txt PKG_CPE_ID:=cpe:/a:domoticz:domoticz PKG_BUILD_DEPENDS:=python3 minizip cereal boost jwt-cpp -PKG_BUILD_FLAGS:=no-mips16 lto +PKG_BUILD_FLAGS:=no-mips16 include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/cmake.mk diff --git a/utils/domoticz/patches/002-fix-boost-asio-post-executor.patch b/utils/domoticz/patches/002-fix-boost-asio-post-executor.patch new file mode 100644 index 00000000000000..f67c262d7ec3f2 --- /dev/null +++ b/utils/domoticz/patches/002-fix-boost-asio-post-executor.patch @@ -0,0 +1,11 @@ +--- a/tcpserver/TCPServer.cpp ++++ b/tcpserver/TCPServer.cpp +@@ -59,7 +59,7 @@ namespace tcp { + // Post a call to the stop function so that server::stop() is safe to call + // from any thread. + flghandle_stop_Completed=false; +- boost::asio::post([this] { handle_stop(); }); ++ boost::asio::post(io_context_, [this] { handle_stop(); }); + } + + void CTCPServerInt::handle_stop() diff --git a/utils/domoticz/test.sh b/utils/domoticz/test.sh new file mode 100644 index 00000000000000..cdfc88703c3ca3 --- /dev/null +++ b/utils/domoticz/test.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +case "$1" in + domoticz) + [ -x /usr/bin/domoticz ] || exit 1 + ;; +esac From 11db6d0903de68381a0add2bc76fcc3aabe5c78c Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 2 May 2026 22:03:39 +0300 Subject: [PATCH 2/3] openzwave: add test.sh MinOZW does not implement any --version flag, so skip the generic version check. Just verify the binary is present and executable. Signed-off-by: Alexandru Ardelean --- utils/openzwave/test.sh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 utils/openzwave/test.sh diff --git a/utils/openzwave/test.sh b/utils/openzwave/test.sh new file mode 100644 index 00000000000000..d449cb312377b6 --- /dev/null +++ b/utils/openzwave/test.sh @@ -0,0 +1,6 @@ +#!/bin/sh +case "$1" in + openzwave) + [ -x /usr/bin/MinOZW ] || exit 1 + ;; +esac From 7ebaf3de9bf81242f65484c5dea273303c89eb67 Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Sat, 2 May 2026 21:50:05 +0300 Subject: [PATCH 3/3] boost: build libquadmath only on some archs libquadmath is only packaged for x86 and powerpc targets in OpenWrt. Declaring it as an unconditional runtime dependency of boost-charconv causes apk installation failure on all other architectures (e.g. i386, arm, mips) with "libquadmath (no such package)". Guard the dependency with an ARCH filter so it is only pulled in on platforms where the package actually exists. Signed-off-by: Alexandru Ardelean boost: add x86 to libquadmath arch conditional in boost-charconv libquadmath is available on x86 (i386) in addition to x86_64 and powerpc variants. Include it in the filter so boost-charconv gets the correct dependency on 32-bit x86 targets. Signed-off-by: Alexandru Ardelean --- libs/boost/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/boost/Makefile b/libs/boost/Makefile index e53e2492c1e43c..212490dce81d50 100644 --- a/libs/boost/Makefile +++ b/libs/boost/Makefile @@ -13,7 +13,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=boost PKG_VERSION:=1.90.0 PKG_SOURCE_VERSION:=1_90_0 -PKG_RELEASE:=1 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2 PKG_SOURCE_URL:=https://archives.boost.io/release/$(PKG_VERSION)/source @SF/$(PKG_NAME)/$(PKG_NAME)/$(PKG_VERSION) @@ -336,7 +336,7 @@ define DefineBoostLibrary endef $(eval $(call DefineBoostLibrary,atomic)) -$(eval $(call DefineBoostLibrary,charconv,,,,libquadmath)) +$(eval $(call DefineBoostLibrary,charconv,,,,$(if $(filter i386 x86_64 powerpc powerpc64,$(ARCH)),libquadmath))) $(eval $(call DefineBoostLibrary,chrono)) $(eval $(call DefineBoostLibrary,cobalt,container context date_time,,,libopenssl)) $(eval $(call DefineBoostLibrary,container))