public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Luya Tshimbalanga <luya@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/blender] f45: Merge branch 'rawhide' into f45
Date: Mon, 21 Sep 2026 23:39:45 GMT	[thread overview]
Message-ID: <179003398599.1.2345730716754504145.rpms-blender-5fcda5a9c62f@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/blender
Branch : f45
Commit : 5fcda5a9c62f1edd8ceeb84fa86c070242a9c48c
Author : Luya Tshimbalanga <luya@fedoraproject.org>
Date   : 2026-09-21T16:39:08-07:00
Stats  : +154/-95 in 3 file(s)
URL    : https://src.fedoraproject.org/rpms/blender/c/5fcda5a9c62f1edd8ceeb84fa86c070242a9c48c?branch=f45

Log:
Merge branch 'rawhide' into f45

---
diff --git a/.rpmlint b/.rpmlint
deleted file mode 100644
index e1bab3c..0000000
--- a/.rpmlint
+++ /dev/null
@@ -1 +0,0 @@
-addFilter("W: devel-file-in-non-devel-package .*")

diff --git a/blender.rpmlintrc b/blender.rpmlintrc
new file mode 100644
index 0000000..e1bab3c
--- /dev/null
+++ b/blender.rpmlintrc
@@ -0,0 +1 @@
+addFilter("W: devel-file-in-non-devel-package .*")

diff --git a/blender.spec b/blender.spec
index 5fd6c46..0306577 100644
--- a/blender.spec
+++ b/blender.spec
@@ -3,47 +3,60 @@
 %global _without_bundled_deps 1
 
 # Build conditionals
-%bcond clang      0   # Use Clang compiler
+%bcond clang      0   # Enable Blender's Clang library integration
 %bcond draco      1   # Draco mesh compression support
 %bcond fribidi    1   # Fribidi support
 %bcond harfbuzz   1   # Harfbuzz support
-%bcond llvm       1   # Required for OSL support
+%bcond llvm       0   # Enable Blender's optional LLVM integration
 %bcond manifold   1   # Manifold support
 %bcond manpage    1   # Generate manpage
 %bcond materialx  1   # MaterialX support
+%bcond meshoptimizer 0 # Meshoptimizer support (enable when available in the buildroot)
 %bcond nanovdb    1   # NanoVDB support
-%bcond ninja      1   # Use Ninja build system
 %bcond openvdb    1   # OpenVDB support
 %bcond vulkan     1   # Vulkan rendering support
 
-# Architecture-specific features
+%if %{with clang} && %{without llvm}
+%{error:--with clang requires --with llvm}
+%endif
+
+# Cycles and USD are available on Fedora's supported 64-bit little-endian
+# architectures.
 %ifarch x86_64 aarch64 ppc64le
 %global cyclesflag ON
-    # x86_64/aarch64 specific features
-    %ifarch x86_64 aarch64
-    %bcond embree 1   # Intel Embree ray tracing
-    %bcond hidapi 1   # HIDAPI support
-
-    # x86_64 exclusive features
-    %ifarch x86_64
-    %bcond hip   1    # AMD HIP support
-    %bcond hiprt 0    # HIP ray tracing (requires Fedora 42+)
-    %bcond oidn  1    # OpenImageDenoise
-    %bcond oneapi 1   # Intel OneAPI support
-    %bcond openshading 1  # OpenShadingLanguage support
-    %bcond opgl  1    # OpenPGL
-    %global llvm_compat 20
-    %endif
-    %bcond usd   1    # Universal Scene Description
+%bcond usd 1
 %else
-    %bcond embree 0
-    %bcond hidapi 0
-    %bcond oidn  0
-    %bcond opgl  0
-    %bcond usd   0
+%global cyclesflag OFF
+%bcond usd 0
 %endif
+
+# Embree and HIDAPI are available on x86_64 and aarch64.
+%ifarch x86_64 aarch64
+%bcond embree 1
+%bcond hidapi 1
 %else
