From 1ac83daac7198a5717483e1cfab669ba4f12debe Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 16 Apr 2023 05:49:50 +0100 Subject: gentoo auto-resync : 16:04:2023 - 05:49:50 --- media-gfx/Manifest.gz | Bin 37870 -> 37880 bytes media-gfx/blender/Manifest | 7 +- media-gfx/blender/blender-3.3.5.ebuild | 417 +++++++++++++++++++++++++++++ media-gfx/blender/blender-3.4.1-r1.ebuild | 430 ++++++++++++++++++++++++++++++ media-gfx/blender/blender-9999.ebuild | 31 ++- media-gfx/blender/metadata.xml | 6 + media-gfx/gimp/Manifest | 4 +- media-gfx/gimp/gimp-2.99.14-r1.ebuild | 249 ----------------- media-gfx/gimp/gimp-2.99.14-r2.ebuild | 250 +++++++++++++++++ media-gfx/gimp/gimp-9999.ebuild | 11 +- 10 files changed, 1136 insertions(+), 269 deletions(-) create mode 100644 media-gfx/blender/blender-3.3.5.ebuild create mode 100644 media-gfx/blender/blender-3.4.1-r1.ebuild delete mode 100644 media-gfx/gimp/gimp-2.99.14-r1.ebuild create mode 100644 media-gfx/gimp/gimp-2.99.14-r2.ebuild (limited to 'media-gfx') diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz index 276150509609..fdd737b117c9 100644 Binary files a/media-gfx/Manifest.gz and b/media-gfx/Manifest.gz differ diff --git a/media-gfx/blender/Manifest b/media-gfx/blender/Manifest index 26aa37ad535f..623a238be4e3 100644 --- a/media-gfx/blender/Manifest +++ b/media-gfx/blender/Manifest @@ -12,11 +12,14 @@ DIST blender-2.93.14.tar.xz 43035804 BLAKE2B 72ca99143da393bb23e15a26e197c5ac45c DIST blender-3.0.1-ffmpeg-5.0.patch.bz2 8198 BLAKE2B 2acb1e441bd17cf2d972f981358981d42742ad37656366a52b0adb52efb3f1a6cda0479e1c79d9327b51c8fd3d2c6cb291552adc7716e6a1938ac27b237186b9 SHA512 c09ca2d5a5b99652abcae827965304506e354fc6fc4d6d59c9433c8246e865a0622ddac3118009ad433292690212292a86f7e43e764583525555ca6d653da809 DIST blender-3.3.2.tar.xz 41918064 BLAKE2B 76e689eff9f1e9c1c4e8a9e000a3dec64d7340815966522acb4d827197fae51854060cdfa38104950711fed23b9c66b39011727cf673c1a3e05340a32d2e7783 SHA512 2059cb38dfb56696f80d91420f5f0d1c808b59f4cc7ea71e7ff8e00cfe1cddf8762bcb129f941de8d57c7c72403d88ba4082fca065b59eb17a6d76c2e5006778 DIST blender-3.3.3.tar.xz 41918008 BLAKE2B 6fbd959e18cab6af597a95a4aa392bdc45d53e1efaefc4c4012ce4d1233c3f1118f04833ae6e7c8a2296f127714c665e0de454f2c09887986f5e721dbae3390b SHA512 1560bee9dd770ecd56b1dd3f4b8f3b3b8ba70c4796c0118d13da54f0d8950f26b17678cf66f95f5fcf59d81931518343d401624877fed63f510e3c0ffaea6e83 +DIST blender-3.3.5.tar.xz 41889880 BLAKE2B 145589da5170c760901bf1ca9e9dec8d0b05602aa975cb0e74aadbeb96f326ecd5e0f92cd329c4f70e17c9e3590cf9b1c6611e157c984acd1e9bd06134fee17e SHA512 021deb19cf5e1ccf30e41ff8635ba441d48eddcf4778a11f7c089e6b54f44197fb3679eb967d2ffce47884759b563f20dfbb9a3ee027f79ca78bc3080bd0e85f DIST blender-3.4.1.tar.xz 53666296 BLAKE2B ec5b2771c1b55ecdf3c2c86a413ae5599545800fc072eff45cf212b32c74af60fc3d650ad931fff221c1073adb2b447df3287a965f884a4760a5d972c9877aee SHA512 d6de3ec9cd1a1e4d4e4a838af0cfc113c91c3c1b66703027e0ed61bd818dafc4e4304fd041738ddea32fc76b1ad9b7737cbdcf74d56a0406a87c457375d907ab EBUILD blender-2.93.13.ebuild 12663 BLAKE2B 9902c989fc8cb093781087874e8adbdce759c6b96cc7f5d59da37de84cbff97abf0d9a86b35a5ab7337b62b805a13c79e9cc665f06dc706a2655f4beaa726f60 SHA512 293d03c39995561e64412d2cdc449c7a8bb2f27c2ffd8526ae181ddacde4da9632378965877a96c8ed2e6a4d76afa7645a4a8f1db795030de511bf1d1a7662ce EBUILD blender-2.93.14.ebuild 12664 BLAKE2B 01797b6d1d5cebf758d160f91f730d507a4aeb6d95eae8a8f344274d55f8ffaaf86bde498e305c2660faeb5bad9771fb3fc5119eb8b37c207f0c79ee40c377e6 SHA512 09867011d9aa0b5eaa98060c54597b120f4216090cae85ed5a14fb7da846494a42727f6304d152cd36b3eafd50bd4510ce64f049db89d61a18d5b2cc5baa1a9b EBUILD blender-3.3.2.ebuild 13234 BLAKE2B 84d072459599874ed82e4da080c1e9bb2d1fc40d482484353c2eeba9f062cd511d1e6a18fbd46eb095759ddd0bbe2335ac65c548edd73eee17f0db2ca4ece02d SHA512 eacf38f999ad91d7edaf4319b538c11c7ce688d2a3c13ea13012216661583c0a19812aef7a7f76d88e63872fe7f541b833fdc980a985f6f5a9d4e7813900cbf0 EBUILD blender-3.3.3.ebuild 13235 BLAKE2B 75a32e1ebb4e2f7dfd521e17dc04fd84e91d6d7ccce46c15228df1c3e8f77a6c267f19bb31a13b08bdf3c2609d7f77ee852c4a85edcaa38b707eaba44ae15ffd SHA512 8671263094090fa8eddf8d4ee719e3d47a94339f30ba9124e71df3ca78b08e4ef1e4e9989a46d5fd0aacb8fd65d5de2aee6d6562dd1d9c14d9380b6f2a893b11 +EBUILD blender-3.3.5.ebuild 13246 BLAKE2B a41275ff4126fc941b8174ee96c9feeb8914fac556d7b5f5cdc7389daf1e10a51c41b7d1d485a25fe125db2c76b36483162772cede86c233a6dd5bf0c4c159a8 SHA512 6c7533f0d5f15ff0112536b74d41b9a4a7c6c5fca5ddb7e071369f9e5ad5169adce7a066b8ae5a671753b5d297df45ae0b2731f980d2e270ee97116eca2db374 +EBUILD blender-3.4.1-r1.ebuild 13458 BLAKE2B d3e09f381a5e2b2edad9064c06718bc228a8a396a8cf76ffd19385fe603f962313a259a217b0d70cba93efe7aa4a597a3b6193094c2657a610ece4c0d81933fa SHA512 c59dfbecabe3151c8de7c5c007c86dfb97a77c9ae4963b7c98f762d7ad16e0896831251d1bac88e386705b3b2d2aa72415f4adb128ff530a3cbf3f82dfc2987d EBUILD blender-3.4.1.ebuild 13447 BLAKE2B 01224ea8ca34efa917fc66fd06a0fc3ae7e224fa9677d45ffbbed4c649d83db474d98f46a58fb3cce936c6c2c017a0d71369c834cacc19f58fa80e6c5e71fa30 SHA512 9385907681d5642339cc3e6df05fa05a12305f64a745881761c6a2ac41c1b7028b579978201bc701ce38871ebff483e4d41cd7f3a84c4fe1ec36de4632e5aa99 -EBUILD blender-9999.ebuild 13402 BLAKE2B 468d22bedb74ad4aed22b1c5963806eb57e6288984245a5744e19b1854d8081c2073fb1c008c3eba3a13bafd30ecdd13c343001bcfeb32b4c0551aade5240e85 SHA512 f7561818e8ab21e48bf21b6825f9be062479a200a205597c823b20631d583ff32663d5da1f8495a961c3c6c1791a52c699e9606b3ed901dccf50875c18931e9c -MISC metadata.xml 3083 BLAKE2B 6ba639c8ecc383f3ebf51eaf9a3c323d1154868647317c084fd374512e99bcb3a91496e54079d3ec6b41167043529eac95c263240602bf13e0cf2627e65bec27 SHA512 41d73d22d9f35d17cabc45a1784901ce1c5596c791abc6f828590ce886f7ab17491304e49614df8506cef0dc7bd732899cb945e53a0c57d302fc3480e91e04a0 +EBUILD blender-9999.ebuild 13775 BLAKE2B 6cbfed30312dbaa8166c23d1b6c59ea86489ffa64947432b5aea4ae60fafdbacce3dc1a0c24e1fa53921df693e52ea5de51553a9cff6535239e7863933950563 SHA512 248456dc0051185abdfeb3a65652bda6ba5235a1c96359dd34d35b066c028af3f833d8dee773a3beb595f58f68a2f8b6d7c19d53d733d079db21d44aa9bb58b7 +MISC metadata.xml 3510 BLAKE2B 4b625970e0a29f02b6325adea12830d3be527c511a2511aaf3b06b3f49097fbbe72cbbe9c42ad5d3768e341f0f67eb17d7ec46ca81233ed1d63653a629569f04 SHA512 c60062d6eb0086f833a18ae5c7a86fbe102fe377febaf115adbcb8973c08051d75067740e27e33b07c7713045dce8c58c7c1830334bfecfe923d63404a311cbc diff --git a/media-gfx/blender/blender-3.3.5.ebuild b/media-gfx/blender/blender-3.3.5.ebuild new file mode 100644 index 000000000000..6034a136dbad --- /dev/null +++ b/media-gfx/blender/blender-3.3.5.ebuild @@ -0,0 +1,417 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_10 python3_11 ) + +inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +if [[ ${PV} = *9999* ]] ; then + # Subversion is needed for downloading unit test files + inherit git-r3 subversion + EGIT_REPO_URI="https://git.blender.org/blender.git" +else + SRC_URI="https://download.blender.org/source/${P}.tar.xz" + # Update these between major releases. + TEST_TARBALL_VERSION="$(ver_cut 1-2).0" + #SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )" + KEYWORDS="~amd64 ~arm ~arm64" +fi + +SLOT="${PV%.*}" +LICENSE="|| ( GPL-3 BL )" +IUSE="+bullet +dds +fluid +openexr +tbb \ + alembic collada +color-management cuda +cycles \ + debug doc +embree +ffmpeg +fftw +gmp headless jack jemalloc jpeg2k \ + man +nanovdb ndof nls openal +oidn +openimageio +openmp +opensubdiv \ + +openvdb optix +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile \ + test +tiff valgrind" +RESTRICT="!test? ( test ) test" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + alembic? ( openexr ) + cuda? ( cycles ) + cycles? ( openexr tiff openimageio ) + fluid? ( tbb ) + openvdb? ( tbb ) + optix? ( cuda ) + osl? ( cycles ) + test? ( color-management )" + +# Library versions for official builds can be found in the blender source directory in: +# build_files/build_environment/install_deps.sh +RDEPEND="${PYTHON_DEPS} + 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/glew:* + media-libs/libjpeg-turbo:= + media-libs/libpng:= + media-libs/libsamplerate + 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-2.1.1-r7:= ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + embree? ( >=media-libs/embree-3.10.0[raymask] ) + ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] ) + fftw? ( sci-libs/fftw:3.0= ) + gmp? ( dev-libs/gmp ) + !headless? ( + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXxf86vm + ) + 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-1.4.1 ) + openimageio? ( >=media-libs/openimageio-2.3.12.0-r3:= ) + openexr? ( + >=dev-libs/imath-3.1.4-r2:= + >=media-libs/openexr-3:0= + ) + opensubdiv? ( >=media-libs/opensubdiv-3.4.0 ) + openvdb? ( + >=media-gfx/openvdb-9.0.0:=[nanovdb?] + dev-libs/c-blosc:= + ) + optix? ( =media-libs/osl-1.11.16.0-r3:= ) + pdf? ( media-libs/libharu ) + potrace? ( media-gfx/potrace ) + pugixml? ( dev-libs/pugixml ) + pulseaudio? ( media-sound/pulseaudio ) + sdl? ( media-libs/libsdl2[sound,joystick] ) + sndfile? ( media-libs/libsndfile ) + tbb? ( dev-cpp/tbb:= ) + tiff? ( media-libs/tiff:= ) + valgrind? ( dev-util/valgrind ) +" + +DEPEND="${RDEPEND} + dev-cpp/eigen:= +" + +BDEPEND=" + virtual/pkgconfig + doc? ( + app-doc/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 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-3.2.2-support-building-with-musl-libc.patch + "${FILESDIR}"/${PN}-3.2.2-Cycles-add-option-to-specify-OptiX-runtime-root-dire.patch + "${FILESDIR}"/${PN}-3.2.2-Fix-T100845-wrong-Cycles-OptiX-runtime-compilation-i.patch + "${FILESDIR}"/${PN}-3.3.0-fix-build-with-boost-1.81.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 +} + +pkg_setup() { + blender_check_requirements + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} = *9999* ]] ; then + git-r3_src_unpack + if use test; then + TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests + subversion_fetch ${TESTS_SVN_URL} ../lib/tests + fi + else + default + if use test; then + #The tests are downloaded from: https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests + mkdir -p lib || die + mv "${WORKDIR}"/blender-${TEST_TARBALL_VERSION}-tests/tests lib || die + fi + fi + +} + +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|" -i source/creator/CMakeLists.txt || die + sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die + sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die + + sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die + sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die + sed -e "s|Icon=blender|Icon=blender-${BV}|" -i release/freedesktop/blender.desktop || 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 + + 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|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i tests/CMakeLists.txt || die + sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die + fi +} + +src_configure() { + append-lfs-flags + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" + -DPYTHON_LIBRARY="$(python_get_library_path)" + -DPYTHON_VERSION="${EPYTHON/python/}" + -DWITH_ALEMBIC=$(usex alembic) + -DWITH_ASSERT_ABORT=$(usex debug) + -DWITH_BOOST=ON + -DWITH_BULLET=$(usex bullet) + -DWITH_CODEC_FFMPEG=$(usex ffmpeg) + -DWITH_CODEC_SNDFILE=$(usex sndfile) + -DWITH_CXX_GUARDEDALLOC=$(usex debug) + -DWITH_CYCLES=$(usex cycles) + -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE) + -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix) + -DWITH_CYCLES_EMBREE=$(usex embree) + -DWITH_CYCLES_OSL=$(usex osl) + -DWITH_CYCLES_STANDALONE=OFF + -DWITH_CYCLES_STANDALONE_GUI=OFF + -DWITH_DOC_MANPAGE=$(usex man) + -DWITH_FFTW3=$(usex fftw) + -DWITH_GMP=$(usex gmp) + -DWITH_GTESTS=$(usex test) + -DWITH_HARU=$(usex pdf) + -DWITH_HEADLESS=$(usex headless) + -DWITH_INSTALL_PORTABLE=OFF + -DWITH_IMAGE_DDS=$(usex dds) + -DWITH_IMAGE_OPENEXR=$(usex openexr) + -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k) + -DWITH_IMAGE_TIFF=$(usex tiff) + -DWITH_INPUT_NDOF=$(usex ndof) + -DWITH_INTERNATIONAL=$(usex nls) + -DWITH_JACK=$(usex jack) + -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_OPENIMAGEIO=$(usex openimageio) + -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=OFF + -DWITH_SDL=$(usex sdl) + -DWITH_STATIC_LIBS=OFF + -DWITH_SYSTEM_EIGEN3=ON + -DWITH_SYSTEM_FREETYPE=ON + -DWITH_SYSTEM_GLEW=ON + -DWITH_SYSTEM_LZO=ON + -DWITH_TBB=$(usex tbb) + -DWITH_USD=OFF + -DWITH_XR_OPENXR=OFF + ) + + if use optix; then + mycmakeargs+=( + -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + -DOPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + ) + fi + + append-flags $(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=OFF + -DWITH_LINKER_LLD=OFF + ) + 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. + cmake_src_install + + blender_get_version + # Define custom blender data/script file paths not be able to find them otherwise during testing. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS="${ED}"/usr/share/blender/${BV}/scripts + export BLENDER_SYSTEM_DATAFILES="${ED}"/usr/share/blender/${BV}/datafiles + + # Sanity check that the script and datafile path is valid. + # If they are not vaild, blender will fallback to the default path which is not what we want. + [ -d "$BLENDER_SYSTEM_SCRIPTS" ] || die "The custom script path is invalid, fix the ebuild!" + [ -d "$BLENDER_SYSTEM_DATAFILES" ] || die "The custom datafiles path is invalid, fix the ebuild!" + + cmake_src_test + + # Clean up the image directory for src_install + rm -fr "${ED}"/* || 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 + # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts + export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles + + # 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 + ewarn + ewarn "This ebuild does not unbundle the massive amount of 3rd party" + ewarn "libraries which are shipped with blender. Note that" + ewarn "these have caused security issues in the past." + ewarn "If you are concerned about security, file a bug upstream:" + ewarn " https://developer.blender.org/" + ewarn + + if ! use python_single_target_python3_10; 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_10 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}/${SLOT}/cache/" + ewarn "It may contain extra render kernels not tracked by portage" + ewarn "" +} diff --git a/media-gfx/blender/blender-3.4.1-r1.ebuild b/media-gfx/blender/blender-3.4.1-r1.ebuild new file mode 100644 index 000000000000..ebd952e9cdd4 --- /dev/null +++ b/media-gfx/blender/blender-3.4.1-r1.ebuild @@ -0,0 +1,430 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_10 python3_11 ) + +inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +if [[ ${PV} = *9999* ]] ; then + # Subversion is needed for downloading unit test files + inherit git-r3 subversion + EGIT_REPO_URI="https://git.blender.org/blender.git" +else + SRC_URI="https://download.blender.org/source/${P}.tar.xz" + # Update these between major releases. + TEST_TARBALL_VERSION="$(ver_cut 1-2).0" + #SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )" + KEYWORDS="~amd64 ~arm ~arm64" +fi + +SLOT="${PV%.*}" +LICENSE="|| ( GPL-3 BL )" +IUSE="+bullet +dds +fluid +openexr +tbb \ + alembic collada +color-management cuda +cycles \ + debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k \ + man +nanovdb ndof nls openal +oidn +openimageio +openmp +opensubdiv \ + +openvdb optix +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile \ + test +tiff valgrind wayland X" +RESTRICT="!test? ( test )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + alembic? ( openexr ) + cuda? ( cycles ) + cycles? ( openexr tiff openimageio ) + fluid? ( tbb ) + openvdb? ( tbb ) + optix? ( cuda ) + osl? ( cycles ) + test? ( color-management )" + +# Library versions for official builds can be found in the blender source directory in: +# build_files/build_environment/install_deps.sh +RDEPEND="${PYTHON_DEPS} + 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 + 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-2.1.1-r7:= ) + cuda? ( dev-util/nvidia-cuda-toolkit:= ) + embree? ( >=media-libs/embree-3.10.0[raymask] ) + ffmpeg? ( media-video/ffmpeg:=[x264,mp3,encode,theora,jpeg2k?,vpx,vorbis,opus,xvid] ) + fftw? ( sci-libs/fftw:3.0= ) + gmp? ( dev-libs/gmp ) + 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-1.4.1 ) + openimageio? ( >=media-libs/openimageio-2.3.12.0-r3:= ) + openexr? ( + >=dev-libs/imath-3.1.4-r2:= + >=media-libs/openexr-3:0= + ) + opensubdiv? ( >=media-libs/opensubdiv-3.4.0 ) + openvdb? ( + >=media-gfx/openvdb-9.0.0:=[nanovdb?] + dev-libs/c-blosc:= + ) + optix? ( =media-libs/osl-1.11.16.0-r3:= ) + pdf? ( media-libs/libharu ) + potrace? ( media-gfx/potrace ) + pugixml? ( dev-libs/pugixml ) + pulseaudio? ( media-sound/pulseaudio ) + sdl? ( media-libs/libsdl2[sound,joystick] ) + sndfile? ( media-libs/libsndfile ) + tbb? ( dev-cpp/tbb:= ) + tiff? ( media-libs/tiff:= ) + valgrind? ( dev-util/valgrind ) + wayland? ( + >=dev-libs/wayland-1.12 + >=dev-libs/wayland-protocols-1.15 + >=x11-libs/libxkbcommon-0.2.0 + media-libs/mesa[wayland] + sys-apps/dbus + ) + X? ( + x11-libs/libX11 + x11-libs/libXi + x11-libs/libXxf86vm + ) +" + +DEPEND="${RDEPEND} + dev-cpp/eigen:= +" + +BDEPEND=" + virtual/pkgconfig + doc? ( + app-doc/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 + ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-3.3.0-fix-build-with-boost-1.81.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 +} + +pkg_setup() { + blender_check_requirements + python-single-r1_pkg_setup +} + +src_unpack() { + if [[ ${PV} = *9999* ]] ; then + git-r3_src_unpack + if use test; then + TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests + subversion_fetch ${TESTS_SVN_URL} ../lib/tests + fi + else + default + if use test; then + #The tests are downloaded from: https://svn.blender.org/svnroot/bf-blender/tags/blender-${SLOT}-release/lib/tests + mkdir -p lib || die + mv "${WORKDIR}"/blender-${TEST_TARBALL_VERSION}-tests/tests lib || die + fi + fi + +} + +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|" -i source/creator/CMakeLists.txt || die + sed -e "s|blender-symbolic.svg|blender-${BV}-symbolic.svg|" -i source/creator/CMakeLists.txt || die + sed -e "s|blender.desktop|blender-${BV}.desktop|" -i source/creator/CMakeLists.txt || die + + sed -e "s|Name=Blender|Name=Blender ${PV}|" -i release/freedesktop/blender.desktop || die + sed -e "s|Exec=blender|Exec=blender-${BV}|" -i release/freedesktop/blender.desktop || die + sed -e "s|Icon=blender|Icon=blender-${BV}|" -i release/freedesktop/blender.desktop || 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 + + 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 ${ED}/usr/)|g" -i tests/CMakeLists.txt || die + sed -e "s|string(REPLACE.*|set(TEST_INSTALL_DIR ${ED}/usr/)|g" -i build_files/cmake/Modules/GTestTesting.cmake || die + fi +} + +src_configure() { + append-lfs-flags + blender_get_version + + local mycmakeargs=( + -DBUILD_SHARED_LIBS=OFF + -DPYTHON_INCLUDE_DIR="$(python_get_includedir)" + -DPYTHON_LIBRARY="$(python_get_library_path)" + -DPYTHON_VERSION="${EPYTHON/python/}" + -DWITH_ALEMBIC=$(usex alembic) + -DWITH_ASSERT_ABORT=$(usex debug) + -DWITH_BOOST=ON + -DWITH_BULLET=$(usex bullet) + -DWITH_CODEC_FFMPEG=$(usex ffmpeg) + -DWITH_CODEC_SNDFILE=$(usex sndfile) + -DWITH_CXX_GUARDEDALLOC=$(usex debug) + -DWITH_CYCLES=$(usex cycles) + -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE) + -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix) + -DWITH_CYCLES_EMBREE=$(usex embree) + -DWITH_CYCLES_OSL=$(usex osl) + -DWITH_CYCLES_STANDALONE=OFF + -DWITH_CYCLES_STANDALONE_GUI=OFF + -DWITH_DOC_MANPAGE=$(usex man) + -DWITH_FFTW3=$(usex fftw) + -DWITH_GHOST_WAYLAND=$(usex wayland) + -DWITH_GHOST_WAYLAND_APP_ID=blender-${BV} + -DWITH_GHOST_WAYLAND_DBUS=$(usex wayland) + -DWITH_GHOST_WAYLAND_DYNLOAD=OFF + -DWITH_GHOST_WAYLAND_LIBDECOR=OFF + -DWITH_GHOST_X11=$(usex X) + -DWITH_GMP=$(usex gmp) + -DWITH_GTESTS=$(usex test) + -DWITH_HARU=$(usex pdf) + -DWITH_HEADLESS=$($(use X || use wayland) && echo OFF || echo ON) + -DWITH_INSTALL_PORTABLE=OFF + -DWITH_IMAGE_DDS=$(usex dds) + -DWITH_IMAGE_OPENEXR=$(usex openexr) + -DWITH_IMAGE_OPENJPEG=$(usex jpeg2k) + -DWITH_IMAGE_TIFF=$(usex tiff) + -DWITH_INPUT_NDOF=$(usex ndof) + -DWITH_INTERNATIONAL=$(usex nls) + -DWITH_JACK=$(usex jack) + -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_OPENIMAGEIO=$(usex openimageio) + -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=OFF + -DWITH_SDL=$(usex sdl) + -DWITH_STATIC_LIBS=OFF + -DWITH_SYSTEM_EIGEN3=ON + -DWITH_SYSTEM_FREETYPE=ON + -DWITH_SYSTEM_LZO=ON + -DWITH_TBB=$(usex tbb) + -DWITH_USD=OFF + -DWITH_XR_OPENXR=OFF + ) + + if use optix; then + mycmakeargs+=( + -DCYCLES_RUNTIME_OPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + -DOPTIX_ROOT_DIR="${EPREFIX}"/opt/optix + ) + fi + + append-flags $(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=OFF + -DWITH_LINKER_LLD=OFF + ) + 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. + cmake_src_install + + blender_get_version + # Define custom blender data/script file paths not be able to find them otherwise during testing. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS="${ED}"/usr/share/blender/${BV}/scripts + export BLENDER_SYSTEM_DATAFILES="${ED}"/usr/share/blender/${BV}/datafiles + + # Sanity check that the script and datafile path is valid. + # If they are not vaild, blender will fallback to the default path which is not what we want. + [ -d "$BLENDER_SYSTEM_SCRIPTS" ] || die "The custom script path is invalid, fix the ebuild!" + [ -d "$BLENDER_SYSTEM_DATAFILES" ] || die "The custom datafiles path is invalid, fix the ebuild!" + + cmake_src_test + + # Clean up the image directory for src_install + rm -fr "${ED}"/* || 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 + # Define custom blender data/script file paths. Otherwise Blender will not be able to find them during doc building. + # (Because the data is in the image directory and it will default to look in /usr/share) + export BLENDER_SYSTEM_SCRIPTS=${ED}/usr/share/blender/${BV}/scripts + export BLENDER_SYSTEM_DATAFILES=${ED}/usr/share/blender/${BV}/datafiles + + # 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 + ewarn + ewarn "This ebuild does not unbundle the massive amount of 3rd party" + ewarn "libraries which are shipped with blender. Note that" + ewarn "these have caused security issues in the past." + ewarn "If you are concerned about security, file a bug upstream:" + ewarn " https://developer.blender.org/" + ewarn + + if ! use python_single_target_python3_10; 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_10 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}/${SLOT}/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 11870198acb9..95fefb89052d 100644 --- a/media-gfx/blender/blender-9999.ebuild +++ b/media-gfx/blender/blender-9999.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_10 ) +PYTHON_COMPAT=( python3_10 python3_11 ) inherit check-reqs cmake flag-o-matic pax-utils python-single-r1 toolchain-funcs xdg-utils @@ -14,8 +14,9 @@ if [[ ${PV} = *9999* ]] ; then # Subversion is needed for downloading unit test files inherit git-r3 subversion EGIT_REPO_URI="https://projects.blender.org/blender/blender.git" + ADDONS_EGIT_REPO_URI="https://projects.blender.org/blender/blender-addons.git" else - SRC_URI="https://projects.blender.org/blender/blender/archive/v${PV}.tar.gz" + SRC_URI="https://download.blender.org/source/${P}.tar.xz" # Update these between major releases. TEST_TARBALL_VERSION="$(ver_cut 1-2).0" SRC_URI+=" test? ( https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-${TEST_TARBALL_VERSION}-tests.tar.xz )" @@ -24,18 +25,18 @@ fi SLOT="${PV%.*}" LICENSE="|| ( GPL-3 BL )" -IUSE="+bullet +dds +fluid +openexr +tbb \ - alembic collada +color-management cuda +cycles \ - debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k \ - man +nanovdb ndof nls openal +oidn +openimageio +openmp +opensubdiv \ - +openvdb optix +osl +pdf +potrace +pugixml pulseaudio sdl +sndfile \ - test +tiff valgrind wayland X" +IUSE="+bullet +dds +fluid +openexr +tbb + alembic collada +color-management cuda +cycles cycles-bin-kernels + debug doc +embree +ffmpeg +fftw +gmp jack jemalloc jpeg2k + man +nanovdb ndof nls openal +oidn +openmp +openpgl +opensubdiv + +openvdb optix +osl +pdf +potrace +pugixml pulseaudio sdl + +sndfile test +tiff valgrind wayland X" RESTRICT="!test? ( test )" REQUIRED_USE="${PYTHON_REQUIRED_USE} alembic? ( openexr ) cuda? ( cycles ) - cycles? ( openexr tiff openimageio ) + cycles? ( openexr tiff ) fluid? ( tbb ) openvdb? ( tbb ) optix? ( cuda ) @@ -58,6 +59,7 @@ RDEPEND="${PYTHON_DEPS} media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/libsamplerate + >=media-libs/openimageio-2.4.6.0:= sys-libs/zlib:= virtual/glu virtual/libintl @@ -80,11 +82,11 @@ RDEPEND="${PYTHON_DEPS} nls? ( virtual/libiconv ) openal? ( media-libs/openal ) oidn? ( >=media-libs/oidn-1.4.1 ) - openimageio? ( >=media-libs/openimageio-2.4.6.0:= ) openexr? ( >=dev-libs/imath-3.1.4-r2:= >=media-libs/openexr-3:0= ) + openpgl? ( media-libs/openpgl ) opensubdiv? ( >=media-libs/opensubdiv-3.4.0 ) openvdb? ( >=media-gfx/openvdb-9.0.0:=[nanovdb?] @@ -168,10 +170,16 @@ pkg_setup() { src_unpack() { if [[ ${PV} = *9999* ]] ; then git-r3_src_unpack + + git-r3_fetch ${ADDONS_EGIT_REPO_URI} + git-r3_checkout ${ADDONS_EGIT_REPO_URI} ${S}/scripts/addons + if use test; then TESTS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests subversion_fetch ${TESTS_SVN_URL} ../lib/tests fi + ASSETS_SVN_URL=https://svn.blender.org/svnroot/bf-blender/trunk/lib/assets + subversion_fetch ${ASSETS_SVN_URL} ../lib/assets else default if use test; then @@ -230,10 +238,12 @@ src_configure() { -DWITH_CODEC_SNDFILE=$(usex sndfile) -DWITH_CXX_GUARDEDALLOC=$(usex debug) -DWITH_CYCLES=$(usex cycles) + -DWITH_CYCLES_CUDA_BINARIES=$(usex cycles-bin-kernels) -DWITH_CYCLES_DEVICE_CUDA=$(usex cuda TRUE FALSE) -DWITH_CYCLES_DEVICE_OPTIX=$(usex optix) -DWITH_CYCLES_EMBREE=$(usex embree) -DWITH_CYCLES_OSL=$(usex osl) + -DWITH_CYCLES_PATH_GUIDING=$(usex openpgl) -DWITH_CYCLES_STANDALONE=OFF -DWITH_CYCLES_STANDALONE_GUI=OFF -DWITH_DOC_MANPAGE=$(usex man) @@ -265,7 +275,6 @@ src_configure() { -DWITH_OPENCOLLADA=$(usex collada) -DWITH_OPENCOLORIO=$(usex color-management) -DWITH_OPENIMAGEDENOISE=$(usex oidn) - -DWITH_OPENIMAGEIO=$(usex openimageio) -DWITH_OPENMP=$(usex openmp) -DWITH_OPENSUBDIV=$(usex opensubdiv) -DWITH_OPENVDB=$(usex openvdb) diff --git a/media-gfx/blender/metadata.xml b/media-gfx/blender/metadata.xml index 41cc89220a5f..5107673c50f9 100644 --- a/media-gfx/blender/metadata.xml +++ b/media-gfx/blender/metadata.xml @@ -37,6 +37,11 @@ Build cycles renderer (requires media-libs/openimageio and dev-libs/boost). + + Precompile the cycles render kernels for the CUDA/HIP/OneAPI backends, if they are enabled, at compile time. + This makes it so that the user doesn't have to wait for the kernels to compile when they are used for the first time in Blender. + If this option is not on, they will be built as needed at runtime. + Adds DDS textures support to Blender. @@ -60,6 +65,7 @@ Allow OpenCL Graphics Acceleration. This may require extra graphics card drivers. Enable OpenImageIO Support + Enable path guiding support in Cycles Add rendering support form OpenSubdiv from Dreamworks Animation through media-libs/opensubdiv. diff --git a/media-gfx/gimp/Manifest b/media-gfx/gimp/Manifest index 4277f6177fe0..2636c94c2cd4 100644 --- a/media-gfx/gimp/Manifest +++ b/media-gfx/gimp/Manifest @@ -5,6 +5,6 @@ DIST gimp-2.10.34.tar.bz2 31405329 BLAKE2B 0b2d3a81abf89684bb90e2101896db3479a25 DIST gimp-2.99.14.tar.xz 24346236 BLAKE2B 087e28621c736a6ad8241c0f36334c6c5af53cb945711b089d15b54292ffcb7713be229591b8ccf79d06f7c7ede0919ceecad4deb511b20822a4f68ccfa1df49 SHA512 6ea3ca27cb0c830042ad42789d3017989dda195ebbdff38793afbee720f2986d489bec39c077b84889c847c0afc1bc7a2fec2e916574ae08aec42019715cb204 EBUILD gimp-2.10.32-r4.ebuild 5792 BLAKE2B d540c13b099e3d07089ae3ec68dba083bdcf5d27f860eba9ab5117dfb72b3a0715d1530eab54e06a2a4a93af78ae1b878ea37c3d187ee090bc208b88160e44d4 SHA512 7cbc3ae79e6add3294644c71b94528f1865bc22d951463f70fe05fae3ab7273891f3c1e82fe803c05e382dd7ce56c59f503df45cffdc5a9b151820a35d8fd818 EBUILD gimp-2.10.34-r1.ebuild 5695 BLAKE2B 81016a1b2baadb8a4c1999a87152380c0385aad4641828efdd834c1dbd05e1ce5907bbc4d868f18142ec274b58ce82e1eee15da8f71ebc8d5f9ea627cbadfbee SHA512 8e9cb90936b0b1ae7f4237341ab47038b51d91ea8c3a9f3adfbe6e5a372c619d6767d8e3a51d60acd7a5f8ede9d55f8176c8d5e967bc95762b7a9f5deaf2bfa8 -EBUILD gimp-2.99.14-r1.ebuild 6865 BLAKE2B 96aca299a8aa07c49e447bf7ae78a404f2da5d769319d191f367a61b4d4e34f334606f1c53ef0c0c1d8d37d12bdd52a62fa7af163d377f08f81cfe4208030099 SHA512 81c8bd180f2999d1a7c594f03ed51eebc10c07833bb5e0288a7095e57292afbdce67c55f87e97ff4227a1570c78f8f842b9c89ada9debebdf8c3c24e89776f2d -EBUILD gimp-9999.ebuild 6684 BLAKE2B 049f99cd38d7fc3ac83dde87373784800e0e8cba1d4bd904e356fc83a7a16da0bd363e2455a57f51d15d61bb69ed02fc5bc748a9dcffb6a24456b1b8f030d8f1 SHA512 7b0dbc11addcbae623b3e314be7f3d89defa54ba64c98178b9ac2bb67285e2b916e83fd744dfb0248c58cce926e596a9d9736f40442a59bfe184fd8767631ca5 +EBUILD gimp-2.99.14-r2.ebuild 6890 BLAKE2B 5ec29388074da8724f31a5ec375451e90ab75dff100efdf1245bb336b68239231c0d1f6d24121ceb718a00053ea511a00daf5d30e313c94ca39e4625174316f7 SHA512 35d279deac4f5892fc2015e63022b1524fa663c317f0a69bf1bad8af7cfc6c740d75944bea1c52e676ac2958bef117535dc654eef45619cd1acfd1bed14b85ed +EBUILD gimp-9999.ebuild 6709 BLAKE2B 1b420d17aef83cf1b58ef9b96da47dff88a484d1ed42704fa1a5bba44d503b89e795d729e4a556b4e514ad2da207e464bccf333ea09e5eae15af5fc585226b36 SHA512 4ca7db1be7112bfe7d273d94e6b0836626d157a9510abff71dbed3d30781e23188657189588856bd2d8ef68b46af4ee67a36cb0d8b43153e39df4c8a7e8f7b36 MISC metadata.xml 648 BLAKE2B 3454806e0bb680d45e98fd571cc5ad2e09d1083a84b44efb49ea527432be8a255ae02c1c53ff6bf47ce9e9e1a471d422212fd4c08d4983476c2585fa9b96e541 SHA512 dc39d7aa41dc6ae6ab850eec0ce9e10b0085aa8f4b4d762305f7ab70b7a1f7bbe454c21f3d87e796c29c41a4b99f7b3ca38a54261188e7b8acbf8bd3d79dfcd0 diff --git a/media-gfx/gimp/gimp-2.99.14-r1.ebuild b/media-gfx/gimp/gimp-2.99.14-r1.ebuild deleted file mode 100644 index 2383b1a4a81c..000000000000 --- a/media-gfx/gimp/gimp-2.99.14-r1.ebuild +++ /dev/null @@ -1,249 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{9..11} ) -VALA_USE_DEPEND=vapigen - -inherit lua-single meson python-single-r1 vala xdg - -DESCRIPTION="GNU Image Manipulation Program" -HOMEPAGE="https://www.gimp.org/" -SRC_URI="mirror://gimp/v$(ver_cut 1-2)/${P}.tar.xz" - -LICENSE="GPL-3+ LGPL-3+" -SLOT="0/3" - -IUSE="X aalib alsa doc gnome heif javascript jpeg2k jpegxl lua mng openexr postscript python test udev unwind vala vector-icons webp wmf xpm" -REQUIRED_USE=" - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -RESTRICT="!test? ( test )" - -# media-libs/{babl,gegl} are required to be built with USE="introspection" -# to fix the compilation checking of /usr/share/gir-1.0/{Babl-0.1gir,Gegl-0.4.gir} -COMMON_DEPEND=" - >=app-accessibility/at-spi2-core-2.46.0 - >=app-text/poppler-0.90.1[cairo] - >=app-text/poppler-data-0.4.9 - >=dev-libs/appstream-glib-0.7.16 - >=dev-libs/glib-2.68.0:2 - >=dev-libs/json-glib-1.4.4 - dev-libs/libxml2:2 - dev-libs/libxslt - >=gnome-base/librsvg-2.40.21:2 - >=media-gfx/mypaint-brushes-2.0.2:= - >=media-libs/babl-0.1.98[introspection,lcms,vala?] - >=media-libs/fontconfig-2.12.6 - >=media-libs/freetype-2.10.2 - >=media-libs/gegl-0.4.40:0.4[cairo,introspection,lcms,vala?] - >=media-libs/gexiv2-0.14.0 - >=media-libs/harfbuzz-2.6.5:= - >=media-libs/lcms-2.13.1:2 - media-libs/libjpeg-turbo:= - >=media-libs/libmypaint-1.6.1:= - >=media-libs/libpng-1.6.37:0= - >=media-libs/tiff-4.1.0:= - net-libs/glib-networking[ssl] - sys-libs/zlib - >=x11-libs/cairo-1.16.0 - >=x11-libs/gdk-pixbuf-2.40.0:2[introspection] - >=x11-libs/gtk+-3.24.16:3[introspection] - >=x11-libs/pango-1.44.7 - aalib? ( media-libs/aalib ) - alsa? ( >=media-libs/alsa-lib-1.0.0 ) - heif? ( >=media-libs/libheif-1.13.0:= ) - javascript? ( dev-libs/gjs ) - jpeg2k? ( >=media-libs/openjpeg-2.3.1:2= ) - jpegxl? ( >=media-libs/libjxl-0.6.1:= ) - lua? ( - ${LUA_DEPS} - $(lua_gen_cond_dep ' - dev-lua/lgi[${LUA_USEDEP}] - ') - ) - mng? ( media-libs/libmng:= ) - openexr? ( >=media-libs/openexr-2.3.0:= ) - postscript? ( app-text/ghostscript-gpl:= ) - python? ( - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - >=dev-python/pygobject-3.0:3[${PYTHON_USEDEP}] - ') - ) - udev? ( >=dev-libs/libgudev-167:= ) - unwind? ( >=sys-libs/libunwind-1.1.0:= ) - webp? ( >=media-libs/libwebp-0.6.0:= ) - wmf? ( >=media-libs/libwmf-0.2.8 ) - X? ( x11-libs/libXcursor ) - xpm? ( x11-libs/libXpm ) -" - -RDEPEND=" - ${COMMON_DEPEND} - x11-themes/hicolor-icon-theme - gnome? ( gnome-base/gvfs ) -" - -DEPEND=" - ${COMMON_DEPEND} - test? ( x11-misc/xvfb-run ) - vala? ( $(vala_depend) ) -" - -# TODO: there are probably more atoms in DEPEND which should be in BDEPEND now -BDEPEND=" - >=dev-lang/perl-5.30.3 - dev-util/gdbus-codegen - >=sys-devel/gettext-0.21 - doc? ( - app-text/yelp-tools - dev-libs/gobject-introspection[doctool] - dev-util/gi-docgen - ) - virtual/pkgconfig -" - -DOCS=( "AUTHORS" "devel-docs/HACKING.md" "NEWS" "README" "README.i18n" ) - -pkg_setup() { - use lua && lua-single_pkg_setup - - if use python; then - python-single-r1_pkg_setup - fi -} - -src_prepare() { - default - - sed -i -e 's/mypaint-brushes-1.0/mypaint-brushes-2.0/' meson.build || die #737794 - - # Fix Gimp and GimpUI devel doc installation paths - sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp/meson.build || die - sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp-ui/meson.build || die - - # Fix pygimp.interp python implementation path. - # Meson @PYTHON_PATH@ use sandbox path e.g.: - # '/var/tmp/portage/media-gfx/gimp-2.99.12/temp/python3.10/bin/python3' - sed -i -e 's/@PYTHON_PATH@/'${EPYTHON}'/' plug-ins/python/pygimp.interp.in || die - - # Set proper intallation path of documentation logo - sed -i -e "s/'gimp-@0@'.format(gimp_app_version)/'gimp-@0@.@1@'.format(gimp_app_version, gimp_app_version_micro)/" data/images/meson.build || die -} - -_adjust_sandbox() { - # Bugs #569738 and #591214 - local nv - for nv in /dev/nvidia-uvm /dev/nvidiactl /dev/nvidia{0..9} ; do - # We do not check for existence as they may show up later - # https://bugs.gentoo.org/show_bug.cgi?id=569738#c21 - addwrite "${nv}" - done - - addwrite /dev/dri/ # bugs #574038 and #684886 - addwrite /dev/ati/ # bug #589198 - addwrite /proc/mtrr # bug #589198 -} - -src_configure() { - _adjust_sandbox - - use vala && vala_setup - - local emesonargs=( - -Denable-default-bin=true - - -Dcheck-update=no - -Denable-multiproc=true - -Dappdata-test=disabled - -Dbug-report-url=https://bugs.gentoo.org/ - -Dlibbacktrace=false - -Dwebkit-unmaintained=false - $(meson_feature aalib aa) - $(meson_feature alsa) - $(meson_feature doc gi-docgen) - $(meson_feature heif) - $(meson_feature jpeg2k jpeg2000) - $(meson_feature jpegxl jpeg-xl) - $(meson_feature mng) - $(meson_feature openexr) - $(meson_feature postscript ghostscript) - $(meson_feature test headless-tests) - $(meson_feature udev gudev) - $(meson_feature vala vala-plugins) - $(meson_feature webp) - $(meson_feature wmf) - $(meson_feature X xcursor) - $(meson_feature xpm) - $(meson_use doc g-ir-doc) - $(meson_use javascript) - $(meson_use lua) - $(meson_use python) - $(meson_use unwind libunwind) - $(meson_use vector-icons) - ) - - meson_src_configure -} - -src_compile() { - export XDG_DATA_DIRS="${EPREFIX}"/usr/share # bug 587004 - meson_src_compile -} - -# for https://bugs.gentoo.org/664938 -_rename_plugins() { - einfo 'Renaming plug-ins to not collide with pre-2.10.6 file layout (bug #664938)...' - local prename=gimp-org- - ( - cd "${ED}"/usr/$(get_libdir)/gimp/2.99/plug-ins || exit 1 - for plugin_slash in $(ls -d1 */); do - plugin=${plugin_slash%/} - if [[ -f ${plugin}/${plugin} ]]; then - # NOTE: Folder and file name need to match for Gimp to load that plug-in - # so "file-svg/file-svg" becomes "${prename}file-svg/${prename}file-svg" - mv ${plugin}/{,${prename}}${plugin} || exit 1 - mv {,${prename}}${plugin} || exit 1 - fi - done - ) -} - -src_install() { - meson_src_install - - if use python; then - python_optimize - fi - - # Workaround for bug #321111 to give GIMP the least - # precedence on PDF documents by default - mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die - - find "${D}" -name '*.la' -type f -delete || die - - # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527) - mv "${ED}"/usr/share/man/man1/gimp-console{-*,}.1 || die - - # Create symlinks for Gimp exec in /usr/bin - dosym "${ESYSROOT}"/usr/bin/gimp-2.99 /usr/bin/gimp - dosym "${ESYSROOT}"/usr/bin/gimp-console-2.99 /usr/bin/gimp-console - dosym "${ESYSROOT}"/usr/bin/gimp-script-fu-interpreter-3.0 /usr/bin/gimp-script-fu-interpreter - dosym "${ESYSROOT}"/usr/bin/gimp-test-clipboard-2.99 /usr/bin/gimp-test-clipboard - dosym "${ESYSROOT}"/usr/bin/gimptool-2.99 /usr/bin/gimptool - - _rename_plugins || die -} - -pkg_postinst() { - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/media-gfx/gimp/gimp-2.99.14-r2.ebuild b/media-gfx/gimp/gimp-2.99.14-r2.ebuild new file mode 100644 index 000000000000..ef598098c880 --- /dev/null +++ b/media-gfx/gimp/gimp-2.99.14-r2.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( luajit ) +PYTHON_COMPAT=( python3_{9..11} ) +VALA_USE_DEPEND=vapigen + +inherit lua-single meson python-single-r1 vala xdg + +DESCRIPTION="GNU Image Manipulation Program" +HOMEPAGE="https://www.gimp.org/" +SRC_URI="mirror://gimp/v$(ver_cut 1-2)/${P}.tar.xz" + +LICENSE="GPL-3+ LGPL-3+" +SLOT="0/3" + +IUSE="X aalib alsa doc gnome heif javascript jpeg2k jpegxl lua mng openexr postscript python test udev unwind vala vector-icons webp wmf xpm" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RESTRICT="!test? ( test )" + +# media-libs/{babl,gegl} are required to be built with USE="introspection" +# to fix the compilation checking of /usr/share/gir-1.0/{Babl-0.1gir,Gegl-0.4.gir} +COMMON_DEPEND=" + >=app-accessibility/at-spi2-core-2.46.0 + >=app-text/poppler-0.90.1[cairo] + >=app-text/poppler-data-0.4.9 + >=dev-libs/appstream-glib-0.7.16 + >=dev-libs/glib-2.68.0:2 + >=dev-libs/json-glib-1.4.4 + dev-libs/libxml2:2 + dev-libs/libxslt + >=gnome-base/librsvg-2.40.21:2 + >=media-gfx/mypaint-brushes-2.0.2:= + >=media-libs/babl-0.1.98[introspection,lcms,vala?] + >=media-libs/fontconfig-2.12.6 + >=media-libs/freetype-2.10.2 + >=media-libs/gegl-0.4.40:0.4[cairo,introspection,lcms,vala?] + >=media-libs/gexiv2-0.14.0 + >=media-libs/harfbuzz-2.6.5:= + >=media-libs/lcms-2.13.1:2 + media-libs/libjpeg-turbo:= + >=media-libs/libmypaint-1.6.1:= + >=media-libs/libpng-1.6.37:0= + >=media-libs/tiff-4.1.0:= + net-libs/glib-networking[ssl] + sys-libs/zlib + >=x11-libs/cairo-1.16.0 + >=x11-libs/gdk-pixbuf-2.40.0:2[introspection] + >=x11-libs/gtk+-3.24.16:3[introspection] + >=x11-libs/pango-1.44.7 + >=x11-libs/libXmu-1.1.4 + aalib? ( media-libs/aalib ) + alsa? ( >=media-libs/alsa-lib-1.0.0 ) + heif? ( >=media-libs/libheif-1.13.0:= ) + javascript? ( dev-libs/gjs ) + jpeg2k? ( >=media-libs/openjpeg-2.3.1:2= ) + jpegxl? ( >=media-libs/libjxl-0.6.1:= ) + lua? ( + ${LUA_DEPS} + $(lua_gen_cond_dep ' + dev-lua/lgi[${LUA_USEDEP}] + ') + ) + mng? ( media-libs/libmng:= ) + openexr? ( >=media-libs/openexr-2.3.0:= ) + postscript? ( app-text/ghostscript-gpl:= ) + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + >=dev-python/pygobject-3.0:3[${PYTHON_USEDEP}] + ') + ) + udev? ( >=dev-libs/libgudev-167:= ) + unwind? ( >=sys-libs/libunwind-1.1.0:= ) + webp? ( >=media-libs/libwebp-0.6.0:= ) + wmf? ( >=media-libs/libwmf-0.2.8 ) + X? ( x11-libs/libXcursor ) + xpm? ( x11-libs/libXpm ) +" + +RDEPEND=" + ${COMMON_DEPEND} + x11-themes/hicolor-icon-theme + gnome? ( gnome-base/gvfs ) +" + +DEPEND=" + ${COMMON_DEPEND} + test? ( x11-misc/xvfb-run ) + vala? ( $(vala_depend) ) +" + +# TODO: there are probably more atoms in DEPEND which should be in BDEPEND now +BDEPEND=" + >=dev-lang/perl-5.30.3 + dev-util/gdbus-codegen + >=sys-devel/gettext-0.21 + doc? ( + app-text/yelp-tools + dev-libs/gobject-introspection[doctool] + dev-util/gi-docgen + ) + virtual/pkgconfig +" + +DOCS=( "AUTHORS" "devel-docs/HACKING.md" "NEWS" "README" "README.i18n" ) + +pkg_setup() { + use lua && lua-single_pkg_setup + + if use python; then + python-single-r1_pkg_setup + fi +} + +src_prepare() { + default + + sed -i -e 's/mypaint-brushes-1.0/mypaint-brushes-2.0/' meson.build || die #737794 + + # Fix Gimp and GimpUI devel doc installation paths + sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp/meson.build || die + sed -i -e "s/'doc'/'gtk-doc'/" devel-docs/reference/gimp-ui/meson.build || die + + # Fix pygimp.interp python implementation path. + # Meson @PYTHON_PATH@ use sandbox path e.g.: + # '/var/tmp/portage/media-gfx/gimp-2.99.12/temp/python3.10/bin/python3' + sed -i -e 's/@PYTHON_PATH@/'${EPYTHON}'/' plug-ins/python/pygimp.interp.in || die + + # Set proper intallation path of documentation logo + sed -i -e "s/'gimp-@0@'.format(gimp_app_version)/'gimp-@0@.@1@'.format(gimp_app_version, gimp_app_version_micro)/" data/images/meson.build || die +} + +_adjust_sandbox() { + # Bugs #569738 and #591214 + local nv + for nv in /dev/nvidia-uvm /dev/nvidiactl /dev/nvidia{0..9} ; do + # We do not check for existence as they may show up later + # https://bugs.gentoo.org/show_bug.cgi?id=569738#c21 + addwrite "${nv}" + done + + addwrite /dev/dri/ # bugs #574038 and #684886 + addwrite /dev/ati/ # bug #589198 + addwrite /proc/mtrr # bug #589198 +} + +src_configure() { + _adjust_sandbox + + use vala && vala_setup + + local emesonargs=( + -Denable-default-bin=true + + -Dcheck-update=no + -Denable-multiproc=true + -Dappdata-test=disabled + -Dbug-report-url=https://bugs.gentoo.org/ + -Dlibbacktrace=false + -Dwebkit-unmaintained=false + $(meson_feature aalib aa) + $(meson_feature alsa) + $(meson_feature doc gi-docgen) + $(meson_feature heif) + $(meson_feature jpeg2k jpeg2000) + $(meson_feature jpegxl jpeg-xl) + $(meson_feature mng) + $(meson_feature openexr) + $(meson_feature postscript ghostscript) + $(meson_feature test headless-tests) + $(meson_feature udev gudev) + $(meson_feature vala vala-plugins) + $(meson_feature webp) + $(meson_feature wmf) + $(meson_feature X xcursor) + $(meson_feature xpm) + $(meson_use doc g-ir-doc) + $(meson_use javascript) + $(meson_use lua) + $(meson_use python) + $(meson_use unwind libunwind) + $(meson_use vector-icons) + ) + + meson_src_configure +} + +src_compile() { + export XDG_DATA_DIRS="${EPREFIX}"/usr/share # bug 587004 + meson_src_compile +} + +# for https://bugs.gentoo.org/664938 +_rename_plugins() { + einfo 'Renaming plug-ins to not collide with pre-2.10.6 file layout (bug #664938)...' + local prename=gimp-org- + ( + cd "${ED}"/usr/$(get_libdir)/gimp/2.99/plug-ins || exit 1 + for plugin_slash in $(ls -d1 */); do + plugin=${plugin_slash%/} + if [[ -f ${plugin}/${plugin} ]]; then + # NOTE: Folder and file name need to match for Gimp to load that plug-in + # so "file-svg/file-svg" becomes "${prename}file-svg/${prename}file-svg" + mv ${plugin}/{,${prename}}${plugin} || exit 1 + mv {,${prename}}${plugin} || exit 1 + fi + done + ) +} + +src_install() { + meson_src_install + + if use python; then + python_optimize + fi + + # Workaround for bug #321111 to give GIMP the least + # precedence on PDF documents by default + mv "${ED}"/usr/share/applications/{,zzz-}gimp.desktop || die + + find "${D}" -name '*.la' -type f -delete || die + + # Prevent dead symlink gimp-console.1 from downstream man page compression (bug #433527) + mv "${ED}"/usr/share/man/man1/gimp-console{-*,}.1 || die + + # Create symlinks for Gimp exec in /usr/bin + dosym "${ESYSROOT}"/usr/bin/gimp-2.99 /usr/bin/gimp + dosym "${ESYSROOT}"/usr/bin/gimp-console-2.99 /usr/bin/gimp-console + dosym "${ESYSROOT}"/usr/bin/gimp-script-fu-interpreter-3.0 /usr/bin/gimp-script-fu-interpreter + dosym "${ESYSROOT}"/usr/bin/gimp-test-clipboard-2.99 /usr/bin/gimp-test-clipboard + dosym "${ESYSROOT}"/usr/bin/gimptool-2.99 /usr/bin/gimptool + + _rename_plugins || die +} + +pkg_postinst() { + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_desktop_database_update +} diff --git a/media-gfx/gimp/gimp-9999.ebuild b/media-gfx/gimp/gimp-9999.ebuild index a098440168e3..705248ae1799 100644 --- a/media-gfx/gimp/gimp-9999.ebuild +++ b/media-gfx/gimp/gimp-9999.ebuild @@ -46,7 +46,7 @@ COMMON_DEPEND=" >=media-libs/lcms-2.13.1:2 media-libs/libjpeg-turbo:= >=media-libs/libmypaint-1.6.1:= - >=media-libs/libpng-1.6.37:= + >=media-libs/libpng-1.6.37:0= >=media-libs/tiff-4.1.0:= net-libs/glib-networking[ssl] sys-libs/zlib @@ -54,6 +54,7 @@ COMMON_DEPEND=" >=x11-libs/gdk-pixbuf-2.40.0:2[introspection] >=x11-libs/gtk+-3.24.16:3[introspection] >=x11-libs/pango-1.44.7 + >=x11-libs/libXmu-1.1.4 aalib? ( media-libs/aalib ) alsa? ( >=media-libs/alsa-lib-1.0.0 ) heif? ( >=media-libs/libheif-1.13.0:= ) @@ -165,22 +166,22 @@ src_configure() { $(meson_feature alsa) $(meson_feature doc gi-docgen) $(meson_feature heif) + $(meson_feature javascript) $(meson_feature jpeg2k jpeg2000) $(meson_feature jpegxl jpeg-xl) + $(meson_feature lua) $(meson_feature mng) $(meson_feature openexr) $(meson_feature postscript ghostscript) + $(meson_feature python) $(meson_feature test headless-tests) $(meson_feature udev gudev) - $(meson_feature vala vala-plugins) + $(meson_feature vala) $(meson_feature webp) $(meson_feature wmf) $(meson_feature X xcursor) $(meson_feature xpm) $(meson_use doc g-ir-doc) - $(meson_use javascript) - $(meson_use lua) - $(meson_use python) $(meson_use unwind libunwind) $(meson_use vector-icons) ) -- cgit v1.2.3