diff options
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/Manifest.gz | bin | 38359 -> 38358 bytes | |||
-rw-r--r-- | media-gfx/blender/Manifest | 4 | ||||
-rw-r--r-- | media-gfx/blender/blender-4.3.2.ebuild | 614 | ||||
-rw-r--r-- | media-gfx/blender/blender-9999.ebuild | 2 | ||||
-rw-r--r-- | media-gfx/prusaslicer/Manifest | 6 | ||||
-rw-r--r-- | media-gfx/prusaslicer/files/prusaslicer-2.9.0-fpic-all.patch | 18 | ||||
-rw-r--r-- | media-gfx/prusaslicer/files/prusaslicer-2.9.0-missing-includes.patch | 10 | ||||
-rw-r--r-- | media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange-wrapper.patch | 18 | ||||
-rw-r--r-- | media-gfx/prusaslicer/files/prusaslicer-2.9.0-slic3r-arrange.patch | 18 | ||||
-rw-r--r-- | media-gfx/prusaslicer/prusaslicer-9999.ebuild | 5 |
10 files changed, 691 insertions, 4 deletions
diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz Binary files differindex a2371a5dca45..b7562c41337c 100644 --- a/media-gfx/Manifest.gz +++ b/media-gfx/Manifest.gz 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() { |