summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorFredrick Brennan2023-03-27 02:22:03 -0400
committerFredrick Brennan2023-03-27 02:29:42 -0400
commit38232bfb2194bc2daf945952d53b9919e3f20085 (patch)
tree3f1efabcaf26769cc0eb7fb57ee25e5f423080a3
parent259c548716a7abc62c3528eb0a2ff00536f8f695 (diff)
downloadaur-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--.SRCINFO28
-rw-r--r--0001-Use-github.com-for-make-update-git.patch25
-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--PKGBUILD69
-rw-r--r--user-blender.slice4
-rwxr-xr-xuser-blender.slice.sh8
7 files changed, 101 insertions, 33 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 7bc442decd8d..0c3e520edc77 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 59cd89b03d00..943e7c529a57 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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%