## START: Set by rpmautospec ## (rpmautospec version 0.3.0) %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 11; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %global blender_api 3.4 %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) %bcond_with clang %bcond_without draco # Needed to enable osl support for cycles rendering %bcond_without llvm %bcond_without openshading %bcond_with sdl %bcond_without system_eigen3 %bcond_without wayland %ifarch x86_64 || aarch64 || ppc64le %global cyclesflag ON # Only available on x86_64 and aarch64 %ifarch x86_64 || aarch64 %bcond_without embree %bcond_without hidapi %ifarch x86_64 %bcond_without oidn %bcond_without opgl %endif %bcond_without usd %else %bcond_with embree %bcond_with hidapi %bcond_with oidn %bcond_with opgl %bcond_with usd %endif %else %global cyclesflag OFF %endif Name: blender Epoch: 1 Version: 3.4.1 Release: %autorelease Summary: 3D modeling, animation, rendering and post-production License: GPL-2.0-or-later URL: https://www.blender.org Source0: https://download.%{name}.org/source/%{name}-%{version}.tar.xz Source1: macros.%{name} # Include missing pyconfig header for 3.10 Patch: %{name}-usd-pythonlibs-fix.diff # Include missing system error from GCC 13+ # https://developer.blender.org/D17151 Patch: %{name}-include-system-error-library.diff # Development stuff BuildRequires: boost-devel BuildRequires: ccache %if %{with clang} BuildRequires: clang %endif %if %{with llvm} BuildRequires: llvm-devel %endif BuildRequires: cmake BuildRequires: desktop-file-utils BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: git-core BuildRequires: libharu-devel BuildRequires: libtool BuildRequires: ninja-build BuildRequires: pkgconfig(blosc) %if %{with system_eigen3} BuildRequires: pkgconfig(eigen3) %endif BuildRequires: pkgconfig(epoxy) >= 1.5.10 BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(gmp) %if %{with hidapi} BuildRequires: pkgconfig(hidapi-hidraw) %endif BuildRequires: pkgconfig(jemalloc) BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(pugixml) BuildRequires: pkgconfig(python3) >= 3.7 %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: python3dist(cython) BuildRequires: python3dist(idna) BuildRequires: python3dist(numpy) BuildRequires: python3dist(requests) BuildRequires: python3dist(setuptools) BuildRequires: python3dist(zstandard) BuildRequires: subversion-devel # Compression stuff BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(lzo2) BuildRequires: pkgconfig(zlib) BuildRequires: pkgconfig(libzstd) # 3D modeling stuff BuildRequires: cmake(ceres) %if %{with embree} BuildRequires: cmake(embree) %endif BuildRequires: opensubdiv-devel >= 3.4.4 %if %{with openshading} # Use oslc compiler BuildRequires: openshadinglanguage-common-headers >= 1.12.6.2 BuildRequires: pkgconfig(oslcomp) %endif %if %{with oidn} BuildRequires: cmake(OpenImageDenoise) %endif %if %{with opgl} BuildRequires: openpgl-devel %endif BuildRequires: openCOLLADA-devel >= svn825 BuildRequires: pkgconfig(fftw3) BuildRequires: pkgconfig(ftgl) BuildRequires: pkgconfig(glut) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glu) BuildRequires: openxr-libs BuildRequires: pkgconfig(openxr) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(ode) BuildRequires: pkgconfig(sdl2) %if %{with usd} BuildRequires: usd-devel %endif BuildRequires: pkgconfig(xproto) # Picture/Video stuff BuildRequires: cmake(Alembic) BuildRequires: ffmpeg-free-devel >= 5.1.2 BuildRequires: lame-devel BuildRequires: libspnav-devel BuildRequires: openvdb-devel BuildRequires: pkgconfig(libavdevice) BuildRequires: pkgconfig(libavformat) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libtiff-4) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(theora) BuildRequires: pkgconfig(vpx) # OpenColorIO 2 and up required BuildRequires: pkgconfig(OpenColorIO) > 1 BuildRequires: cmake(Imath) BuildRequires: cmake(OpenEXR) BuildRequires: pkgconfig(OpenImageIO) BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(tbb) BuildRequires: potrace-devel # Audio stuff BuildRequires: pkgconfig(ao) BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(freealut) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(samplerate) BuildRequires: pkgconfig(sndfile) BuildRequires: pkgconfig(vorbis) # Typography stuff BuildRequires: fontpackages-devel BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(tinyxml) # Appstream stuff BuildRequires: libappstream-glib Requires: google-droid-sans-fonts Requires: hicolor-icon-theme Requires: shared-mime-info Provides: blender(ABI) = %{blender_api} # Obsolete the standalone Blender player retired by upstream Obsoletes: blenderplayer < 1:2.80-1 Provides: blenderplayer = 1:2.80-1 # Obsoletes separate Blender Fonts - rhbz#1889049 Obsoletes: blender-fonts < 1:2.91.0-5 # Starting from 2.90, Blender support only 64-bits architectures ExcludeArch: %{ix86} %{arm} %description Blender is the essential software solution you need for 3D, from modeling, animation, rendering and post-production to interactive creation and playback. Professionals and novices can easily and inexpensively publish stand-alone, secure, multi-platform content to the web, CD-ROMs, and other media. %package rpm-macros Summary: RPM macros to build third-party blender addons packages BuildArch: noarch %description rpm-macros This package provides rpm macros to support the creation of third-party addon packages to extend Blender. %prep %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 # proof) rm -f build_files/cmake/Modules/FindOpenJPEG.cmake # Fix all Python shebangs recursively in . %py3_shebang_fix . # Work around CMake boost module needing the python version to find the library sed -i "s/date_time/date_time python%{python3_version_nodots}/" \ build_files/cmake/platform/platform_unix.cmake %build %cmake \ -G Ninja \ -D_ffmpeg_INCLUDE_DIR=%{_includedir}/ffmpeg \ %if %{with openshading} -D_osl_LIBRARIES=%{_libdir} \ -DOSL_INCLUDE_DIR=%{_includedir} \ -DOSL_COMPILER=%{_bindir}/oslc \ %endif -DBOOST_ROOT=%{_prefix} \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS="%{optflags} -Wl,--as-needed" \ -DCMAKE_CXX_FLAGS="%{optflags} -Wl,--as-needed" \ -DCMAKE_CXX_STANDARD=17 \ -DCMAKE_SKIP_RPATH=ON \ -D_embree_LIBRARIES=%{_prefix} \ -DEMBREE_INCLUDE_DIR=%{_includedir}/embree4 \ -DEMBREE_LIBRARY=%{_lidir}/embree4.so \ -DPYTHON_VERSION=%{python3_version} \ -DWITH_COMPILER_CCACHE=ON \ -DWITH_CYCLES=%{cyclesflag} \ -DWITH_CYCLES_HIP_BINARIES=ON \ %ifnarch x86_64 -DWITH_CYCLES_EMBREE=OFF \ %endif -DWITH_DOC_MANPAGE=ON \ %if %{with draco} -DWITH_DRACO=ON \ %endif %if %{with wayland} -DWITH_GHOST_WAYLAND_DBUS=ON \ %endif -DWITH_INSTALL_PORTABLE=OFF \ -DWITH_PYTHON_INSTALL=OFF \ -DWITH_PYTHON_INSTALL_NUMPY=OFF \ -DWITH_PYTHON_INSTALL_REQUESTS=OFF \ %if %{with sdl} -DWITH_GHOST_SDL=ON \ %endif %if %{with system_eigen3} -DWITH_SYSTEM_EIGEN3=ON \ %endif %if %{with usd} -DUSD_LIBRARY=%{_libdir}/libusd_usd_ms.so \ %else -DWITH_USD=OFF \ %endif -DXR_OPENXR_SDK_LOADER_LIBRARY=%{_libdir}/libopenxr_loader.so.1 %cmake_build %install %cmake_install # 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' %{SOURCE1} > %{buildroot}%{macrosdir}/macros.%{name} # AppData install -p -m 644 -D release/freedesktop/org.%{name}.Blender.appdata.xml \ %{buildroot}%{_metainfodir}/%{name}.appdata.xml # Localization %find_lang %{name} # rpmlint fixes find %{buildroot}%{_datadir}/%{name}/%{blender_api}/scripts -name "*.py" -exec chmod 755 {} \; %check desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{name}.appdata.xml %files -f %{name}.lang %license COPYING %license doc/license/*-license.txt %license release/text/copyright.txt %doc release/text/readme.html %{_bindir}/%{name} %{_bindir}/%{name}-thumbnailer %{_datadir}/applications/%{name}.desktop %exclude %{_datadir}/%{name}/%{blender_api}/datafiles/locale/ %{_datadir}/%{name}/ %{_datadir}/icons/hicolor/*/apps/%{name}*.* %{_mandir}/man1/%{name}.* %{_metainfodir}/%{name}.appdata.xml %files rpm-macros %{macrosdir}/macros.%{name} %changelog * Sun Feb 12 2023 Luya Tshimbalanga 1:3.4.1-11 - Further port to embree4 * Sun Feb 12 2023 Luya Tshimbalanga 1:3.4.1-10 - Port to embree4 * Sat Feb 11 2023 Luya Tshimbalanga 1:3.4.1-9 - Rebuild for embree-4.0.0 * Tue Jan 31 2023 Luya Tshimbalanga 1:3.4.1-8 - Add missing patch fixing include * Mon Jan 30 2023 Luya Tshimbalanga 1:3.4.1-7 - Patch for missing include library due to GCC 13 * Wed Jan 18 2023 Fedora Release Engineering 1:3.4.1-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Sat Jan 14 2023 Orion Poplawski 1:3.4.1-5 - Rebuild for libharu 2.4.3 * Sat Jan 14 2023 Orion Poplawski 1:3.4.1-4 - Drop eigen3 workaround * Fri Jan 13 2023 Richard Shaw 1:3.4.1-3 - Rebuild for OpenColorIO. * Mon Jan 02 2023 Luya Tshimbalanga 1:3.4.1-2 - Rebuild for openvdb 10.0.1 * Sat Dec 24 2022 Luya Tshimbalanga 1:3.4.1-1 - Update to 3.4.1 (#2155366) * Sat Dec 10 2022 Luya Tshimbalanga 1:3.4.0-2 - Enable openpgl support * Fri Dec 09 2022 Luya Tshimbalanga 1:3.4.0-1 - Update to 3.4.0 (#2152009) * Thu Nov 17 2022 Luya Tshimbalanga 1:3.3.1-3 - Enable dbus support * Fri Oct 07 2022 Luya Tshimbalanga 1:3.3.1-1 - Update to 3.3.1 (#2132385) * Wed Sep 14 2022 Luya Tshimbalanga 1:3.3.0-4 - Synchronise all branches * Mon Sep 12 2022 Luya Tshimbalanga 1:3.3.0-2 - Drop end of life release support * Mon Sep 12 2022 Luya Tshimbalanga 1:3.3.0-1 - Update to 3.3.0 (#2125188) * Enable inital wayland support with libdecor * Mon Aug 29 2022 Neal Gompa 1:3.2.2-2 - Rebuild for ffmpeg 5.1 (#2121070) * Thu Aug 04 2022 Benjamin A. Beasley 1:3.2.2-1 - Update to 3.2.2 (close RHBZ#2115219) * Thu Aug 04 2022 Benjamin A. Beasley 1:3.2.1-4 - Update URLs to HTTPS * Wed Jul 20 2022 Fedora Release Engineering 1:3.2.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Mon Jul 11 2022 Luya Tshimbalanga 1:3.2.1-2 - Synchronize release with F35 version * Sat Jul 09 2022 Luya Tshimbalanga 1:3.2.1-1 - local build * Thu Jul 07 2022 Benjamin A. Beasley 1:3.2.0-7 - Replace a downstream patch with an upstream one - Backport upstream commit 378f65f7d9843ea789a66623019163f935af141e as 0004-Fix-Py-driver-byte-code-access-with-Python-3.11.patch, replacing downstream patch 0001-Support-Python-3.11b3.patch * Wed Jul 06 2022 Benjamin A. Beasley 1:3.2.0-6 - Remove trailing whitespace in the spec file * Wed Jul 06 2022 Benjamin A. Beasley 1:3.2.0-5 - Backport Python 3.11 support (close RHBZ#2098675) - Backport the fix for upstream bug T99277 “Fails to compile on Python 3.11b3 due to opaque PyFrameObject”, along with a related commit improving support for Python releases newer than 3.7. - Add an additional patch required for Python 3.11b3 but not for later Python 3.11 pre-releases. This is downstream-only for now, but the concept was suggested upstream as a potential general improvement. * Tue Jun 28 2022 Python Maint 1:3.2.0-4 - Rebuilt for Python 3.11 * Fri Jun 10 2022 Luya Tshimbalanga 1:3.2.0-3 - Enable ffpmeg support * Thu Jun 09 2022 Luya Tshimbalanga 1:3.2.0-2 - Revert deleted pythonlibs-fix * Thu Jun 09 2022 Luya Tshimbalanga 1:3.2.0-1 - Update to 3.2.0 (#2094907) * Wed Jun 01 2022 Benjamin A. Beasley 1:3.1.2-6 - Rebuild for usd-22.05a * Fri May 20 2022 Sandro Mani 1:3.1.2-5 - Rebuild for gdal-3.5.0 and/or openjpeg-2.5.0 * Wed May 04 2022 Thomas Rodgers 1:3.1.2-4 - Rebuilt for Boost 1.78 * Sun Apr 10 2022 Benjamin A. Beasley 1:3.1.2-3 - BR usd-devel instead of cmake(pxr) * Fri Apr 01 2022 Fedora Release Monitoring 1:3.1.2-1 - Update to 3.1.2 (#2070344) * Fri Apr 01 2022 Fedora Release Monitoring 1:3.1.1-1 - Update to 3.1.1 (#2070344) * Sun Mar 13 2022 Luya Tshimbalanga 1:3.1.0-7 - Rebuild to sync with Fedora 35 version * Sun Mar 13 2022 Luya Tshimbalanga 1:3.1.0-6 - Rebuild * Sat Mar 12 2022 Luya Tshimbalanga 1:3.1.0-5 - Empty commit * Sat Mar 12 2022 Luya Tshimbalanga 1:3.1.0-4 - Bump release to sync with f35 version * Sat Mar 12 2022 Luya Tshimbalanga 1:3.1.0-3 - oidn support only for x86_64 arch * Sat Mar 12 2022 Luya Tshimbalanga 1:3.1.0-2 - Reenable USD support * Thu Mar 10 2022 Luya Tshimbalanga 1:3.1.0-1 - Update to blender 3.1.0 Dropped some no longer needed patches * Mon Feb 28 2022 Luya Tshimbalanga 1:3.0.1-2 - Bump release * Tue Feb 22 2022 Luya Tshimbalanga 1:3.0.1-1 - Update to blender 3.0.1 (#2046570) * Sun Feb 20 2022 Mamoru TASAKA 1:3.0.0-4 - Kill package_note for now because of unknown linkage error * Wed Jan 19 2022 Fedora Release Engineering 1:3.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Dec 10 2021 Luya Tshimbalanga 1:3.0.0-2 - Update Blender to 3.0.0 and remove unused patch * Thu Dec 09 2021 Luya Tshimbalanga 1:3.0.0-1 - local build * Sat Nov 27 2021 Luya Tshimbalanga 1:2.93.6-1 - Update to 2.93.6 with enabled NanoVDB support * Sat Nov 27 2021 Mamoru TASAKA 1:2.93.5-2 - Fix s390x LTO issue on makesrna: force alignment on DNAstr definition in makesdna.c (upstream T93425) (bug 1874398) * Thu Oct 07 2021 Luya Tshimbalanga 1:2.93.5-1 - Update to 2.93.5 (#2011379) * Wed Oct 06 2021 Richard Shaw 1:2.93.4-5 - Add patch for OIIO 2.3+. * Tue Oct 05 2021 Richard Shaw 1:2.93.4-4 - Rebuild for OpenImageIO 2.3.8.0. * Wed Sep 29 2021 Zbigniew Jędrzejewski-Szmek 1:2.93.4-3 - Rebuild again for alembic 1.8.3 * Sun Sep 12 2021 Luya Tshimbalanga 1:2.93.4-2 - Rebuild for alembic 1.8.3 * Fri Sep 03 2021 Luya Tshimbalanga 1:2.93.4-1 - Update to 2.93.4 (#2000369) Disable osl due to segmentation fault Remove unused patches and macros Resolves rhbz##2000369 * Wed Sep 01 2021 Richard Shaw 1:2.93.3-9 - Rebuild for OpenColorIO 2.1. * Thu Aug 26 2021 Miro Hrončok 1:2.93.3-8 - Fix a typo in shared-mime-info, fixes rhbz#1997840 * Tue Aug 24 2021 Richard Shaw 1:2.93.3-7 - Spec file tweaks * Tue Aug 24 2021 Richard Shaw 1:2.93.3-6 - Forgot git commit -a... * Tue Aug 24 2021 Richard Shaw 1:2.93.3-5 - Multiple build problem fixes: * Tue Aug 24 2021 Richard Shaw 1:2.93.3-4 - Try workaround for Eigen3 power10 vs Fedora power8 issue. * Tue Aug 24 2021 Richard Shaw 1:2.93.3-3 - Rebuild for OpenColorIO 2. * Sun Aug 22 2021 Luya Tshimbalanga 1:2.93.3-2 - Various fixes Fix USD support Enable OSL support for x64 architecture * Thu Aug 19 2021 Nicolas Chauvet 1:2.93.3-1 - Update to 2.93.3 * Tue Aug 17 2021 Richard Shaw 1:2.93.1-2 - Add minimal patch for OpenEXR/Imath 3 compatibility.