diff options
author | Fredrick Brennan | 2023-03-27 02:22:03 -0400 |
---|---|---|
committer | Fredrick Brennan | 2023-03-27 02:29:42 -0400 |
commit | 38232bfb2194bc2daf945952d53b9919e3f20085 (patch) | |
tree | 3f1efabcaf26769cc0eb7fb57ee25e5f423080a3 | |
parent | 259c548716a7abc62c3528eb0a2ff00536f8f695 (diff) | |
download | aur-38232bfb2194bc2daf945952d53b9919e3f20085.tar.gz |
Version 3.6.r122735.g2f4a7d67b7b
Fix building Python module (again)
Support building with Intel OpenCL FPGA kernels
New feature upstream.
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | 0001-Use-github.com-for-make-update-git.patch | 25 | ||||
-rw-r--r-- | 0002-embree.patch (renamed from embree.patch) | 0 | ||||
-rw-r--r-- | 0003-usd_python.patch (renamed from usd_python.patch) | 0 | ||||
-rw-r--r-- | PKGBUILD | 69 | ||||
-rw-r--r-- | user-blender.slice | 4 | ||||
-rwxr-xr-x | user-blender.slice.sh | 8 |
7 files changed, 101 insertions, 33 deletions
@@ -1,6 +1,6 @@ pkgbase = blender-git pkgdesc = A fully integrated 3D graphics creation suite (development) - pkgver = 3.6.r122604.g0323f8d1d9c + pkgver = 3.6.r122735.g2f4a7d67b7b pkgrel = 1 url = https://blender.org/ arch = i686 @@ -12,6 +12,8 @@ pkgbase = blender-git makedepends = mesa makedepends = ninja makedepends = llvm + makedepends = clang + makedepends = svn makedepends = wayland-protocols depends = alembic depends = embree @@ -35,6 +37,8 @@ pkgbase = blender-git depends = openshadinglanguage depends = libtiff depends = libpng + depends = python + depends = python-zstandard depends = libdecor depends = libepoxy optdepends = cuda: CUDA support in Cycles @@ -42,23 +46,29 @@ pkgbase = blender-git optdepends = usd=21.05: USD export Scene optdepends = openpgl: Intel Path Guiding library in Cycles optdepends = openimagedenoise: Intel Open Image Denoise support in compositing + optdepends = level-zero-headers: Intel OpenCL FPGA kernels (all four needed) + optdepends = intel-compute-runtime: Intel OpenCL FPGA kernels (all four needed) + optdepends = intel-graphics-compiler: Intel OpenCL FPGA kernels (all four needed) + optdepends = intel-oneapi-basekit: Intel OpenCL FPGA kernels (all four needed) provides = blender conflicts = blender source = blender::git+https://github.com/blender/blender#branch=main - source = blender-addons::git+https://github.com/blender/blender-addons - source = blender-addons-contrib::git+https://github.com/blender/blender-addons-contrib - source = blender-translations::git+https://github.com/blender/blender-translations - source = blender-dev-tools::git+https://github.com/blender/blender-dev-tools - source = usd_python.patch - source = embree.patch - source = user-blender.slice.sh + source = blender/scripts/addons::git+https://github.com/blender/blender-addons + source = blender/translations::git+https://github.com/blender/blender-translations + source = blender/addons_contrib::git+https://github.com/blender/blender-addons-contrib + source = blender/dev_tools::git+https://github.com/blender/blender-dev-tools + source = user-blender.slice + source = 0001-Use-github.com-for-make-update-git.patch + source = 0003-usd_python.patch + source = 0002-embree.patch sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP + sha256sums = 10cf3652cf16f8042437bb511e2b030035433978f71cf1da8028711f49599074 + sha256sums = 52da80b721efb6a6d579adf531640becfac1955a88857ca46ca16030a52c3b1c sha256sums = c2db51a83a8d573aa76c760f10e541c84b108d64d05c9647681c4e633b3d0397 sha256sums = d587135fd9b815d60e8b7f48976aa835472922fc8f64c256dc397bfcd3c2642a - sha256sums = a62b23567d520984f36d6a3158fd99f463e3187f2ad062ead418c260fac5ea8a pkgname = blender-git diff --git a/0001-Use-github.com-for-make-update-git.patch b/0001-Use-github.com-for-make-update-git.patch new file mode 100644 index 000000000000..472073136dbd --- /dev/null +++ b/0001-Use-github.com-for-make-update-git.patch @@ -0,0 +1,25 @@ +From 290e1e73342b5704a9a6a017ad1f208d9d00316f Mon Sep 17 00:00:00 2001 +From: Fredrick Brennan <copypaste@kittens.ph> +Date: Tue, 21 Mar 2023 07:25:32 -0400 +Subject: [PATCH] Use github.com for `make update` git + +--- + build_files/utils/make_update.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build_files/utils/make_update.py b/build_files/utils/make_update.py +index f4c16ead87a..5a56212bd03 100755 +--- a/build_files/utils/make_update.py ++++ b/build_files/utils/make_update.py +@@ -325,7 +325,7 @@ def external_script_initialize_if_needed(args: argparse.Namespace, + # When running `make update` from a freshly cloned fork check whether the fork of the submodule is + # available, If not, switch to the submodule relative to the main blender repository. + if origin_name == "origin" and not make_utils.git_is_remote_repository(args.git_command, external_url): +- external_url = resolve_external_url("https://projects.blender.org/blender/blender", repo_name) ++ external_url = resolve_external_url("https://github.com/blender/blender", repo_name) + + call((args.git_command, "clone", "--origin", origin_name, external_url, str(external_dir))) + +-- +2.40.0 + diff --git a/embree.patch b/0002-embree.patch index e6cee1fb8a62..e6cee1fb8a62 100644 --- a/embree.patch +++ b/0002-embree.patch diff --git a/usd_python.patch b/0003-usd_python.patch index e0537d8cb921..e0537d8cb921 100644 --- a/usd_python.patch +++ b/0003-usd_python.patch @@ -1,4 +1,4 @@ -#!/bin/hint/bash +#!/bin/bash # Maintainer: Fredrick Brennan <copypaste@kittens.ph> # Submitter: Lukas Jirkovsky <l.jirkovsky@gmail.com> # Co-maintainer : bartus <arch-user-repoᘓbartus.33mail.com> @@ -20,42 +20,50 @@ _fragment="${FRAGMENT:-#branch=main}" _CMAKE_FLAGS+=( -DWITH_CYCLES_NETWORK=OFF ) pkgname=blender-git -pkgver=3.6.r122604.g0323f8d1d9c +pkgver=3.6.r122735.g2f4a7d67b7b pkgrel=1 pkgdesc="A fully integrated 3D graphics creation suite (development)" arch=('i686' 'x86_64') url="https://blender.org/" depends+=('alembic' 'embree' 'libgl' 'python' 'python-numpy' 'openjpeg2' 'libharu' 'potrace' 'openxr' 'ffmpeg' 'fftw' 'openal' 'freetype2' 'libxi' 'openimageio' 'opencolorio' - 'openvdb' 'opencollada' 'opensubdiv' 'openshadinglanguage' 'libtiff' 'libpng') + 'openvdb' 'opencollada' 'opensubdiv' 'openshadinglanguage' 'libtiff' 'libpng' + 'python' 'python-zstandard') depends+=('libdecor' 'libepoxy') optdepends=('cuda: CUDA support in Cycles' 'optix>=7.4.0: OptiX support in Cycles' 'usd=21.05: USD export Scene' 'openpgl: Intel Path Guiding library in Cycles' - 'openimagedenoise: Intel Open Image Denoise support in compositing') -makedepends=('git' 'cmake' 'boost' 'mesa' 'ninja' 'llvm') + 'openimagedenoise: Intel Open Image Denoise support in compositing' + 'level-zero-headers: Intel OpenCL FPGA kernels (all four needed)' + 'intel-compute-runtime: Intel OpenCL FPGA kernels (all four needed)' + 'intel-graphics-compiler: Intel OpenCL FPGA kernels (all four needed)' + 'intel-oneapi-basekit: Intel OpenCL FPGA kernels (all four needed)') +makedepends=('git' 'cmake' 'boost' 'mesa' 'ninja' 'llvm' 'clang' 'svn') makedepends+=('wayland-protocols') provides=('blender') conflicts=('blender') license=('GPL') source=("blender::git+https://github.com/blender/blender${_fragment}" - 'blender-addons::git+https://github.com/blender/blender-addons' - 'blender-addons-contrib::git+https://github.com/blender/blender-addons-contrib' - 'blender-translations::git+https://github.com/blender/blender-translations' - 'blender-dev-tools::git+https://github.com/blender/blender-dev-tools' - usd_python.patch #add missing python headers when building against python enabled usd. - embree.patch #add missing embree link. - user-blender.slice.sh #generate systemd compilation unit + 'blender/scripts/addons::git+https://github.com/blender/blender-addons' + 'blender/translations::git+https://github.com/blender/blender-translations' + 'blender/addons_contrib::git+https://github.com/blender/blender-addons-contrib' + 'blender/dev_tools::git+https://github.com/blender/blender-dev-tools' + 'user-blender.slice' #systemd compilation unit + # Patches... + '0001-Use-github.com-for-make-update-git.patch' + '0003-usd_python.patch' #add missing python headers when building against python enabled usd. + '0002-embree.patch' #add missing embree link. ) sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' + '10cf3652cf16f8042437bb511e2b030035433978f71cf1da8028711f49599074' + '52da80b721efb6a6d579adf531640becfac1955a88857ca46ca16030a52c3b1c' 'c2db51a83a8d573aa76c760f10e541c84b108d64d05c9647681c4e633b3d0397' - 'd587135fd9b815d60e8b7f48976aa835472922fc8f64c256dc397bfcd3c2642a' - 'a62b23567d520984f36d6a3158fd99f463e3187f2ad062ead418c260fac5ea8a') + 'd587135fd9b815d60e8b7f48976aa835472922fc8f64c256dc397bfcd3c2642a') pkgver() { blender_version=$(grep -Po "BLENDER_VERSION \K[0-9]{3}" "$srcdir"/blender/source/blender/blenkernel/BKE_blender_version.h) @@ -68,17 +76,25 @@ pkgver() { prepare() { cd "$srcdir" - ../user-blender.slice.sh > user-`id -u`-blender.slice + cp user-blender.slice user-`id -u`-blender.slice cd "blender" + make update # update the submodules git -c protocol.file.allow=always submodule update --init --recursive --remote - git apply -v "${srcdir}"/{embree,usd_python}.patch + git apply -v "${srcdir}"/*.patch } build() { _pyver=$(python -c "from sys import version_info; print(\"%d.%d\" % (version_info[0],version_info[1]))") msg "python version detected: ${_pyver}" + # determine whether we can install python modules + if [ "$_pyver" != "" ]; then + _CMAKE_FLAGS+=( -DWITH_PYTHON=ON + -DWITH_PYTHON_MODULE=OFF + -DWITH_PYTHON_INSTALL=ON ) + fi + # determine whether we can precompile CUDA kernels _CUDA_PKG=$(pacman -Qq cuda 2>/dev/null) || true if [ "$_CUDA_PKG" != "" ]; then @@ -106,6 +122,19 @@ build() { -DUSD_ROOT=/usr ) fi + CC=`which clang` + CXX=`which clang++` + # check for oneapi + _ONEAPI_SETVARS=/opt/intel/oneapi/setvars.sh + [ -f "$_ONEAPI_SETVARS" ] && . "$_ONEAPI_SETVARS" --force + _ONEAPI_CLANG=/opt/intel/oneapi/compiler/latest/linux/bin-llvm/clang + [ -f "$_ONEAPI_CLANG" ] && ( + warning "Intel's clang will be used." + _CMAKE_FLAGS+=( -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON ) + CC="${_ONEAPI_CLANG}" + CXX="$CC" + ) + cmake -G Ninja -S "$srcdir/blender" -B build \ -C "${srcdir}/blender/build_files/cmake/config/blender_release.cmake" \ -DCMAKE_INSTALL_PREFIX=/usr \ @@ -115,6 +144,8 @@ build() { -DWITH_PYTHON_INSTALL=OFF \ -DXR_OPENXR_SDK_ROOT_DIR=/usr \ -DPYTHON_VERSION="${_pyver}" \ + -DCMAKE_C_COMPILER="$CC" \ + -DCMAKE_CXX_COMPILER="$CXX" \ "${_CMAKE_FLAGS[@]}" NINJA_CMD="ninja -C ""$srcdir/build" if [[ "x$BLENDER_GIT_USE_SLICE_AUR" == "xy" ]]; then @@ -135,6 +166,12 @@ package() { # make sure the cuda kernels are not stripped chmod 444 "$pkgdir"/usr/share/blender/${_suffix}/scripts/addons/cycles/lib/* fi + + # This prevents an error due to missing file in LD_LIBRARY_PATH when using Intel OpenCL kernels. + mkdir -p "$pkgdir"/usr/lib + [ -f "$pkgdir/usr/share/blender/lib/libcycles_kernel_oneapi_jit.so" ] && \ + ln -s "$pkgdir/usr/share/blender/lib/libcycles_kernel_oneapi_jit.so" "$pkgdir/usr/lib/libcycles_kernel_oneapi_jit.so" + chmod 444 "$pkgdir"/usr/lib/libcycles_kernel_oneapi_jit.so } # vim: et:ts=2:sw=2 diff --git a/user-blender.slice b/user-blender.slice new file mode 100644 index 000000000000..1ba0ae8b208a --- /dev/null +++ b/user-blender.slice @@ -0,0 +1,4 @@ +[Service] +MemoryMax=75% +MemoryHigh=66% +CPUQuota=75% diff --git a/user-blender.slice.sh b/user-blender.slice.sh deleted file mode 100755 index aef55a0a8dd1..000000000000 --- a/user-blender.slice.sh +++ /dev/null @@ -1,8 +0,0 @@ -mem_divide_by() { - (bc <<< "(`cat /proc/meminfo | grep ^MemTotal: | awk '{print $2}'` * 1000) * $1" | perl -pe 's/\\.[0-9]*$') || \ - exit 1 -} -echo [Service] -echo MemoryMax=$(mem_divide_by 0.75) -echo MemoryHigh=$(mem_divide_by 0.66) -echo CPUQuota=75% |