Sisyphus
: 1 2023 | : 18631 | : 33714579
en ru br
ALT
S:3.6.3-alt1
5.1: 2.49b-alt1
4.1: 2.45-alt2.2.1.qa1
4.0: 2.45-alt0.M40.2
3.0: 2.36-alt1.1
www.altlinux.org/Changes

Upstream:2.45

::
: blender

             Sources      Gear   Bugs and FR  Repocop 

%define _unpackaged_files_terminate_build 1
%define _stripped_files_terminate_build 1
%set_verify_elf_method strict,lint=relaxed
%define git %nil

%def_with docs

%ifarch aarch64 x86_64 %e2k
%def_with embree
%else
%def_without embree
%endif

%ifarch x86_64
%def_with hip
%def_with hiprt
%else
%def_without hip
%def_without hiprt
%endif

%ifarch x86_64 aarch64
%def_with openpgl
%else
%def_without openpgl
%endif

%ifarch x86_64 ppc64le
%def_with lld
# lld doesn't know about gcc lto=auto flags
# and gcc doesn't know what to do with lto=thin
%define optflags_lto %nil
%else
%def_without lld
%endif

%ifarch %e2k
# error: cpio archive too big - 4690M
%define optflags_debug -g0
%endif

%def_with jemalloc

Name: blender
Version: 3.6.3
Release: alt1
Summary: 3D modeling, animation, rendering and post-production
License: GPL-3.0-or-later
Group: Graphics
URL: https://www.blender.org

# Blender doesn't officially support 32-bit build since 2.80. See also:

# https://developer.blender.org/T67184
ExcludeArch: %ix86 %arm

# git://git.blender.org/blender.git

Source: %name-%version.tar

# git submodules

# before updating submodules via script don't forget
# to update relative submodule paths into absolute ones
Source1: %name-%version-release-scripts-addons_contrib.tar
Source2: %name-%version-release-scripts-addons.tar

Patch21: blender-2.66-alt-pcre.patch
Patch22: blender-2.77-alt-enable-localization.patch
Patch23: blender-2.92-alt-include-deduplication-check-skip.patch
Patch24: blender-2.80-alt-use-system-glog.patch
# TODO not sure we need this patch
Patch25: blender-2.90.0-alt-embree-components.patch
Patch26: blender-3.0.0-alt-doc.patch
Patch27: blender-2.90-alt-non-x86_64-linking.patch
Patch28: blender-2.93.0-suse-reproducible.patch
Patch29: blender-alt-fix-clang-linking.patch
Patch30: blender-3.4.1-gcc-13-fix.patch
Patch31: blender-3.6.0-alt-remove-python2-dependency.patch
Patch32: blender-3.6.3-alt-hiprt-enable.patch

Patch2000: blender-e2k-support.patch

# Fixes from main

Patch300: 0001-Cycles-Fix-MNEE-not-accounting-for-closure-Fresnel.patch

BuildRequires(pre): rpm-build-python3
BuildRequires: boost-filesystem-devel boost-locale-devel
BuildRequires: cmake gcc-c++
BuildRequires: libGLEW-devel libXi-devel
BuildRequires: libavdevice-devel libavformat-devel libavfilter-devel libswresample-devel
BuildRequires: libfftw3-devel libjack-devel libopenal-devel libsndfile-devel
BuildRequires: libjpeg-devel pkgconfig(libopenjp2) libpng-devel libtiff-devel libpcre-devel libswscale-devel libxml2-devel
BuildRequires: liblzo2-devel
BuildRequires: libopenCOLLADA-devel >= 0-alt3
BuildRequires: python3-devel
BuildRequires: libnumpy-py3-devel
BuildRequires: libopenimageio-devel
BuildRequires: libopencolorio2.2-devel
BuildRequires: openexr-devel
BuildRequires: imath-devel
BuildRequires: libpugixml-devel
BuildRequires: libglog-devel libgflags-devel eigen3-devel
BuildRequires: libXxf86vm-devel libXrender-devel
BuildRequires: tbb-devel
BuildRequires: libfreetype-devel
# Remove following dependency when libopenjpeg2.0-devel is fixed
BuildRequires: openjpeg-tools2.0
BuildRequires: alembic-devel
BuildRequires: openvdb-devel libblosc-devel
BuildRequires: llvm-devel clang-devel
BuildRequires: libgomp-devel
BuildRequires: libgmp-devel libgmpxx-devel
BuildRequires: libharu-devel
BuildRequires: libpulseaudio-devel
BuildRequires: libpotrace-devel
BuildRequires: openshadinglanguage-devel
BuildRequires: opensubdiv-devel
BuildRequires: libzstd-devel
BuildRequires: libepoxy-devel
BuildRequires: libwayland-egl-devel wayland-protocols libwayland-cursor-devel libxkbcommon-devel libdecor-devel
BuildRequires: libvulkan-devel
%ifarch x86_64
BuildRequires: openimagedenoise-devel
%endif
%ifarch aarch64
BuildRequires: sse2neon-devel
%endif

