commit:     ab0afd5cef5a76e47c8d4349c639e33c98b6f3e2
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Tue May  6 21:12:14 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May  8 06:26:54 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ab0afd5c

media-gfx/blender: update 9999

Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/41967
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/blender/blender-9999.ebuild | 136 ++++++++++++++++++----------------
 media-gfx/blender/metadata.xml        |   3 +
 2 files changed, 77 insertions(+), 62 deletions(-)

diff --git a/media-gfx/blender/blender-9999.ebuild 
b/media-gfx/blender/blender-9999.ebuild
index decfddd094f0..abd723cdd1e4 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -48,19 +48,14 @@ if [[ "${PV}" == *9999* ]]; then
                EGIT_BRANCH="blender-v${BLENDER_BRANCH}-release"
        fi
 
-       RESTRICT="!test? ( test )"
 else
        SRC_URI="
                https://download.blender.org/source/${P}.tar.xz
+               test? (
+                       
https://download.blender.org/source/blender-test-data-${BLENDER_BRANCH}.0.tar.xz
+               )
        "
-       # BUG upstream returns LFS references instead of files
-       # SRC_URI+="
-       #       test? (
-       #               
https://projects.blender.org/blender/blender-test-data/archive/blender-v${BLENDER_BRANCH}-release.tar.gz
-       #       )
-       # "
        KEYWORDS="~amd64 ~arm ~arm64"
-       RESTRICT="test" # the test archive contains LFS references
 fi
 
 # assets is CC0-1.0
@@ -72,7 +67,7 @@ SLOT="${BLENDER_BRANCH}"
 IUSE="
        alembic +bullet collada +color-management cuda +cycles 
+cycles-bin-kernels
        debug doc +embree +ffmpeg +fftw +fluid +gmp gnome hip jack
-       jemalloc jpeg2k man +nanovdb ndof nls +oidn oneapi openal +openexr 
+opengl +openpgl
+       jemalloc jpeg2k man manifold +nanovdb ndof nls +oidn oneapi openal 
+openexr +opengl +openpgl
        +opensubdiv +openvdb optix osl pipewire +pdf +potrace +pugixml 
pulseaudio
        renderdoc sdl +sndfile +tbb test +tiff +truetype valgrind vulkan 
wayland +webp X
 "
@@ -81,6 +76,8 @@ if [[ "${PV}" == *9999* ]]; then
        IUSE+="experimental"
 fi
 
+RESTRICT="!test? ( test )"
+
 REQUIRED_USE="${PYTHON_REQUIRED_USE}
        || ( opengl vulkan )
        alembic? ( openexr )
@@ -139,6 +136,7 @@ RDEPEND="${PYTHON_DEPS}
        jack? ( virtual/jack )
        jemalloc? ( dev-libs/jemalloc:= )
        jpeg2k? ( media-libs/openjpeg:2= )
+       manifold? ( >sci-mathematics/manifold-3.0.1 )
        ndof? (
                app-misc/spacenavd
                dev-libs/libspnav
@@ -157,7 +155,7 @@ RDEPEND="${PYTHON_DEPS}
                >=media-gfx/openvdb-11.0.0:=[nanovdb?]
                dev-libs/c-blosc:=
        )
