summaryrefslogtreecommitdiff
path: root/media-video
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-23 06:31:00 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-23 06:31:00 +0000
commit338095605b6c9c82690f77f27a32490c9a57bdcb (patch)
tree72a4d7ec7ba10ea6da4d4f7d25b68915b12edde6 /media-video
parent5a2cecfc8661e1d3a762adf05cf8eb142cd41710 (diff)
gentoo auto-resync : 23:12:2024 - 06:31:00
Diffstat (limited to 'media-video')
-rw-r--r--media-video/Manifest.gzbin23233 -> 23233 bytes
-rw-r--r--media-video/handbrake/Manifest12
-rw-r--r--media-video/handbrake/files/handbrake-1.9.0-include-vpl-properly.patch18
-rw-r--r--media-video/handbrake/files/handbrake-1.9.0-link-libdovi-properly.patch28
-rw-r--r--media-video/handbrake/handbrake-1.6.1.ebuild7
-rw-r--r--media-video/handbrake/handbrake-1.9.0.ebuild212
-rw-r--r--media-video/handbrake/handbrake-9999.ebuild179
-rw-r--r--media-video/handbrake/metadata.xml6
8 files changed, 392 insertions, 70 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz
index 22c053340ac8..e236e6bf52df 100644
--- a/media-video/Manifest.gz
+++ b/media-video/Manifest.gz
Binary files differ
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>