From ebb07c94f800907e02d2a6b92c1bc757b2f86f49 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 18 Mar 2024 12:50:07 +0000 Subject: gentoo auto-resync : 18:03:2024 - 12:50:07 --- media-libs/x265/Manifest | 5 +- media-libs/x265/x265-3.5-r3.ebuild | 9 +- media-libs/x265/x265-3.5-r4.ebuild | 222 +++++++++++++++++++++++++++++++++++++ media-libs/x265/x265-9999.ebuild | 11 +- 4 files changed, 240 insertions(+), 7 deletions(-) create mode 100644 media-libs/x265/x265-3.5-r4.ebuild (limited to 'media-libs/x265') diff --git a/media-libs/x265/Manifest b/media-libs/x265/Manifest index 36744f8056f1..2e754649e763 100644 --- a/media-libs/x265/Manifest +++ b/media-libs/x265/Manifest @@ -7,6 +7,7 @@ AUX x265-9999-arm.patch 2115 BLAKE2B 92f2225fd23030220531e6bfda7a3d4ce197090a7b1 AUX x265-9999-test-ns.patch 14971 BLAKE2B 8750a3a94eefd78dfe082c46634606a1abe4ae1b9cf89971e5532a1fc8d42e8b406ca71ab2dfd3e77bdc589e553e190c423a12b5c1007eae9fe12d86e7603ef7 SHA512 55baf712622acfb0d76eee3b283ba38905327eacb0ce52f202563e7e6c1c8593bcae84acc876c91f36ac22fcc06950ffa181515b58d199821c8d265f309594e7 DIST x265_3.5.tar.gz 1537044 BLAKE2B 4fe15b762eda08a4379f69df622bef603fed784a237381d5c95876412020c113d053af829fa1eb66468462a6edc0de32dc597b1a98a63e9aa0250a47f4e76d05 SHA512 230e683239c3e262096ba96246c6f67229a1625d163f86647a411733bb1cf349685858aee3017bce818bb6992448d0abaa9241615a5b620561ce47ecb164f997 EBUILD x265-3.5-r2.ebuild 6342 BLAKE2B 3a5bf8ebedc877d8d69c3021f925fb77559ea682a423438d734953e9960518d9d96672955bf56d7d11409ba734c38edd43f60f25b1f5b666f68de11591fe4370 SHA512 55e41cc836b62aab1c64da0e2b1d5ea35a204bcee5408b47fc732237af394daf419e965fb963c4cba4814b00f2d40ea9ce707aa14f5695b18f5f8dadb43272c6 -EBUILD x265-3.5-r3.ebuild 6123 BLAKE2B c944d6f5a5a28822d6ec8c7de3f82bfb138db27706df5de9f80511449bfef08d0831a95c69694c4e22566aa3fc81889d22f1667fb48231ad1e0b1d76f3fda621 SHA512 6fd17e59b5136d02f5b65a6b8d3b10bcfacdb79a6a3075f45846a133420001526970c4ad8b512045f9a53077b57dd1a88145a1a756eeeb6f38b0f96b53fdd91c -EBUILD x265-9999.ebuild 6112 BLAKE2B 852aa11b7fa1edfea6a2036e9c1b5122095c394becec564c6f7d10bd15350178b3de8ed3204d370047036f0fb135b6fa47ddb6366f7d8aed65b7bcc90dc776a7 SHA512 e7c3aa595223570954c6b40032aab381ea997568cf9d8fad8139f5e1b87e348f24b650d6b47b0d73041cabb12b1358bee9eb8d2c8706acff6eb2954d8e8c94ed +EBUILD x265-3.5-r3.ebuild 6278 BLAKE2B eed60ccfe4d08c4b50fea28409ec6542b4641d312042cd9ea6d4d982483be4013202d7cbd5f2f8b4e70f307f69e597ccc4f7b27bf0285b4f9bfe5e93a2d1a0cd SHA512 45d787b42c2d8ca8f082b0b46137608ada716a011d1a83fe99a1f7a27fb39d3f1bb58e8b8f4d8bbd912b58191907ef8b04d3b0a7879ad1268568f962e38e4ee7 +EBUILD x265-3.5-r4.ebuild 6284 BLAKE2B 711ba48141c743309234a82643f786515a6f3455724175164a990cd51066925afb941255407f615e0090d9d8f8488a3c25ac7768c6d80459195d1b391c8fec17 SHA512 aa54eccb1c21a9c414d232731cbba199acaa39e6030a31f42cb4990fd4ac624b6e792f588bc73f68af880adf028f2eec612aab255bd93cf42d1ab42b17094746 +EBUILD x265-9999.ebuild 6267 BLAKE2B 8c72626a97d64b7f1470625d932f7294ca17d503a0a89a81e567f4f13a1cc04fd41275e4a5ddc9e6e4f4d3ed9b1e7edd56092d10bb57d4e219776a4b8c26fd9c SHA512 0eb5ec91ed93440ebd8cf79724591fc4a8f03405cf42d33b7f9d3d0dad2cc1a018e23c301ec659a2dacc7c97eff199569bb60cfcb90999a3a785f964cf3481a1 MISC metadata.xml 626 BLAKE2B 59840316bac42695fd0c76baad143fcbdf810d80b48aa0260633b7dd70cd24a064ac0e3284772368bffd05415befd99fc4f224d2c2c7fc44e27ec56759f04b07 SHA512 97ba150042a2f4558c828af03bb489faa4385af6a2c72ed3f7489091e011a94e40330117a3f2edddea8fc73652396fb53e9190bdd00cb2b3d1c8b553ed2d0d7e diff --git a/media-libs/x265/x265-3.5-r3.ebuild b/media-libs/x265/x265-3.5-r3.ebuild index 83e490d78ecf..f3d6c8cbd76a 100644 --- a/media-libs/x265/x265-3.5-r3.ebuild +++ b/media-libs/x265/x265-3.5-r3.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit cmake multilib-minimal multibuild +inherit cmake flag-o-matic multilib-minimal multibuild if [[ ${PV} = 9999* ]]; then inherit git-r3 @@ -157,6 +157,11 @@ x265_variant_src_configure() { } multilib_src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/875854 + # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto + filter-lto + local myabicmakeargs=( -DENABLE_TESTS=$(usex test ON OFF) $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF") diff --git a/media-libs/x265/x265-3.5-r4.ebuild b/media-libs/x265/x265-3.5-r4.ebuild new file mode 100644 index 000000000000..11fbb36fc212 --- /dev/null +++ b/media-libs/x265/x265-3.5-r4.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic multilib-minimal multibuild + +if [[ ${PV} = 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://bitbucket.org/multicoreware/x265_git/" + S=${WORKDIR}/${P}/source +else + SRC_URI="https://bitbucket.org/multicoreware/x265_git/downloads/${PN}_${PV}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~x86" +fi + +DESCRIPTION="Library for encoding video streams into the H.265/HEVC format" +HOMEPAGE="http://x265.org/ https://bitbucket.org/multicoreware/x265_git/" + +LICENSE="GPL-2" +# subslot = libx265 soname +SLOT="0/199" +IUSE="+10bit +12bit cpu_flags_ppc_vsx2 numa test" +RESTRICT="!test? ( test )" + +RDEPEND="numa? ( >=sys-process/numactl-2.0.10-r1[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND}" +ASM_DEPEND=">=dev-lang/nasm-2.13" +BDEPEND=" + abi_x86_32? ( ${ASM_DEPEND} ) + abi_x86_64? ( ${ASM_DEPEND} )" + +PATCHES=( + "${FILESDIR}/arm-r1.patch" + "${FILESDIR}/neon.patch" + "${FILESDIR}/x265-3.3-ppc64.patch" + "${FILESDIR}/tests.patch" + "${FILESDIR}/test-ns.patch" +) + +src_unpack() { + if [[ ${PV} = 9999* ]]; then + git-r3_src_unpack + else + unpack ${A} + export S="$(echo "${WORKDIR}/${PN}_"*"/source")" + fi +} + +# By default, the library and the encoder is configured for only one output bit +# depth. Meaning, one has to rebuild libx265 if (s)he wants to produce HEVC +# files with a different bit depth, which is annoying. However, upstream +# supports proper namespacing for 8bits, 10bits & 12bits HEVC and linking all +# that together so that the resulting library can produce all three of them +# instead of only one. +# The API requires the bit depth parameter, so that libx265 can then chose which +# variant of the encoder to use. +# To achieve this, we have to build one (static) library for each non-main +# variant, and link it into the main library. +# Upstream documents using the 8bit variant as main library, hence we do not +# allow disabling it: "main" *MUST* come last in the following list. + +x265_get_variants() { + local variants="" + use 12bit && variants+="main12 " + use 10bit && variants+="main10 " + variants+="main" + echo "${variants}" +} + +x265_variant_src_configure() { + mkdir -p "${BUILD_DIR}" || die + pushd "${BUILD_DIR}" >/dev/null || die + + einfo "Configuring variant: ${MULTIBUILD_VARIANT} for ABI: ${ABI}" + + local mycmakeargs=( "${myabicmakeargs[@]}" ) + case "${MULTIBUILD_VARIANT}" in + "main12") + mycmakeargs+=( + -DHIGH_BIT_DEPTH=ON + -DEXPORT_C_API=OFF + -DENABLE_SHARED=OFF + -DENABLE_CLI=OFF + -DMAIN12=ON + ) + if [[ ${ABI} = x86 ]] ; then + mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + fi + if [[ ${ABI} = arm* ]] ; then + # 589674 + mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + fi + # disable altivec for 12bit build #607802#c5 + if [[ ${ABI} = ppc* ]] ; then + mycmakeargs+=( + -DENABLE_ALTIVEC=OFF + -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF) + ) + fi + ;; + "main10") + mycmakeargs+=( + -DHIGH_BIT_DEPTH=ON + -DEXPORT_C_API=OFF + -DENABLE_SHARED=OFF + -DENABLE_CLI=OFF + -DENABLE_HDR10_PLUS=ON + ) + if [[ ${ABI} = x86 ]] ; then + mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + fi + if [[ ${ABI} = arm* ]] ; then + # 589674 + mycmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + fi + # disable altivec for 10bit build #607802#c5 + if [[ ${ABI} = ppc* ]] ; then + mycmakeargs+=( + -DENABLE_ALTIVEC=OFF + -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF) + ) + fi + ;; + "main") + if (( "${#MULTIBUILD_VARIANTS[@]}" > 1 )) ; then + local myvariants=( "${MULTIBUILD_VARIANTS[@]}" ) + unset myvariants[${#MULTIBUILD_VARIANTS[@]}-1] + local liblist="" v= + for v in "${myvariants[@]}" ; do + ln -s "${BUILD_DIR%-*}-${v}/libx265.a" "libx265_${v}.a" || die + liblist+="libx265_${v}.a;" + done + mycmakeargs+=( + -DEXTRA_LIB="${liblist}" + -DEXTRA_LINK_FLAGS=-L. + -DLINKED_10BIT=$(usex 10bit) + -DLINKED_12BIT=$(usex 12bit) + ) + if [[ ${ABI} = ppc* ]] ; then + # upstream uses mix of altivec + power8 vectors + # it's impossible to enable altivec without CPU_POWER8 + # and it does not work on ppc32 + # so we toggle both variables together + mycmakeargs+=( + -DCPU_POWER8=$(usex cpu_flags_ppc_vsx2 ON OFF) + -DENABLE_ALTIVEC=$(usex cpu_flags_ppc_vsx2 ON OFF) + ) + fi + fi + ;; + *) + die "Unknown variant: ${MULTIBUILD_VARIANT}";; + esac + cmake_src_configure + popd >/dev/null || die +} + +multilib_src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/875854 + # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto + filter-lto + + local myabicmakeargs=( + -DENABLE_TESTS=$(usex test ON OFF) + $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF") + -DENABLE_PIC=ON + -DENABLE_LIBNUMA=$(usex numa ON OFF) + -DGIT_ARCHETYPE=1 #814116 + -DLIB_INSTALL_DIR="$(get_libdir)" + ) + + # Unfortunately, the asm for x86/x32/arm isn't PIC-safe. + if [[ ${ABI} = x86 ]] ; then + # Bug #528202, bug #913412 + myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + elif [[ ${ABI} = x32 ]] ; then + # bug #510890 + myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + elif [[ ${ABI} = arm ]] ; then + myabicmakeargs+=( -DENABLE_ASSEMBLY=OFF ) + fi + + local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) + multibuild_foreach_variant x265_variant_src_configure +} + +multilib_src_compile() { + local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) + multibuild_foreach_variant cmake_src_compile +} + +x265_variant_src_test() { + if [ -x "${BUILD_DIR}/test/TestBench" ] ; then + "${BUILD_DIR}/test/TestBench" || die + else + einfo "Unit tests check only assembly." + einfo "You do not seem to have any for ABI=${ABI}, x265 variant=${MULTIBUILD_VARIANT}" + einfo "Skipping tests." + fi +} + +multilib_src_test() { + local MULTIBUILD_VARIANTS=( $(x265_get_variants) ) + multibuild_foreach_variant x265_variant_src_test +} + +multilib_src_install() { + # Install only "main" variant since the others are already linked into it. + local MULTIBUILD_VARIANTS=( "main" ) + multibuild_foreach_variant cmake_src_install +} + +multilib_src_install_all() { + dodoc -r "${S}/../doc/"* + + # we don't install *.a files for all variants, + # so just delete these files instead of pretending + # real USE=static-libs support + find "${ED}" -name "*.a" -delete || die +} diff --git a/media-libs/x265/x265-9999.ebuild b/media-libs/x265/x265-9999.ebuild index 7503475200d5..8be9f4a93e84 100644 --- a/media-libs/x265/x265-9999.ebuild +++ b/media-libs/x265/x265-9999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit cmake multilib-minimal multibuild +inherit cmake flag-o-matic multilib-minimal multibuild if [[ ${PV} = 9999* ]]; then inherit git-r3 @@ -156,6 +156,11 @@ x265_variant_src_configure() { } multilib_src_configure() { + # -Werror=odr + # https://bugs.gentoo.org/875854 + # https://bitbucket.org/multicoreware/x265_git/issues/937/build-fails-with-lto + filter-lto + local myabicmakeargs=( -DENABLE_TESTS=$(usex test ON OFF) $(multilib_is_native_abi || echo "-DENABLE_CLI=OFF") -- cgit v1.2.3