-       optix? ( dev-libs/optix )
+       optix? ( <dev-libs/optix-9:= )
        osl? (
                >=media-libs/osl-1.13:=[${LLVM_USEDEP}]
                media-libs/mesa[${LLVM_USEDEP}]
@@ -309,11 +307,10 @@ src_unpack() {
        else
                default
 
-               # BUG upstream returns LFS references instead of files
-               # if use test; then
-               #       mkdir -p "${S}/tests/data/" || die
-               #       mv blender-test-data/* "${S}/tests/data/" || die
-               # fi
+               # TODO
+               if use test && [[ ${PV} != ${SLOT}.0 ]] ; then
+                       mv "blender-${BLENDER_BRANCH}.0/tests/"* "${S}/tests" 
|| die
+               fi
        fi
 }
 
@@ -343,6 +340,9 @@ src_prepare() {
                -i CMakeLists.txt \
                || die CMAKE_INSTALL_PREFIX_WITH_CONFIG
 
+       # WITH_SYSTEM_GLOG=yes
+       cmake_run_in extern cmake_comment_add_subdirectory glog
+
        mv \
                "release/freedesktop/icons/scalable/apps/blender.svg" \
                "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" \
@@ -391,6 +391,8 @@ src_prepare() {
        else
                cmake_comment_add_subdirectory tests
        fi
+
+       rm -rf extern/gflags || die
 }
 
 src_configure() {
@@ -428,6 +430,7 @@ src_configure() {
                -DWITH_HEADLESS="$(usex !X "$(usex !wayland)")"
                -DWITH_INPUT_NDOF="$(usex ndof)"
                -DWITH_INTERNATIONAL="$(usex nls)"
+               -DWITH_MANIFOLD="$(usex manifold)"
                -DWITH_MATERIALX="no" # TODO: Package MaterialX
                -DWITH_NANOVDB="$(usex nanovdb)"
                -DWITH_OPENCOLLADA="$(usex collada)"
@@ -464,7 +467,7 @@ src_configure() {
 
                # GHOST Options:
                -DWITH_GHOST_WAYLAND="$(usex wayland)"
-               -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
+               # -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
                -DWITH_GHOST_WAYLAND_DYNLOAD="no"
                -DWITH_GHOST_X11="$(usex X)"
                # -DWITH_GHOST_XDND=ON
@@ -499,15 +502,15 @@ src_configure() {
                # Python:
                # -DWITH_PYTHON=ON
                -DWITH_PYTHON_INSTALL="no"
-               # -DWITH_PYTHON_INSTALL_NUMPY="no"
-               # -DWITH_PYTHON_INSTALL_ZSTANDARD="no"
+               -DWITH_PYTHON_INSTALL_NUMPY="no"
+               -DWITH_PYTHON_INSTALL_ZSTANDARD="no"
                # -DWITH_PYTHON_MODULE="no"
-               # -DWITH_PYTHON_SAFETY=
+               -DWITH_PYTHON_SAFETY="OFF"
                -DWITH_PYTHON_SECURITY="yes"
                -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
                -DPYTHON_LIBRARY="$(python_get_library_path)"
                -DPYTHON_VERSION="${EPYTHON/python/}"
-               -DWITH_DRACO="no" # TODO: Package Draco
+               -DWITH_DRACO="yes" # TODO: Package Draco # NOTE use bundled for 
now
 
                # Modifiers:
                -DWITH_MOD_FLUID="$(usex fluid)"
@@ -572,14 +575,11 @@ src_configure() {
        fi
 
        if use hip; then
-               # local -x HIP_PATH="$(hipconfig -p)"
                mycmakeargs+=(
-                       # -DROCM_PATH="$(hipconfig -R)"
                        -DHIP_ROOT_DIR="$(hipconfig -p)"
 
                        -DHIP_HIPCC_FLAGS="-fcf-protection=none"
 
-                       # 
-DHIP_LINKER_EXECUTABLE="$(get_llvm_prefix)/bin/clang++"
                        
-DCMAKE_HIP_LINK_EXECUTABLE="$(get_llvm_prefix)/bin/clang++"
 
                        -DCYCLES_HIP_BINARIES_ARCH="$(get_amdgpu_flags)"
@@ -635,6 +635,7 @@ src_configure() {
 
                # NOTE in lieu of a FEATURE/build_options
                if [[ "${EXPENSIVE_TESTS:-0}" -gt 0 ]]; then
+                       einfo "running expensive tests 
EXPENSIVE_TESTS=${EXPENSIVE_TESTS}"
                        mycmakeargs+=(
                                -DWITH_CYCLES_TEST_OSL="$(usex osl)"
 
@@ -649,6 +650,7 @@ src_configure() {
                                -DWITH_GPU_RENDER_TESTS_VULKAN="$(usex vulkan)"
 
                                -DWITH_SYSTEM_PYTHON_TESTS="yes"
+                               -DTEST_SYSTEM_PYTHON_EXE="${PYTHON}"
                        )
 
                        if [[ "${PV}" == *9999* && "${BVC}" == "alpha" ]] && 
use experimental; then
@@ -690,20 +692,28 @@ src_test() {
 
        if use cuda; then
                cuda_add_sandbox -w
-               addwrite "/dev/char/"
+               addwrite "/proc/self/task"
+               addpredict "/dev/char/"
        fi
 
        local -x CMAKE_SKIP_TESTS=(
-               "^script_pyapi_bpy_driver_secure_eval$"
-               "^cycles_image_colorspace_cpu$"
-               "^cycles_image_data_types_cpu$"
-               "^cycles_image_mapping_cpu$"
-               "^cycles_osl_cpu$"
-               "^cycles_image_data_types_optix$"
                "^compositor_cpu_color$"
                "^compositor_cpu_filter$"
+               "^cycles_image_colorspace_cpu$"
+               "^script_pyapi_bpy_driver_secure_eval$"
        )
 
+       if [[ "${RUN_FAILING_TESTS:-0}" -eq 0 ]]; then
+               einfo "not running failing tests 
RUN_FAILING_TESTS=${RUN_FAILING_TESTS}"
+               CMAKE_SKIP_TESTS+=(
+                       "^cycles_bsdf_cuda$"
+                       "^cycles_image_data_types_cpu$"
+                       "^cycles_image_data_types_optix$"
+                       "^cycles_image_mapping_cpu$"
+                       "^cycles_osl_cpu$"
+               )
+       fi
+
        if ! has_version "media-libs/openusd"; then
                CMAKE_SKIP_TESTS+=(
                        # from pxr import Usd # ModuleNotFoundError: No module 
named 'pxr'
@@ -718,46 +728,48 @@ src_test() {
                )
        fi
 
+       # oiio can't find webp due to missing cmake files # 937031
+       sed -e "s/ WEBP//g" -i "${BUILD_DIR}/tests/python/CTestTestfile.cmake" 
|| die
+
        # For debugging, print out all information.
        local -x VERBOSE="$(usex debug "true" "false")"
+       "${VERBOSE}" && einfo "VERBOSE=${VERBOSE}"
 
        # Show the window in the foreground.
-       local -x USE_WINDOW="false"
-       local -x USE_DEBUG="false"
+       # local -x USE_WINDOW="true" # non-zero
+       [[ -v USE_WINDOW ]] && einfo "USE_WINDOW=${USE_WINDOW}"
 
-       eqawarn "VERBOSE=${VERBOSE}"
-       eqawarn "USE_WINDOW=${USE_WINDOW}"
-       eqawarn "USE_DEBUG=${USE_DEBUG}"
-       eqawarn "BLENDER_SYSTEM_RESOURCES=${BLENDER_SYSTEM_RESOURCES}"
-       eqawarn "EXPENSIVE_TESTS=${EXPENSIVE_TESTS}"
+       # local -x USE_DEBUG="true" # non-zero
+       [[ -v USE_DEBUG ]] && einfo "USE_DEBUG=${USE_DEBUG}"
 
        if [[ "${EXPENSIVE_TESTS:-0}" -gt 0 ]]; then
-               if [[ "${USE_WINDOW}" = "true" ]] &&
-                [[ "${PV}" == *9999* && "${BVC}" == "alpha" ]] &&
-                       use experimental && use wayland; then
-                               # This runs weston
-                               xdg_environment_reset
-               fi
+               einfo "running expensive tests 
EXPENSIVE_TESTS=${EXPENSIVE_TESTS}"
+               # if [[ "${PV}" == *9999* && "${BVC}" == "alpha" ]] &&
+               #       use experimental && use wayland; then
+               #               # This runs weston
+               #               xdg_environment_reset
+               # fi
 
-               if [[ "${USE_WINDOW}" == "true" ]]; then
-                       xdg_environment_reset
-                       # WITH_GPU_RENDER_TESTS_HEADED
-                       if use wayland; then
-                               local compositor exit_code
-                               local logfile=${T}/weston.log
-                               weston --xwayland --backend=headless 
--socket=wayland-5 --idle-time=0 2>"${logfile}" &
-                               compositor=$!
-                               local -x WAYLAND_DISPLAY=wayland-5
-                               sleep 1 # wait for xwayland to be up
-                               local -x DISPLAY="$(grep "xserver listening on 
display" "${logfile}" | cut -d ' ' -f 5)"
-
-                               cmake_src_test
-
-                               exit_code=$?
-                               kill "${compositor}"
-                       elif use X; then
-                               virtx cmake_src_test
-                       fi
+               xdg_environment_reset
+               # WITH_GPU_RENDER_TESTS_HEADED
+               if use wayland; then
+                       local compositor exit_code
+                       local logfile=${T}/weston.log
+                       weston --xwayland --backend=headless --socket=wayland-5 
--idle-time=0 2>"${logfile}" &
+                       compositor=$!
+                       local -x WAYLAND_DISPLAY=wayland-5
+                       sleep 1 # wait for xwayland to be up
+                       # TODO use eapi9-pipestatus
+                       local -x DISPLAY="$(grep "xserver listening on display" 
"${logfile}" | cut -d ' ' -f 5)"
+
+                       cmake_src_test
+
+                       exit_code=$?
+                       kill "${compositor}"
+               elif use X; then
+                       virtx cmake_src_test
+               else
+                       cmake_src_test
                fi
        else
                cmake_src_test

diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml
index ad273f3c5990..0452fbb36970 100644
--- a/media-gfx/blender/metadata.xml
+++ b/media-gfx/blender/metadata.xml
@@ -53,6 +53,9 @@
                <flag name="fluid">
                        Adds fluid simulation support via the built-in 
Mantaflow library.
                </flag>
+               <flag name="manifold">
+                       Enable Manifold render backend via 
<pkg>sci-mathematics/manifold</pkg>
+               </flag>
                <flag name="nanovdb">
                        Enable nanoVDB support in Cycles. Uses less memory than 
regular openVDB when rendering.
                </flag>

Reply via email to