Browse Source

Merge pull request #13762 from neheb/domo4

domoticz: fix compilation with python 3.9
lilik-openwrt-22.03
Rosen Penev 4 years ago
committed by GitHub
parent
commit
9a6834549b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 737 additions and 282 deletions
  1. +4
    -3
      utils/domoticz/Makefile
  2. +706
    -279
      utils/domoticz/patches/010-boost-173.patch
  3. +27
    -0
      utils/domoticz/patches/020-python39.patch

+ 4
- 3
utils/domoticz/Makefile View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=domoticz
PKG_VERSION:=2020.2
PKG_RELEASE:=2
PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/domoticz/domoticz/archive/$(PKG_VERSION)/$(PKG_SOURCE)
@ -25,7 +25,6 @@ PKG_USE_MIPS16:=0
CMAKE_INSTALL:=1
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/cmake.mk
define Package/domoticz
@ -42,6 +41,7 @@ define Package/domoticz
+boost-thread \
+jsoncpp \
+libcurl \
+python3 \
+minizip \
+lua5.3 \
+libmosquitto \
@ -73,8 +73,9 @@ CMAKE_OPTIONS += \
-DUSE_PYTHON=yes \
-DWITH_LIBUSB=no
TARGET_CFLAGS += -flto -DBOOST_BIND_GLOBAL_PLACEHOLDERS
TARGET_CFLAGS += -flto
TARGET_CXXFLAGS += -DWITH_GPIO -flto
TARGET_LDFLAGS += -lpython3.9
define Build/Prepare
$(call Build/Prepare/Default)


+ 706
- 279
utils/domoticz/patches/010-boost-173.patch
File diff suppressed because it is too large
View File


+ 27
- 0
utils/domoticz/patches/020-python39.patch View File

@ -0,0 +1,27 @@
--- a/hardware/plugins/DelayedLink.h
+++ b/hardware/plugins/DelayedLink.h
@@ -14,6 +14,16 @@
#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
+# endif
+#endif
+
#if PY_VERSION_HEX >= 0x030800f0
static inline void
py3__Py_DECREF(const char *filename, int lineno, PyObject *op)
@@ -195,6 +205,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);

Loading…
Cancel
Save