[packages/domoticz] fix build on archs without 64bit atomics

atler atler at pld-linux.org
Tue Jun 2 00:12:38 CEST 2026


commit c623b4ae945354de4335de118b6cc6e20a0dcae5
Author: Jan Palus <atler at pld-linux.org>
Date:   Tue Jun 2 00:11:38 2026 +0200

    fix build on archs without 64bit atomics

 atomic.patch  | 45 +++++++++++++++++++++++++++++++++++++++++++++
 domoticz.spec |  7 ++++++-
 2 files changed, 51 insertions(+), 1 deletion(-)
---
diff --git a/domoticz.spec b/domoticz.spec
index 5f4b6f0..76a8913 100644
--- a/domoticz.spec
+++ b/domoticz.spec
@@ -22,12 +22,16 @@ Patch3:		%{name}-no_updates.patch
 Patch4:		config.patch
 Patch5:		libwebem-minizip.patch
 Patch6:		libwebem-static.patch
+Patch7:		atomic.patch
 URL:		https://www.domoticz.com/
 BuildRequires:	boost-devel >= 1.66.0
 BuildRequires:	cmake >= 3.16.0
 BuildRequires:	curl-devel
 BuildRequires:	jsoncpp-devel
 BuildRequires:	jwt-cpp-devel
+%ifnarch %arch_with_atomics64
+BuildRequires:	libatomic-devel
+%endif
 BuildRequires:	libmosquitto-devel
 BuildRequires:	libopenzwave-devel >= 1.5.0
 BuildRequires:	libstdc++-devel >= 6:8
@@ -39,7 +43,7 @@ BuildRequires:	openssl-devel
 BuildRequires:	pkgconfig
 BuildRequires:	python3 >= 1:3.4
 BuildRequires:	python3-devel >= 1:3.4
-BuildRequires:	rpmbuild(macros) >= 1.644
+BuildRequires:	rpmbuild(macros) >= 2.025
 BuildRequires:	sqlite3-devel
 BuildRequires:	tinyxml-devel
 BuildRequires:	tinyxpath-devel
@@ -76,6 +80,7 @@ urządzenie przenośne.
 %patch -P2 -p1
 %patch -P3 -p1
 %patch -P4 -p1
+%patch -P7 -p1
 
 APPVERSION="%{version}"
 echo "#define APPVERSION ${APPVERSION##*.}" > appversion.h
diff --git a/atomic.patch b/atomic.patch
new file mode 100644
index 0000000..ece7c56
--- /dev/null
+++ b/atomic.patch
@@ -0,0 +1,45 @@
+--- domoticz-2026.2/CMakeLists.txt.orig	2026-06-01 01:02:38.958193892 +0200
++++ domoticz-2026.2/CMakeLists.txt	2026-06-01 02:00:41.040239739 +0200
+@@ -6,6 +6,7 @@
+ INCLUDE(CheckIncludeFile)
+ INCLUDE(CheckIncludeFiles)
+ INCLUDE(CheckFunctionExists)
++INCLUDE(CheckCXXSourceCompiles)
+ INCLUDE(InstallRequiredSystemLibraries)
+ INCLUDE(TestBigEndian)
+ 
+@@ -535,6 +536,34 @@
+ 
+ ## Link libraries
+ 
++CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++#include <cstdint>
++std::atomic<uint64_t> x = 0;
++int main() {
++x++;
++return 0;
++}
++" BUILTIN_ATOMICS)
++
++IF(NOT BUILTIN_ATOMICS)
++  set (OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
++  set (CMAKE_REQUIRED_LIBRARIES "atomic;${CMAKE_REQUIRED_LIBRARIES}")
++  CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++#include <cstdint>
++std::atomic<uint64_t> x = 0;
++int main() {
++x++;
++return 0;
++}
++" NEEDS_LIBATOMIC)
++  set (CMAKE_REQUIRED_LIBRARIES "${OLD_CMAKE_REQUIRED_LIBRARIES}")
++  IF(NEEDS_LIBATOMIC)
++    target_link_libraries(domoticz atomic)
++  ENDIF(NEEDS_LIBATOMIC)
++ENDIF()
++
+ # jsoncpp
+ IF(USE_BUILTIN_JSONCPP)
+   MESSAGE(STATUS "Using builtin jsoncpp library")
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/domoticz.git/commitdiff/c623b4ae945354de4335de118b6cc6e20a0dcae5



More information about the pld-cvs-commit mailing list