diff options
-rw-r--r-- | libre/blender/PKGBUILD | 11 | ||||
-rw-r--r-- | libre/blender/python37.patch | 40 |
2 files changed, 47 insertions, 4 deletions
diff --git a/libre/blender/PKGBUILD b/libre/blender/PKGBUILD index f5221647b..a714c7827 100644 --- a/libre/blender/PKGBUILD +++ b/libre/blender/PKGBUILD @@ -21,7 +21,7 @@ _gitcommit=32432d91bbec558cbd88e54aece61b0d641c1761 pkgname=blender pkgver=2.79.b [[ -n $_gitcommit ]] && pkgver=${pkgver}.git3.${_gitcommit:0:8} -pkgrel=1 +pkgrel=5 pkgrel+=.parabola1 epoch=17 pkgdesc="A fully integrated 3D graphics creation suite" @@ -45,6 +45,7 @@ source=("git://git.blender.org/blender-addons.git" "git://git.blender.org/blender-translations.git" "git://git.blender.org/blender-dev-tools.git" "git://git.blender.org/scons.git" + python37.patch ffmpeg4.0.patch tree_hpp.patch util_sseb.patch @@ -59,6 +60,7 @@ md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' + '1d6d2064db0e8e4e3a52735406f5106a' 'da14d7cbdea1ab5499659a066658cdd2' 'feea89510de171946c41c6208461f453' '53da216adbc2a9d555a59c15b8f0ef08' @@ -79,6 +81,7 @@ prepare() { # fix OS Name (pedantic, I know) sed -i 's|BUILD_PLATFORM;|"GNU/Linux-libre";|' 'source/creator/buildinfo.c' + patch -Np1 -i "$srcdir"/python37.patch patch -Np1 -i "$srcdir"/ffmpeg4.0.patch patch -Np1 -i "$srcdir"/tree_hpp.patch patch -Np1 -i "$srcdir"/util_sseb.patch @@ -104,10 +107,10 @@ build() { -DWITH_CYCLES_CUDA_BINARIES='OFF' \ -DWITH_CYCLES_DEVICE_CUDA='OFF' \ -DWITH_CYCLES_PTEX=OFF \ - -DPYTHON_VERSION=3.6 \ + -DPYTHON_VERSION=3.7 \ -DPYTHON_LIBPATH=/usr/lib \ - -DPYTHON_LIBRARY=python3.6m \ - -DPYTHON_INCLUDE_DIRS=/usr/include/python3.6m + -DPYTHON_LIBRARY=python3.7m \ + -DPYTHON_INCLUDE_DIRS=/usr/include/python3.7m make # PTEX is currently broken and experimental in blender anyway diff --git a/libre/blender/python37.patch b/libre/blender/python37.patch new file mode 100644 index 000000000..b3ce220b0 --- /dev/null +++ b/libre/blender/python37.patch @@ -0,0 +1,40 @@ +From 1db47a2ccd1e68994bf8140eba6cc2a26a2bc91f Mon Sep 17 00:00:00 2001 +From: Campbell Barton <ideasman42@gmail.com> +Date: Thu, 12 Jul 2018 08:28:06 +0200 +Subject: [PATCH] Fix PyRNA class registration w/ Python 3.7 + +In Python3.7 this now raises an error. +--- + source/blender/python/intern/bpy_rna.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c +index 9052b6f580a..80b0aa7a51b 100644 +--- a/source/blender/python/intern/bpy_rna.c ++++ b/source/blender/python/intern/bpy_rna.c +@@ -7577,10 +7577,12 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + if (!(flag & PROP_REGISTER)) + continue; + ++ /* TODO(campbell): Use Python3.7x _PyObject_LookupAttr(), also in the macro below. */ + identifier = RNA_property_identifier(prop); + item = PyObject_GetAttrString(py_class, identifier); + + if (item == NULL) { ++ PyErr_Clear(); + /* Sneaky workaround to use the class name as the bl_idname */ + + #define BPY_REPLACEMENT_STRING(rna_attr, py_attr) \ +@@ -7596,6 +7598,9 @@ static int bpy_class_validate_recursive(PointerRNA *dummyptr, StructRNA *srna, v + } \ + Py_DECREF(item); \ + } \ ++ else { \ ++ PyErr_Clear(); \ ++ } \ + } /* intentionally allow else here */ + + if (false) {} /* needed for macro */ +-- +2.18.0 + |