%if_with embree
BuildRequires: embree-devel
%endif

%if_with jemalloc
BuildRequires: libjemalloc-devel
%endif

%if_with docs
BuildRequires: /usr/bin/doxygen
BuildRequires: python3-module-sphinx python3-module-sphinx-sphinx-build-symlink python3-module-sphinx_rtd_theme
%endif

%if_with lld
BuildRequires: lld
%endif

%if_with hip
BuildRequires: hip-devel
%endif

%if_with hiprt
BuildRequires: hiprt-devel
%endif

%if_with openpgl
BuildRequires: openpgl-devel
%endif

%add_python3_path %_datadir/%name/scripts
%add_python3_req_skip _bpy
%add_python3_req_skip _bpy_path
%add_python3_req_skip _cycles
%add_python3_req_skip _freestyle
%add_python3_req_skip bgl
%add_python3_req_skip blend
%add_python3_req_skip blf
%add_python3_req_skip idprop.types
%add_python3_req_skip gpu
%add_python3_req_skip io_scene_gltf2.blender.com
%add_python3_req_skip io_scene_gltf2.blender.exp
%add_python3_req_skip io_scene_gltf2.io.com
%add_python3_req_skip io_scene_gltf2.io.exp
%add_python3_req_skip mathutils
%add_python3_req_skip mathutils.bvhtree
%add_python3_req_skip mathutils.geometry
%add_python3_req_skip mathutils.noise
%add_python3_req_skip oscurart_tools.files
%add_python3_req_skip oscurart_tools.mesh
%add_python3_req_skip oscurart_tools.object
%add_python3_req_skip oscurart_tools.render
%add_python3_req_skip setuptools
%add_python3_req_skip bmesh
%add_python3_req_skip bpy.app.handlers
%add_python3_req_skip bpy.app.translations
%add_python3_req_skip bpy.props
%add_python3_req_skip bpy.types

AutoProv: no

Obsoletes: %name-i18n

%description
Fully integrated creation suite, offering a broad range of essential
tools for the creation of 3D content, including modeling, uv-mapping,
texturing, rigging, skinning, animation, particle and other simulation,
scripting, rendering, compositing, post-production and game creation

%description -l ru_RU.UTF-8
Полностью интегрированный пакет разработки, предлагающий широкий
выбор инструментов необходимых для создания 3D-графики. Включает
средства моделирования, анимации, рендеринга, постобработки видео,
а также создания интерактивных игр. Пакет имеет такие функции,
как динамика твердых тел, жидкостей и мягких тел, систему горячих
клавиш, большое количество легко доступных расширений, написанных
на языке Python.

%package doc
Summary: Documentation for Blender
Group: Documentation
Requires: %name = %EVR

%description doc
Fully integrated creation suite, offering a broad range of essential
tools for the creation of 3D content, including modeling, uv-mapping,
texturing, rigging, skinning, animation, particle and other simulation,
scripting, rendering, compositing, post-production and game creation.

This package contains documentation for Blender.

%description doc -l ru_RU.UTF-8
Полностью интегрированный пакет разработки, предлагающий широкий
выбор инструментов необходимых для создания 3D-графики. Включает
средства моделирования, анимации, рендеринга, постобработки видео,
а также создания интерактивных игр. Пакет имеет такие функции,
как динамика твердых тел, жидкостей и мягких тел, систему горячих
клавиш, большое количество легко доступных расширений, написанных
на языке Python.

Данный пакет содержит документацию для Blender.

%if_with hip
%package cycles-hip-kernels
Summary: Cycles precompiled binaries for HIP
Group: System/Libraries
Requires: %name = %EVR, hip-runtime-amd
%if_with hiprt
Requires: libhiprt
%endif

%description cycles-hip-kernels
Precompiled GPU binaries for GPU accelerated rendering with Cycles on various
graphics cards.

This package contains binaries for AMD GPUs to use with HIP.
%endif

%prep
%setup -a1 -a2

%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
#%%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%patch31 -p1
%patch32 -p1

%ifarch %e2k
%patch2000 -p1
# lcc 1.25.15's EDG bug would fail building OPENVDB+TBB otherwise
sed -i "/-Werror=return-type/d" CMakeLists.txt
sed -i 's/"${CMAKE_C_COMPILER_VERSION}" VERSION_LESS/"100" VERSION_LESS/' CMakeLists.txt
%endif

%patch300 -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

# Remove bundled libraries which must not be used instead of system ones

rm -rf extern/{Eigen3,glew,lzo,gflags,glog}

%build
BUILD_DATE="$(stat -c '%%y' '%SOURCE0' | date -f - '+%%Y-%%m-%%d')"
BUILD_TIME="$(stat -c '%%y' '%SOURCE0' | date -f - '+%%H:%%M:%%S')"

