File make_python_3.6_compatible.patch of Package blender

Index: blender-2.82/CMakeLists.txt
===================================================================
--- blender-2.82.orig/CMakeLists.txt
+++ blender-2.82/CMakeLists.txt
@@ -730,8 +730,8 @@ if(WITH_PYTHON)
   # Do this before main 'platform_*' checks,
   # because UNIX will search for the old Python paths which may not exist.
   # giving errors about missing paths before this case is met.
-  if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.7")
-    message(FATAL_ERROR "At least Python 3.7 is required to build")
+  if(DEFINED PYTHON_VERSION AND "${PYTHON_VERSION}" VERSION_LESS "3.6")
+    message(FATAL_ERROR "At least Python 3.6 is required to build")
   endif()
 
   file(GLOB RESULT "${CMAKE_SOURCE_DIR}/release/scripts/addons")
Index: blender-2.82/source/blender/python/intern/bpy_rna.c
===================================================================
--- blender-2.82.orig/source/blender/python/intern/bpy_rna.c
+++ blender-2.82/source/blender/python/intern/bpy_rna.c
@@ -8683,8 +8683,9 @@ static PyObject *pyrna_register_class(Py
 
   /* Call classed register method.
    * Note that zero falls through, no attribute, no error. */
-  switch (_PyObject_LookupAttr(py_class, bpy_intern_str_register, &py_cls_meth)) {
+  switch (PyObject_HasAttr(py_class, bpy_intern_str_register)) {
     case 1: {
+      py_cls_meth = PyObject_GetAttr(py_class, bpy_intern_str_register);
       PyObject *ret = PyObject_CallObject(py_cls_meth, NULL);
       Py_DECREF(py_cls_meth);
       if (ret) {
@@ -8695,8 +8696,8 @@ static PyObject *pyrna_register_class(Py
       }
       break;
     }
-    case -1: {
-      return NULL;
+    case 0: {
+      break;
     }
   }
 
@@ -8791,7 +8792,8 @@ static PyObject *pyrna_unregister_class(
 
   /* Call classed unregister method.
    * Note that zero falls through, no attribute, no error. */
-  switch (_PyObject_LookupAttr(py_class, bpy_intern_str_unregister, &py_cls_meth)) {
+  switch (PyObject_HasAttr(py_class, bpy_intern_str_unregister)) {
+    py_cls_meth = PyObject_GetAttr(py_class, bpy_intern_str_unregister);
     case 1: {
       PyObject *ret = PyObject_CallObject(py_cls_meth, NULL);
       Py_DECREF(py_cls_meth);
@@ -8803,8 +8805,8 @@ static PyObject *pyrna_unregister_class(
       }
       break;
     }
-    case -1: {
-      return NULL;
+    case 0: {
+      break;
     }
   }
 
Index: blender-2.82/source/blender/python/intern/bpy_capi_utils.h
===================================================================
--- blender-2.82.orig/source/blender/python/intern/bpy_capi_utils.h
+++ blender-2.82/source/blender/python/intern/bpy_capi_utils.h
@@ -21,8 +21,8 @@
 #ifndef __BPY_CAPI_UTILS_H__
 #define __BPY_CAPI_UTILS_H__
 
-#if PY_VERSION_HEX < 0x03070000
-#  error "Python 3.7 or greater is required, you'll need to update your Python."
+#if PY_VERSION_HEX < 0x03060000
+#  error "Python 3.6 or greater is required, you'll need to update your Python."
 #endif
 
 struct EnumPropertyItem;
openSUSE Build Service is sponsored by