summaryrefslogtreecommitdiff
path: root/media-gfx
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/Manifest.gzbin38359 -> 38358 bytes
-rw-r--r--media-gfx/blender/Manifest4
-rw-r--r--media-gfx/blender/blender-4.3.2.ebuild614
-rw-r--r--media-gfx/blender/blender-9999.ebuild2
-rw-r--r--media-gfx/prusaslicer/Manifest6
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch18
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.9.0-missing-includes.patch10
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch18
-rw-r--r--media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch18
-rw-r--r--media-gfx/prusaslicer/prusaslicer-9999.ebuild5
10 files changed, 691 insertions, 4 deletions
diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz
index a2371a5dca45..b7562c41337c 100644
--- a/media-gfx/Manifest.gz
+++ b/media-gfx/Manifest.gz
Binary files differ
diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest
index 189e493d60de..f10283fe651d 100644
--- a/media-gfx/blender/Manifest
+++ b/media-gfx/blender/Manifest
@@ -8,6 +8,7 @@ DIST blender-3.6.8.tar.xz 70453744 BLAKE2B 5361977951fa1720899fad26092b967cc78b7
DIST blender-4.1.1.tar.xz 82146268 BLAKE2B 1ab4a6c1046851ef619394c62fc73794430dc091e2cab26d3d1d542e9d4519889e9b9731606385e9dc8657448ca3827875526f4a57dd1b5c326a73d8a6f9be8d SHA512 13ad0cdd09879b5c28554faca5a54172f43dc3dcb749d2d1723d3e89e741e6255179af3bd88309b735e058b9b350191e44f3158e882e55f1cedea70b8b21540e
DIST blender-4.2.1.tar.xz 72789532 BLAKE2B 74494e851e9e2e9fdcf4a77fa4e1c177d6b9f01ab1cde9daec40468e5399d84b04225ff3a6919191e685624e9094ea4cb2257a62344d3b0e87072f339253aa82 SHA512 20162bd1185e34c481a0520f4999f8c76018471b485fa72afa446f590638c564a370d036cc4a941bf204fce821d8305d4244b3ba9ec7f09f1839b8a276dfde39
DIST blender-4.2.4.tar.xz 72804204 BLAKE2B 613ae4671cc9263d18fe988b07e8744eb04f67fe53f1c14ad3fbc7d80c58a577e7753871ca775cd40ab5f26ef2bc9030cda57012dda0c4785769f04263aea15b SHA512 1f61c1866aaa680c91fc6e3402b1e10533c8cce32572ffb825c53dc7c15ca51f1157a32d10134ca9e612fbf719406421ccc920b2d8ddd2993675784797381c6a
+DIST blender-4.3.2.tar.xz 74473996 BLAKE2B 9a5c8973561f3296b0ec35990ab4951e34f7c0dd5bee3dd120a49989dc8ca7ebfc9610654e8be9d14463af2197626f490324cdd03118db755f5d0b1f7acce375 SHA512 44697faf9acc2c1e75783d432a1a0040339c3445834961a995e95974d4088e75ee5cb647a3908125259d1910d180910e5bc50d34d40d35f33e03197893581477
EBUILD blender-3.6.15.ebuild 14132 BLAKE2B 0f533ce9cc66019fb6410ca26cd3c434e360d7ac454676711597776c425ae7749d9ec5402c94206a20e3473dd1e7a13adfbc34c74a91457d641dde8de22dcce2 SHA512 7bf2d8f5d85909773f614335f668bb21d19d1de39fae83f06a81c28e678dc8584d00f08e00ae1409066c04d99cea24d402e495fe46afc6c37f66712ae33c4bee
EBUILD blender-3.6.18.ebuild 14133 BLAKE2B 97030e2d089b2bd7cc7e8a3e0c4b8b302c168f3b12be5e18366493776095fd4b95b2107691f467f67fb95e006b3d5ad5442dddff8e39fa53044dbaf263f79216 SHA512 3d90056f798ce49c5028ff860296e1c18201d44fea9056c59150b6b6815d3ac98e03e9b1ba2aa985e883996e7755dec6ef27a9799e889c21bd6d539940fe858c
EBUILD blender-3.6.8.ebuild 14127 BLAKE2B 1de13a7ef689f16a899698c7262bf0a59a9d6ca1a9ed27c446e11b1cfc4b39b94231f08d96b17323f2049b1ec05a28319718402c083061a2b805838ca90931ad SHA512 0647e31bef93c125c407611a690437de86c710beb5b7771801e27e2e561c3d7bfbc350e67fe0275bcbe4a5f049e87c3e600b95bcef9013f156677624b1ce445c
@@ -15,5 +16,6 @@ EBUILD blender-4.1.1-r2.ebuild 17612 BLAKE2B 6c730678d9ee6f98127a3df5df269ee06a3
EBUILD blender-4.1.1.ebuild 17169 BLAKE2B 96ac5b0d84b5c45008ca67d07f55617833801220064e77e37d1f6f0b47a141f29ddc063667ebf09f482899640b02830c31b1cd8b148f3f5fbe61421f931ffd53 SHA512 ed20d53f7bcb93b0f0541145dabf903a10fe3811288c3cebf80396885a4d7aa4552687e86608d5510f8fe87adea9432956e6c21dec47f1e08adc0cc6e399b1c4
EBUILD blender-4.2.1.ebuild 17467 BLAKE2B 5e764bea5de6b0f689b161a1081768253cb7dcfc7906eb6b1bd30bac13671224344a861dfbff8380ed450237363a91dcf16e8e152bacbe92162d70a897914940 SHA512 aaaa65b695f0292894e0bcc6f521c3933a1be4550a2511b5b0c8cdb7a672c79da80ae0aa2d6e84c2ecd39e7dccbdaea67018db387f2b53bf9b45ed64f75320c1
EBUILD blender-4.2.4.ebuild 17435 BLAKE2B 5ea860e1b4b5d816549fdf79023026c8e69985a56c245c5326919f410e8ae80b85eb366ef671c5f231cde620cc707004183f8d224c47efc24071239c570728c1 SHA512 d945dc321834317f587176d16e24c2490406181a11bd5824bb52d5b839c3699cf1bfd051ed5453613b48d17ea61148e667e5ab04f4cbc8eea1826b40d8270ac3
-EBUILD blender-9999.ebuild 17435 BLAKE2B 5ea860e1b4b5d816549fdf79023026c8e69985a56c245c5326919f410e8ae80b85eb366ef671c5f231cde620cc707004183f8d224c47efc24071239c570728c1 SHA512 d945dc321834317f587176d16e24c2490406181a11bd5824bb52d5b839c3699cf1bfd051ed5453613b48d17ea61148e667e5ab04f4cbc8eea1826b40d8270ac3
+EBUILD blender-4.3.2.ebuild 17435 BLAKE2B 5ea860e1b4b5d816549fdf79023026c8e69985a56c245c5326919f410e8ae80b85eb366ef671c5f231cde620cc707004183f8d224c47efc24071239c570728c1 SHA512 d945dc321834317f587176d16e24c2490406181a11bd5824bb52d5b839c3699cf1bfd051ed5453613b48d17ea61148e667e5ab04f4cbc8eea1826b40d8270ac3
+EBUILD blender-9999.ebuild 17436 BLAKE2B fb52cefb5e098c267e7467afea434f151a9f060f73edb0d4b83202f444bf3955d82fc2a0690ef2aefc8fe0c170df6d1a40f0defa5da78c27d54b3f2ed70a5d02 SHA512 e4a32560ba91f1593ddc9c292ac4b8a53c44567cc4e51f0df996ae3a2da946edd444a1495973b92cf8177f79cc69a485512190b557311975e69596133fe7ec90
MISC metadata.xml 3459 BLAKE2B 6fb5c60150a6ff87ef3011bd439886dbba0d41137cd7eb36afe5ce13daf4038178880f19a3afda52decc576132d6b44b17d99bafb611207b8417790706b299f9 SHA512 8057e29057a0a2d3851c44c95116b5ac8c04fbbf3efd1540df63ffe7837201007a99883fca9c6e31f89fb20a099959a81f97d88b14f99cf4910ae9e771b5fdbc
diff --git a/media-gfx/blender/blender-4.3.2.ebuild b/media-gfx/blender/blender-4.3.2.ebuild
new file mode 100644
index 000000000000..b062e630b1a5
--- /dev/null
+++ b/media-gfx/blender/blender-4.3.2.ebuild
@@ -0,0 +1,614 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..12} )
+# NOTE must match media-libs/osl
+LLVM_COMPAT=( {15..18} )
+LLVM_OPTIONAL=1
+
+inherit check-reqs cmake cuda flag-o-matic llvm-r1 pax-utils python-single-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="3D Creation/Animation/Publishing System"
+HOMEPAGE="https://www.blender.org"
+
+if [[ ${PV} = *9999* ]] ; then
+ EGIT_LFS="yes"
+ inherit git-r3
+ EGIT_REPO_URI="https://projects.blender.org/blender/blender.git"
+ EGIT_SUBMODULES=( '*' '-lib/*' )
+ RESTRICT="!test? ( test )"
+else
+ SRC_URI="
+ https://download.blender.org/source/${P}.tar.xz
+ "
+ # test? (
+ # https://projects.blender.org/blender/blender-test-data/archive/blender-v$(ver_cut 1-2)-release.tar.gz
+ # )
+ # "
+ KEYWORDS="~amd64 ~arm ~arm64"
+ RESTRICT="test" # the test archive returns LFS references.
+fi
+
+LICENSE="GPL-3+ cycles? ( Apache-2.0 )"
+SLOT="${PV%.*}"
+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 +openmp +openpgl
+ +opensubdiv +openvdb optix osl +otf +pdf +potrace +pugixml pulseaudio
+ renderdoc sdl +sndfile +tbb test +tiff valgrind vulkan wayland +webp X
+"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ alembic? ( openexr )
+ cuda? ( cycles )
+ cycles? ( openexr tiff tbb )
+ fluid? ( tbb )
+ gnome? ( wayland )
+ hip? ( cycles )
+ nanovdb? ( openvdb )
+ openvdb? ( tbb openexr )
+ optix? ( cuda )
+ osl? ( cycles pugixml )
+ test? ( color-management )"
+
+# Library versions for official builds can be found in the blender source directory in:
+# build_files/build_environment/cmake/versions.cmake
+RDEPEND="${PYTHON_DEPS}
+ app-arch/zstd
+ dev-libs/boost:=[nls?]
+ dev-libs/lzo:2=
+ $(python_gen_cond_dep '
+ dev-python/cython[${PYTHON_USEDEP}]
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+ media-libs/freetype:=[brotli]
+ media-libs/libepoxy:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ media-libs/libsamplerate
+ >=media-libs/openimageio-2.5.6.0:=
+ sys-libs/zlib:=
+ virtual/glu
+ virtual/libintl
+ virtual/opengl
+ alembic? ( >=media-gfx/alembic-1.8.3-r2[boost(+),hdf(+)] )
+ collada? ( >=media-libs/opencollada-1.6.68 )
+ color-management? ( media-libs/opencolorio:= )
+ cuda? ( dev-util/nvidia-cuda-toolkit:= )
+ embree? ( media-libs/embree:=[raymask] )
+ ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] )
+ fftw? ( sci-libs/fftw:3.0= )
+ gmp? ( dev-libs/gmp[cxx] )
+ gnome? ( gui-libs/libdecor )
+ hip? (
+ llvm_slot_17? (
+ dev-util/hip:0/5.7
+ )
+ llvm_slot_18? (
+ >=dev-util/hip-6.1:=[llvm_slot_18(-)]
+ )
+ )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc:= )
+ jpeg2k? ( media-libs/openjpeg:2= )
+ ndof? (
+ app-misc/spacenavd
+ dev-libs/libspnav
+ )
+ nls? ( virtual/libiconv )
+ openal? ( media-libs/openal )
+ oidn? ( >=media-libs/oidn-2.1.0[${LLVM_USEDEP}] )
+ oneapi? ( dev-libs/intel-compute-runtime[l0] )
+ openexr? (
+ >=dev-libs/imath-3.1.7:=
+ >=media-libs/openexr-3.2.1:0=
+ )
+ openpgl? ( media-libs/openpgl:= )
+ opensubdiv? ( >=media-libs/opensubdiv-3.5.0 )
+ openvdb? (
+ >=media-gfx/openvdb-11.0.0:=[nanovdb?]
+ dev-libs/c-blosc:=
+ )
+ optix? ( dev-libs/optix )
+ osl? (
+ >=media-libs/osl-1.13:=[${LLVM_USEDEP}]
+ media-libs/mesa[${LLVM_USEDEP}]
+ )
+ pdf? ( media-libs/libharu )
+ potrace? ( media-gfx/potrace )
+ pugixml? ( dev-libs/pugixml )
+ pulseaudio? ( media-libs/libpulse )
+ sdl? ( media-libs/libsdl2[sound,joystick] )
+ sndfile? ( media-libs/libsndfile )
+ tbb? ( dev-cpp/tbb:= )
+ tiff? ( media-libs/tiff:= )
+ valgrind? ( dev-debug/valgrind )
+ wayland? (
+ >=dev-libs/wayland-1.12
+ >=dev-libs/wayland-protocols-1.15
+ >=x11-libs/libxkbcommon-0.2.0
+ dev-util/wayland-scanner
+ media-libs/mesa[wayland]
+ sys-apps/dbus
+ )
+ vulkan? (
+ media-libs/shaderc
+ dev-util/spirv-tools
+ dev-util/glslang
+ media-libs/vulkan-loader
+ )
+ otf? (
+ media-libs/harfbuzz
+ )
+ renderdoc? (
+ media-gfx/renderdoc
+ )
+ X? (
+ x11-libs/libX11
+ x11-libs/libXi
+ x11-libs/libXxf86vm
+ )
+"
+
+DEPEND="${RDEPEND}
+ dev-cpp/eigen:=
+ vulkan? (
+ dev-util/spirv-headers
+ dev-util/vulkan-headers
+ )
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ dev-python/sphinx[latex]
+ dev-texlive/texlive-bibtexextra
+ dev-texlive/texlive-fontsextra
+ dev-texlive/texlive-fontutils
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexextra
+ )
+ nls? ( sys-devel/gettext )
+ wayland? (
+ dev-util/wayland-scanner
+ )
+ X? (
+ x11-base/xorg-proto
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.2-FindClang.patch"
+ "${FILESDIR}/${PN}-4.0.2-CUDA_NVCC_FLAGS.patch"
+ "${FILESDIR}/${PN}-4.1.1-FindLLVM.patch"
+ "${FILESDIR}/${PN}-4.1.1-numpy.patch"
+)
+
+blender_check_requirements() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+
+ if use doc; then
+ CHECKREQS_DISK_BUILD="4G" check-reqs_pkg_pretend
+ fi
+}
+
+blender_get_version() {
+ # Get blender version from blender itself.
+ BV=$(grep "BLENDER_VERSION " source/blender/blenkernel/BKE_blender_version.h | cut -d " " -f 3; assert)
+ if ((${BV:0:1} < 3)) ; then
+ # Add period (290 -> 2.90).
+ BV=${BV:0:1}.${BV:1}
+ else
+ # Add period and skip the middle number (301 -> 3.1)
+ BV=${BV:0:1}.${BV:2}
+ fi
+}
+
+pkg_pretend() {
+ blender_check_requirements
+
+ if use oneapi; then
+ einfo "The Intel oneAPI support is rudimentary."
+ einfo ""
+ einfo "Please report any bugs you find to https://bugs.gentoo.org/"
+ fi
+}
+
+pkg_setup() {
+ if use osl; then
+ llvm-r1_pkg_setup
+ fi
+
+ blender_check_requirements
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} = *9999* ]] ; then
+ if ! use test; then
+ EGIT_SUBMODULES+=( '-tests/*' )
+ fi
+ git-r3_src_unpack
+ else
+ default
+
+ if use test; then
+ mkdir -p "${S}/tests/data/" || die
+ mv blender-test-data/* "${S}/tests/data/" || die
+ fi
+ fi
+}
+
+src_prepare() {
+ use cuda && cuda_src_prepare
+
+ cmake_src_prepare
+
+ blender_get_version
+
+ # Disable MS Windows help generation. The variable doesn't do what it
+ # it sounds like.
+ sed -e "s|GENERATE_HTMLHELP = YES|GENERATE_HTMLHELP = NO|" \
+ -i doc/doxygen/Doxyfile || die
+
+ # Prepare icons and .desktop files for slotting.
+ sed \
+ -e "s|blender.svg|blender-${BV}.svg|" \
+ -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" \
+ -e "s|blender.desktop|blender-${BV}.desktop|" \
+ -e "s|org.blender.Blender.metainfo.xml|blender-${BV}.metainfo.xml|" \
+ -i source/creator/CMakeLists.txt || die
+
+ sed \
+ -e "s|Name=Blender|Name=Blender ${BV}|" \
+ -e "s|Exec=blender|Exec=blender-${BV}|" \
+ -e "s|Icon=blender|Icon=blender-${BV}|" \
+ -i release/freedesktop/blender.desktop || die
+
+ sed -e "s|\${CMAKE_INSTALL_PREFIX}/\${BLENDER_BIN}|${T}/usr/\${BLENDER_BIN}|g" -i source/creator/CMakeLists.txt || die
+
+ mv \
+ release/freedesktop/icons/scalable/apps/blender.svg \
+ "release/freedesktop/icons/scalable/apps/blender-${BV}.svg" || die
+ mv \
+ release/freedesktop/icons/symbolic/apps/blender-symbolic.svg \
+ "release/freedesktop/icons/symbolic/apps/blender-${BV}-symbolic.svg" || die
+ mv release/freedesktop/blender.desktop "release/freedesktop/blender-${BV}.desktop" || die
+ mv release/freedesktop/org.blender.Blender.metainfo.xml "release/freedesktop/blender-${BV}.metainfo.xml"
+ mv release/freedesktop/org.blender.Blender.appdata.xml "release/freedesktop/blender-${BV}.appdata.xml"
+
+ if use test; then
+ # Without this the tests will try to use /usr/bin/blender and /usr/share/blender/ to run the tests.
+ sed -e "s|set(TEST_INSTALL_DIR.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i tests/CMakeLists.txt || die
+ sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${T}/usr)|g" -i build_files/cmake/testing.cmake || die
+ fi
+
+ if use vulkan; then
+ sed -e "s/extern_vulkan_memory_allocator/extern_vulkan_memory_allocator\nSPIRV-Tools-opt\nSPIRV-Tools\nSPIRV-Tools-link\nglslang\nSPIRV\nSPVRemapper/" -i source/blender/gpu/CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ # -Werror=odr, -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/859607
+ # https://projects.blender.org/blender/blender/issues/120444
+ filter-lto
+
+ # Workaround for bug #922600
+ append-ldflags $(test-flags-CCLD -Wl,--undefined-version)
+
+ append-lfs-flags
+ blender_get_version
+
+ local mycmakeargs=(
+ -DWITH_LIBS_PRECOMPILED=no
+ -DBUILD_SHARED_LIBS=no
+ -DPYTHON_INCLUDE_DIR="$(python_get_includedir)"
+ -DPYTHON_LIBRARY="$(python_get_library_path)"
+ -DPYTHON_VERSION="${EPYTHON/python/}"
+ -DWITH_ALEMBIC=$(usex alembic)
+ -DWITH_BOOST=yes
+ -DWITH_BULLET=$(usex bullet)
+ -DWITH_CODEC_FFMPEG=$(usex ffmpeg)
+ -DWITH_CODEC_SNDFILE=$(usex sndfile)
+ -DWITH_CPU_CHECK=no
+
+ -DWITH_CYCLES=$(usex cycles)
+
+ -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda)
+ -DWITH_CYCLES_CUDA_BINARIES="$(usex cuda $(usex cycles-bin-kernels))"
+ -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix)
+
+ -DWITH_CYCLES_DEVICE_HIP="$(usex hip)"
+ -DWITH_CYCLES_HIP_BINARIES=$(usex hip $(usex cycles-bin-kernels))
+
+ -DWITH_CYCLES_DEVICE_ONEAPI="$(usex oneapi)"
+ -DWITH_CYCLES_ONEAPI_BINARIES="$(usex oneapi $(usex cycles-bin-kernels))"
+
+ -DWITH_CYCLES_HYDRA_RENDER_DELEGATE="no" # TODO: package Hydra
+ -DWITH_CYCLES_EMBREE="$(usex embree)"
+ -DWITH_CYCLES_OSL=$(usex osl)
+ -DWITH_CYCLES_PATH_GUIDING=$(usex openpgl)
+ -DWITH_CYCLES_STANDALONE=no
+ -DWITH_CYCLES_STANDALONE_GUI=no
+
+ -DWITH_DOC_MANPAGE=$(usex man)
+ -DWITH_DRACO="no" # TODO: Package Draco
+ -DWITH_FFTW3=$(usex fftw)
+ -DWITH_GHOST_WAYLAND=$(usex wayland)
+ -DWITH_GHOST_WAYLAND_DYNLOAD="no"
+ -DWITH_GHOST_X11=$(usex X)
+ -DWITH_GMP=$(usex gmp)
+ -DWITH_GTESTS=$(usex test)
+ -DWITH_HARFBUZZ="$(usex otf)"
+ -DWITH_HARU=$(usex pdf)
+ -DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON)
+ -DWITH_HYDRA="no" # TODO: Package Hydra
+ -DWITH_IMAGE_OPENEXR=$(usex openexr)
+ -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k)
+ -DWITH_IMAGE_WEBP=$(usex webp)
+ -DWITH_INPUT_NDOF=$(usex ndof)
+ -DWITH_INSTALL_PORTABLE="no"
+ -DWITH_INTERNATIONAL=$(usex nls)
+ -DWITH_JACK=$(usex jack)
+ -DWITH_MATERIALX="no" # TODO: Package MaterialX
+ -DWITH_MEM_JEMALLOC=$(usex jemalloc)
+ -DWITH_MEM_VALGRIND=$(usex valgrind)
+ -DWITH_MOD_FLUID=$(usex fluid)
+ -DWITH_MOD_OCEANSIM=$(usex fftw)
+ -DWITH_NANOVDB=$(usex nanovdb)
+ -DWITH_OPENAL=$(usex openal)
+ -DWITH_OPENCOLLADA=$(usex collada)
+ -DWITH_OPENCOLORIO=$(usex color-management)
+ -DWITH_OPENIMAGEDENOISE=$(usex oidn)
+ -DWITH_OPENMP=$(usex openmp)
+ -DWITH_OPENSUBDIV=$(usex opensubdiv)
+ -DWITH_OPENVDB=$(usex openvdb)
+ -DWITH_OPENVDB_BLOSC=$(usex openvdb)
+ -DWITH_POTRACE=$(usex potrace)
+ -DWITH_PUGIXML=$(usex pugixml)
+ -DWITH_PULSEAUDIO=$(usex pulseaudio)
+ -DWITH_PYTHON_INSTALL=no
+ -DWITH_PYTHON_INSTALL_NUMPY=no
+ -DWITH_PYTHON_INSTALL_ZSTANDARD=no
+ -DWITH_RENDERDOC="$(usex renderdoc)"
+ -DWITH_SDL=$(usex sdl)
+ -DWITH_STATIC_LIBS=no
+ -DWITH_STRICT_BUILD_OPTIONS=yes
+ -DWITH_SYSTEM_EIGEN3=yes
+ -DWITH_SYSTEM_FREETYPE=yes
+ -DWITH_SYSTEM_LZO=yes
+ -DWITH_TBB=$(usex tbb)
+ -DWITH_USD="no" # TODO: Package USD
+ -DWITH_VULKAN_BACKEND="$(usex vulkan)"
+ -DWITH_XR_OPENXR=no
+ )
+
+ if has_version ">=dev-python/numpy-2"; then
+ mycmakeargs+=(
+ -DPYTHON_NUMPY_INCLUDE_DIRS="$(python_get_sitedir)/numpy/_core/include"
+ -DPYTHON_NUMPY_PATH="$(python_get_sitedir)/numpy/_core/include"
+ )
+ fi
+
+ # requires dev-vcs/git
+ if [[ ${PV} = *9999* ]] ; then
+ mycmakeargs+=( -DWITH_BUILDINFO="yes" )
+ else
+ mycmakeargs+=( -DWITH_BUILDINFO="no" )
+ fi
+
+ if use cuda; then
+ mycmakeargs+=(
+ -DCUDA_NVCC_FLAGS="--compiler-bindir;$(cuda_gccdir)"
+ )
+ fi
+
+ if use hip; then
+ mycmakeargs+=(
+ -DROCM_PATH="$(hipconfig -R)"
+ -DHIP_HIPCC_FLAGS="-fcf-protection=none"
+ )
+ fi
+
+ if use optix; then
+ mycmakeargs+=(
+ -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix
+ -DOPTIX_ROOT_DIR="${EPREFIX}"/opt/optix
+ )
+ fi
+
+ if use wayland; then
+ mycmakeargs+=(
+ -DWITH_GHOST_WAYLAND_APP_ID="blender-${BV}"
+ -DWITH_GHOST_WAYLAND_LIBDECOR="$(usex gnome)"
+ )
+ fi
+
+ # This is currently needed on arm64 to get the NEON SIMD wrapper to compile the code successfully
+ use arm64 && append-flags -flax-vector-conversions
+
+ append-cflags "$(usex debug '-DDEBUG' '-DNDEBUG')"
+ append-cppflags "$(usex debug '-DDEBUG' '-DNDEBUG')"
+
+ if tc-is-gcc ; then
+ # These options only exist when GCC is detected.
+ # We disable these to respect the user's choice of linker.
+ mycmakeargs+=(
+ -DWITH_LINKER_GOLD=no
+ -DWITH_LINKER_LLD=no
+ )
+ # Ease compiling with required gcc similar to cuda_sanitize but for cmake
+ use cuda && use cycles-bin-kernels && mycmakeargs+=( -DCUDA_HOST_COMPILER="$(cuda_gccdir)" )
+ fi
+
+ if tc-is-clang || use osl; then
+ mycmakeargs+=(
+ -DWITH_CLANG=yes
+ -DWITH_LLVM=yes
+ )
+ fi
+
+ if use test ; then
+ local CYCLES_TEST_DEVICES=( "CPU" )
+ if use cycles-bin-kernels; then
+ use cuda && CYCLES_TEST_DEVICES+=( "CUDA" )
+ use optix && CYCLES_TEST_DEVICES+=( "OPTIX" )
+ use hip && CYCLES_TEST_DEVICES+=( "HIP" )
+ fi
+ mycmakeargs+=(
+ -DCYCLES_TEST_DEVICES:STRING="$(local IFS=";"; echo "${CYCLES_TEST_DEVICES[*]}")"
+ -DWITH_COMPOSITOR_REALTIME_TESTS=yes
+ -DWITH_GPU_DRAW_TESTS=yes
+ -DWITH_GPU_RENDER_TESTS=yes
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ # A lot of tests needs to have access to the installed data files.
+ # So install them into the image directory now.
+ DESTDIR="${T}" cmake_build install
+
+ blender_get_version
+ # By default, blender will look for system scripts and data in
+ # /usr/share/, but until this is installed, they are not necessarily
+ # available there. Use this to have blender search the intermediate
+ # install directory instead.
+ export BLENDER_SYSTEM_RESOURCES="${T}/usr/share/blender/${BV}"
+
+ # Brake check: Make sure the above path is valid.
+ # If not, blender will fallback to the default path which is not what
+ # we want.
+ [ -d "$BLENDER_SYSTEM_RESOURCES" ] || die "The custom script path is invalid, fix the ebuild!"
+
+ if use cuda; then
+ cuda_add_sandbox -w
+ addwrite "/dev/dri/renderD128"
+ addwrite "/dev/char/"
+ fi
+
+ if use X; then
+ xdg_environment_reset
+ fi
+
+ addwrite /dev/dri
+
+ cmake_src_test
+
+ # Clean up the image directory for src_install
+ rm -fr "${T}/usr" || die
+}
+
+src_install() {
+ blender_get_version
+
+ # Pax mark blender for hardened support.
+ pax-mark m "${BUILD_DIR}"/bin/blender
+
+ cmake_src_install
+
+ if use man; then
+ # Slot the man page
+ mv "${ED}/usr/share/man/man1/blender.1" "${ED}/usr/share/man/man1/blender-${BV}.1" || die
+ fi
+
+ if use doc; then
+ # By default, blender will look for system scripts and data in
+ # /usr/share/, but until this is installed, they are not necessarily
+ # available there. Use this to have blender search the intermediate
+ # install directory instead.
+ export BLENDER_SYSTEM_RESOURCES="${ED}/usr/share/blender/${BV}"
+
+ # Brake check: Make sure the above path is valid.
+ # If not, blender will fallback to the default path which is not what
+ # we want.
+ [ -d "$BLENDER_SYSTEM_RESOURCES" ] || die "The custom script path is invalid, fix the ebuild!"
+
+ # Workaround for binary drivers.
+ addpredict /dev/ati
+ addpredict /dev/dri
+ addpredict /dev/nvidiactl
+
+ einfo "Generating Blender C/C++ API docs ..."
+ cd "${CMAKE_USE_DIR}"/doc/doxygen || die
+ doxygen -u Doxyfile || die
+ doxygen || die "doxygen failed to build API docs."
+
+ cd "${CMAKE_USE_DIR}" || die
+ einfo "Generating (BPY) Blender Python API docs ..."
+ "${BUILD_DIR}"/bin/blender --background --python doc/python_api/sphinx_doc_gen.py -noaudio || die "sphinx failed."
+
+ cd "${CMAKE_USE_DIR}"/doc/python_api || die
+ sphinx-build sphinx-in BPY_API || die "sphinx failed."
+
+ docinto "html/API/python"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/python_api/BPY_API/.
+
+ docinto "html/API/blender"
+ dodoc -r "${CMAKE_USE_DIR}"/doc/doxygen/html/.
+ fi
+
+ # Fix doc installdir
+ docinto html
+ dodoc "${CMAKE_USE_DIR}"/release/text/readme.html
+ rm -r "${ED}"/usr/share/doc/blender || die
+
+ python_optimize "${ED}/usr/share/blender/${BV}/scripts"
+
+ mv "${ED}/usr/bin/blender-thumbnailer" "${ED}/usr/bin/blender-${BV}-thumbnailer" || die
+ mv "${ED}/usr/bin/blender" "${ED}/usr/bin/blender-${BV}" || die
+}
+
+pkg_postinst() {
+ elog
+ elog "Blender uses python integration. As such, may have some"
+ elog "inherent risks with running unknown python scripts."
+ elog
+ elog "It is recommended to change your blender temp directory"
+ elog "from /tmp to /home/user/tmp or another tmp file under your"
+ elog "home directory. This can be done by starting blender, then"
+ elog "changing the 'Temporary Files' directory in Blender preferences."
+ elog
+
+ if use osl; then
+ ewarn ""
+ ewarn "OSL is know to cause runtime segfaults if Mesa has been linked to"
+ ewarn "an other LLVM version than what OSL is linked to."
+ ewarn "See https://bugs.gentoo.org/880671 for more details"
+ ewarn ""
+ fi
+
+ if ! use python_single_target_python3_11; then
+ elog "You are building Blender with a newer python version than"
+ elog "supported by this version upstream."
+ elog "If you experience breakages with e.g. plugins, please switch to"
+ elog "python_single_target_python3_11 instead."
+ elog "Bug: https://bugs.gentoo.org/737388"
+ elog
+ fi
+
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ xdg_mimeinfo_database_update
+ xdg_desktop_database_update
+
+ ewarn ""
+ ewarn "You may want to remove the following directory."
+ ewarn "~/.config/${PN}/${BV}/cache/"
+ ewarn "It may contain extra render kernels not tracked by portage"
+ ewarn ""
+}
diff --git a/media-gfx/blender/blender-9999.ebuild b/media-gfx/blender/blender-9999.ebuild
index b062e630b1a5..cd2204670f17 100644
--- a/media-gfx/blender/blender-9999.ebuild
+++ b/media-gfx/blender/blender-9999.ebuild
@@ -339,7 +339,7 @@ src_configure() {
-DWITH_CYCLES_STANDALONE_GUI=no
-DWITH_DOC_MANPAGE=$(usex man)
- -DWITH_DRACO="no" # TODO: Package Draco
+ -DWITH_DRACO="yes" # TODO: Package Draco
-DWITH_FFTW3=$(usex fftw)
-DWITH_GHOST_WAYLAND=$(usex wayland)
-DWITH_GHOST_WAYLAND_DYNLOAD="no"
diff --git a/media-gfx/prusaslicer/Manifest b/media-gfx/prusaslicer/Manifest
index 418718866434..151d42f7feca 100644
--- a/media-gfx/prusaslicer/Manifest
+++ b/media-gfx/prusaslicer/Manifest
@@ -6,8 +6,12 @@ AUX prusaslicer-2.8.1-fix-libsoup-double-linking.patch 482 BLAKE2B 0b4f0ba5808ac
AUX prusaslicer-2.8.1-fixed-linking.patch 394 BLAKE2B bb4d6285ee9e199f4d8bed3ecf0a4e0ac814f311a5220958e8a6023a343954bc78454697704ce9ee8bc583a9a536cec249f42b8b3d28fff6515e2499c4de3442 SHA512 b84c966d22be5fda04c8a97421026855289038d69de11ac1a9b053381a35b2e5d3f3354ac51d37ad58f0ba4fec177894de67ef44360b050b9ca61cb06d5a178c
AUX prusaslicer-2.8.1-fstream.patch 1682 BLAKE2B 2acebf6900b82e9b9fb94988d0d8c2ce57d470c6db3e282d6232ed3ffc312611317cede5292274dfdaa3d8aa599b074164a2b5d443d5653b35e3db5dca43f8e0 SHA512 385fc73a68a36466becf325cbf8621aa7428f0bfd18b396066382a8f2a91422d3320b7a257f8b251c04be36c13f52af4569e3d154758cf844238657672e22b22
AUX prusaslicer-2.8.1-opencascade-7.8.0.patch 401 BLAKE2B e2d3a859e418be897d093fb499248d0dda8ab5e3be783cd653591923feb0c4808c7451f4f8e8f0907daa12bd8bd82350a12794c5c8f3136cc73b5ba28e8ba37e SHA512 feecf49443aac23a78c88127e08133f6a6989da93cc187c923aec347286e7cdc8425fc8e4e449f47547a4310a3572bb6391eeb8e7fb16b510db52d4f7f48fc49
+AUX prusaslicer-2.9.0-fpic-all.patch 577 BLAKE2B 19bd43aad7d820f3bbd9ccfd6547d65624d79b6d610194e6c6df898e7d88e0715763cbf54b6e796fe9f65abf42ce43ec44d60498343d0dfee54d2e2c3b721e99 SHA512 d497114082debf2bf15d3fbd1d55f2837beb8685d50ea99edf5a0e2fa8570144ce2a225ecf6f7c27386409b7f7a0522be1fbe42b7fa76de032260227e0eb01f6
AUX prusaslicer-2.9.0-fpic.patch 2470 BLAKE2B c2e97f6451b3b8f3eb791780ab49269767e7a47eb22f085f6559d5009c0dc66ad0f0fffd521f3262f595d8b21a783167094e0b8882c26d37c7bed645d8f51048 SHA512 22d708b0e077e15a83a6a515d10c2aad91674c7fcd0a855470431e1506b98b70f263eae5fe32f1a584b8ad079ed58c3610a9d4e5d88a296d4baebf3afda48ed5
+AUX prusaslicer-2.9.0-missing-includes.patch 306 BLAKE2B 8b8de2ad9c7adee8cddaff29eee2f4aae6a789b150f130846235dd0e76be053e36f1ad5c7396837c59b8246be0ff04ba9e365684ce8bffb30fbd8d18f271ee27 SHA512 0ebb829ff10e5214a19c77aec5f55874df3d04ab16ac70e5fd8219e7fb25e93ef5ab5b30d49cf71bdd154f36157183e2d6a27bb47f011baaeb1b00097e5b8166
+AUX prusaslicer-2.9.0-slic3r-arrange-wrapper.patch 781 BLAKE2B 1698fcb533b05da902a82fd4aad8d96604e0dfa80404a6a55e6fe5a35447fa3c33d9a10f53911292c211fc33e4292de522dd67b7ed08026c26f4f7bf9bbaf2a8 SHA512 e8069d12b2063ddec8861b46e8767f702637e1ce9d6ece75cea8292d8a33e62c6ec52ae6730cdfd2af7d8113a2ddd18f99381837717839d1a34d1ff8a57f904c
+AUX prusaslicer-2.9.0-slic3r-arrange.patch 704 BLAKE2B 45088c902cd03af7f91c4ebc22d62b719e23f31b5bbd1f12fae06d70b6e7acebe5c0310a1369835ee111dae4865860ba64f3654295c54399211d1859243aa657 SHA512 4bb0b39b9e80faccd4f1f57d5829328b27c85d0b98e704ede5154ef1216651cf0d5afa68cd03a1c0e4b478203e4024b49e55a4539d6949433c7c8a94870252fd
DIST prusaslicer-2.8.1.tar.gz 69409077 BLAKE2B dd3ee810ea00d03f1790386d1fe1fd044c038429700cd33f21299abdf5def12902f7a07c23aa3d2a6cfc5e18d1e2534080889d4a33beefb493a504978a742453 SHA512 0471fa579a494d66e6b49c0bc1a9fa91f3a5f9147d8b7fa8133c6f03391f8daddddb19ed222d1be44f6f22e2de3021f3fb839331e3c3ccdf5643caa8a61d6912
EBUILD prusaslicer-2.8.1-r1.ebuild 2708 BLAKE2B 895f155bc49426f137807be45a3f2942d6255090cecc15657896e21f6fdb4ebc1c144ef474f69ae9487306b36cb83860dcebb09cef73e825e658206933b5d0cc SHA512 cf473a7b8978acffae92d579272ee69717b59e849a052422f0aaf66b6b82357ef85536025d8e6e1c32fada8e907be1ecb81ed19a16e14ade1b6fab132c636b3c
-EBUILD prusaslicer-9999.ebuild 2571 BLAKE2B 37a804380047fdb934bd4aa0e59ef2a7eb3ef5a4eb4cd78dd276413fc6922497a8e01f9673468dfbac0816d48d205b0c66e0d4fa38af4d9c208fa58fbaafaf05 SHA512 ea743a8c7bddfeea7bc44c9e27bc8e79590be434b628d12fdcbd1d4f7f8f62e644d59e492b7412fc7fb73f62fc8c9d6d67733dfc4e7983c713cfc6f0c14c6755
+EBUILD prusaslicer-9999.ebuild 2717 BLAKE2B 789583bedc9feb04d3a911ddfc036f12c11a8627fbf12b3086c89160c647ee285f717ffb1d0a4a0eabc59ec0632c3c038dcb4133989d12c034679d56ec28f945 SHA512 ae2adbdebec5ca00e529c5f34394fd3a134c2cd6dd0a448dae3e0c534443f91b5350ab0fad17723f8d6853ad53c92b6de42c3d129f6f2a60639ef6d95c369d70
MISC metadata.xml 1028 BLAKE2B a267e6b0ee72a85b895046cc7d5f659cca379fd799a9ebb802dc1fafd7edfa1b989784b10eb93ac24f1ea6153153b892e28e20055b0a7d2021f6db7742e065b4 SHA512 5760ea954f5ccf09e5d69e101b6d68839a4517a9375adc3009b1bf846b98091ee0555e9c92bb0cf316670efec699cd24d04b4ebe7db5b65e363f83051d868512
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch
new file mode 100644
index 000000000000..f71a5b988424
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch
@@ -0,0 +1,18 @@
+From a48acef85b34b52085378b8ee39a79f7eaeac0fa Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Fri, 20 Dec 2024 20:49:23 +0100
+Subject: [PATCH] cmake: Turn on position independent code for all targets
+
+Fixes: #13694
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,6 +1,9 @@
+ cmake_minimum_required(VERSION 3.13)
+ project(PrusaSlicer-native)
+
++# This enables -fPIC for shared libaries and -fpie for binaries
++set(CMAKE_POSITION_INDEPENDENT_CODE ON)
++
+ add_subdirectory(clipper)
+ find_package(Qhull 7.2 REQUIRED)
+ add_library(qhull INTERFACE)
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-missing-includes.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-missing-includes.patch
new file mode 100644
index 000000000000..d6b1fd097a40
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-missing-includes.patch
@@ -0,0 +1,10 @@
+--- a/src/slic3r/GUI/UserAccountCommunication.cpp
++++ b/src/slic3r/GUI/UserAccountCommunication.cpp
+@@ -13,6 +13,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/nowide/cstdio.hpp>
+ #include <boost/nowide/fstream.hpp>
++#include <boost/nowide/convert.hpp>
+ #include <curl/curl.h>
+ #include <string>
+
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch
new file mode 100644
index 000000000000..a5a77d8fc370
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch
@@ -0,0 +1,18 @@
+From 09c89be8732d4b11f64980c7ac5368cd506847dd Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Fri, 20 Dec 2024 20:15:51 +0100
+Subject: [PATCH] cmake: Install slic3r-arrange-wrapper
+
+Fixes #13805
+--- a/src/slic3r-arrange-wrapper/CMakeLists.txt
++++ b/src/slic3r-arrange-wrapper/CMakeLists.txt
+@@ -33,3 +33,9 @@ add_library(slic3r-arrange-wrapper
+ target_include_directories(slic3r-arrange-wrapper PRIVATE src)
+ target_include_directories(slic3r-arrange-wrapper PUBLIC include)
+ target_link_libraries(slic3r-arrange-wrapper PUBLIC slic3r-arrange)
++
++if (WIN32)
++ install(TARGETS slic3r-arrange-wrapper LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX})
++else()
++ install(TARGETS slic3r-arrange-wrapper LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++endif()
diff --git a/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch
new file mode 100644
index 000000000000..7198d11f7464
--- /dev/null
+++ b/media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch
@@ -0,0 +1,18 @@
+From 5f450dc269ff99af3f0e056ae4b30d254789500b Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Fri, 20 Dec 2024 20:14:52 +0100
+Subject: [PATCH] cmake: Install slic3r-arrange
+
+Fixes #13805
+--- a/src/slic3r-arrange/CMakeLists.txt
++++ b/src/slic3r-arrange/CMakeLists.txt
+@@ -32,3 +32,9 @@ add_library(slic3r-arrange
+ target_include_directories(slic3r-arrange PRIVATE src)
+ target_include_directories(slic3r-arrange PUBLIC include)
+ target_link_libraries(slic3r-arrange PUBLIC libslic3r)
++
++if (WIN32)
++ install(TARGETS slic3r-arrange LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX})
++else()
++ install(TARGETS slic3r-arrange LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
++endif()
diff --git a/media-gfx/prusaslicer/prusaslicer-9999.ebuild b/media-gfx/prusaslicer/prusaslicer-9999.ebuild
index 1832088d5630..2fcf6ded9e4e 100644
--- a/media-gfx/prusaslicer/prusaslicer-9999.ebuild
+++ b/media-gfx/prusaslicer/prusaslicer-9999.ebuild
@@ -62,12 +62,15 @@ DEPEND="${RDEPEND}
PATCHES=(
"${FILESDIR}/${PN}-2.6.0-dont-force-link-to-wayland-and-x11.patch"
- "${FILESDIR}/${PN}-2.8.0-missing-includes.patch"
"${FILESDIR}/${PN}-2.8.0-wxwidgets-3.2.4.patch"
"${FILESDIR}/${PN}-2.8.1-cgal-6.0.patch"
"${FILESDIR}/${PN}-2.8.1-fstream.patch"
"${FILESDIR}/${PN}-2.8.1-fix-libsoup-double-linking.patch"
+ "${FILESDIR}/${PN}-2.9.0-missing-includes.patch"
"${FILESDIR}/${PN}-2.9.0-fpic.patch"
+ "${FILESDIR}/${PN}-2.9.0-fpic-all.patch"
+ "${FILESDIR}/${PN}-2.9.0-slic3r-arrange.patch"
+ "${FILESDIR}/${PN}-2.9.0-slic3r-arrange-wrapper.patch"
)
src_prepare() {