From 19b0ff3ca67b805f2afedda4c1cb40e9e1c7af21 Mon Sep 17 00:00:00 2001 From: Mingcong Bai Date: Thu, 19 Feb 2026 17:27:29 +0800 Subject: [PATCH 1/3] blender: update to 5.0.1 [...] --- ...001-AOSCOS-cmake-fix-embree-linking.patch} | 4 +- ...ng-HIP-device-pointer-size-on-riscv6.patch | 32 - ...dd-loong64-support-in-BLI_build_conf.patch | 55 -- ...ix-Build-failure-on-riscv64-platform.patch | 46 - ...ython-3.14-3.13-_PyArg_Parser-signat.patch | 783 ------------------ ...ix-OCIO-CPUProcessor-apply-signature.patch | 38 - ...OSCOS-Fix-bpy_driver-for-Python-3.14.patch | 29 - app-creativity/blender/spec | 5 +- 8 files changed, 4 insertions(+), 988 deletions(-) rename app-creativity/blender/autobuild/patches/{0004-AOSCOS-cmake-fix-embree-linking.patch => 0001-AOSCOS-cmake-fix-embree-linking.patch} (86%) delete mode 100644 app-creativity/blender/autobuild/patches/0001-UPSTREAM-Fix-Wrong-HIP-device-pointer-size-on-riscv6.patch delete mode 100644 app-creativity/blender/autobuild/patches/0002-UPSTREAM-Build-Add-loong64-support-in-BLI_build_conf.patch delete mode 100644 app-creativity/blender/autobuild/patches/0003-UPSTREAM-Fix-Build-failure-on-riscv64-platform.patch delete mode 100644 app-creativity/blender/autobuild/patches/0005-AOSCOS-Fix-for-Python-3.14-3.13-_PyArg_Parser-signat.patch delete mode 100644 app-creativity/blender/autobuild/patches/0006-AOSCOS-Fix-OCIO-CPUProcessor-apply-signature.patch delete mode 100644 app-creativity/blender/autobuild/patches/0007-AOSCOS-Fix-bpy_driver-for-Python-3.14.patch diff --git a/app-creativity/blender/autobuild/patches/0004-AOSCOS-cmake-fix-embree-linking.patch b/app-creativity/blender/autobuild/patches/0001-AOSCOS-cmake-fix-embree-linking.patch similarity index 86% rename from app-creativity/blender/autobuild/patches/0004-AOSCOS-cmake-fix-embree-linking.patch rename to app-creativity/blender/autobuild/patches/0001-AOSCOS-cmake-fix-embree-linking.patch index c6773198be18..8d9b2bd5c069 100644 --- a/app-creativity/blender/autobuild/patches/0004-AOSCOS-cmake-fix-embree-linking.patch +++ b/app-creativity/blender/autobuild/patches/0001-AOSCOS-cmake-fix-embree-linking.patch @@ -1,7 +1,7 @@ -From 5b6f858875dcc38a7f92f7b0ad831da467075a97 Mon Sep 17 00:00:00 2001 +From e2fb56c3dee94363b4239b52e1f1c3381e0805a1 Mon Sep 17 00:00:00 2001 From: Tianhao Chai Date: Thu, 28 Oct 2021 23:43:51 -0500 -Subject: [PATCH 4/7] AOSCOS: cmake: fix embree linking +Subject: [PATCH] AOSCOS: cmake: fix embree linking Signed-off-by: Mingcong Bai --- diff --git a/app-creativity/blender/autobuild/patches/0001-UPSTREAM-Fix-Wrong-HIP-device-pointer-size-on-riscv6.patch b/app-creativity/blender/autobuild/patches/0001-UPSTREAM-Fix-Wrong-HIP-device-pointer-size-on-riscv6.patch deleted file mode 100644 index 501ef1ac5aed..000000000000 --- a/app-creativity/blender/autobuild/patches/0001-UPSTREAM-Fix-Wrong-HIP-device-pointer-size-on-riscv6.patch +++ /dev/null @@ -1,32 +0,0 @@ -From b04c2acd0e11f1bd2cd1cdfbea97800cb37bb440 Mon Sep 17 00:00:00 2001 -From: Zhou Qiankang -Date: Tue, 17 Jun 2025 20:18:00 +0200 -Subject: [PATCH 1/7] UPSTREAM: Fix: Wrong HIP device pointer size on riscv64 - and loongarcg64 - -Add __LP64__ to 64-bit platform detection, to ensure hipDeviceptr_t has the -correct size on these platforms. - -Pull Request: https://projects.blender.org/blender/blender/pulls/140528 - -Signed-off-by: Mingcong Bai ---- - extern/hipew/include/hipew.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/extern/hipew/include/hipew.h b/extern/hipew/include/hipew.h -index e87daaec213..963c5092f0b 100644 ---- a/extern/hipew/include/hipew.h -+++ b/extern/hipew/include/hipew.h -@@ -87,7 +87,7 @@ typedef uint32_t hipuint32_t; - typedef uint64_t hipuint64_t; - #endif - --#if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) || defined (__aarch64__) || defined(_M_ARM64) || defined(__ppc64__) || defined(__PPC64__) -+#if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) || defined (__aarch64__) || defined(_M_ARM64) || defined(__ppc64__) || defined(__PPC64__) || defined(__LP64__) - typedef unsigned long long hipDeviceptr_t; - #else - typedef unsigned int hipDeviceptr_t; --- -2.52.0 - diff --git a/app-creativity/blender/autobuild/patches/0002-UPSTREAM-Build-Add-loong64-support-in-BLI_build_conf.patch b/app-creativity/blender/autobuild/patches/0002-UPSTREAM-Build-Add-loong64-support-in-BLI_build_conf.patch deleted file mode 100644 index 0eaa4177a1b8..000000000000 --- a/app-creativity/blender/autobuild/patches/0002-UPSTREAM-Build-Add-loong64-support-in-BLI_build_conf.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 0ffb86f47d50bfd2fe651b5914ccbdc77d203af4 Mon Sep 17 00:00:00 2001 -From: wszqkzqk -Date: Tue, 17 Jun 2025 20:20:26 +0200 -Subject: [PATCH 2/7] UPSTREAM: Build: Add loong64 support in - BLI_build_config.h - -LoongArch is a new RISC ISA developed by Loongson, this adds the missing -entry to BLI_build_config.h. It has been verified to work on Arch Linux's -loong64 port. - -Pull Request: https://projects.blender.org/blender/blender/pulls/130916 - -Signed-off-by: Mingcong Bai ---- - source/blender/blenlib/BLI_build_config.h | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/source/blender/blenlib/BLI_build_config.h b/source/blender/blenlib/BLI_build_config.h -index c45d5b065f4..2ccfcb71787 100644 ---- a/source/blender/blenlib/BLI_build_config.h -+++ b/source/blender/blenlib/BLI_build_config.h -@@ -354,6 +354,11 @@ - # else - # define ARCH_CPU_BIG_ENDIAN 1 - # endif -+#elif defined(__loongarch_lp64) -+# define ARCH_CPU_LOONG_FAMILY 1 -+# define ARCH_CPU_LOONG64 1 -+# define ARCH_CPU_64_BITS 1 -+# define ARCH_CPU_LITTLE_ENDIAN 1 - #else - # error Please add support for your architecture in BLI_build_config.h - #endif -@@ -396,6 +401,9 @@ - #if !defined(ARCH_CPU_RISCV_FAMILY) - # define ARCH_CPU_RISCV_FAMILY 0 - #endif -+#if !defined(ARCH_CPU_LOONG_FAMILY) -+# define ARCH_CPU_LOONG_FAMILY 0 -+#endif - - #if !defined(ARCH_CPU_ARM64) - # define ARCH_CPU_ARM64 0 -@@ -439,5 +447,8 @@ - #if !defined(ARCH_CPU_RISCV128) - # define ARCH_CPU_RISCV128 0 - #endif -+#if !defined(ARCH_CPU_LOONG64) -+# define ARCH_CPU_LOONG64 0 -+#endif - - /** \} */ --- -2.52.0 - diff --git a/app-creativity/blender/autobuild/patches/0003-UPSTREAM-Fix-Build-failure-on-riscv64-platform.patch b/app-creativity/blender/autobuild/patches/0003-UPSTREAM-Fix-Build-failure-on-riscv64-platform.patch deleted file mode 100644 index b50c1e35b4d2..000000000000 --- a/app-creativity/blender/autobuild/patches/0003-UPSTREAM-Fix-Build-failure-on-riscv64-platform.patch +++ /dev/null @@ -1,46 +0,0 @@ -From b8f2fb5278876805d02af5eb230ffed0608613f1 Mon Sep 17 00:00:00 2001 -From: Brad Smith -Date: Tue, 12 Aug 2025 17:05:25 +0200 -Subject: [PATCH 3/7] UPSTREAM: Fix: Build failure on riscv64 platform - -Use `__LP64__` consistently for 64-bit platform detection and simplify -the checks a bit. The amd64, aarch64 and powerpc64 checks are covered -by `__LP64__`. - -Pull Request: https://projects.blender.org/blender/blender/pulls/143679 - -Signed-off-by: Mingcong Bai ---- - extern/cuew/include/cuew.h | 2 +- - extern/hipew/include/hipew.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/extern/cuew/include/cuew.h b/extern/cuew/include/cuew.h -index 6206c882063..e17acc2026c 100644 ---- a/extern/cuew/include/cuew.h -+++ b/extern/cuew/include/cuew.h -@@ -127,7 +127,7 @@ typedef uint32_t cuuint32_t; - typedef uint64_t cuuint64_t; - #endif - --#if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) || defined (__aarch64__) || defined(_M_ARM64) || defined(__ppc64__) || defined(__PPC64__) -+#if defined(__LP64__) || defined(AMD64) || defined(_M_AMD64) || defined(_M_ARM64) - typedef unsigned long long CUdeviceptr; - #else - typedef unsigned int CUdeviceptr; -diff --git a/extern/hipew/include/hipew.h b/extern/hipew/include/hipew.h -index 963c5092f0b..1706f18a9dc 100644 ---- a/extern/hipew/include/hipew.h -+++ b/extern/hipew/include/hipew.h -@@ -87,7 +87,7 @@ typedef uint32_t hipuint32_t; - typedef uint64_t hipuint64_t; - #endif - --#if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64) || defined (__aarch64__) || defined(_M_ARM64) || defined(__ppc64__) || defined(__PPC64__) || defined(__LP64__) -+#if defined(__LP64__) || defined(AMD64) || defined(_M_AMD64) || defined(_M_ARM64) - typedef unsigned long long hipDeviceptr_t; - #else - typedef unsigned int hipDeviceptr_t; --- -2.52.0 - diff --git a/app-creativity/blender/autobuild/patches/0005-AOSCOS-Fix-for-Python-3.14-3.13-_PyArg_Parser-signat.patch b/app-creativity/blender/autobuild/patches/0005-AOSCOS-Fix-for-Python-3.14-3.13-_PyArg_Parser-signat.patch deleted file mode 100644 index 103fac78ca50..000000000000 --- a/app-creativity/blender/autobuild/patches/0005-AOSCOS-Fix-for-Python-3.14-3.13-_PyArg_Parser-signat.patch +++ /dev/null @@ -1,783 +0,0 @@ -From aaff6e9a21a3391434e44fd5cca89b1df6da5e8d Mon Sep 17 00:00:00 2001 -From: xtex -Date: Mon, 5 May 2025 15:03:51 +0800 -Subject: [PATCH 5/7] AOSCOS: Fix for Python 3.14/3.13+ _PyArg_Parser signature - change - -cpython commit f8373db153920b890c2e2dd8def249e8df63bcc6 restored the -removed _PyArg_Parser structure but its inner signature is a bit -different from the original one. - -Signed-off-by: xtex -Signed-off-by: Mingcong Bai ---- - source/blender/python/generic/imbuf_py_api.cc | 10 ++++---- - source/blender/python/gpu/gpu_py_batch.cc | 6 ++--- - source/blender/python/gpu/gpu_py_compute.cc | 2 +- - source/blender/python/gpu/gpu_py_element.cc | 2 +- - .../blender/python/gpu/gpu_py_framebuffer.cc | 8 +++---- - source/blender/python/gpu/gpu_py_offscreen.cc | 6 ++--- - source/blender/python/gpu/gpu_py_shader.cc | 4 ++-- - .../python/gpu/gpu_py_shader_create_info.cc | 6 ++--- - source/blender/python/gpu/gpu_py_texture.cc | 4 ++-- - .../python/gpu/gpu_py_uniformbuffer.cc | 2 +- - .../python/gpu/gpu_py_vertex_buffer.cc | 4 ++-- - .../python/gpu/gpu_py_vertex_format.cc | 2 +- - source/blender/python/intern/bpy.cc | 12 +++++----- - source/blender/python/intern/bpy_app.cc | 4 ++-- - source/blender/python/intern/bpy_app_icons.cc | 6 ++--- - .../blender/python/intern/bpy_app_timers.cc | 2 +- - .../blender/python/intern/bpy_cli_command.cc | 2 +- - .../blender/python/intern/bpy_library_load.cc | 2 +- - .../python/intern/bpy_library_write.cc | 2 +- - source/blender/python/intern/bpy_msgbus.cc | 4 ++-- - source/blender/python/intern/bpy_operator.cc | 6 ++--- - source/blender/python/intern/bpy_props.cc | 24 +++++++++---------- - source/blender/python/intern/bpy_rna.cc | 2 +- - source/blender/python/intern/bpy_rna_data.cc | 2 +- - .../python/intern/bpy_rna_id_collection.cc | 8 +++---- - source/blender/python/intern/bpy_rna_text.cc | 4 ++-- - .../blender/python/intern/bpy_utils_units.cc | 4 ++-- - 27 files changed, 70 insertions(+), 70 deletions(-) - -diff --git a/source/blender/python/generic/imbuf_py_api.cc b/source/blender/python/generic/imbuf_py_api.cc -index 4168ef49fc8..1cf330651bf 100644 ---- a/source/blender/python/generic/imbuf_py_api.cc -+++ b/source/blender/python/generic/imbuf_py_api.cc -@@ -94,7 +94,7 @@ static PyObject *py_imbuf_resize(Py_ImBuf *self, PyObject *args, PyObject *kw) - }; - PyC_StringEnum method = {method_items, FAST}; - -- static const char *_keywords[] = {"size", "method", nullptr}; -+ static const char * const _keywords[] = {"size", "method", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "(ii)" /* `size` */ -@@ -143,7 +143,7 @@ static PyObject *py_imbuf_crop(Py_ImBuf *self, PyObject *args, PyObject *kw) - - rcti crop; - -- static const char *_keywords[] = {"min", "max", nullptr}; -+ static const char * const _keywords[] = {"min", "max", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "(II)" /* `min` */ -@@ -476,7 +476,7 @@ PyDoc_STRVAR( - static PyObject *M_imbuf_new(PyObject * /*self*/, PyObject *args, PyObject *kw) - { - int size[2]; -- static const char *_keywords[] = {"size", nullptr}; -+ static const char * const _keywords[] = {"size", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "(ii)" /* `size` */ -@@ -542,7 +542,7 @@ static PyObject *M_imbuf_load(PyObject * /*self*/, PyObject *args, PyObject *kw) - { - PyC_UnicodeAsBytesAndSize_Data filepath_data = {nullptr}; - -- static const char *_keywords[] = {"filepath", nullptr}; -+ static const char * const _keywords[] = {"filepath", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `filepath` */ -@@ -588,7 +588,7 @@ static PyObject *M_imbuf_write(PyObject * /*self*/, PyObject *args, PyObject *kw - Py_ImBuf *py_imb; - PyC_UnicodeAsBytesAndSize_Data filepath_data = {nullptr}; - -- static const char *_keywords[] = {"image", "filepath", nullptr}; -+ static const char * const _keywords[] = {"image", "filepath", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O!" /* `image` */ -diff --git a/source/blender/python/gpu/gpu_py_batch.cc b/source/blender/python/gpu/gpu_py_batch.cc -index 546704aae9d..e1c1aa3e55e 100644 ---- a/source/blender/python/gpu/gpu_py_batch.cc -+++ b/source/blender/python/gpu/gpu_py_batch.cc -@@ -57,7 +57,7 @@ static PyObject *pygpu_batch__tp_new(PyTypeObject * /*type*/, PyObject *args, Py - BPyGPUVertBuf *py_vertbuf = nullptr; - BPyGPUIndexBuf *py_indexbuf = nullptr; - -- static const char *_keywords[] = {"type", "buf", "elem", nullptr}; -+ static const char * const _keywords[] = {"type", "buf", "elem", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -350,7 +350,7 @@ static PyObject *pygpu_batch_draw_instanced(BPyGPUBatch *self, PyObject *args, P - int instance_start = 0; - int instance_count = 0; - -- static const char *_keywords[] = {"program", "instance_start", "instance_count", nullptr}; -+ static const char * const _keywords[] = {"program", "instance_start", "instance_count", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O!" /* `program` */ -@@ -395,7 +395,7 @@ static PyObject *pygpu_batch_draw_range(BPyGPUBatch *self, PyObject *args, PyObj - int elem_start = 0; - int elem_count = 0; - -- static const char *_keywords[] = {"program", "elem_start", "elem_count", nullptr}; -+ static const char * const _keywords[] = {"program", "elem_start", "elem_count", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O!" /* `program` */ -diff --git a/source/blender/python/gpu/gpu_py_compute.cc b/source/blender/python/gpu/gpu_py_compute.cc -index ce77bc46cc7..efaa6318a28 100644 ---- a/source/blender/python/gpu/gpu_py_compute.cc -+++ b/source/blender/python/gpu/gpu_py_compute.cc -@@ -47,7 +47,7 @@ static PyObject *pygpu_compute_dispatch(PyObject * /*self*/, PyObject *args, PyO - int groups_y_len; - int groups_z_len; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "shader", "groups_x_len", "groups_y_len", "groups_z_len", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() -diff --git a/source/blender/python/gpu/gpu_py_element.cc b/source/blender/python/gpu/gpu_py_element.cc -index ddb747de53b..29f1ac211cd 100644 ---- a/source/blender/python/gpu/gpu_py_element.cc -+++ b/source/blender/python/gpu/gpu_py_element.cc -@@ -39,7 +39,7 @@ static PyObject *pygpu_IndexBuf__tp_new(PyTypeObject * /*type*/, PyObject *args, - uint index_len; - GPUIndexBufBuilder builder; - -- static const char *_keywords[] = {"type", "seq", nullptr}; -+ static const char * const _keywords[] = {"type", "seq", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "$O" /* `type` */ -diff --git a/source/blender/python/gpu/gpu_py_framebuffer.cc b/source/blender/python/gpu/gpu_py_framebuffer.cc -index ae4de5bfd65..986f4c1b578 100644 ---- a/source/blender/python/gpu/gpu_py_framebuffer.cc -+++ b/source/blender/python/gpu/gpu_py_framebuffer.cc -@@ -332,7 +332,7 @@ static PyObject *pygpu_framebuffer__tp_new(PyTypeObject * /*self*/, PyObject *ar - - PyObject *depth_attachment = nullptr; - PyObject *color_attachements = nullptr; -- static const char *_keywords[] = {"depth_slot", "color_slots", nullptr}; -+ static const char * const _keywords[] = {"depth_slot", "color_slots", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -431,7 +431,7 @@ static PyObject *pygpu_framebuffer_clear(BPyGPUFrameBuffer *self, PyObject *args - PyObject *py_depth = nullptr; - PyObject *py_stencil = nullptr; - -- static const char *_keywords[] = {"color", "depth", "stencil", nullptr}; -+ static const char * const _keywords[] = {"color", "depth", "stencil", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -556,7 +556,7 @@ static PyObject *pygpu_framebuffer_read_color(BPyGPUFrameBuffer *self, - PyC_StringEnum pygpu_dataformat = {bpygpu_dataformat_items, GPU_RGBA8}; - BPyGPUBuffer *py_buffer = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "x", "y", "xsize", "ysize", "channels", "slot", "format", "data", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() -@@ -661,7 +661,7 @@ static PyObject *pygpu_framebuffer_read_depth(BPyGPUFrameBuffer *self, - int x, y, w, h; - BPyGPUBuffer *py_buffer = nullptr; - -- static const char *_keywords[] = {"x", "y", "xsize", "ysize", "data", nullptr}; -+ static const char * const _keywords[] = {"x", "y", "xsize", "ysize", "data", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "i" /* `x` */ -diff --git a/source/blender/python/gpu/gpu_py_offscreen.cc b/source/blender/python/gpu/gpu_py_offscreen.cc -index 023135e0ed7..a1d8350114d 100644 ---- a/source/blender/python/gpu/gpu_py_offscreen.cc -+++ b/source/blender/python/gpu/gpu_py_offscreen.cc -@@ -245,7 +245,7 @@ static PyObject *pygpu_offscreen_unbind(BPyGPUOffScreen *self, PyObject *args, P - - BPY_GPU_OFFSCREEN_CHECK_OBJ(self); - -- static const char *_keywords[] = {"restore", nullptr}; -+ static const char * const _keywords[] = {"restore", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -278,7 +278,7 @@ static PyObject *pygpu_offscreen__tp_new(PyTypeObject * /*self*/, PyObject *args - PyC_StringEnum pygpu_textureformat = {pygpu_framebuffer_color_texture_formats, GPU_RGBA8}; - char err_out[256]; - -- static const char *_keywords[] = {"width", "height", "format", nullptr}; -+ static const char * const _keywords[] = {"width", "height", "format", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "i" /* `width` */ -@@ -407,7 +407,7 @@ static PyObject *pygpu_offscreen_draw_view3d(BPyGPUOffScreen *self, PyObject *ar - - BPY_GPU_OFFSCREEN_CHECK_OBJ(self); - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "scene", - "view_layer", - "view3d", -diff --git a/source/blender/python/gpu/gpu_py_shader.cc b/source/blender/python/gpu/gpu_py_shader.cc -index 9541ff66e24..d6e2b434823 100644 ---- a/source/blender/python/gpu/gpu_py_shader.cc -+++ b/source/blender/python/gpu/gpu_py_shader.cc -@@ -118,7 +118,7 @@ static PyObject *pygpu_shader__tp_new(PyTypeObject * /*type*/, PyObject *args, P - const char *name; - } params = {nullptr}; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "vertexcode", "fragcode", "geocode", "libcode", "defines", "name", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() -@@ -1013,7 +1013,7 @@ static PyObject *pygpu_shader_from_builtin(PyObject * /*self*/, PyObject *args, - PyC_StringEnum pygpu_bultinshader = {pygpu_shader_builtin_items}; - PyC_StringEnum pygpu_config = {pygpu_shader_config_items, GPU_SHADER_CFG_DEFAULT}; - -- static const char *_keywords[] = {"shader_name", "config", nullptr}; -+ static const char * const _keywords[] = {"shader_name", "config", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `shader_name` */ -diff --git a/source/blender/python/gpu/gpu_py_shader_create_info.cc b/source/blender/python/gpu/gpu_py_shader_create_info.cc -index 51ae2c01553..4ee47e0af28 100644 ---- a/source/blender/python/gpu/gpu_py_shader_create_info.cc -+++ b/source/blender/python/gpu/gpu_py_shader_create_info.cc -@@ -596,7 +596,7 @@ static PyObject *pygpu_shader_info_fragment_out(BPyGPUShaderCreateInfo *self, - const char *name; - PyC_StringEnum blend_type = {pygpu_dualblend_items, int(DualBlend::NONE)}; - -- static const char *_keywords[] = {"slot", "type", "name", "blend", nullptr}; -+ static const char * const _keywords[] = {"slot", "type", "name", "blend", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "i" /* `slot` */ -@@ -705,7 +705,7 @@ static PyObject *pygpu_shader_info_image(BPyGPUShaderCreateInfo *self, - PyObject *py_qualifiers = nullptr; - Qualifier qualifier = Qualifier::NO_RESTRICT; - -- static const char *_keywords[] = {"slot", "format", "type", "name", "qualifiers", nullptr}; -+ static const char * const _keywords[] = {"slot", "format", "type", "name", "qualifiers", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "i" /* `slot` */ -@@ -902,7 +902,7 @@ static PyObject *pygpu_shader_info_push_constant(BPyGPUShaderCreateInfo *self, - const char *name = nullptr; - int array_size = 0; - -- static const char *_keywords[] = {"type", "name", "size", nullptr}; -+ static const char * const _keywords[] = {"type", "name", "size", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `type` */ -diff --git a/source/blender/python/gpu/gpu_py_texture.cc b/source/blender/python/gpu/gpu_py_texture.cc -index b7de83f9f05..8e363f31225 100644 ---- a/source/blender/python/gpu/gpu_py_texture.cc -+++ b/source/blender/python/gpu/gpu_py_texture.cc -@@ -125,7 +125,7 @@ static PyObject *pygpu_texture__tp_new(PyTypeObject * /*self*/, PyObject *args, - BPyGPUBuffer *pybuffer_obj = nullptr; - char err_out[256] = "unknown error. See console"; - -- static const char *_keywords[] = {"size", "layers", "is_cubemap", "format", "data", nullptr}; -+ static const char * const _keywords[] = {"size", "layers", "is_cubemap", "format", "data", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O" /* `size` */ -@@ -352,7 +352,7 @@ static PyObject *pygpu_texture_clear(BPyGPUTexture *self, PyObject *args, PyObje - - PyObject *py_values; - -- static const char *_keywords[] = {"format", "value", nullptr}; -+ static const char * const _keywords[] = {"format", "value", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "$" /* Keyword only arguments. */ -diff --git a/source/blender/python/gpu/gpu_py_uniformbuffer.cc b/source/blender/python/gpu/gpu_py_uniformbuffer.cc -index 6fb756f9ee6..849ea52bb64 100644 ---- a/source/blender/python/gpu/gpu_py_uniformbuffer.cc -+++ b/source/blender/python/gpu/gpu_py_uniformbuffer.cc -@@ -66,7 +66,7 @@ static PyObject *pygpu_uniformbuffer__tp_new(PyTypeObject * /*self*/, - PyObject *pybuffer_obj; - char err_out[256] = "unknown error. See console"; - -- static const char *_keywords[] = {"data", nullptr}; -+ static const char * const _keywords[] = {"data", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O" /* `data` */ -diff --git a/source/blender/python/gpu/gpu_py_vertex_buffer.cc b/source/blender/python/gpu/gpu_py_vertex_buffer.cc -index 9683266ed58..c15d6c8f5d9 100644 ---- a/source/blender/python/gpu/gpu_py_vertex_buffer.cc -+++ b/source/blender/python/gpu/gpu_py_vertex_buffer.cc -@@ -236,7 +236,7 @@ static PyObject *pygpu_vertbuf__tp_new(PyTypeObject * /*type*/, PyObject *args, - uint len; - } params; - -- static const char *_keywords[] = {"format", "len", nullptr}; -+ static const char * const _keywords[] = {"format", "len", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O!" /* `format` */ -@@ -276,7 +276,7 @@ static PyObject *pygpu_vertbuf_attr_fill(BPyGPUVertBuf *self, PyObject *args, Py - PyObject *data; - PyObject *identifier; - -- static const char *_keywords[] = {"id", "data", nullptr}; -+ static const char * const _keywords[] = {"id", "data", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O" /* `id` */ -diff --git a/source/blender/python/gpu/gpu_py_vertex_format.cc b/source/blender/python/gpu/gpu_py_vertex_format.cc -index 8fde494f31c..009c244c7ae 100644 ---- a/source/blender/python/gpu/gpu_py_vertex_format.cc -+++ b/source/blender/python/gpu/gpu_py_vertex_format.cc -@@ -93,7 +93,7 @@ static PyObject *pygpu_vertformat_attr_add(BPyGPUVertFormat *self, PyObject *arg - return nullptr; - } - -- static const char *_keywords[] = {"id", "comp_type", "len", "fetch_mode", nullptr}; -+ static const char * const _keywords[] = {"id", "comp_type", "len", "fetch_mode", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "$" /* Keyword only arguments. */ -diff --git a/source/blender/python/intern/bpy.cc b/source/blender/python/intern/bpy.cc -index 66e699607d8..8b7edc94a40 100644 ---- a/source/blender/python/intern/bpy.cc -+++ b/source/blender/python/intern/bpy.cc -@@ -121,7 +121,7 @@ static PyObject *bpy_blend_paths(PyObject * /*self*/, PyObject *args, PyObject * - bool packed = false; - bool local = false; - -- static const char *_keywords[] = {"absolute", "packed", "local", nullptr}; -+ static const char * const _keywords[] = {"absolute", "packed", "local", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -187,7 +187,7 @@ static PyObject *bpy_flip_name(PyObject * /*self*/, PyObject *args, PyObject *kw - Py_ssize_t name_src_len; - bool strip_digits = false; - -- static const char *_keywords[] = {"", "strip_digits", nullptr}; -+ static const char * const _keywords[] = {"", "strip_digits", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s#" /* `name` */ -@@ -229,7 +229,7 @@ static PyObject *bpy_user_resource(PyObject * /*self*/, PyObject *args, PyObject - PyC_StringEnum type = {type_items}; - PyC_UnicodeAsBytesAndSize_Data subdir_data = {nullptr}; - -- static const char *_keywords[] = {"type", "path", nullptr}; -+ static const char * const _keywords[] = {"type", "path", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `type` */ -@@ -283,7 +283,7 @@ static PyObject *bpy_system_resource(PyObject * /*self*/, PyObject *args, PyObje - - PyC_UnicodeAsBytesAndSize_Data subdir_data = {nullptr}; - -- static const char *_keywords[] = {"type", "path", nullptr}; -+ static const char * const _keywords[] = {"type", "path", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `type` */ -@@ -337,7 +337,7 @@ static PyObject *bpy_resource_path(PyObject * /*self*/, PyObject *args, PyObject - - int major = BLENDER_VERSION / 100, minor = BLENDER_VERSION % 100; - -- static const char *_keywords[] = {"type", "major", "minor", nullptr}; -+ static const char * const _keywords[] = {"type", "major", "minor", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `type` */ -@@ -381,7 +381,7 @@ static PyObject *bpy_driver_secure_code_test(PyObject * /*self*/, PyObject *args - PyObject *py_code; - PyObject *py_namespace = nullptr; - const bool verbose = false; -- static const char *_keywords[] = {"code", "namespace", "verbose", nullptr}; -+ static const char * const _keywords[] = {"code", "namespace", "verbose", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O!" /* `expression` */ -diff --git a/source/blender/python/intern/bpy_app.cc b/source/blender/python/intern/bpy_app.cc -index fce01a9e1f6..2627a4597d1 100644 ---- a/source/blender/python/intern/bpy_app.cc -+++ b/source/blender/python/intern/bpy_app.cc -@@ -581,7 +581,7 @@ static PyObject *bpy_app_is_job_running(PyObject * /*self*/, PyObject *args, PyO - job_type_enum.items = rna_enum_wm_job_type_items; - job_type_enum.value = 0; - -- static const char *_keywords[] = {"job_type", nullptr}; -+ static const char * const _keywords[] = {"job_type", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `job_type` */ -@@ -613,7 +613,7 @@ PyDoc_STRVAR( - static PyObject *bpy_app_help_text(PyObject * /*self*/, PyObject *args, PyObject *kwds) - { - bool all = false; -- static const char *_keywords[] = {"all", nullptr}; -+ static const char * const _keywords[] = {"all", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -diff --git a/source/blender/python/intern/bpy_app_icons.cc b/source/blender/python/intern/bpy_app_icons.cc -index 003535686c4..8d03a975253 100644 ---- a/source/blender/python/intern/bpy_app_icons.cc -+++ b/source/blender/python/intern/bpy_app_icons.cc -@@ -41,7 +41,7 @@ static PyObject *bpy_app_icons_new_triangles(PyObject * /*self*/, PyObject *args - uchar coords_range[2]; - PyObject *py_coords, *py_colors; - -- static const char *_keywords[] = {"range", "coords", "colors", nullptr}; -+ static const char * const _keywords[] = {"range", "coords", "colors", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "(BB)" /* `range` */ -@@ -104,7 +104,7 @@ static PyObject *bpy_app_icons_new_triangles_from_file(PyObject * /*self*/, - { - PyC_UnicodeAsBytesAndSize_Data filepath_data = {nullptr}; - -- static const char *_keywords[] = {"filepath", nullptr}; -+ static const char * const _keywords[] = {"filepath", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O&" /* `filepath` */ -@@ -138,7 +138,7 @@ PyDoc_STRVAR( - static PyObject *bpy_app_icons_release(PyObject * /*self*/, PyObject *args, PyObject *kw) - { - int icon_id; -- static const char *_keywords[] = {"icon_id", nullptr}; -+ static const char * const _keywords[] = {"icon_id", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "i" /* `icon_id` */ -diff --git a/source/blender/python/intern/bpy_app_timers.cc b/source/blender/python/intern/bpy_app_timers.cc -index 95ef356844c..95dd95a5db4 100644 ---- a/source/blender/python/intern/bpy_app_timers.cc -+++ b/source/blender/python/intern/bpy_app_timers.cc -@@ -92,7 +92,7 @@ static PyObject *bpy_app_timers_register(PyObject * /*self*/, PyObject *args, Py - double first_interval = 0; - int persistent = false; - -- static const char *_keywords[] = {"function", "first_interval", "persistent", nullptr}; -+ static const char * const _keywords[] = {"function", "first_interval", "persistent", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O" /* `function` */ -diff --git a/source/blender/python/intern/bpy_cli_command.cc b/source/blender/python/intern/bpy_cli_command.cc -index feac498bd92..f7a5012aa06 100644 ---- a/source/blender/python/intern/bpy_cli_command.cc -+++ b/source/blender/python/intern/bpy_cli_command.cc -@@ -206,7 +206,7 @@ static PyObject *bpy_cli_command_register(PyObject * /*self*/, PyObject *args, P - PyObject *py_id; - PyObject *py_exec_fn; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "id", - "execute", - nullptr, -diff --git a/source/blender/python/intern/bpy_library_load.cc b/source/blender/python/intern/bpy_library_load.cc -index a664d6dd8f7..f98c9462b1c 100644 ---- a/source/blender/python/intern/bpy_library_load.cc -+++ b/source/blender/python/intern/bpy_library_load.cc -@@ -190,7 +190,7 @@ static PyObject *bpy_lib_load(BPy_PropertyRNA *self, PyObject *args, PyObject *k - bool create_liboverrides = false, reuse_liboverrides = false, - create_liboverrides_runtime = false; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "filepath", - "link", - "relative", -diff --git a/source/blender/python/intern/bpy_library_write.cc b/source/blender/python/intern/bpy_library_write.cc -index 7b0b334f075..e354eac80d0 100644 ---- a/source/blender/python/intern/bpy_library_write.cc -+++ b/source/blender/python/intern/bpy_library_write.cc -@@ -79,7 +79,7 @@ static PyObject *bpy_lib_write(BPy_PropertyRNA *self, PyObject *args, PyObject * - - bool use_fake_user = false, use_compress = false; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "filepath", - "datablocks", - "path_remap", -diff --git a/source/blender/python/intern/bpy_msgbus.cc b/source/blender/python/intern/bpy_msgbus.cc -index 6b02e3be5a3..0daf240cd56 100644 ---- a/source/blender/python/intern/bpy_msgbus.cc -+++ b/source/blender/python/intern/bpy_msgbus.cc -@@ -229,7 +229,7 @@ static PyObject *bpy_msgbus_subscribe_rna(PyObject * /*self*/, PyObject *args, P - PyErr_Format(PyExc_TypeError, "%s: only keyword arguments are supported", error_prefix); - return nullptr; - } -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "key", - "owner", - "args", -@@ -336,7 +336,7 @@ static PyObject *bpy_msgbus_publish_rna(PyObject * /*self*/, PyObject *args, PyO - PyErr_Format(PyExc_TypeError, "%s: only keyword arguments are supported", error_prefix); - return nullptr; - } -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "key", - nullptr, - }; -diff --git a/source/blender/python/intern/bpy_operator.cc b/source/blender/python/intern/bpy_operator.cc -index 4fd80344093..a49a17415ca 100644 ---- a/source/blender/python/intern/bpy_operator.cc -+++ b/source/blender/python/intern/bpy_operator.cc -@@ -80,7 +80,7 @@ static PyObject *pyop_poll(PyObject * /*self*/, PyObject *args) - } - - /* All arguments are positional. */ -- static const char *_keywords[] = {"", "", nullptr}; -+ static const char * const _keywords[] = {"", "", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s" /* `opname` */ -@@ -151,7 +151,7 @@ static PyObject *pyop_call(PyObject * /*self*/, PyObject *args) - } - - /* All arguments are positional. */ -- static const char *_keywords[] = {"", "", "", "", nullptr}; -+ static const char * const _keywords[] = {"", "", "", "", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s" /* `opname` */ -@@ -325,7 +325,7 @@ static PyObject *pyop_as_string(PyObject * /*self*/, PyObject *args) - } - - /* All arguments are positional. */ -- static const char *_keywords[] = {"", "", "", "", nullptr}; -+ static const char * const _keywords[] = {"", "", "", "", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s" /* `opname` */ -diff --git a/source/blender/python/intern/bpy_props.cc b/source/blender/python/intern/bpy_props.cc -index 2358d6a8ebe..7863f2efe11 100644 ---- a/source/blender/python/intern/bpy_props.cc -+++ b/source/blender/python/intern/bpy_props.cc -@@ -1388,7 +1388,7 @@ static bool bpy_prop_string_visit_fn_call( - - if (PyTuple_CheckExact(item)) { - /* Positional only. */ -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "", - "", - nullptr, -@@ -2587,7 +2587,7 @@ static PyObject *BPy_BoolProperty(PyObject *self, PyObject *args, PyObject *kw) - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "name", - "description", -@@ -2750,7 +2750,7 @@ static PyObject *BPy_BoolVectorProperty(PyObject *self, PyObject *args, PyObject - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "name", - "description", -@@ -2940,7 +2940,7 @@ static PyObject *BPy_IntProperty(PyObject *self, PyObject *args, PyObject *kw) - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "name", - "description", -@@ -3126,7 +3126,7 @@ static PyObject *BPy_IntVectorProperty(PyObject *self, PyObject *args, PyObject - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", "name", "description", "translation_context", - "default", "min", "max", "soft_min", - "soft_max", "step", "options", "override", -@@ -3327,7 +3327,7 @@ static PyObject *BPy_FloatProperty(PyObject *self, PyObject *args, PyObject *kw) - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", "name", "description", "translation_context", - "default", "min", "max", "soft_min", - "soft_max", "step", "precision", "options", -@@ -3514,7 +3514,7 @@ static PyObject *BPy_FloatVectorProperty(PyObject *self, PyObject *args, PyObjec - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", "name", "description", "translation_context", - "default", "min", "max", "soft_min", - "soft_max", "step", "precision", "options", -@@ -3721,7 +3721,7 @@ static PyObject *BPy_StringProperty(PyObject *self, PyObject *args, PyObject *kw - search_options_enum.items = rna_enum_property_string_search_flag_items; - search_options_enum.value = PROP_STRING_SEARCH_SUGGESTION; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "name", - "description", -@@ -3947,7 +3947,7 @@ static PyObject *BPy_EnumProperty(PyObject *self, PyObject *args, PyObject *kw) - PyObject *get_fn = nullptr; - PyObject *set_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "items", - "name", -@@ -4187,7 +4187,7 @@ PyObject *BPy_PointerProperty(PyObject *self, PyObject *args, PyObject *kw) - - PyObject *update_fn = nullptr, *poll_fn = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "type", - "name", -@@ -4336,7 +4336,7 @@ PyObject *BPy_CollectionProperty(PyObject *self, PyObject *args, PyObject *kw) - BPy_EnumProperty_Parse_WithSRNA tags_enum{}; - tags_enum.srna = srna; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - "type", - "name", -@@ -4464,7 +4464,7 @@ static PyObject *BPy_RemoveProperty(PyObject *self, PyObject *args, PyObject *kw - - const char *id = nullptr; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "attr", - nullptr, - }; -diff --git a/source/blender/python/intern/bpy_rna.cc b/source/blender/python/intern/bpy_rna.cc -index 30521e34d25..a1a952ec628 100644 ---- a/source/blender/python/intern/bpy_rna.cc -+++ b/source/blender/python/intern/bpy_rna.cc -@@ -3677,7 +3677,7 @@ static PyObject *pyrna_struct_is_property_set(BPy_StructRNA *self, PyObject *arg - - PYRNA_STRUCT_CHECK_OBJ(self); - -- static const char *_keywords[] = {"", "ghost", nullptr}; -+ static const char * const _keywords[] = {"", "ghost", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s" /* `name` (positional). */ -diff --git a/source/blender/python/intern/bpy_rna_data.cc b/source/blender/python/intern/bpy_rna_data.cc -index 75180b953ba..c69222db6a9 100644 ---- a/source/blender/python/intern/bpy_rna_data.cc -+++ b/source/blender/python/intern/bpy_rna_data.cc -@@ -143,7 +143,7 @@ static PyObject *bpy_rna_data_temp_data(PyObject * /*self*/, PyObject *args, PyO - { - PyC_UnicodeAsBytesAndSize_Data filepath_data = {nullptr}; - BPy_DataContext *ret; -- static const char *_keywords[] = {"filepath", nullptr}; -+ static const char * const _keywords[] = {"filepath", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -diff --git a/source/blender/python/intern/bpy_rna_id_collection.cc b/source/blender/python/intern/bpy_rna_id_collection.cc -index 158a8742a84..08c287a1d67 100644 ---- a/source/blender/python/intern/bpy_rna_id_collection.cc -+++ b/source/blender/python/intern/bpy_rna_id_collection.cc -@@ -174,7 +174,7 @@ static PyObject *bpy_user_map(PyObject *self, PyObject *args, PyObject *kwds) - - IDUserMapData data_cb = {nullptr}; - -- static const char *_keywords[] = {"subset", "key_types", "value_types", nullptr}; -+ static const char * const _keywords[] = {"subset", "key_types", "value_types", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -392,7 +392,7 @@ static PyObject *bpy_file_path_map(PyObject *self, PyObject *args, PyObject *kwd - IDFilePathMapData filepathmap_data{}; - BPathForeachPathData bpath_data{}; - -- static const char *_keywords[] = {"subset", "key_types", "include_libraries", nullptr}; -+ static const char * const _keywords[] = {"subset", "key_types", "include_libraries", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -525,7 +525,7 @@ static PyObject *bpy_batch_remove(PyObject *self, PyObject *args, PyObject *kwds - - PyObject *ids = nullptr; - -- static const char *_keywords[] = {"ids", nullptr}; -+ static const char * const _keywords[] = {"ids", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "O" /* `ids` */ -@@ -596,7 +596,7 @@ static PyObject *bpy_orphans_purge(PyObject *self, PyObject *args, PyObject *kwd - unused_ids_data.do_linked_ids = true; - unused_ids_data.do_recursive = false; - -- static const char *_keywords[] = {"do_local_ids", "do_linked_ids", "do_recursive", nullptr}; -+ static const char * const _keywords[] = {"do_local_ids", "do_linked_ids", "do_recursive", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|" /* Optional arguments. */ -diff --git a/source/blender/python/intern/bpy_rna_text.cc b/source/blender/python/intern/bpy_rna_text.cc -index bc42b22f1ab..db272840b50 100644 ---- a/source/blender/python/intern/bpy_rna_text.cc -+++ b/source/blender/python/intern/bpy_rna_text.cc -@@ -65,7 +65,7 @@ static PyObject *bpy_rna_region_as_string(PyObject *self, PyObject *args, PyObje - /* Parse the region range. */ - TextRegion region; - -- static const char *_keywords[] = {"range", nullptr}; -+ static const char * const _keywords[] = {"range", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "|$" /* Optional keyword only arguments. */ -@@ -135,7 +135,7 @@ static PyObject *bpy_rna_region_from_string(PyObject *self, PyObject *args, PyOb - Py_ssize_t buf_len; - TextRegion region; - -- static const char *_keywords[] = {"", "range", nullptr}; -+ static const char * const _keywords[] = {"", "range", nullptr}; - static _PyArg_Parser _parser = { - PY_ARG_PARSER_HEAD_COMPAT() - "s#" /* `buf` (positional). */ -diff --git a/source/blender/python/intern/bpy_utils_units.cc b/source/blender/python/intern/bpy_utils_units.cc -index b7a8c9a1fec..9c6cbfe46f1 100644 ---- a/source/blender/python/intern/bpy_utils_units.cc -+++ b/source/blender/python/intern/bpy_utils_units.cc -@@ -175,7 +175,7 @@ static PyObject *bpyunits_to_value(PyObject * /*self*/, PyObject *args, PyObject - int usys, ucat; - PyObject *ret; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "unit_system", - "unit_category", - "str_input", -@@ -263,7 +263,7 @@ static PyObject *bpyunits_to_string(PyObject * /*self*/, PyObject *args, PyObjec - - int usys, ucat; - -- static const char *_keywords[] = { -+ static const char * const _keywords[] = { - "unit_system", - "unit_category", - "value", --- -2.52.0 - diff --git a/app-creativity/blender/autobuild/patches/0006-AOSCOS-Fix-OCIO-CPUProcessor-apply-signature.patch b/app-creativity/blender/autobuild/patches/0006-AOSCOS-Fix-OCIO-CPUProcessor-apply-signature.patch deleted file mode 100644 index 4b49a2e6e597..000000000000 --- a/app-creativity/blender/autobuild/patches/0006-AOSCOS-Fix-OCIO-CPUProcessor-apply-signature.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 1980f68a9d3c621489242f532367b3ca74f1f382 Mon Sep 17 00:00:00 2001 -From: xtex -Date: Mon, 5 May 2025 15:28:30 +0800 -Subject: [PATCH 6/7] AOSCOS: Fix OCIO CPUProcessor::apply signature - -void OpenColorIO_v2_1::CPUProcessor::apply(OpenColorIO_v2_1::ImageDesc&) - -Signed-off-by: xtex -Signed-off-by: Mingcong Bai ---- - intern/cycles/scene/colorspace.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/intern/cycles/scene/colorspace.cpp b/intern/cycles/scene/colorspace.cpp -index 226d410213e..487bb2635a0 100644 ---- a/intern/cycles/scene/colorspace.cpp -+++ b/intern/cycles/scene/colorspace.cpp -@@ -310,7 +310,7 @@ inline void processor_apply_pixels_rgba(const OCIO::Processor *processor, - float_pixels[i] = value; - } - -- const OCIO::PackedImageDesc desc((float *)float_pixels.data(), width, 1, 4); -+ OCIO::PackedImageDesc desc((float *)float_pixels.data(), width, 1, 4); - device_processor->apply(desc); - - for (size_t i = 0; i < width; i++) { -@@ -357,7 +357,7 @@ inline void processor_apply_pixels_grayscale(const OCIO::Processor *processor, - } - } - -- const OCIO::PackedImageDesc desc((float *)float_pixels.data(), width, 1, 3); -+ OCIO::PackedImageDesc desc((float *)float_pixels.data(), width, 1, 3); - device_processor->apply(desc); - - { --- -2.52.0 - diff --git a/app-creativity/blender/autobuild/patches/0007-AOSCOS-Fix-bpy_driver-for-Python-3.14.patch b/app-creativity/blender/autobuild/patches/0007-AOSCOS-Fix-bpy_driver-for-Python-3.14.patch deleted file mode 100644 index 5cd05cb5a2d6..000000000000 --- a/app-creativity/blender/autobuild/patches/0007-AOSCOS-Fix-bpy_driver-for-Python-3.14.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0eb73f384d07f0ce9642de6c36e04d0723e5c6af Mon Sep 17 00:00:00 2001 -From: xtex -Date: Mon, 5 May 2025 15:45:11 +0800 -Subject: [PATCH 7/7] AOSCOS: Fix bpy_driver for Python 3.14 - -cpython commit -a1417b211f0bb9582b00f7b82d0a43a3bcc9ed05 - -Signed-off-by: xtex -Signed-off-by: Mingcong Bai ---- - source/blender/python/intern/bpy_driver.cc | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/source/blender/python/intern/bpy_driver.cc b/source/blender/python/intern/bpy_driver.cc -index a0b1384905a..b72ae232816 100644 ---- a/source/blender/python/intern/bpy_driver.cc -+++ b/source/blender/python/intern/bpy_driver.cc -@@ -327,7 +327,6 @@ static bool is_opcode_secure(const int opcode) - OK_OP(UNARY_NEGATIVE) - OK_OP(UNARY_NOT) - OK_OP(UNARY_INVERT) -- OK_OP(BINARY_SUBSCR) - OK_OP(GET_LEN) - # if PY_VERSION_HEX < 0x030c0000 - OK_OP(LIST_TO_TUPLE) --- -2.52.0 - diff --git a/app-creativity/blender/spec b/app-creativity/blender/spec index 2a9dd91fa19d..bc2cfabced88 100644 --- a/app-creativity/blender/spec +++ b/app-creativity/blender/spec @@ -1,6 +1,5 @@ -VER=4.4.3 -REL=1 +VER=5.0.1 SRCS="tbl::https://download.blender.org/source/blender-$VER.tar.xz" -CHKSUMS="sha256::99ecdef24ece14084016ee47c756eeb2fc8a09c8487a0296b45a117224dc5ca7" +CHKSUMS="sha256::0077a41f59843433154fdf2d8aeb6c43f6bf6951cd46987305e67f89cb4f1fbf" CHKUPDATE="anitya::id=201" ENVREQ__LOONGSON3="total_mem=60" From 6e157d6ebffb7a2b19dfa510f3acf9b35cbcddb9 Mon Sep 17 00:00:00 2001 From: Mingcong Bai Date: Sat, 28 Feb 2026 10:50:41 +0800 Subject: [PATCH 2/3] openimageio: update to 3.1.10.0 --- runtime-imaging/openimageio/autobuild/defines | 33 ++++++++++--------- .../openimageio/autobuild/defines.stage2 | 28 ---------------- runtime-imaging/openimageio/spec | 3 +- 3 files changed, 18 insertions(+), 46 deletions(-) delete mode 100644 runtime-imaging/openimageio/autobuild/defines.stage2 diff --git a/runtime-imaging/openimageio/autobuild/defines b/runtime-imaging/openimageio/autobuild/defines index a5854dae0b62..1e6752224344 100644 --- a/runtime-imaging/openimageio/autobuild/defines +++ b/runtime-imaging/openimageio/autobuild/defines @@ -1,25 +1,26 @@ PKGNAME=openimageio PKGSEC=libs -PKGDEP="boost glew jasper libraw libtiff opencolorio opencv openexr openssl \ - pugixml libheif tbb openvdb python-3 giflib imath freetype" +PKGDEP="boost glew jasper libraw libtiff opencolorio opencv openexr \ + openssl pugixml libheif tbb openvdb python-3 giflib imath \ + freetype" BUILDDEP="cmake pybind11" -PKGDES="A library for reading and writing images, including classes, utilities, and applications" +PKGDES="Library to read/write images, including classes, utilities, and applications" ABTYPE=cmakeninja CMAKE_AFTER=( - -DUSE_EXTERNAL_PUGIXML=ON - -DOIIO_BUILD_TOOLS=ON - -DUSE_PYTHON=ON - -DUSE_FFMPEG=OFF - -DBUILD_DOCS=ON - -DINSTALL_DOCS=ON - -DINSTALL_FONTS=OFF - -DUSE_QT=OFF - -DUSE_PTEX=OFF - -DBUILD_TESTING=OFF - -DOIIO_BUILD_TESTS=OFF - -DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF - -DCMAKE_CXX_STANDARD=17 + '-DUSE_EXTERNAL_PUGIXML=ON' + '-DOIIO_BUILD_TOOLS=ON' + '-DUSE_PYTHON=ON' + '-DUSE_FFMPEG=OFF' + '-DBUILD_DOCS=OFF' + '-DINSTALL_DOCS=OFF' + '-DINSTALL_FONTS=OFF' + '-DUSE_QT=OFF' + '-DUSE_PTEX=OFF' + '-DBUILD_TESTING=OFF' + '-DOIIO_BUILD_TESTS=OFF' + '-DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF' + '-DCMAKE_CXX_STANDARD=17' ) # Break old blender due to updated sonames. diff --git a/runtime-imaging/openimageio/autobuild/defines.stage2 b/runtime-imaging/openimageio/autobuild/defines.stage2 deleted file mode 100644 index 074e7f0fe34e..000000000000 --- a/runtime-imaging/openimageio/autobuild/defines.stage2 +++ /dev/null @@ -1,28 +0,0 @@ -PKGNAME=openimageio -PKGSEC=libs -PKGDEP="boost glew jasper libraw libtiff opencv openexr openssl pugixml \ - libheif tbb openvdb python-3 giflib imath freetype" -BUILDDEP="cmake pybind11" -PKGDES="A library for reading and writing images, including classes, utilities, and applications" - -ABTYPE=cmakeninja -CMAKE_AFTER=( - -DUSE_EXTERNAL_PUGIXML=ON - -DOIIO_BUILD_TOOLS=ON - -DUSE_PYTHON=ON - -DUSE_FFMPEG=OFF - -DBUILD_DOCS=ON - -DINSTALL_DOCS=ON - -DINSTALL_FONTS=OFF - -DUSE_QT=OFF - -DUSE_PTEX=OFF - -DBUILD_TESTING=OFF - -DOIIO_BUILD_TESTS=OFF - -DOIIO_DOWNLOAD_MISSING_TESTDATA=OFF - -DCMAKE_CXX_STANDARD=17 -) - -# Break old blender due to updated sonames. -PKGBREAK="blender<=3.2.2" -# ... and other deprecated packages -PKGKBREAK+=" luxrays<=1.6-7 luxrender<=1.6-5" diff --git a/runtime-imaging/openimageio/spec b/runtime-imaging/openimageio/spec index 355339ad0b84..cb95b23ecfb1 100644 --- a/runtime-imaging/openimageio/spec +++ b/runtime-imaging/openimageio/spec @@ -1,5 +1,4 @@ -VER=2.5.19.1 -REL="2" +VER=3.1.10.0 SRCS="git::commit=tags/v$VER::https://github.com/AcademySoftwareFoundation/OpenImageIO" CHKSUMS="SKIP" CHKUPDATE="anitya::id=2548" From 4b3863858d22f72dfa48cbd0941a535e1f851794 Mon Sep 17 00:00:00 2001 From: Mingcong Bai Date: Sat, 28 Feb 2026 10:50:50 +0800 Subject: [PATCH 3/3] opencolorio: update to 2.5.1 --- runtime-imaging/opencolorio/autobuild/defines | 36 +- .../opencolorio/autobuild/defines.stage2 | 38 +- .../patches/0001-cmake-ci-fixes.patch | 503 ------------------ .../0002-try-to-support-yaml-cpp-0.8.0.patch | 74 --- runtime-imaging/opencolorio/autobuild/prepare | 4 - runtime-imaging/opencolorio/spec | 7 +- 6 files changed, 36 insertions(+), 626 deletions(-) delete mode 100644 runtime-imaging/opencolorio/autobuild/patches/0001-cmake-ci-fixes.patch delete mode 100644 runtime-imaging/opencolorio/autobuild/patches/0002-try-to-support-yaml-cpp-0.8.0.patch delete mode 100644 runtime-imaging/opencolorio/autobuild/prepare diff --git a/runtime-imaging/opencolorio/autobuild/defines b/runtime-imaging/opencolorio/autobuild/defines index 62edb7bb1e9f..bdc06ad8c881 100644 --- a/runtime-imaging/opencolorio/autobuild/defines +++ b/runtime-imaging/opencolorio/autobuild/defines @@ -1,25 +1,21 @@ PKGNAME=opencolorio PKGSEC=libs -PKGDEP="freeglut glew glu openimageio python-3 yaml-cpp tinyxml lcms1" -BUILDDEP="breathe doxygen graphviz recommonmark sphinx sphinx-press-theme \ - sphinx-tabs testresources pybind11" -PKGDES="A color management framework for visual effects and animation" +PKGDEP="freeglut glew glu openimageio python-3 yaml-cpp tinyxml lcms2" +PKGDES="Color management framework for visual effects and animation" -CMAKE_AFTER=" - -Dexpat_DIR=/usr/lib/cmake/expat-2.4.6 - -DOCIO_PYTHON_VERSION=3 - -Dexpat_ROOT=/usr' - -DUSE_EXTERNAL_YAML=ON - -DOCIO_BUILD_DOCS=ON - -DUSE_EXTERNAL_TINYXML=ON - -DUSE_EXTERNAL_LCMS=ON -" -CMAKE_AFTER__X86="-DOCIO_USE_SSE=ON" -CMAKE_AFTER__OTHER="-DOCIO_USE_SSE=OFF" -CMAKE_AFTER__AMD64="${CMAKE_AFTER__X86}" -CMAKE_AFTER__ARM64="${CMAKE_AFTER__OTHER}" -CMAKE_AFTER__LOONGSON3="${CMAKE_AFTER__OTHER}" -CMAKE_AFTER__PPC64EL="${CMAKE_AFTER__OTHER}" +CMAKE_AFTER=( + "-Dexpat_DIR=/usr/lib/cmake/expat-$(pkgconf --modversion expat)" + '-DOCIO_PYTHON_VERSION=3' + '-Dexpat_ROOT=/usr' + '-DUSE_EXTERNAL_YAML=ON' + '-DOCIO_BUILD_DOCS=OFF' + '-DUSE_EXTERNAL_TINYXML=ON' + '-DUSE_EXTERNAL_LCMS=ON' + '-DOCIO_USE_SSE=OFF' +) +CMAKE_AFTER__AMD64=( + "${CMAKE_AFTER[@]}" + '-DOCIO_USE_SSE=ON' +) ABTYPE=cmake -NOSTATIC=0 diff --git a/runtime-imaging/opencolorio/autobuild/defines.stage2 b/runtime-imaging/opencolorio/autobuild/defines.stage2 index d5d14ccc43c7..ac93f3084a1a 100644 --- a/runtime-imaging/opencolorio/autobuild/defines.stage2 +++ b/runtime-imaging/opencolorio/autobuild/defines.stage2 @@ -1,25 +1,21 @@ PKGNAME=opencolorio PKGSEC=libs -PKGDEP="freeglut glew glu python-3 yaml-cpp tinyxml lcms1" -BUILDDEP="breathe doxygen graphviz recommonmark sphinx sphinx-press-theme \ - sphinx-tabs testresources pybind11" -PKGDES="A color management framework for visual effects and animation" +PKGDEP="freeglut glew glu python-3 yaml-cpp tinyxml lcms2" +PKGDES="Color management framework for visual effects and animation" -CMAKE_AFTER=" - -Dexpat_DIR=/usr/lib/cmake/expat-2.4.6 - -DOCIO_PYTHON_VERSION=3 - -Dexpat_ROOT=/usr' - -DUSE_EXTERNAL_YAML=ON - -DOCIO_BUILD_DOCS=ON - -DUSE_EXTERNAL_TINYXML=ON - -DUSE_EXTERNAL_LCMS=ON -" -CMAKE_AFTER__X86="-DOCIO_USE_SSE=ON" -CMAKE_AFTER__OTHER="-DOCIO_USE_SSE=OFF" -CMAKE_AFTER__AMD64="${CMAKE_AFTER__X86}" -CMAKE_AFTER__ARM64="${CMAKE_AFTER__OTHER}" -CMAKE_AFTER__LOONGSON3="${CMAKE_AFTER__OTHER}" -CMAKE_AFTER__PPC64EL="${CMAKE_AFTER__OTHER}" +CMAKE_AFTER=( + "-Dexpat_DIR=/usr/lib/cmake/expat-$(pkgconf --modversion expat)" + '-DOCIO_PYTHON_VERSION=3' + '-Dexpat_ROOT=/usr' + '-DUSE_EXTERNAL_YAML=ON' + '-DOCIO_BUILD_DOCS=OFF' + '-DUSE_EXTERNAL_TINYXML=ON' + '-DUSE_EXTERNAL_LCMS=ON' + '-DOCIO_USE_SSE=OFF' +) +CMAKE_AFTER__AMD64=( + "${CMAKE_AFTER[@]}" + '-DOCIO_USE_SSE=ON' +) -ABTYPE=cmake -NOSTATIC=0 +ABTYPE=cmakeninja diff --git a/runtime-imaging/opencolorio/autobuild/patches/0001-cmake-ci-fixes.patch b/runtime-imaging/opencolorio/autobuild/patches/0001-cmake-ci-fixes.patch deleted file mode 100644 index 02133d356154..000000000000 --- a/runtime-imaging/opencolorio/autobuild/patches/0001-cmake-ci-fixes.patch +++ /dev/null @@ -1,503 +0,0 @@ -From 4fa94918c2cf572dcaf61ca07016f3b5c231c14c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Achard?= -Date: Thu, 24 Mar 2022 18:33:32 +0000 -Subject: [PATCH] Minor build and CI fixes (#1599) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -* Build and CI fix - -Signed-off-by: Rémi Achard - -* Make OpenColorIO_SKIP_IMPORTS public - -Signed-off-by: Rémi Achard - -* Avoid exporting header only libs in static builds - -Signed-off-by: Rémi Achard - -* Fix cpu unit test linkage - -Signed-off-by: Rémi Achard - -* Explain the look syntax fallback - -Signed-off-by: Rémi Achard - -* Fix typos - -Signed-off-by: Rémi Achard - -* Improve OFX building documentation - -Signed-off-by: Rémi Achard ---- - .github/workflows/analysis_workflow.yml | 50 ++++++++++-------- - .github/workflows/wheel_workflow.yml | 2 +- - docs/quick_start/installation.rst | 12 ++++- - include/OpenColorIO/OpenColorABI.h.in | 2 +- - share/cmake/projects/Buildlcms2.cmake | 2 + - share/cmake/projects/Buildpystring.cmake | 2 + - src/OpenColorIO/CMakeLists.txt | 8 +-- - src/OpenColorIO/FileRules.cpp | 1 + - src/apps/ociobakelut/CMakeLists.txt | 7 --- - src/apps/ociocheck/CMakeLists.txt | 7 --- - src/apps/ociochecklut/CMakeLists.txt | 7 --- - src/apps/ocioconvert/CMakeLists.txt | 7 --- - src/apps/ociodisplay/CMakeLists.txt | 7 --- - src/apps/ociolutimage/CMakeLists.txt | 7 --- - src/apps/ociomakeclf/CMakeLists.txt | 7 --- - src/apps/ocioperf/CMakeLists.txt | 7 --- - src/apps/ociowrite/CMakeLists.txt | 7 --- - src/bindings/python/CMakeLists.txt | 2 +- - src/libutils/oglapphelpers/CMakeLists.txt | 2 +- - src/libutils/oiiohelpers/CMakeLists.txt | 2 +- - tests/cpu/Config_tests.cpp | 64 +++++++++++++++++++++++ - tests/gpu/CMakeLists.txt | 7 --- - tests/osl/CMakeLists.txt | 7 --- - tests/utils/CMakeLists.txt | 5 -- - vendor/openfx/CMakeLists.txt | 7 --- - 25 files changed, 117 insertions(+), 121 deletions(-) - -diff --git a/docs/quick_start/installation.rst b/docs/quick_start/installation.rst -index 7a356c1bc..07dcf5883 100644 ---- a/docs/quick_start/installation.rst -+++ b/docs/quick_start/installation.rst -@@ -435,5 +435,13 @@ Note: For other user facing environment variables, see :ref:`using_env_vars`. - - When building the OCIO OpenFX plugins, include the installed - ``OpenColorIO/lib`` directory (where ``OpenColorIO.ofx.bundle`` is located) -- in this path. The path to a shared OpenColorIO lib (*.so, *.dll, *.dylib) -- should also be present on ``PATH``. -+ in this path. -+ -+ It is recommended to build OFX plugins in static mode -+ (``BUILD_SHARED_LIBS=OFF``) to avoid any issue loading the OpenColorIO -+ library from the plugin once it has been moved. Otherwise, please make sure -+ the shared OpenColorIO lib (*.so, *.dll, *.dylib) is visible from the -+ plugin by mean of ``PATH``, ``LD_LIBRARY_PATH`` or ``DYLD_LIBRARY_PATH`` -+ for Windows, Linux and macOS respectively. For systems that supports it, -+ it is also possible to edit the RPATH of the plugin to add the location of -+ the shared OpenColorIO lib. -diff --git a/include/OpenColorIO/OpenColorABI.h.in b/include/OpenColorIO/OpenColorABI.h.in -index e3cc6b300..93714f761 100644 ---- a/include/OpenColorIO/OpenColorABI.h.in -+++ b/include/OpenColorIO/OpenColorABI.h.in -@@ -47,7 +47,7 @@ - - // If supported, define OCIOEXPORT, OCIOHIDDEN - // (used to choose which symbols to export from OpenColorIO) --#if defined(_WIN32) -+#if defined(_WIN32) || defined(__CYGWIN__) - // Windows requires you to export from the main library and then import in any others - // only when compiling a dynamic library (i.e. DLL) - #ifndef OpenColorIO_SKIP_IMPORTS -diff --git a/share/cmake/projects/Buildlcms2.cmake b/share/cmake/projects/Buildlcms2.cmake -index 0f05bb72d..ba3c7d095 100644 ---- a/share/cmake/projects/Buildlcms2.cmake -+++ b/share/cmake/projects/Buildlcms2.cmake -@@ -5,6 +5,8 @@ project(lcms2) - - cmake_minimum_required(VERSION 3.10) - -+include(GNUInstallDirs) -+ - include_directories(include) - - file(GLOB HEADERS "include/*.h") -diff --git a/share/cmake/projects/Buildpystring.cmake b/share/cmake/projects/Buildpystring.cmake -index e7daf8f62..e580aa08e 100644 ---- a/share/cmake/projects/Buildpystring.cmake -+++ b/share/cmake/projects/Buildpystring.cmake -@@ -5,6 +5,8 @@ project(pystring) - - cmake_minimum_required(VERSION 3.10) - -+include(GNUInstallDirs) -+ - set(HEADERS - pystring.h - ) -diff --git a/src/OpenColorIO/CMakeLists.txt b/src/OpenColorIO/CMakeLists.txt -index 919504673..34515210c 100755 ---- a/src/OpenColorIO/CMakeLists.txt -+++ b/src/OpenColorIO/CMakeLists.txt -@@ -226,9 +226,9 @@ target_link_libraries(OpenColorIO - expat::expat - ${OCIO_HALF_LIB} - pystring::pystring -- sampleicc::sampleicc -- utils::from_chars -- utils::strings -+ "$" -+ "$" -+ "$" - yaml-cpp - ) - -@@ -242,7 +242,7 @@ endif() - - if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(OpenColorIO -- PRIVATE -+ PUBLIC - OpenColorIO_SKIP_IMPORTS - ) - else() -diff --git a/src/OpenColorIO/FileRules.cpp b/src/OpenColorIO/FileRules.cpp -index 794dfdbee..61a5e0f15 100644 ---- a/src/OpenColorIO/FileRules.cpp -+++ b/src/OpenColorIO/FileRules.cpp -@@ -3,6 +3,7 @@ - - #include - #include -+#include - #include - #include - #include -diff --git a/src/apps/ociobakelut/CMakeLists.txt b/src/apps/ociobakelut/CMakeLists.txt -index b5a57e0a9..a50e87e48 100755 ---- a/src/apps/ociobakelut/CMakeLists.txt -+++ b/src/apps/ociobakelut/CMakeLists.txt -@@ -8,13 +8,6 @@ set(SOURCES - - add_executable(ociobakelut ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociobakelut -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") - endif() -diff --git a/src/apps/ociocheck/CMakeLists.txt b/src/apps/ociocheck/CMakeLists.txt -index d3700699d..0307849c1 100755 ---- a/src/apps/ociocheck/CMakeLists.txt -+++ b/src/apps/ociocheck/CMakeLists.txt -@@ -7,13 +7,6 @@ set(SOURCES - - add_executable(ociocheck ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociocheck -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") - endif() -diff --git a/src/apps/ociochecklut/CMakeLists.txt b/src/apps/ociochecklut/CMakeLists.txt -index 52514c0cc..e676d3707 100644 ---- a/src/apps/ociochecklut/CMakeLists.txt -+++ b/src/apps/ociochecklut/CMakeLists.txt -@@ -14,13 +14,6 @@ set(SOURCES - - add_executable(ociochecklut ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociochecklut -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") - endif() -diff --git a/src/apps/ocioconvert/CMakeLists.txt b/src/apps/ocioconvert/CMakeLists.txt -index 2269286af..ecbaef604 100755 ---- a/src/apps/ocioconvert/CMakeLists.txt -+++ b/src/apps/ocioconvert/CMakeLists.txt -@@ -14,13 +14,6 @@ set(SOURCES - - add_executable(ocioconvert ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ocioconvert -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - set_target_properties(ocioconvert PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") - -diff --git a/src/apps/ociodisplay/CMakeLists.txt b/src/apps/ociodisplay/CMakeLists.txt -index f3ffb1f8d..716cb491d 100755 ---- a/src/apps/ociodisplay/CMakeLists.txt -+++ b/src/apps/ociodisplay/CMakeLists.txt -@@ -12,13 +12,6 @@ set(SOURCES - - add_executable(ociodisplay ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociodisplay -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - set(CUSTOM_COMPILE_FLAGS ${PLATFORM_COMPILE_FLAGS}) - if(APPLE) - # Mute the deprecated warning for some GLUT methods. -diff --git a/src/apps/ociolutimage/CMakeLists.txt b/src/apps/ociolutimage/CMakeLists.txt -index c21a632fe..0fcd72ef6 100755 ---- a/src/apps/ociolutimage/CMakeLists.txt -+++ b/src/apps/ociolutimage/CMakeLists.txt -@@ -7,13 +7,6 @@ set(SOURCES - - add_executable(ociolutimage ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociolutimage -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - set_target_properties(ociolutimage PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") - -diff --git a/src/apps/ociomakeclf/CMakeLists.txt b/src/apps/ociomakeclf/CMakeLists.txt -index 752b26345..e69036b05 100644 ---- a/src/apps/ociomakeclf/CMakeLists.txt -+++ b/src/apps/ociomakeclf/CMakeLists.txt -@@ -7,13 +7,6 @@ set(SOURCES - - add_executable(ociomakeclf ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociomakeclf -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996") - endif() -diff --git a/src/apps/ocioperf/CMakeLists.txt b/src/apps/ocioperf/CMakeLists.txt -index a141c4ed5..a374f5d78 100644 ---- a/src/apps/ocioperf/CMakeLists.txt -+++ b/src/apps/ocioperf/CMakeLists.txt -@@ -7,13 +7,6 @@ set(SOURCES - - add_executable(ocioperf ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ocioperf -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - set_target_properties(ocioperf PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") - -diff --git a/src/apps/ociowrite/CMakeLists.txt b/src/apps/ociowrite/CMakeLists.txt -index 786ce57be..8c9c1729c 100644 ---- a/src/apps/ociowrite/CMakeLists.txt -+++ b/src/apps/ociowrite/CMakeLists.txt -@@ -7,13 +7,6 @@ set(SOURCES - - add_executable(ociowrite ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ociowrite -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - set_target_properties(ociowrite PROPERTIES - COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS}") - -diff --git a/src/bindings/python/CMakeLists.txt b/src/bindings/python/CMakeLists.txt -index 1109357b2..041c670de 100644 ---- a/src/bindings/python/CMakeLists.txt -+++ b/src/bindings/python/CMakeLists.txt -@@ -154,7 +154,7 @@ set_target_properties(PyOpenColorIO - - if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(PyOpenColorIO -- PRIVATE -+ PUBLIC - OpenColorIO_SKIP_IMPORTS - ) - endif() -diff --git a/src/libutils/oglapphelpers/CMakeLists.txt b/src/libutils/oglapphelpers/CMakeLists.txt -index 00dfbc8eb..d5eeb4d6b 100644 ---- a/src/libutils/oglapphelpers/CMakeLists.txt -+++ b/src/libutils/oglapphelpers/CMakeLists.txt -@@ -37,7 +37,7 @@ set_target_properties(oglapphelpers PROPERTIES OUTPUT_NAME OpenColorIOoglapphelp - - if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(oglapphelpers -- PRIVATE -+ PUBLIC - OpenColorIO_SKIP_IMPORTS - ) - endif() -diff --git a/src/libutils/oiiohelpers/CMakeLists.txt b/src/libutils/oiiohelpers/CMakeLists.txt -index 6f0661c21..eec50f082 100644 ---- a/src/libutils/oiiohelpers/CMakeLists.txt -+++ b/src/libutils/oiiohelpers/CMakeLists.txt -@@ -11,7 +11,7 @@ set_target_properties(oiiohelpers PROPERTIES OUTPUT_NAME OpenColorIOoiiohelpers) - - if(NOT BUILD_SHARED_LIBS) - target_compile_definitions(oiiohelpers -- PRIVATE -+ PUBLIC - OpenColorIO_SKIP_IMPORTS - ) - endif() -diff --git a/tests/cpu/Config_tests.cpp b/tests/cpu/Config_tests.cpp -index 429227d7d..6fdd8bb35 100644 ---- a/tests/cpu/Config_tests.cpp -+++ b/tests/cpu/Config_tests.cpp -@@ -8676,3 +8676,67 @@ OCIO_ADD_TEST(Config, look_is_noop) - OCIO_CHECK_ASSERT(proc->isNoOp()); - } - } -+ -+OCIO_ADD_TEST(Config, look_fallback) -+{ -+ // Test that the look fallback syntax works for look with missing file. -+ // The fallback syntax allow to specify looks to try in order and use the -+ // first valid one. When the syntax "my_look | " is used, the fallback -+ // is empty and there will be no look applied (no-op) if my_look is invalid. -+ // This may happen if my_look relies on a missing environment variable. -+ -+ { -+ static const std::string CONFIG = -+ "ocio_profile_version: 1\n" -+ "\n" -+ "search_path: " + OCIO::GetTestFilesDir() + "\n" -+ "\n" -+ "roles:\n" -+ " scene_linear: cs\n" -+ "\n" -+ "displays:\n" -+ " disp1:\n" -+ " - !\n" -+ " name: view1\n" -+ " colorspace: cs\n" -+ " looks: missing_file_look | \n" -+ "\n" -+ "looks:\n" -+ " - !\n" -+ " name: missing_file_look\n" -+ " process_space: cs\n" -+ " transform: ! {src: \"${LOOK_CDL}.cc\"}\n" -+ "\n" -+ "colorspaces:\n" -+ " - !\n" -+ " name: cs\n" -+ "\n"; -+ -+ // Check that the look is correctly used when file is present. -+ -+ OCIO::Platform::Setenv("LOOK_CDL", "cdl_test1"); -+ -+ std::istringstream iss; -+ iss.str(CONFIG); -+ -+ OCIO::ConstConfigRcPtr config; -+ -+ OCIO_CHECK_NO_THROW(config = OCIO::Config::CreateFromStream(iss)); -+ OCIO_CHECK_NO_THROW(config->validate()); -+ -+ OCIO::ConstProcessorRcPtr proc; -+ OCIO_CHECK_NO_THROW(proc = config->getProcessor("cs", "disp1", "view1", OCIO::TRANSFORM_DIR_FORWARD)); -+ OCIO_CHECK_ASSERT(!proc->isNoOp()); -+ -+ // Now remove the variable pointing to the look file and check that we fallback to a no-op. -+ -+ OCIO::Platform::Unsetenv("LOOK_CDL"); -+ -+ iss.str(CONFIG); -+ -+ OCIO_CHECK_NO_THROW(config = OCIO::Config::CreateFromStream(iss)); -+ -+ OCIO_CHECK_NO_THROW(proc = config->getProcessor("cs", "disp1", "view1", OCIO::TRANSFORM_DIR_FORWARD)); -+ OCIO_CHECK_ASSERT(proc->isNoOp()); -+ } -+} -diff --git a/tests/gpu/CMakeLists.txt b/tests/gpu/CMakeLists.txt -index aeeb66f7f..051abe72e 100644 ---- a/tests/gpu/CMakeLists.txt -+++ b/tests/gpu/CMakeLists.txt -@@ -26,13 +26,6 @@ set(SOURCES - - add_executable(test_gpu_exec ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(test_gpu_exec -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(OCIO_USE_SSE) - target_compile_definitions(test_gpu_exec - PRIVATE -diff --git a/tests/osl/CMakeLists.txt b/tests/osl/CMakeLists.txt -index 1d9454dac..6e2c107a8 100644 ---- a/tests/osl/CMakeLists.txt -+++ b/tests/osl/CMakeLists.txt -@@ -18,13 +18,6 @@ set(SOURCES - - add_executable(test_osl_exec ${SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(test_osl_exec -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - if(OCIO_USE_SSE) - target_compile_definitions(test_osl_exec - PRIVATE -diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt -index 6ea38ca9d..9fc1e6b47 100644 ---- a/tests/utils/CMakeLists.txt -+++ b/tests/utils/CMakeLists.txt -@@ -10,11 +10,6 @@ set(SOURCES - - add_executable(test_utils_exec ${SOURCES}) - --target_compile_definitions(test_utils_exec -- PRIVATE -- OpenColorIO_SKIP_IMPORTS --) -- - target_link_libraries(test_utils_exec - PRIVATE - utils::strings -diff --git a/vendor/openfx/CMakeLists.txt b/vendor/openfx/CMakeLists.txt -index 87dbf2283..57e26253a 100644 ---- a/vendor/openfx/CMakeLists.txt -+++ b/vendor/openfx/CMakeLists.txt -@@ -30,13 +30,6 @@ set(RESOURCES - - add_library(ofxplugin MODULE ${SOURCES} ${OFXS_SOURCES}) - --if(NOT BUILD_SHARED_LIBS) -- target_compile_definitions(ofxplugin -- PRIVATE -- OpenColorIO_SKIP_IMPORTS -- ) --endif() -- - # Disable known compiler warnings from OpenFX Support Library - if(MSVC) - set(PLATFORM_COMPILE_FLAGS "${PLATFORM_COMPILE_FLAGS} /wd4996 /wd4101") diff --git a/runtime-imaging/opencolorio/autobuild/patches/0002-try-to-support-yaml-cpp-0.8.0.patch b/runtime-imaging/opencolorio/autobuild/patches/0002-try-to-support-yaml-cpp-0.8.0.patch deleted file mode 100644 index 1f9bfc6e937d..000000000000 --- a/runtime-imaging/opencolorio/autobuild/patches/0002-try-to-support-yaml-cpp-0.8.0.patch +++ /dev/null @@ -1,74 +0,0 @@ -From cccd54b4cecbded58afe19e31a2fc3adcd621027 Mon Sep 17 00:00:00 2001 -From: Shyliuli <1658347525@qq.com> -Date: Thu, 23 Jan 2025 10:54:10 +0800 -Subject: [PATCH] try to support yaml-cpp 0.8.0 - ---- - share/cmake/modules/Findyaml-cpp.cmake | 22 +++++++++++++++------- - 1 file changed, 15 insertions(+), 7 deletions(-) - -diff --git a/share/cmake/modules/Findyaml-cpp.cmake b/share/cmake/modules/Findyaml-cpp.cmake -index 1dd81055..3b146dbb 100644 ---- a/share/cmake/modules/Findyaml-cpp.cmake -+++ b/share/cmake/modules/Findyaml-cpp.cmake -@@ -34,14 +34,19 @@ if(NOT OCIO_INSTALL_EXT_PACKAGES STREQUAL ALL) - endif() - - if(yaml-cpp_FOUND) -- get_target_property(yaml-cpp_LIBRARY yaml-cpp LOCATION) -+ # Alias target for yaml-cpp < 0.8 compatibility -+ if(TARGET yaml-cpp AND NOT TARGET yaml-cpp::yaml-cpp) -+ add_library(yaml-cpp::yaml-cpp ALIAS yaml-cpp) -+ endif() -+ -+ get_target_property(yaml-cpp_INCLUDE_DIR yaml-cpp::yaml-cpp INTERFACE_INCLUDE_DIRECTORIES) -+ get_target_property(yaml-cpp_LIBRARY yaml-cpp::yaml-cpp LOCATION) - else() - - # As yaml-cpp-config.cmake search fails, search an installed library - # using yaml-cpp.pc . - -- list(APPEND _yaml-cpp_REQUIRED_VARS yaml-cpp_INCLUDE_DIR) -- -+ list(APPEND _yaml-cpp_REQUIRED_VARS yaml-cpp_INCLUDE_DIR yaml-cpp_VERSION) - # Search for yaml-cpp.pc - find_package(PkgConfig QUIET) - pkg_check_modules(PC_yaml-cpp QUIET "yaml-cpp>=${yaml-cpp_FIND_VERSION}") -@@ -114,8 +119,8 @@ endif() - ############################################################################### - ### Create target (if previous 'find_package' call hasn't) ### - --if(NOT TARGET yaml-cpp) -- add_library(yaml-cpp UNKNOWN IMPORTED GLOBAL) -+if(NOT TARGET yaml-cpp::yaml-cpp) -+ add_library(yaml-cpp::yaml-cpp UNKNOWN IMPORTED GLOBAL) - set(_yaml-cpp_TARGET_CREATE TRUE) - endif() - -@@ -238,7 +243,8 @@ if(NOT yaml-cpp_FOUND) - EXCLUDE_FROM_ALL TRUE - ) - -- add_dependencies(yaml-cpp yaml-cpp_install) -+add_dependencies(yaml-cpp::yaml-cpp yaml-cpp_install) -+ - message(STATUS - "Installing yaml-cpp: ${yaml-cpp_LIBRARY} (version \"${yaml-cpp_VERSION}\")" - ) -@@ -249,10 +255,12 @@ endif() - ### Configure target ### - - if(_yaml-cpp_TARGET_CREATE) -- set_target_properties(yaml-cpp PROPERTIES -+ set_target_properties(yaml-cpp::yaml-cpp PROPERTIES - IMPORTED_LOCATION ${yaml-cpp_LIBRARY} - INTERFACE_INCLUDE_DIRECTORIES ${yaml-cpp_INCLUDE_DIR} - ) - - mark_as_advanced(yaml-cpp_INCLUDE_DIR yaml-cpp_LIBRARY yaml-cpp_VERSION) - endif() -+set(YAML_CPP_INCLUDE_DIR "${yaml-cpp_INCLUDE_DIR}") -+set(YAML_CPP_LIBRARIES yaml-cpp::yaml-cpp) --- -2.48.1 - diff --git a/runtime-imaging/opencolorio/autobuild/prepare b/runtime-imaging/opencolorio/autobuild/prepare deleted file mode 100644 index 98c93ce60cbe..000000000000 --- a/runtime-imaging/opencolorio/autobuild/prepare +++ /dev/null @@ -1,4 +0,0 @@ -export CXXFLAGS="${CXXFLAGS} -Wno-error=deprecated-declarations -Wno-error=unused-function" - -abinfo "FIXME: cmake really likes /lib64/cmake/expat-VER, but there's no /include" -sudo rm -rfv /usr/lib/cmake/expat-* diff --git a/runtime-imaging/opencolorio/spec b/runtime-imaging/opencolorio/spec index 7cbcaf70c5d5..6eb2e5dbeff9 100644 --- a/runtime-imaging/opencolorio/spec +++ b/runtime-imaging/opencolorio/spec @@ -1,5 +1,4 @@ -VER=2.1.2 -REL="7" -SRCS="tbl::https://github.com/imageworks/OpenColorIO/archive/v$VER.tar.gz" -CHKSUMS="sha256::6c6d153470a7dbe56136073e7abea42fa34d06edc519ffc0a159daf9f9962b0b" +VER=2.5.1 +SRCS="git::commit=tags/v$VER::https://github.com/imageworks/OpenColorIO" +CHKSUMS="SKIP" CHKUPDATE="anitya::id=9631"