diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-12-23 06:31:00 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-12-23 06:31:00 +0000 |
commit | 338095605b6c9c82690f77f27a32490c9a57bdcb (patch) | |
tree | 72a4d7ec7ba10ea6da4d4f7d25b68915b12edde6 /media-video | |
parent | 5a2cecfc8661e1d3a762adf05cf8eb142cd41710 (diff) |
gentoo auto-resync : 23:12:2024 - 06:31:00
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/Manifest.gz | bin | 23233 -> 23233 bytes | |||
-rw-r--r-- | media-video/handbrake/Manifest | 12 | ||||
-rw-r--r-- | media-video/handbrake/files/handbrake-1.9.0-include-vpl-properly.patch | 18 | ||||
-rw-r--r-- | media-video/handbrake/files/handbrake-1.9.0-link-libdovi-properly.patch | 28 | ||||
-rw-r--r-- | media-video/handbrake/handbrake-1.6.1.ebuild | 7 | ||||
-rw-r--r-- | media-video/handbrake/handbrake-1.9.0.ebuild | 212 | ||||
-rw-r--r-- | media-video/handbrake/handbrake-9999.ebuild | 179 | ||||
-rw-r--r-- | media-video/handbrake/metadata.xml | 6 |
8 files changed, 392 insertions, 70 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz Binary files differindex 22c053340ac8..e236e6bf52df 100644 --- a/media-video/Manifest.gz +++ b/media-video/Manifest.gz diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest index c4c68c754f11..a47cdfa63cf8 100644 --- a/media-video/handbrake/Manifest +++ b/media-video/handbrake/Manifest @@ -1,9 +1,15 @@ AUX handbrake-1.3.3-x265-link.patch 205 BLAKE2B e65b844a3924f2a332112502b9fb627eb876165d24ee4610c10a9d32a6d6e4eb98046d524837e7c1ce603135d40c77fa461128c3900734ae06681cb4d5bebd47 SHA512 d094c5348356ee3fde1ca1a0181b5b9bb64e9d10f956e34aed5033c21abb81db262970efc9fc72ef75b931ddc240dcb275f18dcc118b73dc585c933f537678e7 AUX handbrake-1.6.1-missing-include.patch 550 BLAKE2B 874c646bd6ce430dd2b273fc80406bee3ab4b405be41f984a6f8600b69a9344996de31e007db3d62c4a423d4e5c75758e47d7d089a5c7b07ea7e866a7b222fd4 SHA512 7b09ad791823f34ca8d64312bbcf0583a087522502625eba043fb9c81db5a135c7585bdd8d8241ecb2a3dd045cee4192b0bab83a9457d419b82204cb1b48432d +AUX handbrake-1.9.0-include-vpl-properly.patch 529 BLAKE2B 3b50d912631f0308f41a2ca3704c496a01b0e5a2c74f21c4e39d50d1013e8cb0a10f02e69f01843a1f8390804b512a39908ff07a11aa4c2081c6e4693d57c7dc SHA512 167335712a90894b09ea20731578fe54c59b539fe848a1e69e0908ff3962b11b734b48edec377e92631d3b6695076bb5a1e1cf4cfd3b7158ee2cad4947812416 +AUX handbrake-1.9.0-link-libdovi-properly.patch 817 BLAKE2B c06d501b35dde3e7ff034130e179adff62a6ae518238860957ab562809e61a336fc73f1f2303d47e208bfbd47fb90e1b0f6f32bcb647a9a721f8b2b4a2e908a3 SHA512 01428d07d2add6ce9e7a7acb53fdb00310e3cfcbf5ae2f723dc4507523380dbbc15c4e3d8e1fd4c1ec7519034520905d9987659c2a5f1c277580aa7381c6b856 AUX handbrake-9999-dont-search-for-python.patch 626 BLAKE2B 25226e243d06fb1a4bf7d7a9a0b2d5f77b37e87fd413c17bad285f10c0cefd33bee9dc193cc3497cd0740a36d3c596579502d3c76eccb514fa09b5976a171e48 SHA512 fd7684b0e312772c4e9e206dad402f3672c600a570cc60da543dc7e984b2bb91c7a3843b1a86dfe11179b86e35396aafa1c7464d6d7d0e93472d740ab6bcc4d9 AUX handbrake-9999-remove-dvdnav-dup.patch 809 BLAKE2B 16cde838dcf59753e5438df0d2c2b81f45667058bd0687a7368c528f61bd2a2fedc4462894daad58c3acb5c51bdd53df3b30e28adba93a0fb2838416e4226217 SHA512 e2005155adf29e8253f4313d209b2ccc642fb1d7f63256d3bdf675ddd0e6b0e15bc6bffd98e19aa7dab3907e161e29c5268dc5656590ce9254b12a91ac3ff6b0 AUX handbrake-9999-system-tools.patch 1404 BLAKE2B b18f3149ba5012bc97084c29a1dc4409de6dd7e76a83687fed961c54534c226077e170d227d3d8e1c1d973e8c843ac9c5f796c2dadece1a14e3eb831323c4ac6 SHA512 965eb699193ab22f64621e3776e7af68f0fc13abcf16c779e7dddb3c6aa121afbe8791c63f2a6969842bc11c28c7b0f91f8eb26f1959e2fdb8fb08da4ceb182e DIST handbrake-1.6.1.tar.bz2 15934833 BLAKE2B 027457c874bd49ff8a625233a5d09d70bdf76c45e6f2664f3ca65efcd0e1705d5575a81c5ac8f2237b8add7025314f12f0a19d6cc7337e2b0edd28c30ee3334b SHA512 e5cc0fee5bf063c4cdb8f64a772dac6800a7214bfdc65042c121e0e81878599fe615b499ebf6466bb78740314374ad8b8fa364fb24ff86852183e7dbbf565617 -EBUILD handbrake-1.6.1.ebuild 4197 BLAKE2B 9ea44d080f1c0808f3bced34af7dc7cb4cd7d98f25bc322fa289553df928aa20922514793d5f71dc15258209e26c932685861e007db58dc4dad53d4121d7119d SHA512 b3da04d14b2294828f24b6681a6d39ae358ac4ac0ba3744ebc1d366f23e93d81452dd750e804a568d41c2448a67a8bd2ce6e7ea95b75980b74869227b870aac1 -EBUILD handbrake-9999.ebuild 4148 BLAKE2B 2ca9fa15b9c576e9b4494b782afb049069411c2c9916f3113c9790f311fd0139c18b5a3fc53e25104d838caf452c32aa37877ef2ebe4462ce1b3b00efe78860c SHA512 2e40ce634fcc90da415e4369beae5da02a28f2b394626dc6036cb085bc4a5354c6548e32195225e9432a1a600738d9c18c4d4f293c95701ac7800f834aeb28d7 -MISC metadata.xml 675 BLAKE2B e71f893af2575768aa8b76ea53395e44574b6d8e3a20891c91d09a4c265ddf76e0de9f2fa08100ac1cc87b24d1f90ae026205efa6bf2447aa144a0dc7bf5f112 SHA512 30d982bb80f40d020178bd580d8381a5646e9c3dcc68ee42e83ce921d0f6795d24d317556bfc3cc0de452a64db527647cacb2b06d02be7875973d23eb31ecce0 +DIST handbrake-1.9.0.tar.bz2 9427823 BLAKE2B 5e7c4aa054957dc61582956b7e2b9916f6746fac164e0f4a0ed85f863fe3b2aa2fd485761b1381e17ab39d9d3ed42de28266b2f664dad2b8dd0cd7d961886d5e SHA512 6d09a8fea8505dce665fa2d1b03ca2b21c9e0dc4cbb5f8e0b736d6eae39017b13ee48cd4bea172a6a3b8be9bb5deb6467584dadf9c15ce81e7b7a96d3322a179 +DIST handbrake-ffmpeg-7.1.tar.bz2 13260188 BLAKE2B 32466fbefdeb30796a329869bf6fe547a0d3285ae8d9505758e5bff5103f5edf1bebd2dd8595822d0cd25e3754929ed47878ab42c420e248fb2d6ea51747145a SHA512 3f28af9a0c0779b4a7f4e5fbfd94616eb83265856ef060a8bb8afbb9f1b899885a218f15b7ac2c48f724d961dd2742ef6544b237118cb94563ecf49fbd740e3b +DIST handbrake-x265_4.1.tar.gz 1722231 BLAKE2B 5950cc5361da88a8db5403b2837081347980cd31848ce77802e8a29cfb70f6b321d14ffa08c20270e80435076e36428c7de8293c3db9b6b2e8837aa512300126 SHA512 72798265423b605b0ca5f5541f3cc39f62dae7560a5a4023f8d38f6977ded80b1911ef8154c485fbe62ef97a051d938412934c9a00f3df010f11d83ffc650e7e +EBUILD handbrake-1.6.1.ebuild 4304 BLAKE2B b958d31ef276ab178f00b0f64e6244c5290697cfdc31c872e5e35c914b35dff1eeaa79a438924d9785b943d90429792c10159b2bd11a0e4c7d1c005181dd1d56 SHA512 336fa7705b34ff1a1cb29b7279a836e285d6864ccfabfd58ed9f5d01c19417063328e3562b672834b417a0fccd0457442038afc75e81f7afa6a557d38e7e45bc +EBUILD handbrake-1.9.0.ebuild 5462 BLAKE2B 77bc5dd73c59612bb69142948250cbf8decf4efc515915707f74a8e196c528103d6e9c815381c5d4ac743abda0e8c7d1ae9d685e7e74c8126427287eb536196b SHA512 7bedfe3f68f7b52bc753379c17a0e3eebbc7ac26cdb6969e473f6834d370847548aa203f308561026209944f31a41e835ced7e8a7c1d11a6566479ebc5becf08 +EBUILD handbrake-9999.ebuild 5462 BLAKE2B 77bc5dd73c59612bb69142948250cbf8decf4efc515915707f74a8e196c528103d6e9c815381c5d4ac743abda0e8c7d1ae9d685e7e74c8126427287eb536196b SHA512 7bedfe3f68f7b52bc753379c17a0e3eebbc7ac26cdb6969e473f6834d370847548aa203f308561026209944f31a41e835ced7e8a7c1d11a6566479ebc5becf08 +MISC metadata.xml 977 BLAKE2B 5146109b2ca201d5b292e0be595eae56a945e0179137467a2b9aaee92446454e5b3bcd0e15499dc0f486aba9cf676c3debf34006193a6f84468c4be657eafacf SHA512 e8c3dfea5cda5e48370001fb72f7b6cb53e8ee8ec28a3f2e209e3c55195884d5a83ed3ecbc47e09b9ffc623494ae317811ca853646e61c263ab9a25833cdd5e1 diff --git a/media-video/handbrake/files/handbrake-1.9.0-include-vpl-properly.patch b/media-video/handbrake/files/handbrake-1.9.0-include-vpl-properly.patch new file mode 100644 index 000000000000..7f744e14b783 --- /dev/null +++ b/media-video/handbrake/files/handbrake-1.9.0-include-vpl-properly.patch @@ -0,0 +1,18 @@ +diff --git a/libhb/module.defs b/libhb/module.defs +index 177ddefe4..dd3f274a6 100644 +--- a/libhb/module.defs ++++ b/libhb/module.defs +@@ -52,11 +52,7 @@ LIBHB.GCC.D += __LIBHB__ + LIBHB.GCC.I += $(LIBHB.build/) $(CONTRIB.build/)include + + ifeq (1,$(FEATURE.qsv)) +- ifeq ($(HOST.system),freebsd) +- LIBHB.GCC.I += $(LOCALBASE)/include/vpl +- else +- LIBHB.GCC.I += $(CONTRIB.build/)include/vpl +- endif ++ LIBHB.GCC.I += $(PREFIX)/include/vpl + endif + + ifneq (,$(filter $(HOST.system),freebsd netbsd openbsd)) + diff --git a/media-video/handbrake/files/handbrake-1.9.0-link-libdovi-properly.patch b/media-video/handbrake/files/handbrake-1.9.0-link-libdovi-properly.patch new file mode 100644 index 000000000000..2c19423070e4 --- /dev/null +++ b/media-video/handbrake/files/handbrake-1.9.0-link-libdovi-properly.patch @@ -0,0 +1,28 @@ +https://bugs.gentoo.org/917591#c47 + +diff -Nuar a/libhb/module.defs b/libhb/module.defs +--- a/libhb/module.defs 2024-03-20 13:17:37.833999294 +0000 ++++ b/libhb/module.defs 2024-03-20 13:17:18.693999469 +0000 +@@ -151,6 +151,7 @@ + + ifeq (1,$(FEATURE.libdovi)) + LIBHB.dll.libs += $(CONTRIB.build/)lib/libdovi.a ++LIBHB.GCC.l += dovi + endif + + ifneq ($(HAS.iconv),1) +diff -Nuar a/test/module.defs b/test/module.defs +--- a/test/module.defs 2024-03-20 13:19:11.869998433 +0000 ++++ b/test/module.defs 2024-03-20 13:19:42.761998150 +0000 +@@ -34,6 +34,10 @@ + TEST.pkgconfig_libs += glib-2.0 + endif + ++ifeq (1,$(FEATURE.libdovi)) ++ TEST.pkgconfig_libs += dovi ++endif ++ + TEST.GCC.pkgconfig = $(shell $(TEST.PKGCONFIG.exe) --libs $(TEST.pkgconfig_libs)) + + TEST.install.exe = $(DESTDIR)$(PREFIX/)bin/$(notdir $(TEST.exe)) + diff --git a/media-video/handbrake/handbrake-1.6.1.ebuild b/media-video/handbrake/handbrake-1.6.1.ebuild index 2fbb8d88ba6b..9cdc3aa1b4a8 100644 --- a/media-video/handbrake/handbrake-1.6.1.ebuild +++ b/media-video/handbrake/handbrake-1.6.1.ebuild @@ -5,7 +5,7 @@ EAPI=8 PYTHON_COMPAT=( python3_{10..12} ) -inherit autotools edo python-any-r1 toolchain-funcs xdg +inherit autotools edo flag-o-matic python-any-r1 toolchain-funcs xdg if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git" @@ -117,6 +117,10 @@ src_prepare() { src_configure() { tc-export AR RANLIB STRIP + # ODR violations, lto-type-mismatches + # bug #878899 + filter-lto + # Libav was replaced in 1.2 with ffmpeg by default # but I've elected to not make people change their use flags for AAC # as its the same code anyway @@ -125,6 +129,7 @@ src_configure() { --verbose --prefix="${EPREFIX}/usr" --disable-flatpak + --no-harden #bug #890279 $(usex !gtk --disable-gtk) --disable-gtk4 $(usex !gstreamer --disable-gst) diff --git a/media-video/handbrake/handbrake-1.9.0.ebuild b/media-video/handbrake/handbrake-1.9.0.ebuild new file mode 100644 index 000000000000..87d75de6700c --- /dev/null +++ b/media-video/handbrake/handbrake-1.9.0.ebuild @@ -0,0 +1,212 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit edo flag-o-matic multiprocessing python-any-r1 toolchain-funcs xdg + +DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" +HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git" + inherit git-r3 +else + MY_P="HandBrake-${PV}" + SRC_URI="https://github.com/HandBrake/HandBrake/releases/download/${PV}/${MY_P}-source.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}/${MY_P}" + KEYWORDS="~amd64 ~arm64 ~x86" +fi + +# contrib/<project>/module.defs +declare -A BUNDLED=( + # Heavily patched in an incompatible way. + # Issues related to using system ffmpeg historically. + # See bug #829595 and #922828 + [ffmpeg]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/ffmpeg-7.1.tar.bz2;" + # Patched in an incompatible way + [x265]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_8bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_10bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_12bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" +) + +bundle_src_uri() { + for name in "${!BUNDLED[@]}"; do + IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} + local tarball=${uri##*/} + if [[ -n ${use} ]]; then + SRC_URI+=" ${use}? ( ${uri} -> handbrake-${tarball} )" + else + SRC_URI+=" ${uri} -> handbrake-${tarball}" + fi + done +} + +bundle_src_uri + +LICENSE="GPL-2" +SLOT="0" +IUSE="amf +fdk gui libdovi numa nvenc qsv x265" + +REQUIRED_USE="numa? ( x265 )" + +COMMON_DEPEND=" + app-arch/bzip2 + >=app-arch/xz-utils-5.2.6 + dev-libs/jansson:= + >=media-libs/dav1d-1.0.0:= + >=media-libs/libjpeg-turbo-2.1.4:= + >=media-libs/libass-0.16.0:= + >=media-libs/libbluray-1.3.4:= + media-libs/libdvdnav + >=media-libs/libdvdread-6.1.3:= + media-libs/libtheora + media-libs/libvorbis + >=media-libs/libvpx-1.12.0:= + media-libs/opus + >=media-libs/speex-1.2.1 + >=media-libs/svt-av1-1.4.1:= + >=media-libs/x264-0.0.20220222:= + >=media-libs/zimg-3.0.4 + media-sound/lame + sys-libs/zlib + fdk? ( media-libs/fdk-aac:= ) + libdovi? ( media-libs/libdovi:= ) + gui? ( + >=gui-libs/gtk-4.4:4[gstreamer] + dev-libs/glib:2 + >=dev-libs/libxml2-2.10.3 + x11-libs/gdk-pixbuf:2 + x11-libs/pango + ) + numa? ( sys-process/numactl ) + nvenc? ( media-libs/nv-codec-headers ) + qsv? ( + media-libs/libva:= + media-libs/libvpl:= + ) +" +RDEPEND=" + ${COMMON_DEPEND} + amf? ( media-video/amdgpu-pro-amf ) +" +DEPEND=" + ${COMMON_DEPEND} + amf? ( media-libs/amf-headers ) +" +# cmake needed for custom script: bug #852701 +BDEPEND=" + ${PYTHON_DEPS} + dev-build/cmake + dev-lang/nasm + gui? ( + dev-build/meson + sys-devel/gettext + ) +" + +PATCHES=( + "${FILESDIR}"/handbrake-1.9.0-link-libdovi-properly.patch + "${FILESDIR}"/handbrake-1.9.0-include-vpl-properly.patch +) + +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + unpack ${P}.tar.bz2 + fi +} + +src_prepare() { + mkdir download || die + for name in "${!BUNDLED[@]}"; do + IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} + local tarball="${uri##*/}" + if [[ -n ${use} ]]; then + use ${use} || continue + fi + cp "${DISTDIR}/handbrake-${tarball}" download/${tarball} || die + done + + # Get rid of leftover bundled library build definitions + sed -i -E \ + -e "/MODULES \+= contrib\// { /($(IFS=$'|'; echo "${!BUNDLED[*]}"))$/! d }" \ + "${S}"/make/include/main.defs || die + + # noop fetching + sed -i -e '/DF..*.exe/ { s/= .*/= true/ }' make/include/tool.defs || die + + # noop strip + sed -i \ + -e "s/\(strip\s*= ToolProbe( 'STRIP.exe',\s*'strip',\s*\)'strip'/\1'true'/" \ + make/configure.py || die + + # Use whichever python is set by portage + sed -i -e "s/for p in .*/for p in ${EPYTHON}/" configure || die + + for tool in ar ranlib libtool; do + # Detect system tools - bug 738110 + sed -i \ + -e "s/\(${tool}\s*= ToolProbe( '${tool^^}.exe',\s*'${tool}',\s*\)'${tool}'/\1os.environ.get('${tool^^}', '${tool}')/" \ + make/configure.py || die + done + + default +} + +src_configure() { + tc-export AR RANLIB + + # ODR violations, lto-type-mismatches + # bug #878899 + filter-lto + + local myconfargs=( + --force + --verbose + --disable-df-fetch + --disable-df-verify + --launch-jobs=$(get_makeopts_jobs) + --prefix="${EPREFIX}/usr" + --disable-flatpak + --no-harden #bug #890279 + $(use_enable amf vce) + $(use_enable fdk fdk-aac) + $(use_enable gui gtk) + $(use_enable libdovi) + $(use_enable numa) + $(use_enable nvenc) + $(use_enable x265) + $(use_enable qsv) + ) + + edo ./configure ${myconfargs[@]} +} + +src_compile() { + emake -C build +} + +src_install() { + emake -C build DESTDIR="${D}" install + dodoc README.markdown AUTHORS.markdown NEWS.markdown THANKS.markdown +} + +pkg_postinst() { + einfo "Gentoo builds of HandBrake are NOT SUPPORTED by upstream as they" + einfo "do not use the bundled (and often patched) upstream libraries." + einfo "" + einfo "Please do not raise bugs with upstream because of these ebuilds," + einfo "report bugs to Gentoo's bugzilla or Multimedia forum instead." + + einfo "For the CLI version of HandBrake, you can use \`HandBrakeCLI\`." + if use gui ; then + einfo "For the GUI version of HandBrake, you can run \`ghb\`." + fi + + xdg_pkg_postinst +} diff --git a/media-video/handbrake/handbrake-9999.ebuild b/media-video/handbrake/handbrake-9999.ebuild index d12123f0bf5e..87d75de6700c 100644 --- a/media-video/handbrake/handbrake-9999.ebuild +++ b/media-video/handbrake/handbrake-9999.ebuild @@ -3,9 +3,12 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{10..13} ) -inherit autotools edo python-any-r1 toolchain-funcs xdg +inherit edo flag-o-matic multiprocessing python-any-r1 toolchain-funcs xdg + +DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" +HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git" @@ -17,27 +20,49 @@ else KEYWORDS="~amd64 ~arm64 ~x86" fi -DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" -HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" +# contrib/<project>/module.defs +declare -A BUNDLED=( + # Heavily patched in an incompatible way. + # Issues related to using system ffmpeg historically. + # See bug #829595 and #922828 + [ffmpeg]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/ffmpeg-7.1.tar.bz2;" + # Patched in an incompatible way + [x265]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_8bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_10bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" + [x265_12bit]="https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs2/x265_4.1.tar.gz;x265" +) + +bundle_src_uri() { + for name in "${!BUNDLED[@]}"; do + IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} + local tarball=${uri##*/} + if [[ -n ${use} ]]; then + SRC_URI+=" ${use}? ( ${uri} -> handbrake-${tarball} )" + else + SRC_URI+=" ${uri} -> handbrake-${tarball}" + fi + done +} + +bundle_src_uri LICENSE="GPL-2" SLOT="0" -IUSE="+fdk gstreamer gtk numa nvenc x265" # TODO: qsv vce +IUSE="amf +fdk gui libdovi numa nvenc qsv x265" REQUIRED_USE="numa? ( x265 )" -RDEPEND=" +COMMON_DEPEND=" + app-arch/bzip2 >=app-arch/xz-utils-5.2.6 dev-libs/jansson:= - >=dev-libs/libxml2-2.10.3 - media-libs/a52dec >=media-libs/dav1d-1.0.0:= >=media-libs/libjpeg-turbo-2.1.4:= >=media-libs/libass-0.16.0:= >=media-libs/libbluray-1.3.4:= media-libs/libdvdnav >=media-libs/libdvdread-6.1.3:= - media-libs/libsamplerate media-libs/libtheora media-libs/libvorbis >=media-libs/libvpx-1.12.0:= @@ -47,95 +72,119 @@ RDEPEND=" >=media-libs/x264-0.0.20220222:= >=media-libs/zimg-3.0.4 media-sound/lame - >=media-video/ffmpeg-5.1.2:=[postproc,fdk?] sys-libs/zlib fdk? ( media-libs/fdk-aac:= ) - gstreamer? ( - media-libs/gstreamer:1.0 - media-libs/gst-plugins-base:1.0 - media-libs/gst-plugins-good:1.0 - media-libs/gst-plugins-bad:1.0 - media-libs/gst-plugins-ugly:1.0 - media-plugins/gst-plugins-a52dec:1.0 - media-plugins/gst-plugins-libav:1.0 - media-plugins/gst-plugins-x264:1.0 - media-plugins/gst-plugins-gdkpixbuf:1.0 - ) - gtk? ( - >=x11-libs/gtk+-3.10 - dev-libs/dbus-glib + libdovi? ( media-libs/libdovi:= ) + gui? ( + >=gui-libs/gtk-4.4:4[gstreamer] dev-libs/glib:2 - dev-libs/libgudev:= - x11-libs/cairo + >=dev-libs/libxml2-2.10.3 x11-libs/gdk-pixbuf:2 - x11-libs/libnotify x11-libs/pango ) - nvenc? ( - media-libs/nv-codec-headers - media-video/ffmpeg[nvenc] + numa? ( sys-process/numactl ) + nvenc? ( media-libs/nv-codec-headers ) + qsv? ( + media-libs/libva:= + media-libs/libvpl:= ) - x265? ( >=media-libs/x265-3.5-r2:=[10bit,12bit,numa?] ) " -DEPEND="${RDEPEND}" +RDEPEND=" + ${COMMON_DEPEND} + amf? ( media-video/amdgpu-pro-amf ) +" +DEPEND=" + ${COMMON_DEPEND} + amf? ( media-libs/amf-headers ) +" # cmake needed for custom script: bug #852701 BDEPEND=" ${PYTHON_DEPS} dev-build/cmake dev-lang/nasm + gui? ( + dev-build/meson + sys-devel/gettext + ) " PATCHES=( - # Remove libdvdnav duplication and call it on the original instead. - # It may work this way; if not, we should try to mimic the duplication. - "${FILESDIR}/${PN}-9999-remove-dvdnav-dup.patch" + "${FILESDIR}"/handbrake-1.9.0-link-libdovi-properly.patch + "${FILESDIR}"/handbrake-1.9.0-include-vpl-properly.patch +) - # Detect system tools - bug 738110 - "${FILESDIR}/${PN}-9999-system-tools.patch" +src_unpack() { + if [[ ${PV} == 9999 ]]; then + git-r3_src_unpack + else + unpack ${P}.tar.bz2 + fi +} - # Use whichever python is set by portage - "${FILESDIR}/${PN}-9999-dont-search-for-python.patch" +src_prepare() { + mkdir download || die + for name in "${!BUNDLED[@]}"; do + IFS=$';' read -r uri use <<< ${BUNDLED[${name}]} + local tarball="${uri##*/}" + if [[ -n ${use} ]]; then + use ${use} || continue + fi + cp "${DISTDIR}/handbrake-${tarball}" download/${tarball} || die + done + + # Get rid of leftover bundled library build definitions + sed -i -E \ + -e "/MODULES \+= contrib\// { /($(IFS=$'|'; echo "${!BUNDLED[*]}"))$/! d }" \ + "${S}"/make/include/main.defs || die + + # noop fetching + sed -i -e '/DF..*.exe/ { s/= .*/= true/ }' make/include/tool.defs || die + + # noop strip + sed -i \ + -e "s/\(strip\s*= ToolProbe( 'STRIP.exe',\s*'strip',\s*\)'strip'/\1'true'/" \ + make/configure.py || die - # Fix x265 linkage... again again #730034 - "${FILESDIR}/${PN}-1.3.3-x265-link.patch" -) + # Use whichever python is set by portage + sed -i -e "s/for p in .*/for p in ${EPYTHON}/" configure || die -src_prepare() { - # Get rid of leftover bundled library build definitions, - sed -i 's:.*\(/contrib\|contrib/\).*::g' \ - "${S}"/make/include/main.defs \ - || die "Contrib removal failed." + for tool in ar ranlib libtool; do + # Detect system tools - bug 738110 + sed -i \ + -e "s/\(${tool}\s*= ToolProbe( '${tool^^}.exe',\s*'${tool}',\s*\)'${tool}'/\1os.environ.get('${tool^^}', '${tool}')/" \ + make/configure.py || die + done default - - cd "${S}/gtk" || die - eautoreconf } src_configure() { - tc-export AR RANLIB STRIP + tc-export AR RANLIB + + # ODR violations, lto-type-mismatches + # bug #878899 + filter-lto - # Libav was replaced in 1.2 with ffmpeg by default - # but I've elected to not make people change their use flags for AAC - # as its the same code anyway local myconfargs=( --force --verbose + --disable-df-fetch + --disable-df-verify + --launch-jobs=$(get_makeopts_jobs) --prefix="${EPREFIX}/usr" --disable-flatpak - $(usex !gtk --disable-gtk) - --disable-gtk4 - $(usex !gstreamer --disable-gst) - $(use_enable x265) - $(use_enable numa) + --no-harden #bug #890279 + $(use_enable amf vce) $(use_enable fdk fdk-aac) - --enable-ffmpeg-aac # Forced on + $(use_enable gui gtk) + $(use_enable libdovi) + $(use_enable numa) $(use_enable nvenc) - # TODO: $(use_enable qsv) - # TODO: $(use_enable vce) + $(use_enable x265) + $(use_enable qsv) ) - edo ./configure "${myconfargs[@]}" + edo ./configure ${myconfargs[@]} } src_compile() { @@ -155,8 +204,8 @@ pkg_postinst() { einfo "report bugs to Gentoo's bugzilla or Multimedia forum instead." einfo "For the CLI version of HandBrake, you can use \`HandBrakeCLI\`." - if use gtk ; then - einfo "For the GTK+ version of HandBrake, you can run \`ghb\`." + if use gui ; then + einfo "For the GUI version of HandBrake, you can run \`ghb\`." fi xdg_pkg_postinst diff --git a/media-video/handbrake/metadata.xml b/media-video/handbrake/metadata.xml index eb829c9a924c..d82a987a8cbb 100644 --- a/media-video/handbrake/metadata.xml +++ b/media-video/handbrake/metadata.xml @@ -3,13 +3,17 @@ <pkgmetadata> <!-- maintainer-needed --> <use> + <flag name="amf">Support for encoding h265 using AMD VCE encoder.</flag> + <flag name="fdk">Support for encoding AAC using <pkg>media-libs/fdk-aac</pkg>.</flag> <flag name="gstreamer">Support for the streaming media framework from <pkg>media-libs/gstreamer</pkg>.</flag> <flag name="gtk">Install the GTK UI, ghb.</flag> - <flag name="fdk">Support for encoding AAC using <pkg>media-libs/fdk-aac</pkg>.</flag> + <flag name="libdovi">Support for Dolby Vision using <pkg>media-libs/libdovi</pkg>.</flag> <flag name="numa">Adds support for x265's NUMA capabilities.</flag> + <flag name="qsv">Support for encoding h264 using Intel Quick Sync Video.</flag> <flag name="x265">Support for encoding h265 using <pkg>media-libs/x265</pkg>.</flag> </use> <upstream> + <doc lang="en">https://handbrake.fr/docs/en/</doc> <remote-id type="github">HandBrake/HandBrake</remote-id> </upstream> </pkgmetadata> |