From 54675d1f993030893cc88a191e0acb7b9c490812 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Sat, 2 Nov 2019 15:20:56 +0100 Subject: [PATCH] - updated deps - fix build with python 3.8 - rel 3 --- blender.spec | 5 ++++- python-3.8.patch | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 python-3.8.patch diff --git a/blender.spec b/blender.spec index cb20f82..33ee414 100644 --- a/blender.spec +++ b/blender.spec @@ -5,13 +5,14 @@ Summary: 3D modeling, rendering, animation and game creation package Summary(pl.UTF-8): Pakiet do tworzenia animacji 3D oraz gier Name: blender Version: 2.80 -Release: 2 +Release: 3 License: GPL Group: X11/Applications/Graphics Source0: http://download.blender.org/source/%{name}-%{version}.tar.gz # Source0-md5: 30dedaf688741d0d5d6fa1e3c331610c Patch0: %{name}-2.76-droid.patch Patch1: format-security.patch +Patch2: python-3.8.patch URL: http://www.blender.org/ BuildRequires: OpenAL-devel BuildRequires: OpenColorIO-devel @@ -42,6 +43,7 @@ BuildRequires: libtool BuildRequires: libvorbis-devel BuildRequires: openjpeg2-devel BuildRequires: openssl-devel >= 0.9.7d +BuildRequires: pugixml-devel BuildRequires: python3 BuildRequires: python3-devel BuildRequires: python3-numpy-devel @@ -71,6 +73,7 @@ Blender to darmowy i w pełni funkcjonalny pakiet do tworzenia animacji %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 %build install -d build diff --git a/python-3.8.patch b/python-3.8.patch new file mode 100644 index 0000000..c26934e --- /dev/null +++ b/python-3.8.patch @@ -0,0 +1,49 @@ +Index: blender-2.80_patched/source/blender/python/generic/py_capi_utils.c +=================================================================== +--- blender-2.80_patched/source/blender/python/generic/py_capi_utils.c ++++ blender-2.80_patched/source/blender/python/generic/py_capi_utils.c +@@ -717,9 +717,11 @@ + ****************************************************************************/ + PyObject *PyC_DefaultNameSpace(const char *filename) + { +- PyInterpreterState *interp = PyThreadState_GET()->interp; ++ PyObject *modules = PyImport_GetModuleDict(); ++ PyObject *builtins = PyDict_GetItemString(modules, "builtins"); ++ + PyObject *mod_main = PyModule_New("__main__"); +- PyDict_SetItemString(interp->modules, "__main__", mod_main); ++ PyDict_SetItemString(modules, "__main__", mod_main); + Py_DECREF(mod_main); /* sys.modules owns now */ + PyModule_AddStringConstant(mod_main, "__name__", "__main__"); + if (filename) { +@@ -727,8 +729,8 @@ + * note: this wont map to a real file when executing text-blocks and buttons. */ + PyModule_AddObject(mod_main, "__file__", PyC_UnicodeFromByte(filename)); + } +- PyModule_AddObject(mod_main, "__builtins__", interp->builtins); +- Py_INCREF(interp->builtins); /* AddObject steals a reference */ ++ PyModule_AddObject(mod_main, "__builtins__", builtins); ++ Py_INCREF(builtins); /* AddObject steals a reference */ + return PyModule_GetDict(mod_main); + } + +@@ -755,15 +757,15 @@ + /* restore MUST be called after this */ + void PyC_MainModule_Backup(PyObject **main_mod) + { +- PyInterpreterState *interp = PyThreadState_GET()->interp; +- *main_mod = PyDict_GetItemString(interp->modules, "__main__"); ++ PyObject *modules = PyImport_GetModuleDict(); ++ *main_mod = PyDict_GetItemString(modules, "__main__"); + Py_XINCREF(*main_mod); /* don't free */ + } + + void PyC_MainModule_Restore(PyObject *main_mod) + { +- PyInterpreterState *interp = PyThreadState_GET()->interp; +- PyDict_SetItemString(interp->modules, "__main__", main_mod); ++ PyObject *modules = PyImport_GetModuleDict(); ++ PyDict_SetItemString(modules, "__main__", main_mod); + Py_XDECREF(main_mod); + } + -- 2.43.0