[Buildroot] [PATCH 1/1] package/domoticz: fix build with python 3.9

Fabrice Fontaine fontaine.fabrice at gmail.com
Mon Nov 9 22:30:06 UTC 2020


Fixes:
 - http://autobuild.buildroot.org/results/994c95b2e3635c30e4a575fcf707eaa57b89e198

Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
---
 .../0003-Build-failure-with-python-3-9.patch  | 36 ++++++++++++++++
 .../0004-Load-python-3-9-shared-libs.patch    | 41 +++++++++++++++++++
 2 files changed, 77 insertions(+)
 create mode 100644 package/domoticz/0003-Build-failure-with-python-3-9.patch
 create mode 100644 package/domoticz/0004-Load-python-3-9-shared-libs.patch

diff --git a/package/domoticz/0003-Build-failure-with-python-3-9.patch b/package/domoticz/0003-Build-failure-with-python-3-9.patch
new file mode 100644
index 0000000000..3b07436e83
--- /dev/null
+++ b/package/domoticz/0003-Build-failure-with-python-3-9.patch
@@ -0,0 +1,36 @@
+From b3525e2a970ae3e783665040b1e0db5fc3391327 Mon Sep 17 00:00:00 2001
+From: Jose Zapater <jzapater at gmail.com>
+Date: Mon, 2 Nov 2020 09:46:17 +0100
+Subject: [PATCH] Build failure with python 3.9
+
+Signed-off-by: Jose Zapater <jzapater at gmail.com>
+
+[Retrieved from:
+https://github.com/domoticz/domoticz/commit/b3525e2a970ae3e783665040b1e0db5fc3391327]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
+---
+ hardware/plugins/DelayedLink.h | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/hardware/plugins/DelayedLink.h b/hardware/plugins/DelayedLink.h
+index c90a7d8e69..cb71478685 100644
+--- a/hardware/plugins/DelayedLink.h
++++ b/hardware/plugins/DelayedLink.h
+@@ -14,6 +14,17 @@
+ #include <frameobject.h>
+ #include "../../main/Helper.h"
+ 
++#ifndef _Py_DEC_REFTOTAL
++  /* _Py_DEC_REFTOTAL macro has been removed from Python 3.9 by:
++    https://github.com/python/cpython/commit/49932fec62c616ec88da52642339d83ae719e924 */
++#  ifdef Py_REF_DEBUG
++#    define _Py_DEC_REFTOTAL _Py_RefTotal--
++#  else
++#    define _Py_DEC_REFTOTAL
++#    define _Py_Dealloc
++#  endif
++#endif
++
+ #if PY_VERSION_HEX >= 0x030800f0
+ static inline void
+ py3__Py_DECREF(const char *filename, int lineno, PyObject *op)
diff --git a/package/domoticz/0004-Load-python-3-9-shared-libs.patch b/package/domoticz/0004-Load-python-3-9-shared-libs.patch
new file mode 100644
index 0000000000..c157fd354e
--- /dev/null
+++ b/package/domoticz/0004-Load-python-3-9-shared-libs.patch
@@ -0,0 +1,41 @@
+From 4e1d21967d27d286cbc837b98a1a9f031f7dde58 Mon Sep 17 00:00:00 2001
+From: Jose Zapater <jzapater at gmail.com>
+Date: Fri, 6 Nov 2020 07:40:37 +0100
+Subject: [PATCH] Load python 3.9 shared libs
+
+Signed-off-by: Jose Zapater <jzapater at gmail.com>
+
+[Retrieved from:
+https://github.com/domoticz/domoticz/commit/4e1d21967d27d286cbc837b98a1a9f031f7dde58]
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
+---
+ hardware/plugins/DelayedLink.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/hardware/plugins/DelayedLink.h b/hardware/plugins/DelayedLink.h
+index cb71478685..409c9dce1b 100644
+--- a/hardware/plugins/DelayedLink.h
++++ b/hardware/plugins/DelayedLink.h
+@@ -193,12 +193,14 @@ namespace Plugins {
+ 			if (!shared_lib_) {
+ #ifdef WIN32
+ #	ifdef _DEBUG
++				if (!shared_lib_) shared_lib_ = LoadLibrary("python39_d.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python38_d.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python37_d.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python36_d.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python35_d.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python34_d.dll");
+ #	else
++				if (!shared_lib_) shared_lib_ = LoadLibrary("python39.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python38.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python37.dll");
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python36.dll");
+@@ -206,6 +208,7 @@ namespace Plugins {
+ 				if (!shared_lib_) shared_lib_ = LoadLibrary("python34.dll");
+ #	endif
+ #else
++				if (!shared_lib_) FindLibrary("python3.9", true);
+ 				if (!shared_lib_) FindLibrary("python3.8", true);
+ 				if (!shared_lib_) FindLibrary("python3.7", true);
+ 				if (!shared_lib_) FindLibrary("python3.6", true);
-- 
2.28.0



More information about the buildroot mailing list