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 <redacted>
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)?
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
--- /dev/null
+--- 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()
--- /dev/null
+#!/bin/sh
+
+case "$1" in
+ domoticz)
+ [ -x /usr/bin/domoticz ] || exit 1
+ ;;
+esac