From 506155159cbf6fc7e38eb645926c2fd58858d0db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?= Date: Mon, 8 Jan 2024 21:29:11 +0700 Subject: [PATCH] blender: update to 4.0.2. --- srcpkgs/blender/patches/0001-musl-fixes.patch | 10 +- srcpkgs/blender/patches/altivec-all.patch | 6 +- srcpkgs/blender/patches/boost-1.81.patch | 12 - .../blender/patches/python-3.12-regex.patch | 36 + .../blender/patches/python3.12-opcode.patch | 89 -- .../patches/python3.12-pyarg-parser.patch | 1161 ----------------- .../patches/python3.12-pylongobject.patch | 26 +- srcpkgs/blender/template | 11 +- 8 files changed, 61 insertions(+), 1290 deletions(-) delete mode 100644 srcpkgs/blender/patches/boost-1.81.patch create mode 100644 srcpkgs/blender/patches/python-3.12-regex.patch delete mode 100644 srcpkgs/blender/patches/python3.12-opcode.patch delete mode 100644 srcpkgs/blender/patches/python3.12-pyarg-parser.patch diff --git a/srcpkgs/blender/patches/0001-musl-fixes.patch b/srcpkgs/blender/patches/0001-musl-fixes.patch index b48056d01327c..a32821172cba3 100644 --- a/srcpkgs/blender/patches/0001-musl-fixes.patch +++ b/srcpkgs/blender/patches/0001-musl-fixes.patch @@ -10,17 +10,15 @@ Subject: [PATCH 1/2] musl fixes extern/glog/src/config_linux.h | 1 - 1 file changed, 1 deletion(-) -diff --git a/extern/glog/src/config_linux.h b/extern/glog/src/config_linux.h -index b3a3325..946095a 100644 --- a/extern/glog/src/config_linux.h +++ b/extern/glog/src/config_linux.h -@@ -14,7 +14,6 @@ +@@ -14,7 +14,9 @@ #define HAVE_DLFCN_H /* Define to 1 if you have the header file. */ --#define HAVE_EXECINFO_H ++#ifdef __GLIBC__ + #define HAVE_EXECINFO_H ++#endif /* Define if you have the `fcntl' function */ #define HAVE_FCNTL --- -2.38.1 diff --git a/srcpkgs/blender/patches/altivec-all.patch b/srcpkgs/blender/patches/altivec-all.patch index a504207d2bcc0..115e1ea6fd033 100644 --- a/srcpkgs/blender/patches/altivec-all.patch +++ b/srcpkgs/blender/patches/altivec-all.patch @@ -1,10 +1,8 @@ This applies a better workaround for C++ type conflicts in AltiVec/C++, allowing it to build on BE ppc(64). -Index: blender-3.3.0/extern/clew/include/clew.h -=================================================================== ---- blender-3.3.0.orig/extern/clew/include/clew.h -+++ blender-3.3.0/extern/clew/include/clew.h +--- a/extern/clew/include/clew.h ++++ b/extern/clew/include/clew.h @@ -370,15 +370,18 @@ typedef unsigned int cl_GLenum; /* Define basic vector types */ diff --git a/srcpkgs/blender/patches/boost-1.81.patch b/srcpkgs/blender/patches/boost-1.81.patch deleted file mode 100644 index f04342a10187c..0000000000000 --- a/srcpkgs/blender/patches/boost-1.81.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: blender-3.3.0/intern/locale/boost_locale_wrapper.cpp -=================================================================== ---- blender-3.3.0.orig/intern/locale/boost_locale_wrapper.cpp -+++ blender-3.3.0/intern/locale/boost_locale_wrapper.cpp -@@ -7,6 +7,7 @@ - - #include - #include -+#include - - #include "boost_locale_wrapper.h" - diff --git a/srcpkgs/blender/patches/python-3.12-regex.patch b/srcpkgs/blender/patches/python-3.12-regex.patch new file mode 100644 index 0000000000000..daba4a859fd15 --- /dev/null +++ b/srcpkgs/blender/patches/python-3.12-regex.patch @@ -0,0 +1,36 @@ +--- a/scripts/addons/io_import_dxf/dxfgrabber/dxfentities.py ++++ b/scripts/addons/io_import_dxf/dxfgrabber/dxfentities.py +@@ -852,7 +852,7 @@ class MText(DXFEntity): + self.set_default_extrusion() + + def lines(self): +- return self.raw_text.split('\P') ++ return self.raw_text.split(r'\P') + + def plain_text(self, split=False): + chars = [] +--- a/scripts/addons/io_scene_gltf2/io/exp/gltf2_io_image_data.py ++++ b/scripts/addons/io_scene_gltf2/io/exp/gltf2_io_image_data.py +@@ -22,9 +22,9 @@ class ImageData: + return hash(self._data) + + def adjusted_name(self): +- regex_dot = re.compile("\.") ++ regex_dot = re.compile(r"\.") + adjusted_name = re.sub(regex_dot, "_", self.name) +- new_name = "".join([char for char in adjusted_name if char not in "!#$&'()*+,/:;<>?@[\]^`{|}~"]) ++ new_name = "".join([char for char in adjusted_name if char not in r"!#$&'()*+,/:;<>?@[\]^`{|}~"]) + return new_name + + @property +--- a/scripts/modules/bl_i18n_utils/settings.py ++++ b/scripts/modules/bl_i18n_utils/settings.py +@@ -302,7 +302,7 @@ PYGETTEXT_KEYWORDS = (() + + # becomes extremely slow to process some (unrelated) source files. + ((r"\{(?:(?:\s*\"[^\",]+\"\s*,)|(?:\s*\"\\\"\",)|(?:\s*nullptr\s*,)){4}\s*" + + _msg_re + r"\s*,(?:(?:\s*\"[^\"',]+\"\s*,)|(?:\s*nullptr\s*,))(?:[^,]+,){2}" +- + "(?:\|?\s*B_UNIT_DEF_[_A-Z]+\s*)+\}"),) + ++ + r"(?:\|?\s*B_UNIT_DEF_[_A-Z]+\s*)+\}"),) + + + tuple((r"{}\(\s*" + _msg_re + r"\s*,\s*(?:" + + r"\s*,\s*)?(?:".join(_ctxt_re_gen(i) for i in range(PYGETTEXT_MAX_MULTI_CTXT)) + r")?\s*\)").format(it) diff --git a/srcpkgs/blender/patches/python3.12-opcode.patch b/srcpkgs/blender/patches/python3.12-opcode.patch deleted file mode 100644 index fabe6de67879b..0000000000000 --- a/srcpkgs/blender/patches/python3.12-opcode.patch +++ /dev/null @@ -1,89 +0,0 @@ -https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5ed674e4d/f/blender-3.6.1-py312-opcode.patch - ---- blender-3.6.1/source/blender/python/intern/bpy_driver.c.pyop 2023-05-18 08:04:45.000000000 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_driver.c 2023-08-01 17:11:06.356802916 +0900 -@@ -313,14 +313,27 @@ static const bool secure_opcodes[255] = - OK_OP(CACHE), - OK_OP(POP_TOP), - OK_OP(PUSH_NULL), -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ OK_OP(INTERPRETER_EXIT), -+ OK_OP(END_FOR), -+ OK_OP(END_SEND), -+#endif - OK_OP(NOP), -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - OK_OP(UNARY_POSITIVE), -+#endif - OK_OP(UNARY_NEGATIVE), - OK_OP(UNARY_NOT), - OK_OP(UNARY_INVERT), - OK_OP(BINARY_SUBSCR), -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ OK_OP(BINARY_SLICE), -+ OK_OP(STORE_SLICE), -+#endif - OK_OP(GET_LEN), -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - OK_OP(LIST_TO_TUPLE), -+#endif - OK_OP(RETURN_VALUE), - OK_OP(SWAP), - OK_OP(BUILD_TUPLE), -@@ -329,10 +342,15 @@ static const bool secure_opcodes[255] = - OK_OP(BUILD_MAP), - OK_OP(COMPARE_OP), - OK_OP(JUMP_FORWARD), -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ OK_OP(POP_JUMP_IF_FALSE), -+ OK_OP(POP_JUMP_IF_TRUE), -+#else - OK_OP(JUMP_IF_FALSE_OR_POP), - OK_OP(JUMP_IF_TRUE_OR_POP), - OK_OP(POP_JUMP_FORWARD_IF_FALSE), - OK_OP(POP_JUMP_FORWARD_IF_TRUE), -+#endif - OK_OP(LOAD_GLOBAL), - OK_OP(IS_OP), - OK_OP(CONTAINS_OP), -@@ -340,8 +358,13 @@ static const bool secure_opcodes[255] = - OK_OP(LOAD_FAST), - OK_OP(STORE_FAST), - OK_OP(DELETE_FAST), -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ OK_OP(POP_JUMP_IF_NOT_NONE), -+ OK_OP(POP_JUMP_IF_NONE), -+#else - OK_OP(POP_JUMP_FORWARD_IF_NOT_NONE), - OK_OP(POP_JUMP_FORWARD_IF_NONE), -+#endif - OK_OP(BUILD_SLICE), - OK_OP(LOAD_DEREF), - OK_OP(STORE_DEREF), -@@ -354,17 +377,26 @@ static const bool secure_opcodes[255] = - OK_OP(DICT_MERGE), - OK_OP(DICT_UPDATE), - # endif -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ OK_OP(INSTRUMENTED_POP_JUMP_IF_NONE), -+ OK_OP(INSTRUMENTED_POP_JUMP_IF_NOT_NONE), -+ OK_OP(INSTRUMENTED_POP_JUMP_IF_FALSE), -+ OK_OP(INSTRUMENTED_POP_JUMP_IF_TRUE), -+#else - OK_OP(POP_JUMP_BACKWARD_IF_NOT_NONE), - OK_OP(POP_JUMP_BACKWARD_IF_NONE), - OK_OP(POP_JUMP_BACKWARD_IF_FALSE), - OK_OP(POP_JUMP_BACKWARD_IF_TRUE), -+#endif - - /* Special cases. */ - OK_OP(LOAD_CONST), /* Ok because constants are accepted. */ - OK_OP(LOAD_NAME), /* Ok, because `PyCodeObject.names` is checked. */ - OK_OP(CALL), /* Ok, because we check its "name" before calling. */ - OK_OP(KW_NAMES), /* Ok, because it's used for calling functions with keyword arguments. */ -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - OK_OP(PRECALL), /* Ok, because it's used for calling. */ -+#endif - - # else /* Python 3.10 and older. */ - diff --git a/srcpkgs/blender/patches/python3.12-pyarg-parser.patch b/srcpkgs/blender/patches/python3.12-pyarg-parser.patch deleted file mode 100644 index 9728122c1e5dd..0000000000000 --- a/srcpkgs/blender/patches/python3.12-pyarg-parser.patch +++ /dev/null @@ -1,1161 +0,0 @@ -https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5ed674e4d/f/blender-3.6.1-py312-pyarg-parser-def.patch - ---- blender-3.6.1/source/blender/python/generic/imbuf_py_api.c.py312 2023-07-31 22:34:10.598661316 +0900 -+++ blender-3.6.1/source/blender/python/generic/imbuf_py_api.c 2023-07-31 22:42:31.327330268 +0900 -@@ -93,12 +93,11 @@ static PyObject *py_imbuf_resize(Py_ImBu - - static const char *_keywords[] = {"size", "method", NULL}; - static _PyArg_Parser _parser = { -- "(ii)" /* `size` */ -+ .format = "(ii)" /* `size` */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `method` */ - ":resize", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &size[0], &size[1], PyC_ParseStringEnum, &method)) -@@ -139,11 +138,10 @@ static PyObject *py_imbuf_crop(Py_ImBuf - - static const char *_keywords[] = {"min", "max", NULL}; - static _PyArg_Parser _parser = { -- "(II)" /* `min` */ -+ .format = "(II)" /* `min` */ - "(II)" /* `max` */ - ":crop", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &crop.xmin, &crop.ymin, &crop.xmax, &crop.ymax)) -@@ -431,10 +429,9 @@ static PyObject *M_imbuf_new(PyObject *U - int size[2]; - static const char *_keywords[] = {"size", NULL}; - static _PyArg_Parser _parser = { -- "(ii)" /* `size` */ -+ .format = "(ii)" /* `size` */ - ":new", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &size[0], &size[1])) { - return NULL; -@@ -471,10 +468,9 @@ static PyObject *M_imbuf_load(PyObject * - - static const char *_keywords[] = {"filepath", NULL}; - static _PyArg_Parser _parser = { -- "s" /* `filepath` */ -+ .format = "s" /* `filepath` */ - ":load", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filepath)) { - return NULL; -@@ -518,12 +514,11 @@ static PyObject *M_imbuf_write(PyObject - - static const char *_keywords[] = {"image", "filepath", NULL}; - static _PyArg_Parser _parser = { -- "O!" /* `image` */ -+ .format = "O!" /* `image` */ - "|$" /* Optional keyword only arguments. */ - "s" /* `filepath` */ - ":write", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &Py_ImBuf_Type, &py_imb, &filepath)) { - return NULL; ---- blender-3.6.1/source/blender/python/gpu/gpu_py_batch.c.py312 2023-07-31 22:34:10.601661314 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_batch.c 2023-07-31 22:44:12.219263571 +0900 -@@ -55,13 +55,12 @@ static PyObject *pygpu_batch__tp_new(PyT - - static const char *_keywords[] = {"type", "buf", "elem", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O&" /* `type` */ - "O!" /* `buf` */ - "O!" /* `elem` */ - ":GPUBatch.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -256,13 +255,12 @@ static PyObject *pygpu_batch_draw_instan - - static const char *_keywords[] = {"program", "instance_start", "instance_count", NULL}; - static _PyArg_Parser _parser = { -- "O!" /* `program` */ -+ .format = "O!" /* `program` */ - "|$" /* Optional keyword only arguments. */ - "i" /* `instance_start` */ - "i" /* `instance_count' */ - ":GPUBatch.draw_instanced", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &BPyGPUShader_Type, &py_program, &instance_start, &instance_count)) -@@ -298,13 +296,12 @@ static PyObject *pygpu_batch_draw_range( - - static const char *_keywords[] = {"program", "elem_start", "elem_count", NULL}; - static _PyArg_Parser _parser = { -- "O!" /* `program` */ -+ .format = "O!" /* `program` */ - "|$" /* Optional keyword only arguments. */ - "i" /* `elem_start' */ - "i" /* `elem_count' */ - ":GPUBatch.draw_range", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &BPyGPUShader_Type, &py_program, &elem_start, &elem_count)) ---- blender-3.6.1/source/blender/python/gpu/gpu_py_element.c.py312 2023-07-31 22:34:10.601661314 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_element.c 2023-07-31 22:44:28.707252670 +0900 -@@ -38,11 +38,10 @@ static PyObject *pygpu_IndexBuf__tp_new( - - static const char *_keywords[] = {"type", "seq", NULL}; - static _PyArg_Parser _parser = { -- "$O" /* `type` */ -+ .format = "$O" /* `type` */ - "&O" /* `seq` */ - ":IndexBuf.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, PyC_ParseStringEnum, &prim_type, &seq)) { ---- blender-3.6.1/source/blender/python/gpu/gpu_py_framebuffer.c.py312 2023-07-31 22:34:10.603661313 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_framebuffer.c 2023-07-31 22:45:05.470228366 +0900 -@@ -276,12 +276,11 @@ static PyObject *pygpu_framebuffer__tp_n - PyObject *color_attachements = NULL; - static const char *_keywords[] = {"depth_slot", "color_slots", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O" /* `depth_slot` */ - "O" /* `color_slots` */ - ":GPUFrameBuffer.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, &depth_attachment, &color_attachements)) -@@ -371,13 +370,12 @@ static PyObject *pygpu_framebuffer_clear - - static const char *_keywords[] = {"color", "depth", "stencil", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O" /* `color` */ - "O" /* `depth` */ - "O" /* `stencil` */ - ":clear", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &py_col, &py_depth, &py_stencil)) { - return NULL; -@@ -490,7 +488,7 @@ static PyObject *pygpu_framebuffer_read_ - static const char *_keywords[] = { - "x", "y", "xsize", "ysize", "channels", "slot", "format", "data", NULL}; - static _PyArg_Parser _parser = { -- "i" /* `x` */ -+ .format = "i" /* `x` */ - "i" /* `y` */ - "i" /* `xsize` */ - "i" /* `ysize` */ -@@ -500,8 +498,7 @@ static PyObject *pygpu_framebuffer_read_ - "|$" /* Optional keyword only arguments. */ - "O!" /* `data` */ - ":read_color", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -589,15 +586,14 @@ static PyObject *pygpu_framebuffer_read_ - - static const char *_keywords[] = {"x", "y", "xsize", "ysize", "data", NULL}; - static _PyArg_Parser _parser = { -- "i" /* `x` */ -+ .format = "i" /* `x` */ - "i" /* `y` */ - "i" /* `xsize` */ - "i" /* `ysize` */ - "|$" /* Optional keyword only arguments. */ - "O!" /* `data` */ - ":read_depth", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, &x, &y, &w, &h, &BPyGPU_BufferType, &py_buffer)) ---- blender-3.6.1/source/blender/python/gpu/gpu_py_offscreen.c.py312 2023-07-31 22:34:10.604661312 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_offscreen.c 2023-07-31 22:45:39.391205939 +0900 -@@ -186,11 +186,10 @@ static PyObject *pygpu_offscreen_unbind( - - static const char *_keywords[] = {"restore", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O&" /* `restore` */ - ":unbind", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, PyC_ParseBool, &restore)) { - return NULL; -@@ -218,13 +217,12 @@ static PyObject *pygpu_offscreen__tp_new - - static const char *_keywords[] = {"width", "height", "format", NULL}; - static _PyArg_Parser _parser = { -- "i" /* `width` */ -+ .format = "i" /* `width` */ - "i" /* `height` */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `format` */ - ":GPUOffScreen.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, &width, &height, PyC_ParseStringEnum, &pygpu_textureformat)) -@@ -339,7 +337,7 @@ static PyObject *pygpu_offscreen_draw_vi - NULL, - }; - static _PyArg_Parser _parser = { -- "O" /* `scene` */ -+ .format = "O" /* `scene` */ - "O" /* `view_layer` */ - "O" /* `view3d` */ - "O" /* `region` */ -@@ -349,8 +347,7 @@ static PyObject *pygpu_offscreen_draw_vi - "O&" /* `do_color_management` */ - "O&" /* `draw_background` */ - ":draw_view3d", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, ---- blender-3.6.1/source/blender/python/gpu/gpu_py_shader.c.py312 2023-07-31 22:34:10.605661312 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_shader.c 2023-07-31 22:46:04.128189584 +0900 -@@ -107,7 +107,7 @@ static PyObject *pygpu_shader__tp_new(Py - static const char *_keywords[] = { - "vertexcode", "fragcode", "geocode", "libcode", "defines", "name", NULL}; - static _PyArg_Parser _parser = { -- "s" /* `vertexcode` */ -+ .format = "s" /* `vertexcode` */ - "s" /* `fragcode` */ - "|$" /* Optional keyword only arguments. */ - "s" /* `geocode` */ -@@ -115,8 +115,7 @@ static PyObject *pygpu_shader__tp_new(Py - "s" /* `defines` */ - "s" /* `name` */ - ":GPUShader.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -841,12 +840,11 @@ static PyObject *pygpu_shader_from_built - - static const char *_keywords[] = {"shader_name", "config", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `shader_name` */ -+ .format = "O&" /* `shader_name` */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `config` */ - ":from_builtin", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, ---- blender-3.6.1/source/blender/python/gpu/gpu_py_shader_create_info.cc.py312 2023-07-31 22:34:10.607661310 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_shader_create_info.cc 2023-07-31 22:46:53.192157144 +0900 -@@ -482,14 +482,13 @@ static PyObject *pygpu_shader_info_fragm - - static const char *_keywords[] = {"slot", "type", "name", "blend", nullptr}; - static _PyArg_Parser _parser = { -- "i" /* `slot` */ -+ .format = "i" /* `slot` */ - "O&" /* `type` */ - "s" /* `name` */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `blend` */ - ":fragment_out", -- _keywords, -- nullptr, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -586,15 +585,14 @@ static PyObject *pygpu_shader_info_image - - static const char *_keywords[] = {"slot", "format", "type", "name", "qualifiers", nullptr}; - static _PyArg_Parser _parser = { -- "i" /* `slot` */ -+ .format = "i" /* `slot` */ - "O&" /* `format` */ - "O&" /* `type` */ - "s" /* `name` */ - "|$" /* Optional keyword only arguments. */ - "O" /* `qualifiers` */ - ":image", -- _keywords, -- nullptr, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -769,13 +767,12 @@ static PyObject *pygpu_shader_info_push_ - - static const char *_keywords[] = {"type", "name", "size", nullptr}; - static _PyArg_Parser _parser = { -- "O&" /* `type` */ -+ .format = "O&" /* `type` */ - "s" /* `name` */ - "|" /* Optional arguments. */ - "I" /* `size` */ - ":push_constant", -- _keywords, -- nullptr, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, PyC_ParseStringEnum, &pygpu_type, &name, &array_size)) ---- blender-3.6.1/source/blender/python/gpu/gpu_py_texture.c.py312 2023-07-31 22:34:10.607661310 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_texture.c 2023-07-31 22:55:30.710104087 +0900 -@@ -121,15 +121,14 @@ static PyObject *pygpu_texture__tp_new(P - - static const char *_keywords[] = {"size", "layers", "is_cubemap", "format", "data", NULL}; - static _PyArg_Parser _parser = { -- "O" /* `size` */ -+ .format = "O" /* `size` */ - "|$" /* Optional keyword only arguments. */ - "i" /* `layers` */ - "p" /* `is_cubemap` */ - "O&" /* `format` */ - "O!" /* `data` */ - ":GPUTexture.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, -@@ -294,12 +293,11 @@ static PyObject *pygpu_texture_clear(BPy - - static const char *_keywords[] = {"format", "value", NULL}; - static _PyArg_Parser _parser = { -- "$" /* Keyword only arguments. */ -+ .format = "$" /* Keyword only arguments. */ - "O&" /* `format` */ - "O" /* `value` */ - ":clear", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, PyC_ParseStringEnum, &pygpu_dataformat, &py_values)) ---- blender-3.6.1/source/blender/python/gpu/gpu_py_uniformbuffer.c.py312 2023-07-31 22:34:10.608661310 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_uniformbuffer.c 2023-07-31 22:58:19.589656161 +0900 -@@ -65,10 +65,9 @@ static PyObject *pygpu_uniformbuffer__tp - - static const char *_keywords[] = {"data", NULL}; - static _PyArg_Parser _parser = { -- "O" /* `data` */ -+ .format = "O" /* `data` */ - ":GPUUniformBuf.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &pybuffer_obj)) { - return NULL; ---- blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_buffer.c.py312 2023-07-31 22:34:10.609661309 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_buffer.c 2023-07-31 22:58:39.983722822 +0900 -@@ -237,11 +237,10 @@ static PyObject *pygpu_vertbuf__tp_new(P - - static const char *_keywords[] = {"format", "len", NULL}; - static _PyArg_Parser _parser = { -- "O!" /* `format` */ -+ .format = "O!" /* `format` */ - "I" /* `len` */ - ":GPUVertBuf.__new__", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, &BPyGPUVertFormat_Type, ¶ms.py_fmt, ¶ms.len)) -@@ -273,11 +272,10 @@ static PyObject *pygpu_vertbuf_attr_fill - - static const char *_keywords[] = {"id", "data", NULL}; - static _PyArg_Parser _parser = { -- "O" /* `id` */ -+ .format = "O" /* `id` */ - "O" /* `data` */ - ":attr_fill", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &identifier, &data)) { - return NULL; ---- blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_format.c.py312 2023-07-31 22:34:10.610661308 +0900 -+++ blender-3.6.1/source/blender/python/gpu/gpu_py_vertex_format.c 2023-07-31 22:58:53.309766384 +0900 -@@ -91,14 +91,13 @@ static PyObject *pygpu_vertformat_attr_a - - static const char *_keywords[] = {"id", "comp_type", "len", "fetch_mode", NULL}; - static _PyArg_Parser _parser = { -- "$" /* Keyword only arguments. */ -+ .format = "$" /* Keyword only arguments. */ - "s" /* `id` */ - "O&" /* `comp_type` */ - "I" /* `len` */ - "O&" /* `fetch_mode` */ - ":attr_add", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, ---- blender-3.6.1/source/blender/python/intern/bpy.c.py312 2023-05-18 08:04:45.000000000 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy.c 2023-07-31 22:42:10.505344032 +0900 -@@ -118,13 +118,12 @@ static PyObject *bpy_blend_paths(PyObjec - - static const char *_keywords[] = {"absolute", "packed", "local", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O&" /* `absolute` */ - "O&" /* `packed` */ - "O&" /* `local` */ - ":blend_paths", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -181,12 +180,11 @@ static PyObject *bpy_flip_name(PyObject - - static const char *_keywords[] = {"", "strip_digits", NULL}; - static _PyArg_Parser _parser = { -- "s#" /* `name` */ -+ .format = "s#" /* `name` */ - "|$" /* Optional, keyword only arguments. */ - "O&" /* `strip_digits` */ - ":flip_name", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &name_src, &name_src_len, PyC_ParseBool, &strip_digits)) -@@ -225,12 +223,11 @@ static PyObject *bpy_user_resource(PyObj - - static const char *_keywords[] = {"type", "path", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `type` */ -+ .format = "O&" /* `type` */ - "|$" /* Optional keyword only arguments. */ - "s" /* `path` */ - ":user_resource", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, PyC_ParseStringEnum, &type, &subdir)) { - return NULL; -@@ -268,12 +265,11 @@ static PyObject *bpy_system_resource(PyO - - static const char *_keywords[] = {"type", "path", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `type` */ -+ .format = "O&" /* `type` */ - "|$" /* Optional keyword only arguments. */ - "s" /* `path` */ - ":system_resource", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, PyC_ParseStringEnum, &type, &subdir)) { - return NULL; -@@ -313,13 +309,12 @@ static PyObject *bpy_resource_path(PyObj - - static const char *_keywords[] = {"type", "major", "minor", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `type` */ -+ .format = "O&" /* `type` */ - "|$" /* Optional keyword only arguments. */ - "i" /* `major` */ - "i" /* `minor` */ - ":resource_path", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, PyC_ParseStringEnum, &type, &major, &minor)) -@@ -353,13 +348,12 @@ static PyObject *bpy_driver_secure_code_ - const bool verbose = false; - static const char *_keywords[] = {"code", "namespace", "verbose", NULL}; - static _PyArg_Parser _parser = { -- "O!" /* `expression` */ -+ .format = "O!" /* `expression` */ - "|$" /* Optional keyword only arguments. */ - "O!" /* `namespace` */ - "O&" /* `verbose` */ - ":driver_secure_code_test", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, ---- blender-3.6.1/source/blender/python/intern/bpy_app.c.py312 2023-05-18 08:04:45.000000000 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_app.c 2023-07-31 22:42:10.506344031 +0900 -@@ -502,10 +502,9 @@ static PyObject *bpy_app_is_job_running( - }; - static const char *_keywords[] = {"job_type", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `job_type` */ -+ .format = "O&" /* `job_type` */ - ":is_job_running", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, pyrna_enum_value_parse_string, &job_type_enum)) ---- blender-3.6.1/source/blender/python/intern/bpy_app_icons.c.py312 2023-05-18 08:04:45.000000000 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_app_icons.c 2023-07-31 22:42:10.508344030 +0900 -@@ -41,12 +41,11 @@ static PyObject *bpy_app_icons_new_trian - - static const char *_keywords[] = {"range", "coords", "colors", NULL}; - static _PyArg_Parser _parser = { -- "(BB)" /* `range` */ -+ .format = "(BB)" /* `range` */ - "S" /* `coords` */ - "S" /* `colors` */ - ":new_triangles", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &coords_range[0], &coords_range[1], &py_coords, &py_colors)) -@@ -102,10 +101,9 @@ static PyObject *bpy_app_icons_new_trian - - static const char *_keywords[] = {"filename", NULL}; - static _PyArg_Parser _parser = { -- "s" /* `filename` */ -+ .format = "s" /* `filename` */ - ":new_triangles_from_file", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filename)) { - return NULL; -@@ -129,10 +127,9 @@ static PyObject *bpy_app_icons_release(P - int icon_id; - static const char *_keywords[] = {"icon_id", NULL}; - static _PyArg_Parser _parser = { -- "i" /* `icon_id` */ -+ .format = "i" /* `icon_id` */ - ":release", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &icon_id)) { - return NULL; ---- blender-3.6.1/source/blender/python/intern/bpy_app_timers.c.py312 2023-07-31 22:34:10.616661304 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_app_timers.c 2023-07-31 22:59:24.192867336 +0900 -@@ -94,13 +94,12 @@ static PyObject *bpy_app_timers_register - - static const char *_keywords[] = {"function", "first_interval", "persistent", NULL}; - static _PyArg_Parser _parser = { -- "O" /* `function` */ -+ .format = "O" /* `function` */ - "|$" /* Optional keyword only arguments. */ - "d" /* `first_interval` */ - "p" /* `persistent` */ - ":register", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &function, &first_interval, &persistent)) { ---- blender-3.6.1/source/blender/python/intern/bpy_gizmo_wrap.c.py312 2023-07-31 22:34:10.617661304 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_gizmo_wrap.c 2023-07-31 22:59:34.377900630 +0900 -@@ -52,13 +52,12 @@ static bool bpy_gizmotype_target_propert - - static const char *const _keywords[] = {"id", "type", "array_length", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "s" /* `id` */ - "O&" /* `type` */ - "i" /* `array_length` */ - ":register_class", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(empty_tuple, - item, ---- blender-3.6.1/source/blender/python/intern/bpy_library_load.c.py312 2023-07-31 22:34:10.617661304 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_library_load.c 2023-07-31 23:01:07.290204352 +0900 -@@ -191,7 +191,7 @@ static PyObject *bpy_lib_load(BPy_Proper - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `filepath` */ -+ .format = "s" /* `filepath` */ - /* Optional keyword only arguments. */ - "|$" - "O&" /* `link` */ -@@ -201,8 +201,7 @@ static PyObject *bpy_lib_load(BPy_Proper - "O&" /* `reuse_liboverrides` */ - "O&" /* `create_liboverrides_runtime` */ - ":load", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, ---- blender-3.6.1/source/blender/python/intern/bpy_library_write.c.py312 2023-07-31 22:34:10.620661302 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_library_write.c 2023-07-31 23:01:17.683238325 +0900 -@@ -84,15 +84,14 @@ static PyObject *bpy_lib_write(BPy_Prope - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `filepath` */ -+ .format = "s" /* `filepath` */ - "O!" /* `datablocks` */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `path_remap` */ - "O&" /* `fake_user` */ - "O&" /* `compress` */ - ":write", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, ---- blender-3.6.1/source/blender/python/intern/bpy_msgbus.c.py312 2023-07-31 22:34:10.620661302 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_msgbus.c 2023-07-31 23:03:48.453731192 +0900 -@@ -241,15 +241,14 @@ static PyObject *bpy_msgbus_subscribe_rn - NULL, - }; - static _PyArg_Parser _parser = { -- "O" /* `key` */ -+ .format = "O" /* `key` */ - "O" /* `owner` */ - "O!" /* `args` */ - "O" /* `notify` */ - "|$" /* Optional keyword only arguments. */ - "O!" /* `options` */ - ":subscribe_rna", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -342,10 +341,9 @@ static PyObject *bpy_msgbus_publish_rna( - NULL, - }; - static _PyArg_Parser _parser = { -- "O" /* `key` */ -+ .format = "O" /* `key` */ - ":publish_rna", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &py_sub)) { - return NULL; ---- blender-3.6.1/source/blender/python/intern/bpy_props.c.py312 2023-07-31 22:34:10.622661300 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_props.c 2023-07-31 23:05:40.195096474 +0900 -@@ -1579,11 +1579,10 @@ static bool bpy_prop_string_visit_fn_cal - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `text` */ -+ .format = "s" /* `text` */ - "s" /* `info` */ - ":search", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(item, NULL, &_parser, &text, &info)) { - PyC_Err_PrintWithFunc(py_func); -@@ -2819,7 +2818,7 @@ static PyObject *BPy_BoolProperty(PyObje - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -2833,8 +2832,7 @@ static PyObject *BPy_BoolProperty(PyObje - "O" /* `get` */ - "O" /* `set` */ - ":BoolProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -2976,7 +2974,7 @@ static PyObject *BPy_BoolVectorProperty( - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -2991,8 +2989,7 @@ static PyObject *BPy_BoolVectorProperty( - "O" /* `get` */ - "O" /* `set` */ - ":BoolVectorProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -3166,7 +3163,7 @@ static PyObject *BPy_IntProperty(PyObjec - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -3185,8 +3182,7 @@ static PyObject *BPy_IntProperty(PyObjec - "O" /* `get` */ - "O" /* `set` */ - ":IntProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -3335,7 +3331,7 @@ static PyObject *BPy_IntVectorProperty(P - "get", "set", NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -3355,8 +3351,7 @@ static PyObject *BPy_IntVectorProperty(P - "O" /* `get` */ - "O" /* `set` */ - ":IntVectorProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -3533,7 +3528,7 @@ static PyObject *BPy_FloatProperty(PyObj - "update", "get", "set", NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -3554,8 +3549,7 @@ static PyObject *BPy_FloatProperty(PyObj - "O" /* `get` */ - "O" /* `set` */ - ":FloatProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -3717,7 +3711,7 @@ static PyObject *BPy_FloatVectorProperty - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -3739,8 +3733,7 @@ static PyObject *BPy_FloatVectorProperty - "O" /* `get` */ - "O" /* `set` */ - ":FloatVectorProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -3928,7 +3921,7 @@ static PyObject *BPy_StringProperty(PyOb - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ - "s" /* `description` */ -@@ -3945,8 +3938,7 @@ static PyObject *BPy_StringProperty(PyOb - "O" /* `search` */ - "O&" /* `search_options` */ - ":StringProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -4132,7 +4124,7 @@ static PyObject *BPy_EnumProperty(PyObje - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "O" /* `items` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ -@@ -4146,8 +4138,7 @@ static PyObject *BPy_EnumProperty(PyObje - "O" /* `get` */ - "O" /* `set` */ - ":EnumProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -4360,7 +4351,7 @@ PyObject *BPy_PointerProperty(PyObject * - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "O" /* `type` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ -@@ -4372,8 +4363,7 @@ PyObject *BPy_PointerProperty(PyObject * - "O" /* `poll` */ - "O" /* `update` */ - ":PointerProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -4503,7 +4493,7 @@ PyObject *BPy_CollectionProperty(PyObjec - NULL, - }; - static _PyArg_Parser _parser = { -- "O&" /* `attr` */ -+ .format = "O&" /* `attr` */ - "O" /* `type` */ - "|$" /* Optional, keyword only arguments. */ - "s" /* `name` */ -@@ -4513,8 +4503,7 @@ PyObject *BPy_CollectionProperty(PyObjec - "O&" /* `override` */ - "O&" /* `tags` */ - ":CollectionProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -4621,10 +4610,9 @@ static PyObject *BPy_RemoveProperty(PyOb - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `attr` */ -+ .format = "s" /* `attr` */ - ":RemoveProperty", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &id)) { - return NULL; ---- blender-3.6.1/source/blender/python/intern/bpy_rna.c.py312 2023-07-31 22:34:10.624661299 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna.c 2023-07-31 23:06:05.478179124 +0900 -@@ -3622,12 +3622,11 @@ static PyObject *pyrna_struct_is_propert - - static const char *_keywords[] = {"", "ghost", NULL}; - static _PyArg_Parser _parser = { -- "s" /* `name` (positional). */ -+ .format = "s" /* `name` (positional). */ - "|$" /* Optional keyword only arguments. */ - "O&" /* `ghost` */ - ":is_property_set", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &name, PyC_ParseBool, &use_ghost)) { - return NULL; ---- blender-3.6.1/source/blender/python/intern/bpy_rna_context.c.py312 2023-07-31 22:34:10.624661299 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna_context.c 2023-07-31 23:06:16.302214508 +0900 -@@ -239,13 +239,12 @@ static PyObject *bpy_context_temp_overri - - static const char *const _keywords[] = {"window", "area", "region", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional, keyword only arguments. */ -+ .format = "|$" /* Optional, keyword only arguments. */ - "O&" /* `window` */ - "O&" /* `area` */ - "O&" /* `region` */ - ":temp_override", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - /* Parse known keywords, the remaining keywords are set using #CTX_py_state_push. */ - kwds = kwds ? PyDict_Copy(kwds) : PyDict_New(); ---- blender-3.6.1/source/blender/python/intern/bpy_rna_data.c.py312 2023-07-31 22:34:10.625661298 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna_data.c 2023-07-31 23:06:26.121246611 +0900 -@@ -130,11 +130,10 @@ static PyObject *bpy_rna_data_temp_data( - const char *filepath = NULL; - static const char *_keywords[] = {"filepath", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "z" /* `filepath` */ - ":temp_data", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kw, &_parser, &filepath)) { - return NULL; ---- blender-3.6.1/source/blender/python/intern/bpy_rna_gizmo.c.py312 2023-07-31 22:34:10.626661298 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna_gizmo.c 2023-07-31 23:07:04.923373455 +0900 -@@ -340,15 +340,14 @@ static PyObject *bpy_gizmo_target_set_ha - * (see: rna_wm_gizmo_api.c). conventions should match. */ - static const char *const _keywords[] = {"self", "target", "get", "set", "range", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `self` */ -+ .format = "O&" /* `self` */ - "O&" /* `target` */ - "|$" /* Optional keyword only arguments. */ - "O" /* `get` */ - "O" /* `set` */ - "O" /* `range` */ - ":target_set_handler", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -438,11 +437,10 @@ static PyObject *bpy_gizmo_target_get_va - - static const char *const _keywords[] = {"self", "target", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `self` */ -+ .format = "O&" /* `self` */ - "O&" /* `target` */ - ":target_get_value", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -503,12 +501,11 @@ static PyObject *bpy_gizmo_target_set_va - - static const char *const _keywords[] = {"self", "target", "value", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `self` */ -+ .format = "O&" /* `self` */ - "O&" /* `target` */ - "O" /* `value` */ - ":target_set_value", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, -@@ -581,11 +578,10 @@ static PyObject *bpy_gizmo_target_get_ra - - static const char *const _keywords[] = {"self", "target", NULL}; - static _PyArg_Parser _parser = { -- "O&" /* `self` */ -+ .format = "O&" /* `self` */ - "O&" /* `target` */ - ":target_get_range", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, ---- blender-3.6.1/source/blender/python/intern/bpy_rna_id_collection.c.py312 2023-07-31 22:34:10.627661297 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna_id_collection.c 2023-07-31 23:07:35.212455793 +0900 -@@ -159,13 +159,12 @@ static PyObject *bpy_user_map(PyObject * - - static const char *_keywords[] = {"subset", "key_types", "value_types", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "O" /* `subset` */ - "O!" /* `key_types` */ - "O!" /* `value_types` */ - ":user_map", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, &subset, &PySet_Type, &key_types, &PySet_Type, &val_types)) -@@ -302,10 +301,9 @@ static PyObject *bpy_batch_remove(PyObje - - static const char *_keywords[] = {"ids", NULL}; - static _PyArg_Parser _parser = { -- "O" /* `ids` */ -+ .format = "O" /* `ids` */ - ":batch_remove", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, kwds, &_parser, &ids)) { - return ret; -@@ -380,13 +378,12 @@ static PyObject *bpy_orphans_purge(PyObj - - static const char *_keywords[] = {"do_local_ids", "do_linked_ids", "do_recursive", NULL}; - static _PyArg_Parser _parser = { -- "|" /* Optional arguments. */ -+ .format = "|" /* Optional arguments. */ - "O&" /* `do_local_ids` */ - "O&" /* `do_linked_ids` */ - "O&" /* `do_recursive` */ - ":orphans_purge", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, ---- blender-3.6.1/source/blender/python/intern/bpy_rna_text.c.py312 2023-07-31 22:34:10.630661295 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_rna_text.c 2023-07-31 23:07:58.243491337 +0900 -@@ -64,11 +64,10 @@ static PyObject *bpy_rna_region_as_strin - - static const char *_keywords[] = {"range", NULL}; - static _PyArg_Parser _parser = { -- "|$" /* Optional keyword only arguments. */ -+ .format = "|$" /* Optional keyword only arguments. */ - "((ii)(ii))" /* `range` */ - ":region_as_string", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kwds, &_parser, ®ion.curl, ®ion.curc, ®ion.sell, ®ion.selc)) -@@ -122,12 +121,11 @@ static PyObject *bpy_rna_region_from_str - - static const char *_keywords[] = {"", "range", NULL}; - static _PyArg_Parser _parser = { -- "s#" /* `buf` (positional). */ -+ .format = "s#" /* `buf` (positional). */ - "|$" /* Optional keyword only arguments. */ - "((ii)(ii))" /* `range` */ - ":region_from_string", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kwds, ---- blender-3.6.1/source/blender/python/intern/bpy_utils_units.c.py312 2023-07-31 22:34:10.631661294 +0900 -+++ blender-3.6.1/source/blender/python/intern/bpy_utils_units.c 2023-07-31 23:08:18.178522102 +0900 -@@ -176,14 +176,13 @@ static PyObject *bpyunits_to_value(PyObj - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `unit_system` */ -+ .format = "s" /* `unit_system` */ - "s" /* `unit_category` */ - "s#" /* `str_input` */ - "|$" /* Optional keyword only arguments. */ - "z" /* `str_ref_unit` */ - ":to_value", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast( - args, kw, &_parser, &usys_str, &ucat_str, &inpt, &str_len, &uref)) -@@ -263,7 +262,7 @@ static PyObject *bpyunits_to_string(PyOb - NULL, - }; - static _PyArg_Parser _parser = { -- "s" /* `unit_system` */ -+ .format = "s" /* `unit_system` */ - "s" /* `unit_category` */ - "d" /* `value` */ - "|$" /* Optional keyword only arguments. */ -@@ -271,8 +270,7 @@ static PyObject *bpyunits_to_string(PyOb - "O&" /* `split_unit` */ - "O&" /* `compatible_unit` */ - ":to_string", -- _keywords, -- 0, -+ .keywords = _keywords, - }; - if (!_PyArg_ParseTupleAndKeywordsFast(args, - kw, diff --git a/srcpkgs/blender/patches/python3.12-pylongobject.patch b/srcpkgs/blender/patches/python3.12-pylongobject.patch index 460a1ccfbce1c..80b326809cc95 100644 --- a/srcpkgs/blender/patches/python3.12-pylongobject.patch +++ b/srcpkgs/blender/patches/python3.12-pylongobject.patch @@ -1,8 +1,8 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5ed674e4d/f/blender-3.6.1-py312-pylongobject.patch ---- blender-3.6.1/source/blender/freestyle/intern/python/BPy_IntegrationType.cpp.pyorig 2023-05-18 08:04:44.000000000 +0900 -+++ blender-3.6.1/source/blender/freestyle/intern/python/BPy_IntegrationType.cpp 2023-08-01 16:30:13.609640614 +0900 -@@ -186,6 +186,7 @@ PyTypeObject IntegrationType_Type = { +--- a/source/blender/freestyle/intern/python/BPy_IntegrationType.cpp ++++ b/source/blender/freestyle/intern/python/BPy_IntegrationType.cpp +@@ -188,6 +188,7 @@ PyTypeObject IntegrationType_Type = { /*-----------------------BPy_IntegrationType instance definitions -------------------------*/ @@ -10,7 +10,7 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e static PyLongObject _IntegrationType_MEAN = { PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){MEAN}}; static PyLongObject _IntegrationType_MIN = {PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){MIN}}; -@@ -194,6 +195,26 @@ static PyLongObject _IntegrationType_FIR +@@ -196,6 +197,26 @@ static PyLongObject _IntegrationType_FIR PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){FIRST}}; static PyLongObject _IntegrationType_LAST = { PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){LAST}}; @@ -37,9 +37,9 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e #define BPy_IntegrationType_MEAN ((PyObject *)&_IntegrationType_MEAN) #define BPy_IntegrationType_MIN ((PyObject *)&_IntegrationType_MIN) ---- blender-3.6.1/source/blender/freestyle/intern/python/BPy_MediumType.cpp.pyorig 2023-05-18 08:04:44.000000000 +0900 -+++ blender-3.6.1/source/blender/freestyle/intern/python/BPy_MediumType.cpp 2023-08-01 16:30:18.875628797 +0900 -@@ -71,6 +71,7 @@ PyTypeObject MediumType_Type = { +--- a/source/blender/freestyle/intern/python/BPy_MediumType.cpp ++++ b/source/blender/freestyle/intern/python/BPy_MediumType.cpp +@@ -73,6 +73,7 @@ PyTypeObject MediumType_Type = { /*-----------------------BPy_IntegrationType instance definitions -------------------------*/ @@ -47,7 +47,7 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e PyLongObject _BPy_MediumType_DRY_MEDIUM = { PyVarObject_HEAD_INIT(&MediumType_Type, 1){Stroke::DRY_MEDIUM}, }; -@@ -80,6 +81,24 @@ PyLongObject _BPy_MediumType_HUMID_MEDIU +@@ -82,6 +83,24 @@ PyLongObject _BPy_MediumType_HUMID_MEDIU PyLongObject _BPy_MediumType_OPAQUE_MEDIUM = { PyVarObject_HEAD_INIT(&MediumType_Type, 1){Stroke::OPAQUE_MEDIUM}, }; @@ -72,9 +72,9 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e //-------------------MODULE INITIALIZATION-------------------------------- ---- blender-3.6.1/source/blender/freestyle/intern/python/BPy_Nature.cpp.pyorig 2023-05-18 08:04:44.000000000 +0900 -+++ blender-3.6.1/source/blender/freestyle/intern/python/BPy_Nature.cpp 2023-08-01 16:49:31.446042329 +0900 -@@ -135,6 +135,7 @@ PyTypeObject Nature_Type = { +--- a/source/blender/freestyle/intern/python/BPy_Nature.cpp ++++ b/source/blender/freestyle/intern/python/BPy_Nature.cpp +@@ -137,6 +137,7 @@ PyTypeObject Nature_Type = { /*-----------------------BPy_Nature instance definitions ----------------------------------*/ @@ -82,7 +82,7 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e static PyLongObject _Nature_POINT = {PyVarObject_HEAD_INIT(&Nature_Type, 0){Nature::POINT}}; static PyLongObject _Nature_S_VERTEX = {PyVarObject_HEAD_INIT(&Nature_Type, 1){Nature::S_VERTEX}}; static PyLongObject _Nature_VIEW_VERTEX = { -@@ -157,6 +158,36 @@ static PyLongObject _Nature_MATERIAL_BOU +@@ -159,6 +160,36 @@ static PyLongObject _Nature_MATERIAL_BOU PyVarObject_HEAD_INIT(&Nature_Type, 1){Nature::MATERIAL_BOUNDARY}}; static PyLongObject _Nature_EDGE_MARK = { PyVarObject_HEAD_INIT(&Nature_Type, 1){Nature::EDGE_MARK}}; @@ -119,7 +119,7 @@ https://src.fedoraproject.org/rpms/blender/raw/7045717eb5477c40905f6d29dfd3dbf5e #define BPy_Nature_POINT ((PyObject *)&_Nature_POINT) #define BPy_Nature_S_VERTEX ((PyObject *)&_Nature_S_VERTEX) -@@ -247,7 +278,12 @@ static PyObject *BPy_Nature_bitwise(PyOb +@@ -249,7 +280,12 @@ static PyObject *BPy_Nature_bitwise(PyOb else { result = PyObject_NewVar(BPy_Nature, &Nature_Type, 1); if (result) { diff --git a/srcpkgs/blender/template b/srcpkgs/blender/template index 05fdbf8f747e2..cf3ecbfee0dcb 100644 --- a/srcpkgs/blender/template +++ b/srcpkgs/blender/template @@ -1,10 +1,10 @@ # Template file for 'blender' pkgname=blender -version=3.6.5 -revision=2 +version=4.0.2 +revision=1 archs="x86_64* ppc64*" build_style="cmake" -pycompile_dirs="/usr/share/blender/${version%.*}/scripts" +pycompile_dirs="usr/share/blender/${version%.*}/scripts" configure_args="-DWITH_INSTALL_PORTABLE=OFF -DWITH_PYTHON_INSTALL=OFF -DWITH_JACK=ON -DWITH_CODEC_FFMPEG=ON -DWITH_CODEC_SNDFILE=ON -DWITH_OPENMP=ON -DWITH_FFTW3=ON -DWITH_MOD_OCEANSIM=ON -DWITH_CYCLES_EMBREE=OFF -DWITH_OPENCOLORIO=ON @@ -23,14 +23,15 @@ makedepends="libgomp-devel libpng-devel tiff-devel python3-devel glu-devel OpenSubdiv-devel tbb-devel libxml2-devel openvdb-devel alembic-devel pugixml-devel libXxf86vm-devel libepoxy-devel gmp-devel gmpxx-devel wayland-protocols wayland-devel libxkbcommon-devel libdecor-devel - eigen lzo-devel" + libspnav-devel libwebp-devel potrace-devel Haru-devel openpgl-devel + pulseaudio-devel eigen lzo-devel" depends="desktop-file-utils hicolor-icon-theme" short_desc="3D graphics creation suite" maintainer="Enno Boland " license="GPL-3.0-or-later" homepage="https://www.blender.org" distfiles="https://download.blender.org/source/blender-${version}.tar.xz" -checksum=4001c0fe99f6d872ec7c7e955f84a9eebdb9ada17100f4b519eae08decf7f243 +checksum=aaa0e729da7591cfbf45772af76345977daaa7b11a0af35d98f9313e246077a3 python_version=3 LDFLAGS="-Wl,-z,stack-size=2097152" # Blender tests are executed against a system installation of blender. This