commit: 00887ad2233af4543e132d5b271622b3074eeae9 Author: Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com> AuthorDate: Wed Apr 16 14:27:17 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Apr 22 00:37:48 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=00887ad2
media-gfx/blender-bin: add 4.4.1 4.2.9 3.6.22 Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> media-gfx/blender-bin/Manifest | 3 + media-gfx/blender-bin/blender-bin-3.6.22.ebuild | 179 +++++++++++++++++++++ media-gfx/blender-bin/blender-bin-4.2.9.ebuild | 202 ++++++++++++++++++++++++ media-gfx/blender-bin/blender-bin-4.4.1.ebuild | 202 ++++++++++++++++++++++++ 4 files changed, 586 insertions(+) diff --git a/media-gfx/blender-bin/Manifest b/media-gfx/blender-bin/Manifest index 2307738fb92b..683749f7ec87 100644 --- a/media-gfx/blender-bin/Manifest +++ b/media-gfx/blender-bin/Manifest @@ -1,2 +1,5 @@ DIST blender-3.6.21-linux-x64.tar.xz 273421500 BLAKE2B a34f4bee3d2725a85a206c90fd408215abe174fe7b2ee379884b69cb3e7dd3a1b1b8180f2fbd415141da474d8cbe94976d32493e95cfeaeeba2e08ce93661761 SHA512 84609f8a76e1f340bcfe9ef329a64d9a81de37c940d392b4bb5074f6c9a4c7d7b605dbc67d81d2f46af74dcf03347dac40bde9fea8b507be3ff4a5a8683b604c +DIST blender-3.6.22-linux-x64.tar.xz 272633304 BLAKE2B 20751b784bce4808807d074b1d08d48160e7227c36cd36b8980420c934956e4aebe66d054b06cd62fcd5cab89fbb5e6fa870e386a75ba29af08f07118bc844f9 SHA512 16a804fd550b275ebfb945aab2685d65528ae9b49a7ffaf76e7b338a8d073f2215dc3adad9b2142cd222e1f7dd9c40a75924c5783b93ace663063f486869d279 DIST blender-4.2.7-linux-x64.tar.xz 352614068 BLAKE2B d4e6f44c027f3a23bb59ef27e3591d9c6665389ca68f2dbd77a290e45bbd2e34f6ed61ab8347bdf755408da234451910dc26a69d58f9accf9959099ff7f1942d SHA512 4b6d829cfeca41df74e41485b6e8518519a337b9e245cdd3a836480fb0762f9fc8a7fa7acc41e978c4ce2914cfc2e21c9cb4dbf4a0fdf679b52ac37394ba0bb8 +DIST blender-4.2.9-linux-x64.tar.xz 355259956 BLAKE2B c009c1f992ceaac8a5671d8d34cc4775d27771e9c9af79ca1a98cf4cdce6f0fcaa0225755c7fc80e4cdc3e9abce64707ba19b9bbbf28ebb7a200549efe446e9d SHA512 4cce94a7b399d17a74f2cab5f82cb9adc44ad9c09275460771041aa195c6e9f9c4d9793a942e00ad5a9b86da85bacf6a666d76e0b6b06842f7692028419824e6 +DIST blender-4.4.1-linux-x64.tar.xz 363958284 BLAKE2B 1042da45dc2c5056427db06c26ac7c29d5d58d1e3ee156187ec8ab18acf3077680d5d46108563e5519ec9a01af03a16056d8025a0ff5fe017c2de21a099bd94e SHA512 874529109598fa5a78f478ba66e93942f2d54d6c33497f8c5be4f4f78b34a4bf8d319900a84bd17038b08616094d85190c07b098cdfed47bf283cd8b5e1c337a diff --git a/media-gfx/blender-bin/blender-bin-3.6.22.ebuild b/media-gfx/blender-bin/blender-bin-3.6.22.ebuild new file mode 100644 index 000000000000..a4f751ca53e5 --- /dev/null +++ b/media-gfx/blender-bin/blender-bin-3.6.22.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +LICENSE="GPL-3+ Apache-2.0" +SLOT="$(ver_cut 1-2)" + +if [[ ${PV} == *9999* ]] ; then + # BLENDER_BIN_URL can be used to point to the url of an upstream release archive. + PROPERTIES="live" +else + SRC_URI=" + https://download.blender.org/release/Blender${SLOT}/blender-${PV}-linux-x64.tar.xz + " + KEYWORDS="~amd64" +fi + +IUSE="oneapi" +RESTRICT="strip test" + +QA_PREBUILT="opt/${P}/*" + +if [[ ${PV} == *9999* ]] ; then + BDEPEND=" + app-misc/jq + " +fi + +# no := here, this is prebuilt +RDEPEND=" + app-arch/zstd + media-libs/libglvnd[X] + sys-libs/glibc + sys-libs/ncurses + sys-libs/zlib + virtual/libcrypt + x11-base/xorg-server + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXt + x11-libs/libXxf86vm + x11-libs/libxkbcommon + oneapi? ( + dev-libs/level-zero + ) +" + +src_unpack() { + local my_A + if [[ ${PV} == *9999* ]] ; then + local file_name url + if [[ -n "${BLENDER_BIN_URL}" ]]; then + einfo "Using ${BLENDER_BIN_URL} as SRC_URI. You are on your own." + file_name="$(basename "${BLENDER_BIN_URL}")" + url="${BLENDER_BIN_URL}" + else + wget "https://builder.blender.org/download/daily/?format=json&v=2" -O "${T}/release.json" \ + || die "failed to retrieve release.json" + + local branch commit rel_json release_cycle version + rel_json=$( + jq -r 'map(select(.platform == "linux" and .branch == "'"${EGIT_BRANCH:-main}"'" and .file_extension == "xz")) + | .[0]' \ + "${T}/release.json" + ) + branch=$( echo "${rel_json}" | jq -r '.branch' ) + commit=$( echo "${rel_json}" | jq -r '.hash' ) + file_name=$( echo "${rel_json}" | jq -r '.file_name' ) + release_cycle=$( echo "${rel_json}" | jq -r '.release_cycle' ) + url=$( echo "${rel_json}" | jq -r '.url' ) + version=$( echo "${rel_json}" | jq -r '.version' ) + + einfo "Fetching blender-${version}-${release_cycle}-${branch}-${commit}" + einfo " url: ${url}" + einfo " version: ${version}" + einfo " release_cycle: ${release_cycle}" + einfo " branch: ${branch}" + einfo " commit: ${commit}" + einfo + fi + + wget -c "${url}"{,.sha256} -P "${T}" || die "failed to fetch ${url}" + + my_A="${T}/${file_name}" + + # Check sha256sum + local sha256sum_exp sha256sum_is + sha256sum_exp="$(cat "${T}/${file_name}.sha256")" + sha256sum_is="$(sha256sum "${T}/${file_name}" | cut -d ' ' -f 1)" + if [[ "${sha256sum_exp}" != "${sha256sum_is}" ]]; then + eerror "sha256sum mismatch for ${file_name}" + eerror " expected ${sha256sum_exp}" + eerror " found ${sha256sum_is}" + die "sha256sum mismatch" + fi + else + my_A="${DISTDIR}/blender-${PV}-linux-x64.tar.xz" + fi + + unpack "${my_A}" + + local dirs + dirs="$(find "${WORKDIR}" -mindepth 1 -maxdepth 1 | wc -l)" + if [[ "${dirs}" -ne 1 ]]; then + die "unpack resulted in ${dirs} dirs in ${WORKDIR}" + fi + + mv "${WORKDIR}"/* "${S}" || die "mv" +} + +src_prepare() { + default + + if ! use oneapi; then + rm \ + lib/libpi_level_zero* \ + || eqawarn "failed cleaning oneapi" + fi + + # Prepare icons and .desktop for menu entry + mv blender.desktop "${P}.desktop" || die + mv blender.svg "${P}.svg" || die + mv blender-symbolic.svg "${P}-symbolic.svg" || die + + # X-KDE-RunOnDiscreteGpu is obsolete, so trim it + sed \ + -e "s/=blender/=${P}/" \ + -e "s/Name=Blender/Name=Blender Bin ${PV}/" \ + -e "/X-KDE-RunOnDiscreteGpu.*/d" \ + -i "${P}.desktop" || die +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # We could use the version from the release.json instead of PN here + local BLENDER_OPT_HOME="/opt/${P}" + + # Install icons and .desktop for menu entry + doicon -s scalable "${S}"/blender*.svg + domenu "${P}.desktop" + + # Install all the blender files in /opt + dodir "${BLENDER_OPT_HOME%/*}" + mv "${S}" "${ED}${BLENDER_OPT_HOME}" || die + + # Create symlink /usr/bin/blender-bin + dodir "/usr/bin" + dosym -r "${BLENDER_OPT_HOME}/blender" "/usr/bin/${P}" +} + +pkg_postinst() { + 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 +} diff --git a/media-gfx/blender-bin/blender-bin-4.2.9.ebuild b/media-gfx/blender-bin/blender-bin-4.2.9.ebuild new file mode 100644 index 000000000000..87dd1d99ad52 --- /dev/null +++ b/media-gfx/blender-bin/blender-bin-4.2.9.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +LICENSE="GPL-3+ Apache-2.0" +SLOT="$(ver_cut 1-2)" + +if [[ ${PV} == *9999* ]] ; then + # BLENDER_BIN_URL can be used to point to the url of an upstream release archive. + PROPERTIES="live" +else + SRC_URI=" + https://download.blender.org/release/Blender${SLOT}/blender-${PV}-linux-x64.tar.xz + " + KEYWORDS="~amd64" +fi + +IUSE="cuda hip oneapi" +RESTRICT="strip test" + +QA_PREBUILT="opt/${P}/*" + +if [[ ${PV} == *9999* ]] ; then + BDEPEND=" + app-misc/jq + " +fi + +# no := here, this is prebuilt +RDEPEND=" + app-arch/zstd + media-libs/libglvnd[X] + sys-apps/util-linux + sys-libs/glibc + sys-libs/ncurses + sys-libs/zlib + virtual/libcrypt + x11-base/xorg-server + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXt + x11-libs/libXxf86vm + x11-libs/libdrm + x11-libs/libxcb + x11-libs/libxkbcommon + cuda? ( + x11-drivers/nvidia-drivers + ) + hip? ( + >=dev-util/hip-6 + ) + oneapi? ( + dev-libs/level-zero + ) +" + +src_unpack() { + local my_A + if [[ ${PV} == *9999* ]] ; then + local file_name url + if [[ -n "${BLENDER_BIN_URL}" ]]; then + einfo "Using ${BLENDER_BIN_URL} as SRC_URI. You are on your own." + file_name="$(basename "${BLENDER_BIN_URL}")" + url="${BLENDER_BIN_URL}" + else + wget "https://builder.blender.org/download/daily/?format=json&v=2" -O "${T}/release.json" \ + || die "failed to retrieve release.json" + + local branch commit rel_json release_cycle version + rel_json=$( + jq -r 'map(select(.platform == "linux" and .branch == "'"${EGIT_BRANCH:-main}"'" and .file_extension == "xz")) + | .[0]' \ + "${T}/release.json" + ) + branch=$( echo "${rel_json}" | jq -r '.branch' ) + commit=$( echo "${rel_json}" | jq -r '.hash' ) + file_name=$( echo "${rel_json}" | jq -r '.file_name' ) + release_cycle=$( echo "${rel_json}" | jq -r '.release_cycle' ) + url=$( echo "${rel_json}" | jq -r '.url' ) + version=$( echo "${rel_json}" | jq -r '.version' ) + + einfo "Fetching blender-${version}-${release_cycle}-${branch}-${commit}" + einfo " url: ${url}" + einfo " version: ${version}" + einfo " release_cycle: ${release_cycle}" + einfo " branch: ${branch}" + einfo " commit: ${commit}" + einfo + fi + + wget -c "${url}"{,.sha256} -P "${T}" || die "failed to fetch ${url}" + + my_A="${T}/${file_name}" + + # Check sha256sum + local sha256sum_exp sha256sum_is + sha256sum_exp="$(cat "${T}/${file_name}.sha256")" + sha256sum_is="$(sha256sum "${T}/${file_name}" | cut -d ' ' -f 1)" + if [[ "${sha256sum_exp}" != "${sha256sum_is}" ]]; then + eerror "sha256sum mismatch for ${file_name}" + eerror " expected ${sha256sum_exp}" + eerror " found ${sha256sum_is}" + die "sha256sum mismatch" + fi + else + my_A="${DISTDIR}/blender-${PV}-linux-x64.tar.xz" + fi + + unpack "${my_A}" + + local dirs + dirs="$(find "${WORKDIR}" -mindepth 1 -maxdepth 1 | wc -l)" + if [[ "${dirs}" -ne 1 ]]; then + die "unpack resulted in ${dirs} dirs in ${WORKDIR}" + fi + + mv "${WORKDIR}"/* "${S}" || die "mv" +} + +src_prepare() { + default + + # Remove unused gpu libraries so we don't get missing libraries from QA + if ! use cuda; then + rm \ + lib/libOpenImageDenoise_device_cuda* \ + || eqawarn "failed cleaning cuda" + fi + + if ! use hip; then + rm \ + lib/libOpenImageDenoise_device_hip* \ + || eqawarn "failed cleaning hip" + fi + + if ! use oneapi; then + rm \ + lib/libOpenImageDenoise_device_sycl* \ + lib/libpi_level_zero* \ + || eqawarn "failed cleaning oneapi" + fi + + # Prepare icons and .desktop for menu entry + mv blender.desktop "${P}.desktop" || die + mv blender.svg "${P}.svg" || die + mv blender-symbolic.svg "${P}-symbolic.svg" || die + + # X-KDE-RunOnDiscreteGpu is obsolete, so trim it + sed \ + -e "s/=blender/=${P}/" \ + -e "s/Name=Blender/Name=Blender Bin ${PV}/" \ + -e "/X-KDE-RunOnDiscreteGpu.*/d" \ + -i "${P}.desktop" || die +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # We could use the version from the release.json instead of PN here + local BLENDER_OPT_HOME="/opt/${P}" + + # Install icons and .desktop for menu entry + doicon -s scalable "${S}"/blender*.svg + domenu "${P}.desktop" + + # Install all the blender files in /opt + dodir "${BLENDER_OPT_HOME%/*}" + mv "${S}" "${ED}${BLENDER_OPT_HOME}" || die + + # Create symlink /usr/bin/blender-bin + dodir "/usr/bin" + dosym -r "${BLENDER_OPT_HOME}/blender" "/usr/bin/${P}" +} + +pkg_postinst() { + 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 +} diff --git a/media-gfx/blender-bin/blender-bin-4.4.1.ebuild b/media-gfx/blender-bin/blender-bin-4.4.1.ebuild new file mode 100644 index 000000000000..87dd1d99ad52 --- /dev/null +++ b/media-gfx/blender-bin/blender-bin-4.4.1.ebuild @@ -0,0 +1,202 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop xdg-utils + +DESCRIPTION="3D Creation/Animation/Publishing System" +HOMEPAGE="https://www.blender.org" + +LICENSE="GPL-3+ Apache-2.0" +SLOT="$(ver_cut 1-2)" + +if [[ ${PV} == *9999* ]] ; then + # BLENDER_BIN_URL can be used to point to the url of an upstream release archive. + PROPERTIES="live" +else + SRC_URI=" + https://download.blender.org/release/Blender${SLOT}/blender-${PV}-linux-x64.tar.xz + " + KEYWORDS="~amd64" +fi + +IUSE="cuda hip oneapi" +RESTRICT="strip test" + +QA_PREBUILT="opt/${P}/*" + +if [[ ${PV} == *9999* ]] ; then + BDEPEND=" + app-misc/jq + " +fi + +# no := here, this is prebuilt +RDEPEND=" + app-arch/zstd + media-libs/libglvnd[X] + sys-apps/util-linux + sys-libs/glibc + sys-libs/ncurses + sys-libs/zlib + virtual/libcrypt + x11-base/xorg-server + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libXrender + x11-libs/libXt + x11-libs/libXxf86vm + x11-libs/libdrm + x11-libs/libxcb + x11-libs/libxkbcommon + cuda? ( + x11-drivers/nvidia-drivers + ) + hip? ( + >=dev-util/hip-6 + ) + oneapi? ( + dev-libs/level-zero + ) +" + +src_unpack() { + local my_A + if [[ ${PV} == *9999* ]] ; then + local file_name url + if [[ -n "${BLENDER_BIN_URL}" ]]; then + einfo "Using ${BLENDER_BIN_URL} as SRC_URI. You are on your own." + file_name="$(basename "${BLENDER_BIN_URL}")" + url="${BLENDER_BIN_URL}" + else + wget "https://builder.blender.org/download/daily/?format=json&v=2" -O "${T}/release.json" \ + || die "failed to retrieve release.json" + + local branch commit rel_json release_cycle version + rel_json=$( + jq -r 'map(select(.platform == "linux" and .branch == "'"${EGIT_BRANCH:-main}"'" and .file_extension == "xz")) + | .[0]' \ + "${T}/release.json" + ) + branch=$( echo "${rel_json}" | jq -r '.branch' ) + commit=$( echo "${rel_json}" | jq -r '.hash' ) + file_name=$( echo "${rel_json}" | jq -r '.file_name' ) + release_cycle=$( echo "${rel_json}" | jq -r '.release_cycle' ) + url=$( echo "${rel_json}" | jq -r '.url' ) + version=$( echo "${rel_json}" | jq -r '.version' ) + + einfo "Fetching blender-${version}-${release_cycle}-${branch}-${commit}" + einfo " url: ${url}" + einfo " version: ${version}" + einfo " release_cycle: ${release_cycle}" + einfo " branch: ${branch}" + einfo " commit: ${commit}" + einfo + fi + + wget -c "${url}"{,.sha256} -P "${T}" || die "failed to fetch ${url}" + + my_A="${T}/${file_name}" + + # Check sha256sum + local sha256sum_exp sha256sum_is + sha256sum_exp="$(cat "${T}/${file_name}.sha256")" + sha256sum_is="$(sha256sum "${T}/${file_name}" | cut -d ' ' -f 1)" + if [[ "${sha256sum_exp}" != "${sha256sum_is}" ]]; then + eerror "sha256sum mismatch for ${file_name}" + eerror " expected ${sha256sum_exp}" + eerror " found ${sha256sum_is}" + die "sha256sum mismatch" + fi + else + my_A="${DISTDIR}/blender-${PV}-linux-x64.tar.xz" + fi + + unpack "${my_A}" + + local dirs + dirs="$(find "${WORKDIR}" -mindepth 1 -maxdepth 1 | wc -l)" + if [[ "${dirs}" -ne 1 ]]; then + die "unpack resulted in ${dirs} dirs in ${WORKDIR}" + fi + + mv "${WORKDIR}"/* "${S}" || die "mv" +} + +src_prepare() { + default + + # Remove unused gpu libraries so we don't get missing libraries from QA + if ! use cuda; then + rm \ + lib/libOpenImageDenoise_device_cuda* \ + || eqawarn "failed cleaning cuda" + fi + + if ! use hip; then + rm \ + lib/libOpenImageDenoise_device_hip* \ + || eqawarn "failed cleaning hip" + fi + + if ! use oneapi; then + rm \ + lib/libOpenImageDenoise_device_sycl* \ + lib/libpi_level_zero* \ + || eqawarn "failed cleaning oneapi" + fi + + # Prepare icons and .desktop for menu entry + mv blender.desktop "${P}.desktop" || die + mv blender.svg "${P}.svg" || die + mv blender-symbolic.svg "${P}-symbolic.svg" || die + + # X-KDE-RunOnDiscreteGpu is obsolete, so trim it + sed \ + -e "s/=blender/=${P}/" \ + -e "s/Name=Blender/Name=Blender Bin ${PV}/" \ + -e "/X-KDE-RunOnDiscreteGpu.*/d" \ + -i "${P}.desktop" || die +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # We could use the version from the release.json instead of PN here + local BLENDER_OPT_HOME="/opt/${P}" + + # Install icons and .desktop for menu entry + doicon -s scalable "${S}"/blender*.svg + domenu "${P}.desktop" + + # Install all the blender files in /opt + dodir "${BLENDER_OPT_HOME%/*}" + mv "${S}" "${ED}${BLENDER_OPT_HOME}" || die + + # Create symlink /usr/bin/blender-bin + dodir "/usr/bin" + dosym -r "${BLENDER_OPT_HOME}/blender" "/usr/bin/${P}" +} + +pkg_postinst() { + 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 +}