-%global cyclesflag OFF
+%bcond embree 0
+%bcond hidapi 0
+%endif
+
+# GPU kernel generation and OSL/path-guiding support are currently x86_64-only.
+%ifarch x86_64
+%bcond hip 1
+%bcond hiprt 0
+%bcond oidn 1
+# Blender requires a SYCL compiler in addition to Level Zero. The Fedora
+# buildroot currently lacks the required SYCL toolchain.
+%bcond oneapi 0
+%bcond openshading 1
+%bcond opgl 1
+%global llvm_compat 20
+%else
+%bcond hip 0
+%bcond hiprt 0
+%bcond oidn 0
+%bcond oneapi 0
+%bcond openshading 0
+%bcond opgl 0
 %endif
 
 Name:           blender
@@ -58,13 +71,13 @@ Summary:        3D modeling, animation, rendering and post-production
 # Zlib License for Bullets
 # GPL-3.0-or-later for the whole project
 # https://www.blender.org/about/license/
-License:	%{shrink:
-		Apache-2.0 AND
-  		BSD-3-Clause AND
-  		GPL-2.0-or-later AND
-  		GPL-3.0-or-later AND
-  		Zlib
-		}
+License:        %{shrink:
+                Apache-2.0 AND
+                BSD-3-Clause AND
+                GPL-2.0-or-later AND
+                GPL-3.0-or-later AND
+                Zlib
+                }
 URL:            https://www.blender.org
 
 Source0:        https://download.%{name}.org/source/%{name}-%{version}.tar.xz
@@ -74,28 +87,31 @@ Source1:        %{name}-macros-source
 # Backport support for FFmpeg 9
 Patch0:         https://github.com/blender/blender/commit/e3c92c22817dc0310a460c22f6b1e8e397517e3b.patch#/blender-ffmpeg9.patch
 
+# versions.cmake pins the libraries used for Blender's official precompiled
+# dependency bundle. Those pins are tested versions, not general minimums for
+# system libraries. Version constraints below are limited to requirements that
+# Blender 5.2's CMake files enforce directly, plus its embedded-Python ABI
+# baseline.
+# https://projects.blender.org/blender/blender/src/branch/blender-v5.2-release/build_files/build_environment/cmake/versions.cmake
+# https://projects.blender.org/blender/blender/src/branch/blender-v5.2-release/CMakeLists.txt
+
 # Build requirements
-BuildRequires:  boost-devel
-BuildRequires:  ccache
-BuildRequires:  cmake
+BuildRequires:  cmake >= 3.21
 BuildRequires:  desktop-file-utils
 BuildRequires:  fdupes
-BuildRequires:  gcc-c++
+BuildRequires:  gcc-c++ >= 14
 BuildRequires:  gettext
 BuildRequires:  git-core
 BuildRequires:  libharu-devel
-BuildRequires:  subversion-devel
 
 # Conditional build deps
 %if %{with clang}
-BuildRequires:  clang%{?llvm_compat}-devel
+BuildRequires:  clang%{?llvm_compat}-devel >= 17
 %endif
 %if %{with llvm}
 BuildRequires:  llvm%{?llvm_compat}-devel
 %endif
-%if %{with ninja}
 BuildRequires:  ninja-build
-%endif
 
 # System libraries
 BuildRequires:  mold
@@ -104,6 +120,7 @@ BuildRequires:  pkgconfig(eigen3)
 BuildRequires:  pkgconfig(epoxy) >= 1.5.10
 BuildRequires:  pkgconfig(expat)
 BuildRequires:  pkgconfig(fmt)
+BuildRequires:  glog-devel
 BuildRequires:  pkgconfig(gmp)
 %if %{with hidapi}
 BuildRequires:  pkgconfig(hidapi-hidraw)
@@ -113,7 +130,7 @@ BuildRequires:  pkgconfig(libpcre2-32)
 BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(openssl)
 BuildRequires:  pkgconfig(pugixml)
-BuildRequires:  pkgconfig(python3) >= 3.7
+BuildRequires:  pkgconfig(python3) >= 3.13
 %if %{with vulkan}
 BuildRequires:  pkgconfig(shaderc)
 BuildRequires:  pkgconfig(vulkan)
@@ -229,11 +246,15 @@ BuildRequires:  pkgconfig(libzstd)
 # 3D modeling stuff
 BuildRequires:  cmake(ceres)
 BuildRequires:  flexiblas-devel
+%if %{with draco}
+BuildRequires:  cmake(draco)
+BuildRequires:  draco-static
+%endif
 %if %{with embree}
-BuildRequires:  embree-devel
+BuildRequires:  embree-devel >= 4.0.0
 %endif
 %if %{with manifold}