# needed due to non-standard location of pcre.h header

%add_optflags "-I%_includedir/pcre"

%add_optflags -fPIC -funsigned-char -fno-strict-aliasing

%ifarch aarch64
# limit build jobs on aarch64
if [ %__nprocs -gt 48 ] ; then
export NPROCS=48
fi
%endif
%cmake \
%if_with hip
-DWITH_CYCLES_HIP_BINARIES:BOOL=ON \
%endif #hip
%if_with hiprt
-DHIPRT_ROOT_DIR=/usr \
-DWITH_CYCLES_DEVICE_HIPRT:BOOL=ON \
%endif #hiprt
-DBUILD_SHARED_LIBS=OFF \
-DWITH_ALEMBIC:BOOL=ON \
-DWITH_FFTW3=ON \
-DWITH_JACK=ON \
-DWITH_CODEC_SNDFILE=ON \
-DWITH_IMAGE_OPENJPEG=ON \
-DWITH_PYTHON=ON \
-DWITH_PYTHON_INSTALL=OFF \
-DWITH_CODEC_FFMPEG=ON \
-DWITH_CXX_GUARDEDALLOC=OFF \
-DWITH_INSTALL_PORTABLE=OFF \
-DWITH_LLVM=ON \
-DWITH_CLANG=ON \
-DWITH_PYTHON_SAFETY=OFF \
-DWITH_OPENMP=ON \
-DWITH_OPENCOLLADA=ON \
-DWITH_CYCLES=ON \
%if_with embree
-DEMBREE_ROOT_DIR=%_prefix \
-DWITH_CYCLES_EMBREE:BOOL=ON \
%else
-DWITH_CYCLES_EMBREE:BOOL=OFF \
%endif
-DWITH_OPENCOLORIO=ON \
-DWITH_OPENIMAGEIO=ON \
-DWITH_OPENVDB:BOOL=ON \
-DWITH_OPENVDB_BLOSC:BOOL=ON \
-DWITH_SYSTEM_GLEW=ON \
-DWITH_SYSTEM_LZO=ON \
-DWITH_SYSTEM_EIGEN3:BOOL=ON \
-DWITH_SYSTEM_GFLAGS:BOOL=ON \
-DWITH_SYSTEM_GLOG:BOOL=ON \
-DWITH_IMAGE_OPENEXR=ON \
-DWITH_TBB:BOOL=ON \
-DPYTHON_VERSION="%_python3_version" \
-DBUILDINFO_OVERRIDE_DATE="$BUILD_DATE" \
-DBUILDINFO_OVERRIDE_TIME="$BUILD_TIME" \
-DWITH_DOC_MANPAGE:BOOL=ON \
-DWITH_ASSERT_ABORT:BOOL=OFF \
-DWITH_LINKER_GOLD:BOOL=OFF \
-DWITH_OPENSUBDIV:BOOL=ON \
%if_with lld
-DWITH_LINKER_LLD:BOOL=ON \
-DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,--build-id=sha1" \
-DCMAKE_SHARED_LINKER_FLAGS:STRING="-Wl,--build-id=sha1" \
-DCMAKE_MODULE_LINKER_FLAGS:STRING="-Wl,--build-id=sha1" \
%endif
-DOPENEXR_INCLUDE_DIRS=%_includedir/OpenEXR \
%nil

%cmake_build

%if_with docs
pushd doc/doxygen
doxygen -u Doxyfile
doxygen
popd
%endif

%install
%cmake_install

mkdir -p %buildroot%_datadir/metainfo
install -m644 release/freedesktop/*.appdata.xml %buildroot%_datadir/metainfo/

%files
%_bindir/*
%_desktopdir/*
%_iconsdir/hicolor/scalable/apps/%name.svg
%_iconsdir/hicolor/symbolic/apps/%name-symbolic.svg
%_datadir/%name/
%if_with hip
%exclude %dir %_datadir/%name/*/scripts/addons/cycles/lib
%exclude %_datadir/%name/*/scripts/addons/cycles/lib/kernel_gfx*.fatbin
%endif
%if_with hiprt
%exclude %_datadir/%name/*/scripts/addons/cycles/lib/kernel_rt_gfx.*
%endif
%_datadir/metainfo/*.appdata.xml
%_defaultdocdir/%name/
%_man1dir/*.1*

%if_with hip
%files cycles-hip-kernels
%dir %_datadir/%name/*/scripts/addons/cycles/lib
%_datadir/%name/*/scripts/addons/cycles/lib/kernel_gfx*.fatbin
%if_with hiprt
%_datadir/%name/*/scripts/addons/cycles/lib/kernel_rt_gfx.*
%endif
%endif

%if_with docs
%files doc
%doc doc/doxygen/html
%endif

%changelog

changelog

 
: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
: Michael Shigorin