Date: Wednesday, March 8, 2023 @ 11:33:59
Author: arojas
Revision: 1416826
archrelease: copy trunk to community-staging-x86_64
Added:
blender/repos/community-staging-x86_64/
blender/repos/community-staging-x86_64/PKGBUILD
(from rev 1416825, blender/trunk/PKGBUILD)
blender/repos/community-staging-x86_64/blender-ffmpeg6.patch
(from rev 1416825, blender/trunk/blender-ffmpeg6.patch)
blender/repos/community-staging-x86_64/blender-numpy.patch
(from rev 1416825, blender/trunk/blender-numpy.patch)
blender/repos/community-staging-x86_64/blender-sycl-path.patch
(from rev 1416825, blender/trunk/blender-sycl-path.patch)
blender/repos/community-staging-x86_64/force-draco1.patch
(from rev 1416825, blender/trunk/force-draco1.patch)
blender/repos/community-staging-x86_64/force-draco2.patch
(from rev 1416825, blender/trunk/force-draco2.patch)
-------------------------+
PKGBUILD | 135 ++++++++++++++++++++++++++++++++++++++++++++++
blender-ffmpeg6.patch | 63 +++++++++++++++++++++
blender-numpy.patch | 13 ++++
blender-sycl-path.patch | 13 ++++
force-draco1.patch | 15 +++++
force-draco2.patch | 21 +++++++
6 files changed, 260 insertions(+)
Copied: blender/repos/community-staging-x86_64/PKGBUILD (from rev 1416825,
blender/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2023-03-08 11:33:59 UTC (rev 1416826)
@@ -0,0 +1,135 @@
+# Maintainer: Sven-Hendrik Haase <[email protected]>
+# Contributor: John Sowiak <[email protected]>
+# Contributor: tobias <[email protected]>
+
+# For legal reasons, we can't separately package the Optix headers so we'll
+# just build the package against them. I checked with NVIDIA and this way is
+# fine with them.
+
+pkgname=blender
+pkgver=3.4.1
+pkgrel=19
+epoch=17
+pkgdesc="A fully integrated 3D graphics creation suite"
+arch=('x86_64')
+license=('GPL')
+url="https://www.blender.org"
+depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils'
'python-requests' 'potrace'
+ 'shared-mime-info' 'hicolor-icon-theme' 'xdg-utils' 'glew'
'openjpeg2' 'python-numpy'
+ 'freetype2' 'openal' 'ffmpeg' 'fftw' 'boost-libs' 'opencollada'
'alembic' 'openxr'
+ 'openimageio' 'libsndfile' 'jack' 'opencolorio' 'openshadinglanguage'
'openimagedenoise'
+ 'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus'
'sdl2' 'embree' 'libharu'
+ 'draco' 'openpgl' 'level-zero-loader'
'intel-oneapi-compiler-shared-runtime'
+ 'level-zero-loader')
+makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda' 'ninja'
'wayland-protocols' 'libxkbcommon'
+ 'libdecor' 'hip-runtime-amd' 'level-zero-headers'
'intel-oneapi-dpcpp-cpp'
+ 'intel-compute-runtime')
+optdepends=('cuda: cycles renderer cuda support'
+ 'libdecor: wayland support')
+source=("git+https://projects.blender.org/blender/blender.git#tag=v$pkgver"
+ "git+https://projects.blender.org/blender/blender-addons.git"
+ "git+https://projects.blender.org/blender/blender-addons-contrib.git"
+ "git+https://projects.blender.org/blender/blender-translations.git"
+ "git+https://projects.blender.org/blender/blender-dev-tools.git"
+
https://developer.download.nvidia.com/redist/optix/v7.6/OptiX-7.6-Include.zip
+ blender-sycl-path.patch
+ blender-numpy.patch
+ blender-ffmpeg6.patch
+ force-draco1.patch
+ force-draco2.patch)
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+
'dfe86de395dd298fb9feae73bff06a26742efa06a25bb5a4f78ffb1ba4c78f555d1af927efea98af281715cce01db219aa2adfd6bd323bf0d766c1c70ce03532'
+
'bc9a80941a18aaddc3e8f2d9963e4f6b7eb1cf9f098418adb236771c3bedcab7b7a06121178f7498caba1af67116cd0ea549382e14a707163cdd5d8fbf3ee824'
+
'a39d9a13515b71d3b686d8f011b3eb9ee45de04f716627d711c5119317cb130c587da1b806f276f97064f814cfce3790b201731f047e5ec01e7d6f65acd04b3b'
+
'34a2e2a344e851858fc8408ca9fd31d1d4a40083b2a1b2c01cabf48c2728c0b97226cf22c4224f93eda383b4690ff57e98291ad4fa81b960f0531067b40f78f7'
+
'e239da4f3906f1b54265435181cf770bae3d269c8d915df9a73861e6ee71ec70bf2339426e7c81a91e5a567273b3b3742d7a99feefd3398d821b26e1ff3a56d0'
+
'c162646eba42ea7112cfb615466c2cbaddac8d254d4a9e91cf887c5bffef1325a983701163223a1fdee091310ac5574a400347aab7f52321825b5fa3d5a9036f')
+
+prepare() {
+ cd "$pkgname"
+
+ git submodule init
+ git config submodule."release/scripts/addons".url "${srcdir}/blender-addons"
+ git config submodule."release/scripts/addons_contrib".url
"${srcdir}/blender-addons-contrib"
+ git config submodule."release/datafiles/locale".url
"${srcdir}/blender-translations"
+ git config submodule."source/tools".url "${srcdir}/blender-dev-tools"
+ git -c protocol.file.allow=always submodule update
+ git submodule foreach git checkout v${pkgver}
+
+ # fix build with boost 1.81.0
+ git format-patch -1 --stdout 79837c5ed4b5 | patch -Np1
+
+ # fix draco
+ patch -p1 -i "$srcdir"/force-draco1.patch
+ patch -p1 -d release/scripts/addons -i "$srcdir"/force-draco2.patch
+
+ # fix for FS#77376
+ patch -p1 -d release/scripts/addons -i "$srcdir"/blender-numpy.patch
+
+ # fix SYCL include dir
+ patch -p1 -i "$srcdir"/blender-sycl-path.patch
+
+ # ffmpeg 6
+ patch -p1 -i "$srcdir"/blender-ffmpeg6.patch
+}
+
+get_pyver() {
+ python -c 'import sys; print(str(sys.version_info[0]) + "." +
str(sys.version_info[1]))'
+}
+
+build() {
+ cd "$pkgname"
+
+ local PYTHON_VER="$(get_pyver)"
+
+ # CUDA arch 90 is unsupported
+ echo 'set(CYCLES_CUDA_BINARIES_ARCH sm_52 sm_53 sm_60 sm_61 sm_62 sm_70
sm_72 sm_75 sm_80 sm_86 sm_87 sm_89 compute_89 CACHE STRING "CUDA architectures
to build binaries for" FORCE)' > precache
+ echo 'mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)' >> precache
+
+ # If we enable the following flag, Blender will try to build prebuilt Intel
+ # OneAPI binaries using ocloc during the build process. However, this
+ # currently fails as the flags for ocloc are weird and it will crash when
+ # trying to build it. I asked Intel and Blender about it and am waiting on a
+ # response.
+ # -DOCLOC_INSTALL_DIR=/usr/ \
+ cmake \
+ -Bbuild \
+ -GNinja \
+ -Cbuild_files/cmake/config/blender_release.cmake \
+ -C precache \
+ -DHIP_ROOT_DIR=/opt/rocm \
+ -DOPTIX_ROOT_DIR="$srcdir" \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DWITH_INSTALL_PORTABLE=OFF \
+ -DWITH_PYTHON_INSTALL=OFF \
+ -DSYCL_CPP_FLAGS=--verbose \
+ -DCYCLES_ONEAPI_SYCL_OPTIONS_spir64="-options
'-ze-opt-large-register-file\ -ze-intel-enable-auto-large-GRF-mode'"
+ cmake --build build
+}
+
+package() {
+ cd "$pkgname"
+
+ DESTDIR="${pkgdir}" cmake --install build
+ install -Dm755 release/bin/blender-softwaregl
"${pkgdir}/usr/bin/blender-softwaregl"
+ python -m compileall "${pkgdir}/usr/share/blender"
+ python -O -m compileall "${pkgdir}/usr/share/blender"
+
+ install -Dm644 release/freedesktop/org.blender.Blender.appdata.xml
"${pkgdir}/usr/share/metainfo/org.blender.Blender.appdata.xml"
+
+ # Manually install additional scripts (See FS#69351)
+ cp -r release/scripts/addons_contrib/*
"${pkgdir}"/usr/share/blender/3*/scripts/addons_contrib/
+
+ # Manually install draco bindings (See FS#73415)
+ mkdir -p "${pkgdir}/usr/lib/python$(get_pyver)"/
+ mv "${pkgdir}"/usr/share/blender/3*/python/lib/* "${pkgdir}"/usr/lib/
+ rm -r "${pkgdir}"/usr/share/blender/3*/python
+
+ # Move OneAPI JIT lib to proper place. No idea why it's not just statically
linked into Blender.
+ mv "${pkgdir}"/usr/share/blender/lib/libcycles_kernel_oneapi_jit.so
"${pkgdir}"/usr/lib/
+}
Copied: blender/repos/community-staging-x86_64/blender-ffmpeg6.patch (from rev
1416825, blender/trunk/blender-ffmpeg6.patch)
===================================================================
--- community-staging-x86_64/blender-ffmpeg6.patch
(rev 0)
+++ community-staging-x86_64/blender-ffmpeg6.patch 2023-03-08 11:33:59 UTC
(rev 1416826)
@@ -0,0 +1,63 @@
+diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
+index f311e04d8e0..4f474d0c267 100644
+--- a/intern/ffmpeg/ffmpeg_compat.h
++++ b/intern/ffmpeg/ffmpeg_compat.h
+@@ -36,6 +36,10 @@
+ # define FFMPEG_INLINE static inline
+ #endif
+
++#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,132,100)
++# define AV_CODEC_CAP_OTHER_THREADS AV_CODEC_CAP_AUTO_THREADS
++#endif
++
+ #if (LIBAVFORMAT_VERSION_MAJOR < 58) || \
+ ((LIBAVFORMAT_VERSION_MAJOR == 58) && (LIBAVFORMAT_VERSION_MINOR < 76))
+ # define FFMPEG_USE_DURATION_WORKAROUND 1
+diff --git a/source/blender/blenkernel/intern/writeffmpeg.c
b/source/blender/blenkernel/intern/writeffmpeg.c
+index 1d4cbc48833..c812c2e8f26 100644
+--- a/source/blender/blenkernel/intern/writeffmpeg.c
++++ b/source/blender/blenkernel/intern/writeffmpeg.c
+@@ -855,7 +855,7 @@ static AVStream *alloc_video_stream(FFMpegContext *context,
+ 255);
+ st->avg_frame_rate = av_inv_q(c->time_base);
+
+- if (codec->capabilities & AV_CODEC_CAP_AUTO_THREADS) {
++ if (codec->capabilities & AV_CODEC_CAP_OTHER_THREADS) {
+ c->thread_count = 0;
+ }
+ else {
+diff --git a/source/blender/imbuf/intern/anim_movie.c
b/source/blender/imbuf/intern/anim_movie.c
+index 94c0555dcf0..52314c2ca21 100644
+--- a/source/blender/imbuf/intern/anim_movie.c
++++ b/source/blender/imbuf/intern/anim_movie.c
+@@ -554,7 +554,7 @@ static int startffmpeg(struct anim *anim)
+ avcodec_parameters_to_context(pCodecCtx, video_stream->codecpar);
+ pCodecCtx->workaround_bugs = FF_BUG_AUTODETECT;
+
+- if (pCodec->capabilities & AV_CODEC_CAP_AUTO_THREADS) {
++ if (pCodec->capabilities & AV_CODEC_CAP_OTHER_THREADS) {
+ pCodecCtx->thread_count = 0;
+ }
+ else {
+diff --git a/source/blender/imbuf/intern/indexer.c
b/source/blender/imbuf/intern/indexer.c
+index 63836690ee4..fb0dd4f3e3e 100644
+--- a/source/blender/imbuf/intern/indexer.c
++++ b/source/blender/imbuf/intern/indexer.c
+@@ -559,7 +559,7 @@ static struct proxy_output_ctx *alloc_proxy_output_ffmpeg(
+ av_dict_set(&codec_opts, "preset", "veryfast", 0);
+ av_dict_set(&codec_opts, "tune", "fastdecode", 0);
+
+- if (rv->codec->capabilities & AV_CODEC_CAP_AUTO_THREADS) {
++ if (rv->codec->capabilities & AV_CODEC_CAP_OTHER_THREADS) {
+ rv->c->thread_count = 0;
+ }
+ else {
+@@ -872,7 +872,7 @@ static IndexBuildContext
*index_ffmpeg_create_context(struct anim *anim,
+ avcodec_parameters_to_context(context->iCodecCtx,
context->iStream->codecpar);
+ context->iCodecCtx->workaround_bugs = FF_BUG_AUTODETECT;
+
+- if (context->iCodec->capabilities & AV_CODEC_CAP_AUTO_THREADS) {
++ if (context->iCodec->capabilities & AV_CODEC_CAP_OTHER_THREADS) {
+ context->iCodecCtx->thread_count = 0;
+ }
+ else {
Copied: blender/repos/community-staging-x86_64/blender-numpy.patch (from rev
1416825, blender/trunk/blender-numpy.patch)
===================================================================
--- community-staging-x86_64/blender-numpy.patch
(rev 0)
+++ community-staging-x86_64/blender-numpy.patch 2023-03-08 11:33:59 UTC
(rev 1416826)
@@ -0,0 +1,13 @@
+diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
b/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
+index 41dd4d03..a97f9d38 100755
+--- a/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
++++ b/io_scene_gltf2/blender/imp/gltf2_blender_mesh.py
+@@ -572,7 +572,7 @@ def set_poly_smoothing(gltf, pymesh, mesh, vert_normals,
loop_vidxs):
+ # Try to guess which polys should be flat based on the fact that all the
+ # loop normals for a flat poly are = the poly's normal.
+
+- poly_smooths = np.empty(num_polys, dtype=np.bool)
++ poly_smooths = np.empty(num_polys, dtype=np.bool_)
+
+ poly_normals = np.empty(num_polys * 3, dtype=np.float32)
+ mesh.polygons.foreach_get('normal', poly_normals)
Copied: blender/repos/community-staging-x86_64/blender-sycl-path.patch (from
rev 1416825, blender/trunk/blender-sycl-path.patch)
===================================================================
--- community-staging-x86_64/blender-sycl-path.patch
(rev 0)
+++ community-staging-x86_64/blender-sycl-path.patch 2023-03-08 11:33:59 UTC
(rev 1416826)
@@ -0,0 +1,13 @@
+diff --git a/build_files/cmake/Modules/FindSYCL.cmake
b/build_files/cmake/Modules/FindSYCL.cmake
+index 1ccbee179fb..e72b035def6 100644
+--- a/build_files/cmake/Modules/FindSYCL.cmake
++++ b/build_files/cmake/Modules/FindSYCL.cmake
+@@ -81,7 +81,7 @@ endif()
+
+ FIND_PATH(SYCL_INCLUDE_DIR
+ NAMES
+- sycl/sycl.hpp
++ sycl/CL/sycl.hpp
+ HINTS
+ ${_sycl_search_dirs}
+ PATH_SUFFIXES
Copied: blender/repos/community-staging-x86_64/force-draco1.patch (from rev
1416825, blender/trunk/force-draco1.patch)
===================================================================
--- community-staging-x86_64/force-draco1.patch (rev 0)
+++ community-staging-x86_64/force-draco1.patch 2023-03-08 11:33:59 UTC (rev
1416826)
@@ -0,0 +1,15 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75f5795db68..d50686adfb0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -754,10 +754,6 @@ endif()
+ set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
+ set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
+
+-if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
+- message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling
WITH_DRACO for now")
+- set(WITH_DRACO OFF)
+-endif()
+
+ # enable boost for cycles, audaspace or i18n
+ # otherwise if the user disabled
Copied: blender/repos/community-staging-x86_64/force-draco2.patch (from rev
1416825, blender/trunk/force-draco2.patch)
===================================================================
--- community-staging-x86_64/force-draco2.patch (rev 0)
+++ community-staging-x86_64/force-draco2.patch 2023-03-08 11:33:59 UTC (rev
1416826)
@@ -0,0 +1,21 @@
+diff --git a/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
b/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
+index e7518ac4..c0d78564 100644
+--- a/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
++++ b/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
+@@ -13,6 +13,7 @@
+ # limitations under the License.
+
+ import os
++import site
+ import sys
+ from pathlib import Path
+ import bpy
+@@ -30,7 +31,7 @@ def dll_path() -> Path:
+ python_lib = Path('{v[0]}.{v[1]}/python/lib'.format(v=bpy.app.version))
+ python_version = 'python{v[0]}.{v[1]}'.format(v=sys.version_info)
+
+- path = os.environ.get('BLENDER_EXTERN_DRACO_LIBRARY_PATH')
++ path = f"{site.getsitepackages()[0]}/libextern_draco.so"
+ if path is None:
+ path = {
+ 'win32': blender_root / python_lib / 'site-packages',