-BuildRequires:	pkgconfig(manifold)
+BuildRequires:  pkgconfig(manifold)
 BuildRequires:  polyclipping2-devel
 %endif
 %if %{with materialx}
@@ -241,13 +262,16 @@ BuildRequires:  cmake(materialx)
 BuildRequires:  materialx-data
 BuildRequires:  python3-materialx
 %endif
+%if %{with meshoptimizer}
+BuildRequires:  cmake(meshoptimizer)
+%endif
 BuildRequires:  metis-devel
 BuildRequires:  opensubdiv-devel >= 3.4.4
 %if %{with openshading}
 # Use oslc compiler
 BuildRequires:  OpenImageIO-plugin-osl
-BuildRequires:  openshadinglanguage-common-headers >= 1.12.6.2
-BuildRequires:  pkgconfig(oslcomp)
+BuildRequires:  openshadinglanguage-common-headers >= 1.13.4
+BuildRequires:  pkgconfig(oslcomp) >= 1.13.4
 %endif
 %if %{with oidn}
 BuildRequires:  cmake(OpenImageDenoise)
@@ -292,8 +316,8 @@ BuildRequires:  pkgconfig(openjph)
 BuildRequires:  pkgconfig(theora)
 BuildRequires:  pkgconfig(thorvg-1)
 BuildRequires:  pkgconfig(vpx)
-# OpenColorIO 2 and up required
-BuildRequires:  cmake(OpenColorIO) > 1
+# Blender 5.2 explicitly requires OpenColorIO 2.0 or newer.
+BuildRequires:  cmake(OpenColorIO) >= 2.0.0
 BuildRequires:  cmake(Imath)
 BuildRequires:  cmake(OpenEXR)
 BuildRequires:  cmake(OpenImageIO) >= 2.5.0.0
@@ -306,7 +330,7 @@ BuildRequires:  jack-audio-connection-kit-devel
 BuildRequires:  pkgconfig(ao)
 BuildRequires:  pkgconfig(flac)
 BuildRequires:  pkgconfig(freealut)
-BuildRequires:  pkgconfig(libpipewire-0.3)
+BuildRequires:  pkgconfig(libpipewire-0.3) >= 1.1.0
 BuildRequires:  pkgconfig(libpulse)
 BuildRequires:  pkgconfig(ogg)
 BuildRequires:  pkgconfig(opus)
@@ -334,7 +358,7 @@ BuildRequires:  libappstream-glib
 %if %{with hiprt}
 BuildRequires:  hiprt-devel
 %endif
-BuildRequires:	hipcc
+BuildRequires:  hipcc
 BuildRequires:  rocm-core
 BuildRequires:  rocm-device-libs
 BuildRequires:  rocm-hip-devel
@@ -356,7 +380,7 @@ Provides:       blender(ABI) = %{blender_api}
 # Starting from 2.90, Blender supports only 64-bits architectures
 # Starting from 5.0.0, Blender dropped big endian support impacting s390x arch
 # https://projects.blender.org/blender/blender/commit/bc80ef136e8af0a355d234205ed6c7b0acaa84ab
-ExcludeArch:	%{ix86} %{arm} s390x
+ExcludeArch:    %{ix86} %{arm} s390x
 
 %description
 Blender is the essential software solution you need for 3D, from modeling,
@@ -389,83 +413,98 @@ sed -i 's/CLOG_TRACE(&LOG, log_message\.c_str());/CLOG_TRACE(\&LOG, "%s", log_me
 
 %build
 %if %{with hip}
-export HIP_PATH=`hipconfig -p`
-export HIP_CLANG_PATH=`hipconfig -l`
+export HIP_PATH=$(hipconfig -p)
+export HIP_CLANG_PATH=$(hipconfig -l)
 %endif
 
+# Non-portable installs do not install Blender's CPU-check helper. Blender's
+# legacy FindGflags module conflicts with the gflags state imported by Ceres on
+# Fedora, so use Blender's bundled gflags as Fedora's package does. Ceres still
+# uses the system gflags library through its own imported target.
 %cmake \
-%if %{with ninja}
-    -G Ninja \
-%endif
     -DBUILD_SHARED_LIBS=OFF \
     -DCMAKE_BUILD_TYPE=Release \
     -DCMAKE_SKIP_RPATH=ON \
     -DPYTHON_VERSION=%{python3_version} \
