summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/blender/PKGBUILD61
-rw-r--r--libre/blender/blender-openexr3.patch42
-rw-r--r--libre/blender/dummy-source0
-rw-r--r--libre/blender/force-draco1.patch15
-rw-r--r--libre/blender/force-draco2.patch21
5 files changed, 74 insertions, 65 deletions
diff --git a/libre/blender/PKGBUILD b/libre/blender/PKGBUILD
index 01eba1c3c..76274cfc0 100644
--- a/libre/blender/PKGBUILD
+++ b/libre/blender/PKGBUILD
@@ -13,16 +13,15 @@
pkgname=blender
-pkgver=2.93.5
-pkgrel=7
+pkgver=3.2.0
+pkgrel=4
pkgrel+=.parabola1
epoch=17
-_pythonver_x86_64=3.9
-_pythonver_i686=3.9
-_pythonver_armv7h=3.9
+_pythonver_x86_64=3.10
+_pythonver_i686=3.10
+_pythonver_armv7h=3.10
eval "_python_ver=\$_pythonver_${CARCH}"
pkgdesc="A fully integrated 3D graphics creation suite"
-pkgdesc+=", without non-free CUDA or optix support"
arch=('x86_64')
arch+=('i686' 'armv7h')
license=('GPL')
@@ -31,25 +30,31 @@ depends=('libpng' 'libtiff' 'openexr' 'python' 'desktop-file-utils' 'python-requ
'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')
+ 'jemalloc' 'libspnav' 'ptex' 'opensubdiv' 'openvdb' 'log4cplus' 'sdl2' 'embree' 'libharu'
+ 'draco')
[[ "${CARCH}" != 'x86_64' ]] && depends=( ${depends[*]/openimagedenoise/} )
[[ "${CARCH}" != 'x86_64' ]] && depends=( ${depends[*]/libharu/} )
[[ "${CARCH}" == 'armv7h' ]] && depends=( ${depends[*]/embree/} )
makedepends=('cmake' 'boost' 'mesa' 'git' 'llvm' 'cuda' 'ninja')
-makedepends=( ${makedepends[*]/cuda/} )
+makedepends=( ${makedepends[*]/cuda/} ) # non-free
options=(!strip)
source=("git+https://git.blender.org/blender.git#tag=v$pkgver"
"git+https://git.blender.org/blender-addons.git"
"git+https://git.blender.org/blender-addons-contrib.git"
"git+https://git.blender.org/blender-translations.git"
"git+https://git.blender.org/blender-dev-tools.git"
- blender-openexr3.patch)
+ https://developer.download.nvidia.com/redist/optix/v7.3/OptiX-7.3.0-Include.zip
+ force-draco1.patch
+ force-draco2.patch)
+source=( ${source[*]/*optix*/dummy-source} ) # non-free
sha512sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
- 'e2dd7210d26b70445e9ae8e33dea35111ad0b0aca9d3b4ded3df560d0fcc8dc044868f729e0f090a04b6f316f083b5505a7056ce088e8702065add87b9b457e5')
+ 'SKIP' # dummy-source
+ 'e239da4f3906f1b54265435181cf770bae3d269c8d915df9a73861e6ee71ec70bf2339426e7c81a91e5a567273b3b3742d7a99feefd3398d821b26e1ff3a56d0'
+ '527ab66e5eace777de0043c1ca5787a488f6471450ce67fd6d08137ad0ef56177bc0c17696f30a5fca23fa55d8ca9c3f30cb7b17550dba2dbd8e89ca0b361990')
_version_constraint() # (dep_pkgname [precision])
@@ -90,7 +95,11 @@ prepare() {
git submodule update
git submodule foreach git checkout v${pkgver}
- patch -p1 < "$srcdir"/blender-openexr3.patch # Fix build with OpenEXR 3
+ patch -p1 -i "$srcdir"/force-draco1.patch
+ patch -p1 -d release/scripts/addons -i "$srcdir"/force-draco2.patch
+
+
+ ## parabola patching ##
# set OS type string
sed -i 's|BUILD_PLATFORM;|"GNU/Linux-libre";|' 'source/creator/buildinfo.c'
@@ -106,24 +115,24 @@ prepare() {
build() {
cd "$pkgname"
- # libre changes
- local _extra_opts=( -DWITH_CYCLES_CUDA_BINARIES=OFF \
- -DWITH_CYCLES_DEVICE_CUDA=OFF \
- -DWITH_CYCLES_DEVICE_OPTIX=OFF )
+ local PYTHON_VER=${_python_ver}
+
+ # libre options
+ local _parabola_opts=( -DWITH_CYCLES_CUDA_BINARIES=OFF \
+ -DWITH_CYCLES_DEVICE_CUDA=OFF \
+ -DWITH_CYCLES_DEVICE_OPTIX=OFF )
# arch-specific options
case "${CARCH}" in
- 'i686' ) _extra_opts+=( -DWITH_RAYOPTIMIZATION=OFF \
- -DWITH_CYCLES_EMBREE=ON ) ;;
- 'x86_64') _extra_opts+=( -DWITH_CYCLES_EMBREE=ON ) ;;
+ 'i686' ) _parabola_opts+=( -DWITH_RAYOPTIMIZATION=OFF \
+ -DWITH_CYCLES_EMBREE=ON ) ;;
+ 'x86_64') _parabola_opts+=( -DWITH_CYCLES_EMBREE=ON ) ;;
esac
- local PYTHON_VER=${_python_ver}
-
- cmake . \
+ cmake \
-Bbuild \
-GNinja \
-Cbuild_files/cmake/config/blender_release.cmake \
- ${_extra_opts[@]} \
+ ${_parabola_opts[@]} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INSTALL_PORTABLE=OFF \
@@ -145,6 +154,7 @@ package() {
# libboost_thread.so <- openshadinglanguage,
# libboost_iostreams.so <- openvdb
depends+=( libboost_locale.so
+ $(_version_constraint opencolorio 2) # eg: libOpenColorIO.so.2.1
$(_version_constraint openexr 2) # eg: libHalf.so.12
$(_version_constraint openimageio 2) # eg: libOpenImageIO.so.2.0
$(_version_constraint openshadinglanguage 2) # eg: liboslcomp.so.1.10
@@ -160,5 +170,10 @@ package() {
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/2*/scripts/addons_contrib/
+ 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/python3.10/
+ mv "${pkgdir}"/usr/share/blender/3*/python/lib/* "${pkgdir}"/usr/lib/
+ rm -r "${pkgdir}"/usr/share/blender/3*/python
}
diff --git a/libre/blender/blender-openexr3.patch b/libre/blender/blender-openexr3.patch
deleted file mode 100644
index 73a727a3d..000000000
--- a/libre/blender/blender-openexr3.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-diff --git a/build_files/cmake/Modules/FindOpenEXR.cmake b/build_files/cmake/Modules/FindOpenEXR.cmake
-index 090f80b8df7..a2f7b4c622b 100644
---- a/build_files/cmake/Modules/FindOpenEXR.cmake
-+++ b/build_files/cmake/Modules/FindOpenEXR.cmake
-@@ -34,11 +34,10 @@ ENDIF()
- SET(_openexr_libs_ver_init "2.0")
-
- SET(_openexr_FIND_COMPONENTS
-- Half
- Iex
-- IlmImf
-- IlmThread
- Imath
-+ OpenEXR
-+ IlmThread
- )
-
- SET(_openexr_SEARCH_DIRS
-@@ -120,7 +119,7 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(OpenEXR DEFAULT_MSG
- IF(OPENEXR_FOUND)
- SET(OPENEXR_LIBRARIES ${_openexr_LIBRARIES})
- # Both include paths are needed because of dummy OSL headers mixing #include <OpenEXR/foo.h> and #include <foo.h> :(
-- SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR)
-+ SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR_INCLUDE_DIR}/OpenEXR ${OPENEXR_INCLUDE_DIR}/Imath)
- ENDIF()
-
- MARK_AS_ADVANCED(
-diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
-index 382d86f2645..eff50b19c31 100644
---- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
-+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
-@@ -38,8 +38,10 @@
- #include <ImfChannelList.h>
- #include <ImfCompression.h>
- #include <ImfCompressionAttribute.h>
-+#include <ImfFrameBuffer.h>
- #include <ImfIO.h>
- #include <ImfInputFile.h>
-+#include <ImfInt64.h>
- #include <ImfOutputFile.h>
- #include <ImfPixelType.h>
- #include <ImfStandardAttributes.h>
diff --git a/libre/blender/dummy-source b/libre/blender/dummy-source
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/libre/blender/dummy-source
diff --git a/libre/blender/force-draco1.patch b/libre/blender/force-draco1.patch
new file mode 100644
index 000000000..4a8b63878
--- /dev/null
+++ b/libre/blender/force-draco1.patch
@@ -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
diff --git a/libre/blender/force-draco2.patch b/libre/blender/force-draco2.patch
new file mode 100644
index 000000000..379e447b3
--- /dev/null
+++ b/libre/blender/force-draco2.patch
@@ -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 = site.getsitepackages()[0]
+ if path is None:
+ path = {
+ 'win32': blender_root / python_lib / 'site-packages',