[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