-    -DWITH_COMPILER_CCACHE=ON \
+    -DWITH_COMPILER_CCACHE=OFF \
+    -DWITH_CLANG=%{with clang} \
     -DWITH_CYCLES=%{cyclesflag} \
-    -DWITH_CYCLES_EMBREE=%{?with_embree:ON}%{!?with_embree:OFF} \
+    -DWITH_CYCLES_EMBREE=%{with embree} \
+    -DWITH_CYCLES_DEVICE_CUDA=OFF \
+    -DWITH_CYCLES_DEVICE_OPTIX=OFF \
+    -DWITH_CYCLES_CUDA_BINARIES=OFF \
+    -DWITH_CYCLES_DEVICE_HIP=%{with hip} \
+    -DWITH_CYCLES_DEVICE_HIPRT=%{with hiprt} \
+    -DWITH_CYCLES_HIP_BINARIES=%{with hip} \
+    -DWITH_CYCLES_DEVICE_ONEAPI=%{with oneapi} \
+    -DWITH_CYCLES_ONEAPI_BINARIES=%{with oneapi} \
+    -DWITH_CYCLES_OSL=%{with openshading} \
+    -DWITH_CYCLES_PATH_GUIDING=%{with opgl} \
+    -DWITH_DRACO=%{with draco} \
+    -DWITH_CPU_CHECK=OFF \
     -DWITH_INSTALL_PORTABLE=OFF \
+    -DWITH_LLVM=%{with llvm} \
+    -DWITH_MANIFOLD=%{with manifold} \
+    -DWITH_MESHOPTIMIZER=%{with meshoptimizer} \
+    -DWITH_NANOVDB=%{with nanovdb} \
+    -DWITH_OPENIMAGEDENOISE=%{with oidn} \
+    -DWITH_OPENVDB=%{with openvdb} \
+    -DWITH_OPENVDB_BLOSC=%{with openvdb} \
     -DWITH_PYTHON_INSTALL=OFF \
-%if %{with fribidi}
-    -DWITH_FRIBIDI=ON \
-%endif
-%if %{with harfbuzz}
-    -DWITH_HARFBUZZ=ON \
-%endif
-%if %{with manpage}
-    -DWITH_DOC_MANPAGE=ON \
-%endif
-%if %{with materialx}
-    -DWITH_MATERIALX=ON \
-%else
-    -DWITH_MATERIALX=OFF \
-%endif
+    -DWITH_STRICT_BUILD_OPTIONS=ON \
+    -DWITH_SYSTEM_AUDASPACE=OFF \
+    -DWITH_SYSTEM_BULLET=OFF \
+    -DWITH_SYSTEM_GFLAGS=OFF \
+    -DWITH_SYSTEM_GLOG=ON \
+    -DWITH_VULKAN_BACKEND=%{with vulkan} \
+    -DWITH_DOC_MANPAGE=%{with manpage} \
+    -DWITH_FRIBIDI=%{with fribidi} \
+    -DWITH_HARFBUZZ=%{with harfbuzz} \
+    -DWITH_MATERIALX=%{with materialx} \
 %if %{with openshading}
     -DOSL_COMPILER=%{_bindir}/oslc \
 %endif
 %if %{with usd}
+    -DWITH_USD=ON \
     -DUSD_LIBRARY=%{_libdir}/libusd_ms.so \
 %else
     -DWITH_USD=OFF \
 %endif
     -D_ffmpeg_INCLUDE_DIR=$(pkg-config --variable=includedir libavformat) \
+%if %{with embree}
     -DEMBREE_INCLUDE_DIR=%{_includedir} \
+%endif
     -DXR_OPENXR_SDK_LOADER_LIBRARY=%{_libdir}/libopenxr_loader.so.1 \
 %if %{with hip}
     -DHIP_HIPCC_EXECUTABLE=%{_bindir}/hipcc \
-    -DWITH_CYCLES_HIP_BINARIES=ON \
-%if %{with hiprt}
-    -DWITH_CYCLES_DEVICE_HIPRT=ON \
-%endif
 %endif
