# TODO:
# - enable internalization support (BR libftgl)
-# - libsolid/libqhull/libode BR ?
+# - DRACO (requires WITH_PYTHON_INSTALL?)
+# - OSL, Cycles
+# - Alembic
+# - USD
+# - OpenImageDenoise
+# - OpenSubdiv
+# - OptiX >= 7.3.0
+# - NanoVDB
+# - OpenPGL
+#
+# Conditional build:
+%bcond_without openvdb # OpenVDB support
+
Summary: 3D modeling, rendering, animation and game creation package
Summary(pl.UTF-8): Pakiet do tworzenia animacji 3D oraz gier
Name: blender
-Version: 2.46
-Release: 3
-License: GPL
+# beware: don't use 3.3.17+, they have all the libs packaged (0.5GB compressed)
+Version: 3.6.11
+Release: 1
+License: GPL v2+
Group: X11/Applications/Graphics
-Source0: http://download.blender.org/source/%{name}-%{version}.tar.gz
-# Source0-md5: e90543a5ca5db8b04498ab0abe7bbd2c
-Source1: %{name}.desktop
-Source2: %{name}.png
-Source4: %{name}-wrapper
-Source5: %{name}.manpage
-Patch0: %{name}-po_and_locale_names.patch
-Patch1: %{name}-noxml-yafray.patch
-URL: http://www.blender.org/
+Source0: https://download.blender.org/source/%{name}-%{version}.tar.xz
+# Source0-md5: 32ec8c8403ead5e843edc1a26bdecb03
+Patch0: %{name}-2.76-droid.patch
+Patch1: format-security.patch
+URL: https://www.blender.org/
+BuildRequires: OpenAL-devel
+BuildRequires: OpenCOLLADA-devel
+BuildRequires: OpenColorIO-devel >= 2.0.0
BuildRequires: OpenEXR-devel
BuildRequires: OpenGL-devel
-BuildRequires: SDL-devel
-BuildRequires: gcc >= 5:3.4.0
-BuildRequires: ffmpeg-devel
+BuildRequires: OpenGL-GLU-devel
+BuildRequires: OpenImageIO-devel
+BuildRequires: OpenXR-devel
+BuildRequires: SDL2-devel
+BuildRequires: boost-devel >= 1.48
+BuildRequires: cmake >= 3.10
+BuildRequires: embree-devel >= 3.8.0
+BuildRequires: ffmpeg-devel >= 0.4.9-4.20080930.1
+BuildRequires: fftw3-devel >= 3
BuildRequires: freealut-devel
-BuildRequires: freetype-devel
+BuildRequires: freetype-devel >= 2
BuildRequires: ftgl-devel
-BuildRequires: gettext-devel
-#BuildRequires: esound-devel
+BuildRequires: gcc >= 5:3.4.0
+BuildRequires: gettext-tools
+BuildRequires: gmp-devel
+BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: jemalloc-devel
+BuildRequires: libdecor-devel >= 0.1
+BuildRequires: libepoxy-devel
+BuildRequires: libgomp-devel
+BuildRequires: libharu-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
+BuildRequires: libsndfile-devel
+BuildRequires: libspnav-devel
BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
-BuildRequires: libtool
BuildRequires: libvorbis-devel
+BuildRequires: libwebp-devel
+BuildRequires: libxml2-devel >= 2.0
+BuildRequires: openjpeg2-devel >= 2
+%{?with_openvdb:BuildRequires: openvdb-devel}
BuildRequires: openssl-devel >= 0.9.7d
-BuildRequires: python-devel >= 1:2.3
-BuildRequires: rpmbuild(macros) >= 1.385
-BuildRequires: scons
+BuildRequires: pcre-devel
+BuildRequires: pkgconfig
+BuildRequires: potrace-devel
+BuildRequires: pugixml-devel
+BuildRequires: pulseaudio-devel
+BuildRequires: python3 >= 1:3.10
+BuildRequires: python3-devel >= 1:3.10
+BuildRequires: python3-numpy-devel
+BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.605
BuildRequires: sed >= 4.0
-#BuildRequires: smpeg-devel
+BuildRequires: tar >= 1:1.22
+BuildRequires: tbb-devel
+# wayland-client, wayland-cursor, wayland-scanner
+BuildRequires: wayland-devel >= 1.12
+BuildRequires: wayland-egl-devel
+BuildRequires: wayland-protocols >= 1.31
+BuildRequires: xorg-lib-libX11-devel
+BuildRequires: xorg-lib-libXext-devel
+BuildRequires: xorg-lib-libXi-devel
+BuildRequires: xorg-lib-libxkbcommon-devel
+BuildRequires: xz
BuildRequires: zlib-devel
+BuildRequires: zstd-devel
Requires(post,postun): desktop-file-utils
Requires: OpenGL
-Requires: freetype
-Requires: python-modules
+Requires: python3-modules >= 1:3.10
+ExclusiveArch: %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _noautoreqdep libGL.so.1 libGLU.so.1
-
%description
Blender is a free and fully functional 3D modeling, rendering,
animation and game creation package for Unix, Windows and BeOS
%patch0 -p1
%patch1 -p1
-rm -f missing
-rm -f user-config.py
-rm -rf bin/.blender/locale
-
-RPMCFLAGS="\"`echo %{rpmcflags}|sed 's/ /\",\"/g'`\""
-RPMLDFLAGS="\"`echo %{rpmldflags}|sed 's/ /\",\"/g'`\""
-
-cat > user-config.py <<END
-CCFLAGS = [$RPMCFLAGS, "-funsigned-char", "-fPIC"]
-CXXFLAGS = [$RPMCFLAGS, "-funsigned-char", "-fPIC"]
-LDFLAGS = [$RPMLDFLAGS]
-TARGET_CC = '%{__cc}'
-TARGET_CXX = '%{__cxx}'
-
-BF_PYTHON_VERSION = '%{py_ver}'
-
-BF_FFMPEG = '/usr'
-BF_FFMPEG_INC = '%{_includedir}/ffmpeg'
-BF_FFMPEG_LIBPATH = '%{_libdir}'
-BF_FFMPEG_LIB = 'avformat avcodec swscale avutil'
-
-LCGDIR = 'lib/linux2'
-BF_BUILDDIR = 'build/linux2'
-BF_INSTALLDIR = 'install/linux2'
-END
+# /usr/bin/env python3
+%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' \
+ scripts/addons/io_curve_svg/svg_util_test.py \
+ scripts/addons/io_scene_fbx/fbx2json.py \
+ scripts/addons/io_scene_fbx/json2fbx.py \
+ scripts/modules/bl_i18n_utils/merge_po.py \
+ scripts/modules/bl_i18n_utils/utils_rtl.py \
+ scripts/modules/blend_render_info.py
%build
-%scons BF_OPENGL_LIBPATH=%{_x_libraries}
-%{__make} -C po OCGDIR=..
-
-install -d release/plugins/include
-install source/blender/blenpluginapi/*.h release/plugins/include
-chmod +x release/plugins/bmake
-%{__make} -C release/plugins/
+install -d build
+cd build
+%cmake \
+ -DBOOST_ROOT=%{_prefix} \
+ -DBUILD_SHARED_LIBS:BOOL=OFF \
+ -DCMAKE_SKIP_RPATH:BOOL=ON \
+ -DPYTHON_VERSION:STRING=%{py3_ver} \
+ -DWITH_CODEC_FFMPEG:BOOL=ON \
+ -DWITH_CODEC_SNDFILE:BOOL=ON \
+ -DWITH_CXX_GUARDEDALLOC:BOOL=OFF \
+ -DWITH_CYCLES:BOOL=ON \
+ -DWITH_FFTW3:BOOL=ON \
+ -DWITH_IMAGE_OPENJPEG:BOOL=ON \
+ -DWITH_INPUT_NDOF:BOOL=ON \
+ -DWITH_INSTALL_PORTABLE:BOOL=OFF \
+ -DWITH_JACK:BOOL=ON \
+ -DWITH_JACK_DYNLOAD:BOOL=ON \
+ -DWITH_MEM_JEMALLOC:BOOL=ON \
+ -DWITH_MOD_OCEANSIM:BOOL=ON \
+ -DWITH_OPENCOLLADA:BOOL=ON \
+ -DWITH_OPENCOLORIO:BOOL=ON \
+ %{!?with_openvdb:-DWITH_OPENVDB:BOOL=OFF} \
+ -DWITH_PYTHON:BOOL=ON \
+ -DWITH_PYTHON_INSTALL:BOOL=OFF \
+ -DWITH_PYTHON_SAFETY:BOOL=ON \
+ -DWITH_SDL:BOOL=ON \
+ -DWITH_SDL_DYNLOAD:BOOL=ON \
+ ..
+
+%{__make} V=1
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_datadir},%{_desktopdir},%{_pixmapsdir},%{_bindir}} \
- $RPM_BUILD_ROOT%{_datadir}/blender/bpydata
+install -d $RPM_BUILD_ROOT{%{_desktopdir},%{_pixmapsdir},%{_mandir}/man1}
+
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
-install ./install/linux2/blender $RPM_BUILD_ROOT%{_bindir}/blender-bin
-install %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/blender
-#install blenderplayer $RPM_BUILD_ROOT%{_bindir}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_desktopdir}
-install %{SOURCE2} $RPM_BUILD_ROOT%{_pixmapsdir}
-install -d $RPM_BUILD_ROOT%{_libdir}/blender/plugins/sequence
-install -d $RPM_BUILD_ROOT%{_libdir}/blender/plugins/texture
-install ./release/plugins/sequence/*.so $RPM_BUILD_ROOT%{_libdir}/blender/plugins/sequence
-install ./release/plugins/texture/*.so $RPM_BUILD_ROOT%{_libdir}/blender/plugins/texture
-install -d $RPM_BUILD_ROOT%{_datadir}/blender
-cp -aR ./release/scripts $RPM_BUILD_ROOT%{_datadir}/blender
-install ./release/VERSION $RPM_BUILD_ROOT%{_datadir}/blender
-install ./bin/.blender/.Blanguages $RPM_BUILD_ROOT%{_datadir}/blender
-install ./bin/.blender/.bfont.ttf $RPM_BUILD_ROOT%{_datadir}/blender
-cp -a bin/.blender/locale $RPM_BUILD_ROOT%{_datadir}
-install -d $RPM_BUILD_ROOT%{_mandir}/man1
-install %{SOURCE5} $RPM_BUILD_ROOT%{_mandir}/man1/blender.1
+./doc/manpage/blender.1.py \
+ --blender $RPM_BUILD_ROOT%{_bindir}/blender \
+ --output $RPM_BUILD_ROOT%{_mandir}/man1/blender.1
-%find_lang %{name}
+#%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
%postun
%update_desktop_database_postun
-%files -f %{name}.lang
+%files
%defattr(644,root,root,755)
-%doc README doc/bf-members.txt doc/python-dev-guide.txt doc/oldbugs.txt doc/interface_API.txt
-%doc release/text/{blender.html,release*.txt}
-%attr(755,root,root) %{_bindir}/*
+# -f %{name}.lang
+%doc doc/license/bf-members.txt doc/guides/*.txt
+%attr(755,root,root) %{_bindir}/blender
+%attr(755,root,root) %{_bindir}/blender-thumbnailer
%attr(755,root,root) %{_datadir}/%{name}
-%attr(755,root,root) %{_libdir}/%{name}
-%{_desktopdir}/*.desktop
-%{_pixmapsdir}/*.png
-%{_mandir}/man1/*
+%{_desktopdir}/blender.desktop
+%{_iconsdir}/hicolor/scalable/apps/blender.svg
+%{_iconsdir}/hicolor/symbolic/apps/blender-symbolic.svg
+%{_mandir}/man1/blender.1*