The package rpms/blender.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/blender.git/commit/?id=bdb8033901008... https://src.fedoraproject.org/cgit/rpms/blender.git/commit/?id=4adcc8e8e6caa....
Change: -ExcludeArch: s390x +ExcludeArch: s390x
Thanks.
Full change: ============
commit 9e2cf6ba341698c3d9d9b9c2fd39a34bafaf39c1 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Mon Oct 28 00:30:43 2024 -0700
Rebase to version 4.2.2
diff --git a/blender-4.2.2-openimageio-pre-2.5-support.patch b/blender-4.2.2-openimageio-pre-2.5-support.patch new file mode 100644 index 0000000..6123bc6 --- /dev/null +++ b/blender-4.2.2-openimageio-pre-2.5-support.patch @@ -0,0 +1,26 @@ +--- blender-4.2.2/source/blender/imbuf/intern/oiio/openimageio_support.cc.original 2024-06-05 11:47:55.000000000 -0400 ++++ blender-4.2.2/source/blender/imbuf/intern/oiio/openimageio_support.cc 2024-09-29 10:01:30.287815675 -0400 +@@ -250,7 +250,11 @@ + { + /* Attempt to create a reader based on the passed in format. */ + unique_ptr<ImageInput> in = ImageInput::create(format); ++#if OIIO_VERSION >= OIIO_MAKE_VERSION(2,5,0) + if (!(in && in->valid_file(&mem_reader))) { ++#else ++ if (!in) { ++#endif + return nullptr; + } + +@@ -271,7 +275,11 @@ + /* This memory proxy must remain alive for the full duration of the read. */ + Filesystem::IOMemReader mem_reader(cspan<uchar>(mem, mem_size)); + unique_ptr<ImageInput> in = ImageInput::create(file_format); ++#if OIIO_VERSION >= OIIO_MAKE_VERSION(2,5,0) + return in && in->valid_file(&mem_reader); ++#else ++ return in ? true : false; ++#endif + } + + ImBuf *imb_oiio_read(const ReadContext &ctx, diff --git a/blender-4.2.2-openusd-pre-23.11-support.patch b/blender-4.2.2-openusd-pre-23.11-support.patch new file mode 100644 index 0000000..3435dac --- /dev/null +++ b/blender-4.2.2-openusd-pre-23.11-support.patch @@ -0,0 +1,40 @@ +--- blender-4.2.2/source/blender/io/usd/hydra/instancer.cc.original 2024-06-05 11:47:55.000000000 -0400 ++++ blender-4.2.2/source/blender/io/usd/hydra/instancer.cc 2024-09-29 21:22:03.595723597 -0400 +@@ -52,7 +52,11 @@ + pxr::VtValue InstancerData::get_data(pxr::TfToken const &key) const + { + ID_LOG(3, "%s", key.GetText()); ++#if PXR_VERSION < 2311 ++ if (key == pxr::HdInstancerTokens->instanceTransform) { ++#else + if (key == pxr::HdInstancerTokens->instanceTransforms) { ++#endif + return pxr::VtValue(mesh_transforms_); + } + return pxr::VtValue(); +@@ -75,7 +79,11 @@ + pxr::HdPrimvarDescriptorVector primvars; + if (interpolation == pxr::HdInterpolationInstance) { + primvars.emplace_back( ++# if PXR_VERSION < 2311 ++ pxr::HdInstancerTokens->instanceTransform, interpolation, pxr::HdPrimvarRoleTokens->none); ++# else + pxr::HdInstancerTokens->instanceTransforms, interpolation, pxr::HdPrimvarRoleTokens->none); ++# endif + } + return primvars; + } +--- blender-4.2.2/source/blender/io/usd/intern/usd_capi_export.cc.original 2024-07-03 22:46:34.000000000 -0400 ++++ blender-4.2.2/source/blender/io/usd/intern/usd_capi_export.cc 2024-09-29 18:13:52.489750996 -0400 +@@ -19,7 +19,11 @@ + #include <pxr/usd/usdGeom/tokens.h> + #include <pxr/usd/usdGeom/xform.h> + #include <pxr/usd/usdGeom/xformCommonAPI.h> ++#if PXR_VERSION < 2311 ++#include <pxr/usd/usdUtils/dependencies.h> ++#else + #include <pxr/usd/usdUtils/usdzPackage.h> ++#endif + + #include "MEM_guardedalloc.h" + diff --git a/blender.spec b/blender.spec index 1358b34..e129a9f 100644 --- a/blender.spec +++ b/blender.spec @@ -21,9 +21,10 @@ %bcond embree 1 %bcond hidapi 1 %ifarch x86_64 +%bcond hip 1 %bcond oidn 1 +%bcond oneapi 0 %bcond opgl 1 -%bcond rocm 1 %endif %bcond usd 1 %else @@ -39,10 +40,7 @@
Name: blender Epoch: 1 -Version: 4.2.2 -======= -Version: 3.6.2 ->>>>>>> 37d0fac (Update to 3.6.2) +Version: 4.2.3 Release: %autorelease
@@ -57,9 +55,9 @@ Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz # Rename macros extension to avoid clashing with upstream version Source1: %{name}-macros-source
-Patch1: blender-3.6.1-py312-pyarg-parser-def.patch -Patch2: blender-3.6.1-py312-pylongobject.patch -Patch3: blender-3.6.1-py312-opcode.patch +# Support distros packaging older (pre-2.5) OpenImageIO versions +Patch0: %{name}-4.2.2-openimageio-pre-2.5-support.patch +Patch1: %{name}-4.2.2-openusd-pre-23.11-support.patch
# Fix #111820: Missing type casting in XrGraphicsBinding.cc # https://projects.blender.org/blender/blender/commit/8159bd90e527552ccfe27db5... @@ -99,15 +97,7 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pugixml) -# Blender failed to build with Python 3.13 -# https://bugzilla.redhat.com/show_bug.cgi?id=2291492 -# Use python3.12 instead for Fedora 41 and Rawhide -# Thanks commanderjeanluc for the suggestion -%if 0%{?fedora} > 40 -BuildRequires: pkgconfig(python-3.12) -%else BuildRequires: pkgconfig(python3) >= 3.7 -%endif %if %{with vulkan} BuildRequires: vulkan-headers BuildRequires: vulkan-loader @@ -271,7 +261,7 @@ BuildRequires: pkgconfig(vpx) BuildRequires: cmake(OpenColorIO) > 1 BuildRequires: cmake(Imath) BuildRequires: cmake(OpenEXR) -BuildRequires: cmake(OpenImageIO) >= 2.5.0.0 +BuildRequires: cmake(OpenImageIO) BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(tbb) = 2020.3 BuildRequires: potrace-devel @@ -297,17 +287,29 @@ BuildRequires: pkgconfig(tinyxml) # Appstream stuff BuildRequires: libappstream-glib
-# ROCm stuff -%if %{with rocm} +# HIP stuff +# https://developer.blender.org/docs/handbook/building_blender/cycles_gpu_bina... +%if %{with hip} +BuildRequires: hipcc +%if 0%{?fedora} > 41 +BuildRequires: rocm-llvm-devel +%endif +BuildRequires: clang BuildRequires: lld-devel BuildRequires: rocm-comgr-devel +BuildRequires: rocm-device-libs BuildRequires: rocm-hip-devel Recommends: rocm-hip-devel BuildRequires: rocm-runtime-devel %endif
-Requires: google-droid-sans-fonts +# OneAPI stuff +%if %{with oneapi} +BuildRequires: pkgconfig(level-zero) +%endif + Requires: hicolor-icon-theme +Requires: rsms-inter-fonts Requires: shared-mime-info Provides: blender(ABI) = %{blender_api}
@@ -400,8 +402,11 @@ sed -i "s/date_time/date_time python%{python3_version_nodots}/" \ -DWITH_USD=OFF \ %endif -DXR_OPENXR_SDK_LOADER_LIBRARY=%{_libdir}/libopenxr_loader.so.1 \ -%if %{with rocm} +%if %{with hip} -DWITH_CYCLES_HIP_BINARIES=ON \ +%endif +%if %{with oneapi} + -DWITH_CYCLES_DEVICE_ONEAPI=ON \ %endif -DWITH_OPENCOLLADA=OFF \ -DWITH_LIBS_PRECOMPILED=OFF @@ -427,8 +432,8 @@ install -Dm755 release/bin/%{name}-softwaregl %{buildroot}%{_bindir}/%{name}-sof
# rpm macros mkdir -p %{buildroot}%{macrosdir} -install -pm 644 %{SOURCE1} %{buildroot}%{macrosdir}/%{name}-macros -sed -e 's/@VERSION@/%{blender_api}/g' %{buildroot}%{macrosdir}/%{name}-macros +install -pm 644 %{SOURCE1} %{buildroot}%{macrosdir}/macros.%{name} +sed -e 's/@VERSION@/%{blender_api}/g' %{buildroot}%{macrosdir}/macros.%{name}
# Metainfo install -p -m 644 -D release/freedesktop/org.%{name}.Blender.metainfo.xml \ @@ -462,7 +467,7 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.%{name}.Bl %{_metainfodir}/org.%{name}.Blender.metainfo.xml
%files rpm-macros -%{macrosdir}/%{name}-macros +%{macrosdir}/macros.%{name}
%changelog %autochangelog
commit e65a70da80b246d1695d0fca0967e6881b563b1b Author: Luya Tshimbalanga luya@fedoraproject.org Date: Fri Sep 15 22:11:54 2023 -0700
Rebase to 4.2.2
diff --git a/.gitignore b/.gitignore index e3b5aaf..cc8694c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,3 @@ blender-*.tar.gz blender-*.tar.bz2 blender-*.tar.xz -/8159bd90e5.patch -/blender-arch-s390x.diff
commit f731dd59f6644d2b557b9a13b06e640adc5d5ba4 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Fri Sep 15 22:11:09 2023 -0700
Add missing patch erased by mistake
diff --git a/blender.spec b/blender.spec index 9ad62ff..1358b34 100644 --- a/blender.spec +++ b/blender.spec @@ -57,6 +57,14 @@ Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz # Rename macros extension to avoid clashing with upstream version Source1: %{name}-macros-source
+Patch1: blender-3.6.1-py312-pyarg-parser-def.patch +Patch2: blender-3.6.1-py312-pylongobject.patch +Patch3: blender-3.6.1-py312-opcode.patch + +# Fix #111820: Missing type casting in XrGraphicsBinding.cc +# https://projects.blender.org/blender/blender/commit/8159bd90e527552ccfe27db5... +Patch4: 8159bd90e5.patch + # Development stuff BuildRequires: boost-devel BuildRequires: ccache
commit 57ad85dee7a733a692f7348bcffb8cb5cb3926f8 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Fri Sep 15 21:10:20 2023 -0700
Rebase to version 4.2.2
diff --git a/blender.spec b/blender.spec index 6df5b6f..9ad62ff 100644 --- a/blender.spec +++ b/blender.spec @@ -40,6 +40,9 @@ Name: blender Epoch: 1 Version: 4.2.2 +======= +Version: 3.6.2 +>>>>>>> 37d0fac (Update to 3.6.2) Release: %autorelease
commit 26be9a4f566fa8d75723f4d6ab5e66ef637f0639 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Oct 17 22:45:06 2024 -0700
Update to 4.2.2 and backport macros changes
diff --git a/blender-macros-source b/blender-macros-source new file mode 100644 index 0000000..f0fdb79 --- /dev/null +++ b/blender-macros-source @@ -0,0 +1,7 @@ +%blender_api @VERSION@ + +%blender_datadir %{_datadir}/blender/%{blender_api} +%blender_libdir %{_libdir}/blender/%{blender_api} +%blender_extensions %{blender_datadir}/scripts/addons_core +%blender_modules %{blender_datadir}/scripts/modules +%blender_preset %{blender_datadir}/scripts/presets diff --git a/blender.spec b/blender.spec index 0759000..6df5b6f 100644 --- a/blender.spec +++ b/blender.spec @@ -326,10 +326,7 @@ This package provides rpm macros to support the creation of third-party addon packages to extend Blender.
%prep -# %%autosetup -a1 failed to extract all tarball #2495 -# https://github.com/rpm-software-management/rpm/issues/2495 -%autosetup -N -%autopatch -p1 +%autosetup -p1
# Delete the bundled FindOpenJPEG to make find_package use the system version # instead (the local version hardcodes the openjpeg version so it is not update @@ -343,14 +340,6 @@ rm -f build_files/cmake/Modules/FindOpenJPEG.cmake sed -i "s/date_time/date_time python%{python3_version_nodots}/" \ build_files/cmake/platform/platform_unix.cmake
-# Remove/replace depreciated parameters from HIPcc command -# https://projects.blender.org/blender/blender/pulls/118401 -sed -i "s|--hipcc-func-supp||g" intern/cycles/device/hip/device_impl.cpp \ - intern/cycles/kernel/CMakeLists.txt -sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp \ - intern/cycles/kernel/CMakeLists.txt - - %build %cmake \ %if %{with ninja}
commit 72bf0e1e87a9330b2b58e73108a024307c50c8a1 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Oct 17 22:34:10 2024 -0700
Update to 4.2.2
This update also address issues related to macros
diff --git a/blender.spec b/blender.spec index 00f7218..0759000 100644 --- a/blender.spec +++ b/blender.spec @@ -39,7 +39,7 @@
Name: blender Epoch: 1 -Version: 4.2.1 +Version: 4.2.2 Release: %autorelease
@@ -52,7 +52,7 @@ Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz # https://extensions.blender.com starting version 4.2 # Source1: https://projects.%%%7Bname%7D.org/%%%7Bname%7D/%%%7Bname%7D-addons/archive/v... # Rename macros extension to avoid clashing with upstream version -Source1: %{name}-macros.tar.xz +Source1: %{name}-macros-source
# Development stuff BuildRequires: boost-devel @@ -326,7 +326,10 @@ This package provides rpm macros to support the creation of third-party addon packages to extend Blender.
%prep -%autosetup -p1 -a1 +# %%autosetup -a1 failed to extract all tarball #2495 +# https://github.com/rpm-software-management/rpm/issues/2495 +%autosetup -N +%autopatch -p1
# Delete the bundled FindOpenJPEG to make find_package use the system version # instead (the local version hardcodes the openjpeg version so it is not update @@ -424,7 +427,8 @@ install -Dm755 release/bin/%{name}-softwaregl %{buildroot}%{_bindir}/%{name}-sof
# rpm macros mkdir -p %{buildroot}%{macrosdir} -sed -e 's/@VERSION@/%{blender_api}/g' %{SOURCE1} > %{buildroot}%{macrosdir}/%{name}-macros +install -pm 644 %{SOURCE1} %{buildroot}%{macrosdir}/%{name}-macros +sed -e 's/@VERSION@/%{blender_api}/g' %{buildroot}%{macrosdir}/%{name}-macros
# Metainfo install -p -m 644 -D release/freedesktop/org.%{name}.Blender.metainfo.xml \ diff --git a/sources b/sources index e4a2660..dfcaa13 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (blender-4.2.1.tar.xz) = 20162bd1185e34c481a0520f4999f8c76018471b485fa72afa446f590638c564a370d036cc4a941bf204fce821d8305d4244b3ba9ec7f09f1839b8a276dfde39 -SHA512 (blender-macros.tar.xz) = 4109378891e2cc8d56cc891c215206721899e98f249316bb6f70d73c304c66d9bd7ad71011c6405a665411f618f23914bc5a56e50125c2e6b7676e4feae3f025 +SHA512 (blender-4.2.2.tar.xz) = 51cb113a958588fc2a99c8881540a6d8b4ac5d692f98a1779c3688314e6355bd9df6ed3a576a09e63a3e761184a2dcabe0cef8654e6fcfa50dd7f7f9091aec90
commit fe64b84e55aa58a24649600916034107cbd065f5 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Sun Aug 25 16:11:19 2024 -0700
Rebuild with python 3.12 for Fedora 41 and Rawhide
diff --git a/blender.spec b/blender.spec index 27c34a6..00f7218 100644 --- a/blender.spec +++ b/blender.spec @@ -12,7 +12,7 @@ %bcond openvdb 1 %bcond sdl 0 %bcond system_eigen3 1 -%bcond vulkan 0 +%bcond vulkan 1
%ifarch x86_64 aarch64 ppc64le %global cyclesflag ON @@ -88,9 +88,18 @@ BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pugixml) +# Blender failed to build with Python 3.13 +# https://bugzilla.redhat.com/show_bug.cgi?id=2291492 +# Use python3.12 instead for Fedora 41 and Rawhide +# Thanks commanderjeanluc for the suggestion +%if 0%{?fedora} > 40 +BuildRequires: pkgconfig(python-3.12) +%else BuildRequires: pkgconfig(python3) >= 3.7 +%endif %if %{with vulkan} BuildRequires: vulkan-headers +BuildRequires: vulkan-loader %endif BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(libdecor-0) >= 0.1.0 @@ -201,8 +210,7 @@ BuildRequires: cmake(ceres) BuildRequires: embree-devel %endif %if %{with materialx} -BuildRequires: materialx-devel -BuildRequires: materialx +BuildRequires: materialx-devel %endif BuildRequires: opensubdiv-devel >= 3.4.4 %if %{with openshading} @@ -346,6 +354,9 @@ sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp -G Ninja \ %endif -D_ffmpeg_INCLUDE_DIR=$(pkg-config --variable=includedir libavformat) \ +%if %{with materialx} + -DMATERIALX_STDLIB_DIR=%{_datadir}/materialx \ +%endif %if %{with openshading} -D_osl_LIBRARIES=%{_libdir} \ -DOSL_INCLUDE_DIR=%{_includedir} \ @@ -358,12 +369,12 @@ sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp -DCMAKE_CXX_FLAGS="%{optflags} -Wl,--as-needed" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_SKIP_RPATH=ON \ -%if %{with clang} - -DCLANG_INCLUDE_DIR=%{_usr}/include/clang \ - -D_CLANG_LIBRARIES=%{_usr}/%{_lib}/libclang.so \ -%endif -DEMBREE_INCLUDE_DIR=%{_includedir} \ +%if 0%{?fedora} > 40 + -DPYTHON_VERSION=3.12 \ +%else -DPYTHON_VERSION=%{python3_version} \ +%endif -DWITH_COMPILER_CCACHE=ON \ -DWITH_CYCLES=%{cyclesflag} \ %ifnarch x86_64 diff --git a/macros.blender-rpm b/macros.blender-rpm deleted file mode 100644 index 057b25f..0000000 --- a/macros.blender-rpm +++ /dev/null @@ -1,7 +0,0 @@ -%blender_api @VERSION@ - -%blender_datadir %{_datadir}/blender/%{blender_api} -%blender_libdir %{_libdir}/blender/%{blender_api} -%blender_addons %{blender_datadir}/scripts/addons -%blender_modules %{blender_datadir}/scripts/modules -%blender_preset %{blender_datadir}/scripts/presets
commit e092aafc19ef7b064799c7d5779366c38e92c611 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Sat Aug 24 23:34:09 2024 -0700
Update to 4.2.1 (rhbz#2305995)
* Fixes rhbz#2299704
diff --git a/blender.spec b/blender.spec index 335d8b9..27c34a6 100644 --- a/blender.spec +++ b/blender.spec @@ -6,6 +6,7 @@ # Needed to enable osl support for cycles rendering %bcond llvm 1 %bcond manpage 1 +%bcond materialx 0 %bcond ninja 1 %bcond openshading 1 %bcond openvdb 1 @@ -38,7 +39,7 @@
Name: blender Epoch: 1 -Version: 4.2.0 +Version: 4.2.1 Release: %autorelease
@@ -53,9 +54,6 @@ Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz # Rename macros extension to avoid clashing with upstream version Source1: %{name}-macros.tar.xz
-# https://projects.blender.org/blender/blender/issues/125395#issuecomment-1250... -Patch: %{name}-arch-s390x.diff - # Development stuff BuildRequires: boost-devel BuildRequires: ccache @@ -202,6 +200,10 @@ BuildRequires: cmake(ceres) %if %{with embree} BuildRequires: embree-devel %endif +%if %{with materialx} +BuildRequires: materialx-devel +BuildRequires: materialx +%endif BuildRequires: opensubdiv-devel >= 3.4.4 %if %{with openshading} # Use oslc compiler diff --git a/sources b/sources index 88cab40..e4a2660 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (blender-4.2.0.tar.xz) = 623ee71a46333c856142095174e1f10cc132d193c6ac74afd3140b8e1b0cee896112fe341ce6dc97f63ac817b558dc7765166732d75dbb5c1efcf9fccde56304 -SHA512 (blender-arch-s390x.diff) = e5a0eb6eb1c155c9cbdb857586c4e457a1f7c2bc8493d8e39dd902f7db16482a55cf2e179550c1d49b172f62fa358a13b7b4e73da3885a6c7466e622f69d3ece +SHA512 (blender-4.2.1.tar.xz) = 20162bd1185e34c481a0520f4999f8c76018471b485fa72afa446f590638c564a370d036cc4a941bf204fce821d8305d4244b3ba9ec7f09f1839b8a276dfde39 SHA512 (blender-macros.tar.xz) = 4109378891e2cc8d56cc891c215206721899e98f249316bb6f70d73c304c66d9bd7ad71011c6405a665411f618f23914bc5a56e50125c2e6b7676e4feae3f025
commit cedb09f7699b584135c3f1e6a2dfd96b4e0f6c71 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Jul 25 00:30:23 2024 -0700
Restore s390x architecture support ... This update also update path to install new Blender extension system wide.
diff --git a/sources b/sources index 57f57b8..88cab40 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ SHA512 (blender-4.2.0.tar.xz) = 623ee71a46333c856142095174e1f10cc132d193c6ac74afd3140b8e1b0cee896112fe341ce6dc97f63ac817b558dc7765166732d75dbb5c1efcf9fccde56304 -SHA512 (blender-macros.tar.xz) = 06f9e7596e32b4864c5ef4e2b37df558310c7900956366267169fa00bfede3a89c58841d801bf1397b11baa0a528de8155f7f2758145f7f46fe2b59ba83a9e67 SHA512 (blender-arch-s390x.diff) = e5a0eb6eb1c155c9cbdb857586c4e457a1f7c2bc8493d8e39dd902f7db16482a55cf2e179550c1d49b172f62fa358a13b7b4e73da3885a6c7466e622f69d3ece +SHA512 (blender-macros.tar.xz) = 4109378891e2cc8d56cc891c215206721899e98f249316bb6f70d73c304c66d9bd7ad71011c6405a665411f618f23914bc5a56e50125c2e6b7676e4feae3f025
commit 474b93d70851451b157ac5198b24944a6b9d0a31 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Jul 25 00:30:23 2024 -0700
Restore s390x architecture support ... This update also update path to install new Blender extension system wide.
diff --git a/sources b/sources index 66bb2c6..57f57b8 100644 --- a/sources +++ b/sources @@ -1,2 +1,3 @@ SHA512 (blender-4.2.0.tar.xz) = 623ee71a46333c856142095174e1f10cc132d193c6ac74afd3140b8e1b0cee896112fe341ce6dc97f63ac817b558dc7765166732d75dbb5c1efcf9fccde56304 SHA512 (blender-macros.tar.xz) = 06f9e7596e32b4864c5ef4e2b37df558310c7900956366267169fa00bfede3a89c58841d801bf1397b11baa0a528de8155f7f2758145f7f46fe2b59ba83a9e67 +SHA512 (blender-arch-s390x.diff) = e5a0eb6eb1c155c9cbdb857586c4e457a1f7c2bc8493d8e39dd902f7db16482a55cf2e179550c1d49b172f62fa358a13b7b4e73da3885a6c7466e622f69d3ece
commit bdb80339010088109648754e1b73efd617585213 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Jul 25 00:30:23 2024 -0700
Restore s390x architecture support ... This update also update path to install new Blender extension system wide.
diff --git a/.gitignore b/.gitignore index 31408dc..e3b5aaf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ blender-*.tar.gz blender-*.tar.bz2 blender-*.tar.xz /8159bd90e5.patch +/blender-arch-s390x.diff diff --git a/blender.spec b/blender.spec index b38c991..335d8b9 100644 --- a/blender.spec +++ b/blender.spec @@ -1,11 +1,6 @@ %global blender_api 4.2 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
-# not compatible with newer clang versions -#%%if 0%%{?fedora} >= 38 || 0%%{?rhel} >= 8 -#%%global llvm_compat 16 -#%%endif - %bcond clang 1 %bcond draco 1 # Needed to enable osl support for cycles rendering @@ -58,6 +53,9 @@ Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz # Rename macros extension to avoid clashing with upstream version Source1: %{name}-macros.tar.xz
+# https://projects.blender.org/blender/blender/issues/125395#issuecomment-1250... +Patch: %{name}-arch-s390x.diff + # Development stuff BuildRequires: boost-devel BuildRequires: ccache @@ -302,10 +300,6 @@ Obsoletes: blender-fonts < 1:2.91.0-5 # Starting from 2.90, Blender support only 64-bits architectures ExcludeArch: %{ix86} %{arm}
-# # S390x got failure with ‘BLI_endian_switch_uint32’ -# https://koji.fedoraproject.org/koji/taskinfo?taskID=120945932 -ExcludeArch: s390x - %description Blender is the essential software solution you need for 3D, from modeling, animation, rendering and post-production to interactive creation and playback.
commit 4adcc8e8e6caa3ac739723bd94aedea6703d0440 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Wed Jul 24 08:24:33 2024 -0700
Temporarily disable s390x support due to endian bug
diff --git a/blender.spec b/blender.spec index f58bce0..b38c991 100644 --- a/blender.spec +++ b/blender.spec @@ -302,6 +302,10 @@ Obsoletes: blender-fonts < 1:2.91.0-5 # Starting from 2.90, Blender support only 64-bits architectures ExcludeArch: %{ix86} %{arm}
+# # S390x got failure with ‘BLI_endian_switch_uint32’ +# https://koji.fedoraproject.org/koji/taskinfo?taskID=120945932 +ExcludeArch: s390x + %description Blender is the essential software solution you need for 3D, from modeling, animation, rendering and post-production to interactive creation and playback.
commit 994a0b9a403cca8cac81b4492e2fcff12ad83f79 Author: Fedora Release Engineering releng@fedoraproject.org Date: Wed Jul 17 18:22:45 2024 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
commit 065d9c0846cd38ad510676f479a8c65dcf481bb5 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Jun 27 18:13:33 2024 -0700
Rebuild for OpenImageIO 2.5.12.0 (rhbz#2294166)
commit ef311afba60a87a01f1579acd90e6c079eda323a Author: Python Maint python-maint@redhat.com Date: Thu Jun 27 00:27:09 2024 +0200
Rebuilt for Python 3.13
commit 83e681275630d9283c571ce8f3329cf516a800ce Author: Luya Tshimbalanga luya@fedoraproject.org Date: Mon Jul 22 17:42:02 2024 -0700
Update to 4.2.0 (rhbz#2298215) ... - This update drop conditional Wayland support now enabled by default - Dropped explicit add-ons packages as upstream moved to extensions - Moved macros file to compressed format (tar.xz)
diff --git a/blender.spec b/blender.spec index efbecab..f58bce0 100644 --- a/blender.spec +++ b/blender.spec @@ -1,4 +1,4 @@ -%global blender_api 4.1 +%global blender_api 4.2 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
# not compatible with newer clang versions @@ -17,7 +17,6 @@ %bcond sdl 0 %bcond system_eigen3 1 %bcond vulkan 0 -%bcond wayland 1
%ifarch x86_64 aarch64 ppc64le %global cyclesflag ON @@ -44,7 +43,7 @@
Name: blender Epoch: 1 -Version: 4.1.1 +Version: 4.2.0 Release: %autorelease
@@ -53,10 +52,11 @@ License: GPL-2.0-or-later URL: https://www.blender.org
Source0: https://download.%%7Bname%7D.org/source/%%7Bname%7D-%%7Bversion%7D.tar.xz -# Upstream separated addons from the main source -Source1: https://projects.%%7Bname%7D.org/%%7Bname%7D/%%7Bname%7D-addons/archive/v%%7... +# Upstream separated addons from the main source and moved to +# https://extensions.blender.com starting version 4.2 +# Source1: https://projects.%%%7Bname%7D.org/%%%7Bname%7D/%%%7Bname%7D-addons/archive/v... # Rename macros extension to avoid clashing with upstream version -Source2: macros.%{name}-rpm +Source1: %{name}-macros.tar.xz
# Development stuff BuildRequires: boost-devel @@ -96,13 +96,11 @@ BuildRequires: pkgconfig(python3) >= 3.7 %if %{with vulkan} BuildRequires: vulkan-headers %endif -%if %{with wayland} BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(libdecor-0) >= 0.1.0 BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(xkbcommon) -%endif BuildRequires: pkgconfig(xxf86vm) BuildRequires: subversion-devel
@@ -254,7 +252,7 @@ BuildRequires: pkgconfig(vpx) BuildRequires: cmake(OpenColorIO) > 1 BuildRequires: cmake(Imath) BuildRequires: cmake(OpenEXR) -BuildRequires: cmake(OpenImageIO) +BuildRequires: cmake(OpenImageIO) >= 2.5.0.0 BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(tbb) = 2020.3 BuildRequires: potrace-devel @@ -273,7 +271,9 @@ BuildRequires: pkgconfig(vorbis)
# Typography stuff BuildRequires: fontpackages-devel +BuildRequires: pkgconfig(fribidi) BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(tinyxml) # Appstream stuff BuildRequires: libappstream-glib @@ -320,14 +320,6 @@ packages to extend Blender. %prep %autosetup -p1 -a1
-# integrate addons in source tree -for d in addons; do - # wipe .gitea and .github - rm -r %{name}-$d/{.gitea,.github} - cp -pr %{name}-$d/* scripts/addons - rm -fr %{name}-$d -done - # Delete the bundled FindOpenJPEG to make find_package use the system version # instead (the local version hardcodes the openjpeg version so it is not update # proof) @@ -421,7 +413,7 @@ install -Dm755 release/bin/%{name}-softwaregl %{buildroot}%{_bindir}/%{name}-sof
# rpm macros mkdir -p %{buildroot}%{macrosdir} -sed -e 's/@VERSION@/%{blender_api}/g' %{SOURCE2} > %{buildroot}%{macrosdir}/macros.%{name}-rpm +sed -e 's/@VERSION@/%{blender_api}/g' %{SOURCE1} > %{buildroot}%{macrosdir}/%{name}-macros
# Metainfo install -p -m 644 -D release/freedesktop/org.%{name}.Blender.metainfo.xml \ @@ -455,7 +447,7 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.%{name}.Bl %{_metainfodir}/org.%{name}.Blender.metainfo.xml
%files rpm-macros -%{macrosdir}/macros.%{name}-rpm +%{macrosdir}/%{name}-macros
%changelog %autochangelog diff --git a/sources b/sources index f051ece..66bb2c6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (blender-4.1.1.tar.xz) = 13ad0cdd09879b5c28554faca5a54172f43dc3dcb749d2d1723d3e89e741e6255179af3bd88309b735e058b9b350191e44f3158e882e55f1cedea70b8b21540e -SHA512 (blender-addons-4.1.1.tar.gz) = b54612cbd108881710305771d53276a83fad555126ed7cd5d5d0cf2f7b7d3322e4aae59f23e89cb4d195fbf22e98c08afb0eba8e6cbf3ec217b48fd7972ba491 +SHA512 (blender-4.2.0.tar.xz) = 623ee71a46333c856142095174e1f10cc132d193c6ac74afd3140b8e1b0cee896112fe341ce6dc97f63ac817b558dc7765166732d75dbb5c1efcf9fccde56304 +SHA512 (blender-macros.tar.xz) = 06f9e7596e32b4864c5ef4e2b37df558310c7900956366267169fa00bfede3a89c58841d801bf1397b11baa0a528de8155f7f2758145f7f46fe2b59ba83a9e67
commit 3c12f7ff6d98ad7c70fc5760e45a48537724661d Author: Luya Tshimbalanga luya@fedoraproject.org Date: Thu Jun 27 18:13:33 2024 -0700
Rebuild for OpenImageIO 2.5.12.0 (rhbz#2294166)
commit 3e1f7da7ccb8f672b6c6edc13d2a31d16403b091 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Mon Jun 10 08:55:12 2024 -0700
Add recommends rocm-hip-devel (rhbz#2276669)
diff --git a/blender.spec b/blender.spec index e46d590..efbecab 100644 --- a/blender.spec +++ b/blender.spec @@ -283,6 +283,7 @@ BuildRequires: libappstream-glib BuildRequires: lld-devel BuildRequires: rocm-comgr-devel BuildRequires: rocm-hip-devel +Recommends: rocm-hip-devel BuildRequires: rocm-runtime-devel %endif
commit e780f2a084c03ac3881c1d0ec66fe5db38155948 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Sun Jun 9 19:12:09 2024 -0700
Rebuild for openvdb with required tbb2020.3
diff --git a/blender.spec b/blender.spec index 25824ab..e46d590 100644 --- a/blender.spec +++ b/blender.spec @@ -10,11 +10,10 @@ %bcond draco 1 # Needed to enable osl support for cycles rendering %bcond llvm 1 -# Manpage is broken upstream %bcond manpage 1 %bcond ninja 1 -%bcond openshading 0 -%bcond openvdb 0 +%bcond openshading 1 +%bcond openvdb 1 %bcond sdl 0 %bcond system_eigen3 1 %bcond vulkan 0
commit fb37f4e6f523163e8a285ce0a9a559461330126f Author: Luya Tshimbalanga luya@fedoraproject.org Date: Tue May 28 02:12:18 2024 -0700
Rebuild for oidn 2.3.0 beta and ispc 1.2.4
commit 6f3618acf541a13455d512b84970a87fcef95178 Author: Benjamin A. Beasley code@musicinmybrain.net Date: Thu Apr 25 08:43:01 2024 -0400
Rebuilt for openexr 3.2.4 and OpenColorIO 2.3.2
See RHBZ#2239262 for OpenColorIO discussion.
commit d62480e6a4cda83e68bdf98811fe8fd36cbbc51c Author: Luya Tshimbalanga luya@fedoraproject.org Date: Sat Apr 20 01:56:43 2024 -0700
Update to 4.1.1 (rhbz#2271664)
diff --git a/blender.spec b/blender.spec index cf9d509..25824ab 100644 --- a/blender.spec +++ b/blender.spec @@ -45,7 +45,7 @@
Name: blender Epoch: 1 -Version: 4.1.0 +Version: 4.1.1 Release: %autorelease
diff --git a/sources b/sources index 83d9ae5..f051ece 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (blender-4.1.0.tar.xz) = abec46710e42116dc407a6c60fb59c80dd2494a2fe96e80413f878e2f398937675c6385fe0177ede51c57cf9645918e48ebcef8cb4b0190dba9ea60391e58790 -SHA512 (blender-addons-4.1.0.tar.gz) = 760845914c4edd6db68e48216f64a28fe0455eb2e406c3bd9e51d97fb3daf60148223daaf86f444dc6ca504d8b95716dfabcd5f428208b5ae476c22ee3ade6b7 +SHA512 (blender-4.1.1.tar.xz) = 13ad0cdd09879b5c28554faca5a54172f43dc3dcb749d2d1723d3e89e741e6255179af3bd88309b735e058b9b350191e44f3158e882e55f1cedea70b8b21540e +SHA512 (blender-addons-4.1.1.tar.gz) = b54612cbd108881710305771d53276a83fad555126ed7cd5d5d0cf2f7b7d3322e4aae59f23e89cb4d195fbf22e98c08afb0eba8e6cbf3ec217b48fd7972ba491
commit 16b7e0c66d08ec61128fd53365540312f090aebb Author: Luya Tshimbalanga luya@fedoraproject.org Date: Tue Apr 16 12:54:13 2024 -0700
Temporarily disable openshadinglanguage and openvdb due compatibility issues
diff --git a/blender.spec b/blender.spec index e0d260f..cf9d509 100644 --- a/blender.spec +++ b/blender.spec @@ -13,7 +13,8 @@ # Manpage is broken upstream %bcond manpage 1 %bcond ninja 1 -%bcond openshading 1 +%bcond openshading 0 +%bcond openvdb 0 %bcond sdl 0 %bcond system_eigen3 1 %bcond vulkan 0 @@ -239,7 +240,9 @@ BuildRequires: cmake(Alembic) BuildRequires: ffmpeg-free-devel >= 5.1.2 BuildRequires: lame-devel BuildRequires: libspnav-devel +%if %{with openvdb} BuildRequires: openvdb-devel +%endif BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libjpeg)
commit c22be6c8d21dd03c95b7d3595b7b29bc720d103a Author: Luya Tshimbalanga luya@fedoraproject.org Date: Fri Mar 29 01:25:50 2024 -0700
Update to 4.1.0 (rhbz#2271664)
This commit also cleans up unused codes in the spec file
diff --git a/blender-3.6.1-py312-pylongobject.patch b/blender-3.6.1-py312-pylongobject.patch deleted file mode 100644 index 1240cf0..0000000 --- a/blender-3.6.1-py312-pylongobject.patch +++ /dev/null @@ -1,132 +0,0 @@ ---- 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 = { - - /*-----------------------BPy_IntegrationType instance definitions -------------------------*/ - -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - 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 - PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){FIRST}}; - static PyLongObject _IntegrationType_LAST = { - PyVarObject_HEAD_INIT(&IntegrationType_Type, 1){LAST}}; -+#else -+#define NON_SIZE_BITS 3 -+#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) -+#define _Py_IntegrationTypeType_DIGIT_INIT(val) \ -+ { \ -+ .ob_base = PyObject_HEAD_INIT(&IntegrationType_Type) \ -+ .long_value = { \ -+ .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ -+ (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ -+ (val) == 0 ? 0 : 1), \ -+ { ((val) >= 0 ? (val) : -(val)) }, \ -+ } \ -+ } -+ -+static PyLongObject _IntegrationType_MEAN = _Py_IntegrationTypeType_DIGIT_INIT(MEAN); -+static PyLongObject _IntegrationType_MIN = _Py_IntegrationTypeType_DIGIT_INIT(MIN); -+static PyLongObject _IntegrationType_MAX = _Py_IntegrationTypeType_DIGIT_INIT(MAX); -+static PyLongObject _IntegrationType_FIRST = _Py_IntegrationTypeType_DIGIT_INIT(FIRST); -+static PyLongObject _IntegrationType_LAST = _Py_IntegrationTypeType_DIGIT_INIT(LAST); -+#endif - - #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 = { - - /*-----------------------BPy_IntegrationType instance definitions -------------------------*/ - -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - PyLongObject _BPy_MediumType_DRY_MEDIUM = { - PyVarObject_HEAD_INIT(&MediumType_Type, 1){Stroke::DRY_MEDIUM}, - }; -@@ -80,6 +81,24 @@ PyLongObject _BPy_MediumType_HUMID_MEDIU - PyLongObject _BPy_MediumType_OPAQUE_MEDIUM = { - PyVarObject_HEAD_INIT(&MediumType_Type, 1){Stroke::OPAQUE_MEDIUM}, - }; -+#else -+#define NON_SIZE_BITS 3 -+#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) -+#define _Py_MediumType_DIGIT_INIT(val) \ -+ { \ -+ .ob_base = PyObject_HEAD_INIT(&MediumType_Type) \ -+ .long_value = { \ -+ .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ -+ (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ -+ (val) == 0 ? 0 : 1), \ -+ { ((val) >= 0 ? (val) : -(val)) }, \ -+ } \ -+ } -+ -+PyLongObject _BPy_MediumType_DRY_MEDIUM = _Py_MediumType_DIGIT_INIT(Stroke::DRY_MEDIUM); -+PyLongObject _BPy_MediumType_HUMID_MEDIUM = _Py_MediumType_DIGIT_INIT(Stroke::HUMID_MEDIUM); -+PyLongObject _BPy_MediumType_OPAQUE_MEDIUM = _Py_MediumType_DIGIT_INIT(Stroke::OPAQUE_MEDIUM); -+#endif - - //-------------------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 = { - - /*-----------------------BPy_Nature instance definitions ----------------------------------*/ - -+#if PY_VERSION_HEX < 0x030c0000 /* older than Python 3.12 */ - 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 - PyVarObject_HEAD_INIT(&Nature_Type, 1){Nature::MATERIAL_BOUNDARY}}; - static PyLongObject _Nature_EDGE_MARK = { - PyVarObject_HEAD_INIT(&Nature_Type, 1){Nature::EDGE_MARK}}; -+#else -+#define NON_SIZE_BITS 3 -+#define TAG_FROM_SIGN_AND_SIZE(sign, size) ((1 - (sign)) | ((size) << NON_SIZE_BITS)) -+#define _Py_Nature_TypeType_DIGIT_INIT(val) \ -+ { \ -+ .ob_base = PyObject_HEAD_INIT(&Nature_Type) \ -+ .long_value = { \ -+ .lv_tag = TAG_FROM_SIGN_AND_SIZE( \ -+ (val) == 0 ? 0 : ((val) < 0 ? -1 : 1), \ -+ (val) == 0 ? 0 : 1), \ -+ { ((val) >= 0 ? (val) : -(val)) }, \ -+ } \ -+ } -+ -+static PyLongObject _Nature_POINT = _Py_Nature_TypeType_DIGIT_INIT(Nature::POINT); -+static PyLongObject _Nature_S_VERTEX = _Py_Nature_TypeType_DIGIT_INIT(Nature::S_VERTEX); -+static PyLongObject _Nature_VIEW_VERTEX = _Py_Nature_TypeType_DIGIT_INIT(Nature::VIEW_VERTEX); -+static PyLongObject _Nature_NON_T_VERTEX = _Py_Nature_TypeType_DIGIT_INIT(Nature::NON_T_VERTEX); -+static PyLongObject _Nature_T_VERTEX = _Py_Nature_TypeType_DIGIT_INIT(Nature::T_VERTEX); -+static PyLongObject _Nature_CUSP = _Py_Nature_TypeType_DIGIT_INIT(Nature::CUSP); -+static PyLongObject _Nature_NO_FEATURE = _Py_Nature_TypeType_DIGIT_INIT(Nature::NO_FEATURE); -+static PyLongObject _Nature_SILHOUETTE = _Py_Nature_TypeType_DIGIT_INIT(Nature::SILHOUETTE); -+static PyLongObject _Nature_BORDER = _Py_Nature_TypeType_DIGIT_INIT(Nature::BORDER); -+static PyLongObject _Nature_CREASE = _Py_Nature_TypeType_DIGIT_INIT(Nature::CREASE); -+static PyLongObject _Nature_RIDGE = _Py_Nature_TypeType_DIGIT_INIT(Nature::RIDGE); -+static PyLongObject _Nature_VALLEY = _Py_Nature_TypeType_DIGIT_INIT(Nature::VALLEY); -+static PyLongObject _Nature_SUGGESTIVE_CONTOUR = _Py_Nature_TypeType_DIGIT_INIT(Nature::SUGGESTIVE_CONTOUR); -+static PyLongObject _Nature_MATERIAL_BOUNDARY = _Py_Nature_TypeType_DIGIT_INIT(Nature::MATERIAL_BOUNDARY); -+static PyLongObject _Nature_EDGE_MARK = _Py_Nature_TypeType_DIGIT_INIT(Nature::EDGE_MARK); -+#endif - - #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 - else { - result = PyObject_NewVar(BPy_Nature, &Nature_Type, 1); - if (result) { -+#if PY_VERSION_HEX >= 0x030c0000 /* Python 3.12 and newer */ -+ result->i.long_value.lv_tag = TAG_FROM_SIGN_AND_SIZE((v > 0 ? 1 : -1), 1); -+ result->i.long_value.ob_digit[0] = v; -+#else - result->i.ob_digit[0] = v; -+#endif - } - } - return (PyObject *)result; diff --git a/blender.spec b/blender.spec index cdfe37d..e0d260f 100644 --- a/blender.spec +++ b/blender.spec @@ -1,4 +1,4 @@ -%global blender_api 4.0 +%global blender_api 4.1 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
# not compatible with newer clang versions @@ -11,12 +11,12 @@ # Needed to enable osl support for cycles rendering %bcond llvm 1 # Manpage is broken upstream -%bcond manpage 0 +%bcond manpage 1 %bcond ninja 1 %bcond openshading 1 %bcond sdl 0 %bcond system_eigen3 1 -%bcond vulkan 1 +%bcond vulkan 0 %bcond wayland 1
%ifarch x86_64 aarch64 ppc64le @@ -44,7 +44,7 @@
Name: blender Epoch: 1 -Version: 4.0.2 +Version: 4.1.0 Release: %autorelease
@@ -58,9 +58,6 @@ Source1: https://projects.%%7Bname%7D.org/%%7Bname%7D/%%7Bname%7D-addons/archive/v%%7... # Rename macros extension to avoid clashing with upstream version Source2: macros.%{name}-rpm
-# -Patch: %{name}-3.6.1-py312-pylongobject.patch - # Development stuff BuildRequires: boost-devel BuildRequires: ccache @@ -379,12 +376,6 @@ sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp %endif %if %{with manpage} -DWITH_DOC_MANPAGE=ON \ -%endif -%if %{with draco} - -DWITH_DRACO=ON \ -%endif -%if %{with wayland} - -DWITH_GHOST_WAYLAND_DBUS=ON \ %endif -DWITH_INSTALL_PORTABLE=OFF \ -DWITH_PYTHON_INSTALL=OFF \ @@ -425,9 +416,6 @@ LD_LIBRARY_PATH='%{buildroot}%{_libdir}' %{python3} doc/manpage/blender.1.py \ # Install fallback binary install -Dm755 release/bin/%{name}-softwaregl %{buildroot}%{_bindir}/%{name}-softwaregl
-# Deal with docs in the files section -rm -rf %{buildroot}%{_docdir}/%{name}/* - # rpm macros mkdir -p %{buildroot}%{macrosdir} sed -e 's/@VERSION@/%{blender_api}/g' %{SOURCE2} > %{buildroot}%{macrosdir}/macros.%{name}-rpm @@ -442,6 +430,8 @@ install -p -m 644 -D release/freedesktop/org.%{name}.Blender.metainfo.xml \ # rpmlint fixes find %{buildroot}%{_datadir}/%{name}/%{blender_api}/scripts -name "*.py" -exec chmod 755 {} ;
+# Deal with docs in the files section +rm -rf %{buildroot}%{_docdir}/%{name}/*
%check desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop @@ -454,8 +444,7 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.%{name}.Bl %doc release/text/readme.html %{_bindir}/%{name}{,-softwaregl,-thumbnailer} %{_datadir}/applications/%{name}.desktop -%{_datadir}/%{name}/%{blender_api}/datafiles/locale/ -%{_datadir}/%{name}/ +%{_datadir}/%{name}/%{blender_api}/ %{_datadir}/icons/hicolor/*/apps/%{name}*.* %if %{with manpage} %{_mandir}/man1/%{name}.* diff --git a/sources b/sources index ee9eca1..83d9ae5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (blender-4.0.2.tar.xz) = c37b85d06f5cf8b48cb8c657a9fb6b0ab1325271706fa34039f2993420f7606cd1e2c052173cdea94e9bec2924e7aa4df373e3a0fc1f9c4be336e62211b6bc4b -SHA512 (blender-addons-4.0.2.tar.gz) = 057f2c23d01b8bb09087f50fcd8738887f590dbbfc50c55181a03ef8636d4045cc4a37f9c0e7db15f3090465750f92b743a113c82f6b37439aef14a2accee0ee +SHA512 (blender-4.1.0.tar.xz) = abec46710e42116dc407a6c60fb59c80dd2494a2fe96e80413f878e2f398937675c6385fe0177ede51c57cf9645918e48ebcef8cb4b0190dba9ea60391e58790 +SHA512 (blender-addons-4.1.0.tar.gz) = 760845914c4edd6db68e48216f64a28fe0455eb2e406c3bd9e51d97fb3daf60148223daaf86f444dc6ca504d8b95716dfabcd5f428208b5ae476c22ee3ade6b7
commit 878dce5df0f31cedcb8dec49c551e82f5ea08f6d Author: Yaakov Selkowitz yselkowi@redhat.com Date: Sun Mar 17 00:47:29 2024 -0400
Fix flatpak build
ffmpeg-free and the default LLVM are part of the flatpak runtime, and therefore are not in the same prefix as blender when built as a flatpak.
diff --git a/blender.spec b/blender.spec index b3d7ef4..cdfe37d 100644 --- a/blender.spec +++ b/blender.spec @@ -353,7 +353,7 @@ sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp %if %{with ninja} -G Ninja \ %endif - -D_ffmpeg_INCLUDE_DIR=%{_includedir}/ffmpeg \ + -D_ffmpeg_INCLUDE_DIR=$(pkg-config --variable=includedir libavformat) \ %if %{with openshading} -D_osl_LIBRARIES=%{_libdir} \ -DOSL_INCLUDE_DIR=%{_includedir} \ @@ -367,8 +367,8 @@ sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_SKIP_RPATH=ON \ %if %{with clang} - -DCLANG_INCLUDE_DIR=%{_includedir}/clang \ - -D_CLANG_LIBRARIES=%{_libdir}/libclang.so \ + -DCLANG_INCLUDE_DIR=%{_usr}/include/clang \ + -D_CLANG_LIBRARIES=%{_usr}/%{_lib}/libclang.so \ %endif -DEMBREE_INCLUDE_DIR=%{_includedir} \ -DPYTHON_VERSION=%{python3_version} \
commit 25e3325fd3174aa6a93a3edfd811813f266bd000 Author: Luya Tshimbalanga luya@fedoraproject.org Date: Sat Feb 17 00:43:08 2024 -0800
Reintroduce pylongobject fix
...(rhbz#2259558, rhbz#2261013) - Update HIP command on build - Temporarily disable manpage due to upstream bug
diff --git a/115098.patch b/115098.patch deleted file mode 100644 index e381a64..0000000 --- a/115098.patch +++ /dev/null @@ -1,123 +0,0 @@ -From a06fa0fcfd3cbcd7a90a63002a4742073a181c21 Mon Sep 17 00:00:00 2001 -From: Leon Marz main@lmarz.org -Date: Sat, 18 Nov 2023 15:06:55 +0100 -Subject: [PATCH 1/2] Fix build error on architectures without SSE or sse2neon - -As color_srgb_to_linear is only defined for them. - -Pull Request: https://projects.blender.org/blender/blender/pulls/115098 ---- - intern/cycles/blender/attribute_convert.h | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/intern/cycles/blender/attribute_convert.h b/intern/cycles/blender/attribute_convert.h -index ee26e1d9571..34b75d55855 100644 ---- a/intern/cycles/blender/attribute_convert.h -+++ b/intern/cycles/blender/attribute_convert.h -@@ -66,10 +66,10 @@ template<> struct AttributeConverterblender::ColorGeometry4b { - static constexpr auto type_desc = TypeRGBA; - static CyclesT convert(const blender::ColorGeometry4b &value) - { -- return color_srgb_to_linear(make_float4(byte_to_float(value[0]), -- byte_to_float(value[1]), -- byte_to_float(value[2]), -- byte_to_float(value[3]))); -+ return color_srgb_to_linear_v4(make_float4(byte_to_float(value[0]), -+ byte_to_float(value[1]), -+ byte_to_float(value[2]), -+ byte_to_float(value[3]))); - } - }; - template<> struct AttributeConverter<bool> { --- -2.30.2 - - -From 67bc11c859e73058ead1081a82726de2bb3bdc7c Mon Sep 17 00:00:00 2001 -From: Brecht Van Lommel brecht@blender.org -Date: Wed, 22 Nov 2023 19:41:47 +0100 -Subject: [PATCH 2/2] Cleanup: rename sse2 specific functions to avoid - accidentally using them - -Ref #115098 ---- - intern/cycles/util/color.h | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/intern/cycles/util/color.h b/intern/cycles/util/color.h -index 8b3082a3ade..842b186899b 100644 ---- a/intern/cycles/util/color.h -+++ b/intern/cycles/util/color.h -@@ -253,7 +253,7 @@ ccl_device float3 xyY_to_xyz(float x, float y, float Y) - * exp = exponent, encoded as uint32_t - * e2coeff = 2^(127/exponent - 127) * bias_coeff^(1/exponent), encoded as uint32_t - */ --template<unsigned exp, unsigned e2coeff> ccl_device_inline float4 fastpow(const float4 &arg) -+template<unsigned exp, unsigned e2coeff> ccl_device_inline float4 fastpow_sse2(const float4 &arg) - { - float4 ret = arg * cast(make_int4(e2coeff)); - ret = make_float4(cast(ret)); -@@ -263,7 +263,7 @@ template<unsigned exp, unsigned e2coeff> ccl_device_inline float4 fastpow(const - } - - /* Improve x ^ 1.0f/5.0f solution with Newton-Raphson method */ --ccl_device_inline float4 improve_5throot_solution(const float4 &old_result, const float4 &x) -+ccl_device_inline float4 improve_5throot_solution_sse2(const float4 &old_result, const float4 &x) - { - float4 approx2 = old_result * old_result; - float4 approx4 = approx2 * approx2; -@@ -273,7 +273,7 @@ ccl_device_inline float4 improve_5throot_solution(const float4 &old_result, cons - } - - /* Calculate powf(x, 2.4). Working domain: 1e-10 < x < 1e+10 */ --ccl_device_inline float4 fastpow24(const float4 &arg) -+ccl_device_inline float4 fastpow24_sse2(const float4 &arg) - { - /* max, avg and |avg| errors were calculated in gcc without FMA instructions - * The final precision should be better than powf in glibc */ -@@ -281,27 +281,27 @@ ccl_device_inline float4 fastpow24(const float4 &arg) - /* Calculate x^4/5, coefficient 0.994 was constructed manually to minimize avg error */ - /* 0x3F4CCCCD = 4/5 */ - /* 0x4F55A7FB = 2^(127/(4/5) - 127) * 0.994^(1/(4/5)) */ -- float4 x = fastpow<0x3F4CCCCD, 0x4F55A7FB>( -+ float4 x = fastpow_sse2<0x3F4CCCCD, 0x4F55A7FB>( - arg); // error max = 0.17 avg = 0.0018 |avg| = 0.05 - float4 arg2 = arg * arg; - float4 arg4 = arg2 * arg2; - - /* error max = 0.018 avg = 0.0031 |avg| = 0.0031 */ -- x = improve_5throot_solution(x, arg4); -+ x = improve_5throot_solution_sse2(x, arg4); - /* error max = 0.00021 avg = 1.6e-05 |avg| = 1.6e-05 */ -- x = improve_5throot_solution(x, arg4); -+ x = improve_5throot_solution_sse2(x, arg4); - /* error max = 6.1e-07 avg = 5.2e-08 |avg| = 1.1e-07 */ -- x = improve_5throot_solution(x, arg4); -+ x = improve_5throot_solution_sse2(x, arg4); - - return x * (x * x); - } - --ccl_device float4 color_srgb_to_linear(const float4 &c) -+ccl_device float4 color_srgb_to_linear_sse2(const float4 &c) - { - int4 cmp = c < make_float4(0.04045f); - float4 lt = max(c * make_float4(1.0f / 12.92f), make_float4(0.0f)); - float4 gtebase = (c + make_float4(0.055f)) * make_float4(1.0f / 1.055f); /* fma */ -- float4 gte = fastpow24(gtebase); -+ float4 gte = fastpow24_sse2(gtebase); - return select(cmp, lt, gte); - } - #endif /* __KERNEL_SSE2__ */ -@@ -328,7 +328,7 @@ ccl_device float4 color_srgb_to_linear_v4(float4 c) - { - #ifdef __KERNEL_SSE2__ - float4 r = c; -- r = color_srgb_to_linear(r); -+ r = color_srgb_to_linear_sse2(r); - r.w = c.w; - return r; - #else --- -2.30.2 - diff --git a/blender-3.6.1-py312-opcode.patch b/blender-3.6.1-py312-opcode.patch deleted file mode 100644 index 3d05620..0000000 --- a/blender-3.6.1-py312-opcode.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- 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/blender-3.6.1-py312-pyarg-parser-def.patch b/blender-3.6.1-py312-pyarg-parser-def.patch deleted file mode 100644 index d75b45a..0000000 --- a/blender-3.6.1-py312-pyarg-parser-def.patch +++ /dev/null @@ -1,1159 +0,0 @@ ---- 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/blender.spec b/blender.spec index 71ff340..b3d7ef4 100644 --- a/blender.spec +++ b/blender.spec @@ -1,14 +1,22 @@ %global blender_api 4.0 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
+# not compatible with newer clang versions +#%%if 0%%{?fedora} >= 38 || 0%%{?rhel} >= 8 +#%%global llvm_compat 16 +#%%endif + %bcond clang 1 %bcond draco 1 # Needed to enable osl support for cycles rendering %bcond llvm 1 -%bcond manpage 1 +# Manpage is broken upstream +%bcond manpage 0 +%bcond ninja 1 %bcond openshading 1 %bcond sdl 0 %bcond system_eigen3 1 +%bcond vulkan 1 %bcond wayland 1
%ifarch x86_64 aarch64 ppc64le @@ -50,16 +58,17 @@ Source1: https://projects.%%7Bname%7D.org/%%7Bname%7D/%%7Bname%7D-addons/archive/v%%7... # Rename macros extension to avoid clashing with upstream version Source2: macros.%{name}-rpm
-Patch1: %{name}-3.6.1-py312-pylongobject.patch +# +Patch: %{name}-3.6.1-py312-pylongobject.patch
# Development stuff BuildRequires: boost-devel BuildRequires: ccache %if %{with clang} -BuildRequires: clang +BuildRequires: clang%{?llvm_compat}-devel %endif %if %{with llvm} -BuildRequires: llvm-devel +BuildRequires: llvm%{?llvm_compat}-devel %endif BuildRequires: cmake BuildRequires: desktop-file-utils @@ -68,7 +77,9 @@ BuildRequires: gettext BuildRequires: git-core BuildRequires: libharu-devel BuildRequires: libtool +%if %{with ninja} BuildRequires: ninja-build +%endif BuildRequires: pkgconfig(blosc) %if %{with system_eigen3} BuildRequires: pkgconfig(eigen3) @@ -85,6 +96,9 @@ BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pugixml) BuildRequires: pkgconfig(python3) >= 3.7 +%if %{with vulkan} +BuildRequires: vulkan-headers +%endif %if %{with wayland} BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(libdecor-0) >= 0.1.0 @@ -267,7 +281,6 @@ BuildRequires: libappstream-glib
# ROCm stuff %if %{with rocm} -BuildRequires: clang-tools-extra BuildRequires: lld-devel BuildRequires: rocm-comgr-devel BuildRequires: rocm-hip-devel @@ -327,11 +340,19 @@ rm -f build_files/cmake/Modules/FindOpenJPEG.cmake sed -i "s/date_time/date_time python%{python3_version_nodots}/" \ build_files/cmake/platform/platform_unix.cmake
+# Remove/replace depreciated parameters from HIPcc command +# https://projects.blender.org/blender/blender/pulls/118401 +sed -i "s|--hipcc-func-supp||g" intern/cycles/device/hip/device_impl.cpp \ + intern/cycles/kernel/CMakeLists.txt +sed -i "s|amdgpu-target|offload-arch|g" intern/cycles/device/hip/device_impl.cpp \ + intern/cycles/kernel/CMakeLists.txt
%build %cmake \ +%if %{with ninja} -G Ninja \ +%endif -D_ffmpeg_INCLUDE_DIR=%{_includedir}/ffmpeg \ %if %{with openshading} -D_osl_LIBRARIES=%{_libdir} \ @@ -347,7 +368,7 @@ sed -i "s/date_time/date_time python%{python3_version_nodots}/" \ -DCMAKE_SKIP_RPATH=ON \ %if %{with clang} -DCLANG_INCLUDE_DIR=%{_includedir}/clang \ - -D_CLANG_LIBRARIES=%{_libdir} \ + -D_CLANG_LIBRARIES=%{_libdir}/libclang.so \ %endif -DEMBREE_INCLUDE_DIR=%{_includedir} \ -DPYTHON_VERSION=%{python3_version} \
commit 6693ef59c9b394ce00141691fe5bab48b3870393 Author: Richard Shaw hobbes1069@gmail.com Date: Mon Jan 29 22:11:51 2024 -0600
Rebuild for OpenImageIO 2.5.x.
diff --git a/blender.spec b/blender.spec index fe0b0cb..71ff340 100644 --- a/blender.spec +++ b/blender.spec @@ -238,10 +238,10 @@ BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(theora) BuildRequires: pkgconfig(vpx) # OpenColorIO 2 and up required -BuildRequires: pkgconfig(OpenColorIO) > 1 +BuildRequires: cmake(OpenColorIO) > 1 BuildRequires: cmake(Imath) BuildRequires: cmake(OpenEXR) -BuildRequires: pkgconfig(OpenImageIO) +BuildRequires: cmake(OpenImageIO) BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(tbb) = 2020.3 BuildRequires: potrace-devel
commit c5d9f7b40ce62a5a0ebc95658662c92fae8c81a8 Author: Fedora Release Engineering releng@fedoraproject.org Date: Tue Jan 23 00:31:08 2024 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
commit c5abf01a67f077a4f13bb960a921419e147ac77d Author: Fedora Release Engineering releng@fedoraproject.org Date: Fri Jan 19 14:28:38 2024 +0000
Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
arch-excludes@lists.fedoraproject.org