summaryrefslogtreecommitdiffstats
path: root/graphics/Blender
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/Blender')
-rw-r--r--graphics/Blender/Blender.SlackBuild60
-rw-r--r--graphics/Blender/Blender.info8
-rw-r--r--graphics/Blender/README66
-rw-r--r--graphics/Blender/README.Slackware95
4 files changed, 100 insertions, 129 deletions
diff --git a/graphics/Blender/Blender.SlackBuild b/graphics/Blender/Blender.SlackBuild
index 4d8d8cb152..90999a35a7 100644
--- a/graphics/Blender/Blender.SlackBuild
+++ b/graphics/Blender/Blender.SlackBuild
@@ -1,8 +1,8 @@
-#!/bin/sh
+#!/bin/bash
# Slackware build script for Blender
-# Copyright 2015-2021 Christoph Willing, Brisbane Australia
+# Copyright 2015-2024 Christoph Willing, Sydney Australia
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,15 +22,23 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 20220322 bkw: Modified by SlackBuilds.org, BUILD=2:
+# - make embree optional (makes it possible to build Blender on 32-bit,
+# since embree is 64-bit-only).
+# - add patch to fix 32-bit compilation. (no longer needed)
+
+cd $(dirname $0) ; CWD=$(pwd)
+
PRGNAM=Blender
-VERSION=${VERSION:-2.83.8}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-3.3.10}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
SRCNAM=blender
BASE_VERSION=${BASE_VERSION:-$( echo $VERSION | sed -e 's/[^0-9.]*//g')}
-PYTHON_VERSION=$(python3 -c "import sys; print(sys.version[:3])")
+PYTHON_VERSION=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
@@ -40,9 +48,13 @@ if [ -z "$ARCH" ]; then
esac
fi
-CWD=$(pwd)
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
TMP=${TMP:-/tmp/SBo}
-PKG=$TMP/package-$SRCNAM
+PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i586" ]; then
@@ -69,14 +81,10 @@ if [ -d /usr/include/cuda ]; then
fi
fi
-embree=""
-if [ -d /usr/include/embree3 ]; then
- # If embree is installed, assume we want to use it
+embree="-DWITH_CYCLES_EMBREE=OFF"
+# If embree is installed, use it unless user says EMBREE=no.
+if [ -d /usr/include/embree3 -a "${EMBREE:-yes}" = "yes" ]; then
embree="-DWITH_CYCLES_EMBREE=ON"
- # However disable embree if requested by e.g. EMBREE=no
- if [ ${EMBREE:-yes} != "yes" ]; then
- embree="-DWITH_CYCLES_EMBREE=OFF"
- fi
fi
set -e
@@ -87,13 +95,16 @@ cd $TMP
rm -rf $SRCNAM-$VERSION
tar xvf $CWD/$SRCNAM-$VERSION.tar.xz
cd $SRCNAM-$VERSION
-patch -p0 < $CWD/01_FindEmbree_so.diff
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
- -o -perm 511 \) -exec chmod 755 {} \; -o \
+ -o -perm 511 \) -exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
+
+sed -i -e '/#include <stdio.h>/a #include <iostream>' intern/locale/boost_locale_wrapper.cpp
+sed -i -e '/#include "util\/windows.h"/a #include <system_error>' intern/cycles/util/thread.cpp
+sed -i -e '/#include <fstream>/a #include <cstdint>' extern/quadriflow/src/loader.cpp
mkdir -p build
cd build
@@ -127,6 +138,7 @@ cd build
-DCMAKE_BUILD_TYPE=Release \
$cuda \
$embree \
+ -DCMAKE_EXE_LINKER_FLAGS:STRING="-lboost_locale"
make
make install DESTDIR=$PKG
@@ -140,17 +152,19 @@ for bin in $BLENDERBINS ; do
mv $PKG/usr/bin/$bin $PKG/usr/bin/$bin.bin
cat <<EOF >$PKG/usr/bin/$bin
#!/bin/sh
-#export PYTHONPATH=/usr/share/$SRCNAM/$BASE_VERSION/python/lib$LIBDIRSUFFIX/python$PYTHON_VERSION
export LD_LIBRARY_PATH=/usr/lib$LIBDIRSUFFIX/opencollada
exec $bin.bin "\$@"
EOF
chmod 0755 $PKG/usr/bin/$bin
done
-mkdir -p $PKG/usr/man/man1
-./doc/manpage/blender.1.py build/bin/blender $PKG/usr/man/man1/blender.1
-find $PKG/usr/man -type f -exec gzip -9 {} \;
-for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+# Recent OSL breaks manpage generation
+if [ ! -e "/usr/lib$LIBDIRSUFFIX/liboslcomp.so" ]; then
+ mkdir -p $PKG/usr/man/man1
+ ./doc/manpage/blender.1.py --blender build/bin/blender --output $PKG/usr/man/man1/blender.1
+ find $PKG/usr/man -type f -exec gzip -9 {} \;
+ for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
+fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
mv $PKG/usr/share/doc/$SRCNAM/* $PKG/usr/doc/$PRGNAM-$VERSION/
@@ -162,4 +176,4 @@ cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/graphics/Blender/Blender.info b/graphics/Blender/Blender.info
index 26038a5885..967d92ba92 100644
--- a/graphics/Blender/Blender.info
+++ b/graphics/Blender/Blender.info
@@ -1,10 +1,10 @@
PRGNAM="Blender"
-VERSION="2.83.8"
+VERSION="3.3.10"
HOMEPAGE="https://blender.org"
-DOWNLOAD="https://download.blender.org/source/blender-2.83.8.tar.xz"
-MD5SUM="1a920506a3a695d629d5f312b9b45c01"
+DOWNLOAD="https://download.blender.org/source/blender-3.3.10.tar.xz"
+MD5SUM="a190dbfc5dfd490d737ee64ba68ce79c"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="ffmpeg jack opencollada opus python-requests valgrind numpy3 SDL2 openimageio freealut tbb embree"
+REQUIRES="potrace OpenSubdiv pugixml jack opencollada valgrind python3-numpy openimageio freealut tbb"
MAINTAINER="Christoph Willing"
EMAIL="chris.willing@linux.com"
diff --git a/graphics/Blender/README b/graphics/Blender/README
index aa1613683c..8fd9285fea 100644
--- a/graphics/Blender/README
+++ b/graphics/Blender/README
@@ -1,26 +1,44 @@
Blender is an integrated suite of free and open source tools enabling
the creation of a broad range of 3D content with the singular
-benefits of cross-platform interoperability. It can be used to
-create 3D visualizations, stills as well as broadcast and cinema
-quality video. It features fully integrated creation suite, offering
-a broad range of essential tools for the creation of 3D content,
-including modeling, uv-mapping, texturing, particle and other
-simulation, scripting, rendering, compositing, post-production and
-game creation.
-
-CUDA support is included if a CUDA installation is detected at build time.
-It may be disable by passing CUDA=no when building e.g.
- CUDA=no sh ./Blender.SlackBuild
-
-Since Blender-2.83.0, SBo's cudatoolkit-8.0.61 is insufficient for a
-successful build. The CUDA handling above remains for cases which may:
- - use a newer CUDA version toolkit
- - require the existing cudatoolkit for other purposes
- (so need CUDA=no for Blender)
-
-Support for embree may be disabled by passing EMBREE=no when building e.g.
- EMBREE=no sh ./Blender.SlackBuild
-
-Version 2.83.8 is the last SBo supported version of Blender for building
-from source code in Slackware64-14.2. A more recent compiler (gcc-9.3.1)
-is required for 2.90.x and later blender versions.
+benefits of cross-platform interoperability. It can be used to create
+3D visualizations, stills as well as broadcast and cinema quality
+video. It features fully integrated creation suite, offering a broad
+range of essential tools for the creation of 3D content, including
+modeling, uv-mapping, texturing, particle and other simulation,
+scripting, rendering, compositing, post-production and game creation.
+
+CUDA support is included if cudatoolkit is installed.
+It may be disabled by passing CUDA=no when building:
+ CUDA=no bash ./Blender.SlackBuild
+
+CUDA support hasn't been thorougly tested, and may break the build. If
+so, build with CUDA=no and report a bug to the maintainer of this
+script.
+
+Optional dependency: embree. If installed, Blender will be built with
+support for it. It may be disabled by passing EMBREE=no when building:
+ EMBREE=no bash ./Blender.SlackBuild
+
+Note for 32-bit users: embree is 64-bit only, and can't be built on
+32-bit Slackware.
+
+Optional dependency: alembic-framework. If already installed, it will
+be automatically detected and incorporated when Blender is built.
+
+To enable support for OptiX Ray Tracing Engine, the OptiX SDK must be
+available in the build environment. Use the OPTIX_ROOT_DIR environment
+variable to identify the SDK location e.g.
+ OPTIX_ROOT_DIR=/home/chris/NVIDIA-OptiX-SDK-7.6.0-linux64-x86_64 bash ./Blender.SlackBuild
+
+Optional dependency: OpenShadingLanguage (OSL). If already installed,
+it will be automatically detected and incorporated when Blender is built.
+Due to an unresolved issue with the current OSL version, generation of
+the blender manpage is suppressed when OSL is detected.
+
+
+This SlackBuild builds Blender from source code. For Slackware 15.0,
+due to its Python 3 version of 3.9.17, the Blender version to be built
+is restricted to version 3.3.10.
+
+See also: graphics/blender (note, lowercase B), which repackages the
+official Blender x86_64 release binary.
diff --git a/graphics/Blender/README.Slackware b/graphics/Blender/README.Slackware
index 2371484de5..36aca39941 100644
--- a/graphics/Blender/README.Slackware
+++ b/graphics/Blender/README.Slackware
@@ -3,81 +3,20 @@ an existing binary version. The process is therefore more complex and
time consuming but allows finer tuning of capabilities of the resulting
package. Working through the prerequisite packages from the REQUIRES field
of Blender.info results in the following basic build order:
- multimedia/ffmpeg
- audio/jack
- libraries/opencv
- graphics/opencollada
- libraries/OpenAL
- python/python3
- python/python-requests
- development/valgrind
- libraries/libwebp
- development/numpy3
- development/SDL2
- graphics/opencolorio
- graphics/openimageio
- libraries/freealut
- graphics/Blender
-
-When generating a new build order, python3 should first be added to the
-REQUIRES field of python-requests.info.
-
-To facilitate the greatest utility for Blender, its is strongly
-suggested that a number of standard SBo packages be built with
-a more complete set of features than provided by the default scripts:
- 1. the opencv package could/should first be built with additional
-features by preinstalling some other packages e.g.
-REQUIRES="
-opencl-headers libjpeg-turbo ffmpeg Sphinx libdc1394
-numpy3 gtkglext tbb jdk
-"
-The cmake configuration in opencv.SlackBuild can be replaced with:
- cmake \
- -DCMAKE_C_FLAGS="$SLKCFLAGS" \
- -DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
- -DCMAKE_BUILD_TYPE="Release" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DBUILD_SHARED_LIBS=ON \
- -DENABLE_PRECOMPILED_HEADERS=OFF \
- -DLIB_SUFFIX=$LIBDIRSUFFIX \
- -DWITH_TBB=ON \
- -DWITH_OPENCL=ON \
- -DWITH_OPENGL=ON \
- -DWITH_QT=ON \
- -DWITH_XINE=ON \
- -DBUILD_EXAMPLES=ON \
- -DINSTALL_C_EXAMPLES=ON \
- -DINSTALL_PYTHON_EXAMPLES=ON \
- -DBUILD_NEW_PYTHON_SUPPORT=ON \
- -DWITH_FFMPEG=ON \
- -DCMAKE_SKIP_RPATH=ON \
- -DWITH_1394:BOOL=ON \
- ..
-
-If resources allow, the very large cudatoolkit package is another
-possible package which may be preinstalled and be utilised by the
-opencv build process.
-
-Blender itself can also use cudatoolkit to provide GPU rendering in
-systems with NVidia GPU cards. In this case, the SlackBuild will
-enable CUDA support if a cudatoolkit installation is detected at
-build time. In the unlikely CUDA support is not wanted despite cudatoolkit
-being available at build time, set the CUDA environment variable to "no"
-when running the SlackBuild e.g.
- CUDA=no sh ./Blender.SlackBuild
-
-NB. Blender-2.83.0 and above requires a newer cudatoolkit than available
-at SBo. If the SBo cudatoolkit is nevertheless installed for other reasons,
-please use CUDA=no when running the SlackBuild.
-
- 2. the ffmpeg package could/should first be built with additional
-features by preinstalling some other packages e.g.
-REQUIRES="lame x264
-speex libbluray xvidcore OpenAL libmodplug frei0r libdc1394 libavc1394
-libiec61883 ladspa_sdk gsm rtmpdump libva twolame celt faac dirac schroedinger"
-
- 3. the numpy SlackBuild at SBo does not build the python3 modules
-which are needed to be useful for any numpy-related python scripting in
-blender. It is therefore numpy3 which is the prerequisite for this build
-of blender.
-
+ libraries/libaec
+ development/python3-numpy
+ graphics/OpenSubdiv
+ graphics/opencollada
+ libraries/freealut
+ libraries/tbb
+ audio/jack
+ libraries/robin-map
+ libraries/hdf5
+ python/pybind11
+ graphics/opencolorio
+ development/valgrind
+ libraries/pugixml
+ graphics/potrace
+ libraries/dcmtk
+ graphics/openimageio
+ graphics/Blender