-%if %{with oneapi}
-    -DWITH_CYCLES_DEVICE_ONEAPI=ON \
-    -DWITH_CYCLES_ONEAPI_BINARIES=ON \
-%endif
-    -DWITH_OPENCOLLADA=OFF \
     -DWITH_LIBS_PRECOMPILED=OFF \
-    -DWITH_SYSTEM_GLOG=ON \
-    -W no-dev
+    -Wno-dev
 
 %cmake_build
 
 %install
 %cmake_install
 
-# Additional installs
+# RPM macros
 mkdir -p %{buildroot}%{macrosdir}
-install -pm 644 %{SOURCE1} %{buildroot}%{macrosdir}/macros.%{name}
-sed -i 's/@VERSION@/%{blender_api}/g' %{buildroot}%{macrosdir}/macros.%{name}
+install -pm 0644 %{SOURCE1} %{buildroot}%{macrosdir}/macros.%{name}
+sed -i 's/@VERSION@/%{blender_api}/g' \
+    %{buildroot}%{macrosdir}/macros.%{name}
 
 # Metainfo
-install -p -m 644 -D release/freedesktop/org.%{name}.Blender.metainfo.xml \
-          %{buildroot}%{_metainfodir}/org.%{name}.Blender.metainfo.xml
+install -pm 0644 -D \
+    release/freedesktop/org.%{name}.Blender.metainfo.xml \
+    %{buildroot}%{_metainfodir}/org.%{name}.Blender.metainfo.xml
 
-# Localization and cleanup
-%fdupes %{buildroot}%{_datadir}/%{name}/%{blender_api}/
+# Localization
 %find_lang %{name}
-find %{buildroot}%{_datadir}/%{name}/%{blender_api}/scripts -name "*.py" -exec chmod 755 {} \;
-rm -rf %{buildroot}%{_docdir}/%{name}/*
+
+# Remove documentation installed by upstream; packaged from sources instead
+rm -rf %{buildroot}%{_docdir}/%{name}
+
+# Deduplicate installed Blender data
+%fdupes %{buildroot}%{_datadir}/%{name}/%{blender_api}
 
 %check
 desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
@@ -476,10 +515,30 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/org.%{name}.Bl
 %doc release/text/readme.html
 %{_bindir}/%{name}{,-thumbnailer}
 %{_datadir}/applications/%{name}.desktop
-%{_datadir}/%{name}/%{blender_api}/
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/%{blender_api}
+%dir %{_datadir}/%{name}/%{blender_api}/datafiles
+%{_datadir}/%{name}/%{blender_api}/datafiles/assets/
+%{_datadir}/%{name}/%{blender_api}/datafiles/colormanagement/
+%{_datadir}/%{name}/%{blender_api}/datafiles/fonts/
+%{_datadir}/%{name}/%{blender_api}/datafiles/icons/
+%dir %{_datadir}/%{name}/%{blender_api}/datafiles/locale
+%{_datadir}/%{name}/%{blender_api}/datafiles/locale/languages
+%dir %{_datadir}/%{name}/%{blender_api}/datafiles/locale/*/
+%dir %{_datadir}/%{name}/%{blender_api}/datafiles/locale/*/LC_MESSAGES/
+%{_datadir}/%{name}/%{blender_api}/datafiles/studiolights/
+%{_datadir}/%{name}/%{blender_api}/extensions/
+%{_datadir}/%{name}/%{blender_api}/scripts/
+%if %{with draco}
+# Blender deliberately installs the glTF Draco bridge below /usr/lib rather
+# than the multilib library directory.
+%{_prefix}/lib/%{name}/
+%endif
 %{_datadir}/icons/hicolor/*/apps/%{name}*.*
 %{_metainfodir}/org.%{name}.Blender.metainfo.xml
-%{?with_manpage:%{_mandir}/man1/%{name}.*}
+%if %{with manpage}
+%{_mandir}/man1/%{name}.1*
+%endif
 
 %files rpm-macros
 %{macrosdir}/macros.%{name}

             reply	other threads:[~2026-09-21 23:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-21 23:39 Luya Tshimbalanga [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-09-22  0:00 [rpms/blender] f45: Merge branch 'rawhide' into f45 Luya Tshimbalanga
2026-09-20  2:19 Luya Tshimbalanga

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=179003398599.1.2345730716754504145.rpms-blender-5fcda5a9c62f@fedoraproject.org \
    --to=luya@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox