diff options
Diffstat (limited to 'media-video')
234 files changed, 9405 insertions, 3227 deletions
diff --git a/media-video/aegisub/aegisub-9999.ebuild b/media-video/aegisub/aegisub-9999.ebuild index 211e90d17d21..ef73d1cff4ee 100644 --- a/media-video/aegisub/aegisub-9999.ebuild +++ b/media-video/aegisub/aegisub-9999.ebuild @@ -41,7 +41,7 @@ RDEPEND="${LUA_DEPS} fftw? ( >=sci-libs/fftw-3.3:= ) openal? ( media-libs/openal ) portaudio? ( =media-libs/portaudio-19* ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) spell? ( app-text/hunspell:= ) uchardet? ( app-i18n/uchardet ) " diff --git a/media-video/amdgpu-pro-amf/Manifest b/media-video/amdgpu-pro-amf/Manifest index 3100766abb92..1d5e82418fcc 100644 --- a/media-video/amdgpu-pro-amf/Manifest +++ b/media-video/amdgpu-pro-amf/Manifest @@ -1,6 +1,4 @@ -DIST amdgpu-pro-amf-1.4.24.1376756.deb 1302168 BLAKE2B 706528317c317e0319e80decc8a9a59a0c55fed8c4c43c701ba93a2a503fbf5f2ee9fb44cfeb5bd582b013ebb8961514cb5b9faead8f24fdfe2b205f7d2dc656 SHA512 77740014e6bc2c91e822261e4fa247ac0e49747d6ff8af0c3b3046ec993c7c99621b55639ef18582021389a329e52ccc59edb85eb29d9e6a81da6986a487ec3e -DIST amdgpu-pro-amf-1.4.24.1384496.deb 1304672 BLAKE2B a21e7d2cf9dc4fe139f87d5c61b4ac715e677fb23aa2cc3eb4a62e20776431d26e234d092d9b28ecad22de2f5acda1f21df394f3a51152c9fd36cdfddab78af2 SHA512 4620dda918196e67f99c8a1df8e3e487769bd3ad94881a3769e46a85a12648f50ba8520476c9eec9e982261354ff92f56803fd8731fa7a7e458670011426ce31 -DIST amdgpu-pro-amf-1.4.24.1395274.deb 1304984 BLAKE2B e1b51c6e9dfafcb677314ac881983372cc1d1f09b0112bbe842da06672da8f48e5bd5db358c8067fa23e8a5b4d110b2ea6d998c06357ed32e29accac8ba86c38 SHA512 e809ccf0b93fa8dc44320166ff549e10e1edc6556bb4bf48112de0f20c7e5dda761029aacfa0fd00def30cc647131eb55cf94f01414222c7891d2dad279d33f1 -DIST amdgpu-pro-amf-1.4.24.1420323.deb 1373976 BLAKE2B 64dbcbc079abf523f78663b01066bb74e12f60d56b4a2e7c6765e7b1755a84b1cf5cbe7fcdcc315b42fbb11cfafbf97b0705bb489bead8f84d07f4e81cd84bb6 SHA512 fbe3b24b65bf993dea5bc7d1f6abcb2d0eb938206183962dce1d4634538826e1f4d80f97ee09829af2e745e5f1f97c3bc1c2c8d7cfe4757009157e6996c4b195 -DIST amdgpu-pro-amf-1.4.26.1438747.deb 1501804 BLAKE2B 7be66469a0051fc4ba932d53a232db0487f94ca072580b0d2cc8b51aff2fd922430c632983cac5b02ccd5a9635c92c20b1fbb1d7b51b0425f107b51c4799e0b9 SHA512 f085b07437783295d60a5c1eb1ec46eeb2b6a912f0b80cfd7ab9f9b0c38d360dececcf18d763658af094697447d6486b37a2608c0913e2fd47d68797c085f634 -DIST amdgpu-pro-amf-1.4.26.1462318.deb 1502840 BLAKE2B 69dd0d0a0442a229081d14c733c5905efc91d88b47d18a5d65f5d131d8e0bfe1ff5dc4415d4932c9b227e26ee1f5f452bd3de97ed2be7773d856b5008e3061cf SHA512 8a789d07fdd3e027b343d2b6681b8eebd9974d3b7be59032b1dc1a4d07db4f8937f103feac404a50439cbf54a95f74ced59e9924e79a69006939085493946949 +DIST amdgpu-pro-amf-1.4.24.1452059.deb 1307216 BLAKE2B 2ecae593da961e2ff86e807c017a85fda5459458434c491e538f3845a12b0354e65da568550bbdebb47685aad6b7d22607b5f2a281b49718154ead6f92d30058 SHA512 9e3611ad3cad50da4aeeec2b14ad944e2ff7d83b9b104f65acf5e5915f74644fb25f74bfa51a5802dac828fa6c84e01351fbe58f14e1dde1145ba908d6a0445d +DIST amdgpu-pro-amf-1.4.26.1511376.deb 1502528 BLAKE2B c2199f6b026552f486f2c7f75af9e3d37193870850de75d87b7099257281f98f030f4f7816aaf8086e0011a0f4db16210a084d4e7fcb8c3519e02be1ecb82de9 SHA512 3a3da593dfb765b7302e627a0df4c6e7bc35cfc76ce60ee9e5df74de73bcaf09b7dc687d30cd8ca54b25b90c140830bdb5352c816b7c6569f8200ca0f9acfc48 +DIST amdgpu-pro-amf-1.4.29.1580631.deb 1653852 BLAKE2B 5af5250c07e1b99ae8c1ee28507927e28ee7811929c789b5939a06f631b81155d6795e1392830945bf377f5298a5153e9af3541b2d94533661db394a059fb715 SHA512 07568c5e2f92f10274f7ac25a9d68539b8ce2e5d24c87e9b6a3aec2b8d5a32980c8fd802394dfa6eb421d3321dd60e07929e7f481578d23afcf623c5c9aa2fcc +DIST amdgpu-pro-amf-1.4.30.1620044.deb 1671392 BLAKE2B 89611307dff4f77099ed52e8f7b523e842691b2fe970da7669a961048d5addd969068366a23d7c2df5710b67aeaf7a9cc3f4b902a708a4c686f00c32aa8cdb0c SHA512 4db5a814129a4d6e75466fd4e618eda155e031b70f184d5bf4dae78a13a61559fa26a1dcbc3d259064063467441822a34873af1142ab0366e38b61521c912bf4 diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild deleted file mode 100644 index 28e503e1d763..000000000000 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1376756-r1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit unpacker - -MY_PV_HIGH=$(ver_cut 1) -MY_PV_MIDDLE=$(ver_cut 2) -MY_PV_LOW=$(ver_cut 3) -MY_PV_REV=$(ver_cut 4) - -MY_PV="${MY_PV_HIGH}.${MY_PV_MIDDLE}.${MY_PV_LOW}" -MY_PV_FULL="${MY_PV}-${MY_PV_REV}" - -MY_PN="amf-amdgpu-pro" - -PRO_VULKAN_PKG_VER="21.50.1" - -MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}" - -DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" -HOMEPAGE="https://www.amd.com/en/support" -SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb" - -S="${WORKDIR}" - -RESTRICT="bindist mirror" - -LICENSE="AMD-GPU-PRO-EULA" -SLOT="0" -KEYWORDS="-* ~amd64" - -RDEPEND=" - media-libs/amdgpu-pro-vulkan - media-libs/libglvnd - x11-libs/libdrm - x11-libs/libX11 -" - -QA_PREBUILT=" - usr/lib64/libamfrt64.so* -" - -src_unpack() { - mkdir "${S}/${PN}-amd64" || die - cd "${S}/${PN}-amd64" || die - unpack_deb "${DISTDIR}/${P}.deb" -} - -src_install() { - insinto "/usr/$(get_libdir)" - - # AMF - doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamfrt64.so.${MY_PV}" - dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so" - dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so.1" -} diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild deleted file mode 100644 index d90e8996c76e..000000000000 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1384496-r1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit unpacker - -MY_PV_HIGH=$(ver_cut 1) -MY_PV_MIDDLE=$(ver_cut 2) -MY_PV_LOW=$(ver_cut 3) -MY_PV_REV=$(ver_cut 4) - -MY_PV="${MY_PV_HIGH}.${MY_PV_MIDDLE}.${MY_PV_LOW}" -MY_PV_FULL="${MY_PV}-${MY_PV_REV}" - -MY_PN="amf-amdgpu-pro" - -PRO_VULKAN_PKG_VER="21.50.2" - -MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}" - -DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" -HOMEPAGE="https://www.amd.com/en/support" -SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb" - -S="${WORKDIR}" - -RESTRICT="bindist mirror" - -LICENSE="AMD-GPU-PRO-EULA" -SLOT="0" -KEYWORDS="-* ~amd64" - -RDEPEND=" - media-libs/amdgpu-pro-vulkan - media-libs/libglvnd - x11-libs/libdrm - x11-libs/libX11 -" - -QA_PREBUILT=" - usr/lib64/libamfrt64.so* -" - -src_unpack() { - mkdir "${S}/${PN}-amd64" || die - cd "${S}/${PN}-amd64" || die - unpack_deb "${DISTDIR}/${P}.deb" -} - -src_install() { - insinto "/usr/$(get_libdir)" - - # AMF - doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamfrt64.so.${MY_PV}" - dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so" - dosym "libamfrt64.so.${MY_PV}" "/usr/$(get_libdir)/libamfrt64.so.1" -} diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1420323.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild index 179799c5a6c5..2ae162b65fcb 100644 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1420323.ebuild +++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild @@ -15,7 +15,7 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}" MY_PN="amf-amdgpu-pro" -PRO_VULKAN_PKG_VER="22.10.3" +PRO_VULKAN_PKG_VER="22.10.4" DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" HOMEPAGE="https://www.amd.com/en/support" diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1438747.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1511376.ebuild index 0e02c47bc041..2478a76df5ff 100644 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1438747.ebuild +++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1511376.ebuild @@ -15,7 +15,7 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}" MY_PN="amf-amdgpu-pro" -PRO_VULKAN_PKG_VER="22.20" +PRO_VULKAN_PKG_VER="22.20.5" UBUNTU_VER="22.04" DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1462318.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild index 9fd0217f66f6..aeace360442d 100644 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.26.1462318.ebuild +++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild @@ -15,12 +15,12 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}" MY_PN="amf-amdgpu-pro" -PRO_VULKAN_PKG_VER="22.20.3" +INTERNAL_VER="5.4.6" UBUNTU_VER="22.04" DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" HOMEPAGE="https://www.amd.com/en/support" -SRC_URI="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}~${UBUNTU_VER}_amd64.deb -> ${P}.deb" +SRC_URI="https://repo.radeon.com/amdgpu/${INTERNAL_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_amd64.deb -> ${P}.deb" S="${WORKDIR}" diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1395274.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.30.1620044.ebuild index 9e20d80730c7..cb437bc8cbaa 100644 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1395274.ebuild +++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.30.1620044.ebuild @@ -15,13 +15,12 @@ MY_PV_FULL="${MY_PV}-${MY_PV_REV}" MY_PN="amf-amdgpu-pro" -PRO_VULKAN_PKG_VER="22.10" - -MY_LINK="https://repo.radeon.com/amdgpu/${PRO_VULKAN_PKG_VER}/ubuntu/pool/proprietary/a/${MY_PN}" +INTERNAL_VER="5.5.3" +UBUNTU_VER="22.04" DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" HOMEPAGE="https://www.amd.com/en/support" -SRC_URI="${MY_LINK}/${MY_PN}_${MY_PV_FULL}_amd64.deb -> ${P}.deb" +SRC_URI="https://repo.radeon.com/amdgpu/${INTERNAL_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_amd64.deb -> ${P}.deb" S="${WORKDIR}" diff --git a/media-video/bino/Manifest b/media-video/bino/Manifest index cb1e5a64e75a..0f61dee9e6c9 100644 --- a/media-video/bino/Manifest +++ b/media-video/bino/Manifest @@ -1,3 +1,2 @@ -DIST bino-1.6.7.tar.xz 825068 BLAKE2B d9019a793838f33ea1315849aa994b20a1c6127995315dc03972fe6c64a742c73434c07ba06402a1e2bd5357781d18aaf3d19ab2d61788745b2aa99ad3f4c6f4 SHA512 ae8f72b200100664b9fd55963371ce64a2f39e240676494d69b422d662f2295560ba458eb04707b82f88d3c6b3fab98a1ecb40d74799300f96b8eb8be680c9b8 DIST bino-1.6.8.tar.xz 836712 BLAKE2B 801d6f1ffbf1a7fbaabcdbb2c4bd649662d3b14b08189431a418702177f5de28a8961763c83962fd72cbf6f762fad34ed0b616efc68a723f65b6c72823618897 SHA512 d8cf5be356add4ed3fb36673038b5ffd92d0dc840798cc616fa4b11fec221c7f114347dfc7cdb7a3a24c5599b56301cddc99f84d3862d8e874612960281319cc DIST bino-2.0.tar.gz 193004 BLAKE2B cb9f40e6eb3f925ecf83e766d613ce15c2fccf8b52a16c3b8000b8854a1defc5dab271c984db3a3780e5126b0e83e60c675956ee6e287c117874c0ef6b504fbf SHA512 5620c506f4de1a9aa7f21f0a23481c5174e7a6a47e6401a84d048dc87843249ef325e33ebc49790d405eb4697c3c571550b0e202f24e758c446ce8e4014f98b3 diff --git a/media-video/bino/bino-1.6.7.ebuild b/media-video/bino/bino-1.6.7.ebuild deleted file mode 100644 index 8c5b35e1714a..000000000000 --- a/media-video/bino/bino-1.6.7.ebuild +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic xdg - -DESCRIPTION="Stereoscopic and multi-display media player" -HOMEPAGE="https://bino3d.org/" -SRC_URI="https://bino3d.org/releases/${P}.tar.xz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="debug doc lirc video_cards_nvidia" - -RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtopengl:5 - dev-qt/qtwidgets:5 - >=media-libs/glew-1.6.0:0= - >=media-libs/libass-0.9.9 - >=media-libs/openal-1.15.1 - virtual/libintl - >=media-video/ffmpeg-0.7:0= - lirc? ( app-misc/lirc ) - video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )" -DEPEND="${RDEPEND}" -BDEPEND="sys-devel/gettext - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/${PN}-1.6.7-gcc11.patch -) - -src_configure() { - if use video_cards_nvidia; then - append-cppflags "-I${ESYSROOT}/usr/include/NVCtrl" - append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/opengl/nvidia/lib -L${ESYSROOT}/usr/$(get_libdir)" - append-libs "Xext" - fi - - if use lirc; then - append-cppflags "-I${ESYSROOT}/usr/include/lirc" - append-libs "lirc_client" - fi - - # Fix a compilation error because of a multiple definitions error in glew - append-ldflags "-zmuldefs" - - econf \ - $(use_with video_cards_nvidia xnvctrl) \ - $(use_with lirc) \ - $(use_enable debug) \ - --without-equalizer \ - --with-qt-version=5 -} - -src_install() { - default - - if ! use doc; then - rm -rf "${ED}"/usr/share/doc/${PF}/html || die - fi -} diff --git a/media-video/bino/bino-1.6.8.ebuild b/media-video/bino/bino-1.6.8.ebuild index d7bdc7c2def6..841c5e2b3aa8 100644 --- a/media-video/bino/bino-1.6.8.ebuild +++ b/media-video/bino/bino-1.6.8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,6 +14,7 @@ SLOT="0" KEYWORDS="amd64 x86" IUSE="debug doc lirc video_cards_nvidia" +# <ffmpeg-5 for bug #907682 and bug #834400. >=bino-2 uses Qt 6 and drops ffmpeg. RDEPEND=" dev-qt/qtcore:5 dev-qt/qtgui:5 @@ -23,7 +24,7 @@ RDEPEND=" >=media-libs/libass-0.9.9 >=media-libs/openal-1.15.1 virtual/libintl - >=media-video/ffmpeg-0.7:0= + <media-video/ffmpeg-5:= lirc? ( app-misc/lirc ) video_cards_nvidia? ( x11-drivers/nvidia-drivers[tools,static-libs] )" DEPEND="${RDEPEND}" diff --git a/media-video/bino/files/bino-1.6.7-gcc11.patch b/media-video/bino/files/bino-1.6.7-gcc11.patch deleted file mode 100644 index 8d4bf4070f36..000000000000 --- a/media-video/bino/files/bino-1.6.7-gcc11.patch +++ /dev/null @@ -1,30 +0,0 @@ -https://git.marlam.de/gitweb/?p=bino.git;a=commitdiff;h=7997ad11eefe241bb85a27c50d009c99851d7b0b -https://bugs.gentoo.org/790128 - -From 7997ad11eefe241bb85a27c50d009c99851d7b0b Mon Sep 17 00:00:00 2001 -From: Martin Lambers <marlam@marlam.de> -Date: Sat, 27 Feb 2021 21:28:50 +0100 -Subject: [PATCH] fix compilation with C++ 17 compilers such as gcc 11 - ---- - src/base/dbg.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/base/dbg.cpp b/src/base/dbg.cpp -index 6c6234f..044be67 100644 ---- a/src/base/dbg.cpp -+++ b/src/base/dbg.cpp -@@ -74,8 +74,10 @@ namespace dbg - (void)sigaction(SIGFPE, &signal_handler, NULL); - (void)sigaction(SIGSEGV, &signal_handler, NULL); - #endif -+#if __cplusplus < 201700 - std::set_unexpected(exception_crash); - std::set_terminate(exception_crash); -+#endif - std::set_new_handler(oom_abort); - } - --- -2.20.1 - diff --git a/media-video/blind/blind-1.1.ebuild b/media-video/blind/blind-1.1-r1.ebuild index 43fc42d195d8..e018b94b7386 100644 --- a/media-video/blind/blind-1.1.ebuild +++ b/media-video/blind/blind-1.1-r1.ebuild @@ -1,10 +1,11 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 + inherit toolchain-funcs -DESCRIPTION="a collection of command line video editing utilities" +DESCRIPTION="Collection of command line video editing utilities" HOMEPAGE="https://tools.suckless.org/blind/" SRC_URI="https://dl.suckless.org/tools/${P}.tar.gz" @@ -12,14 +13,7 @@ LICENSE="ISC" SLOT="0" KEYWORDS="~amd64" -RDEPEND=" -" -DEPEND=" - ${RDEPEND} -" -PATCHES=( - "${FILESDIR}"/${PN}-1.1-ldflags.patch -) +PATCHES=( "${FILESDIR}"/${PN}-1.1-ldflags.patch ) src_prepare() { default @@ -36,7 +30,3 @@ src_prepare() { src_compile() { emake CC="$(tc-getCC)" } - -src_install() { - emake DESTDIR="${D}" install MANPREFIX=/usr/share/man -} diff --git a/media-video/bluray_info/Manifest b/media-video/bluray_info/Manifest index 7aa6b9e6701c..41c5db0eef85 100644 --- a/media-video/bluray_info/Manifest +++ b/media-video/bluray_info/Manifest @@ -1 +1 @@ -DIST bluray_info-1.3.tar.gz 188192 BLAKE2B f88020721f7295b9bdd46687cd436c6a5bf38efc1fafc1bdfddda41a7c1a14fbee02a93b69b38a1703f089c9ad4a3576c9f750283a94ec2de09841bc1ae679cb SHA512 cf14733bd3b3fe9ebdace130c880fd695f0a60533a4b397f339789b2b11a15515f8ad24e87ccb428e73b74826ddaa5c2df0c1c9bf7907bdc5b1824f73d22c1ed +DIST bluray_info-1.10.tar.gz 279446 BLAKE2B 651d729380649c1d6846d1897d5f3403c575e481f6206f3303607f80e334adda7b436c485de03a90f309676612dbb45839aced24be4ac8e1306b6466e58869e9 SHA512 fae7866155862fac1766b4dfdd587e0f40e562ca39d6bd19999732fb86203105ed7d350433e815636e2d8823de18e5805e425bd05c39070c5dc1792c8db060b6 diff --git a/media-video/bluray_info/bluray_info-1.10.ebuild b/media-video/bluray_info/bluray_info-1.10.ebuild new file mode 100644 index 000000000000..e19744928418 --- /dev/null +++ b/media-video/bluray_info/bluray_info-1.10.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Blu-ray utilities: bluray_info, bluray_copy, bluray_player" +HOMEPAGE="https://github.com/beandog/bluray_info https://dvds.beandog.org" +SRC_URI="https://bluray.beandog.org/${PN}/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+mpv" + +DEPEND=" + media-libs/libaacs + >=media-libs/libbluray-1.2.0[aacs] + mpv? ( media-video/mpv[libmpv,bluray] ) +" +RDEPEND="${DEPEND}" + +src_configure() { + econf $(use_with mpv libmpv) +} diff --git a/media-video/bluray_info/bluray_info-1.3.ebuild b/media-video/bluray_info/bluray_info-1.3.ebuild deleted file mode 100644 index 7d6aef069eb6..000000000000 --- a/media-video/bluray_info/bluray_info-1.3.ebuild +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Blu-ray disc tools: bluray_info, bluray_copy" -HOMEPAGE="https://github.com/beandog/bluray_info" -SRC_URI="mirror://sourceforge/bluray-info/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND=">=media-libs/libbluray-1.0.0" -RDEPEND="${DEPEND}" diff --git a/media-video/bluray_info/metadata.xml b/media-video/bluray_info/metadata.xml index b0fc9141559e..47e7f040a95f 100644 --- a/media-video/bluray_info/metadata.xml +++ b/media-video/bluray_info/metadata.xml @@ -1,10 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> -<email>media-video@gentoo.org</email> -</maintainer> -<upstream> -<remote-id type="sourceforge">bluray-info</remote-id> -</upstream> + <maintainer type="project"> + <email>media-video@gentoo.org</email> + </maintainer> + <use> + <flag name="mpv">Build bluray_player, powered by <pkg>media-video/mpv</pkg></flag> + </use> + <upstream> + <remote-id type="sourceforge">bluray-info</remote-id> + <remote-id type="github">beandog/bluray_info</remote-id> + </upstream> </pkgmetadata> diff --git a/media-video/cheese/Manifest b/media-video/cheese/Manifest index 7f3cd950c1d0..b042b9698685 100644 --- a/media-video/cheese/Manifest +++ b/media-video/cheese/Manifest @@ -1 +1 @@ -DIST cheese-43.0.tar.xz 1095328 BLAKE2B 728cf913336f09ae073508d6bf18f7bb0cf4bb0e16ad5d6acd5fb77b75577303b1a2d8820b280a31c15ebdcbf231205881440105c390a0f16681dc5274a74446 SHA512 07ed087490b4024ecbc097c1a62e24fdc0c5c8acac23ba3ed246104655a8b1786faee5caa5e59cfa7b725527b5aedc587b0f99a2b43100497f866966818e345e +DIST cheese-44.1.tar.xz 1095916 BLAKE2B 7558b43a28bc5323a6ccd6e50c86611ee572d32cf190dde401c5d347b70b269ce05875e8a0d2d59e174a66d2cf5330b2530890969445eab00d7da0b4f02ce3e7 SHA512 106f02c0bd6e21039e3d1cdbcb8111c8d76638666b3a3ee65bc81295deaf50acf49023f3f7bf2ca244a9b7f4ac95d04fbc5864c1ded8698c52665c23c3640dc1 diff --git a/media-video/cheese/cheese-43.0.ebuild b/media-video/cheese/cheese-44.1.ebuild index afde9bd88795..b6998ae2db97 100644 --- a/media-video/cheese/cheese-43.0.ebuild +++ b/media-video/cheese/cheese-44.1.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Apps/Cheese" LICENSE="GPL-2+" SLOT="0/8" # subslot = libcheese soname version -KEYWORDS="amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86" +KEYWORDS="amd64 ~arm arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86" IUSE="gtk-doc +introspection test" RESTRICT="!test? ( test )" diff --git a/media-video/devedeng/devedeng-4.17.0-r1.ebuild b/media-video/devedeng/devedeng-4.17.0-r2.ebuild index 36b0979743be..451ce0cb30ea 100644 --- a/media-video/devedeng/devedeng-4.17.0-r1.ebuild +++ b/media-video/devedeng/devedeng-4.17.0-r2.ebuild @@ -3,8 +3,8 @@ EAPI=8 -DISTUTILS_USE_SETUPTOOLS=no -PYTHON_COMPAT=( python3_{9..11} ) +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9..12} ) inherit distutils-r1 xdg @@ -32,7 +32,10 @@ DEPEND="${PYTHON_DEPS}" # src/unitests only works against system installed devedeng RESTRICT="test" -PATCHES=( "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch ) +PATCHES=( + "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch + "${FILESDIR}"/${P}-locale_install.patch +) src_prepare() { default diff --git a/media-video/devedeng/devedeng-4.17.0.ebuild b/media-video/devedeng/devedeng-4.17.0.ebuild deleted file mode 100644 index 765cb590e3ee..000000000000 --- a/media-video/devedeng/devedeng-4.17.0.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_SETUPTOOLS=no -PYTHON_COMPAT=( python3_{9..10} ) - -inherit distutils-r1 xdg - -DESCRIPTION="DevedeNG is a program to create video DVDs and CDs (VCD, sVCD or CVD)" -HOMEPAGE="https://www.rastersoft.com/programas/devede.html" -SRC_URI="https://gitlab.com/rastersoft/${PN}/-/archive/${PV}/${P}.tar.bz2" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - app-cdr/cdrtools - dev-python/pycairo[${PYTHON_USEDEP}] - dev-python/pygobject:3[${PYTHON_USEDEP}] - x11-libs/gtk+:3 - || ( media-video/vlc media-video/mpv media-video/mplayer ) - media-video/ffmpeg - media-video/dvdauthor - media-video/vcdimager - || ( app-cdr/brasero kde-apps/k3b app-cdr/xfburn )" - -DEPEND="${PYTHON_DEPS}" - -# src/unitests only works against system installed devedeng -RESTRICT="test" - -PATCHES=( "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch ) - -src_prepare() { - default - - # Documentation path - sed -e "s#/usr/share/doc/devedeng#/usr/share/doc/${P}#" \ - -i src/devedeng/configuration_data.py || die - sed -e "/'doc'/s/devedeng/${P}/" -i setup.py || die - - # Desktop icon - sed -e "/^Icon/s/.svg$//#" -i data/devede_ng.py.desktop || die -} diff --git a/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch b/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch new file mode 100644 index 000000000000..c8cfefad093b --- /dev/null +++ b/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch @@ -0,0 +1,15 @@ +diff -Naur devedeng-4.17.0.orig/setup.py devedeng-4.17.0/setup.py +--- devedeng-4.17.0.orig/setup.py 2022-03-02 16:03:24.000000000 +0100 ++++ devedeng-4.17.0/setup.py 2023-07-09 11:07:43.855950815 +0200 +@@ -33,10 +33,7 @@ + for lang_name in [f for f in os.listdir('locale')]: + mofile = os.path.join('locale', lang_name, + 'LC_MESSAGES', 'devedeng.mo') +- # translations must be always in /usr/share because Gtk.builder only +- # search there. If someone knows how to fix this... +- # share/locale/fr/LC_MESSAGES/ +- target = os.path.join('/usr', 'share', 'locale', ++ target = os.path.join('share', 'locale', + lang_name, 'LC_MESSAGES') + data_files.append((target, [mofile])) + diff --git a/media-video/devedeng/metadata.xml b/media-video/devedeng/metadata.xml index 6fd493ed47c4..45d3c80bfe20 100644 --- a/media-video/devedeng/metadata.xml +++ b/media-video/devedeng/metadata.xml @@ -11,6 +11,6 @@ DevedeNG is a program to create video DVDs and CDs (VCD, sVCD or CVD), suitables The suffix NG is because it is a rewrite from scratch of the old Devede, to work with Python3 and Gtk3, and with a new internal architecture that allows to expand it and easily add new features. </longdescription> <upstream> - <remote-id type="github">rastersoft/devedeng</remote-id> + <remote-id type="gitlab">rastersoft/devedeng</remote-id> </upstream> </pkgmetadata> diff --git a/media-video/dirac/dirac-1.0.2-r2.ebuild b/media-video/dirac/dirac-1.0.2-r2.ebuild index 49b566e64269..c56c5dc0be8a 100644 --- a/media-video/dirac/dirac-1.0.2-r2.ebuild +++ b/media-video/dirac/dirac-1.0.2-r2.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="MPL-1.1" SLOT="0" -KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~x86-solaris" +KEYWORDS="~alpha amd64 arm ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" IUSE="debug doc cpu_flags_x86_mmx" BDEPEND=" diff --git a/media-video/droidcam/Manifest b/media-video/droidcam/Manifest index d6d1c64f41d2..aca7a3b3a285 100644 --- a/media-video/droidcam/Manifest +++ b/media-video/droidcam/Manifest @@ -1,3 +1 @@ -DIST droidcam-1.8.2.tar.gz 84797 BLAKE2B b2458dd04b467106a6d9a8a9f3d44058641a7c8ca429d5c92f498401c07f6bc364dc056755f21b40faac7e7aec1877250afb119ac3b7f979b24cdeb86f45c384 SHA512 507f513c8d0dffa86afe5368ccab5461931e236b6352269a6eb5e970a79e5f9b386808da3466f3b391e955170b47b24a82663632ddc3c3c84e4de5988b7d3f8f -DIST droidcam-1.8.2_p20220831.tar.gz 84943 BLAKE2B db54f39a9b303b4b06dfdfcb6bf9323ce25f8cea4594cdcec063685fea531fdeb915caab393d0edf72086deb592345d7ca6aefd546d44f06e24855d66fbd8d47 SHA512 c30848c2348c70a15c46f894b1c0547a3e904bbb8582ae2d34009dbc9b0d006a49ab3950fef4491f76f838fd091d68ec1d63d5b1f52e793e98936fe5f2d44b5c -DIST droidcam-1.9.0_rc1.tar.gz 85035 BLAKE2B aa0129eeb1f5348948872c6144b472008d50d29b2d83bc96c32de52ba7696f067eeb59208c8ab53f0cd4d0bdcf74e94b61f11bd652d5cae828efd89bd434f595 SHA512 4b44cb702456110fdd7d9f82cd5e0f024a428dd9bed2e1c0eeb914983b9611a6405dadbb399efdb1539358a729c2194142eaa95d3eba68b6906ff1614919a29d +DIST droidcam-2.0.0.tar.gz 85146 BLAKE2B 95b96e7474ee457589d751caff156f9715f75cab3e54bef151334f8fe6371f5eed919e9a5df050ec683a65f15c2e40a06efc66e80e5323a8b0e6713980c75174 SHA512 68fe4de308df238fc096ad8b658c5d330400113c7ddf54bf0f070c9852e375273f80c7a8293bd9b5e357163305573931c94bb2bd005673086f718121181b2212 diff --git a/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild b/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild deleted file mode 100644 index 401a7d918546..000000000000 --- a/media-video/droidcam/droidcam-1.8.2_p20220831.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 2019-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit desktop linux-mod xdg - -COMMIT="d1c3206306f948a8e86c7a256f1ca1be09b114b1" - -DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app" -HOMEPAGE="https://www.dev47apps.com/droidcam/linux/" -SRC_URI="https://github.com/dev47apps/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${COMMIT}" - -KEYWORDS="~amd64" -LICENSE="GPL-2" -SLOT="0" - -IUSE="gtk" - -# Requires connection to phone/tablet -RESTRICT="test" - -DEPEND=" - app-pda/libplist - app-pda/libusbmuxd - dev-libs/glib - dev-libs/libayatana-appindicator - dev-libs/libxml2 - dev-util/android-tools - media-libs/alsa-lib - media-libs/libjpeg-turbo - >=media-libs/speex-1.2.0-r1 - media-video/ffmpeg - gtk? ( - x11-libs/gdk-pixbuf - x11-libs/gtk+:3 - x11-libs/libX11 - x11-libs/pango - ) -" -RDEPEND="${DEPEND}" -BDEPEND="virtual/pkgconfig" - -BUILD_TARGETS="all" -MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)" -MODULESD_V4L2LOOPBACK_DC_ENABLED="yes" - -CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT" -ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support" - -PATCHES="${FILESDIR}/${PN}-1.8.2_p20220831-makefile-fixes.patch" - -src_prepare() { - if ! use gtk; then - default - sed -i -e '/cflags gtk+/d' Makefile || die - else - default - # remove path and extension from Icon and Exec entry - sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \ - -e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \ - droidcam.desktop || die - sed -i -e 's%/opt/droidcam-icon.png%/usr/share/icons/hicolor/96x96/apps/droidcam.png%g' src/droidcam.c || die - fi -} - -src_configure() { - set_arch_to_kernel - default -} - -src_compile() { - if use gtk; then - emake droidcam - fi - emake droidcam-cli - - if linux_chkconfig_present CC_IS_CLANG; then - BUILD_PARAMS+=' CC=${CHOST}-clang' - if linux_chkconfig_present LD_IS_LLD; then - BUILD_PARAMS+=' LD=ld.lld' - if linux_chkconfig_present LTO_CLANG_THIN; then - # kernel enables cache by default leading to sandbox violations - BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir=' - fi - fi - fi - export KERNEL_DIR || die - linux-mod_src_compile -} - -src_test() { - pushd "v4l2loopback" || die - default - ./test || die - popd || die -} - -src_install() { - if use gtk; then - dobin droidcam - newicon -s 32 icon.png droidcam.png - newicon -s 96 icon2.png droidcam.png - domenu droidcam.desktop - fi - dobin droidcam-cli - - # The cli and gui do not auto load the module if unloaded (why not though?) - # so we just put it in modules-load.d to make sure it always works - insinto /etc/modules-load.d - if linux_config_exists; then - if linux_chkconfig_module SND_ALOOP; then - newins - "${PN}.conf" <<-EOF - v4l2loopback-dc - snd_aloop - EOF - else - newins - "${PN}.conf" <<-EOF - v4l2loopback-dc - EOF - fi - fi - - einstalldocs - linux-mod_src_install -} - -pkg_preinst() { - linux-mod_pkg_preinst - if use gtk; then - xdg_pkg_preinst - fi -} - -pkg_postinst() { - linux-mod_pkg_postinst - if use gtk; then - xdg_pkg_postinst - else - elog - elog "Only droidcam-cli has been installed since 'gtk' flag was not set" - elog - fi - - elog "The default resolution for v4l2loopback-dc (i.e. droidcam) is 640x480." - elog "You can change this value in /etc/modprobe.d/v4l2loopback-dc.conf" - elog - elog "Links to the Android/iPhone/iPad apps can be found at" - elog "https://www.dev47apps.com/" -} - -pkg_postrm() { - linux-mod_pkg_postrm - if use gtk; then - xdg_pkg_postrm - fi -} diff --git a/media-video/droidcam/droidcam-1.9.0_rc1.ebuild b/media-video/droidcam/droidcam-2.0.0-r1.ebuild index 43c1cec97661..17c5115355ca 100644 --- a/media-video/droidcam/droidcam-1.9.0_rc1.ebuild +++ b/media-video/droidcam/droidcam-2.0.0-r1.ebuild @@ -47,7 +47,9 @@ MODULESD_V4L2LOOPBACK_DC_ENABLED="yes" CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT" ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support" -PATCHES="${FILESDIR}/${PN}-1.8.2_p20220831-makefile-fixes.patch" +PATCHES=( + "${FILESDIR}/${P}-libusbmuxd-20.patch" +) src_prepare() { if ! use gtk; then @@ -70,9 +72,9 @@ src_configure() { src_compile() { if use gtk; then - emake droidcam + APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam fi - emake droidcam-cli + APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam-cli if linux_chkconfig_present CC_IS_CLANG; then BUILD_PARAMS+=' CC=${CHOST}-clang' diff --git a/media-video/droidcam/droidcam-1.8.2-r1.ebuild b/media-video/droidcam/droidcam-2.0.0-r3.ebuild index 53150f3a9c28..e243b0248cff 100644 --- a/media-video/droidcam/droidcam-1.8.2-r1.ebuild +++ b/media-video/droidcam/droidcam-2.0.0-r3.ebuild @@ -1,13 +1,14 @@ -# Copyright 2019-2022 Gentoo Authors +# Copyright 2019-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit desktop linux-mod xdg +inherit desktop linux-mod-r1 xdg DESCRIPTION="Use your phone or tablet as webcam with a v4l device driver and app" HOMEPAGE="https://www.dev47apps.com/droidcam/linux/" -SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +SRC_URI="https://github.com/dev47apps/${PN}/archive/v${PV//_rc1/-RC}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${PV//_rc1/-RC}" KEYWORDS="~amd64" LICENSE="GPL-2" @@ -22,7 +23,7 @@ DEPEND=" app-pda/libplist app-pda/libusbmuxd dev-libs/glib - dev-libs/libappindicator:3 + dev-libs/libayatana-appindicator dev-libs/libxml2 dev-util/android-tools media-libs/alsa-lib @@ -39,21 +40,19 @@ DEPEND=" RDEPEND="${DEPEND}" BDEPEND="virtual/pkgconfig" -BUILD_TARGETS="all" -MODULE_NAMES="v4l2loopback-dc(video:${S}/v4l2loopback:${S}/v4l2loopback)" -MODULESD_V4L2LOOPBACK_DC_ENABLED="yes" - CONFIG_CHECK="~SND_ALOOP VIDEO_DEV MEDIA_SUPPORT MEDIA_CAMERA_SUPPORT" ERROR_SND_ALOOP="CONFIG_SND_ALOOP is optionally required for audio support" -PATCHES="${FILESDIR}/${PN}-1.8.2-makefile-fixes.patch" +PATCHES=( + "${FILESDIR}/${P}-libusbmuxd-20.patch" +) src_prepare() { if ! use gtk; then default sed -i -e '/cflags gtk+/d' Makefile || die else - xdg_src_prepare + default # remove path and extension from Icon and Exec entry sed -i -e 's/Icon=\/opt\/droidcam-icon.png/Icon=droidcam/g' \ -e 's/\/usr\/local\/bin\/droidcam/droidcam/g' \ @@ -69,22 +68,19 @@ src_configure() { src_compile() { if use gtk; then - emake droidcam + APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam fi - emake droidcam-cli - - if linux_chkconfig_present CC_IS_CLANG; then - BUILD_PARAMS+=' CC=${CHOST}-clang' - if linux_chkconfig_present LD_IS_LLD; then - BUILD_PARAMS+=' LD=ld.lld' - if linux_chkconfig_present LTO_CLANG_THIN; then - # kernel enables cache by default leading to sandbox violations - BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir=' - fi - fi - fi - export KERNEL_DIR || die - linux-mod_src_compile + APPINDICATOR=ayatana-appindicator3-0.1 emake droidcam-cli + + local modlist=( + v4l2loopback-dc=video:v4l2loopback:v4l2loopback:all + ) + + local modargs=( + KERNEL_DIR="${KV_OUT_DIR}" + ) + + linux-mod-r1_src_compile } src_test() { @@ -103,7 +99,7 @@ src_install() { fi dobin droidcam-cli - # The cli and gui do not auto load the module if unloaded (why not though?) + # The cli and gui do not auto load the module if unloaded, # so we just put it in modules-load.d to make sure it always works insinto /etc/modules-load.d if linux_config_exists; then @@ -119,19 +115,17 @@ src_install() { fi fi - einstalldocs - linux-mod_src_install + linux-mod-r1_src_install } pkg_preinst() { - linux-mod_pkg_preinst if use gtk; then xdg_pkg_preinst fi } pkg_postinst() { - linux-mod_pkg_postinst + linux-mod-r1_pkg_postinst if use gtk; then xdg_pkg_postinst else @@ -148,7 +142,6 @@ pkg_postinst() { } pkg_postrm() { - linux-mod_pkg_postrm if use gtk; then xdg_pkg_postrm fi diff --git a/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch b/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch deleted file mode 100644 index 56b7589b2d12..000000000000 --- a/media-video/droidcam/files/droidcam-1.8.2-makefile-fixes.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff --git a/Makefile b/Makefile -index 7be3c15..85ef623 100644 ---- a/Makefile -+++ b/Makefile -@@ -6,25 +6,19 @@ - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - # Use at your own risk. See README file for more details. - --JPEG_DIR ?= /opt/libjpeg-turbo --JPEG_INCLUDE ?= $(JPEG_DIR)/include --JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT` -- --CC = gcc --CFLAGS = -Wall -O2 - GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11` - GTK += `pkg-config --cflags --libs appindicator3-0.1` - LIBAV = `pkg-config --libs --cflags libswscale libavutil` - LIBS = -lspeex -lasound -lpthread -lm --JPEG = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a -+JPEG = `pkg-config --libs --cflags libturbojpeg` - SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c --USBMUXD = -lusbmuxd -+USBMUXD = -lusbmuxd-2.0 - - all: droidcam-cli droidcam - - ifneq "$(RELEASE)" "" --LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.a /usr/lib/x86_64-linux-gnu/libavutil.a --SRC += src/libusbmuxd.a src/libxml2.a src/libplist-2.0.a -+LIBAV = /usr/lib/x86_64-linux-gnu/libswscale.so /usr/lib/x86_64-linux-gnu/libavutil.so -+SRC += src/libusbmuxd-2.0.so src/libxml2.so src/libplist-2.0.so - package: clean all - zip "droidcam_$(RELEASE).zip" \ - LICENSE README* icon2.png \ -@@ -40,11 +34,11 @@ gresource: .gresource.xml icon2.png - - droidcam-cli: LDLIBS += $(JPEG) $(LIBAV) $(LIBS) - droidcam-cli: src/droidcam-cli.c $(SRC) -- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) -+ $(CC) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) - - droidcam: LDLIBS += $(GTK) $(JPEG) $(LIBAV) $(LIBS) - droidcam: src/droidcam.c src/resources.c $(SRC) -- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) -+ $(CC) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) - - clean: - rm -f droidcam -diff --git a/v4l2loopback/Makefile b/v4l2loopback/Makefile -index 28c4502..02356e9 100644 ---- a/v4l2loopback/Makefile -+++ b/v4l2loopback/Makefile -@@ -11,7 +11,7 @@ install: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install - - test: -- gcc test.c -o test -+ $(CC) test.c -o test - - clean: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean diff --git a/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch b/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch deleted file mode 100644 index 60454427e41a..000000000000 --- a/media-video/droidcam/files/droidcam-1.8.2_p20220831-makefile-fixes.patch +++ /dev/null @@ -1,68 +0,0 @@ -diff --git a/Makefile b/Makefile -index b372b09..d18ddba 100644 ---- a/Makefile -+++ b/Makefile -@@ -11,31 +11,21 @@ - # Example: - # APPINDICATOR=ayatana-appindicator3-0.1 make droidcam - --APPINDICATOR ?= appindicator3-0.1 --JPEG_DIR ?= /opt/libjpeg-turbo --JPEG_INCLUDE ?= $(JPEG_DIR)/include --JPEG_LIB ?= $(JPEG_DIR)/lib`getconf LONG_BIT` -- -- --CC = gcc --CFLAGS = -Wall -O2 - GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11` --GTK += `pkg-config --libs --cflags $(APPINDICATOR)` -+GTK += `pkg-config --libs --cflags ayatana-appindicator3-0.1` - LIBAV = `pkg-config --libs --cflags libswscale libavutil` - LIBS = -lspeex -lasound -lpthread -lm --JPEG = -I$(JPEG_INCLUDE) $(JPEG_LIB)/libturbojpeg.a -+JPEG = `pkg-config --libs --cflags libturbojpeg` - SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c --USBMUXD = -lusbmuxd -+USBMUXD = -lusbmuxd-2.0 - --ifneq ($(findstring ayatana,$(APPINDICATOR)),) -- CFLAGS += -DUSE_AYATANA_APPINDICATOR --endif -+CFLAGS += -DUSE_AYATANA_APPINDICATOR - - - all: droidcam-cli droidcam - - ifneq "$(RELEASE)" "" --SRC += src/libusbmuxd.a src/libxml2.a src/libplist-2.0.a -+SRC += src/libusbmuxd-2.0.s0 src/libxml2.so src/libplist-2.0.so - package: clean all - zip "droidcam_$(RELEASE).zip" \ - LICENSE README* icon2.png \ -@@ -51,11 +41,11 @@ gresource: .gresource.xml icon2.png - - droidcam-cli: LDLIBS += $(JPEG) $(LIBAV) $(LIBS) - droidcam-cli: src/droidcam-cli.c $(SRC) -- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) -+ $(CC) $(CXXFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) - - droidcam: LDLIBS += $(GTK) $(JPEG) $(LIBAV) $(LIBS) - droidcam: src/droidcam.c src/resources.c $(SRC) -- $(CC) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) -+ $(CC) $(CXXFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LDLIBS) - - clean: - rm -f droidcam -diff --git a/v4l2loopback/Makefile b/v4l2loopback/Makefile -index 28c4502..02356e9 100644 ---- a/v4l2loopback/Makefile -+++ b/v4l2loopback/Makefile -@@ -11,7 +11,7 @@ install: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) modules_install - - test: -- gcc test.c -o test -+ $(CC) test.c -o test - - clean: - $(MAKE) -C $(KERNEL_DIR) M=$(PWD) clean diff --git a/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch b/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch new file mode 100644 index 000000000000..71625224aabe --- /dev/null +++ b/media-video/droidcam/files/droidcam-2.0.0-libusbmuxd-20.patch @@ -0,0 +1,13 @@ +diff --git a/Makefile b/Makefile +index f45cd20..0cf696b 100644 +--- a/Makefile ++++ b/Makefile +@@ -20,7 +20,7 @@ GTK = `pkg-config --libs --cflags gtk+-3.0` `pkg-config --libs x11` + GTK += `pkg-config --libs --cflags $(APPINDICATOR)` + LIBAV = `pkg-config --libs --cflags libswscale libavutil` + JPEG = `pkg-config --libs --cflags libturbojpeg` +-USBMUXD = `pkg-config --libs --cflags libusbmuxd` ++USBMUXD = `pkg-config --libs --cflags libusbmuxd-2.0` + LIBS = -lspeex -lasound -lpthread -lm + SRC = src/connection.c src/settings.c src/decoder*.c src/av.c src/usb.c src/queue.c + diff --git a/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild b/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild index dcd1561b0b16..89f11e102235 100644 --- a/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild +++ b/media-video/dvdauthor/dvdauthor-0.7.2-r2.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -28,7 +28,9 @@ S="${WORKDIR}/${PN}" DOCS=( AUTHORS ChangeLog README TODO ) -PATCHES=( "${FILESDIR}/${PN}-freetype_pkgconfig.patch" ) +PATCHES=( + "${FILESDIR}"/${P}-freetype-pkgconfig.patch +) src_prepare() { default diff --git a/media-video/dvdauthor/files/dvdauthor-freetype_pkgconfig.patch b/media-video/dvdauthor/files/dvdauthor-0.7.2-freetype-pkgconfig.patch index bb9858f437d4..1ddf49403e46 100644 --- a/media-video/dvdauthor/files/dvdauthor-freetype_pkgconfig.patch +++ b/media-video/dvdauthor/files/dvdauthor-0.7.2-freetype-pkgconfig.patch @@ -1,3 +1,5 @@ +https://github.com/ldo/dvdauthor/commit/d5bb0bdd542c33214855a7062fcc485f8977934e + From 259f892fe61f16c26733506d2511eec7ff136dc4 Mon Sep 17 00:00:00 2001 From: Lars Wendler <polynomial-c@gentoo.org> Date: Mon, 7 May 2018 09:18:48 +0200 diff --git a/media-video/dvdauthor/metadata.xml b/media-video/dvdauthor/metadata.xml index 01dfeec842c4..1479cf0f2ecd 100644 --- a/media-video/dvdauthor/metadata.xml +++ b/media-video/dvdauthor/metadata.xml @@ -6,5 +6,6 @@ </maintainer> <upstream> <remote-id type="sourceforge">dvdauthor</remote-id> + <remote-id type="github">ldo/dvdauthor</remote-id> </upstream> </pkgmetadata> diff --git a/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild b/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild index d515df7b66d1..9b4aa9ffff47 100644 --- a/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild +++ b/media-video/dvdbackup/dvdbackup-0.4.2-r2.ebuild @@ -9,7 +9,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tar.xz" LICENSE="GPL-3" SLOT="0" -KEYWORDS="amd64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris" +KEYWORDS="amd64 ppc ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" IUSE="nls" RDEPEND=">=media-libs/libdvdread-4.2.0_pre:= diff --git a/media-video/ffdiaporama/Manifest b/media-video/ffdiaporama/Manifest index 95deb3493d2b..93bff6f4e0f3 100644 --- a/media-video/ffdiaporama/Manifest +++ b/media-video/ffdiaporama/Manifest @@ -1,9 +1,2 @@ -DIST ffdiaporama-2.2-ffmpeg-3.0.patch 19635 BLAKE2B 000816945e74033b2620f635f59e762e82988ef60740ac14bfee02850cc6299ec0934a7f48afe03009a94bbb531e9668c9d16fe230db34d03ba54b0c42249348 SHA512 958025fee8df94a600fa4919fe9aa5574556c163a771b36213e90f116c13d0448a86e99a49b2ac4631c1b845ffb8c87789ac00cb8462fed1abbe9233e49a47fc -DIST ffdiaporama-2.2-ffmpeg-4.0.patch 6648 BLAKE2B 1efaecf9dc6180539bc01a6e4f1403864ea2f9318cc1528aac0bb339d840e3eec40ddc60a531d8af52aae5592c38bbcad9d8dd260cedbe01ab655e2135766e6b SHA512 9588352af7b048ade3b681364a4edc29526241b0631e39314b9466f490d66a4e3b795f4c32afd0aadc2a3d63a9ce4e99a6bb77e4c3f79d959e68e82856882d32 -DIST ffdiaporama-2.2-ffmpeg-4.4.patch 1034 BLAKE2B f6105f5fc9d928c43fc33d2eb154d97843516f42754154690ca1651c90f9cce21ce03a80ca2fd0440611f30463077a67cccc9d2103d6ffecde80f7ca5ba48142 SHA512 14c2c8361836a0f95224577710b72d48fe9aa5c9a330777b8cb709a1ad02f95d9b8ba0f22ff9250e0a6898cfd8f6839658a94f59082d2da767299a81a38e9f8a -DIST ffdiaporama-2.2-libav11.patch 18781 BLAKE2B 95da6d11fa31f18106184c0c14a524c42f03a169503ad58d72e871edc60ef52b5ee6ac6d757e8ddcaa66ba58a1b78bc1ca1a9b116d69a3526fd6bc3e5817a9d9 SHA512 f24f3f6b624763dcc3ea5bc0c52480d986fbec9b123ad5645c11a525c0eefb7b8708f90df4fb728dfab1d640c6dfab9a550874f59d333cff979e3ef56639416e -DIST ffdiaporama-2.2_pre20220403.tar.gz 63270245 BLAKE2B 86e5926285b5c38146065cbbc53182eba77c25fa7eddd79e61276b949f5ad4f217f3e2562bed938f06c191493929afa7f24820ef957243f176b3f8e09d4284a9 SHA512 75076eadf1cbef38590ef250746228598ddb00bec2328589a6fb913ee3ae376a6587e6e90494986c5cbeda7aba6c342992cb5e71e5c8ce26e4fda12238ce72e4 DIST ffdiaporama-2.2_pre20221007.tar.gz 63271591 BLAKE2B 0fbd20e571329bc294554c50a04920b837af4b62cf4cc7ef356dd9372a8f1f3f01c7b2736fba71c52d468261ad778107e332929ab90d2cf768698102d269a00c SHA512 a37966bb31853de42e7c03a9a1e913332e417278fe663f088d9d9ee763db163549993fa7271b53ad2d495cef5e05d11e3f13ab3343cace3cb4c202aadb461beb -DIST ffdiaporama_bin_2.2.devel.2014.0701.tar.gz 18377677 BLAKE2B 74337dcb935eedfccb769562c9b763f642058d2fc8bf4a3c4a81b1ce857398ee759ce2cf269c31527cece2c18a48505ad46b197e10da8444cbf2131ffb3e1130 SHA512 6531381137c47d3fd2954d09fe922086de1b69638ed4b092faeb9e2982b463c6614314bda56512f6a315bd02b8600d815efb19dca3dae89947df9a48a2ae7b86 -DIST ffdiaporama_rsc_2.2.devel.2014.0503.tar.gz 18390602 BLAKE2B 58c38d1f62ec04b217add232873556cf57d13cd17ef672f2087b44c0aac9ee7bc890de3bb812cb1c57093565b06de51ed0ddb0465d9b7fce21311fedf51042a3 SHA512 73faafe54d7d9a3d8d91719ac56cec7323e0a497f77e0c9f243d84782aa6040677236d9e41d3b539c45d6aca2448d737912ec59bd2a7e417749ee548cd68652d -DIST ffdiaporama_texturemate_1.0.2014.0125.tar.gz 30352923 BLAKE2B af558994a811508ff6b0f1dc34f33c60fca0a4f40c1cf675e08925b40c8312444a20ea95b0a0c9316225806096e9bbb209faf3e48b74041604c6d81be0175aba SHA512 e9aa9607d670a620b2e3c27d6ec5bf983eb31ab3d3139edf32ebb84d9ffa58b11c822f7db4b3f3c4a430b256719803df4a3a385bd467bdda09f8710d010eb2f5 +DIST ffdiaporama-2.2_pre20230525.tar.gz 63270147 BLAKE2B 26cc3ecd7966a945808481c18b2f9a239132cae5016f33e83ef5588c55b1f2a0d7609cd1bdfaf51ada75e1df5274733b7985f6eb3b3814260102f6c9e406ed68 SHA512 777d110b0948bc3c3bdb14e13b4ce09ec819bfac2759c715a1e247b1d6cf8c8461c1ec28a0315f034e4e5a19b4732ce583d71b2edd9c6375b7dae14868cc8dfe diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild deleted file mode 100644 index f32094e39d46..000000000000 --- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20140701-r2.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PV=${PV%_pre20140701} -BIN_PV=${MY_PV}.devel.2014.0701 -RSC_PV=${MY_PV}.devel.2014.0503 -TMT_PV=1.0.2014.0125 -inherit qmake-utils xdg-utils - -DESCRIPTION="Movie creator from photos and video clips" -HOMEPAGE="https://ffdiaporama.tuxfamily.org" -SRC_URI="https://download.tuxfamily.org/${PN}/Packages/Devel/${PN}_bin_${BIN_PV}.tar.gz - https://download.tuxfamily.org/${PN}/Packages/Devel/${PN}_rsc_${RSC_PV}.tar.gz - https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-libav11.patch - https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-3.0.patch - https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-4.0.patch - https://raw.githubusercontent.com/laurantino/gentoo-dist/master/ffdiaporama-2.2-ffmpeg-4.4.patch - texturemate? ( https://download.tuxfamily.org/${PN}/Packages/Stable/${PN}_texturemate_${TMT_PV}.tar.gz )" - -LICENSE="GPL-2 texturemate? ( CC-BY-3.0 )" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="openclipart texturemate" - -RDEPEND=" - dev-qt/qtconcurrent:5 - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qthelp:5 - dev-qt/qtmultimedia:5 - dev-qt/qtnetwork:5 - dev-qt/qtsql:5[sqlite] - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - media-gfx/exiv2:= - >=media-video/ffmpeg-3:0=[encode] - openclipart? ( media-gfx/openclipart[svg,-gzip] )" -DEPEND="${RDEPEND}" - -DOCS=( authors.txt ) -PATCHES=( "${DISTDIR}"/${PN}-${MY_PV}-{ffmpeg-3.0,libav11,ffmpeg-4.0,ffmpeg-4.4}.patch ) - -S="${WORKDIR}/ffDiaporama" - -src_prepare() { - default - echo "SUBDIRS += ../ffDiaporama_rsc" >> ffDiaporama.pro || die - if use texturemate; then - echo "SUBDIRS += ../ffDiaporama_texturemate" >> ffDiaporama.pro || die - fi -} - -src_configure() { - eqmake5 QMAKE_CFLAGS_ISYSTEM= -} - -src_install() { - emake INSTALL_ROOT="${D}" install - if use openclipart; then - dosym ../../clipart/openclipart /usr/share/ffDiaporama/clipart/openclipart - fi -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update - xdg_icon_cache_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update - xdg_icon_cache_update -} diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild index acb80e067b23..1d33f68b959e 100644 --- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild +++ b/media-video/ffdiaporama/ffdiaporama-2.2_pre20221007.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -13,7 +13,7 @@ SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.ta LICENSE="GPL-3 CC-BY-3.0" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="openclipart" RDEPEND=" diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20220403.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild index f13a63fc974d..624ed4d35a2f 100644 --- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20220403.ebuild +++ b/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -COMMIT="0557dc2d2489b88c813c695b0d75107be82292f8" +COMMIT="6b2587064d705de42a3e88468d4922bc27b97e2a" inherit qmake-utils xdg-utils @@ -13,7 +13,7 @@ SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.ta LICENSE="GPL-3 CC-BY-3.0" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="openclipart" RDEPEND=" diff --git a/media-video/ffdiaporama/metadata.xml b/media-video/ffdiaporama/metadata.xml index dc6829f4891b..77033bf869e4 100644 --- a/media-video/ffdiaporama/metadata.xml +++ b/media-video/ffdiaporama/metadata.xml @@ -13,6 +13,7 @@ <changelog>http://ffdiaporama.tuxfamily.org/?page_id=7266&lang=en</changelog> <doc lang="en">http://ffdiaporama.tuxfamily.org/?page_id=6268</doc> <bugs-to>http://ffdiaporama.tuxfamily.org/Forum/viewforum.php?id=4</bugs-to> + <remote-id type="github">laurantino/ffdiaporama</remote-id> </upstream> <longdescription lang="en"> ffDiaporama is an application for creating video sequences consisting of @@ -38,6 +39,5 @@ </longdescription> <use> <flag name="openclipart">Support openclipart database</flag> - <flag name="texturemate">Install extra backgrounds</flag> </use> </pkgmetadata> diff --git a/media-video/ffmpeg-chromium/Manifest b/media-video/ffmpeg-chromium/Manifest index 58a303503608..2a8f8055040d 100644 --- a/media-video/ffmpeg-chromium/Manifest +++ b/media-video/ffmpeg-chromium/Manifest @@ -1,2 +1,3 @@ DIST ffmpeg-chromium-102.tar.gz 15165192 BLAKE2B ecf9b9ff538730d8a265e25e3d30900b119bfa5baa8e097e58151d744c95b3e768b96f477f6394015cd77a8ae35991c7cdaee5fb2f700d129b6c6d7ee87b34d9 SHA512 f5aa4c47e801d2547321c7995240e004706f9b5835610f9726ac45a63ac58a62de64d463ddeb8c1a001d31d89a4dbaee3a1be568c33316f29dc2b675b2f3161a DIST ffmpeg-chromium-106.tar.xz 9707176 BLAKE2B 8ab9b006328e15faa38b8014f2870e7a9fd9eaacc723cd6079bfaadc05db4d1f8c542dff5a331e1f93c9c877eea6d2ed0dc2bf567c77680227b22b2a9baf8834 SHA512 9f04feee42bf548cbda542be16f186bfe0d8179289a1512cf77ec492a8608b2c9d5c758f93fb6d229be67c20762075dd266fa4b203556f8b7ec4bf66579f2b6b +DIST ffmpeg-chromium-114.tar.xz 9934024 BLAKE2B cc11bd00bcf6bef5f946a16f1544881c71503207ba3c6ec57cdc37124ea562366dced2e029f31e57a6f78ec7073412ac0b8ec470d14975a3cc40fad2e96ec5df SHA512 1b1743664d58f5b92971d113ea441604e0b46f28b22df1b02ab0431b8e884789fb6d81b4f50ff1526f716381abcc63e1b336d23edd9ea28abe8b3526fba08ce9 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild index 6f9eaaeb8883..6e4409a5274b 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-102.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -116,6 +116,7 @@ S="${WORKDIR}" PATCHES=( "${FILESDIR}"/${PN}-100.patch "${FILESDIR}"/${PN}-vk-headers.patch + "${FILESDIR}"/${PN}-binutils-2.41.patch "${FILESDIR}"/chromium.patch ) @@ -166,7 +167,7 @@ src_configure() { # LTO support, bug #566282, bug #754654 is-flagq "-flto*" && myconf+=( "--enable-lto" ) - filter-flags "-flto*" + filter-lto # Mandatory configuration myconf=( @@ -183,9 +184,6 @@ src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild index 61f550be5940..a25fa2fc9cdb 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-106.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -114,6 +114,7 @@ RESTRICT=" PATCHES=( "${FILESDIR}"/${PN}-100.patch "${FILESDIR}"/${PN}-vk-headers.patch + "${FILESDIR}"/${PN}-binutils-2.41.patch "${FILESDIR}"/chromium.patch ) @@ -181,9 +182,6 @@ src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild new file mode 100644 index 000000000000..da89ecc4a215 --- /dev/null +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-114.ebuild @@ -0,0 +1,234 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +COMMIT="842ef367665edee29efa2b09f7298fa5ecabe8b5" +DESCRIPTION="FFmpeg built specifically for codec support in Chromium-based browsers" +HOMEPAGE="https://ffmpeg.org/" +SRC_URI="https://dev.gentoo.org/~chewi/distfiles/${P}.tar.xz" + +SLOT="${PV}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) +" + +KEYWORDS="amd64 ~arm ~arm64" + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + cpudetection:runtime-cpudetect debug + +gpl + vaapi vdpau vulkan + # decoders + mmal +opus:libopus + nvenc:ffnvcodec + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +IUSE=" + ${FFMPEG_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) +" +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +RDEPEND=" + mmal? ( media-libs/raspberrypi-userland ) + opus? ( >=media-libs/opus-1.0.2-r2 ) + vaapi? ( >=media-libs/libva-1.2.1-r1:0= ) + nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 ) + vdpau? ( >=x11-libs/libvdpau-0.7 ) + vulkan? ( >=media-libs/vulkan-loader-1.2.189:= ) +" + +DEPEND="${RDEPEND} +" +BDEPEND=" + >=sys-devel/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) +" + +REQUIRED_USE=" + ${CPU_REQUIRED_USE}" +RESTRICT=" + test +" + +PATCHES=( + "${FILESDIR}"/${PN}-100.patch + "${FILESDIR}"/${PN}-binutils-2.41.patch + "${FILESDIR}"/chromium.patch +) + +src_prepare() { + export revision=git-N-g${COMMIT:0:10} + default + + # -fdiagnostics-color=auto gets appended after user flags which + # will ignore user's preference. + sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die + + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +src_configure() { + local myconf=( ) + + # bug 842201 + use ia64 && tc-is-gcc && append-flags \ + -fno-tree-ccp \ + -fno-tree-dominator-opts \ + -fno-tree-fre \ + -fno-code-hoisting \ + -fno-tree-pre \ + -fno-tree-vrp + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282, bug #754654, bug #772854 + is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-lto + + # Mandatory configuration + myconf=( + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # Use --extra-libs if needed for LIBS + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --strip="$(tc-getSTRIP)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ + --optflags="${CFLAGS}" \ + --disable-all \ + --disable-autodetect \ + --disable-error-resilience \ + --disable-everything \ + --disable-faan \ + --disable-iconv \ + --disable-network \ + --enable-avcodec \ + --enable-avformat \ + --enable-avutil \ + --enable-decoder=aac,flac,h264,libopus,mp3,pcm_alaw,pcm_f32le,pcm_mulaw,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_s32le,pcm_u8,theora,vorbis,vp8 \ + --enable-demuxer=aac,flac,matroska,mov,mp3,ogg,wav \ + --enable-parser=aac,flac,h264,mpegaudio,opus,vorbis,vp3,vp8,vp9 \ + --enable-pic \ + --enable-static \ + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} + + echo "${@}" + "${@}" || die +} + +src_compile() { + emake V=1 libffmpeg +} + +src_install() { + emake V=1 DESTDIR="${D}" install-libffmpeg +} diff --git a/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch new file mode 100644 index 000000000000..81d544625919 --- /dev/null +++ b/media-video/ffmpeg-chromium/files/ffmpeg-chromium-binutils-2.41.patch @@ -0,0 +1,77 @@ +https://bugs.gentoo.org/911582 +https://bugs.gentoo.org/911839 +https://trac.ffmpeg.org/ticket/10405 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e +https://sourceware.org/PR30578 +https://gcc.gnu.org/PR108941 + +From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer <jamrial@gmail.com> +(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb) +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2 diff --git a/media-video/ffmpeg-chromium/metadata.xml b/media-video/ffmpeg-chromium/metadata.xml index 5e0aeba3b15e..1d15ec93bf0f 100644 --- a/media-video/ffmpeg-chromium/metadata.xml +++ b/media-video/ffmpeg-chromium/metadata.xml @@ -9,6 +9,5 @@ <flag name="cpudetection">Enables runtime CPU detection (useful for bindist, compatibility on other CPUs)</flag> <flag name="gpl">Build GPL code. Should be enabled unless you require LGPL binaries.</flag> <flag name="mmal">Enables Multi-Media Abstraction Layer (MMAL) decoding support: Available e.g. on the Raspberry Pi.</flag> - <flag name="vulkan">Enables support for the vulkan API for GPU offload.</flag> </use> </pkgmetadata> diff --git a/media-video/ffmpeg/Manifest b/media-video/ffmpeg/Manifest index 5343790a686c..59d50e6b6b7f 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -1,10 +1,6 @@ -DIST ffmpeg-4.2.2-ppc64-altivec.patch.gz 7171 BLAKE2B 6676dadb22d2ab4b0f5c19b418448c5b9b54fd8c803c3f0ab517c6fa7990be08098dd6f6a2b1b3e77a1bed31a069c702366aba79ef9141ff9e23cd8c1b6e2885 SHA512 6653975017de3f7bde420860419fbdddb50ae41dbb811b819f4b5b13807bf885a4c01736f05a684515f97b0d63bd8896d5951a3276af90cc74abfe32dc2e2407 -DIST ffmpeg-4.2.2-ppc64-gcc.patch.gz 750 BLAKE2B 3a9cc7f0135e077c77179a7ca3da917bca3995d99d53b58221b23181a075f330132f83ea90a6110e89f90c7c3b5b2a7837559c5df414d9bd52dbb3ec166b1545 SHA512 701b0635e0819484a31de2062ba52d95ee03883ab56547cd75c3646a9b32bf3ecc7f719690b93f29202cfed0fdeecd26b51b9f3c66e72a999a3e8d9e97389275 -DIST ffmpeg-4.2.7.tar.bz2 10966448 BLAKE2B 91151a3ece19700fbc04f304ebad9f34ffce2de19416992ceccf3a347ab58195f746a0ace0a331cc1f34dafd87e4e8c6467268546b417d3f58a1cbbe41662807 SHA512 ab57fc370005d8f33eed2e0f18ac4f418372f47f03d43566c52f9ffc70de27e6ec1ba49faf6e3356fd8a495cff40a8073f8d85a625f6ee21bd7018e19b31734f -DIST ffmpeg-4.2.8.tar.xz 9118672 BLAKE2B 7631bac87db7ce046a93c45422f0ffdc2929d9bb71798125dc403872b27f758015a5b0856e2b73edd47cbea2f3b3f6d94787f7d99846c9783826bd42b58b227a SHA512 40c3c0a2b9853220ad48ea7d9b6e6238238d8f914b1a845aa2be0961d88f5602daab79ca38dd21215077649bbd6967c9e9d9a993831a6735f3a00ae6b798c65f -DIST ffmpeg-4.4.3.tar.xz 9566020 BLAKE2B a8b62a37151173f90821b876cf51e6819eb5519d7fb1f47b55b5f3003cb0e3d18d43c9482d70e32ef2bb6f5c6310260ec2c04ee997aad5ef687d598d838e9bc9 SHA512 0b232b66555237ed1a061807f88dbc5e6cd156e604c5d611bb6ac0c32b9006414cc4f30d632b482d9cb95f526df98b36efa3af9c863c52e7b7aa1a183545d915 -DIST ffmpeg-4.4.3.tar.xz.asc 520 BLAKE2B 999785516beb913d246d5f9de6e189ee644d0dba07f64ac90cbec91961ca181e5d6b95d9e097c362a76b543e3498672b1458edd68c23a86c3123ffc8e6c5ff2b SHA512 347abc8d75f4447296d8f6105b188a187daac158fbd972dc157b8a3597919519c20b8f649b7460df4e9aea249d74c6287e35bc389cc99ae5629490a36b345557 -DIST ffmpeg-5.1.2.tar.xz 10004956 BLAKE2B 4e2682f040205e6344ff1f2cf8ac69c35cac90a14634a2cd4b41fffc0e09264586b014327f7e9cb6417d12210894cdbc180541c07ad02e782bdf79af9f22991f SHA512 04d9ae2a0e9238c469941d2bb9929d59b58f4be3830846cf91b02a440da17803a04b147a4e0168c9ffd6f62ca82187508bc7b53255de9787a97168278e903b9b -DIST ffmpeg-5.1.2.tar.xz.asc 520 BLAKE2B 57573afa9157e842efc6a22185aab133e5b5bd461c55d63bbb8b218e99f05fb17f4a679ee9e22c14060205894d7e71f011df7b0ceae15be4c7f5980cff739b32 SHA512 6afc898e3898a7d34e21f0f0bd0553765a46257332c6ece6226e3e043b842275a8d885b9ccca34bc90a2f008ae5fa14515276d23f921a518a63a47f6504af115 +DIST ffmpeg-4.4.4.tar.xz 9565584 BLAKE2B 8cd76a91ae6e485e56c6e5ae7b31d678e2fc2d634b1c56240619a4b6924dae4ec7adb445932bf4455f409dbc03fdc6d52b4fc270da55393e329ccd3d129f5770 SHA512 253799eccd129dad331db85def5352178ae22303e42af47fc013a6adfd4b60d1e59ff5f9ac6118fe3b403affa56ea1f3ba658042f526a914fba27050c3065daf +DIST ffmpeg-4.4.4.tar.xz.asc 520 BLAKE2B c8bf944883e375555b6dd69029fe863c23f68a3584d84aa3e9c4278ae45aee0bfa3697cc1d8a768b95a1ebd7a9cb91553671072f88f46f6a9c947faa74344a44 SHA512 47afa042d8b529d0bfce391455a25cda261f39f8510601d7de2aba6398483ecb623992626e8489aa2a636e3cb93008f26b32080e526143254226d4e2651accea +DIST ffmpeg-5.1.3.tar.xz 10007756 BLAKE2B 033dddac096d5dbbfadcf1af51fd1e93d222af1ec6ce7c36000c6a02cf9413288c7fcc7316d450926c60ea9e41935555cc66ee004130836816ada5d5833375c7 SHA512 4310f27fe0c7b4363207e1535115e0ad266a45772bdb5445f5c8658f35b0f3216d8f2cf70d1d2baa71b12069fbdccf418a774b353ddf092d4f66829ef391508a +DIST ffmpeg-5.1.3.tar.xz.asc 520 BLAKE2B 09d7ff694a2fc61a00443b90f905bb771c3fb7244a154bbe289fe98a4520202a8066bff593ef0142d8d7387a75d4e4dc68e553fbeba98d0fdd51881f28a54623 SHA512 a7348205ef6648e5c73c32fbe99b8130256d1157d1a7c128701b240e4096ac16778cfcc74a922fe8147e0a137119b8a5fd60f006328454b712eefe154f546318 DIST ffmpeg-6.0.tar.xz 10234012 BLAKE2B c70884911f3a3e40fe87473f241a2a56b303f5abe7f1d7fa797d05e29e00971f98cbf37832c1c3dc5fa949a5beddef05a6ec55ae6668091976ea870ad93c0e8d SHA512 4d0e8f635d5a1633710f30cb3e0a854b6ca3bf85e33a289d1ec7aca2ad55dc4910010bc9cf3f13eee9f6decb9d50a0df6d7aa5a342f308c3868d2730f3a6b980 DIST ffmpeg-6.0.tar.xz.asc 520 BLAKE2B be294d375108b57bca3c687620ce2517c54c99012d82dc7aa1a83d5fe6d5453bd3c8620fdfb743df780cf588983a06a66a458c4e3e454dbe535cbba9da30c48c SHA512 a64cd0f8578fcea4537f5a38634c930d66c8ba4abd3e8e9dcffaeb95c3ad2e754d7bc4fbb5272409d4d32abf8180ef83f7204c6a570b52a37e635efd96cb94ed diff --git a/media-video/ffmpeg/ffmpeg-4.2.7.ebuild b/media-video/ffmpeg/ffmpeg-4.2.7.ebuild deleted file mode 100644 index 2b7fed0039c7..000000000000 --- a/media-video/ffmpeg/ffmpeg-4.2.7.ebuild +++ /dev/null @@ -1,556 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# Subslot: libavutil major.libavcodec major.libavformat major -# Since FFmpeg ships several libraries, subslot is kind of limited here. -# Most consumers will use those three libraries, if a "less used" library -# changes its soname, consumers will have to be rebuilt the old way -# (preserve-libs). -# If, for example, a package does not link to libavformat and only libavformat -# changes its ABI then this package will be rebuilt needlessly. Hence, such a -# package is free _not_ to := depend on FFmpeg but I would strongly encourage -# doing so since such a case is unlikely. -FFMPEG_SUBSLOT=56.58.58 - -SCM="" -if [ "${PV#9999}" != "${PV}" ] ; then - SCM="git-r3" - EGIT_MIN_CLONE_TYPE="single" - EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" -fi - -inherit flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} - -DESCRIPTION="Complete solution to record/convert/stream audio and video. Includes libavcodec" -HOMEPAGE="https://ffmpeg.org/" -if [ "${PV#9999}" != "${PV}" ] ; then - SRC_URI="" -elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot - SRC_URI="mirror://gentoo/${P}.tar.bz2" -else # Release - SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.bz2 - https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-altivec.patch.gz - https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-gcc.patch.gz - " -fi -FFMPEG_REVISION="${PV#*_p}" - -SLOT="0/${FFMPEG_SUBSLOT}" -LICENSE=" - !gpl? ( LGPL-2.1 ) - gpl? ( GPL-2 ) - amr? ( - gpl? ( GPL-3 ) - !gpl? ( LGPL-3 ) - ) - gmp? ( - gpl? ( GPL-3 ) - !gpl? ( LGPL-3 ) - ) - libaribb24? ( - gpl? ( GPL-3 ) - !gpl? ( LGPL-3 ) - ) - encode? ( - amrenc? ( - gpl? ( GPL-3 ) - !gpl? ( LGPL-3 ) - ) - ) - samba? ( GPL-3 ) -" -if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" -fi - -# Options to use as use_enable in the foo[:bar] form. -# This will feed configure with $(use_enable foo bar) -# or $(use_enable foo foo) if no :bar is set. -# foo is added to IUSE. -FFMPEG_FLAG_MAP=( - +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt gnutls gmp - +gpl hardcoded-tables +iconv libxml2 lzma +network opencl - openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau - X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib - # libavdevice options - cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal - opengl - # indevs - libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack - # decoders - amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 dav1d:libdav1d fdk:libfdk-aac - jpeg2k:libopenjpeg bluray:libbluray gme:libgme gsm:libgsm - libaribb24 mmal modplug:libmodplug opus:libopus libilbc librtmp ssh:libssh - speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec - vorbis:libvorbis vpx:libvpx zvbi:libzvbi - # libavfilter options - appkit - bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r - fribidi:libfribidi fontconfig ladspa libass libtesseract lv2 truetype:libfreetype vidstab:libvidstab - rubberband:librubberband zeromq:libzmq zimg:libzimg - # libswresample options - libsoxr - # Threads; we only support pthread for now but ffmpeg supports more - +threads:pthreads -) - -# Same as above but for encoders, i.e. they do something only with USE=encode. -FFMPEG_ENCODER_FLAG_MAP=( - amrenc:libvo-amrwbenc mp3:libmp3lame - kvazaar:libkvazaar libaom - openh264:libopenh264 snappy:libsnappy theora:libtheora twolame:libtwolame - wavpack:libwavpack webp:libwebp x264:libx264 x265:libx265 xvid:libxvid -) - -IUSE=" - alsa chromium doc +encode oss pic static-libs test v4l - ${FFMPEG_FLAG_MAP[@]%:*} - ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} -" - -# Strings for CPU features in the useflag[:configure_option] form -# if :configure_option isn't set, it will use 'useflag' as configure option -ARM_CPU_FEATURES=( - cpu_flags_arm_thumb:armv5te - cpu_flags_arm_v6:armv6 - cpu_flags_arm_thumb2:armv6t2 - cpu_flags_arm_neon:neon - cpu_flags_arm_vfp:vfp - cpu_flags_arm_vfpv3:vfpv3 - cpu_flags_arm_v8:armv8 -) -ARM_CPU_REQUIRED_USE=" - arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) - cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) - cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) -" -MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) -PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) -PPC_CPU_REQUIRED_USE=" - cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) - cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) -" -X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) -X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) -X86_CPU_REQUIRED_USE=" - cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) - cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) - cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) - cpu_flags_x86_xop? ( cpu_flags_x86_avx ) - cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) - cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) - cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) - cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) - cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) - cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) - cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) - cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) - cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) - cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) - cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) -" - -CPU_FEATURES_MAP=( - ${ARM_CPU_FEATURES[@]} - ${MIPS_CPU_FEATURES[@]} - ${PPC_CPU_FEATURES[@]} - ${X86_CPU_FEATURES[@]} -) -IUSE="${IUSE} - ${CPU_FEATURES_MAP[@]%:*}" - -CPU_REQUIRED_USE=" - ${ARM_CPU_REQUIRED_USE} - ${PPC_CPU_REQUIRED_USE} - ${X86_CPU_REQUIRED_USE} -" - -FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) -IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" - -RDEPEND=" - alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) - bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) - bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) - bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) - cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) - chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) - codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) - dav1d? ( >=media-libs/dav1d-0.4.0:0=[${MULTILIB_USEDEP}] ) - encode? ( - amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) - kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) - openh264? ( >=media-libs/openh264-1.4.0-r1[${MULTILIB_USEDEP}] ) - snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) - theora? ( - >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] - >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] - ) - twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) - wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] ) - webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) - x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) - x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) - xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) - ) - fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) - flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) - fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) - frei0r? ( media-plugins/frei0r-plugins ) - fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) - gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) - gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) - gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) - gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) - iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) - iec61883? ( - >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] - >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] - >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] - ) - ieee1394? ( - >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}] - >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] - ) - jack? ( virtual/jack[${MULTILIB_USEDEP}] ) - jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) - libaom? ( >=media-libs/libaom-1.0.0-r1:=[${MULTILIB_USEDEP}] ) - libaribb24? ( >=media-libs/aribb24-1.0.3-r2[${MULTILIB_USEDEP}] ) - libass? ( >=media-libs/libass-0.10.2:=[${MULTILIB_USEDEP}] ) - libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) - libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) - libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) - librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) - libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) - libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) - libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) - libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) - lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) - lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) - mmal? ( media-libs/raspberrypi-userland ) - modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) - openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) - opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) - pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) - rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) - samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) - speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) - srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) - ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] ) - svg? ( gnome-base/librsvg:2=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) - vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) - nvenc? ( >=media-libs/nv-codec-headers-9.0.18.0 ) - vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) - vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) - vorbis? ( - >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] - >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] - ) - vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) - X? ( - >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] - >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] - >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] - >=x11-libs/libxcb-1.4[${MULTILIB_USEDEP}] - ) - zeromq? ( >=net-libs/zeromq-4.1.6 ) - zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) - zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) - zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) - postproc? ( !media-libs/libpostproc ) -" - -RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) -" - -DEPEND="${RDEPEND} - ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) - v4l? ( sys-kernel/linux-headers ) -" -BDEPEND=" - >=sys-devel/make-3.81 - virtual/pkgconfig - cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) - cuda? ( >=sys-devel/clang-7[llvm_targets_NVPTX] ) - doc? ( sys-apps/texinfo ) - test? ( net-misc/wget sys-devel/bc ) -" - -# Code requiring FFmpeg to be built under gpl license -GPL_REQUIRED_USE=" - postproc? ( gpl ) - frei0r? ( gpl ) - cdio? ( gpl ) - rubberband? ( gpl ) - samba? ( gpl ) - encode? ( - x264? ( gpl ) - x265? ( gpl ) - xvid? ( gpl ) - ) -" -REQUIRED_USE=" - cuda? ( nvenc ) - libv4l? ( v4l ) - fftools_cws2fws? ( zlib ) - test? ( encode ) - ${GPL_REQUIRED_USE} - ${CPU_REQUIRED_USE}" -RESTRICT=" - !test? ( test ) - gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) -" - -S=${WORKDIR}/${P/_/-} - -PATCHES=( - "${FILESDIR}"/chromium-r1.patch - "${WORKDIR}"/${PN}-4.2.2-ppc64-gcc.patch # both ppc patches from - "${WORKDIR}"/${PN}-4.2.2-ppc64-altivec.patch # https://trac.ffmpeg.org/ticket/7861 - "${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch - "${FILESDIR}"/${PN}-4.2.7-libsdl2-new-version-scheme.patch -) - -MULTILIB_WRAPPED_HEADERS=( - /usr/include/libavutil/avconfig.h -) - -build_separate_libffmpeg() { - use opencl -} - -src_prepare() { - if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot - export revision=git-N-${FFMPEG_REVISION} - fi - default - echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die -} - -multilib_src_configure() { - local myconf=( ${EXTRA_FFMPEG_CONF} ) - - # bug 842201 - use ia64 && tc-is-gcc && append-flags \ - -fno-tree-ccp \ - -fno-tree-dominator-opts \ - -fno-tree-fre \ - -fno-code-hoisting \ - -fno-tree-pre \ - -fno-tree-vrp - - local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) - use openssl && myconf+=( --enable-nonfree ) - use samba && myconf+=( --enable-version3 ) - - # Encoders - if use encode ; then - ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) - - # Licensing. - if use amrenc ; then - myconf+=( --enable-version3 ) - fi - else - myconf+=( --disable-encoders ) - fi - - # Indevs - use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) - for i in alsa oss jack ; do - use ${i} || myconf+=( --disable-indev=${i} ) - done - - # Outdevs - for i in alsa oss ; do - use ${i} || myconf+=( --disable-outdev=${i} ) - done - - # Decoders - use amr && myconf+=( --enable-version3 ) - use gmp && myconf+=( --enable-version3 ) - use libaribb24 && myconf+=( --enable-version3 ) - use fdk && use gpl && myconf+=( --enable-nonfree ) - - for i in "${ffuse[@]#+}" ; do - myconf+=( $(use_enable ${i%:*} ${i#*:}) ) - done - - if use openssl ; then - myconf+=( --disable-gnutls ) - fi - - # (temporarily) disable non-multilib deps - if ! multilib_is_native_abi; then - for i in frei0r libzmq ; do - myconf+=( --disable-${i} ) - done - fi - - # CPU features - for i in "${CPU_FEATURES_MAP[@]}" ; do - use ${i%:*} || myconf+=( --disable-${i#*:} ) - done - - if use pic ; then - myconf+=( --enable-pic ) - # disable asm code if PIC is required - # as the provided asm decidedly is not PIC for x86. - [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) - fi - [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 - - # Try to get cpu type based on CFLAGS. - # Bug #172723 - # We need to do this so that features of that CPU will be better used - # If they contain an unknown CPU it will not hurt since ffmpeg's configure - # will just ignore it. - for i in $(get-flag mcpu) $(get-flag march) ; do - [[ ${i} = native ]] && i="host" # bug #273421 - myconf+=( --cpu=${i} ) - break - done - - # LTO support, bug #566282 - is-flagq "-flto*" && myconf+=( "--enable-lto" ) - - # Mandatory configuration - myconf=( - --enable-avfilter - --enable-avresample - --disable-stripping - # This is only for hardcoded cflags; those are used in configure checks that may - # interfere with proper detections, bug #671746 and bug #645778 - # We use optflags, so that overrides them anyway. - --disable-optimizations - --disable-libcelt # bug #664158 - "${myconf[@]}" - ) - - # cross compile support - if tc-is-cross-compiler ; then - myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) - case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; - *mingw32*) - myconf+=( --target-os=mingw32 ) - ;; - *linux*) - myconf+=( --target-os=linux ) - ;; - esac - fi - - # doc - myconf+=( - $(multilib_native_use_enable doc) - $(multilib_native_use_enable doc htmlpages) - $(multilib_native_enable manpages) - ) - - set -- "${S}/configure" \ - --prefix="${EPREFIX}/usr" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ - --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ - --mandir="${EPREFIX}/usr/share/man" \ - --enable-shared \ - --cc="$(tc-getCC)" \ - --cxx="$(tc-getCXX)" \ - --ar="$(tc-getAR)" \ - --strip="$(tc-getSTRIP)" \ - --optflags="${CFLAGS}" \ - $(use_enable static-libs static) \ - "${myconf[@]}" - echo "${@}" - "${@}" || die - - if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then - einfo "Configuring for Chromium" - mkdir -p ../chromium || die - pushd ../chromium >/dev/null || die - set -- "${@}" \ - --disable-shared \ - --enable-static \ - --enable-pic \ - --disable-opencl - echo "${@}" - "${@}" || die - popd >/dev/null || die - fi -} - -multilib_src_compile() { - emake V=1 - - if multilib_is_native_abi; then - for i in "${FFTOOLS[@]}" ; do - if use fftools_${i} ; then - emake V=1 tools/${i}$(get_exeext) - fi - done - - if use chromium; then - if build_separate_libffmpeg; then - einfo "Compiling for Chromium" - pushd ../chromium >/dev/null || die - emake V=1 libffmpeg - popd >/dev/null || die - else - emake V=1 libffmpeg - fi - fi - fi -} - -multilib_src_install() { - emake V=1 DESTDIR="${D}" install install-doc - - if multilib_is_native_abi; then - for i in "${FFTOOLS[@]}" ; do - if use fftools_${i} ; then - dobin tools/${i}$(get_exeext) - fi - done - - if use chromium; then - if build_separate_libffmpeg; then - einfo "Installing for Chromium" - pushd ../chromium >/dev/null || die - emake V=1 DESTDIR="${D}" install-libffmpeg - popd >/dev/null || die - else - emake V=1 DESTDIR="${D}" install-libffmpeg - - # When not built separately, libffmpeg has no code of - # its own so this QA check raises a false positive. - QA_FLAGS_IGNORED+=" usr/$(get_libdir)/chromium/.*" - fi - fi - fi -} - -multilib_src_install_all() { - dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges - [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" -} - -multilib_src_test() { - LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \ - emake V=1 fate -} diff --git a/media-video/ffmpeg/ffmpeg-4.4.3.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r3.ebuild index 1eaa8af96b91..717a0742f97b 100644 --- a/media-video/ffmpeg/ffmpeg-4.4.3.ebuild +++ b/media-video/ffmpeg/ffmpeg-4.4.4-r3.ebuild @@ -84,7 +84,7 @@ FFMPEG_FLAG_MAP=( # decoders amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac jpeg2k:libopenjpeg bluray:libbluray gme:libgme gsm:libgsm - libaribb24 mmal modplug:libmodplug opus:libopus libilbc librtmp ssh:libssh + libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec vorbis:libvorbis vpx:libvpx zvbi:libzvbi # libavfilter options @@ -125,11 +125,16 @@ ARM_CPU_FEATURES=( ) ARM_CPU_REQUIRED_USE=" arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) " MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) @@ -244,6 +249,7 @@ RDEPEND=" opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/intel-mediasdk[${MULTILIB_USEDEP}] ) rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) @@ -281,8 +287,8 @@ RDEPEND=" " RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) " DEPEND="${RDEPEND} @@ -332,8 +338,10 @@ S=${WORKDIR}/${P/_/-} PATCHES=( "${FILESDIR}"/chromium-r1.patch "${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch - "${FILESDIR}"/${P}-clang-14-ff_seek_frame_binary-crash.patch + "${FILESDIR}"/${PN}-4.4.3-clang-14-ff_seek_frame_binary-crash.patch "${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch + "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch ) MULTILIB_WRAPPED_HEADERS=( @@ -479,9 +487,6 @@ multilib_src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; @@ -594,5 +599,5 @@ multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" - use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override } diff --git a/media-video/ffmpeg/ffmpeg-4.2.8.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r4.ebuild index 3220df12b949..bcd93c69c858 100644 --- a/media-video/ffmpeg/ffmpeg-4.2.8.ebuild +++ b/media-video/ffmpeg/ffmpeg-4.4.4-r4.ebuild @@ -1,7 +1,7 @@ # Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 # Subslot: libavutil major.libavcodec major.libavformat major # Since FFmpeg ships several libraries, subslot is kind of limited here. @@ -30,10 +30,12 @@ if [ "${PV#9999}" != "${PV}" ] ; then elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot SRC_URI="mirror://gentoo/${P}.tar.xz" else # Release - SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz - https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-altivec.patch.gz - https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-4.2.2-ppc64-gcc.patch.gz - " + VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc + inherit verify-sig + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz" + SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )" + + BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )" fi FFMPEG_REVISION="${PV#*_p}" @@ -62,7 +64,7 @@ LICENSE=" samba? ( GPL-3 ) " if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" fi # Options to use as use_enable in the foo[:bar] form. @@ -70,9 +72,9 @@ fi # or $(use_enable foo foo) if no :bar is set. # foo is added to IUSE. FFMPEG_FLAG_MAP=( - +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt gnutls gmp + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt +gnutls gmp +gpl hardcoded-tables +iconv libxml2 lzma +network opencl - openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau vulkan X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib # libavdevice options cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal @@ -80,14 +82,14 @@ FFMPEG_FLAG_MAP=( # indevs libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack # decoders - amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 dav1d:libdav1d fdk:libfdk-aac + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac jpeg2k:libopenjpeg bluray:libbluray gme:libgme gsm:libgsm - libaribb24 mmal modplug:libmodplug opus:libopus libilbc librtmp ssh:libssh + libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec vorbis:libvorbis vpx:libvpx zvbi:libzvbi # libavfilter options appkit - bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r + bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf fribidi:libfribidi fontconfig ladspa libass libtesseract lv2 truetype:libfreetype vidstab:libvidstab rubberband:librubberband zeromq:libzmq zimg:libzimg # libswresample options @@ -98,14 +100,14 @@ FFMPEG_FLAG_MAP=( # Same as above but for encoders, i.e. they do something only with USE=encode. FFMPEG_ENCODER_FLAG_MAP=( - amrenc:libvo-amrwbenc mp3:libmp3lame - kvazaar:libkvazaar libaom - openh264:libopenh264 snappy:libsnappy theora:libtheora twolame:libtwolame - wavpack:libwavpack webp:libwebp x264:libx264 x265:libx265 xvid:libxvid + amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame + openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1 + theora:libtheora twolame:libtwolame webp:libwebp x264:libx264 + x265:libx265 xvid:libxvid ) IUSE=" - alsa chromium doc +encode oss pic static-libs test v4l + alsa chromium doc +encode oss pic sndio static-libs test v4l ${FFMPEG_FLAG_MAP[@]%:*} ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} " @@ -123,11 +125,16 @@ ARM_CPU_FEATURES=( ) ARM_CPU_REQUIRED_USE=" arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) " MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) @@ -175,6 +182,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amf? ( media-video/amdgpu-pro-amf ) amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) @@ -187,14 +195,14 @@ RDEPEND=" amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) - openh264? ( >=media-libs/openh264-1.4.0-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1:=[${MULTILIB_USEDEP}] ) + rav1e? ( >=media-video/rav1e-0.4:=[capi] ) snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) theora? ( - >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] ) twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) - wavpack? ( >=media-sound/wavpack-4.60.1-r1[${MULTILIB_USEDEP}] ) webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) @@ -203,7 +211,7 @@ RDEPEND=" fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) - frei0r? ( media-plugins/frei0r-plugins ) + frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] ) fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) @@ -216,7 +224,7 @@ RDEPEND=" >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] ) ieee1394? ( - >=media-libs/libdc1394-2.2.1[${MULTILIB_USEDEP}] + >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}] >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] ) jack? ( virtual/jack[${MULTILIB_USEDEP}] ) @@ -241,46 +249,56 @@ RDEPEND=" opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/intel-mediasdk[${MULTILIB_USEDEP}] ) rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) - ssh? ( >=net-libs/libssh-0.5.5[${MULTILIB_USEDEP}] ) - svg? ( gnome-base/librsvg:2=[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 ) + svt-av1? ( >=media-libs/svt-av1-0.8.4[${MULTILIB_USEDEP}] ) truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) - nvenc? ( >=media-libs/nv-codec-headers-9.0.18.0 ) vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) + vmaf? ( media-libs/libvmaf[${MULTILIB_USEDEP}] ) vorbis? ( >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] ) vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.1.97:=[${MULTILIB_USEDEP}] ) X? ( >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] - >=x11-libs/libxcb-1.4[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] ) zeromq? ( >=net-libs/zeromq-4.1.6 ) zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) - postproc? ( !media-libs/libpostproc ) " RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) " DEPEND="${RDEPEND} + amf? ( media-libs/amf-headers ) ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) v4l? ( sys-kernel/linux-headers ) " -BDEPEND=" + +# += for verify-sig above +BDEPEND+=" >=sys-devel/make-3.81 virtual/pkgconfig cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) @@ -295,6 +313,7 @@ GPL_REQUIRED_USE=" frei0r? ( gpl ) cdio? ( gpl ) rubberband? ( gpl ) + vidstab? ( gpl ) samba? ( gpl ) encode? ( x264? ( gpl ) @@ -318,9 +337,12 @@ S=${WORKDIR}/${P/_/-} PATCHES=( "${FILESDIR}"/chromium-r1.patch - "${WORKDIR}"/${PN}-4.2.2-ppc64-gcc.patch # both ppc patches from - "${WORKDIR}"/${PN}-4.2.2-ppc64-altivec.patch # https://trac.ffmpeg.org/ticket/7861 "${FILESDIR}"/${PN}-5.0-backport-ranlib-build-fix.patch + "${FILESDIR}"/${PN}-4.4.3-clang-14-ff_seek_frame_binary-crash.patch + "${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch + "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch + "${FILESDIR}"/${PN}-5.1.3-binutils-2.41.patch ) MULTILIB_WRAPPED_HEADERS=( @@ -331,16 +353,38 @@ build_separate_libffmpeg() { use opencl } +pkg_setup() { + # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg. + # May cause breakage while updating, #862996, #625210, #833821. + if has_version media-libs/chromaprint[tools] && use chromaprint; then + ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which " + ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, " + ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg." + ewarn "" + ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint " + ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable " + ewarn "'tools' USE flag for chromaprint. See #862996." + fi +} + src_prepare() { if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot export revision=git-N-${FFMPEG_REVISION} fi + + eapply "${FILESDIR}/vmaf-models-default-path.patch" + default + + # -fdiagnostics-color=auto gets appended after user flags which + # will ignore user's preference. + sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die } multilib_src_configure() { - local myconf=( ${EXTRA_FFMPEG_CONF} ) + local myconf=( ) # bug 842201 use ia64 && tc-is-gcc && append-flags \ @@ -369,12 +413,12 @@ multilib_src_configure() { # Indevs use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) - for i in alsa oss jack ; do + for i in alsa oss jack sndio ; do use ${i} || myconf+=( --disable-indev=${i} ) done # Outdevs - for i in alsa oss ; do + for i in alsa oss sndio ; do use ${i} || myconf+=( --disable-outdev=${i} ) done @@ -394,7 +438,7 @@ multilib_src_configure() { # (temporarily) disable non-multilib deps if ! multilib_is_native_abi; then - for i in frei0r libzmq ; do + for i in librav1e libzmq ; do myconf+=( --disable-${i} ) done fi @@ -423,8 +467,9 @@ multilib_src_configure() { break done - # LTO support, bug #566282 - is-flagq "-flto*" && myconf+=( "--enable-lto" ) + # LTO support, bug #566282, bug #754654, bug #772854 + [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-lto # Mandatory configuration myconf=( @@ -443,9 +488,6 @@ multilib_src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; @@ -462,6 +504,7 @@ multilib_src_configure() { $(multilib_native_enable manpages) ) + # Use --extra-libs if needed for LIBS set -- "${S}/configure" \ --prefix="${EPREFIX}/usr" \ --libdir="${EPREFIX}/usr/$(get_libdir)" \ @@ -472,10 +515,14 @@ multilib_src_configure() { --cc="$(tc-getCC)" \ --cxx="$(tc-getCXX)" \ --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ --strip="$(tc-getSTRIP)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ --optflags="${CFLAGS}" \ $(use_enable static-libs static) \ - "${myconf[@]}" + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} echo "${@}" "${@}" || die @@ -517,6 +564,11 @@ multilib_src_compile() { fi } +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \ + emake V=1 fate +} + multilib_src_install() { emake V=1 DESTDIR="${D}" install install-doc @@ -547,9 +599,6 @@ multilib_src_install() { multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" -} -multilib_src_test() { - LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil:${BUILD_DIR}/libavresample" \ - emake V=1 fate + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override } diff --git a/media-video/ffmpeg/ffmpeg-5.1.2-r2.ebuild b/media-video/ffmpeg/ffmpeg-5.1.3-r3.ebuild index cc4189424afc..8c290006f1db 100644 --- a/media-video/ffmpeg/ffmpeg-5.1.2-r2.ebuild +++ b/media-video/ffmpeg/ffmpeg-5.1.3-r3.ebuild @@ -64,7 +64,7 @@ LICENSE=" samba? ( GPL-3 ) " if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" fi # Options to use as use_enable in the foo[:bar] form. @@ -126,11 +126,16 @@ ARM_CPU_FEATURES=( ) ARM_CPU_REQUIRED_USE=" arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) " MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) @@ -233,7 +238,7 @@ RDEPEND=" libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) - libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) @@ -286,8 +291,8 @@ RDEPEND=" " RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) " DEPEND="${RDEPEND} @@ -336,8 +341,9 @@ S=${WORKDIR}/${P/_/-} PATCHES=( "${FILESDIR}"/chromium-r1.patch - "${FILESDIR}"/${P}-vulkan.patch "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch + "${FILESDIR}"/${P}-svt-av1.patch ) MULTILIB_WRAPPED_HEADERS=( @@ -481,9 +487,6 @@ multilib_src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; @@ -596,5 +599,5 @@ multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" - use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override } diff --git a/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild b/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild new file mode 100644 index 000000000000..b6e43feb919a --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-5.1.3-r4.ebuild @@ -0,0 +1,604 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Subslot: libavutil major.libavcodec major.libavformat major +# Since FFmpeg ships several libraries, subslot is kind of limited here. +# Most consumers will use those three libraries, if a "less used" library +# changes its soname, consumers will have to be rebuilt the old way +# (preserve-libs). +# If, for example, a package does not link to libavformat and only libavformat +# changes its ABI then this package will be rebuilt needlessly. Hence, such a +# package is free _not_ to := depend on FFmpeg but I would strongly encourage +# doing so since such a case is unlikely. +FFMPEG_SUBSLOT=57.59.59 + +SCM="" +if [ "${PV#9999}" != "${PV}" ] ; then + SCM="git-r3" + EGIT_MIN_CLONE_TYPE="single" + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" +fi + +inherit flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} + +DESCRIPTION="Complete solution to record/convert/stream audio and video. Includes libavcodec" +HOMEPAGE="https://ffmpeg.org/" +if [ "${PV#9999}" != "${PV}" ] ; then + SRC_URI="" +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI="mirror://gentoo/${P}.tar.xz" +else # Release + VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc + inherit verify-sig + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz" + SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )" + + BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )" +fi +FFMPEG_REVISION="${PV#*_p}" + +SLOT="0/${FFMPEG_SUBSLOT}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) + amr? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + gmp? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + libaribb24? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + encode? ( + amrenc? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + ) + samba? ( GPL-3 ) +" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" +fi + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt +gnutls gmp + +gpl hardcoded-tables +iconv libxml2 lzma +network opencl + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau vulkan + X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib + # libavdevice options + cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal + opengl + # indevs + libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack + # decoders + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac + jpeg2k:libopenjpeg jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm + libaribb24 mmal modplug:libmodplug opus:libopus qsv:libmfx libilbc librtmp ssh:libssh + speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec + vorbis:libvorbis vpx:libvpx zvbi:libzvbi + # libavfilter options + appkit + bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf + fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo libtesseract lv2 + truetype:libfreetype vidstab:libvidstab + rubberband:librubberband zeromq:libzmq zimg:libzimg + # libswresample options + libsoxr + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +# Same as above but for encoders, i.e. they do something only with USE=encode. +FFMPEG_ENCODER_FLAG_MAP=( + amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame + openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1 + theora:libtheora twolame:libtwolame webp:libwebp x264:libx264 + x265:libx265 xvid:libxvid +) + +IUSE=" + alsa chromium doc +encode oss pic sndio static-libs test v4l + ${FFMPEG_FLAG_MAP[@]%:*} + ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) +" +MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) +PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) +PPC_CPU_REQUIRED_USE=" + cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) +" +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${MIPS_CPU_FEATURES[@]} + ${PPC_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${PPC_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) +IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" + +RDEPEND=" + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amf? ( media-video/amdgpu-pro-amf ) + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) + bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) + chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) + codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) + dav1d? ( >=media-libs/dav1d-0.4.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1:=[${MULTILIB_USEDEP}] ) + rav1e? ( >=media-video/rav1e-0.4:=[capi] ) + snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) + theora? ( + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] + ) + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) + webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) + x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) + ) + fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) + flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) + fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) + frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] ) + fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) + gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) + gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) + gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) + iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) + iec61883? ( + >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] + ) + ieee1394? ( + >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + ) + jack? ( virtual/jack[${MULTILIB_USEDEP}] ) + jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) + jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] ) + lcms? ( >=media-libs/lcms-2.13:2[$MULTILIB_USEDEP] ) + libaom? ( >=media-libs/libaom-1.0.0-r1:=[${MULTILIB_USEDEP}] ) + libaribb24? ( >=media-libs/aribb24-1.0.3-r2[${MULTILIB_USEDEP}] ) + libass? ( >=media-libs/libass-0.11.0:=[${MULTILIB_USEDEP}] ) + libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) + libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) + libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) + librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) + libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) + libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) + libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) + libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + mmal? ( media-libs/raspberrypi-userland ) + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/intel-mediasdk[${MULTILIB_USEDEP}] ) + rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) + samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) + srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 ) + svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) + vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) + vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) + vmaf? ( >=media-libs/libvmaf-2.0.0[${MULTILIB_USEDEP}] ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.189:=[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] + ) + zeromq? ( >=net-libs/zeromq-4.1.6 ) + zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) +" + +RDEPEND="${RDEPEND} + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) +" + +DEPEND="${RDEPEND} + amf? ( media-libs/amf-headers ) + ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) + v4l? ( sys-kernel/linux-headers ) +" + +# += for verify-sig above +BDEPEND+=" + >=sys-devel/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) + cuda? ( >=sys-devel/clang-7[llvm_targets_NVPTX] ) + doc? ( sys-apps/texinfo ) + test? ( net-misc/wget sys-devel/bc ) +" + +# Code requiring FFmpeg to be built under gpl license +GPL_REQUIRED_USE=" + postproc? ( gpl ) + frei0r? ( gpl ) + cdio? ( gpl ) + rubberband? ( gpl ) + vidstab? ( gpl ) + samba? ( gpl ) + encode? ( + x264? ( gpl ) + x265? ( gpl ) + xvid? ( gpl ) + ) +" +REQUIRED_USE=" + cuda? ( nvenc ) + libv4l? ( v4l ) + fftools_cws2fws? ( zlib ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r1.patch + "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch + "${FILESDIR}"/${P}-svt-av1.patch + "${FILESDIR}"/${P}-binutils-2.41.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +build_separate_libffmpeg() { + use opencl +} + +pkg_setup() { + # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg. + # May cause breakage while updating, #862996, #625210, #833821. + if has_version media-libs/chromaprint[tools] && use chromaprint; then + ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which " + ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, " + ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg." + ewarn "" + ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint " + ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable " + ewarn "'tools' USE flag for chromaprint. See #862996." + fi +} + +src_prepare() { + if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot + export revision=git-N-${FFMPEG_REVISION} + fi + + default + + # -fdiagnostics-color=auto gets appended after user flags which + # will ignore user's preference. + sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die + + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +multilib_src_configure() { + local myconf=( ) + + # bug 842201 + use ia64 && tc-is-gcc && append-flags \ + -fno-tree-ccp \ + -fno-tree-dominator-opts \ + -fno-tree-fre \ + -fno-code-hoisting \ + -fno-tree-pre \ + -fno-tree-vrp + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + use openssl && myconf+=( --enable-nonfree ) + use samba && myconf+=( --enable-version3 ) + + # Encoders + if use encode ; then + ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) + + # Licensing. + if use amrenc ; then + myconf+=( --enable-version3 ) + fi + else + myconf+=( --disable-encoders ) + fi + + # Indevs + use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) + for i in alsa oss jack sndio ; do + use ${i} || myconf+=( --disable-indev=${i} ) + done + + # Outdevs + for i in alsa oss sndio ; do + use ${i} || myconf+=( --disable-outdev=${i} ) + done + + # Decoders + use amr && myconf+=( --enable-version3 ) + use gmp && myconf+=( --enable-version3 ) + use libaribb24 && myconf+=( --enable-version3 ) + use fdk && use gpl && myconf+=( --enable-nonfree ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + if use openssl ; then + myconf+=( --disable-gnutls ) + has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 ) + fi + + # (temporarily) disable non-multilib deps + if ! multilib_is_native_abi; then + for i in librav1e libzmq ; do + myconf+=( --disable-${i} ) + done + fi + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + if use pic ; then + myconf+=( --enable-pic ) + # disable asm code if PIC is required + # as the provided asm decidedly is not PIC for x86. + [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) + fi + [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282, bug #754654, bug #772854 + [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-lto + + # Mandatory configuration + myconf=( + --enable-avfilter + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # doc + myconf+=( + $(multilib_native_use_enable doc) + $(multilib_native_use_enable doc htmlpages) + $(multilib_native_enable manpages) + ) + + # Use --extra-libs if needed for LIBS + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --mandir="${EPREFIX}/usr/share/man" \ + --enable-shared \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --strip="$(tc-getSTRIP)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ + --optflags="${CFLAGS}" \ + $(use_enable static-libs static) \ + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} + echo "${@}" + "${@}" || die + + if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then + einfo "Configuring for Chromium" + mkdir -p ../chromium || die + pushd ../chromium >/dev/null || die + set -- "${@}" \ + --disable-shared \ + --enable-static \ + --enable-pic \ + --disable-opencl + echo "${@}" + "${@}" || die + popd >/dev/null || die + fi +} + +multilib_src_compile() { + emake V=1 + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + emake V=1 tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Compiling for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 libffmpeg + popd >/dev/null || die + else + emake V=1 libffmpeg + fi + fi + fi +} + +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil" \ + emake V=1 fate +} + +multilib_src_install() { + emake V=1 DESTDIR="${D}" install install-doc + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + dobin tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Installing for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 DESTDIR="${D}" install-libffmpeg + popd >/dev/null || die + else + emake V=1 DESTDIR="${D}" install-libffmpeg + + # When not built separately, libffmpeg has no code of + # its own so this QA check raises a false positive. + QA_FLAGS_IGNORED+=" usr/$(get_libdir)/chromium/.*" + fi + fi + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" + + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override +} diff --git a/media-video/ffmpeg/ffmpeg-6.0-r1.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r2.ebuild index e9e752819bc1..b872b34e5a38 100644 --- a/media-video/ffmpeg/ffmpeg-6.0-r1.ebuild +++ b/media-video/ffmpeg/ffmpeg-6.0-r2.ebuild @@ -64,7 +64,7 @@ LICENSE=" samba? ( GPL-3 ) " if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" fi # Options to use as use_enable in the foo[:bar] form. @@ -126,11 +126,16 @@ ARM_CPU_FEATURES=( ) ARM_CPU_REQUIRED_USE=" arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) " MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) @@ -233,7 +238,7 @@ RDEPEND=" libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) - libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) @@ -286,8 +291,8 @@ RDEPEND=" " RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) " DEPEND="${RDEPEND} @@ -481,9 +486,6 @@ multilib_src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; diff --git a/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild new file mode 100644 index 000000000000..646efd85ae1a --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-6.0-r5.ebuild @@ -0,0 +1,604 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Subslot: libavutil major.libavcodec major.libavformat major +# Since FFmpeg ships several libraries, subslot is kind of limited here. +# Most consumers will use those three libraries, if a "less used" library +# changes its soname, consumers will have to be rebuilt the old way +# (preserve-libs). +# If, for example, a package does not link to libavformat and only libavformat +# changes its ABI then this package will be rebuilt needlessly. Hence, such a +# package is free _not_ to := depend on FFmpeg but I would strongly encourage +# doing so since such a case is unlikely. +FFMPEG_SUBSLOT=58.60.60 + +SCM="" +if [ "${PV#9999}" != "${PV}" ] ; then + SCM="git-r3" + EGIT_MIN_CLONE_TYPE="single" + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" +fi + +inherit flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} + +DESCRIPTION="Complete solution to record/convert/stream audio and video. Includes libavcodec" +HOMEPAGE="https://ffmpeg.org/" +if [ "${PV#9999}" != "${PV}" ] ; then + SRC_URI="" +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI="mirror://gentoo/${P}.tar.xz" +else # Release + VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc + inherit verify-sig + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz" + SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )" + + BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )" +fi +FFMPEG_REVISION="${PV#*_p}" + +SLOT="0/${FFMPEG_SUBSLOT}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) + amr? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + gmp? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + libaribb24? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + encode? ( + amrenc? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + ) + samba? ( GPL-3 ) +" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" +fi + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt +gnutls gmp + +gpl hardcoded-tables +iconv libxml2 lzma +network opencl + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau vulkan + X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib + # libavdevice options + cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal + opengl + # indevs + libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack + # decoders + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac + jpeg2k:libopenjpeg jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm + libaribb24 mmal modplug:libmodplug opus:libopus qsv:libvpl libilbc librtmp ssh:libssh + speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec + vorbis:libvorbis vpx:libvpx zvbi:libzvbi + # libavfilter options + appkit + bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf + fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo libtesseract lv2 + truetype:libfreetype vidstab:libvidstab + rubberband:librubberband zeromq:libzmq zimg:libzimg + # libswresample options + libsoxr + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +# Same as above but for encoders, i.e. they do something only with USE=encode. +FFMPEG_ENCODER_FLAG_MAP=( + amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame + openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1 + theora:libtheora twolame:libtwolame webp:libwebp x264:libx264 + x265:libx265 xvid:libxvid +) + +IUSE=" + alsa chromium doc +encode oss pic sndio static-libs test v4l + ${FFMPEG_FLAG_MAP[@]%:*} + ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) +" +MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) +PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) +PPC_CPU_REQUIRED_USE=" + cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) +" +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${MIPS_CPU_FEATURES[@]} + ${PPC_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${PPC_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) +IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" + +RDEPEND=" + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amf? ( media-video/amdgpu-pro-amf ) + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) + bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) + chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) + codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) + dav1d? ( >=media-libs/dav1d-0.4.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1:=[${MULTILIB_USEDEP}] ) + rav1e? ( >=media-video/rav1e-0.4:=[capi] ) + snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) + theora? ( + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] + ) + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) + webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) + x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) + ) + fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) + flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) + fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) + frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] ) + fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) + gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) + gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) + gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) + iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) + iec61883? ( + >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] + ) + ieee1394? ( + >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + ) + jack? ( virtual/jack[${MULTILIB_USEDEP}] ) + jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) + jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] ) + lcms? ( >=media-libs/lcms-2.13:2[$MULTILIB_USEDEP] ) + libaom? ( >=media-libs/libaom-1.0.0-r1:=[${MULTILIB_USEDEP}] ) + libaribb24? ( >=media-libs/aribb24-1.0.3-r2[${MULTILIB_USEDEP}] ) + libass? ( >=media-libs/libass-0.11.0:=[${MULTILIB_USEDEP}] ) + libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) + libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) + libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) + librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) + libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) + libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) + libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) + libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + mmal? ( media-libs/raspberrypi-userland ) + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/oneVPL[${MULTILIB_USEDEP}] ) + rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) + samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) + srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 ) + svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) + vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) + vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) + vmaf? ( >=media-libs/libvmaf-2.0.0[${MULTILIB_USEDEP}] ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.189:=[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] + ) + zeromq? ( >=net-libs/zeromq-4.1.6 ) + zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) +" + +RDEPEND="${RDEPEND} + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) +" + +DEPEND="${RDEPEND} + amf? ( >=media-libs/amf-headers-1.4.28 ) + ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) + v4l? ( sys-kernel/linux-headers ) +" + +# += for verify-sig above +BDEPEND+=" + >=sys-devel/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) + cuda? ( >=sys-devel/clang-7[llvm_targets_NVPTX] ) + doc? ( sys-apps/texinfo ) + test? ( net-misc/wget sys-devel/bc ) +" + +# Code requiring FFmpeg to be built under gpl license +GPL_REQUIRED_USE=" + postproc? ( gpl ) + frei0r? ( gpl ) + cdio? ( gpl ) + rubberband? ( gpl ) + vidstab? ( gpl ) + samba? ( gpl ) + encode? ( + x264? ( gpl ) + x265? ( gpl ) + xvid? ( gpl ) + ) +" +REQUIRED_USE=" + cuda? ( nvenc ) + libv4l? ( v4l ) + fftools_cws2fws? ( zlib ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r1.patch + "${FILESDIR}"/${P}-DECLARE_ALIGNED.patch + "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${P}-wint-conversion-vulkan.patch + "${FILESDIR}"/${P}-libplacebo-remove-deprecated-field.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +build_separate_libffmpeg() { + use opencl +} + +pkg_setup() { + # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg. + # May cause breakage while updating, #862996, #625210, #833821. + if has_version media-libs/chromaprint[tools] && use chromaprint; then + ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which " + ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, " + ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg." + ewarn "" + ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint " + ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable " + ewarn "'tools' USE flag for chromaprint. See #862996." + fi +} + +src_prepare() { + if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot + export revision=git-N-${FFMPEG_REVISION} + fi + + default + + # -fdiagnostics-color=auto gets appended after user flags which + # will ignore user's preference. + sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die + + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +multilib_src_configure() { + local myconf=( ) + + # bug 842201 + use ia64 && tc-is-gcc && append-flags \ + -fno-tree-ccp \ + -fno-tree-dominator-opts \ + -fno-tree-fre \ + -fno-code-hoisting \ + -fno-tree-pre \ + -fno-tree-vrp + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + use openssl && myconf+=( --enable-nonfree ) + use samba && myconf+=( --enable-version3 ) + + # Encoders + if use encode ; then + ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) + + # Licensing. + if use amrenc ; then + myconf+=( --enable-version3 ) + fi + else + myconf+=( --disable-encoders ) + fi + + # Indevs + use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) + for i in alsa oss jack sndio ; do + use ${i} || myconf+=( --disable-indev=${i} ) + done + + # Outdevs + for i in alsa oss sndio ; do + use ${i} || myconf+=( --disable-outdev=${i} ) + done + + # Decoders + use amr && myconf+=( --enable-version3 ) + use gmp && myconf+=( --enable-version3 ) + use libaribb24 && myconf+=( --enable-version3 ) + use fdk && use gpl && myconf+=( --enable-nonfree ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + if use openssl ; then + myconf+=( --disable-gnutls ) + has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 ) + fi + + # (temporarily) disable non-multilib deps + if ! multilib_is_native_abi; then + for i in librav1e libzmq ; do + myconf+=( --disable-${i} ) + done + fi + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + if use pic ; then + myconf+=( --enable-pic ) + # disable asm code if PIC is required + # as the provided asm decidedly is not PIC for x86. + [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) + fi + [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282, bug #754654, bug #772854 + [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-lto + + # Mandatory configuration + myconf=( + --enable-avfilter + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # doc + myconf+=( + $(multilib_native_use_enable doc) + $(multilib_native_use_enable doc htmlpages) + $(multilib_native_enable manpages) + ) + + # Use --extra-libs if needed for LIBS + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --mandir="${EPREFIX}/usr/share/man" \ + --enable-shared \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --strip="$(tc-getSTRIP)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ + --optflags="${CFLAGS}" \ + $(use_enable static-libs static) \ + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} + echo "${@}" + "${@}" || die + + if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then + einfo "Configuring for Chromium" + mkdir -p ../chromium || die + pushd ../chromium >/dev/null || die + set -- "${@}" \ + --disable-shared \ + --enable-static \ + --enable-pic \ + --disable-opencl + echo "${@}" + "${@}" || die + popd >/dev/null || die + fi +} + +multilib_src_compile() { + emake V=1 + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + emake V=1 tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Compiling for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 libffmpeg + popd >/dev/null || die + else + emake V=1 libffmpeg + fi + fi + fi +} + +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil" \ + emake V=1 fate +} + +multilib_src_install() { + emake V=1 DESTDIR="${D}" install install-doc + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + dobin tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Installing for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 DESTDIR="${D}" install-libffmpeg + popd >/dev/null || die + else + emake V=1 DESTDIR="${D}" install-libffmpeg + + # When not built separately, libffmpeg has no code of + # its own so this QA check raises a false positive. + QA_FLAGS_IGNORED+=" usr/$(get_libdir)/chromium/.*" + fi + fi + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" + + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override +} diff --git a/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild b/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild new file mode 100644 index 000000000000..b62d5e8abe3d --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-6.0-r6.ebuild @@ -0,0 +1,605 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Subslot: libavutil major.libavcodec major.libavformat major +# Since FFmpeg ships several libraries, subslot is kind of limited here. +# Most consumers will use those three libraries, if a "less used" library +# changes its soname, consumers will have to be rebuilt the old way +# (preserve-libs). +# If, for example, a package does not link to libavformat and only libavformat +# changes its ABI then this package will be rebuilt needlessly. Hence, such a +# package is free _not_ to := depend on FFmpeg but I would strongly encourage +# doing so since such a case is unlikely. +FFMPEG_SUBSLOT=58.60.60 + +SCM="" +if [ "${PV#9999}" != "${PV}" ] ; then + SCM="git-r3" + EGIT_MIN_CLONE_TYPE="single" + EGIT_REPO_URI="https://git.ffmpeg.org/ffmpeg.git" +fi + +inherit flag-o-matic multilib multilib-minimal toolchain-funcs ${SCM} + +DESCRIPTION="Complete solution to record/convert/stream audio and video. Includes libavcodec" +HOMEPAGE="https://ffmpeg.org/" +if [ "${PV#9999}" != "${PV}" ] ; then + SRC_URI="" +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI="mirror://gentoo/${P}.tar.xz" +else # Release + VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/ffmpeg.asc + inherit verify-sig + SRC_URI="https://ffmpeg.org/releases/${P/_/-}.tar.xz" + SRC_URI+=" verify-sig? ( https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc )" + + BDEPEND=" verify-sig? ( sec-keys/openpgp-keys-ffmpeg )" +fi +FFMPEG_REVISION="${PV#*_p}" + +SLOT="0/${FFMPEG_SUBSLOT}" +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) + amr? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + gmp? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + libaribb24? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + encode? ( + amrenc? ( + gpl? ( GPL-3 ) + !gpl? ( LGPL-3 ) + ) + ) + samba? ( GPL-3 ) +" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" +fi + +# Options to use as use_enable in the foo[:bar] form. +# This will feed configure with $(use_enable foo bar) +# or $(use_enable foo foo) if no :bar is set. +# foo is added to IUSE. +FFMPEG_FLAG_MAP=( + +bzip2:bzlib cpudetection:runtime-cpudetect debug gcrypt +gnutls gmp + +gpl hardcoded-tables +iconv libxml2 lzma +network opencl + openssl +postproc samba:libsmbclient sdl:ffplay sdl:sdl2 vaapi vdpau vulkan + X:xlib X:libxcb X:libxcb-shm X:libxcb-xfixes +zlib + # libavdevice options + cdio:libcdio iec61883:libiec61883 ieee1394:libdc1394 libcaca openal + opengl + # indevs + libv4l:libv4l2 pulseaudio:libpulse libdrm jack:libjack + # decoders + amr:libopencore-amrwb amr:libopencore-amrnb codec2:libcodec2 +dav1d:libdav1d fdk:libfdk-aac + jpeg2k:libopenjpeg jpegxl:libjxl bluray:libbluray gme:libgme gsm:libgsm + libaribb24 mmal modplug:libmodplug opus:libopus qsv:libvpl libilbc librtmp ssh:libssh + speex:libspeex srt:libsrt svg:librsvg nvenc:ffnvcodec + vorbis:libvorbis vpx:libvpx zvbi:libzvbi + # libavfilter options + appkit + bs2b:libbs2b chromaprint cuda:cuda-llvm flite:libflite frei0r vmaf:libvmaf + fribidi:libfribidi fontconfig ladspa lcms:lcms2 libass libplacebo libtesseract lv2 + truetype:libfreetype vidstab:libvidstab + rubberband:librubberband zeromq:libzmq zimg:libzimg + # libswresample options + libsoxr + # Threads; we only support pthread for now but ffmpeg supports more + +threads:pthreads +) + +# Same as above but for encoders, i.e. they do something only with USE=encode. +FFMPEG_ENCODER_FLAG_MAP=( + amf amrenc:libvo-amrwbenc kvazaar:libkvazaar libaom mp3:libmp3lame + openh264:libopenh264 rav1e:librav1e snappy:libsnappy svt-av1:libsvtav1 + theora:libtheora twolame:libtwolame webp:libwebp x264:libx264 + x265:libx265 xvid:libxvid +) + +IUSE=" + alsa chromium doc +encode oss pic sndio static-libs test v4l + ${FFMPEG_FLAG_MAP[@]%:*} + ${FFMPEG_ENCODER_FLAG_MAP[@]%:*} +" + +# Strings for CPU features in the useflag[:configure_option] form +# if :configure_option isn't set, it will use 'useflag' as configure option +ARM_CPU_FEATURES=( + cpu_flags_arm_thumb:armv5te + cpu_flags_arm_v6:armv6 + cpu_flags_arm_thumb2:armv6t2 + cpu_flags_arm_neon:neon + cpu_flags_arm_vfp:vfp + cpu_flags_arm_vfpv3:vfpv3 + cpu_flags_arm_v8:armv8 +) +ARM_CPU_REQUIRED_USE=" + arm64? ( cpu_flags_arm_v8 ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) + cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) + cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) +" +MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) +PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) +PPC_CPU_REQUIRED_USE=" + cpu_flags_ppc_vsx? ( cpu_flags_ppc_altivec ) + cpu_flags_ppc_vsx2? ( cpu_flags_ppc_vsx ) +" +X86_CPU_FEATURES_RAW=( 3dnow:amd3dnow 3dnowext:amd3dnowext aes:aesni avx:avx avx2:avx2 fma3:fma3 fma4:fma4 mmx:mmx mmxext:mmxext sse:sse sse2:sse2 sse3:sse3 ssse3:ssse3 sse4_1:sse4 sse4_2:sse42 xop:xop ) +X86_CPU_FEATURES=( ${X86_CPU_FEATURES_RAW[@]/#/cpu_flags_x86_} ) +X86_CPU_REQUIRED_USE=" + cpu_flags_x86_avx2? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma4? ( cpu_flags_x86_avx ) + cpu_flags_x86_fma3? ( cpu_flags_x86_avx ) + cpu_flags_x86_xop? ( cpu_flags_x86_avx ) + cpu_flags_x86_avx? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_aes? ( cpu_flags_x86_sse4_2 ) + cpu_flags_x86_sse4_2? ( cpu_flags_x86_sse4_1 ) + cpu_flags_x86_sse4_1? ( cpu_flags_x86_ssse3 ) + cpu_flags_x86_ssse3? ( cpu_flags_x86_sse3 ) + cpu_flags_x86_sse3? ( cpu_flags_x86_sse2 ) + cpu_flags_x86_sse2? ( cpu_flags_x86_sse ) + cpu_flags_x86_sse? ( cpu_flags_x86_mmxext ) + cpu_flags_x86_mmxext? ( cpu_flags_x86_mmx ) + cpu_flags_x86_3dnowext? ( cpu_flags_x86_3dnow ) + cpu_flags_x86_3dnow? ( cpu_flags_x86_mmx ) +" + +CPU_FEATURES_MAP=( + ${ARM_CPU_FEATURES[@]} + ${MIPS_CPU_FEATURES[@]} + ${PPC_CPU_FEATURES[@]} + ${X86_CPU_FEATURES[@]} +) +IUSE="${IUSE} + ${CPU_FEATURES_MAP[@]%:*}" + +CPU_REQUIRED_USE=" + ${ARM_CPU_REQUIRED_USE} + ${PPC_CPU_REQUIRED_USE} + ${X86_CPU_REQUIRED_USE} +" + +FFTOOLS=( aviocat cws2fws ffescape ffeval ffhash fourcc2pixfmt graph2dot ismindex pktdumper qt-faststart sidxindex trasher ) +IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" + +RDEPEND=" + alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) + amf? ( media-video/amdgpu-pro-amf ) + amr? ( >=media-libs/opencore-amr-0.1.3-r1[${MULTILIB_USEDEP}] ) + bluray? ( >=media-libs/libbluray-0.3.0-r1:=[${MULTILIB_USEDEP}] ) + bs2b? ( >=media-libs/libbs2b-3.1.0-r1[${MULTILIB_USEDEP}] ) + bzip2? ( >=app-arch/bzip2-1.0.6-r4[${MULTILIB_USEDEP}] ) + cdio? ( >=dev-libs/libcdio-paranoia-0.90_p1-r1[${MULTILIB_USEDEP}] ) + chromaprint? ( >=media-libs/chromaprint-1.2-r1[${MULTILIB_USEDEP}] ) + codec2? ( media-libs/codec2[${MULTILIB_USEDEP}] ) + dav1d? ( >=media-libs/dav1d-0.4.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-1.2.0[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/lame-3.99.5-r1[${MULTILIB_USEDEP}] ) + openh264? ( >=media-libs/openh264-1.4.0-r1:=[${MULTILIB_USEDEP}] ) + rav1e? ( >=media-video/rav1e-0.4:=[capi] ) + snappy? ( >=app-arch/snappy-1.1.2-r1:=[${MULTILIB_USEDEP}] ) + theora? ( + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + >=media-libs/libtheora-1.1.1[encode,${MULTILIB_USEDEP}] + ) + twolame? ( >=media-sound/twolame-0.3.13-r1[${MULTILIB_USEDEP}] ) + webp? ( >=media-libs/libwebp-0.3.0:=[${MULTILIB_USEDEP}] ) + x264? ( >=media-libs/x264-0.0.20130506:=[${MULTILIB_USEDEP}] ) + x265? ( >=media-libs/x265-1.6:=[${MULTILIB_USEDEP}] ) + xvid? ( >=media-libs/xvid-1.3.2-r1[${MULTILIB_USEDEP}] ) + ) + fdk? ( >=media-libs/fdk-aac-0.1.3:=[${MULTILIB_USEDEP}] ) + flite? ( >=app-accessibility/flite-1.4-r4[${MULTILIB_USEDEP}] ) + fontconfig? ( >=media-libs/fontconfig-2.10.92[${MULTILIB_USEDEP}] ) + frei0r? ( media-plugins/frei0r-plugins[${MULTILIB_USEDEP}] ) + fribidi? ( >=dev-libs/fribidi-0.19.6[${MULTILIB_USEDEP}] ) + gcrypt? ( >=dev-libs/libgcrypt-1.6:0=[${MULTILIB_USEDEP}] ) + gme? ( >=media-libs/game-music-emu-0.6.0[${MULTILIB_USEDEP}] ) + gmp? ( >=dev-libs/gmp-6:0=[${MULTILIB_USEDEP}] ) + gsm? ( >=media-sound/gsm-1.0.13-r1[${MULTILIB_USEDEP}] ) + iconv? ( >=virtual/libiconv-0-r1[${MULTILIB_USEDEP}] ) + iec61883? ( + >=media-libs/libiec61883-1.2.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + >=sys-libs/libavc1394-0.5.4-r1[${MULTILIB_USEDEP}] + ) + ieee1394? ( + >=media-libs/libdc1394-2.2.1:2=[${MULTILIB_USEDEP}] + >=sys-libs/libraw1394-2.1.0-r1[${MULTILIB_USEDEP}] + ) + jack? ( virtual/jack[${MULTILIB_USEDEP}] ) + jpeg2k? ( >=media-libs/openjpeg-2:2[${MULTILIB_USEDEP}] ) + jpegxl? ( >=media-libs/libjxl-0.7.0[$MULTILIB_USEDEP] ) + lcms? ( >=media-libs/lcms-2.13:2[$MULTILIB_USEDEP] ) + libaom? ( >=media-libs/libaom-1.0.0-r1:=[${MULTILIB_USEDEP}] ) + libaribb24? ( >=media-libs/aribb24-1.0.3-r2[${MULTILIB_USEDEP}] ) + libass? ( >=media-libs/libass-0.11.0:=[${MULTILIB_USEDEP}] ) + libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) + libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) + libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) + librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) + libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) + libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) + libv4l? ( >=media-libs/libv4l-0.9.5[${MULTILIB_USEDEP}] ) + libxml2? ( dev-libs/libxml2:=[${MULTILIB_USEDEP}] ) + lv2? ( media-libs/lv2[${MULTILIB_USEDEP}] media-libs/lilv[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + mmal? ( media-libs/raspberrypi-userland ) + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + openal? ( >=media-libs/openal-1.15.1[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/oneVPL[${MULTILIB_USEDEP}] ) + rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) + samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[sound,video,${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + speex? ( >=media-libs/speex-1.2_rc1-r1[${MULTILIB_USEDEP}] ) + srt? ( >=net-libs/srt-1.3.0:=[${MULTILIB_USEDEP}] ) + ssh? ( >=net-libs/libssh-0.5.5:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-9.1.23.1 ) + svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] ) + vaapi? ( >=media-libs/libva-1.2.1-r1:0=[${MULTILIB_USEDEP}] ) + vdpau? ( >=x11-libs/libvdpau-0.7[${MULTILIB_USEDEP}] ) + vidstab? ( >=media-libs/vidstab-1.1.0[${MULTILIB_USEDEP}] ) + vmaf? ( >=media-libs/libvmaf-2.0.0[${MULTILIB_USEDEP}] ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] + ) + vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.189:=[${MULTILIB_USEDEP}] ) + X? ( + >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] + >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] + >=x11-libs/libXv-1.0.10[${MULTILIB_USEDEP}] + >=x11-libs/libxcb-1.4:=[${MULTILIB_USEDEP}] + ) + zeromq? ( >=net-libs/zeromq-4.1.6 ) + zimg? ( >=media-libs/zimg-2.7.4:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zvbi? ( >=media-libs/zvbi-0.2.35[${MULTILIB_USEDEP}] ) +" + +RDEPEND="${RDEPEND} + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) +" + +DEPEND="${RDEPEND} + amf? ( >=media-libs/amf-headers-1.4.28 ) + ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) + v4l? ( sys-kernel/linux-headers ) +" + +# += for verify-sig above +BDEPEND+=" + >=sys-devel/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) + cuda? ( >=sys-devel/clang-7[llvm_targets_NVPTX] ) + doc? ( sys-apps/texinfo ) + test? ( net-misc/wget sys-devel/bc ) +" + +# Code requiring FFmpeg to be built under gpl license +GPL_REQUIRED_USE=" + postproc? ( gpl ) + frei0r? ( gpl ) + cdio? ( gpl ) + rubberband? ( gpl ) + vidstab? ( gpl ) + samba? ( gpl ) + encode? ( + x264? ( gpl ) + x265? ( gpl ) + xvid? ( gpl ) + ) +" +REQUIRED_USE=" + cuda? ( nvenc ) + libv4l? ( v4l ) + fftools_cws2fws? ( zlib ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r1.patch + "${FILESDIR}"/${P}-DECLARE_ALIGNED.patch + "${FILESDIR}"/${PN}-5.1.2-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${P}-wint-conversion-vulkan.patch + "${FILESDIR}"/${P}-libplacebo-remove-deprecated-field.patch + "${FILESDIR}"/${P}-binutils-2.41.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +build_separate_libffmpeg() { + use opencl +} + +pkg_setup() { + # ffmpeg[chromaprint] depends on chromaprint, and chromaprint[tools] depends on ffmpeg. + # May cause breakage while updating, #862996, #625210, #833821. + if has_version media-libs/chromaprint[tools] && use chromaprint; then + ewarn "You have media-libs/chromaprint installed with 'tools' USE flag, which " + ewarn "links to ffmpeg, and you have enabled 'chromaprint' USE flag for ffmpeg, " + ewarn "which links to chromaprint. This may cause issues while rebuilding ffmpeg." + ewarn "" + ewarn "If your build fails to 'ERROR: chromaprint not found', rebuild chromaprint " + ewarn "without the 'tools' use flag first, then rebuild ffmpeg, and then finally enable " + ewarn "'tools' USE flag for chromaprint. See #862996." + fi +} + +src_prepare() { + if [[ "${PV%_p*}" != "${PV}" ]] ; then # Snapshot + export revision=git-N-${FFMPEG_REVISION} + fi + + default + + # -fdiagnostics-color=auto gets appended after user flags which + # will ignore user's preference. + sed -i -e '/check_cflags -fdiagnostics-color=auto/d' configure || die + + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die +} + +multilib_src_configure() { + local myconf=( ) + + # bug 842201 + use ia64 && tc-is-gcc && append-flags \ + -fno-tree-ccp \ + -fno-tree-dominator-opts \ + -fno-tree-fre \ + -fno-code-hoisting \ + -fno-tree-pre \ + -fno-tree-vrp + + local ffuse=( "${FFMPEG_FLAG_MAP[@]}" ) + use openssl && myconf+=( --enable-nonfree ) + use samba && myconf+=( --enable-version3 ) + + # Encoders + if use encode ; then + ffuse+=( "${FFMPEG_ENCODER_FLAG_MAP[@]}" ) + + # Licensing. + if use amrenc ; then + myconf+=( --enable-version3 ) + fi + else + myconf+=( --disable-encoders ) + fi + + # Indevs + use v4l || myconf+=( --disable-indev=v4l2 --disable-outdev=v4l2 ) + for i in alsa oss jack sndio ; do + use ${i} || myconf+=( --disable-indev=${i} ) + done + + # Outdevs + for i in alsa oss sndio ; do + use ${i} || myconf+=( --disable-outdev=${i} ) + done + + # Decoders + use amr && myconf+=( --enable-version3 ) + use gmp && myconf+=( --enable-version3 ) + use libaribb24 && myconf+=( --enable-version3 ) + use fdk && use gpl && myconf+=( --enable-nonfree ) + + for i in "${ffuse[@]#+}" ; do + myconf+=( $(use_enable ${i%:*} ${i#*:}) ) + done + + if use openssl ; then + myconf+=( --disable-gnutls ) + has_version dev-libs/openssl:0/3 && myconf+=( --enable-version3 ) + fi + + # (temporarily) disable non-multilib deps + if ! multilib_is_native_abi; then + for i in librav1e libzmq ; do + myconf+=( --disable-${i} ) + done + fi + + # CPU features + for i in "${CPU_FEATURES_MAP[@]}" ; do + use ${i%:*} || myconf+=( --disable-${i#*:} ) + done + + if use pic ; then + myconf+=( --enable-pic ) + # disable asm code if PIC is required + # as the provided asm decidedly is not PIC for x86. + [[ ${ABI} == x86 ]] && myconf+=( --disable-asm ) + fi + [[ ${ABI} == x32 ]] && myconf+=( --disable-asm ) #427004 + + # Try to get cpu type based on CFLAGS. + # Bug #172723 + # We need to do this so that features of that CPU will be better used + # If they contain an unknown CPU it will not hurt since ffmpeg's configure + # will just ignore it. + for i in $(get-flag mcpu) $(get-flag march) ; do + [[ ${i} = native ]] && i="host" # bug #273421 + myconf+=( --cpu=${i} ) + break + done + + # LTO support, bug #566282, bug #754654, bug #772854 + [[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" ) + filter-lto + + # Mandatory configuration + myconf=( + --enable-avfilter + --disable-stripping + # This is only for hardcoded cflags; those are used in configure checks that may + # interfere with proper detections, bug #671746 and bug #645778 + # We use optflags, so that overrides them anyway. + --disable-optimizations + --disable-libcelt # bug #664158 + "${myconf[@]}" + ) + + # cross compile support + if tc-is-cross-compiler ; then + myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) + case ${CHOST} in + *mingw32*) + myconf+=( --target-os=mingw32 ) + ;; + *linux*) + myconf+=( --target-os=linux ) + ;; + esac + fi + + # doc + myconf+=( + $(multilib_native_use_enable doc) + $(multilib_native_use_enable doc htmlpages) + $(multilib_native_enable manpages) + ) + + # Use --extra-libs if needed for LIBS + set -- "${S}/configure" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --shlibdir="${EPREFIX}/usr/$(get_libdir)" \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --mandir="${EPREFIX}/usr/share/man" \ + --enable-shared \ + --cc="$(tc-getCC)" \ + --cxx="$(tc-getCXX)" \ + --ar="$(tc-getAR)" \ + --nm="$(tc-getNM)" \ + --strip="$(tc-getSTRIP)" \ + --ranlib="$(tc-getRANLIB)" \ + --pkg-config="$(tc-getPKG_CONFIG)" \ + --optflags="${CFLAGS}" \ + $(use_enable static-libs static) \ + "${myconf[@]}" \ + ${EXTRA_FFMPEG_CONF} + echo "${@}" + "${@}" || die + + if multilib_is_native_abi && use chromium && build_separate_libffmpeg; then + einfo "Configuring for Chromium" + mkdir -p ../chromium || die + pushd ../chromium >/dev/null || die + set -- "${@}" \ + --disable-shared \ + --enable-static \ + --enable-pic \ + --disable-opencl + echo "${@}" + "${@}" || die + popd >/dev/null || die + fi +} + +multilib_src_compile() { + emake V=1 + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + emake V=1 tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Compiling for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 libffmpeg + popd >/dev/null || die + else + emake V=1 libffmpeg + fi + fi + fi +} + +multilib_src_test() { + LD_LIBRARY_PATH="${BUILD_DIR}/libpostproc:${BUILD_DIR}/libswscale:${BUILD_DIR}/libswresample:${BUILD_DIR}/libavcodec:${BUILD_DIR}/libavdevice:${BUILD_DIR}/libavfilter:${BUILD_DIR}/libavformat:${BUILD_DIR}/libavutil" \ + emake V=1 fate +} + +multilib_src_install() { + emake V=1 DESTDIR="${D}" install install-doc + + if multilib_is_native_abi; then + for i in "${FFTOOLS[@]}" ; do + if use fftools_${i} ; then + dobin tools/${i}$(get_exeext) + fi + done + + if use chromium; then + if build_separate_libffmpeg; then + einfo "Installing for Chromium" + pushd ../chromium >/dev/null || die + emake V=1 DESTDIR="${D}" install-libffmpeg + popd >/dev/null || die + else + emake V=1 DESTDIR="${D}" install-libffmpeg + + # When not built separately, libffmpeg has no code of + # its own so this QA check raises a false positive. + QA_FLAGS_IGNORED+=" usr/$(get_libdir)/chromium/.*" + fi + fi + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" + + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override +} diff --git a/media-video/ffmpeg/ffmpeg-9999.ebuild b/media-video/ffmpeg/ffmpeg-9999.ebuild index 7e4387880715..8266db290460 100644 --- a/media-video/ffmpeg/ffmpeg-9999.ebuild +++ b/media-video/ffmpeg/ffmpeg-9999.ebuild @@ -64,7 +64,7 @@ LICENSE=" samba? ( GPL-3 ) " if [ "${PV#9999}" = "${PV}" ] ; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" fi # Options to use as use_enable in the foo[:bar] form. @@ -126,11 +126,16 @@ ARM_CPU_FEATURES=( ) ARM_CPU_REQUIRED_USE=" arm64? ( cpu_flags_arm_v8 ) - cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) - cpu_flags_arm_neon? ( cpu_flags_arm_thumb2 cpu_flags_arm_vfp ) + cpu_flags_arm_v8? ( cpu_flags_arm_vfpv3 cpu_flags_arm_neon ) + cpu_flags_arm_neon? ( + cpu_flags_arm_vfp + arm? ( cpu_flags_arm_thumb2 ) + ) cpu_flags_arm_vfpv3? ( cpu_flags_arm_vfp ) cpu_flags_arm_thumb2? ( cpu_flags_arm_v6 ) - cpu_flags_arm_v6? ( cpu_flags_arm_thumb ) + cpu_flags_arm_v6? ( + arm? ( cpu_flags_arm_thumb ) + ) " MIPS_CPU_FEATURES=( mipsdspr1:mipsdsp mipsdspr2 mipsfpu ) PPC_CPU_FEATURES=( cpu_flags_ppc_altivec:altivec cpu_flags_ppc_vsx:vsx cpu_flags_ppc_vsx2:power8 ) @@ -233,7 +238,7 @@ RDEPEND=" libcaca? ( >=media-libs/libcaca-0.99_beta18-r1[${MULTILIB_USEDEP}] ) libdrm? ( x11-libs/libdrm[${MULTILIB_USEDEP}] ) libilbc? ( >=media-libs/libilbc-2[${MULTILIB_USEDEP}] ) - libplacebo? ( >=media-libs/libplacebo-4.192.0[$MULTILIB_USEDEP] ) + libplacebo? ( >=media-libs/libplacebo-4.192.0:=[$MULTILIB_USEDEP] ) librtmp? ( >=media-video/rtmpdump-2.4_p20131018[${MULTILIB_USEDEP}] ) libsoxr? ( >=media-libs/soxr-0.1.0[${MULTILIB_USEDEP}] ) libtesseract? ( >=app-text/tesseract-4.1.0-r1[${MULTILIB_USEDEP}] ) @@ -247,7 +252,7 @@ RDEPEND=" opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) opengl? ( >=virtual/opengl-7.0-r1[${MULTILIB_USEDEP}] ) opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) - pulseaudio? ( >=media-sound/pulseaudio-2.1-r1[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) qsv? ( media-libs/oneVPL[${MULTILIB_USEDEP}] ) rubberband? ( >=media-libs/rubberband-1.8.1-r1[${MULTILIB_USEDEP}] ) samba? ( >=net-fs/samba-3.6.23-r1[client,${MULTILIB_USEDEP}] ) @@ -272,7 +277,7 @@ RDEPEND=" >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] ) vpx? ( >=media-libs/libvpx-1.4.0:=[${MULTILIB_USEDEP}] ) - vulkan? ( >=media-libs/vulkan-loader-1.2.189:=[${MULTILIB_USEDEP}] ) + vulkan? ( >=media-libs/vulkan-loader-1.3.255:=[${MULTILIB_USEDEP}] ) X? ( >=x11-libs/libX11-1.6.2[${MULTILIB_USEDEP}] >=x11-libs/libXext-1.3.2[${MULTILIB_USEDEP}] @@ -286,14 +291,15 @@ RDEPEND=" " RDEPEND="${RDEPEND} - openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) - !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) + openssl? ( >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}] ) + !openssl? ( gnutls? ( >=net-libs/gnutls-2.12.23-r6:=[${MULTILIB_USEDEP}] ) ) " DEPEND="${RDEPEND} amf? ( media-libs/amf-headers ) ladspa? ( >=media-libs/ladspa-sdk-1.13-r2[${MULTILIB_USEDEP}] ) v4l? ( sys-kernel/linux-headers ) + vulkan? ( >=dev-util/vulkan-headers-1.3.255 ) " # += for verify-sig above @@ -479,9 +485,6 @@ multilib_src_configure() { if tc-is-cross-compiler ; then myconf+=( --enable-cross-compile --arch=$(tc-arch-kernel) --cross-prefix=${CHOST}- --host-cc="$(tc-getBUILD_CC)" ) case ${CHOST} in - *freebsd*) - myconf+=( --target-os=freebsd ) - ;; *mingw32*) myconf+=( --target-os=mingw32 ) ;; @@ -594,5 +597,5 @@ multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" - use amf && doenvd "${FILESDIR}"/amf-env-vulkan-override + use amf && newenvd "${FILESDIR}"/amf-env-vulkan-override 99amf-env-vulkan-override } diff --git a/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch b/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch deleted file mode 100644 index ce552893d19b..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-4.2.7-libsdl2-new-version-scheme.patch +++ /dev/null @@ -1,26 +0,0 @@ -https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/839f98ff6719cf2db0cbd88cd787a1b19b9cbf47 - -From 839f98ff6719cf2db0cbd88cd787a1b19b9cbf47 Mon Sep 17 00:00:00 2001 -From: Christopher Degawa <ccom@randomderp.com> -Date: Wed, 11 May 2022 15:11:04 -0500 -Subject: [PATCH] configure: extend SDL check to accept all 2.x versions - -sdl2 recently changed their versioning, moving the patch level to minor level -https://github.com/libsdl-org/SDL/commit/cd7c2f1de7d9e418bb554047d714dd7cacc020ff -and have said that they will instead ship sdl3.pc for 3.0.0 - -Fixes ticket 9768 - -Signed-off-by: Christopher Degawa <ccom@randomderp.com> -Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro> ---- a/configure -+++ b/configure -@@ -6383,7 +6383,7 @@ fi - - if enabled sdl2; then - SDL2_CONFIG="${cross_prefix}sdl2-config" -- test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 2.1.0" SDL_events.h SDL_PollEvent -+ test_pkg_config sdl2 "sdl2 >= 2.0.1 sdl2 < 3.0.0" SDL_events.h SDL_PollEvent - if disabled sdl2 && "${SDL2_CONFIG}" --version > /dev/null 2>&1; then - sdl2_cflags=$("${SDL2_CONFIG}" --cflags) - sdl2_extralibs=$("${SDL2_CONFIG}" --libs) diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch b/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch new file mode 100644 index 000000000000..c9c180f06641 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch @@ -0,0 +1,44 @@ +https://bugs.gentoo.org/907478 +https://bugs.gentoo.org/907493 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=c3c8f97a9804b4234e97f13b0057ffc2c9af27c0 + +From c3c8f97a9804b4234e97f13b0057ffc2c9af27c0 Mon Sep 17 00:00:00 2001 +From: Christopher Degawa <christopher.degawa@intel.com> +Date: Thu, 20 Oct 2022 22:55:27 -0500 +Subject: [PATCH] avcodec/libsvtav1: remove compressed_ten_bit_format and + simplify alloc_buffer + +compressed_ten_bit_format has been deprecated upstream and has no effect +and can be removed. Plus, technically it was never used in the first place +since it would require the app (ffmpeg) to set it and do additional +processing of the input frames. + +Also simplify alloc_buffer by removing calculations relating to the +non-existant processing. + +Signed-off-by: Christopher Degawa <christopher.degawa@intel.com> +(cherry picked from commit 031f1561cd286596cdb374da32f8aa816ce3b135) +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -120,16 +120,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err, + + static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) + { +- const int pack_mode_10bit = +- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; +- const size_t luma_size_8bit = +- config->source_width * config->source_height * (1 << pack_mode_10bit); +- const size_t luma_size_10bit = +- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; ++ const size_t luma_size = config->source_width * config->source_height * ++ (config->encoder_bit_depth > 8 ? 2 : 1); + + EbSvtIOFormat *in_data; + +- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; ++ svt_enc->raw_size = luma_size * 3 / 2; + + // allocate buffer for in and out + svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); +-- +2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch new file mode 100644 index 000000000000..f3766bb69f50 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-4.4.4-wint-conversion-vulkan.patch @@ -0,0 +1,30 @@ +https://bugs.gentoo.org/903752 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=cc76e8340d28438c1ac56ee7dfd774d25e944264 + +(Dropped second bit for vulkan.h as has changed significantly in >4.4.) + +From cc76e8340d28438c1ac56ee7dfd774d25e944264 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com> +Date: Thu, 2 Mar 2023 17:27:30 +0100 +Subject: [PATCH] lavu/vulkan: fix handle type for 32-bit targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +Fixes compilation with clang which errors out on Wint-conversion. + +Signed-off-by: Kacper Michajłow <kasper93@gmail.com> +Signed-off-by: Martin Storsjö <martin@martin.st> +--- a/libavutil/hwcontext_vulkan.c ++++ b/libavutil/hwcontext_vulkan.c +@@ -1149,7 +1149,7 @@ static void free_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd) + + av_freep(&cmd->queues); + av_freep(&cmd->bufs); +- cmd->pool = NULL; ++ cmd->pool = VK_NULL_HANDLE; + } + + static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd) + + diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch deleted file mode 100644 index d7ce57350e4e..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-5.1.2-vulkan.patch +++ /dev/null @@ -1,33 +0,0 @@ -From eb0455d64690eed0068e5cb202f72ecdf899837c Mon Sep 17 00:00:00 2001 -From: Lynne <dev@lynne.ee> -Date: Sun, 25 Dec 2022 01:03:30 +0100 -Subject: [PATCH] hwcontext_vulkan: remove optional encode/decode extensions - from the list - -They're not currently used, so they don't need to be there. -Vulkan stabilized the decode extensions less than a week ago, and their -name prefixes were changed from EXT to KHR. It's a bit too soon to be -depending on it, so rather than bumping, just remove these for now. ---- - libavutil/hwcontext_vulkan.c | 8 -------- - 1 file changed, 8 deletions(-) - -diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c -index f1db1c7291f1..2a9b5f4aac62 100644 ---- a/libavutil/hwcontext_vulkan.c -+++ b/libavutil/hwcontext_vulkan.c -@@ -358,14 +358,6 @@ static const VulkanOptExtension optional_device_exts[] = { - { VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_MEMORY }, - { VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME, FF_VK_EXT_EXTERNAL_WIN32_SEM }, - #endif -- -- /* Video encoding/decoding */ -- { VK_KHR_VIDEO_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, -- { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, -- { VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, -- { VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, -- { VK_EXT_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, -- { VK_EXT_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_NO_FLAG }, - }; - - /* Converts return values to strings */ diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch new file mode 100644 index 000000000000..7031d1f02ccf --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch @@ -0,0 +1,76 @@ +https://bugs.gentoo.org/911582 +https://trac.ffmpeg.org/ticket/10405 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e +https://sourceware.org/PR30578 +https://gcc.gnu.org/PR108941 + +From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer <jamrial@gmail.com> +(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb) +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch new file mode 100644 index 000000000000..51a8cb02d7b5 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-fix-build-svt-av1-1.5.0.patch @@ -0,0 +1,81 @@ +https://bugs.gentoo.org/907478 +https://bugs.gentoo.org/907493 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=bea695d54372b66a6b9b136982fc92adb63e4745 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=3344d47a88506aba060b5fd2a214cf7785b11483 + +From bea695d54372b66a6b9b136982fc92adb63e4745 Mon Sep 17 00:00:00 2001 +From: Christopher Degawa <christopher.degawa@intel.com> +Date: Thu, 20 Oct 2022 22:55:28 -0500 +Subject: [PATCH] avcodec/libsvtav1: replace vbv_bufsize with + maximum_buffer_size_ms + +svt-av1 v1.2.0 has deprecated vbv_bufsize in favor of using +- maximum_buffer_size_ms (--buf-sz) +- starting_buffer_level_ms (--buf-initial-sz) +- optimal_buffer_level_ms (--buf-optimal-sz) + +and vbv_bufsize has not been in use since svt-av1 v0.8.6 + +Signed-off-by: Christopher Degawa <christopher.degawa@intel.com> +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -183,7 +183,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; +- param->vbv_bufsize = avctx->rc_buffer_size; ++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; +@@ -300,7 +300,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, + avctx->bit_rate = param->rate_control_mode > 0 ? + param->target_bit_rate : 0; + avctx->rc_max_rate = param->max_bit_rate; +- avctx->rc_buffer_size = param->vbv_bufsize; ++ avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL; + + if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { + AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx); +-- +2.30.2 + +From 3344d47a88506aba060b5fd2a214cf7785b11483 Mon Sep 17 00:00:00 2001 +From: Christopher Degawa <christopher.degawa@intel.com> +Date: Thu, 20 Oct 2022 22:55:27 -0500 +Subject: [PATCH] avcodec/libsvtav1: remove compressed_ten_bit_format and + simplify alloc_buffer + +compressed_ten_bit_format has been deprecated upstream and has no effect +and can be removed. Plus, technically it was never used in the first place +since it would require the app (ffmpeg) to set it and do additional +processing of the input frames. + +Also simplify alloc_buffer by removing calculations relating to the +non-existant processing. + +Signed-off-by: Christopher Degawa <christopher.degawa@intel.com> +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -124,16 +124,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err, + + static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) + { +- const int pack_mode_10bit = +- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; +- const size_t luma_size_8bit = +- config->source_width * config->source_height * (1 << pack_mode_10bit); +- const size_t luma_size_10bit = +- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; ++ const size_t luma_size = config->source_width * config->source_height * ++ (config->encoder_bit_depth > 8 ? 2 : 1); + + EbSvtIOFormat *in_data; + +- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; ++ svt_enc->raw_size = luma_size * 3 / 2; + + // allocate buffer for in and out + svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); +-- +2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch new file mode 100644 index 000000000000..fb905f714fa3 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-5.1.3-svt-av1.patch @@ -0,0 +1,67 @@ +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=8fe2fec45321d1b82f98f9725ad9118cefcfa58d +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=e5b5dd66535f444451e0fee59247b224d866f334 + +From 8fe2fec45321d1b82f98f9725ad9118cefcfa58d Mon Sep 17 00:00:00 2001 +From: Christopher Degawa <ccom@randomderp.com> +Date: Sun, 20 Nov 2022 13:07:36 -0600 +Subject: [PATCH] avcodec/libsvtav1: only set max_buf_sz if both bitrate and + rc_buf_sz is set + +maximum_buffer_size_ms should only be set if both are specified or if +the user sets it through -svtav1-params buf-sz=val + +Signed-off-by: Christopher Degawa <ccom@randomderp.com> +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -179,7 +179,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; +- param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; ++ if (avctx->bit_rate && avctx->rc_buffer_size) ++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; +-- +2.30.2 + +From e5b5dd66535f444451e0fee59247b224d866f334 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Jan=20Ekstr=C3=B6m?= <jeebjp@gmail.com> +Date: Thu, 9 Mar 2023 20:27:06 +0200 +Subject: [PATCH] avcodec/libsvtav1: use larger of bit rate and max rate for + buffer size + +Generally if maxrate is set, the calculation should be maxrate over +bufsize. This additionally enables CRF + maxrate & bufsize usage. + +In order to keep negative values from enabling zero to be treated +as larger and causing a division by zero, check that one of the +variables is larger than zero. +--- a/libavcodec/libsvtav1.c ++++ b/libavcodec/libsvtav1.c +@@ -179,8 +179,10 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; +- if (avctx->bit_rate && avctx->rc_buffer_size) +- param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; ++ if ((avctx->bit_rate > 0 || avctx->rc_max_rate > 0) && avctx->rc_buffer_size) ++ param->maximum_buffer_size_ms = ++ avctx->rc_buffer_size * 1000LL / ++ FFMAX(avctx->bit_rate, avctx->rc_max_rate); + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; +@@ -297,7 +299,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param, + avctx->bit_rate = param->rate_control_mode > 0 ? + param->target_bit_rate : 0; + avctx->rc_max_rate = param->max_bit_rate; +- avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL; ++ avctx->rc_buffer_size = param->maximum_buffer_size_ms * ++ FFMAX(avctx->bit_rate, avctx->rc_max_rate) / 1000LL; + + if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { + AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx); +-- +2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch b/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch new file mode 100644 index 000000000000..a06b9119666f --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch @@ -0,0 +1,76 @@ +https://bugs.gentoo.org/911582 +https://trac.ffmpeg.org/ticket/10405 +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=cc703cf60759d9798f440a9417e4efa2fcbe2747 +https://sourceware.org/PR30578 +https://gcc.gnu.org/PR108941 + +From cc703cf60759d9798f440a9417e4efa2fcbe2747 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> +Date: Sun, 16 Jul 2023 18:18:02 +0300 +Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift + instructions within inline assembly + +Fixes assembling with binutil as >= 2.41 + +Signed-off-by: James Almer <jamrial@gmail.com> +(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb) +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch b/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch new file mode 100644 index 000000000000..ca05c1c56ea4 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-6.0-libplacebo-remove-deprecated-field.patch @@ -0,0 +1,103 @@ +Bug: https://bugs.gentoo.org/910406 + +Backports the following two commits: + https://github.com/FFmpeg/FFmpeg/commit/11eca6018c40f5ebe6af93cbc4b4dce447d8b3bc + https://github.com/FFmpeg/FFmpeg/commit/1231003c3c6d4839a9e838d06f8e16ee7690958f + +--- a/doc/filters.texi ++++ b/doc/filters.texi +@@ -16242,9 +16242,6 @@ + @item disable_builtin + Disable built-in GPU sampling (forces LUT). + +-@item force_icc_lut +-Force the use of a full ICC 3DLUT for gamut mapping. +- + @item disable_fbos + Forcibly disable FBOs, resulting in loss of almost all functionality, but + offering the maximum possible speed. +--- a/libavfilter/version_major.h ++++ b/libavfilter/version_major.h +@@ -35,4 +35,6 @@ + * the public API and may change, break or disappear at any time. + */ + ++#define FF_API_LIBPLACEBO_OPTS (LIBAVFILTER_VERSION_MAJOR < 10) ++ + #endif /* AVFILTER_VERSION_MAJOR_H */ +--- a/libavfilter/vf_libplacebo.c ++++ b/libavfilter/vf_libplacebo.c +@@ -97,7 +97,6 @@ + float polar_cutoff; + int disable_linear; + int disable_builtin; +- int force_icc_lut; + int force_dither; + int disable_fbos; + +@@ -132,11 +131,15 @@ + int inverse_tonemapping; + float crosstalk; + int tonemapping_lut_size; ++ ++#if FF_API_LIBPLACEBO_OPTS + /* for backwards compatibility */ + float desat_str; + float desat_exp; + int gamut_warning; + int gamut_clipping; ++ int force_icc_lut; ++#endif + + /* pl_dither_params */ + int dithering; +@@ -380,6 +383,7 @@ + pl_rect2df_aspect_set(&target.crop, aspect, s->pad_crop_ratio); + } + ++#if FF_API_LIBPLACEBO_OPTS + /* backwards compatibility with older API */ + if (!tonemapping_mode && (s->desat_str >= 0.0f || s->desat_exp >= 0.0f)) { + float str = s->desat_str < 0.0f ? 0.9f : s->desat_str; +@@ -397,6 +401,7 @@ + gamut_mode = PL_GAMUT_WARN; + if (s->gamut_clipping) + gamut_mode = PL_GAMUT_DESATURATE; ++#endif + + /* Update render params */ + params = (struct pl_render_params) { +@@ -458,7 +463,6 @@ + .polar_cutoff = s->polar_cutoff, + .disable_linear_scaling = s->disable_linear, + .disable_builtin_scalers = s->disable_builtin, +- .force_icc_lut = s->force_icc_lut, + .force_dither = s->force_dither, + .disable_fbos = s->disable_fbos, + }; +@@ -818,11 +822,14 @@ + { "inverse_tonemapping", "Inverse tone mapping (range expansion)", OFFSET(inverse_tonemapping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { "tonemapping_crosstalk", "Crosstalk factor for tone-mapping", OFFSET(crosstalk), AV_OPT_TYPE_FLOAT, {.dbl = 0.04}, 0.0, 0.30, DYNAMIC }, + { "tonemapping_lut_size", "Tone-mapping LUT size", OFFSET(tonemapping_lut_size), AV_OPT_TYPE_INT, {.i64 = 256}, 2, 1024, DYNAMIC }, ++ ++#if FF_API_LIBPLACEBO_OPTS + /* deprecated options for backwards compatibility, defaulting to -1 to not override the new defaults */ + { "desaturation_strength", "Desaturation strength", OFFSET(desat_str), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 1.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, + { "desaturation_exponent", "Desaturation exponent", OFFSET(desat_exp), AV_OPT_TYPE_FLOAT, {.dbl = -1.0}, -1.0, 10.0, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, + { "gamut_warning", "Highlight out-of-gamut colors", OFFSET(gamut_warning), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, + { "gamut_clipping", "Enable colorimetric gamut clipping", OFFSET(gamut_clipping), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, ++#endif + + { "dithering", "Dither method to use", OFFSET(dithering), AV_OPT_TYPE_INT, {.i64 = PL_DITHER_BLUE_NOISE}, -1, PL_DITHER_METHOD_COUNT - 1, DYNAMIC, "dither" }, + { "none", "Disable dithering", 0, AV_OPT_TYPE_CONST, {.i64 = -1}, 0, 0, STATIC, "dither" }, +@@ -847,7 +854,9 @@ + { "polar_cutoff", "Polar LUT cutoff", OFFSET(polar_cutoff), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0.0, 1.0, DYNAMIC }, + { "disable_linear", "Disable linear scaling", OFFSET(disable_linear), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { "disable_builtin", "Disable built-in scalers", OFFSET(disable_builtin), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, +- { "force_icc_lut", "Force the use of a full ICC 3DLUT for color mapping", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, ++#if FF_API_LIBPLACEBO_OPTS ++ { "force_icc_lut", "Deprecated, does nothing", OFFSET(force_icc_lut), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC | AV_OPT_FLAG_DEPRECATED }, ++#endif + { "force_dither", "Force dithering", OFFSET(force_dither), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { "disable_fbos", "Force-disable FBOs", OFFSET(disable_fbos), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, DYNAMIC }, + { NULL }, diff --git a/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch new file mode 100644 index 000000000000..2c71a189329a --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch @@ -0,0 +1,43 @@ +https://git.videolan.org/?p=ffmpeg.git;a=commit;h=58f18df430d48e47a82c5e740d6e63a50c97d75f + +From 58f18df430d48e47a82c5e740d6e63a50c97d75f Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Kacper=20Michaj=C5=82ow?= <kasper93@gmail.com> +Date: Thu, 2 Mar 2023 17:27:30 +0100 +Subject: [PATCH] lavu/vulkan: fix handle type for 32-bit targets +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +Fixes compilation with clang which errors out on Wint-conversion. + +Signed-off-by: Kacper MichajÃ…ow <kasper93@gmail.com> +Signed-off-by: Martin Storsjö <martin@martin.st> +(cherry picked from commit cc76e8340d28438c1ac56ee7dfd774d25e944264) +Signed-off-by: Martin Storsjö <martin@martin.st> +--- a/libavutil/hwcontext_vulkan.c ++++ b/libavutil/hwcontext_vulkan.c +@@ -1149,7 +1149,7 @@ static void free_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd) + + av_freep(&cmd->queues); + av_freep(&cmd->bufs); +- cmd->pool = NULL; ++ cmd->pool = VK_NULL_HANDLE; + } + + static VkCommandBuffer get_buf_exec_ctx(AVHWFramesContext *hwfc, VulkanExecCtx *cmd) +--- a/libavutil/vulkan.h ++++ b/libavutil/vulkan.h +@@ -122,7 +122,11 @@ typedef struct FFVulkanPipeline { + VkDescriptorSetLayout *desc_layout; + VkDescriptorPool desc_pool; + VkDescriptorSet *desc_set; ++#if VK_USE_64_BIT_PTR_DEFINES == 1 + void **desc_staging; ++#else ++ uint64_t *desc_staging; ++#endif + VkDescriptorSetLayoutBinding **desc_binding; + VkDescriptorUpdateTemplate *desc_template; + int *desc_set_initialized; +-- +2.30.2 diff --git a/media-video/ffmpeg/metadata.xml b/media-video/ffmpeg/metadata.xml index 54cb9b3546d3..88482e70770c 100644 --- a/media-video/ffmpeg/metadata.xml +++ b/media-video/ffmpeg/metadata.xml @@ -72,7 +72,6 @@ <flag name="vidstab">Enables video stabilization filter using vid.stab library (<pkg>media-libs/vidstab</pkg>).</flag> <flag name="vmaf">Enables Netflix's perceptual video quality assessment filter using the library (<pkg>media-libs/libvmaf</pkg>).</flag> <flag name="vpx">Enables VP8 and VP9 codec support using libvpx: Decoding does not require this to be enabled but libvpx can also be used for decoding; encoding requires this useflag to be enabled though.</flag> - <flag name="vulkan">Enables support for the vulkan API for GPU offload.</flag> <flag name="x265">Enables HEVC encoding with <pkg>media-libs/x265</pkg>.</flag> <flag name="zeromq">Enables <pkg>net-libs/zeromq</pkg> support with the zmq/azmq filters.</flag> <flag name="zimg">Enables <pkg>media-libs/zimg</pkg> based scale filter.</flag> diff --git a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild deleted file mode 100644 index 009948d53ef0..000000000000 --- a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake - -DESCRIPTION="Lightweight video thumbnailer that can be used by file managers" -HOMEPAGE="https://github.com/dirkvdb/ffmpegthumbnailer" -SRC_URI="https://github.com/dirkvdb/${PN}/releases/download/${PV}/${P}.tar.bz2" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86" -IUSE="gnome gtk jpeg png test" -RESTRICT="!test? ( test )" - -REQUIRED_USE="gnome? ( gtk ) - test? ( png jpeg )" - -BDEPEND=" - virtual/pkgconfig -" -RDEPEND=" - gtk? ( dev-libs/glib:2= ) - jpeg? ( virtual/jpeg:0= ) - >=media-video/ffmpeg-2.7:0= - png? ( media-libs/libpng:0= ) -" -DEPEND="${RDEPEND}" - -DOCS=( AUTHORS ChangeLog README.md ) - -src_prepare() { - rm -rf out* || die - - cmake_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DENABLE_GIO=$(usex gtk) - -DENABLE_TESTS=$(usex test) - -DENABLE_THUMBNAILER=$(usex gnome) - -DHAVE_JPEG=$(usex jpeg) - -DHAVE_PNG=$(usex png) - ) - cmake_src_configure -} diff --git a/media-video/gaupol/gaupol-1.12.ebuild b/media-video/gaupol/gaupol-1.12.ebuild index 17ce40934060..d82300acb79b 100644 --- a/media-video/gaupol/gaupol-1.12.ebuild +++ b/media-video/gaupol/gaupol-1.12.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://github.com/otsaloma/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" +KEYWORDS="amd64 arm64 x86" IUSE="spell" RDEPEND=" diff --git a/media-video/gnome-video-effects/Manifest b/media-video/gnome-video-effects/Manifest index d42f464b53c9..b5f216855ce8 100644 --- a/media-video/gnome-video-effects/Manifest +++ b/media-video/gnome-video-effects/Manifest @@ -1 +1,2 @@ DIST gnome-video-effects-0.5.0.tar.xz 85424 BLAKE2B 6c3aad12bd3f7c00a0f800d62df0144a4ca1318dbcb771f038f83fd82e252ba79aba379f57dd259c41dac3ba197dd98f52b944b018e39a419bb48b77e3a1d475 SHA512 48d68984913e6732a097b4f235671ecb3442945ec843accfae4b4526ecd27641831a847ea193ac1e13a452700c4a76fa15fa84c2293cbaf7b1b2f4d1b85487ce +DIST gnome-video-effects-0.6.0.tar.xz 91564 BLAKE2B d08e2bc09dc85371290c059a9adc05b5ba602a38bc0884167f3afb4d731fbe78719270cd320203ed17fcc545d012b87b26d3f83cb6f48476e70f42d65a5861ca SHA512 e5a87fd134adc1dce1422d20c47cb87ccbad99841672563ef393ea3816a7fa0a3c865d9fc16047e8fa0eccc8388c019b5a2f91844dc3e448e353bf1ad7a39c21 diff --git a/media-video/gnome-video-effects/gnome-video-effects-0.5.0.ebuild b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild index 26995771fc03..9046f8687f34 100644 --- a/media-video/gnome-video-effects/gnome-video-effects-0.5.0.ebuild +++ b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -15,7 +15,6 @@ KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86" DEPEND="" RDEPEND="" BDEPEND=" - >=dev-util/intltool-0.40.0 >=sys-devel/gettext-0.17 " diff --git a/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild b/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild new file mode 100644 index 000000000000..4d2d08a10081 --- /dev/null +++ b/media-video/gnome-video-effects/gnome-video-effects-0.6.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit gnome.org meson optfeature + +DESCRIPTION="Effects for Cheese, the webcam video and picture application" +HOMEPAGE="https://wiki.gnome.org/Projects/GnomeVideoEffects" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" + +DEPEND="" +RDEPEND="" +BDEPEND=" + >=sys-devel/gettext-0.17 +" + +# This ebuild does not install any binaries +RESTRICT="binchecks strip" + +pkg_postinst() { + optfeature "Scanline video effect" media-plugins/frei0r-plugins +} diff --git a/media-video/gpac/Manifest b/media-video/gpac/Manifest index 5b4301b8344a..59e0c115eaf8 100644 --- a/media-video/gpac/Manifest +++ b/media-video/gpac/Manifest @@ -1,2 +1,3 @@ DIST gpac-2.0.0.tar.gz 11362932 BLAKE2B a8489831efb77c374d13e2edb3951e60a94907c4cd8601919e1390aee0e9002249e97a9200fd006c2aa783c516f701f7695aa84b5f3596a3bc90290916ff4086 SHA512 e95e6d78167fc306917b3ac89e56ba511bbcb0c825da118f5ba374504499352104b5c1f3ee71e7ec018015b8e302f9b07162d22287ddb21c8564b097d900913f DIST gpac-2.2.0.tar.gz 11376708 BLAKE2B f50c131912787c274a5b2d37e242e37ddd07f2c6eab3a932ec243f0fc36aeb06d4f16fd861eb3534f93534c291c55fddc2bcd1f573d2ed186e17464512a1f089 SHA512 4ac63a79a5d1057aadb59429af84ca9e4e0c0b863b19beafb60bd1c30425357dec45b5d6d48d452eb94002b059c9eb0c7bb0cc14222194f641604f964b3207c2 +DIST gpac-2.2.1.tar.gz 11377184 BLAKE2B 44b47459da0f203d0e4c0eed5836a59f44fb508db4e601b46e9ffdb53d89bb49e22ccdfe7951b17581130f186c47ae8efc0d9002685d5cf9a3547159356d2d9e SHA512 873df4c2fdc3594a0f3bce66d511cee14669643042ab1ca8d7f370ad3f50636c32c31f79818051d00bf844de30a5533ae30c81ed168baf2626a152771b6a6845 diff --git a/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch b/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch new file mode 100644 index 000000000000..695852847395 --- /dev/null +++ b/media-video/gpac/files/gpac-2.2.0-ffmpeg6-deux.patch @@ -0,0 +1,46 @@ +https://bugs.gentoo.org/903550 + +From ba14e34dd7a3c4cef5a56962898e9f863dd4b4f3 Mon Sep 17 00:00:00 2001 +From: jeanlf <jeanlf@gpac.io> +Date: Mon, 13 Mar 2023 09:43:52 +0100 +Subject: [PATCH] fixed compil with ffmpeg 6 - cf #2406 + +--- a/src/filters/ff_mx.c ++++ b/src/filters/ff_mx.c +@@ -503,7 +503,11 @@ static GF_Err ffmx_close_seg(GF_Filter *filter, GF_FFMuxCtx *ctx, Bool send_evt_ + evt.seg_size.is_init = 0; + } + evt.seg_size.media_range_start = ctx->offset_at_seg_start; ++#if LIBAVFORMAT_VERSION_MAJOR >= 60 + evt.seg_size.media_range_end = ctx->muxer->pb ? (ctx->muxer->pb->bytes_written-1) : 0; ++#else ++ evt.seg_size.media_range_end = ctx->muxer->pb ? (ctx->muxer->pb->written-1) : 0; ++#endif + ctx->offset_at_seg_start = evt.seg_size.media_range_end; + + gf_filter_pid_send_event(pid, &evt); +@@ -1013,13 +1017,21 @@ static GF_Err ffmx_configure_pid(GF_Filter *filter, GF_FilterPid *pid, Bool is_r + ff_codec_id = ffmpeg_codecid_from_gpac(codec_id, &ff_codec_tag); + } + ++ ++ res = 1; ++#if LIBAVFORMAT_VERSION_MAJOR < 60 + if (ctx->muxer->oformat) { + res = avformat_query_codec(ctx->muxer->oformat, ff_codec_id, 1); +- if (!res) { +- GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[FFMux] Codec %s not supported in container %s\n", gf_codecid_name(codec_id), ctx->muxer->oformat->name)); +- return GF_NOT_SUPPORTED; +- } + } ++#else ++ res = avformat_query_codec(ctx->muxer->oformat, ff_codec_id, FF_COMPLIANCE_NORMAL); ++#endif ++ ++ if (!res) { ++ GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("[FFMux] Codec %s not supported in container %s\n", gf_codecid_name(codec_id), ctx->muxer->oformat->name)); ++ return GF_NOT_SUPPORTED; ++ } ++ + const AVCodec *c = avcodec_find_decoder(ff_codec_id); + if (!c) return GF_NOT_SUPPORTED; diff --git a/media-video/gpac/gpac-2.2.0.ebuild b/media-video/gpac/gpac-2.2.0.ebuild index d8ee67521cd8..f99b1f15a15f 100644 --- a/media-video/gpac/gpac-2.2.0.ebuild +++ b/media-video/gpac/gpac-2.2.0.ebuild @@ -8,7 +8,7 @@ if [[ ${PV} == *9999 ]] ; then EGIT_REPO_URI="https://github.com/gpac/gpac" else SRC_URI="https://github.com/gpac/gpac/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86" + KEYWORDS="~alpha amd64 ~ppc ppc64 ~sparc x86" fi inherit toolchain-funcs ${SCM} xdg @@ -66,6 +66,7 @@ PATCHES=( "${FILESDIR}/${PN}-2.2.0-configure.patch" "${FILESDIR}/${PN}-1.0.0-zlib-compile.patch" "${FILESDIR}/${PN}-2.2.0-ffmpeg6.patch" + "${FILESDIR}/${PN}-2.2.0-ffmpeg6-deux.patch" ) DOCS=( diff --git a/media-video/gpac/gpac-2.2.1-r1.ebuild b/media-video/gpac/gpac-2.2.1-r1.ebuild new file mode 100644 index 000000000000..fc002d795023 --- /dev/null +++ b/media-video/gpac/gpac-2.2.1-r1.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} == *9999 ]] ; then + SCM="git-r3" + EGIT_REPO_URI="https://github.com/gpac/gpac" +else + SRC_URI="https://github.com/gpac/gpac/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86" +fi + +inherit toolchain-funcs ${SCM} xdg + +DESCRIPTION="Implementation of the MPEG-4 Systems standard developed from scratch in ANSI C" +HOMEPAGE="https://gpac.wp.imt.fr/" + +LICENSE="GPL-2" +# subslot == libgpac major +SLOT="0/11" +IUSE="a52 aac alsa cpu_flags_x86_sse2 debug dvb ffmpeg jack jpeg jpeg2k mad opengl oss png + pulseaudio sdl ssl static-libs theora truetype vorbis xml xvid X" + +BDEPEND="virtual/pkgconfig" +RDEPEND=" + media-libs/libogg + sys-libs/zlib + a52? ( media-libs/a52dec ) + aac? ( media-libs/faad2 ) + alsa? ( media-libs/alsa-lib ) + ffmpeg? ( media-video/ffmpeg:0= ) + jack? ( virtual/jack ) + jpeg? ( media-libs/libjpeg-turbo:0= ) + jpeg2k? ( media-libs/openjpeg:2 ) + mad? ( media-libs/libmad ) + opengl? ( + media-libs/freeglut + virtual/glu + virtual/opengl + ) + png? ( media-libs/libpng:0= ) + pulseaudio? ( media-libs/libpulse ) + theora? ( media-libs/libtheora ) + truetype? ( media-libs/freetype:2 ) + sdl? ( media-libs/libsdl ) + ssl? ( + dev-libs/openssl:0= + ) + vorbis? ( media-libs/libvorbis ) + X? ( + x11-libs/libXt + x11-libs/libX11 + x11-libs/libXv + x11-libs/libXext + ) + xml? ( dev-libs/libxml2:2= ) + xvid? ( media-libs/xvid ) +" +DEPEND=" + ${RDEPEND} + dvb? ( sys-kernel/linux-headers ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.2.0-configure.patch" + "${FILESDIR}/${PN}-1.0.0-zlib-compile.patch" + "${FILESDIR}/${PN}-2.2.0-ffmpeg6.patch" + "${FILESDIR}/${PN}-2.2.0-ffmpeg6-deux.patch" +) + +DOCS=( + share/doc/CODING_STYLE + share/doc/GPAC\ UPnP.doc + share/doc/ISO\ 639-2\ codes.txt + share/doc/SceneGenerators + share/doc/ipmpx_syntax.bt + Changelog + README.md +) + +my_use() { + local flag="$1" pflag="${2:-$1}" + if use ${flag}; then + echo "--use-${pflag}=system" + else + echo "--use-${pflag}=no" + fi +} + +src_configure() { + tc-export CC CXX AR RANLIB + + local myeconfargs=( + --cc="$(tc-getCC)" + --libdir="$(get_libdir)" + --verbose + --enable-pic + --enable-svg + --use-ogg=system + $(use_enable alsa) + $(use_enable debug) + $(use_enable dvb dvb4linux) + $(use_enable jack jack yes) + $(use_enable opengl 3d) + $(use_enable oss oss-audio) + $(use_enable pulseaudio pulseaudio yes) + $(use_enable sdl) + $(use_enable ssl) + $(use_enable static-libs static-lib) + $(use_enable X x11) + $(use_enable X x11-shm) + $(use_enable X x11-xv) + $(my_use a52) + $(my_use aac faad) + $(use_enable dvb dvbx) + $(my_use ffmpeg) + $(my_use jpeg) + $(my_use jpeg2k openjpeg) + $(my_use mad) + $(my_use png) + $(my_use theora) + $(my_use truetype freetype) + $(my_use vorbis) + $(my_use xvid) + ) + + if use amd64 || use x86 ; then + # Don't pass -mno-sse2 on non amd64/x86 + myeconfargs+=( + --extra-cflags="${CFLAGS} $(usex cpu_flags_x86_sse2 '-msse2' '-mno-sse2')" + ) + else + myeconfargs+=( + --extra-cflags="${CFLAGS}" + ) + fi + + econf "${myeconfargs[@]}" +} + +src_install() { + einstalldocs + emake STRIP="true" DESTDIR="${ED}" install + emake STRIP="true" DESTDIR="${ED}" install-lib +} diff --git a/media-video/gpac/gpac-9999.ebuild b/media-video/gpac/gpac-9999.ebuild index d8ee67521cd8..f21d8e2a08aa 100644 --- a/media-video/gpac/gpac-9999.ebuild +++ b/media-video/gpac/gpac-9999.ebuild @@ -40,7 +40,7 @@ RDEPEND=" virtual/opengl ) png? ( media-libs/libpng:0= ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) theora? ( media-libs/libtheora ) truetype? ( media-libs/freetype:2 ) sdl? ( media-libs/libsdl ) diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest index 1838ad0338f1..3e8e31e4f65d 100644 --- a/media-video/handbrake/Manifest +++ b/media-video/handbrake/Manifest @@ -1,2 +1,3 @@ DIST handbrake-1.4.2.tar.bz2 15991593 BLAKE2B 966b54d35dd5544800208edc9045eaf26f3253aa470686b9ea29cdf69393af140829b21072133684661fd881eee7f97b90f9c7edfa87f187058dd1b14d1a748b SHA512 ba8ffe01cd813e9991716eabb2844e1ed414e3a2c547154b89588389e96846af9f2dd47f66d735101fdacd5be1928e34e4bab31e6a189779e77001ffdb0b427e DIST handbrake-1.5.1.tar.bz2 16137974 BLAKE2B 9ce1f1ae7b2fe514ba1fb6ed30a345d18144829272a6298f2af0831e5ea7533ef2f8b201fd98389269b0ea12bbba15d0b76f09afeff6ed1d9ed313f20cf8f3a1 SHA512 63c5933f77d417a89512abd278a1d844f2b7a36ec9f8ab664c1a1348fd228ee389fc8e349b2df6cbf5d617b912d4634457ebea86490ff5ed4930f39a90dc7568 +DIST handbrake-1.6.1.tar.bz2 15934833 BLAKE2B 027457c874bd49ff8a625233a5d09d70bdf76c45e6f2664f3ca65efcd0e1705d5575a81c5ac8f2237b8add7025314f12f0a19d6cc7337e2b0edd28c30ee3334b SHA512 e5cc0fee5bf063c4cdb8f64a772dac6800a7214bfdc65042c121e0e81878599fe615b499ebf6466bb78740314374ad8b8fa364fb24ff86852183e7dbbf565617 diff --git a/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch b/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch new file mode 100644 index 000000000000..f9971e508404 --- /dev/null +++ b/media-video/handbrake/files/handbrake-9999-dont-search-for-python.patch @@ -0,0 +1,26 @@ +--- a/configure ++++ b/configure +@@ -14,20 +14,8 @@ inpath() + } + + if ( inpath bash ); then +- pp="" +- for p in python3 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python2 python2.7 python +- do +- if ( inpath $p ); then +- pp="$p" +- break +- fi +- done +- if [ "$pp" != "" ]; then +- exec $pp `dirname $0`/make/configure.py "$@" +- exit 0 +- else +- echo "ERROR: no suitable version of python found." +- fi ++ exec python `dirname $0`/make/configure.py "$@" ++ exit 0 + else + echo "ERROR: bash shell not found." + fi + diff --git a/media-video/handbrake/handbrake-1.4.2-r2.ebuild b/media-video/handbrake/handbrake-1.4.2-r2.ebuild index 618137c80e46..5f5a8b0e7e24 100644 --- a/media-video/handbrake/handbrake-1.4.2-r2.ebuild +++ b/media-video/handbrake/handbrake-1.4.2-r2.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit autotools python-any-r1 toolchain-funcs xdg diff --git a/media-video/handbrake/handbrake-1.5.1.ebuild b/media-video/handbrake/handbrake-1.5.1-r1.ebuild index a5d8c9da21ac..7c9e08992e02 100644 --- a/media-video/handbrake/handbrake-1.5.1.ebuild +++ b/media-video/handbrake/handbrake-1.5.1-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{9..11} ) inherit autotools python-any-r1 toolchain-funcs xdg @@ -14,7 +14,7 @@ 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 ~x86" + KEYWORDS="amd64 ~arm64 ~x86" fi DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" @@ -26,6 +26,7 @@ IUSE="+fdk gstreamer gtk libav-aac numa nvenc x265" REQUIRED_USE="^^ ( fdk libav-aac )" +# < ffmpeg-5.1 dep for bug #907406 RDEPEND=" app-arch/xz-utils dev-libs/jansson:= @@ -46,7 +47,7 @@ RDEPEND=" media-libs/x264:= media-libs/zimg media-sound/lame - >=media-video/ffmpeg-4.2.1:0=[postproc,fdk?] + <media-video/ffmpeg-5.1:=[postproc,fdk?] sys-libs/zlib fdk? ( media-libs/fdk-aac:= ) gstreamer? ( @@ -79,7 +80,6 @@ BDEPEND=" ${PYTHON_DEPS} dev-lang/nasm dev-util/cmake - dev-util/intltool " PATCHES=( diff --git a/media-video/handbrake/handbrake-1.6.1.ebuild b/media-video/handbrake/handbrake-1.6.1.ebuild new file mode 100644 index 000000000000..41a2061311b8 --- /dev/null +++ b/media-video/handbrake/handbrake-1.6.1.ebuild @@ -0,0 +1,163 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit autotools edo python-any-r1 toolchain-funcs xdg + +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 + +DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" +HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+fdk gstreamer gtk numa nvenc x265" # TODO: qsv vce + +REQUIRED_USE="numa? ( x265 )" + +RDEPEND=" + >=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:= + 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 + >=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 + dev-libs/glib:2 + dev-libs/libgudev:= + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/libnotify + x11-libs/pango + ) + nvenc? ( + media-libs/nv-codec-headers + media-video/ffmpeg[nvenc] + ) + x265? ( >=media-libs/x265-3.5-r2:=[10bit,12bit,numa?] ) +" +DEPEND="${RDEPEND}" +# cmake needed for custom script: bug #852701 +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/nasm + dev-util/cmake +" + +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" + + # Detect system tools - bug 738110 + "${FILESDIR}/${PN}-9999-system-tools.patch" + + # Use whichever python is set by portage + "${FILESDIR}/${PN}-9999-dont-search-for-python.patch" + + # Fix x265 linkage... again again #730034 + "${FILESDIR}/${PN}-1.3.3-x265-link.patch" +) + +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." + + default + + cd "${S}/gtk" || die + eautoreconf +} + +src_configure() { + tc-export AR RANLIB STRIP + + # 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 + --prefix="${EPREFIX}/usr" + --disable-flatpak + $(usex !gtk --disable-gtk) + --disable-gtk4 + $(usex !gstreamer --disable-gst) + $(use_enable x265) + $(use_enable numa) + $(use_enable fdk fdk-aac) + --enable-ffmpeg-aac # Forced on + $(use_enable nvenc) + # TODO: $(use_enable qsv) + # TODO: $(use_enable vce) + ) + + 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 gtk ; then + einfo "For the GTK+ 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 81707377e6f7..41a2061311b8 100644 --- a/media-video/handbrake/handbrake-9999.ebuild +++ b/media-video/handbrake/handbrake-9999.ebuild @@ -3,18 +3,18 @@ EAPI=8 -PYTHON_COMPAT=( python3_{9..10} ) +PYTHON_COMPAT=( python3_{10..12} ) -inherit autotools python-any-r1 toolchain-funcs xdg +inherit autotools edo python-any-r1 toolchain-funcs xdg -if [[ ${PV} = *9999* ]]; then +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 ~x86" + KEYWORDS="~amd64 ~arm64 ~x86" fi DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder" @@ -22,31 +22,32 @@ HOMEPAGE="https://handbrake.fr/ https://github.com/HandBrake/HandBrake" LICENSE="GPL-2" SLOT="0" -IUSE="+fdk gstreamer gtk libav-aac numa nvenc x265" +IUSE="+fdk gstreamer gtk numa nvenc x265" # TODO: qsv vce -REQUIRED_USE="^^ ( fdk libav-aac )" +REQUIRED_USE="numa? ( x265 )" RDEPEND=" - app-arch/xz-utils + >=app-arch/xz-utils-5.2.6 dev-libs/jansson:= - dev-libs/libxml2 + >=dev-libs/libxml2-2.10.3 media-libs/a52dec - >=media-libs/dav1d-0.5.1:= - media-libs/libjpeg-turbo:= - media-libs/libass:= - >=media-libs/libbluray-1.0:= + >=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:= + >=media-libs/libdvdread-6.1.3:= media-libs/libsamplerate media-libs/libtheora media-libs/libvorbis - >=media-libs/libvpx-1.8:= + >=media-libs/libvpx-1.12.0:= media-libs/opus - media-libs/speex - media-libs/x264:= - media-libs/zimg + >=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 - >=media-video/ffmpeg-4.2.1:0=[postproc,fdk?] + >=media-video/ffmpeg-5.1.2:=[postproc,fdk?] sys-libs/zlib fdk? ( media-libs/fdk-aac:= ) gstreamer? ( @@ -70,8 +71,11 @@ RDEPEND=" x11-libs/libnotify x11-libs/pango ) - nvenc? ( media-libs/nv-codec-headers ) - x265? ( >=media-libs/x265-3.2:0=[10bit,12bit,numa?] ) + nvenc? ( + media-libs/nv-codec-headers + media-video/ffmpeg[nvenc] + ) + x265? ( >=media-libs/x265-3.5-r2:=[10bit,12bit,numa?] ) " DEPEND="${RDEPEND}" # cmake needed for custom script: bug #852701 @@ -79,7 +83,6 @@ BDEPEND=" ${PYTHON_DEPS} dev-lang/nasm dev-util/cmake - dev-util/intltool " PATCHES=( @@ -87,14 +90,11 @@ PATCHES=( # It may work this way; if not, we should try to mimic the duplication. "${FILESDIR}/${PN}-9999-remove-dvdnav-dup.patch" - # Remove faac dependency; TODO: figure out if we need to do this at all. - "${FILESDIR}/${PN}-9999-remove-faac-dependency.patch" - # Detect system tools - bug 738110 "${FILESDIR}/${PN}-9999-system-tools.patch" # Use whichever python is set by portage - "${FILESDIR}/${PN}-1.3.0-dont-search-for-python.patch" + "${FILESDIR}/${PN}-9999-dont-search-for-python.patch" # Fix x265 linkage... again again #730034 "${FILESDIR}/${PN}-1.3.3-x265-link.patch" @@ -122,19 +122,20 @@ src_configure() { --force --verbose --prefix="${EPREFIX}/usr" - --disable-gtk-update-checks --disable-flatpak - --disable-gtk4 - $(use_enable libav-aac ffmpeg-aac) - $(use_enable fdk fdk-aac) $(usex !gtk --disable-gtk) + --disable-gtk4 $(usex !gstreamer --disable-gst) + $(use_enable x265) $(use_enable numa) + $(use_enable fdk fdk-aac) + --enable-ffmpeg-aac # Forced on $(use_enable nvenc) - $(use_enable x265) + # TODO: $(use_enable qsv) + # TODO: $(use_enable vce) ) - ./configure "${myconfargs[@]}" || die "Configure failed." + edo ./configure "${myconfargs[@]}" } src_compile() { diff --git a/media-video/hevc-hm/hevc-hm-17.0.ebuild b/media-video/hevc-hm/hevc-hm-17.0.ebuild index 1b07951ca5ac..acf90fa78aa3 100644 --- a/media-video/hevc-hm/hevc-hm-17.0.ebuild +++ b/media-video/hevc-hm/hevc-hm-17.0.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://vcgit.hhi.fraunhofer.de/jvet/HM/-/archive/HM-${PV}/HM-HM-${PV}. LICENSE="BSD" SLOT="0" -KEYWORDS="~amd64 ~arm ~mips ~riscv" +KEYWORDS="amd64 arm ~ia64 ~loong ~mips ~riscv" S="${WORKDIR}/HM-HM-${PV}" diff --git a/media-video/jellyfin-media-player/Manifest b/media-video/jellyfin-media-player/Manifest index d1255f337f9f..a67f2b616569 100644 --- a/media-video/jellyfin-media-player/Manifest +++ b/media-video/jellyfin-media-player/Manifest @@ -1,3 +1,4 @@ DIST jellyfin-media-player-1.7.1.tar.gz 575001 BLAKE2B b650f981427721a254fd1dcaa58ebf9f93aba47de50f8c24db27e917de8cd8ebb3da67afa68990845f9e019aac0c8d81f5440dd72f604aa74cdc71d8cc476d8f SHA512 7f8cd4c9094254a133430b1d1594d44a92696cd769323ecc51ef973dde1f09b013f9ade0affb9e364d922935994613f662667af46f90aae2ae04d6cb9deb86f0 DIST jellyfin-media-player-1.8.1.tar.gz 582343 BLAKE2B a5fa8d20cd3ec6e4444c1e9d90b93622f7435c2ccbf886c02ce744aa7aeb5a2440b07b3e5b3edb81bb6675d82958f5d63147412dd3d28fced60060de5724e52b SHA512 821bfa42e981d996c7f32f3951e625749a74636ebcb6a6c68c606282fb0db6d4c205419887828cc0dcdd3005d88b237977a01a82e2800a489c8bf3abac33630f DIST jellyfin-media-player-1.9.0.tar.gz 519208 BLAKE2B c64bb40011dd3761144e70c9549329c921156d9b0c46425e9812d6210baa8b90df7ac8f5af3379da76f6b8c6a55a3d8ac903ce5481895135eaea720d2ce936a2 SHA512 58c35530d61405ed5ff5a73c8a4f3869b21e0b0b0eb5cef7cf15b846543f1070d5c2b4dbfc102c6b4fbce5cb844fea711045d39c1a6bae9c882ad24c6ccd0333 +DIST jellyfin-media-player-1.9.1.tar.gz 519515 BLAKE2B 0240d4f964a48e476531e0e601a62f270defa98ef2d4c0e63e2a552a03e6abf2e069e38b80fa9515b5c3cb62d789c3fc630a1f726cc4aa3bcab7e39869ef4b2f SHA512 c6df563ff343b8b6b570bdbaca9cd0111ed2b3f347c40888a83d338893a0523eb1614fd5fb2f4463e97f9656f71af23d94b110fff473c71226180530822ed0dd diff --git a/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild b/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild new file mode 100644 index 000000000000..23b1b45d7776 --- /dev/null +++ b/media-video/jellyfin-media-player/jellyfin-media-player-1.9.1.ebuild @@ -0,0 +1,69 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +inherit cmake python-any-r1 + +DESCRIPTION="Jellyfin Desktop Client based on Plex Media Player" +HOMEPAGE="https://github.com/jellyfin/jellyfin-media-player" + +SRC_URI=" + https://github.com/jellyfin/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz +" + +LICENSE="GPL-2" +SLOT="0" + +KEYWORDS="~amd64" +IUSE="+dbus" + +DEPEND=" + dev-libs/libcec + dev-qt/qtcore:5 + dev-qt/qtdeclarative:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtquickcontrols:5 + dev-qt/qtwebchannel:5 + dev-qt/qtwebengine:5 + dev-qt/qtwidgets:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + media-libs/libsdl2 + media-video/mpv:=[libmpv] + sys-libs/zlib + virtual/opengl + x11-libs/libX11 + x11-libs/libXrandr + dbus? ( dev-qt/qtdbus:5 ) +" + +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig +" + +# x11-misc/xdg-utils is used for xdg-screensaver, which is used to inhibit +# screen locking + +RDEPEND=" + ${DEPEND} + ~media-video/jellyfin-web-bin-10.8.10 + !dbus? ( x11-misc/xdg-utils ) +" + +src_configure() { + local mycmakeargs=( + -DOpenGL_GL_PREFERENCE=GLVND + # PMP, at least prior to the fork into JMP, used to download codecs, + # for safe measure, disable that. + -DENABLE_CODECS=OFF + # LINUX_X11POWER instructs JMP to use xdg-screensaver instead of dbus + # for inhibiting screen saving. + -DLINUX_X11POWER="$(usex dbus OFF ON)" + ) + cmake_src_configure +} diff --git a/media-video/jellyfin-web-bin/Manifest b/media-video/jellyfin-web-bin/Manifest index 986ba06b30da..c9ab2161ce03 100644 --- a/media-video/jellyfin-web-bin/Manifest +++ b/media-video/jellyfin-web-bin/Manifest @@ -1 +1,2 @@ +DIST jellyfin-web_10.8.10_portable.tar.gz 44617443 BLAKE2B 6bfd14edd91039cd714326950fe420df77e7f5196f63fa704a3d033958acdeabef3d9639cfee63775013b89efac7de96f3d9f118fb79f5580c05d819f97d25b8 SHA512 b87b7cd5dc84abbbff127fc2d4a8ecfc04e2a98b37ed6232758c45251fd1f3e60fdf6a0e66bd994b5eea99d0c60f26562e257059a0fc6ec2b3e6a2a52588b51b DIST jellyfin-web_10.8.9_portable.tar.gz 44617681 BLAKE2B c7db2d82c160391d3df1953725da54e4e16d09955ac45a2e844bdf802d47022afbe818b6787571dc0bc19a9db2ab67b254abaab7e17d72d02b8310da6e5a5160 SHA512 3f6fb592bf44e38664554881e931969b3cb173cabcb90d5b6e86a181263b07976fc2dc7d91cb4c08e814cbf2a950b6942ffe2080fe93567ab4d212a8956805f8 diff --git a/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild b/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild new file mode 100644 index 000000000000..5bb80c0c2a83 --- /dev/null +++ b/media-video/jellyfin-web-bin/jellyfin-web-bin-10.8.10.ebuild @@ -0,0 +1,28 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Web Client for Jellyfin" +HOMEPAGE="https://github.com/jellyfin/jellyfin-media-player" +SRC_URI=" + https://repo.jellyfin.org/releases/server/portable/versions/stable/web/${PV}/jellyfin-web_${PV}_portable.tar.gz +" +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +BDEPEND=" + app-arch/unzip +" + +RDEPEND=" + !media-video/jellyfin-web-jmp-bin +" + +S="${WORKDIR}/jellyfin-web_${PV}" + +src_install() { + insinto /usr/share/jellyfinmediaplayer/web-client/desktop + doins -r . +} diff --git a/media-video/jubler/Manifest b/media-video/jubler/Manifest index 05eb56e5bf4f..062d06115937 100644 --- a/media-video/jubler/Manifest +++ b/media-video/jubler/Manifest @@ -1 +1,2 @@ DIST jubler-5.1.tar.bz2 1815531 BLAKE2B 59f9c3c57b906a73e16b32841900ef16450758115d930e767bc4d63882ad2b8a35100a34057ab6bb353f4bea87cb4036e080d8d13a844ae4bfcae8bb361d5b18 SHA512 e2a0da737362a3c8dc12966aec1e9939291237fc714a586186b72daa16abf967c8fea8dac04fb191cb803aa11db20cf6d67468d2383f17f5c6114a643860acef +DIST jubler-7.0.3.tar.gz 24201905 BLAKE2B 9ac33ed8da3045944be32cc914aaa45ff0de3193aa1b699f144131f79a83c1932f1e74d730102c9227ef2a08a66efb1d50fb010cfc2e70c8678febd07eb1513d SHA512 a1c6b8a33439f0206378e2792748b06a163fd8083714f18ca57940422c8a8730369925c21f377eb42b8b91ffcae81d5f0219f4c9fee814f8a2f60b51e2356726 diff --git a/media-video/jubler/files/7.0.3-helpme.patch b/media-video/jubler/files/7.0.3-helpme.patch new file mode 100644 index 000000000000..ac0be65c5598 --- /dev/null +++ b/media-video/jubler/files/7.0.3-helpme.patch @@ -0,0 +1,13 @@ +--- a/modules/core/src/main/java/com/panayotis/jubler/os/SystemFileFinder.java ++++ b/modules/core/src/main/java/com/panayotis/jubler/os/SystemFileFinder.java +@@ -65,7 +65,9 @@ public class SystemFileFinder { + } + + private static boolean loadLibraryImpl(String name) { +- File libfile = findFile("lib" + File.separator + SystemDependent.mapLibraryName(name)); ++ System.out.println("SystemDependent.mapLibraryName is " + SystemDependent.mapLibraryName(name)); ++ File libfile = findFile(SystemDependent.mapLibraryName(name)); ++ System.out.println("libfile is " + libfile); + if (libfile != null) + try { + System.load(libfile.getAbsolutePath()); diff --git a/media-video/jubler/jubler-7.0.3.ebuild b/media-video/jubler/jubler-7.0.3.ebuild new file mode 100644 index 000000000000..0b14f079e2b1 --- /dev/null +++ b/media-video/jubler/jubler-7.0.3.ebuild @@ -0,0 +1,151 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Skeleton command: +# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://github.com/teras/Jubler/archive/v7.0.3.tar.gz --slot 0 --keywords "~amd64" --ebuild jubler-7.0.3.ebuild + +EAPI=8 + +JAVA_PKG_IUSE="doc source" +MAVEN_ID="com.panayotis.jubler:project:7.0.3" + +inherit desktop java-pkg-2 java-pkg-simple toolchain-funcs xdg-utils + +DESCRIPTION="Jubler Subtitle Εditor" +HOMEPAGE="https://www.jubler.org/" +SRC_URI="https://github.com/teras/Jubler/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +CP_DEPEND="dev-java/appenh:0" + +DEPEND="${CP_DEPEND} + media-video/ffmpeg:0= + >=virtual/jdk-1.8:*" + +RDEPEND="${CP_DEPEND} + >=virtual/jre-1.8:*" + +JUBLER_MODULES=( + "jubler" + "appenhancer" + "aspell" + "basetextsubs" + "coretools" + "mplayer" + "zemberek" +) + +HTML_DOCS=( ChangeLog.html ) + +PATCHES=( "${FILESDIR}/7.0.3-helpme.patch" ) + +S="${WORKDIR}/Jubler-${PV}" + +src_prepare() { + java-pkg-2_src_prepare + default + # decodeaudio.c:82:24: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' undeclared (first use in this function); did you mean 'AV_CODEC_CAP_VARIABLE_FRAME_SIZE'? + # decodeaudio.c:176:49: error: 'CODEC_ID_NONE' undeclared (first use in this function); did you mean 'AV_CODEC_ID_NONE'? + # decodeaudio.c:180:38: error: 'AVCodecContext' has no member named 'request_channels'; did you mean 'request_channel_layout'? + # decodeframe.c:230:31: error: 'PIX_FMT_RGB24' undeclared (first use in this function); did you mean 'AV_PIX_FMT_RGB24'? + # decodeaudio.c:197:79: error: 'AVIO_WRONLY' undeclared (first use in this function # https://github.com/FFmpeg/FFmpeg/commit/59d96941f0 + # decodeaudio.c:239:26: error: 'AVCodecContext' has no member named 'request_channels'; did you mean 'request_channel_layout'? + # makecache.c:94:28: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' undeclared (first use in this function); did you mean 'AV_CODEC_CAP_VARIABLE_FRAME_SIZE'? + # decodeaudio.c:339:25: error: 'CODEC_FLAG_GLOBAL_HEADER' undeclared (first use in this function); did you mean 'AV_CODEC_FLAG_GLOBAL_HEADER' + sed \ + -e 's:AVCODEC_MAX_AUDIO_FRAME_SIZE:AV_CODEC_CAP_VARIABLE_FRAME_SIZE:' \ + -e 's:CODEC_ID_NONE:AV_CODEC_ID_NONE:' \ + -e 's:request_channels:request_channel_layout:' \ + -e 's:PIX_FMT_RGB24:AV_PIX_FMT_RGB24:' \ + -e 's:AVIO_WRONLY:AVIO_FLAG_WRITE:' \ + -e 's:CODEC_FLAG_GLOBAL_HEADER:AV_CODEC_FLAG_GLOBAL_HEADER:' \ + -e 's:CodecID:AVCodecID:' \ + -i resources/ffmpeg/ffdecode/*.c || die +} + +src_compile() { + einfo "Compiling the ffdecode library" + pushd resources/ffmpeg/ffdecode || die + local args=( + JAVA_HOME="$(java-config -g JAVA_HOME)" + STATIC="no" + CC="$(tc-getCC)" + STRIP="$(tc-getSTRIP)" + LIBNAME="libffdecode.so" + ) + emake "${args[@]}" + popd + + jar -cf coretheme.jar -C modules/coretheme/src/main/resources/ . || die + JAVA_GENTOO_CLASSPATH_EXTRA+=":coretheme.jar" + + mv modules/{core,jubler} || die + + local module + for module in "${JUBLER_MODULES[@]}"; do + einfo "Compiling module \"${module}\"" + JAVA_SRC_DIR="modules/${module}/src/main/java" + JAVA_RESOURCE_DIRS="modules/${module}/src/main/resources" + JAVA_JAR_FILENAME="${module}.jar" + if [[ ${module} == jubler ]]; then + JAVA_MAIN_CLASS="Jubler" + fi + + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":${module}.jar" + JAVA_MAIN_CLASS="" + rm -r target || die + done + + if use doc; then + einfo "Compiling javadocs" + JAVA_SRC_DIR=() + for module in "${JUBLER_MODULES}"; do + JAVA_SRC_DIR+=( "modules/${module}/src/main/java" ) + done + JAVA_JAR_FILENAME="ignoreme.jar" + java-pkg-simple_src_compile + fi +} + +src_install() { + java-pkg_doso dist/lib/libffdecode.so + java-pkg_dojar "coretheme.jar" + local module + for module in "${JUBLER_MODULES[@]}"; do + java-pkg_dojar ${module}.jar + if use source; then + java-pkg_dosrc "modules/${module}/src/main/java/*" + fi + done + + if use doc; then + java-pkg_dojavadoc target/api + fi + + java-pkg_dolauncher "jubler" --main Jubler + + domenu resources/installers/linux/jubler.desktop + doicon -s 32 resources/installers/linux/jubler32.png + doicon -s 64 resources/installers/linux/jubler64.png + doicon -s 128 resources/installers/linux/jubler128.png + doicon modules/jubler/src/main/resources/icons/splash.jpg + doicon -s 16 modules/jubler/src/main/resources/icons/crossmobile.png + + # modules/installer/pom.xml#L90-L94 + insinto /usr/share/${PN}/lib/i18n + doins -r resources/i18n/cache + insinto /usr/share/${PN}/lib/help + doins resources/help/{cache/jubler-faq.html,jubler-faq.xml,question.png} +} + +pkg_postinst() { + xdg_icon_cache_update +} + +pkg_postrm() { + xdg_icon_cache_update +} diff --git a/media-video/jubler/metadata.xml b/media-video/jubler/metadata.xml index 77e1c11c60b3..206f60aebeb8 100644 --- a/media-video/jubler/metadata.xml +++ b/media-video/jubler/metadata.xml @@ -5,6 +5,8 @@ <email>java@gentoo.org</email> </maintainer> <upstream> - <remote-id type="google-code">jubler</remote-id> + <bugs-to>https://github.com/teras/Jubler/issues</bugs-to> + <changelog>https://www.jubler.org/changelog.html</changelog> + <remote-id type="github">teras/Jubler</remote-id> </upstream> </pkgmetadata> diff --git a/media-video/libva-utils/Manifest b/media-video/libva-utils/Manifest index 565a6bbe6d9c..82ff3113e1ad 100644 --- a/media-video/libva-utils/Manifest +++ b/media-video/libva-utils/Manifest @@ -1,2 +1,2 @@ -DIST libva-utils-2.17.1.tar.gz 1276454 BLAKE2B bde2b784c6470721b113d5a4429ac0b02b922a6bf37d3554d4c088736d184cb8d8107b714e37d0ba517fd9a52ba43247cd4985604421b5e63af841b649786366 SHA512 db89f70c6efb34d0e390a443b29d706ac6339e157e6451a96aa50d4246ce08b8276608874f20d115a2576b8876c95a2e34abba8fe0a446f6736a807779517c6c -DIST libva-utils-2.18.1.tar.gz 1279583 BLAKE2B 84620e1c9cd24c0cddc4df93e598d858cec299af3a6776c3ee723be8cad3061f5d433d5d9ec1ff97f801ad5f14db93ef021c7bb40d7c7898d8d04fb9ac15ed07 SHA512 b83ac6395715b1970d56c4b03ac0331f444dad7e4159f00ce5891401c97aaac101a5be2b2123e2fe31350f7c09cd665e38ed01541c1be95b3d3ef822cafd6dea +DIST libva-utils-2.18.2.tar.gz 1279586 BLAKE2B 26ba87ef6973cb9960f9a646da9d6467dceb27ce9527d007e92716b4480d3d21711e23cf37f51236da640f6e6eefb421f167e0f87926e966f2f53a699f4110e5 SHA512 cdbf2d542f2d7a442af017a924dd4835f22e367fab89f08ab2beabc535035ed11cdeb2ce581b178ecdb9fd1545fa8fde57b7bc15c8c591cc9c2b5f9ebf572ee7 +DIST libva-utils-2.19.0.tar.gz 1280543 BLAKE2B dea218b1b0832acab9d4ea71ee0d4b20460ef8dc3d3323b41ead552c6ff5ca3a7b2e6e5873a84dcfe48f4e5ade56ab177b4feb390bed660478483519fe264d5d SHA512 30004680dccbca0d7d9eb32abfc37f595d09293ea7f64fe6dcc7c3b010d754fe21b4e2eef55f54f58014745fd9f389910ebfdc8c9472906dae8967f6f6cedeb8 diff --git a/media-video/libva-utils/libva-utils-2.17.1.ebuild b/media-video/libva-utils/libva-utils-2.18.2.ebuild index 28c1a1ca332c..f5fb22778737 100644 --- a/media-video/libva-utils/libva-utils-2.17.1.ebuild +++ b/media-video/libva-utils/libva-utils-2.18.2.ebuild @@ -6,7 +6,7 @@ EAPI=8 inherit meson DESCRIPTION="Collection of utilities and tests for VA-API" -HOMEPAGE="https://01.org/linuxmedia/vaapi" +HOMEPAGE="https://github.com/intel/libva-utils" if [[ ${PV} = *9999 ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/intel/libva-utils" diff --git a/media-video/libva-utils/libva-utils-2.18.1.ebuild b/media-video/libva-utils/libva-utils-2.19.0.ebuild index f2d6709a0a66..f2d6709a0a66 100644 --- a/media-video/libva-utils/libva-utils-2.18.1.ebuild +++ b/media-video/libva-utils/libva-utils-2.19.0.ebuild diff --git a/media-video/libva-utils/libva-utils-9999.ebuild b/media-video/libva-utils/libva-utils-9999.ebuild index f2d6709a0a66..4641d69cb961 100644 --- a/media-video/libva-utils/libva-utils-9999.ebuild +++ b/media-video/libva-utils/libva-utils-9999.ebuild @@ -6,7 +6,7 @@ EAPI=8 inherit meson DESCRIPTION="Collection of utilities and tests for VA-API" -HOMEPAGE="https://01.org/linuxmedia/vaapi" +HOMEPAGE="https://github.com/intel/libva-utils" if [[ ${PV} = *9999 ]] ; then inherit git-r3 EGIT_REPO_URI="https://github.com/intel/libva-utils" diff --git a/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch b/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch new file mode 100644 index 000000000000..98f1ae30220d --- /dev/null +++ b/media-video/lxdvdrip/files/lxdvdrip-1.77-clang-16-build.patch @@ -0,0 +1,38 @@ +https://bugs.gentoo.org/885573 +--- a/dvdbackup.c ++++ b/dvdbackup.c +@@ -30,6 +30,7 @@ COMMENTAIRE : + + #include "const.h" + #include "dvdformat.h" ++#include "dvdcopy.h" + #include "dvdinfo.h" + #include "globals.h" + #include "systools.h" +--- a/dvdcopy.h ++++ b/dvdcopy.h +@@ -14,6 +14,7 @@ COMMENTAIRE : + + #ifndef __DVDCOPY_H__ + #define __DVDCOPY_H__ ++#include <dvdread/ifo_read.h> + /*@$#[dvdcopy.c] global proto. AutoProtoSigV1.1. date: 106/01/05 21:32:04 */ + #include "proto.h" + #ifdef __cplusplus +--- a/systools.c ++++ b/systools.c +@@ -20,12 +20,8 @@ COMMENTAIRE : + #include <stdlib.h> + #include <sys/types.h> + #include <sys/stat.h> +-#if defined(__sun) +-# include <sys/statvfs.h> +-# include <sys/ioctl.h> +-#else +-# include <sys/statfs.h> +-#endif ++#include <sys/statfs.h> ++#include <sys/ioctl.h> + #include <fcntl.h> + #include <unistd.h> + #if defined(__sun) diff --git a/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild b/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild new file mode 100644 index 000000000000..e1f495467a8e --- /dev/null +++ b/media-video/lxdvdrip/lxdvdrip-1.77-r2.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="Command line tool to automate the process of ripping and burning DVDs" +HOMEPAGE="https://sourceforge.net/projects/lxdvdrip/" +SRC_URI="mirror://sourceforge/lxdvdrip/${P}.tgz" +S="${WORKDIR}/${PN}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +DEPEND="media-libs/libdvdread" +RDEPEND="${DEPEND} + >=media-video/dvdauthor-0.6.9 + media-video/streamdvd + media-video/mpgtx +" + +PATCHES=( + "${FILESDIR}"/${P}-makefile.patch + "${FILESDIR}"/${P}-vamps-makefile.patch + "${FILESDIR}"/${P}-clang-16-build.patch +) + +src_compile() { + tc-export CC + emake + emake -C vamps +} + +src_install() { + dobin lxdvdrip + dobin lxac3scan + dodoc doc-pak/Changelog* doc-pak/Credits doc-pak/Debugging.* + dodoc doc-pak/lxdvdrip.conf* doc-pak/README* + doman lxdvdrip.1 + + insinto /usr/share + doins lxdvdrip.wav + + insinto /etc + newins doc-pak/lxdvdrip.conf.EN lxdvdrip.conf + + cd vamps || die + emake PREFIX="${D}/usr" install +} diff --git a/media-video/makemkv/Manifest b/media-video/makemkv/Manifest index b572816f8441..526bb1f52c94 100644 --- a/media-video/makemkv/Manifest +++ b/media-video/makemkv/Manifest @@ -1,2 +1,2 @@ -DIST makemkv-bin-1.17.3.tar.gz 16402650 BLAKE2B adc7bb6e093247d782c57de2f304b5715c0e21d0572927551fc3830fc15776c09d9593dee18d464f4d19e40a1e260facf750a494493048971b5f4cb1b40a372f SHA512 d085afd28d767a1605fb1acfabb65c7bf8998a46c00ac52d1c2833526d7761bb73bf019d826c40d5281e1318aef619d93d2fb358896968c5dbb435b9c6bcdbfd -DIST makemkv-oss-1.17.3.tar.gz 6618376 BLAKE2B 640948c378cd0c329b3278ec91efaa3632287edb8a8dc9b9b9dde619e8360d8e53e5af2f2c24e2091b69ea2d842afcd2043a2eef98cfff9c98e418bd418ee5b2 SHA512 864a9903443dbaf1decb88981e892b8a5150052b773b24a319b8744a0244ccb770733cb5bae44fa014c748417bd2a4705867081e8a287a803ecddb128e3a543f +DIST makemkv-bin-1.17.4.tar.gz 16402081 BLAKE2B 9be9fe1c2af35af7f5632857bccae45d9e6ba522fb8753eb40903a61ff73bc1ff40f2fade6d099059c5d7f716c0903ff16c3ff0849ff21728cc7eb8eafd19a95 SHA512 64251bfbbb3a5cad3a99e15a0a215ab8d3dd54fc267b1f22c9ab347fd744add78edd41d2cfd48086999f4e8912da4713974e36db96406fd18a7c930a61b2f6ec +DIST makemkv-oss-1.17.4.tar.gz 6618658 BLAKE2B c64e209fc20e432c4befe794133fb06761f4fd2fb6eceb8ce4ce7292582768d10937850027aad0a02f31f920c647841427797b43ba6f1016ff0e5920ac466682 SHA512 6e69400ec3ce8df63e55d107a8f81ceab3f3182b5e02be2187eb2cac93c5002d3c614b96e1a3672562e32495c447fb1d7a018ac233d3a9e32f1d27957169283d diff --git a/media-video/makemkv/files/makemkv-ffmpeg-6.patch b/media-video/makemkv/files/makemkv-ffmpeg-6.patch new file mode 100644 index 000000000000..684d8186bab5 --- /dev/null +++ b/media-video/makemkv/files/makemkv-ffmpeg-6.patch @@ -0,0 +1,13 @@ +diff --git a/libffabi/src/ffabi.c b/libffabi/src/ffabi.c +index 5dda9e1..2b29b87 100644 +--- a/libffabi/src/ffabi.c ++++ b/libffabi/src/ffabi.c +@@ -478,7 +478,7 @@ FFM_AudioEncodeContext* __cdecl ffm_audio_encode_init(void* logctx,const char* n + #else + ctx->frame = av_frame_alloc(); + if (av_sample_fmt_is_planar(ctx->avctx->sample_fmt)) { +- ctx->frame_extended_data = av_mallocz_array(ctx->avctx->channels, ++ ctx->frame_extended_data = av_calloc(ctx->avctx->channels, + sizeof(*ctx->frame_extended_data)); + if (!ctx->frame_extended_data) { + ffm_audio_encode_close(ctx); diff --git a/media-video/makemkv/makemkv-1.17.4-r1.ebuild b/media-video/makemkv/makemkv-1.17.4-r1.ebuild new file mode 100644 index 000000000000..05a97bd1d4f3 --- /dev/null +++ b/media-video/makemkv/makemkv-1.17.4-r1.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic linux-info xdg + +MY_P=makemkv-oss-${PV} +MY_PB=makemkv-bin-${PV} + +DESCRIPTION="Tool for ripping and streaming Blu-ray, HD-DVD and DVD discs" +HOMEPAGE="http://www.makemkv.com/" +SRC_URI="http://www.makemkv.com/download/${MY_P}.tar.gz + http://www.makemkv.com/download/${MY_PB}.tar.gz" + +LICENSE="GPL-2 LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+gui +java" +RESTRICT="bindist mirror" + +QA_PREBUILT="usr/bin/makemkvcon usr/bin/mmdtsdec" + +DEPEND=" + dev-libs/expat + dev-libs/openssl:0=[-bindist(-)] + >=media-video/ffmpeg-1.0.0:0= + sys-libs/glibc + sys-libs/zlib + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + ) +" +RDEPEND=" + ${DEPEND} + java? ( >=virtual/jre-1.8 ) +" +BDEPEND=" + virtual/pkgconfig + gui? ( dev-qt/qtcore:5 ) +" + +CONFIG_CHECK="~CHR_DEV_SG" +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-path.patch + "${FILESDIR}"/${PN}-ffmpeg-6.patch +) + +src_prepare() { + default + + if ! use java; then + rm -v "${WORKDIR}/${MY_PB}"/src/share/blues.* || die + fi +} + +src_configure() { + # See bug #439380. + replace-flags -O* -Os + + econf \ + --enable-debug \ + --disable-noec \ + $(use_enable gui) \ + $(use_enable gui qt5) +} + +src_install() { + local myarch + case "${ARCH}" in + arm) myarch=armel ;; + x86) myarch=i386 ;; + *) myarch=${ARCH} ;; + esac + + default + + # add missing symlinks for QA + dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so.0.${PV} + dosym libdriveio.so.0 /usr/$(get_libdir)/libdriveio.so + dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so.1.${PV} + dosym libmakemkv.so.1 /usr/$(get_libdir)/libmakemkv.so + dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so + dosym libmmbd.so.0 /usr/$(get_libdir)/libmmbd.so.0.${PV} + + cd "${WORKDIR}"/${MY_PB} || die + + # install prebuilt bin + dobin bin/"${myarch}"/makemkvcon + + # additional tool is actually part of makemkvcon + dosym makemkvcon /usr/bin/sdftool + + # install profiles and locales + insinto /usr/share/MakeMKV + doins src/share/* + + # install unofficial man page + doman "${FILESDIR}"/makemkvcon.1 +} + +pkg_postinst() { + xdg_pkg_postinst + + elog "While MakeMKV is in beta mode, upstream has provided a license" + elog "to use if you do not want to purchase one." + elog "" + elog "See this forum thread for more information, including the key:" + elog "https://www.makemkv.com/forum/viewtopic.php?f=5&t=1053" + elog "" + elog "Note that beta license may have an expiration date and you will" + elog "need to check for newer licenses/releases. " + elog "" + elog "We previously said to copy default.mmcp.xml to ~/.MakeMKV/. This" + elog "is no longer necessary and you should delete it from there to" + elog "avoid warning messages." + elog "" + elog "MakeMKV can also act as a drop-in replacement for libaacs and" + elog "libbdplus, allowing transparent decryption of a wider range of" + elog "titles under players like VLC and mplayer. To enable this, set" + elog "the following variables when launching the player:" + elog "LIBAACS_PATH=libmmbd LIBBDPLUS_PATH=libmmbd" +} diff --git a/media-video/makemkv/makemkv-1.17.3.ebuild b/media-video/makemkv/makemkv-1.17.4.ebuild index e99d889b48d6..e99d889b48d6 100644 --- a/media-video/makemkv/makemkv-1.17.3.ebuild +++ b/media-video/makemkv/makemkv-1.17.4.ebuild diff --git a/media-video/mediainfo/Manifest b/media-video/mediainfo/Manifest index 489edf57fec0..5884eccb3763 100644 --- a/media-video/mediainfo/Manifest +++ b/media-video/mediainfo/Manifest @@ -1 +1,3 @@ DIST mediainfo_22.09.tar.xz 2016868 BLAKE2B c4b1766c4d49be6e90d11c736e4572e24299ae96efdfbf92ef9d32a418d7777cad2ae60ac7e6234cfa7c3a11996e46fb178996c536b9ce13dd19a0449ae8bf86 SHA512 acdeef13153fd74c29d54b9bdf4e983dd81525ace47550977d99cb5950ab72579cbbfc1ae39d81d89e03c491ea559177a16853d9db20d83a995eff300b864d4d +DIST mediainfo_23.03.tar.xz 2027676 BLAKE2B 2da17afaccb3a8b4a1e19012cb3bb29284856f9d16e27026701b1c78add444e83c5fbb3e22ff39955ffa1c0b6f62e87224c0b35a0ff007296c4c065f58f83c87 SHA512 5082826a315fefaa48ea65a09a538225f1311cfb48285c939bb7ce2ebc38a2d444e6974ecb8062e02b60fbde27759b5828fc97dd7f9229e0066e9d193137fb5c +DIST mediainfo_23.04.tar.xz 2022444 BLAKE2B 4e5c1c09b670ee20839c49365f0973d783ec7ed4bd336bed7574b6369f356f8f11fe63fe99dd80a28b2677b3c872bc45941b89c307190fe0b8ab867f66ab7755 SHA512 768ac916da81ea10323be2957a87058ba863015f26a337ba3b3db15e40e52c7cd7b24f2ca2508334e35cdae6476d147ed4c81eeabfe801fa9dc5ca68ceb1e7af diff --git a/media-video/mediainfo/mediainfo-22.09.ebuild b/media-video/mediainfo/mediainfo-22.09.ebuild index 76baf622975b..68f70427ddc8 100644 --- a/media-video/mediainfo/mediainfo-22.09.ebuild +++ b/media-video/mediainfo/mediainfo-22.09.ebuild @@ -1,9 +1,12 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -# Please bump with media-libs/libmediainfo! +# These must be bumped together: +# - media-libs/libzen (if a release is available) +# - media-libs/libmediainfo +# - media-video/mediainfo WX_GTK_VER="3.0-gtk3" inherit xdg-utils autotools wxwidgets diff --git a/media-video/mediainfo/mediainfo-23.03.ebuild b/media-video/mediainfo/mediainfo-23.03.ebuild new file mode 100644 index 000000000000..a45f63ada5af --- /dev/null +++ b/media-video/mediainfo/mediainfo-23.03.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# - media-libs/libzen (if a release is available) +# - media-libs/libmediainfo +# - media-video/mediainfo + +WX_GTK_VER="3.0-gtk3" +inherit xdg-utils autotools wxwidgets + +DESCRIPTION="MediaInfo supplies technical and tag information about media files" +HOMEPAGE="https://mediaarea.net/mediainfo/ https://github.com/MediaArea/MediaInfo" +SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz" +S="${WORKDIR}/MediaInfo" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" +IUSE="curl mms wxwidgets" + +# The libzen dep usually needs to be bumped for each release! +RDEPEND=" + ~media-libs/libmediainfo-${PV}[curl=,mms=] + >=media-libs/libzen-0.4.41 + sys-libs/zlib + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +pkg_setup() { + TARGETS="CLI" + + if use wxwidgets; then + TARGETS+=" GUI" + setup-wxwidgets + fi +} + +src_prepare() { + default + + local target + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + sed -i -e "s:-O2::" configure.ac || die + eautoreconf + done +} + +src_configure() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + local args="" + [[ ${target} == "GUI" ]] && args="--with-wxwidgets --with-wx-gui" + econf ${args} + done +} + +src_compile() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + done +} + +src_install() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + dodoc "${S}"/History_${target}.txt + done +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} diff --git a/media-video/mediainfo/mediainfo-23.04.ebuild b/media-video/mediainfo/mediainfo-23.04.ebuild new file mode 100644 index 000000000000..a45f63ada5af --- /dev/null +++ b/media-video/mediainfo/mediainfo-23.04.ebuild @@ -0,0 +1,92 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# These must be bumped together: +# - media-libs/libzen (if a release is available) +# - media-libs/libmediainfo +# - media-video/mediainfo + +WX_GTK_VER="3.0-gtk3" +inherit xdg-utils autotools wxwidgets + +DESCRIPTION="MediaInfo supplies technical and tag information about media files" +HOMEPAGE="https://mediaarea.net/mediainfo/ https://github.com/MediaArea/MediaInfo" +SRC_URI="https://mediaarea.net/download/source/${PN}/${PV}/${P/-/_}.tar.xz" +S="${WORKDIR}/MediaInfo" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64 ~arm arm64 ~ppc ~ppc64 ~riscv x86" +IUSE="curl mms wxwidgets" + +# The libzen dep usually needs to be bumped for each release! +RDEPEND=" + ~media-libs/libmediainfo-${PV}[curl=,mms=] + >=media-libs/libzen-0.4.41 + sys-libs/zlib + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[X] ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +pkg_setup() { + TARGETS="CLI" + + if use wxwidgets; then + TARGETS+=" GUI" + setup-wxwidgets + fi +} + +src_prepare() { + default + + local target + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + sed -i -e "s:-O2::" configure.ac || die + eautoreconf + done +} + +src_configure() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + local args="" + [[ ${target} == "GUI" ]] && args="--with-wxwidgets --with-wx-gui" + econf ${args} + done +} + +src_compile() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + done +} + +src_install() { + local target + + for target in ${TARGETS}; do + cd "${S}"/Project/GNU/${target} || die + default + dodoc "${S}"/History_${target}.txt + done +} + +pkg_postinst() { + xdg_icon_cache_update + xdg_desktop_database_update +} + +pkg_postrm() { + xdg_icon_cache_update + xdg_desktop_database_update +} diff --git a/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch new file mode 100644 index 000000000000..cc68c95c2493 --- /dev/null +++ b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-no-auto_ptr-fix.patch @@ -0,0 +1,20 @@ +--- a/mplex/main.cpp ++++ b/mplex/main.cpp +@@ -50,7 +50,7 @@ + #include "multiplexor.hpp" + + +-using std::auto_ptr; ++using std::unique_ptr; + + + /************************************************************************* +@@ -138,7 +138,7 @@ + void + FileOutputStream::NextSegment( ) + { +- auto_ptr<char> prev_filename_buf( new char[strlen(cur_filename)+1] ); ++ unique_ptr<char[]> prev_filename_buf( new char[strlen(cur_filename)+1] ); + char *prev_filename = prev_filename_buf.get(); + fclose(strm); + ++segment_num; diff --git a/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch new file mode 100644 index 000000000000..b32cef5129a1 --- /dev/null +++ b/media-video/mjpegtools/files/mjpegtools-2.2.1-c++17-register-fix.patch @@ -0,0 +1,17 @@ +--- a/utils/fastintfns.h ++++ b/utils/fastintfns.h +@@ -2,12 +2,12 @@ + * + * WARNING: Assumes 2's complement arithmetic. + */ +-static inline int intmax( register int x, register int y ) ++static inline int intmax( int x, int y ) + { + return x < y ? y : x; + } + +-static inline int intmin( register int x, register int y ) ++static inline int intmin( int x, int y ) + { + return x < y ? x : y; + } diff --git a/media-video/mjpegtools/mjpegtools-2.2.1.ebuild b/media-video/mjpegtools/mjpegtools-2.2.1-r1.ebuild index c87164eacd60..a56461679280 100644 --- a/media-video/mjpegtools/mjpegtools-2.2.1.ebuild +++ b/media-video/mjpegtools/mjpegtools-2.2.1-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit autotools flag-o-matic multilib-minimal toolchain-funcs +inherit autotools multilib-minimal DESCRIPTION="Tools for MJPEG video" HOMEPAGE="http://mjpeg.sourceforge.net/" @@ -20,7 +20,7 @@ BDEPEND=" virtual/pkgconfig " RDEPEND=" - virtual/jpeg:0=[${MULTILIB_USEDEP}] + media-libs/libjpeg-turbo:0[static-libs?,${MULTILIB_USEDEP}] dv? ( >=media-libs/libdv-1.0.0-r3[${MULTILIB_USEDEP}] ) gtk? ( x11-libs/gtk+:2 ) png? ( media-libs/libpng:0= ) @@ -40,6 +40,9 @@ DEPEND=" src_prepare() { default + eapply "${FILESDIR}/${P}-c++17-register-fix.patch" + eapply "${FILESDIR}/${P}-c++17-no-auto_ptr-fix.patch" + eautoreconf sed -i -e '/ARCHFLAGS=/s:=.*:=:' configure } diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest index f07ffbf4fa32..d51ec57a4d96 100644 --- a/media-video/mkvtoolnix/Manifest +++ b/media-video/mkvtoolnix/Manifest @@ -1 +1,3 @@ DIST mkvtoolnix-72.0.0.tar.xz 10994204 BLAKE2B 2118837c01d8d31644e0147dfdec9fd619d18ffbab5d317e5dd84788a83cdf162ea7d72e98549bbc2ffc7953e0b80a0e23018658d8c5ad529fc719b291589a97 SHA512 dc18c6e63e724181e38753921ec3374752dbb7c4d20650cf0787e9049aaec4f6bb6c744e49b3783921804f192de742fba92826615a1edc8516d2a41621be658c +DIST mkvtoolnix-75.0.0.tar.xz 11009552 BLAKE2B d9c32a453ac1f07e201b99fdcaaa5e553b42c1d17fafdeb1a84808ee572caf00b4b49d04c90d7801564f4856e9b3057a45ef79041e72f76bc829c3b5d9536c58 SHA512 eca45828ec3cbb540c67d12d369f3314246d08812933a018e5c4f69e8bd2fa4e17143a33a1841c5a8da3befbc22509fa508e6688ea858980d13c44aaae4ead08 +DIST mkvtoolnix-77.0.tar.xz 11044004 BLAKE2B 5aa43e155c1318dc6c3fd4418fb59ec498ad488a8459cf0aefa0bc0660ff93dd51f2699642ea633695fbf76ae1b4b6cfddddfca1b0e72e16357b579ce8dbee42 SHA512 b310077cfaddef3163c732943f1aaf7e63fb9f7efb19fdb27a35e2d0ad92dfc4536ea29366b44745f3f918703b02e2d52edb63369c23540df1312f3d54c06bb0 diff --git a/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild new file mode 100644 index 000000000000..19b76609dc6a --- /dev/null +++ b/media-video/mkvtoolnix/mkvtoolnix-75.0.0.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic multiprocessing qmake-utils xdg + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git" + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz" + KEYWORDS="amd64 ppc ppc64 x86" +fi + +DESCRIPTION="Tools to create, alter, and inspect Matroska files" +HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix" + +LICENSE="GPL-2" +SLOT="0" +IUSE="dbus debug dvd gui nls pch test" +RESTRICT="!test? ( test )" + +# check NEWS.md for build system changes entries for boost/libebml/libmatroska +# version requirement updates and other packaging info +RDEPEND=" + dev-libs/boost:= + dev-libs/gmp:= + >=dev-libs/libebml-1.4.4:= + >=dev-libs/libfmt-8.0.1:= + >=dev-libs/pugixml-1.11:= + media-libs/flac:= + >=media-libs/libmatroska-1.7.1:= + media-libs/libogg:= + media-libs/libvorbis:= + sys-libs/zlib + dvd? ( media-libs/libdvdread:= ) + dev-qt/qtcore:5 + gui? ( + dev-qt/qtsvg:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtwidgets:5 + dev-qt/qtconcurrent:5 + dev-qt/qtmultimedia:5 + ) + app-text/cmark:0= + dbus? ( dev-qt/qtdbus:5 ) +" +DEPEND="${RDEPEND} + >=dev-cpp/nlohmann_json-3.9.1 + >=dev-libs/utfcpp-3.1.2 + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + dev-ruby/rake + virtual/pkgconfig + nls? ( + sys-devel/gettext + app-text/po4a + ) +" + +PATCHES=( + "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch + "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch +) + +src_prepare() { + default + + if [[ ${PV} == *9999 ]]; then + ./autogen.sh || die + fi + + # bug #692018 + sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die + + eautoreconf + + # remove bundled libs + rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || die +} + +src_configure() { + # bug #692322, use system dev-libs/utfcpp + append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp + + local myeconfargs=( + $(use_enable debug) + $(usex pch "" --disable-precompiled-headers) + $(use_enable dbus) + + # Qt (of some version) is always needed, even for non-GUI builds, + # to do e.g. MIME detection. See e.g. bug #844097. + # But most of the Qt deps are conditional on a GUI build. + --disable-qt6 + --enable-qt5 + $(use_enable gui) + --with-qmake="$(qt5_get_bindir)"/qmake + + $(use_with dvd dvdread) + $(use_with nls gettext) + #$(use_with nls po4a) + --disable-update-check + --disable-optimization + --with-boost="${ESYSROOT}"/usr + --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir) + ) + + # Work around bug #904710. + use nls || export ac_cv_path_PO4A= + + econf "${myeconfargs[@]}" +} + +src_compile() { + rake V=1 -j$(makeopts_jobs) || die +} + +src_test() { + rake V=1 -j$(makeopts_jobs) tests:unit || die + rake V=1 -j$(makeopts_jobs) tests:run_unit || die +} + +src_install() { + DESTDIR="${D}" rake -j$(makeopts_jobs) install || die + + einstalldocs + dodoc NEWS.md + doman doc/man/*.1 +} diff --git a/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild new file mode 100644 index 000000000000..d8fe3faed440 --- /dev/null +++ b/media-video/mkvtoolnix/mkvtoolnix-77.0.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic multiprocessing qmake-utils xdg + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git" + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz" + KEYWORDS="amd64 ~ppc ppc64 x86" +fi + +DESCRIPTION="Tools to create, alter, and inspect Matroska files" +HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix" + +LICENSE="GPL-2" +SLOT="0" +IUSE="dbus debug dvd gui nls pch test" +RESTRICT="!test? ( test )" + +# check NEWS.md for build system changes entries for boost/libebml/libmatroska +# version requirement updates and other packaging info +RDEPEND=" + dev-libs/boost:= + dev-libs/gmp:= + >=dev-libs/libebml-1.4.4:= + >=dev-libs/libfmt-8.0.1:= + >=dev-libs/pugixml-1.11:= + media-libs/flac:= + >=media-libs/libmatroska-1.7.1:= + media-libs/libogg:= + media-libs/libvorbis:= + sys-libs/zlib + dvd? ( media-libs/libdvdread:= ) + dev-qt/qtcore:5 + gui? ( + dev-qt/qtsvg:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtwidgets:5 + dev-qt/qtconcurrent:5 + dev-qt/qtmultimedia:5 + ) + app-text/cmark:0= + dbus? ( dev-qt/qtdbus:5 ) +" +DEPEND="${RDEPEND} + >=dev-cpp/nlohmann_json-3.9.1 + >=dev-libs/utfcpp-3.1.2 + test? ( dev-cpp/gtest ) +" +BDEPEND=" + app-text/docbook-xsl-stylesheets + dev-libs/libxslt + dev-ruby/rake + virtual/pkgconfig + nls? ( + sys-devel/gettext + app-text/po4a + ) +" + +PATCHES=( + "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch + "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch +) + +src_prepare() { + default + + if [[ ${PV} == *9999 ]]; then + ./autogen.sh || die + fi + + # bug #692018 + sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die + + eautoreconf + + # remove bundled libs + rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || die +} + +src_configure() { + # bug #692322, use system dev-libs/utfcpp + append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp + + local myeconfargs=( + $(use_enable debug) + $(usex pch "" --disable-precompiled-headers) + $(use_enable dbus) + + # Qt (of some version) is always needed, even for non-GUI builds, + # to do e.g. MIME detection. See e.g. bug #844097. + # But most of the Qt deps are conditional on a GUI build. + --disable-qt6 + --enable-qt5 + $(use_enable gui) + --with-qmake="$(qt5_get_bindir)"/qmake + + $(use_with dvd dvdread) + $(use_with nls gettext) + #$(use_with nls po4a) + --disable-update-check + --disable-optimization + --with-boost="${ESYSROOT}"/usr + --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir) + ) + + # Work around bug #904710. + use nls || export ac_cv_path_PO4A= + + econf "${myeconfargs[@]}" +} + +src_compile() { + rake V=1 -j$(makeopts_jobs) || die +} + +src_test() { + rake V=1 -j$(makeopts_jobs) tests:unit || die + rake V=1 -j$(makeopts_jobs) tests:run_unit || die +} + +src_install() { + DESTDIR="${D}" rake -j$(makeopts_jobs) install || die + + einstalldocs + dodoc NEWS.md + doman doc/man/*.1 +} diff --git a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild index 23a2e80da85d..4637f4ccbfb9 100644 --- a/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild +++ b/media-video/mkvtoolnix/mkvtoolnix-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -104,13 +104,16 @@ src_configure() { $(use_with dvd dvdread) $(use_with nls gettext) - $(usex nls "" --with-po4a-translate=false) + #$(use_with nls po4a) --disable-update-check --disable-optimization --with-boost="${ESYSROOT}"/usr --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir) ) + # Work around bug #904710. + use nls || export ac_cv_path_PO4A= + econf "${myeconfargs[@]}" } diff --git a/media-video/motion/Manifest b/media-video/motion/Manifest index 59627f5dbcfc..0973e0ebe198 100644 --- a/media-video/motion/Manifest +++ b/media-video/motion/Manifest @@ -1,2 +1 @@ -DIST motion-release-4.3.2.tar.gz 849378 BLAKE2B 2ff49f44bb1d57123760860ae17cc241ecabf3d045ac0c45e1ca08ce3ac8be2fec308492472c37c0d869bc21a7c04658c923c763f9b8f6b547403fc094b03196 SHA512 df54297eebc44b3bc50fd40890c69a9cbbfc5936224bf7027065364e794d7201ceadd99ac99bf43113ec3368f2b5ca435d2956258b9c774e03a6750b41346a7c DIST motion-release-4.5.1.tar.gz 856665 BLAKE2B 59ae638113c7f08ced4b18d7c4f19e3b3f1850ba0cd4c224b300be5ac65ae3b45aa391f26f506a91bb4c38a47b552c71db846d2b3217ccf0b2f5799873ab7ddb SHA512 3b8b60ad4f41c37cc215aa575b0295ee99b15f2d32cbf3393c0f7cdd8d87616cca1c00e11cb7bf74e4afa285caa094f08df3ba62ab21dcb28a48336e3ff5803e diff --git a/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch b/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch new file mode 100644 index 000000000000..531fd3cf235a --- /dev/null +++ b/media-video/motion/files/motion-4.5.1-fix-gettext-0.22-format-specifier.patch @@ -0,0 +1,34 @@ +https://github.com/Motion-Project/motion/pull/1681 + +From 6c00ca93d87229ee28b052af4a4b4aefad14499b Mon Sep 17 00:00:00 2001 +From: David Seifert <soap@gentoo.org> +Date: Mon, 26 Jun 2023 19:56:18 +0200 +Subject: [PATCH 1/2] po: fix gettext 0.22 format specifier + +Bug: https://bugs.gentoo.org/908965 +Bug: https://savannah.gnu.org/bugs/index.php?64334#comment1 +--- a/po/de.po ++++ b/po/de.po +@@ -3458,7 +3458,7 @@ msgstr "Sprache: Deutsch" + #: src/util.c + #, c-format + msgid "Could not allocate %llu bytes of memory!" +-msgstr "%Llu Bytes Speicher konnten nicht zugeordnet werden!" ++msgstr "%llu Bytes Speicher konnten nicht zugeordnet werden!" + + #: src/util.c + #, c-format +--- a/po/fi.po ++++ b/po/fi.po +@@ -3432,7 +3432,7 @@ msgstr "Kieli: englanti" + #: src/util.c + #, c-format + msgid "Could not allocate %llu bytes of memory!" +-msgstr "%Llu-tavua muistia ei voitu varata!" ++msgstr "%llu-tavua muistia ei voitu varata!" + + #: src/util.c + #, c-format +-- +2.41.0 + diff --git a/media-video/motion/files/motion.initd-r5 b/media-video/motion/files/motion.initd-r5 index b13ac5d0b5b7..4d7b43af585b 100644 --- a/media-video/motion/files/motion.initd-r5 +++ b/media-video/motion/files/motion.initd-r5 @@ -13,6 +13,8 @@ command=/usr/bin/motion command_user="${MOTION_USER}:${MOTION_GROUP}" +extra_started_commands="reload" +description_reload="Reread the config file" start_pre() { if [ "${MOTION_DIR}" ] ; then @@ -20,7 +22,7 @@ start_pre() { directory="${MOTION_DIR}" fi if [ "${MOTION_LOGFILE}" ] ; then - checkpath -f -o "${MOTION_USER}":"${MOTION_GROUP}" "${LOGFILE}" + checkpath -f -o "${MOTION_USER}":"${MOTION_GROUP}" "${MOTION_LOGFILE}" fi if [ "${MOTION_PIDFILE}" ] ; then pidfile="${MOTION_PIDFILE}" @@ -35,3 +37,13 @@ depend() { after bootmisc use mysql postgresq } + +reload() { + ebegin "Reloading ${RC_SVCNAME}" + if [ "${MOTION_PIDFILE}" ] ; then + start-stop-daemon --signal SIGHUP --pidfile "${MOTION_PIDFILE}" + else + supervise-daemon ${RC_SVCNAME} --signal SIGHUP + fi + eend $? +} diff --git a/media-video/motion/files/motion.service-r4 b/media-video/motion/files/motion.service-r4 index 1564fb2699c4..66143f0e204b 100644 --- a/media-video/motion/files/motion.service-r4 +++ b/media-video/motion/files/motion.service-r4 @@ -13,6 +13,7 @@ Documentation=man:motion(1) Type=simple ExecStart=/usr/bin/motion -n -c /etc/motion/motion.conf StandardError=null +ExecReload=/bin/kill -HUP $MAINPID User=motion Group=motion diff --git a/media-video/motion/motion-4.3.2-r1.ebuild b/media-video/motion/motion-4.3.2-r1.ebuild deleted file mode 100644 index 4bf353fb7643..000000000000 --- a/media-video/motion/motion-4.3.2-r1.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools readme.gentoo-r1 systemd - -DESCRIPTION="A software motion detector" -HOMEPAGE="https://motion-project.github.io" -SRC_URI="https://github.com/Motion-Project/${PN}/archive/release-${PV}.tar.gz -> ${PN}-release-${PV}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" -IUSE="ffmpeg mariadb mmal mysql postgres sqlite v4l webp" - -RDEPEND=" - acct-group/motion - acct-user/motion - net-libs/libmicrohttpd:= - virtual/jpeg:= - ffmpeg? ( media-video/ffmpeg:0= ) - mariadb? ( dev-db/mariadb-connector-c ) - mmal? ( media-libs/raspberrypi-userland ) - mysql? ( dev-db/mysql-connector-c ) - postgres? ( dev-db/postgresql:= ) - sqlite? ( dev-db/sqlite:3 ) - webp? ( media-libs/libwebp:= ) -" -DEPEND="${RDEPEND} - v4l? ( - media-libs/libv4l - virtual/os-headers - ) -" - -# Breaks src_install(), #727056 -RESTRICT="test" - -DISABLE_AUTOFORMATTING="yes" -DOC_CONTENTS=" -You need to setup a configuraton file (/etc/motion/motion.conf) before -running motion for the first time. - -If motion is built with the mysql or mariadb use flags then please make -sure to configure a matching database_type in the config file. - -Motion runs by default under user motion and group motion: -- change this if needed in /etc/conf.d/motion -- or add users who need access to the output files to the motion group - -To install motion as a service, use: -- rc-update add motion default # with OpenRC -- systemctl enable motion.service # with systemd -" - -S="${WORKDIR}"/${PN}-release-${PV} - -src_prepare() { - default - eautoreconf -} - -src_configure() { - econf \ - $(use_with ffmpeg) \ - $(use_with mariadb) \ - $(use_with mmal) \ - $(use_with mysql) \ - $(use_with postgres pgsql) \ - $(use_with sqlite sqlite3) \ - $(use_with v4l v4l2) \ - $(use_with webp) \ - --without-optimizecpu -} - -src_install() { - emake \ - DESTDIR="${D}" \ - docdir=/usr/share/doc/${PF} \ - examplesdir=/usr/share/doc/${PF}/examples \ - install - - newinitd "${FILESDIR}/motion.initd-r5" ${PN} - newconfd "${FILESDIR}/motion.confd-r5" ${PN} - systemd_newunit "${FILESDIR}/${PN}.service-r4" "${PN}.service" - readme.gentoo_create_doc - readme.gentoo_print_elog -} diff --git a/media-video/motion/motion-4.5.1.ebuild b/media-video/motion/motion-4.5.1-r2.ebuild index ee5f5d8492c9..8e786bb8fe9e 100644 --- a/media-video/motion/motion-4.5.1.ebuild +++ b/media-video/motion/motion-4.5.1-r2.ebuild @@ -8,10 +8,11 @@ inherit autotools readme.gentoo-r1 systemd DESCRIPTION="A software motion detector" HOMEPAGE="https://motion-project.github.io" SRC_URI="https://github.com/Motion-Project/${PN}/archive/release-${PV}.tar.gz -> ${PN}-release-${PV}.tar.gz" +S="${WORKDIR}/${PN}-release-${PV}" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc x86" IUSE="ffmpeg mariadb mmal mysql postgres sqlite v4l webp" RDEPEND=" @@ -34,6 +35,9 @@ DEPEND="${RDEPEND} virtual/os-headers ) " + +PATCHES=( "${FILESDIR}"/${P}-fix-gettext-0.22-format-specifier.patch ) + DISABLE_AUTOFORMATTING="yes" DOC_CONTENTS=" You need to setup a configuraton file (/etc/motion/motion.conf) before @@ -51,8 +55,6 @@ To install motion as a service, use: - systemctl enable motion.service # with systemd " -S="${WORKDIR}"/${PN}-release-${PV} - src_prepare() { default eautoreconf diff --git a/media-video/movit/movit-1.6.3-r1.ebuild b/media-video/movit/movit-1.6.3-r1.ebuild index bc9144f4e5d9..a874a7ac114f 100644 --- a/media-video/movit/movit-1.6.3-r1.ebuild +++ b/media-video/movit/movit-1.6.3-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -20,7 +20,7 @@ RESTRICT="test" RDEPEND="media-libs/mesa[X(+)] >=dev-cpp/eigen-3.2.0:3 - media-libs/libepoxy[egl] + media-libs/libepoxy[egl,X] >=sci-libs/fftw-3:= media-libs/libsdl2" DEPEND="${RDEPEND}" diff --git a/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild b/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild index 5068956f28e9..dc1a6db034c7 100644 --- a/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild +++ b/media-video/mpgtx/mpgtx-1.3.1-r2.ebuild @@ -11,7 +11,7 @@ HOMEPAGE="http://mpgtx.sourceforge.net/" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-solaris" +KEYWORDS="amd64 ppc x86 ~amd64-linux ~x86-linux ~ppc-macos" PATCHES=( "${FILESDIR}"/${P}-configure.patch diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest index 9fb82b326254..00ffd71a6226 100644 --- a/media-video/mplayer/Manifest +++ b/media-video/mplayer/Manifest @@ -1,5 +1,5 @@ -DIST MPlayer-1.5.tar.xz 15379972 BLAKE2B 33c09025a9c521e1bc09a50fabb04e89493cbc4117afb3d5769e17b7dd621e44441a8d9f5a3cce2316c781ed701131a966abb02d64976adee9e5f40b7b475e7f SHA512 05fe1edf23cec53be676333b6299df4b3f1ee746e5ccd96dc0bed550e7a1602ba7ba182c1cc23fcac67aacde849a46628b1dcab8ee3d3d4117415c11b6a6ad74 DIST font-arial-cp1250.tar.bz2 249705 BLAKE2B eb4366a110d917dc975b8add168ab43b1e8a0db7342647f69f5421fc1170719015c97ffa770e89892cbb4cee8e5b2fb74a4772c8f6cbef9606ee12c3746d78c9 SHA512 4f77ff5ceb8ec6e5d9f8f34d8950a6a6276d1fd5a947772fcbdb6554988b1ea665c12b82f45164f91fb7bd08000cb4afc26fa35beb4c760464160e22b9b8c340 DIST font-arial-iso-8859-1.tar.bz2 234242 BLAKE2B 0671854e1a257d27b502affb59de681942a93990d3ac2575bbf1a6dd9eef026969f2f9ce4e9c11a68ea3d8aed48063f826a1e153f7468437a39791672c92a5d0 SHA512 a1d03b6f09c48f48b7733f3bc0402ceab239a9abf88b860d852ea9fe69b4da690208a79d6f29d30204f5b37becf10672e8e8c0bfef201846d80ec54df617d029 DIST font-arial-iso-8859-2.tar.bz2 222208 BLAKE2B 94b1a04672bf9b4b20a0e6981591e761f751bd637deddcb801855296c525bf3b5e8feb1cb11cef282c0269f2c963ded22846089076e7e6763f258b8a932af454 SHA512 5671e628303fd816f64a51ad10e2f4dd9c3dc1b34c379a2ecf489b83931db7af668aaa4e00e96a00cacd63ed98daeae6b6a4d5925edfb06fc98d3a923f70257d DIST mplayer-1.5_p20230215.tar.xz 15454028 BLAKE2B 08012f9b955921d832ab268a6e52e22e018b669787ff5e1c1ac734bd85083138551ad1065d5e4f5f9c977b804f8135ee89d2fd0590fb7228d4916b458cc58efa SHA512 f93d222817ff59ac7708956d6e8d5e9ee2084b4e724f66ea9fe4ffd477b864c2d0546d8df97511d499495ee446239645216a1e027d70eed434a3c64331f5ac73 +DIST mplayer-1.5_p20230618.tar.xz 15101476 BLAKE2B 74f1d2d579c83330d8bf1e1ce2a89592f62142f361ff0e4107710c80de4351a5807e344869cb55ff5b5856efaedb6cfe242483f8e7f97521b805f84ca23e3818 SHA512 874e76b3edfccb7475349d954ed49860f92a5e99f0374084f5da53af35326365bb064c460fb6527d2fb6d8ae20d9e059ba197f45d4de42bc7a78992b5191a7cb diff --git a/media-video/mplayer/mplayer-1.5_p20230215.ebuild b/media-video/mplayer/mplayer-1.5_p20230215.ebuild index 31de25e10b42..02a665bdb3cb 100644 --- a/media-video/mplayer/mplayer-1.5_p20230215.ebuild +++ b/media-video/mplayer/mplayer-1.5_p20230215.ebuild @@ -166,7 +166,7 @@ RDEPEND+="selinux? ( sec-policy/selinux-mplayer )" LICENSE="GPL-2" SLOT="0" if [[ ${PV} != *9999* ]]; then - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86" fi # faac codecs are nonfree diff --git a/media-video/mplayer/mplayer-1.5.ebuild b/media-video/mplayer/mplayer-1.5_p20230618.ebuild index 4f171b4f094c..7f503efeaf49 100644 --- a/media-video/mplayer/mplayer-1.5.ebuild +++ b/media-video/mplayer/mplayer-1.5_p20230618.ebuild @@ -11,12 +11,16 @@ if [[ ${PV} == *9999* ]]; then RELEASE_URI="" inherit subversion git-r3 -elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" ]]; then +elif [[ "${PV%_rc*}" == "${PV}" && "${PV%_pre*}" == "${PV}" && "${PV%_p*}" == "${PV}" ]]; then MY_P="MPlayer-${PV}" S="${WORKDIR}/${MY_P}" RELEASE_URI="mirror://mplayer/releases/${MY_P}.tar.xz" else - RELEASE_URI="mirror://gentoo/${P}.tar.xz" + # If necessary, don't be afraid to make a snapshot. + # http://www.mplayerhq.hu/design7/dload.html says: + # "We recommend to always use the latest SVN to get the all the new + # features and bugfixes, especially if the release date above looks old." + RELEASE_URI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}.tar.xz" fi FONT_URI=" @@ -32,12 +36,15 @@ SRC_URI=" !truetype? ( ${FONT_URI} ) " -IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cpu_flags_x86_fma4" +IUSE="cpu_flags_x86_avx cpu_flags_x86_avx2" +IUSE+=" cpu_flags_x86_fma3 cpu_flags_x86_fma4" IUSE+=" cpu_flags_x86_mmx cpu_flags_x86_mmxext" IUSE+=" cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1" IUSE+=" cpu_flags_x86_sse4_2 cpu_flags_x86_xop" IUSE+=" cpu_flags_x86_3dnow cpu_flags_x86_3dnowext" +IUSE+=" cpu_flags_arm_thumb cpu_flags_arm_neon cpu_flags_arm_vfp cpu_flags_arm_vfpv3" +IUSE+=" cpu_flags_arm_iwmmxt" IUSE+=" cpu_flags_ppc_altivec" IUSE+=" a52 aalib +alsa aqua bidi bl bluray" @@ -66,10 +73,9 @@ X_RDEPS=" # nemesi? ( net-libs/libnemesi ) # - mplayer relies on private APIs in giflib that have been removed: # https://sourceforge.net/p/giflib/bugs/132/ -# - depends on <ffmpeg-5 for bug #876760, a snapshot may help though. RDEPEND=" app-arch/bzip2 - <media-video/ffmpeg-5:=[vdpau?] + >=media-video/ffmpeg-4.0:=[vdpau?] sys-libs/ncurses:= sys-libs/zlib a52? ( media-libs/a52dec ) @@ -163,7 +169,7 @@ RDEPEND+="selinux? ( sec-policy/selinux-mplayer )" LICENSE="GPL-2" SLOT="0" if [[ ${PV} != *9999* ]]; then - KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv ~sparc x86" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86" fi # faac codecs are nonfree @@ -265,7 +271,7 @@ src_configure() { # Set LINGUAS [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}" - [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968 + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" # bug #482968 # mplayer ebuild uses "use foo || --disable-foo" to forcibly disable # compilation in almost every situation. The reason for this is @@ -458,14 +464,21 @@ src_configure() { # Platform specific flags, hardcoded on amd64 (see below) use cpudetection && myconf+=( --enable-runtime-cpudetection ) - uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop" - for i in ${uses}; do + local x86_uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop" + for i in ${x86_uses}; do myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) ) done - myconf+=( $(use_enable cpu_flags_x86_sse4_1 sse4) ) - myconf+=( $(use_enable cpu_flags_x86_sse4_2 sse42) ) + myconf+=( + $(use_enable cpu_flags_x86_sse4_1 sse4) + $(use_enable cpu_flags_x86_sse4_2 sse42) + ) myconf+=( + $(use_enable cpu_flags_arm_iwmmxt iwmmxt) + $(use_enable cpu_flags_arm_thumb thumb) + $(use_enable cpu_flags_arm_neon neon) + $(use_enable cpu_flags_arm_vfp armvfp) + $(use_enable cpu_flags_arm_vfpv3 vfpv3) $(use_enable cpu_flags_ppc_altivec altivec) $(use_enable shm) ) @@ -600,7 +613,7 @@ src_install() { _EOF_ fi - # bug 256203 + # bug #256203 if use rar; then cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_ unrarexec=${EPREFIX}/usr/bin/unrar diff --git a/media-video/mplayer/mplayer-9999.ebuild b/media-video/mplayer/mplayer-9999.ebuild index 31de25e10b42..8abf788096fd 100644 --- a/media-video/mplayer/mplayer-9999.ebuild +++ b/media-video/mplayer/mplayer-9999.ebuild @@ -268,7 +268,7 @@ src_configure() { # Set LINGUAS [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/da/dk}" - [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" #482968 + [[ -n ${LINGUAS} ]] && LINGUAS="${LINGUAS/zh/zh_CN}" # bug #482968 # mplayer ebuild uses "use foo || --disable-foo" to forcibly disable # compilation in almost every situation. The reason for this is @@ -461,6 +461,7 @@ src_configure() { # Platform specific flags, hardcoded on amd64 (see below) use cpudetection && myconf+=( --enable-runtime-cpudetection ) + # TODO: refresh this list uses="3dnow 3dnowext avx avx2 fma3 fma4 mmx mmxext sse sse2 sse3 ssse3 xop" for i in ${uses}; do myconf+=( $(use_enable cpu_flags_x86_${i} ${i}) ) @@ -603,7 +604,7 @@ src_install() { _EOF_ fi - # bug 256203 + # bug #256203 if use rar; then cat >> "${ED}/etc/mplayer/mplayer.conf" <<- _EOF_ unrarexec=${EPREFIX}/usr/bin/unrar diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest index b935d2d6787d..2848b9c4a196 100644 --- a/media-video/mpv/Manifest +++ b/media-video/mpv/Manifest @@ -1,2 +1,2 @@ -DIST mpv-0.35.0.tar.gz 3365752 BLAKE2B 9b8dca943fc60a68f8474549d75c021dd9157195253c5ec09721969e500b2756c033e86975499f5632f0c943ac7bb54699f47340f0dee73d7284668d4419b17f SHA512 d5c1f734057f6b6c27e7f59de43cf7c0e7f813d842b8c7fd2ae1073dbe649c8187b7686df4efe928db2952e9f1efc171245e6f8780c1d9f174f4d7abff1e073a DIST mpv-0.35.1.tar.gz 3367913 BLAKE2B 706a2031a2ca973eb3a092ec7f62ba40ca4dfd78e3ffe5d6e432486b0018852b034152a21805be594054178ccb17856dafe2b860cddcc22d27df895d163871de SHA512 42f3564a9ed4d972d14b2c697b0163f06a8bb68a0606a86c34935181247c783e3cb62286b445799998def0919fb13fce8b8f6453f82652d5bfaea5929119127a +DIST mpv-0.36.0.tar.gz 3409178 BLAKE2B 7260c265f02918d4caf72d8d8ecc9d4ab9783d66d675bd683a2f9c228404ad978c6fe0aa50f486b5257740176bc26f8abde7eff20d89019d5f701ec78c7743e1 SHA512 51f455a425ea5aac47acb3582d0f958a34248a2290a8d6887d22bcb9385fe8d1ab5d7f09d5408cfecfb73c1ec85d1b8ec8958e45a4941d3f711a2e580187472f diff --git a/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch b/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch new file mode 100644 index 000000000000..41392ab0839c --- /dev/null +++ b/media-video/mpv/files/mpv-0.35.1-pipewire-0.3.75.patch @@ -0,0 +1,86 @@ +Issue point that pipewire itself may apply a workaround for mpv, +so this may or may not be necessary for future pipewire versions. +Albeit the actual issue seems to be in mpv, so let's backport the +fix which appears to work properly for old 0.35.1 as well. + +Note that (unrelated to this issue), 0.35.1 is still a bit flaky +with pipewire. If have other issues with ao=pipewire you may want +to consider mpv-9999 until next release, or use ao=pulse/alsa/jack +to use through pipewire meanwhile. + +https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3374 +https://github.com/mpv-player/mpv/issues/11995 + +https://github.com/mpv-player/mpv/pull/11996 +https://github.com/mpv-player/mpv/commit/007019a303a09b098a387f607ae149705b57dc1c +From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de> +Date: Sun, 23 Jul 2023 09:10:55 +0200 +Subject: [PATCH] ao_pipewire: for_each_sink: properly check termination + condition + +Doing a pw_thread_loop_wait() without checking conditions is invalid. +The thread loop could be signalled for other reasons and in this case +the wait needs to continue. + +PipeWire added such additional signaling in +commit 33be898130f0 ("thread-loop: signal when started"). + +This meant that for_each_sink would return before the callbacks have +fired and session_has_sink() would incorrectly return "false", failing +the initialization of ao_pipewire. + +Fixes #11995 +--- a/audio/out/ao_pipewire.c ++++ b/audio/out/ao_pipewire.c +@@ -337,6 +337,11 @@ + } + + ++struct for_each_done_ctx { ++ struct pw_thread_loop *loop; ++ bool done; ++}; ++ + static const struct pw_registry_events for_each_sink_registry_events = { + .version = PW_VERSION_REGISTRY_EVENTS, + .global = for_each_sink_registry_event_global, +@@ -344,8 +349,9 @@ + + static void for_each_sink_done(void *data, uint32_t it, int seq) + { +- struct pw_thread_loop *loop = data; +- pw_thread_loop_signal(loop, false); ++ struct for_each_done_ctx *ctx = data; ++ ctx->done = true; ++ pw_thread_loop_signal(ctx->loop, false); + } + + static const struct pw_core_events for_each_sink_core_events = { +@@ -359,12 +365,16 @@ + struct priv *priv = ao->priv; + struct pw_registry *registry; + struct spa_hook core_listener; ++ struct for_each_done_ctx done_ctx = { ++ .loop = priv->loop, ++ .done = false, ++ }; + int ret = -1; + + pw_thread_loop_lock(priv->loop); + + spa_zero(core_listener); +- if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, priv->loop) < 0) ++ if (pw_core_add_listener(priv->core, &core_listener, &for_each_sink_core_events, &done_ctx) < 0) + goto unlock_loop; + + registry = pw_core_get_registry(priv->core, PW_VERSION_REGISTRY, 0); +@@ -383,7 +393,8 @@ + if (pw_registry_add_listener(registry, ®istry_listener, &for_each_sink_registry_events, &revents_ctx) < 0) + goto destroy_registry; + +- pw_thread_loop_wait(priv->loop); ++ while (!done_ctx.done) ++ pw_thread_loop_wait(priv->loop); + + spa_hook_remove(®istry_listener); + diff --git a/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch b/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch new file mode 100644 index 000000000000..d893b7b78c12 --- /dev/null +++ b/media-video/mpv/files/mpv-0.36.0-sub-match-audio.patch @@ -0,0 +1,35 @@ +Backport to restore --subs-with-matching-audio back to "yes" by default +like it was in <0.36 to spare users from confusion and/or needlessly +adjusting their configs until next version. + +https://github.com/mpv-player/mpv/issues/11854 +https://github.com/mpv-player/mpv/pull/12015 +https://github.com/mpv-player/mpv/commit/a2dd78fbc0932a4f47edbe4c41fe268095075c88 +--- a/DOCS/man/options.rst ++++ b/DOCS/man/options.rst +@@ -140,11 +140,11 @@ Track Selection + + ``--subs-with-matching-audio=<yes|no>`` + When autoselecting a subtitle track, select a full/non-forced one even if the selected +- audio stream matches your preferred subtitle language (default: no). ++ audio stream matches your preferred subtitle language (default: yes). + + ``--subs-fallback=<yes|default|no>`` + When autoselecting a subtitle track, if no tracks match your preferred languages, +- select a full track even if it doesn't match your preferred subtitle language (default: no). ++ select a full track even if it doesn't match your preferred subtitle language (default: default). + Setting this to `default` means that only streams flagged as `default` will be selected. + + ``--subs-fallback-forced=<yes|no>`` +--- a/options/options.c ++++ b/options/options.c +@@ -1040,7 +1040,8 @@ static const struct MPOpts mp_default_opts = { + [STREAM_SUB] = (char *[]){ "auto", NULL }, + }, + .stream_auto_sel = true, +- .subs_with_matching_audio = false, ++ .subs_with_matching_audio = true, ++ .subs_fallback = 1, + .subs_fallback_forced = true, + .audio_display = 1, + .audio_output_format = 0, // AF_FORMAT_UNKNOWN diff --git a/media-video/mpv/files/mpv-0.36.0-tests-odr.patch b/media-video/mpv/files/mpv-0.36.0-tests-odr.patch new file mode 100644 index 000000000000..1c7c05c20f78 --- /dev/null +++ b/media-video/mpv/files/mpv-0.36.0-tests-odr.patch @@ -0,0 +1,30 @@ +Quickfix for USE=test with -Werror=odr (stubs, so have no real consequences). + +timer.h gets indirectly included and can declare these differently, have not +looked closer yet. +--- a/test/test_utils.c ++++ b/test/test_utils.c +@@ -110,6 +110,6 @@ + #ifndef WIN32_TESTS +-void mp_add_timeout(void) {}; +-void mp_rel_time_to_timespec(void) {}; +-void mp_time_us(void) {}; +-void mp_time_us_to_timespec(void) {}; ++void mp_add_timeout(int64_t time_us, double timeout_sec) {}; ++struct timespec mp_rel_time_to_timespec(double timeout_sec) {return (struct timespec){0};}; ++int64_t mp_time_us(void) {return 0;}; ++struct timespec mp_time_us_to_timespec(int64_t time_us) {return (struct timespec){0};}; + #endif +--- a/test/test_utils.h ++++ b/test/test_utils.h +@@ -61,6 +61,6 @@ + #ifndef WIN32_TESTS +-void mp_add_timeout(void); +-void mp_rel_time_to_timespec(void); +-void mp_time_us(void); +-void mp_time_us_to_timespec(void); ++void mp_add_timeout(int64_t time_us, double timeout_sec); ++struct timespec mp_rel_time_to_timespec(double timeout_sec); ++int64_t mp_time_us(void); ++struct timespec mp_time_us_to_timespec(int64_t time_us); + #endif diff --git a/media-video/mpv/metadata.xml b/media-video/mpv/metadata.xml index f635e0d7c024..7ae1bd6e2875 100644 --- a/media-video/mpv/metadata.xml +++ b/media-video/mpv/metadata.xml @@ -27,7 +27,6 @@ <flag name="sndio">Enable sound support via <pkg>media-sound/sndio</pkg></flag> <flag name="tools">Install extra tools: mpv_identify.sh, mpv_idet.sh, and umpv</flag> <flag name="uchardet">Enable subtitles charset discovery via <pkg>app-i18n/uchardet</pkg></flag> - <flag name="vulkan">Enable support for Vulkan-based video backends</flag> <flag name="zimg">Enable libzimg support (for vf_fingerprint)</flag> </use> <upstream> diff --git a/media-video/mpv/mpv-0.35.1-r1.ebuild b/media-video/mpv/mpv-0.35.1-r2.ebuild index 4ee310fc3829..f41aea9d7e6f 100644 --- a/media-video/mpv/mpv-0.35.1-r1.ebuild +++ b/media-video/mpv/mpv-0.35.1-r2.ebuild @@ -4,7 +4,7 @@ EAPI=8 LUA_COMPAT=( lua5-1 luajit ) -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg if [[ ${PV} == 9999 ]]; then @@ -87,6 +87,7 @@ COMMON_DEPEND=" libcaca? ( media-libs/libcaca ) libplacebo? ( >=media-libs/libplacebo-4.202:=[opengl?,vulkan?] + <media-libs/libplacebo-6 egl? ( media-libs/libplacebo[opengl] ) ) lua? ( ${LUA_DEPS} ) @@ -135,6 +136,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${P}-yt-dlp-edl-fragments.patch + "${FILESDIR}"/${P}-pipewire-0.3.75.patch ) pkg_setup() { diff --git a/media-video/mpv/mpv-0.35.0-r1.ebuild b/media-video/mpv/mpv-0.36.0-r1.ebuild index 355a3f826dcd..a1e1203ee5d1 100644 --- a/media-video/mpv/mpv-0.35.0-r1.ebuild +++ b/media-video/mpv/mpv-0.36.0-r1.ebuild @@ -4,15 +4,15 @@ EAPI=8 LUA_COMPAT=( lua5-1 luajit ) -PYTHON_COMPAT=( python3_{9..11} ) -inherit edo flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg +PYTHON_COMPAT=( python3_{10..12} ) +inherit flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" else SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~loong ppc ppc64 ~riscv x86 ~amd64-linux" + KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv x86 ~amd64-linux" fi DESCRIPTION="Media player for the command line" @@ -25,7 +25,7 @@ IUSE=" dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv +libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio raspberry-pi rubberband sdl selinux sixel sndio test tools +uchardet - vaapi vdpau vulkan wayland +xv zimg zlib" + vaapi vdpau vulkan wayland xv zimg zlib" REQUIRED_USE=" ${PYTHON_REQUIRED_USE} || ( cli libmpv ) @@ -49,7 +49,7 @@ RESTRICT="!test? ( test )" # raspberry-pi: default to -bin given non-bin is known broken (bug #893422) COMMON_DEPEND=" media-libs/libass:=[fontconfig] - media-video/ffmpeg:=[encode,threads,vaapi?,vdpau?] + >=media-video/ffmpeg-4.4:=[encode,threads,vaapi?,vdpau?] X? ( x11-libs/libX11 x11-libs/libXScrnSaver @@ -86,7 +86,7 @@ COMMON_DEPEND=" lcms? ( media-libs/lcms:2 ) libcaca? ( media-libs/libcaca ) libplacebo? ( - >=media-libs/libplacebo-4.202:=[opengl?,vulkan?] + >=media-libs/libplacebo-4.157:=[opengl?,vulkan?] egl? ( media-libs/libplacebo[opengl] ) ) lua? ( ${LUA_DEPS} ) @@ -133,17 +133,16 @@ BDEPEND=" cli? ( dev-python/docutils ) wayland? ( dev-util/wayland-scanner )" +PATCHES=( + "${FILESDIR}"/${PN}-0.36.0-tests-odr.patch + "${FILESDIR}"/${PN}-0.36.0-sub-match-audio.patch +) + pkg_setup() { use lua && lua-single_pkg_setup python-single-r1_pkg_setup } -src_prepare() { - default - - sed -i "s/'rst2html/&.py/" meson.build || die -} - src_configure() { if use !debug; then if use test; then @@ -153,11 +152,6 @@ src_configure() { fi fi - if use raspberry-pi; then - append-cflags -I"${ESYSROOT}"/opt/vc/include - append-ldflags -L"${ESYSROOT}"/opt/vc/lib - fi - mpv_feature_multi() { local use set for use in ${1} ${2}; do @@ -249,29 +243,18 @@ src_configure() { $(mpv_feature_multi vdpau opengl vdpau-gl-x11) $(mpv_feature_multi aqua opengl videotoolbox-gl) - ) - meson_src_configure -} - -src_test() { - # https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst#debugging - local tests=($("${BUILD_DIR}"/mpv --no-config --unittest=help | tail -n +2; assert)) - (( ${#tests[@]} )) || die "failed to gather any tests" - - local skip=( - all-simple - - # fails on non-issue minor inconsistencies (bug #888639) - img_format - repack_sws + # notable options left to automagic + #dmabuf-wayland: USE="drm wayland" + plus memfd_create support + #libplacebo-next: USE="libplacebo" + >=libplacebo-5.264 + #vulkan-interop: USE="libplacebo vulkan" + ffmpeg-9999 currently + # TODO?: perhaps few more similar compound options should be left auto ) - local test - for test in "${tests[@]}"; do - [[ ${test} == @($(IFS='|'; echo "${skip[*]}")) ]] || - edo "${BUILD_DIR}"/mpv -v --no-config --unittest="${test}" - done + has_version '>=media-libs/libplacebo-5.264' || + ewarn "${PN}'s gpu-next video output requires ${_} to be used" + + meson_src_configure } src_install() { diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild index bdc142fe6cd6..1175525fffac 100644 --- a/media-video/mpv/mpv-9999.ebuild +++ b/media-video/mpv/mpv-9999.ebuild @@ -4,7 +4,7 @@ EAPI=8 LUA_COMPAT=( lua5-1 luajit ) -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit flag-o-matic lua-single meson optfeature pax-utils python-single-r1 xdg if [[ ${PV} == 9999 ]]; then @@ -12,7 +12,7 @@ if [[ ${PV} == 9999 ]]; then EGIT_REPO_URI="https://github.com/mpv-player/mpv.git" else SRC_URI="https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux" fi DESCRIPTION="Media player for the command line" @@ -24,8 +24,9 @@ IUSE=" +X +alsa aqua archive bluray cdda +cli coreaudio debug +drm dvb dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv +libplacebo +lua mmal nvenc openal opengl pipewire pulseaudio - raspberry-pi rubberband sdl selinux sixel sndio test tools +uchardet - vaapi vdpau vulkan wayland +xv zimg zlib" + raspberry-pi rubberband sdl selinux sixel sndio test tools + +uchardet vaapi vdpau vulkan wayland xv zimg zlib +" REQUIRED_USE=" ${PYTHON_REQUIRED_USE} || ( cli libmpv ) @@ -37,13 +38,11 @@ REQUIRED_USE=" test? ( cli ) tools? ( cli ) uchardet? ( iconv ) - vaapi? ( - || ( X egl libplacebo wayland ) - wayland? ( drm ) - ) + vaapi? ( || ( X drm wayland ) ) vdpau? ( X ) vulkan? ( || ( X wayland ) libplacebo ) - xv? ( X )" + xv? ( X ) +" RESTRICT="!test? ( test )" # raspberry-pi: default to -bin given non-bin is known broken (bug #893422) @@ -54,7 +53,6 @@ COMMON_DEPEND=" x11-libs/libX11 x11-libs/libXScrnSaver x11-libs/libXext - x11-libs/libXinerama x11-libs/libXpresent x11-libs/libXrandr xv? ( x11-libs/libXv ) @@ -67,8 +65,8 @@ COMMON_DEPEND=" dev-libs/libcdio:= ) drm? ( - media-libs/mesa[gbm(+)] x11-libs/libdrm + egl? ( media-libs/mesa[gbm(+)] ) ) dvd? ( media-libs/libdvdnav @@ -86,7 +84,7 @@ COMMON_DEPEND=" lcms? ( media-libs/lcms:2 ) libcaca? ( media-libs/libcaca ) libplacebo? ( - >=media-libs/libplacebo-5.264:=[opengl?,vulkan?] + >=media-libs/libplacebo-6.292:=[opengl?,vulkan?] egl? ( media-libs/libplacebo[opengl] ) ) lua? ( ${LUA_DEPS} ) @@ -116,22 +114,26 @@ COMMON_DEPEND=" x11-libs/libxkbcommon ) zimg? ( media-libs/zimg ) - zlib? ( sys-libs/zlib:= )" + zlib? ( sys-libs/zlib:= ) +" RDEPEND=" ${COMMON_DEPEND} selinux? ( sec-policy/selinux-mplayer ) - tools? ( ${PYTHON_DEPS} )" + tools? ( ${PYTHON_DEPS} ) +" DEPEND=" ${COMMON_DEPEND} X? ( x11-base/xorg-proto ) dvb? ( virtual/linuxtv-dvb-headers ) nvenc? ( media-libs/nv-codec-headers ) - wayland? ( dev-libs/wayland-protocols )" + wayland? ( dev-libs/wayland-protocols ) +" BDEPEND=" ${PYTHON_DEPS} virtual/pkgconfig cli? ( dev-python/docutils ) - wayland? ( dev-util/wayland-scanner )" + wayland? ( dev-util/wayland-scanner ) +" pkg_setup() { use lua && lua-single_pkg_setup @@ -200,11 +202,9 @@ src_configure() { $(meson_feature X x11) $(meson_feature aqua cocoa) $(meson_feature drm) - $(meson_feature drm gbm) $(meson_feature jpeg) $(meson_feature libcaca caca) $(meson_feature libplacebo) - $(meson_feature libplacebo libplacebo-next) $(meson_feature mmal rpi-mmal) $(meson_feature sdl sdl2-video) $(meson_feature sixel) @@ -215,6 +215,7 @@ src_configure() { echo enabled || echo disabled) $(meson_feature egl) $(mpv_feature_multi egl X egl-x11) + $(mpv_feature_multi egl drm gbm) # gbm is only used by egl-drm $(mpv_feature_multi egl drm egl-drm) $(mpv_feature_multi egl wayland egl-wayland) $(meson_feature libmpv plain-gl) @@ -231,14 +232,18 @@ src_configure() { $(meson_feature vaapi) $(mpv_feature_multi vaapi X vaapi-x11) - $(mpv_feature_multi 'vaapi X' egl vaapi-x-egl) - $(mpv_feature_multi 'vaapi egl' drm vaapi-drm) - $(mpv_feature_multi 'vaapi egl' wayland vaapi-wayland) + $(mpv_feature_multi vaapi drm vaapi-drm) + $(mpv_feature_multi vaapi wayland vaapi-wayland) $(meson_feature vdpau) $(mpv_feature_multi vdpau opengl vdpau-gl-x11) $(mpv_feature_multi aqua opengl videotoolbox-gl) + + # notable options left to automagic + #dmabuf-wayland: USE="drm wayland" + plus memfd_create support + #vulkan-interop: USE="libplacebo vulkan" + ffmpeg-9999 currently + # TODO?: perhaps few more similar compound options should be left auto ) meson_src_configure diff --git a/media-video/noad/noad-0.8.8.ebuild b/media-video/noad/noad-0.8.8.ebuild index 72ad06e5416b..408b4c6b7d02 100644 --- a/media-video/noad/noad-0.8.8.ebuild +++ b/media-video/noad/noad-0.8.8.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://github.com/madmartin/noad/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="+ffmpeg imagemagick libmpeg2" REQUIRED_USE="|| ( ffmpeg libmpeg2 )" diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest index ec43a65b2f63..bf83729d1000 100644 --- a/media-video/obs-studio/Manifest +++ b/media-video/obs-studio/Manifest @@ -1,11 +1,5 @@ -DIST asio-b73dc1d2c0ecb9452a87c26544d7f71e24342df6.tar.gz 1211725 BLAKE2B 8ffe536e9398b23910deab9889136ac5cb2a39e26982826252400737ea68d201e11bf16f13f20bd4c777fc7ff718da5ef8d329747065c62e61306fc1448f3908 SHA512 91245741fe6e7ce8eec6897f222b05cfa9474f93487272d8ca84ec56679afd5cddff2cf07f30cdd6516149e0a138b8a7396b1a7c02a46044b38f4e60addcbf8a DIST cef_binary_5060_linux64.tar.bz2 132839531 BLAKE2B f7d342cf12bf435aab3873b666a47c42c6583a88f140c28dabfd2dd860cd0d5c96cc51cc034703bffc6f1094a738bd77008c01839fa5ea53b848bc1c483a0ae4 SHA512 c99ce53858c57becd7822e39ff81d59b7296374fa61b29dfd4a572c2ed8f9ab155114ed179764ea05586e0edb2f1654f0b73c471f1cd9b233660e7f1c8b462c4 -DIST json-a34e011e24beece3b69397a03fdc650546f052c3.tar.gz 6860722 BLAKE2B 433b499f24859153171654f3fd0fa9afd4ceb8b21a159185a424084b940d8496f8952c0291a52d85009dde16c46e45d5a206f354d043f4d010a29a1f18965d87 SHA512 a7c64517377274479bc3060163a2a7ed0a8780c12dc193287c060f04dfd742ffe8832c930bec75eb0b36f8290044c31530260a614aabae90367f6ccfd4b711f3 -DIST obs-browser-1c2264d722f065646b72ac654f6ddbb6843f9bef.tar.gz 110765 BLAKE2B 99ceb51dc1a39c5abab26c6e5f1be63eb0cfaeb7e102ed07a4dc6a16d477e46e7499f1e9beca81d479683374d03e3c08c9ceeb34d04a733ae34c0688bb4ad1c0 SHA512 bddfa7914559405331c10a9589f46c17013cdbd361423e71763a4d8d4d521c53dc5df4d7581ff7bf0c9136627024e017bfb08b4a996b33e609cddbae41b5c878 -DIST obs-browser-e2310b02df3e6c184fe6eb6608244a82e37f582e.tar.gz 109012 BLAKE2B a2f3d9e1a3dbc3aa4d00423e743633038d59ce501626941a21ef0cf78608f4190335b8b846bfef49b2f09976d4ef3bb8b19f955b2a328c375cc045b886cb367c SHA512 76494fc9415db68d2b67d832a7a5c8b035e4e379d9adb6eb8292579d12b88b92350692b24e999b1328e02f729fae4060304594d37c754ff359903193c1464aed -DIST obs-studio-28.1.2.tar.gz 18859931 BLAKE2B 08fcedb4094d6a03512139e9055116f47fbd6cf706029d2719524bc018d0dce2a774de83b603f9a7665a115e2414775b858020e0be0ccdcc6882478256392646 SHA512 9d5e7e1f2f6236b795c2c49a1a6ba43623c71f16c1c6106fae6ac99b792e15793c169fb62aea271c253b13a0fd9bc9b9ad7880315d9ee787682174a5700f85bd -DIST obs-studio-29.0.2.tar.gz 18939072 BLAKE2B 78a6b7fec520797a5c9d36e7d9a034c29c701d38a745415c3fd0ae3907831584ef4a77b833fa1a7466a23b02a06736afd34720ff3b0d3226dbb0dcab64c72931 SHA512 63a832dc6a0a7f07a2f7adf18f1412e8694405d39721144e82dedab8182e17da6f3063f547bc2b33cc7ea053f6dbb8ffda051af5bffdf9773710bd08744faf8f -DIST obs-websocket-31f9845b6132e6c1529401292bc1125401e2a324.tar.gz 238884 BLAKE2B 93a41ff9dd33cf2babaef90c961def1ae39d3b4e7d2f2542123973672c2adbd0cff987f58ce72e9c4acd8818c834531e624c376b3d297f4bdfc097e22ee4b293 SHA512 11bf28f574ec2a7b128dae53010484610465c94245881fd98eb750b59e00236f656d1ef706187a41cb42eab3e3668440d83f66399f6917e2d93b7ba6c7241ad3 -DIST obs-websocket-5716577019b1ccda01a12db2cba35a023082b7ad.tar.gz 235118 BLAKE2B 96202cf81389b82b26027680dcaa6e2bf902c9776a89895fbef859dae2986523bc5d34ad30233c29fac043611a942fb4d86e5d9d9cd4ef2a9503154a383002fe SHA512 9bb511c9693889f9837cd001fafe403762d44f2ecc80bad42e592d7555e3807a148ab19638724871b7807e71edf5f62a1e0ea62f362fd1b9a6e9bf49000b8a5c +DIST obs-browser-594115a27d40f0916e55db97cb61f7c7130cbe28.tar.gz 116455 BLAKE2B 8158bdd9fcc689c3b0024c9da26c3f39b44c9dac7fb031470470a2697f66af122552a19beb389faa96001a8f35bf06580ad3c5e00f616900e7ca960d3e1c1450 SHA512 ff1e5cbe76a1a4a7224b1b01f0f45df51dd60c7426a73008a744fb17be3e4c7a96dd3833f237a480dd4ec2dd3e544d847aced2256453919d8442f7857354afb2 +DIST obs-studio-29.1.3.tar.gz 26315797 BLAKE2B c8d7824ca280a9be566c075a6238141b00ad8a2efbd5d010ff5c92c7c12c225f473fd331a9654e23924ffb0d883734dc2d2afad5065f8c9b1486298dbe2c5a0a SHA512 563a9b71ebe273b604807b9c43be8bde58fb326e8a0b741afb84a481a99176c96bf63da2aa26b6dcc026573b7fb0bf53e0a296e2db0b93c28f0d4710cd7cf019 +DIST obs-websocket-6fd18a7ef1ecb149e8444154af1daab61d4241a9.tar.gz 245070 BLAKE2B 311037960ec230b76dfe2ae796d1897d42a2dc96cda7e9962209edfcd210e2af5d20a1ddfcffd8d4e6c9f7ac7d5cbb6818b864d53ce53acf2c6515f7dd2d33bf SHA512 94defd55e4a4dc65b4366d2e92c9604cff67cba2b24ed67d53fbd492605f339201e4d3896789c0ccb84b6fbff4b37be70475524fec5ca2b42f7b59b8596ce828 DIST qr-8518684c0f33d004fa93971be2c6a8eca3167d1e.tar.gz 135863 BLAKE2B fa6fb9c9e5250b56bdf38f31aa4acaf4ce860c153012984d1266928bd7a62dcf43b271ff53b4322931304670742566dcb016ef65ff2f681bf76224f86eca567c SHA512 ba298de89411fecc8db3dc10850485da01f5183d68b6d91ea91a9e28c1f104eb110adbf143a37e5d1856abbba5d309ab8329a6359ca7225bacb033d8044fa72c -DIST websocketpp-56123c87598f8b1dd471be83ca841ceae07f95ba.tar.gz 701544 BLAKE2B 61680c31309d8f78b27b82e1bde2c7828eae2777df0629355c557dfd8b0daef6de7d202bbcff372351e135bb62366ffc8eec6c72a99df7c46a9197773c46550c SHA512 f185a66e5a7c783254352a6ef87e2e559f681032b7368765d08393ed12bcae76825abed7dcaea73de09df644320409dad46279701f5f469520542a2c9b6a6163 diff --git a/media-video/obs-studio/metadata.xml b/media-video/obs-studio/metadata.xml index 0d746963a49f..9b0f681b3e6d 100644 --- a/media-video/obs-studio/metadata.xml +++ b/media-video/obs-studio/metadata.xml @@ -17,6 +17,7 @@ <flag name="fdk">Build with LibFDK AAC support.</flag> <flag name="pipewire">Build with PipeWire support.</flag> <flag name="python">Build with scripting support for Python 3.</flag> + <flag name="qsv">Build with Intel Quick Sync Video support.</flag> <flag name="speex">Build with Speex noise suppression filter support.</flag> <flag name="ssl">Build with TLS/SSL support for RTMPS connections.</flag> <flag name="vlc">Build with VLC media source support.</flag> diff --git a/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild b/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild deleted file mode 100644 index 08e06f6d0ca1..000000000000 --- a/media-video/obs-studio/obs-studio-28.1.2-r1.ebuild +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) -LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{9..11} ) - -inherit cmake lua-single optfeature python-single-r1 xdg - -CEF_DIR="cef_binary_5060_linux64" -ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6" -JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3" -OBS_BROWSER_COMMIT="e2310b02df3e6c184fe6eb6608244a82e37f582e" -OBS_WEBSOCKET_COMMIT="5716577019b1ccda01a12db2cba35a023082b7ad" -QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e" -WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/obsproject/obs-studio.git" - EGIT_SUBMODULES=( - plugins/obs-browser - plugins/obs-websocket - plugins/obs-websocket/deps/asio - plugins/obs-websocket/deps/json - plugins/obs-websocket/deps/qr - plugins/obs-websocket/deps/websocketpp - ) -else - SRC_URI=" - https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz - https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz - https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz - https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz - https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz - https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz - https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz - " - KEYWORDS="~amd64 ~ppc64 ~x86" -fi -SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}.tar.bz2 )" - -DESCRIPTION="Software for Recording and Streaming Live Video Content" -HOMEPAGE="https://obsproject.com" - -LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" -SLOT="0" -IUSE=" - +alsa browser decklink fdk jack lua nvenc pipewire pulseaudio - python qt6 speex +ssl truetype v4l vlc wayland websocket -" -REQUIRED_USE=" - browser? ( || ( alsa pulseaudio ) ) - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -BDEPEND=" - lua? ( dev-lang/swig ) - python? ( dev-lang/swig ) -" -DEPEND=" - dev-libs/glib:2 - dev-libs/jansson:= - media-libs/libglvnd - media-libs/x264:= - media-video/ffmpeg:=[nvenc?,x264] - net-misc/curl - sys-apps/dbus - sys-apps/pciutils - sys-libs/zlib:= - x11-libs/libX11 - x11-libs/libXcomposite - x11-libs/libXfixes - x11-libs/libxcb:= - alsa? ( media-libs/alsa-lib ) - browser? ( - || ( - >=app-accessibility/at-spi2-core-2.46.0:2 - ( app-accessibility/at-spi2-atk dev-libs/atk ) - ) - dev-libs/expat - dev-libs/glib - dev-libs/nspr - dev-libs/nss - dev-libs/wayland - media-libs/alsa-lib - media-libs/fontconfig - media-libs/mesa[gbm(+)] - net-print/cups - x11-libs/cairo - x11-libs/libdrm - x11-libs/libXcursor - x11-libs/libXdamage - x11-libs/libXext - x11-libs/libXi - x11-libs/libxkbcommon - x11-libs/libXrandr - x11-libs/libXrender - x11-libs/libXScrnSaver - x11-libs/libxshmfence - x11-libs/libXtst - x11-libs/pango - ) - fdk? ( media-libs/fdk-aac:= ) - jack? ( virtual/jack ) - lua? ( ${LUA_DEPS} ) - pipewire? ( media-video/pipewire:= ) - pulseaudio? ( media-libs/libpulse ) - python? ( ${PYTHON_DEPS} ) - qt6? ( - dev-qt/qtbase:6[network,widgets,xml(+)] - dev-qt/qtsvg:6 - x11-libs/libxkbcommon - ) - !qt6? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5[wayland?] - dev-qt/qtnetwork:5 - dev-qt/qtquickcontrols:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - ) - speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) - truetype? ( - media-libs/fontconfig - media-libs/freetype - ) - v4l? ( - media-libs/libv4l - virtual/udev - ) - vlc? ( media-video/vlc:= ) - wayland? ( - dev-libs/wayland - x11-libs/libxkbcommon - ) -" -RDEPEND="${DEPEND}" - -QA_PREBUILT=" - usr/lib*/obs-plugins/chrome-sandbox - usr/lib*/obs-plugins/libcef.so - usr/lib*/obs-plugins/libEGL.so - usr/lib*/obs-plugins/libGLESv2.so - usr/lib*/obs-plugins/libvk_swiftshader.so - usr/lib*/obs-plugins/libvulkan.so.1 - usr/lib*/obs-plugins/swiftshader/libEGL.so - usr/lib*/obs-plugins/swiftshader/libGLESv2.so -" - -pkg_setup() { - use lua && lua-single_pkg_setup - use python && python-single-r1_pkg_setup -} - -src_unpack() { - default - - if [[ ${PV} == 9999 ]]; then - git-r3_src_unpack - else - rm -d ${P}/plugins/obs-browser || die - mv obs-browser-${OBS_BROWSER_COMMIT} ${P}/plugins/obs-browser || die - - rm -d ${P}/plugins/obs-websocket || die - mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die - - rm -d ${P}/plugins/obs-websocket/deps/asio || die - mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die - - rm -d ${P}/plugins/obs-websocket/deps/json || die - mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die - - rm -d ${P}/plugins/obs-websocket/deps/qr || die - mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die - - rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die - mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die - fi -} - -src_configure() { - local libdir=$(get_libdir) - local mycmakeargs=( - $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR}) - -DENABLE_ALSA=$(usex alsa) - -DENABLE_AJA=OFF - -DENABLE_BROWSER=$(usex browser) - -DENABLE_DECKLINK=$(usex decklink) - -DENABLE_FREETYPE=$(usex truetype) - -DENABLE_JACK=$(usex jack) - -DENABLE_LIBFDK=$(usex fdk) - -DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt. - -DENABLE_PIPEWIRE=$(usex pipewire) - -DENABLE_PULSEAUDIO=$(usex pulseaudio) - -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861 - -DENABLE_SPEEXDSP=$(usex speex) - -DENABLE_V4L2=$(usex v4l) - -DENABLE_VLC=$(usex vlc) - -DENABLE_VST=ON - -DENABLE_WAYLAND=$(usex wayland) - -DENABLE_WEBSOCKET=$(usex websocket) - -DOBS_MULTIARCH_SUFFIX=${libdir#lib} - -DQT_VERSION=$(usex qt6 6 5) - -DUNIX_STRUCTURE=1 - ) - - if [[ ${PV} != 9999 ]]; then - mycmakeargs+=( - -DOBS_VERSION_OVERRIDE=${PV} - ) - fi - - if use lua || use python; then - mycmakeargs+=( - -DENABLE_SCRIPTING_LUA=$(usex lua) - -DENABLE_SCRIPTING_PYTHON=$(usex python) - -DENABLE_SCRIPTING=ON - ) - else - mycmakeargs+=( -DENABLE_SCRIPTING=OFF ) - fi - - if use browser && use ssl; then - mycmakeargs+=( -DENABLE_WHATSNEW=ON ) - else - mycmakeargs+=( -DENABLE_WHATSNEW=OFF ) - fi - - cmake_src_configure -} - -src_install() { - cmake_src_install - - # external plugins may need some things not installed by default, install them here - insinto /usr/include/obs/UI/obs-frontend-api - doins UI/obs-frontend-api/obs-frontend-api.h -} - -pkg_postinst() { - xdg_pkg_postinst - - if ! use alsa && ! use pulseaudio; then - elog - elog "For the audio capture features to be available," - elog "at least one of the 'alsa' or 'pulseaudio' USE-flags needs to" - elog "be enabled." - elog - fi - - if use v4l && has_version media-video/v4l2loopback; then - elog - elog "Depending on system configuration, the v4l2loopback kernel module" - elog "may need to be loaded manually, and needs to be re-built after" - elog "kernel changes." - elog - fi - - optfeature "virtual camera support" media-video/v4l2loopback -} diff --git a/media-video/obs-studio/obs-studio-29.0.2.ebuild b/media-video/obs-studio/obs-studio-29.1.3-r1.ebuild index a7bffc5d998a..49443e5e5190 100644 --- a/media-video/obs-studio/obs-studio-29.0.2.ebuild +++ b/media-video/obs-studio/obs-studio-29.1.3-r1.ebuild @@ -5,17 +5,14 @@ EAPI=8 CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{9..12} ) inherit cmake lua-single optfeature python-single-r1 xdg CEF_DIR="cef_binary_5060_linux64" -ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6" -JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3" -OBS_BROWSER_COMMIT="1c2264d722f065646b72ac654f6ddbb6843f9bef" -OBS_WEBSOCKET_COMMIT="31f9845b6132e6c1529401292bc1125401e2a324" +OBS_BROWSER_COMMIT="594115a27d40f0916e55db97cb61f7c7130cbe28" +OBS_WEBSOCKET_COMMIT="6fd18a7ef1ecb149e8444154af1daab61d4241a9" QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e" -WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba" if [[ ${PV} == 9999 ]]; then inherit git-r3 @@ -32,11 +29,8 @@ else SRC_URI=" https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz - https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz - https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz - https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz " KEYWORDS="~amd64 ~ppc64 ~x86" fi @@ -61,16 +55,18 @@ BDEPEND=" lua? ( dev-lang/swig ) python? ( dev-lang/swig ) " +# media-video/ffmpeg[opus] required due to bug 909566 DEPEND=" dev-libs/glib:2 dev-libs/jansson:= media-libs/libglvnd media-libs/libva media-libs/x264:= - media-video/ffmpeg:=[nvenc?,x264] + media-video/ffmpeg:=[nvenc?,opus,x264] net-misc/curl sys-apps/dbus sys-apps/pciutils + sys-apps/util-linux sys-libs/zlib:= x11-libs/libX11 x11-libs/libXcomposite @@ -140,6 +136,11 @@ DEPEND=" dev-libs/wayland x11-libs/libxkbcommon ) + websocket? ( + dev-cpp/asio + dev-cpp/nlohmann_json + dev-cpp/websocketpp + ) " RDEPEND="${DEPEND}" @@ -171,24 +172,25 @@ src_unpack() { rm -d ${P}/plugins/obs-websocket || die mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die - rm -d ${P}/plugins/obs-websocket/deps/asio || die - mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die - - rm -d ${P}/plugins/obs-websocket/deps/json || die - mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die - rm -d ${P}/plugins/obs-websocket/deps/qr || die mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die - - rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die - mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die fi } +src_prepare() { + default + + sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die + + cmake_src_prepare +} + src_configure() { local libdir=$(get_libdir) local mycmakeargs=( $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR}) + -DCALM_DEPRECATION=ON + -DCCACHE_SUPPORT=OFF -DENABLE_ALSA=$(usex alsa) -DENABLE_AJA=OFF -DENABLE_BROWSER=$(usex browser) @@ -263,5 +265,6 @@ pkg_postinst() { elog fi + optfeature "VA-API hardware encoding" media-video/ffmpeg[vaapi] optfeature "virtual camera support" media-video/v4l2loopback } diff --git a/media-video/obs-studio/obs-studio-9999.ebuild b/media-video/obs-studio/obs-studio-9999.ebuild index a7bffc5d998a..96ad2ebc7090 100644 --- a/media-video/obs-studio/obs-studio-9999.ebuild +++ b/media-video/obs-studio/obs-studio-9999.ebuild @@ -5,17 +5,14 @@ EAPI=8 CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{9..12} ) inherit cmake lua-single optfeature python-single-r1 xdg CEF_DIR="cef_binary_5060_linux64" -ASIO_COMMIT="b73dc1d2c0ecb9452a87c26544d7f71e24342df6" -JSON_COMMIT="a34e011e24beece3b69397a03fdc650546f052c3" -OBS_BROWSER_COMMIT="1c2264d722f065646b72ac654f6ddbb6843f9bef" -OBS_WEBSOCKET_COMMIT="31f9845b6132e6c1529401292bc1125401e2a324" +OBS_BROWSER_COMMIT="291464d6988083411e7369fc53eba6d5ef07ff67" +OBS_WEBSOCKET_COMMIT="6fd18a7ef1ecb149e8444154af1daab61d4241a9" QR_COMMIT="8518684c0f33d004fa93971be2c6a8eca3167d1e" -WEBSOCKETPP_COMMIT="56123c87598f8b1dd471be83ca841ceae07f95ba" if [[ ${PV} == 9999 ]]; then inherit git-r3 @@ -32,11 +29,8 @@ else SRC_URI=" https://github.com/obsproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz https://github.com/obsproject/obs-browser/archive/${OBS_BROWSER_COMMIT}.tar.gz -> obs-browser-${OBS_BROWSER_COMMIT}.tar.gz - https://github.com/chriskohlhoff/asio/archive/${ASIO_COMMIT}.tar.gz -> asio-${ASIO_COMMIT}.tar.gz https://github.com/nayuki/QR-Code-generator/archive/${QR_COMMIT}.tar.gz -> qr-${QR_COMMIT}.tar.gz - https://github.com/nlohmann/json/archive/${JSON_COMMIT}.tar.gz -> json-${JSON_COMMIT}.tar.gz https://github.com/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz - https://github.com/zaphoyd/websocketpp/archive/${WEBSOCKETPP_COMMIT}.tar.gz -> websocketpp-${WEBSOCKETPP_COMMIT}.tar.gz " KEYWORDS="~amd64 ~ppc64 ~x86" fi @@ -49,7 +43,7 @@ LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" SLOT="0" IUSE=" +alsa browser decklink fdk jack lua nvenc pipewire pulseaudio - python qt6 speex +ssl truetype v4l vlc wayland websocket + python qsv speex +ssl truetype v4l vlc wayland websocket " REQUIRED_USE=" browser? ( || ( alsa pulseaudio ) ) @@ -61,27 +55,33 @@ BDEPEND=" lua? ( dev-lang/swig ) python? ( dev-lang/swig ) " +# media-video/ffmpeg[opus] required due to bug 909566 DEPEND=" dev-libs/glib:2 dev-libs/jansson:= + dev-qt/qtbase:6[network,widgets,xml(+)] + dev-qt/qtsvg:6 media-libs/libglvnd media-libs/libva media-libs/x264:= - media-video/ffmpeg:=[nvenc?,x264] + media-video/ffmpeg:=[nvenc?,opus,x264] net-misc/curl sys-apps/dbus sys-apps/pciutils + sys-apps/util-linux sys-libs/zlib:= x11-libs/libX11 + x11-libs/libxcb:= x11-libs/libXcomposite x11-libs/libXfixes - x11-libs/libxcb:= + x11-libs/libxkbcommon alsa? ( media-libs/alsa-lib ) browser? ( || ( >=app-accessibility/at-spi2-core-2.46.0:2 ( app-accessibility/at-spi2-atk dev-libs/atk ) ) + dev-cpp/nlohmann_json dev-libs/expat dev-libs/glib dev-libs/nspr @@ -111,20 +111,7 @@ DEPEND=" pipewire? ( media-video/pipewire:= ) pulseaudio? ( media-libs/libpulse ) python? ( ${PYTHON_DEPS} ) - qt6? ( - dev-qt/qtbase:6[network,widgets,xml(+)] - dev-qt/qtsvg:6 - x11-libs/libxkbcommon - ) - !qt6? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5[wayland?] - dev-qt/qtnetwork:5 - dev-qt/qtquickcontrols:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - ) + qsv? ( media-libs/oneVPL ) speex? ( media-libs/speexdsp ) ssl? ( net-libs/mbedtls:= ) truetype? ( @@ -140,6 +127,11 @@ DEPEND=" dev-libs/wayland x11-libs/libxkbcommon ) + websocket? ( + dev-cpp/asio + dev-cpp/nlohmann_json + dev-cpp/websocketpp + ) " RDEPEND="${DEPEND}" @@ -171,24 +163,25 @@ src_unpack() { rm -d ${P}/plugins/obs-websocket || die mv obs-websocket-${OBS_WEBSOCKET_COMMIT} ${P}/plugins/obs-websocket || die - rm -d ${P}/plugins/obs-websocket/deps/asio || die - mv asio-${ASIO_COMMIT} ${P}/plugins/obs-websocket/deps/asio || die - - rm -d ${P}/plugins/obs-websocket/deps/json || die - mv json-${JSON_COMMIT} ${P}/plugins/obs-websocket/deps/json || die - rm -d ${P}/plugins/obs-websocket/deps/qr || die mv QR-Code-generator-${QR_COMMIT} ${P}/plugins/obs-websocket/deps/qr || die - - rm -d ${P}/plugins/obs-websocket/deps/websocketpp || die - mv websocketpp-${WEBSOCKETPP_COMMIT} ${P}/plugins/obs-websocket/deps/websocketpp || die fi } +src_prepare() { + default + + sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die + + cmake_src_prepare +} + src_configure() { local libdir=$(get_libdir) local mycmakeargs=( $(usev browser -DCEF_ROOT_DIR=../${CEF_DIR}) + -DCALM_DEPRECATION=ON + -DCCACHE_SUPPORT=OFF -DENABLE_ALSA=$(usex alsa) -DENABLE_AJA=OFF -DENABLE_BROWSER=$(usex browser) @@ -199,15 +192,16 @@ src_configure() { -DENABLE_NEW_MPEGTS_OUTPUT=OFF # Requires librist and libsrt. -DENABLE_PIPEWIRE=$(usex pipewire) -DENABLE_PULSEAUDIO=$(usex pulseaudio) + -DENABLE_QSV11=$(usex qsv) -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861 -DENABLE_SPEEXDSP=$(usex speex) -DENABLE_V4L2=$(usex v4l) -DENABLE_VLC=$(usex vlc) -DENABLE_VST=ON -DENABLE_WAYLAND=$(usex wayland) + -DENABLE_WEBRTC=OFF # Requires libdatachannel. -DENABLE_WEBSOCKET=$(usex websocket) -DOBS_MULTIARCH_SUFFIX=${libdir#lib} - -DQT_VERSION=$(usex qt6 6 5) -DUNIX_STRUCTURE=1 ) @@ -263,5 +257,6 @@ pkg_postinst() { elog fi + optfeature "VA-API hardware encoding" media-video/ffmpeg[vaapi] optfeature "virtual camera support" media-video/v4l2loopback } diff --git a/media-video/openshot/Manifest b/media-video/openshot/Manifest index c7d5944f54b6..231590e5be23 100644 --- a/media-video/openshot/Manifest +++ b/media-video/openshot/Manifest @@ -1 +1,2 @@ DIST openshot-2.6.1.tar.gz 68566443 BLAKE2B b3a163983bdb811103e5d9307beeb38938719747f743dd58520a0166c08eb11f4592d47bf24224062f9db323a66a2f353eb22f087982b929d60a519cd2c40789 SHA512 9e2d1eae5d72ec2deab914e464dac0d84a864ba2ca63104fad57c90fc907764d5683149fb8136d50030cae993cef9a977e995b0783868988de4668e71a3a5ee2 +DIST openshot-3.1.1.tar.gz 95843738 BLAKE2B 4059fe12b064692070278366f787789866dcbe39414d10217fb62b671dda98ebb6d2f76b8e1cfe2284a647e3d7ebc460b620ba0756a4542f5b26e7ef669e9b3e SHA512 4e5a42825abf8e3862957039169905a6f03872d81de454f52a57ace2e636e91b2f4e87ae603bf9669baa7d1bbbd6c0213efd0c72e23f2b209ba266af2fbe380f diff --git a/media-video/openshot/openshot-2.6.1.ebuild b/media-video/openshot/openshot-2.6.1.ebuild index 1284b9944aa2..a013ab34e233 100644 --- a/media-video/openshot/openshot-2.6.1.ebuild +++ b/media-video/openshot/openshot-2.6.1.ebuild @@ -3,8 +3,8 @@ EAPI=7 -PYTHON_COMPAT=( python3_{9..10} ) -PYTHON_REQ_USE=xml +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="xml(+)" DISTUTILS_SINGLE_IMPL=1 inherit distutils-r1 xdg @@ -44,12 +44,12 @@ python_compile_all() { use doc && emake -C doc html } -python_install_all() { - use doc && local HTML_DOCS=( doc/_build/html/. ) - distutils-r1_python_install_all -} - python_test() { distutils_install_for_testing "${EPYTHON}" src/tests/query_tests.py -v --platform minimal || die } + +python_install_all() { + use doc && local HTML_DOCS=( doc/_build/html/. ) + distutils-r1_python_install_all +} diff --git a/media-video/openshot/openshot-3.1.1.ebuild b/media-video/openshot/openshot-3.1.1.ebuild new file mode 100644 index 000000000000..e4e04dbc01cd --- /dev/null +++ b/media-video/openshot/openshot-3.1.1.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE="xml(+)" +DISTUTILS_SINGLE_IMPL=1 + +inherit distutils-r1 xdg + +MY_PN="${PN}-qt" + +DESCRIPTION="Award-winning free and open-source video editor" +HOMEPAGE="https://openshot.org/" +SRC_URI="https://github.com/OpenShot/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-3+" +SLOT="1" +KEYWORDS="amd64 ~x86" +IUSE="doc" + +RDEPEND="$(python_gen_cond_dep ' + dev-python/httplib2[${PYTHON_USEDEP}] + dev-python/PyQt5[${PYTHON_USEDEP},gui,svg,widgets] + dev-python/PyQtWebEngine[${PYTHON_USEDEP}] + dev-python/pyzmq[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ') + >=media-libs/libopenshot-0.3.2:0=[python,${PYTHON_SINGLE_USEDEP}]" +DEPEND="" +BDEPEND="$(python_gen_cond_dep ' + doc? ( dev-python/sphinx[${PYTHON_USEDEP}] ) + ')" + +src_prepare() { + distutils-r1_python_prepare_all + # prevent setup.py from trying to update MIME databases + sed -i 's/^ROOT =.*/ROOT = False/' setup.py || die +} + +python_compile_all() { + use doc && emake -C doc html +} + +python_test() { + distutils_install_for_testing + "${EPYTHON}" src/tests/query_tests.py -v --platform minimal || die +} + +python_install_all() { + use doc && local HTML_DOCS=( doc/_build/html/. ) + distutils-r1_python_install_all +} diff --git a/media-video/parole/Manifest b/media-video/parole/Manifest index af85eaf55e24..b5c5057ff55c 100644 --- a/media-video/parole/Manifest +++ b/media-video/parole/Manifest @@ -1,2 +1 @@ -DIST parole-4.16.0.tar.bz2 924955 BLAKE2B 7f5c9994e65ce66aa34211047228840e1747cbbaebe0f03d27501d54ef0372e55f294f37869bfaba378e3ab6447e9824798d0c9906549b7c822ce60c54ac81a5 SHA512 fe4723ce3e2106935b4577647920d6759ade3311ef92d5633a309aeb930b81974dd8e5f65958a304a117e614341cba032a54d0c81bdd386d592c64ed2aa31124 DIST parole-4.18.0.tar.bz2 932686 BLAKE2B 49bbc93d1172daf29e73d5eacedfae2fb11f14684232e2c6cbcc84fcddfa65bcece6ef41c68fb58a0046e1a60280ff92e0890e5302f9e0751c1afce825bee7f3 SHA512 2988c8b6f9f0beab646a90116ee83f19d6e6689ea4d037ea643aa26d5716f7c452fa96ee1d4c6d01ee6c421b06cb5405f7256cfdb525ce1016c12f0a78cddb80 diff --git a/media-video/parole/parole-4.16.0.ebuild b/media-video/parole/parole-4.16.0.ebuild deleted file mode 100644 index 185f0d300764..000000000000 --- a/media-video/parole/parole-4.16.0.ebuild +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit xdg-utils - -DESCRIPTION="A simple Xfce4 media player using GStreamer" -HOMEPAGE="https://docs.xfce.org/apps/parole/start" -SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.bz2" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="amd64 ~mips x86" -IUSE="libnotify taglib" - -DEPEND=" - >=dev-libs/dbus-glib-0.100 - >=dev-libs/glib-2.32:2 - media-libs/gstreamer:1.0 - media-libs/gst-plugins-base:1.0 - sys-apps/dbus - >=x11-libs/gtk+-3.20:3 - x11-libs/libX11 - >=xfce-base/libxfce4ui-4.11:=[gtk3(+)] - >=xfce-base/libxfce4util-4.11:= - >=xfce-base/xfconf-4.10:= - libnotify? ( >=x11-libs/libnotify-0.7 ) - taglib? ( >=media-libs/taglib-1.6:0= )" -RDEPEND="${DEPEND} - media-plugins/gst-plugins-meta:1.0" -DEPEND+=" - x11-base/xorg-proto" -BDEPEND=" - dev-util/glib-utils - dev-util/intltool - sys-devel/gettext - virtual/pkgconfig" - -src_configure() { - local myconf=( - # clutter backend does not work with new GTK+3 versions - --disable-clutter - $(use_enable taglib) - $(use_enable libnotify notify-plugin) - ) - - econf "${myconf[@]}" -} - -src_install() { - default - find "${D}" -name '*.la' -delete || die -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_icon_cache_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_icon_cache_update -} diff --git a/media-video/parole/parole-4.18.0.ebuild b/media-video/parole/parole-4.18.0.ebuild index 56773b4c0515..e8bff7cbe260 100644 --- a/media-video/parole/parole-4.18.0.ebuild +++ b/media-video/parole/parole-4.18.0.ebuild @@ -14,7 +14,7 @@ SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.bz2" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~amd64 ~mips ~x86" +KEYWORDS="amd64 ~mips x86" IUSE="libnotify taglib" DEPEND=" diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest index 0bfca7036486..2b9157523e57 100644 --- a/media-video/pipewire/Manifest +++ b/media-video/pipewire/Manifest @@ -1,3 +1,5 @@ -DIST pipewire-0.3.65.tar.bz2 1522095 BLAKE2B d991820e8780773ccf1cd68baa3156428eb099703b82c3e3ad24a86bc634ad43fb474fe362de5e5704ee8b35832b75995fd56096b6539835e8b1f31710450d08 SHA512 0c2402044a04ab6ba724b0808279498e2126dd567920f3241d7d3d5e13ea676e353fc85a73634cf4cae5429454250dfce5cd18ba4a5444a7ed1a5ca2e0ae1eef -DIST pipewire-0.3.66.tar.bz2 1532022 BLAKE2B aa0db6426a04728b633ce9a40aa1b10eca69423925b1a06b70cc65e4b8466b9de23c4f16ebdc5bd6c14d41866deec66ed166053299b9bc6f5b9e81fcc06010e2 SHA512 9e43159fec81dddad618be6ea44304aba4013be14992476e54cbb01e8699c9d6291012879e1c6717e1095be2d73390f900f6d54d8d9c689b50baf93c820c2129 -DIST pipewire-0.3.67.tar.bz2 1531871 BLAKE2B 59ea184ae11ad2999f37f0ded785551894ce6fbf478146c53f1dc6cdfeae7aa50cf6151b1e5e9c63c4f288682e5da7fde523251096af7da9d79bf96dd9d94809 SHA512 538b8ee905760775a0522dd3883d5db9bcaafe93d80eb5b588e21e73de22637a49cd139d3ed4dcfd1a5822af85e4cede624eee899c1e51a115f1ba0a6966c7a5 +DIST pipewire-0.3.75.tar.bz2 1629466 BLAKE2B e69dbb93ebe50f037bc602aa86733c8ba9ccbe57db520cd34ea025c9bf153dbd848882dbb4c2a4e830785a302a7cb7d4b7c1856c9a4be6f1c5ada92f70d1729b SHA512 19bf292f951f68de19cdfd3c76ee0e538a2ad3022e2669a4a19b40d26c2b16938799470b85def4b74b27b8c8137d03a05780d6bab0f38fb0835b528f2cd34f5d +DIST pipewire-0.3.77.tar.bz2 1643767 BLAKE2B 3a2df9cdedf77d5b4927e115ddd7da0d1eecc85322ce7995a49945d41cc83b9a543c1382ad304bdb549f67ac444f7bca6871248654fb4d2e21b25eb55411940c SHA512 422c8504f608d6845b94351a336ab528f51195551418d0d245064972ed784817cacafc6afaad74eb0e0ea80474a9da33ef6917c1f60d3f8f45d70c54971f0760 +DIST pipewire-0.3.78.tar.bz2 1643536 BLAKE2B 44e04486850b0c68cea42ef911eaffae4c22bdedeff0783c119409d2e8d528c165f1f46f0a0e8b63e1c46cf8535b52b79291b54dd61496c6275c6e41f9d71edd SHA512 2fe0113eaaba1ffe67d20cf10b9ee927cb2bfc7c2663937b131f479d35ca6af43b5659cf8a16db849ecc5881e47a56507e775aad06e9765a3ab8ec354636f8eb +DIST pipewire-0.3.79.tar.bz2 1647590 BLAKE2B dd7c88219310c77fd5b64cbfa4ab8130d81c47ff3a35c03ecfd260bc1e7e24fb108b5100bdbc977e3cd8e74ccfe90c11310b195e804a7fe04a64e1d1637c7233 SHA512 5853d4d9d0c21265e0fc0fd68369530d76ae63bad1aa28f6eaa4a0f76e5c939ffc0dee2d81fdf0526da3473f69bddcdb77938597ad004abe04c842d798409b1d +DIST pipewire-0.3.80.tar.bz2 1655137 BLAKE2B cf55e01b6fff29e7ef1f40e9a8f28788b9f538380232821b334359844b33b12b913375ae14e4589d7ae9cd26d22bc841d8103d41c7eb3ea1a9f0c1db1abc6507 SHA512 77e26b6cbefc091ea703b53d147accbd9495f97ba57618a21366b0747074de3ed1060c03e91362f5cf9dc5c256da6d541eccaff8de306b369730400c7b7f46b2 diff --git a/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch b/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch deleted file mode 100644 index 6e7dc42c2704..000000000000 --- a/media-video/pipewire/files/0.3.65/0001-modules-also-install-module-combine-stream.patch +++ /dev/null @@ -1,21 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/fba7083f8ceb210c7c20aceafeb5c9a8767cf705 - -From fba7083f8ceb210c7c20aceafeb5c9a8767cf705 Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Thu, 26 Jan 2023 11:57:45 +0100 -Subject: [PATCH] modules: also install module-combine-stream - ---- a/src/modules/meson.build -+++ b/src/modules/meson.build -@@ -139,7 +139,7 @@ pipewire_module_echo_cancel_sources = [ - pipewire_module_combine_stream = shared_library('pipewire-module-combine-stream', - [ 'module-combine-stream.c' ], - include_directories : [configinc], -- install : false, -+ install : true, - install_dir : modules_install_dir, - install_rpath: modules_install_dir, - dependencies : [spa_dep, dl_lib, pipewire_dep], --- -2.39.1 - diff --git a/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch b/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch deleted file mode 100644 index 2763236693d7..000000000000 --- a/media-video/pipewire/files/0.3.65/0002-spa-bluez5-fix-dependency-on-glib-in-bluez5_deps.patch +++ /dev/null @@ -1,28 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1511 - -From 18fa7a555cc43c7219a53d836d9561faec6d6310 Mon Sep 17 00:00:00 2001 -From: Sam James <sam@gentoo.org> -Date: Sat, 28 Jan 2023 11:04:48 +0000 -Subject: [PATCH] spa: bluez5: fix dependency on glib in bluez5_deps - -In de595a78ff958b8314d853f6266d5832529d9729, we started to require glib -for building bluez and introduced dependencies for the needed gio* bits, -but we only ever check for glib itself for gstreamer or flatpak. - -Drop glib from the dep list to match the summary() & subsequent bluez_deps_found -logic in spa/meson.build. - -Fixes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2999 ---- a/spa/plugins/bluez5/meson.build -+++ b/spa/plugins/bluez5/meson.build -@@ -1,6 +1,6 @@ - gnome = import('gnome') - --bluez5_deps = [ mathlib, dbus_dep, glib2_dep, sbc_dep, bluez_dep, gio_dep, gio_unix_dep ] -+bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, gio_dep, gio_unix_dep ] - foreach dep: bluez5_deps - if not dep.found() - subdir_done() --- -2.39.1 - diff --git a/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch b/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch new file mode 100644 index 000000000000..8885eb8a564f --- /dev/null +++ b/media-video/pipewire/files/0.3.75/0001-module-rt-error-out-on-load-no-bus.patch @@ -0,0 +1,83 @@ +https://bugs.gentoo.org/910714 +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/55812195ce3b77317e7a2dc642b78271f3a45c8e + +From 55812195ce3b77317e7a2dc642b78271f3a45c8e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Joan=20Bruguera=20Mic=C3=B3?= <joanbrugueram@gmail.com> +Date: Sat, 22 Jul 2023 01:20:58 +0000 +Subject: [PATCH] module-rt: error out on load if no bus is available + +Since the recent changes to the RT module in Pipewire 0.3.75, some +applications such as those using OpenAL-Soft crash on startup if +neither the session nor the system bus is available. For example: + + bwrap --dev-bind / / \ + --bind /dev/null /run/dbus/system_bus_socket \ + --bind /dev/null $XDG_RUNTIME_DIR/bus \ + openal-info + +Will result in a crash with the following error message: + + dbus[1626147]: arguments to dbus_message_new_method_call() were + incorrect, assertion "path != NULL" failed in file dbus-message.c + line 1373. + This is normally a bug in some application using the D-Bus library. + +The RT module previously failed to load if no bus was available, but +after the recent changes, the init. logic runs in a thread, and failing +to obtain the bus no longer causes the module to fail to load. + +Then, functions called later such as `pw_rtkit_make_realtime` assume +the bus is available and try to use it, causing the error above. + +Put the logic for obtaining and checking the bus back to `module_init`, +so the module fails to load again if no bus is available. +--- a/src/modules/module-rt.c ++++ b/src/modules/module-rt.c +@@ -923,14 +923,11 @@ static int check_rtkit(struct impl *impl, struct pw_context *context, bool *can_ + return 0; + } + +-static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq, +- const void *data, size_t size, void *user_data) ++static int rtkit_get_bus(struct impl *impl) + { +- struct impl *impl = user_data; + int res; +- long long retval; + +- pw_log_debug("enter rtkit setup"); ++ pw_log_debug("enter rtkit get bus"); + + /* Checking xdg-desktop-portal. It works fine in all situations. */ + if (impl->rtportal_enabled) +@@ -967,6 +964,18 @@ static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq, + return res; + } + } ++ ++ return 0; ++} ++ ++static int do_rtkit_setup(struct spa_loop *loop, bool async, uint32_t seq, ++ const void *data, size_t size, void *user_data) ++{ ++ struct impl *impl = user_data; ++ long long retval; ++ ++ pw_log_debug("enter rtkit setup"); ++ + /* get some properties */ + if (rtkit_get_int_property(impl, "MaxRealtimePriority", &retval) < 0) { + retval = 1; +@@ -1076,6 +1085,9 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) + #ifdef HAVE_DBUS + impl->use_rtkit = use_rtkit; + if (impl->use_rtkit) { ++ if ((res = rtkit_get_bus(impl)) < 0) ++ goto error; ++ + impl->thread_loop = pw_thread_loop_new("module-rt", NULL); + if (impl->thread_loop == NULL) { + res = -errno; +-- +GitLab diff --git a/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch b/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch new file mode 100644 index 000000000000..670847b2f86a --- /dev/null +++ b/media-video/pipewire/files/0.3.75/0002-thread-loop-only-signal-when-option-set.patch @@ -0,0 +1,68 @@ +https://github.com/mpv-player/mpv/issues/11995 +https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3374 +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/920bb7160e0be0ce5729d9538f6dea966f297603 + +From 920bb7160e0be0ce5729d9538f6dea966f297603 Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wtaymans@redhat.com> +Date: Sun, 23 Jul 2023 18:16:00 +0200 +Subject: [PATCH] thread-loop: only signal when option is set + +Add a thead-loop.start-signal option that will do a signal before +entering the thread loop. Doing the signal in all cases can confuse +apps that don't expect the signal. + +Make module-rt use the thread-loop.start-signal. + +Fixes #3374 +--- a/src/modules/module-rt.c ++++ b/src/modules/module-rt.c +@@ -1085,10 +1085,14 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args) + #ifdef HAVE_DBUS + impl->use_rtkit = use_rtkit; + if (impl->use_rtkit) { ++ struct spa_dict_item items[] = { ++ { "thread-loop.start-signal", "true" } ++ }; + if ((res = rtkit_get_bus(impl)) < 0) + goto error; + +- impl->thread_loop = pw_thread_loop_new("module-rt", NULL); ++ impl->thread_loop = pw_thread_loop_new("module-rt", ++ &SPA_DICT_INIT_ARRAY(items)); + if (impl->thread_loop == NULL) { + res = -errno; + goto error; +--- a/src/pipewire/thread-loop.c ++++ b/src/pipewire/thread-loop.c +@@ -43,6 +43,7 @@ struct pw_thread_loop { + int n_waiting_for_accept; + unsigned int created:1; + unsigned int running:1; ++ unsigned int start_signal:1; + }; + /** \endcond */ + +@@ -143,6 +144,11 @@ static struct pw_thread_loop *loop_new(struct pw_loop *loop, + return NULL; + + pw_log_debug("%p: new name:%s", this, name); ++ if (props != NULL) { ++ const char *str = spa_dict_lookup(props, "thread-loop.start-signal"); ++ if (str != NULL) ++ this->start_signal = spa_atob(str); ++ } + + if (loop == NULL) { + loop = pw_loop_new(props); +@@ -282,7 +288,8 @@ static void *do_loop(void *user_data) + pw_log_debug("%p: enter thread", this); + pw_loop_enter(this->loop); + +- pw_thread_loop_signal(this, false); ++ if (this->start_signal) ++ pw_thread_loop_signal(this, false); + + while (this->running) { + if ((res = pw_loop_iterate(this->loop, -1)) < 0) { +-- +GitLab diff --git a/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch b/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch new file mode 100644 index 000000000000..b1c688bba343 --- /dev/null +++ b/media-video/pipewire/files/0.3.75/0003-missing-include-version.h.patch @@ -0,0 +1,21 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/193384b26aba3917d086ac3f009aa2cab9d197d2 + +From 193384b26aba3917d086ac3f009aa2cab9d197d2 Mon Sep 17 00:00:00 2001 +From: "Tom A. Wagner" <tom.a.wagner@protonmail.com> +Date: Mon, 24 Jul 2023 12:48:33 +0200 +Subject: [PATCH] pipewire: add missing stdbool.h include to version.h.in + +The header file only works when included in a file where stdbool.h was already included otherwise. +--- a/src/pipewire/version.h.in ++++ b/src/pipewire/version.h.in +@@ -11,6 +11,8 @@ + extern "C" { + #endif + ++#include <stdbool.h> ++ + /** Return the version of the header files. Keep in mind that this is + a macro and not a function, so it is impossible to get the pointer of + it. */ +-- +GitLab diff --git a/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch b/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch new file mode 100644 index 000000000000..9b6373da1390 --- /dev/null +++ b/media-video/pipewire/files/0.3.77/0001-gst-prevent-crash-stopping-device-provider.patch @@ -0,0 +1,34 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/140374d2071e6204fded4ca65645d4e9a3dd053e +https://bugs.webkit.org/show_bug.cgi?id=259735 + +From 140374d2071e6204fded4ca65645d4e9a3dd053e Mon Sep 17 00:00:00 2001 +From: Philippe Normand <philn@igalia.com> +Date: Fri, 4 Aug 2023 10:01:07 +0100 +Subject: [PATCH] gst: Prevent a crash when stopping device provider + +The provider might fail to connect to the PipeWire core when starting up, so +when stopping we need to check the core is valid before attempting to acquire a +mutex on its loop. +--- a/src/gst/gstpipewiredeviceprovider.c ++++ b/src/gst/gstpipewiredeviceprovider.c +@@ -665,11 +665,16 @@ gst_pipewire_device_provider_stop (GstDeviceProvider * provider) + { + GstPipeWireDeviceProvider *self = GST_PIPEWIRE_DEVICE_PROVIDER (provider); + +- pw_thread_loop_lock (self->core->loop); ++ /* core might be NULL if we failed to connect in _start. */ ++ if (self->core != NULL) { ++ pw_thread_loop_lock (self->core->loop); ++ } + GST_DEBUG_OBJECT (self, "stopping provider"); + + g_clear_pointer ((struct pw_proxy**)&self->registry, pw_proxy_destroy); +- pw_thread_loop_unlock (self->core->loop); ++ if (self->core != NULL) { ++ pw_thread_loop_unlock (self->core->loop); ++ } + g_clear_pointer (&self->core, gst_pipewire_core_release); + } + +-- +GitLab diff --git a/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch b/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch new file mode 100644 index 000000000000..5a0fcde67fed --- /dev/null +++ b/media-video/pipewire/files/0.3.77/0002-pulse-prevent-duplicates.patch @@ -0,0 +1,28 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/820ca90705ae78124958f1b96de3bdc7889c2d1e +https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3414 + +From 820ca90705ae78124958f1b96de3bdc7889c2d1e Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 8 Aug 2023 13:01:30 +0200 +Subject: [PATCH] pulse-server: set all change_mask flags when removing + +So that the logic to emit events will select sink and source objects. + +Fixes #3414 +--- a/src/modules/module-protocol-pulse/manager.c ++++ b/src/modules/module-protocol-pulse/manager.c +@@ -641,9 +641,10 @@ static void registry_event_global_remove(void *data, uint32_t id) + + o->this.removing = true; + +- if (!o->this.creating) ++ if (!o->this.creating) { ++ o->this.change_mask = ~0; + manager_emit_removed(m, &o->this); +- ++ } + object_destroy(o); + } + +-- +GitLab diff --git a/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch b/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch new file mode 100644 index 000000000000..1bcddd4277cb --- /dev/null +++ b/media-video/pipewire/files/0.3.79/0001-meson-better-check-dlopen-dir.patch @@ -0,0 +1,33 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/9f7d960c66a2d5732958ee29934c7aef6decc0cb + +From 9f7d960c66a2d5732958ee29934c7aef6decc0cb Mon Sep 17 00:00:00 2001 +From: q66 <q66@chimera-linux.org> +Date: Thu, 31 Aug 2023 03:42:40 +0200 +Subject: [PATCH] meson: better check for module dlopen dir + +The ${LIB} token is a glibc extension, so it is incorrect to +use it on all Linux. Doing so will break e.g. with musl libc. +--- a/meson.build ++++ b/meson.build +@@ -49,7 +49,9 @@ pipewire_configdir = pipewire_sysconfdir / 'pipewire' + pipewire_confdatadir = pipewire_datadir / 'pipewire' + modules_install_dir = pipewire_libdir / pipewire_name + +-if host_machine.system() == 'linux' ++cc = meson.get_compiler('c') ++ ++if cc.has_header('features.h') and cc.get_define('__GLIBC__', prefix: '#include <features.h>') != '' + # glibc ld.so interprets ${LIB} in a library loading path with an + # appropriate value for the current architecture, typically something + # like lib, lib64 or lib/x86_64-linux-gnu. +@@ -72,8 +74,6 @@ pipewire_headers_dir = pipewire_name / 'pipewire' + + pkgconfig = import('pkgconfig') + +-cc = meson.get_compiler('c') +- + common_flags = [ + '-fvisibility=hidden', + '-fno-strict-aliasing', +-- +GitLab diff --git a/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch b/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch new file mode 100644 index 000000000000..767c399bd515 --- /dev/null +++ b/media-video/pipewire/files/0.3.79/0002-alsa-non-portable-isinf-use.patch @@ -0,0 +1,30 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/aa11dbe10c0f2319a5c4c8dcfff1d5dccc03589e + +From aa11dbe10c0f2319a5c4c8dcfff1d5dccc03589e Mon Sep 17 00:00:00 2001 +From: q66 <q66@chimera-linux.org> +Date: Thu, 31 Aug 2023 03:17:54 +0200 +Subject: [PATCH] alsa: get rid of non-portable isinf use + +The isinf function returns -1 for negative infinity on glibc, but +the standard guarantees no such behavior (e.g. in C++ it always +returns a bool, on musl libc it's a macro that expands to a bool +expression), saying just that it returns a non-zero value. + +This was added in pulseaudio around 15 years ago, and was never +fixed; pipewire then got the code from it. However, we can portably +check against -INFINITY instead (from math.h, already included). + +Ref https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/045c1d6 +--- a/spa/plugins/alsa/acp/volume.h ++++ b/spa/plugins/alsa/acp/volume.h +@@ -83,7 +83,7 @@ static inline pa_volume_t pa_sw_volume_from_linear(double v) + + static inline pa_volume_t pa_sw_volume_from_dB(double dB) + { +- if (isinf(dB) < 0 || dB <= PA_DECIBEL_MININFTY) ++ if (dB == -INFINITY || dB <= PA_DECIBEL_MININFTY) + return PA_VOLUME_MUTED; + return pa_sw_volume_from_linear(pa_volume_dB_to_linear(dB)); + } +-- +GitLab diff --git a/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch b/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch new file mode 100644 index 000000000000..f2afdde4f4be --- /dev/null +++ b/media-video/pipewire/files/0.3.80/0001-aes-support-both-webrtc-versions.patch @@ -0,0 +1,233 @@ +https://bugs.gentoo.org/913693 +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/1f1c308c9766312e684f0b53fc2d1422c7414d31 + +From 1f1c308c9766312e684f0b53fc2d1422c7414d31 Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wtaymans@redhat.com> +Date: Thu, 14 Sep 2023 15:35:40 +0200 +Subject: [PATCH] aec: support both webrtc versions + +Version 1 does not seem to be packaged in many distros and so they would +need to revert the patch or disable AEC. Enabling both allows for things +to move forwards gracefully. +--- a/meson.build ++++ b/meson.build +@@ -377,9 +377,17 @@ cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provide + + webrtc_dep = dependency('webrtc-audio-processing-1', + version : ['>= 1.2' ], +- required : get_option('echo-cancel-webrtc')) +-summary({'WebRTC Echo Canceling': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') +-cdata.set('HAVE_WEBRTC', webrtc_dep.found()) ++ required : false) ++cdata.set('HAVE_WEBRTC1', webrtc_dep.found()) ++if webrtc_dep.found() ++ summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') ++else ++ webrtc_dep = dependency('webrtc-audio-processing', ++ version : ['>= 0.2', '< 1.0'], ++ required : get_option('echo-cancel-webrtc')) ++ cdata.set('HAVE_WEBRTC', webrtc_dep.found()) ++ summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') ++endif + + # On FreeBSD and MidnightBSD, epoll-shim library is required for eventfd() and timerfd() + epoll_shim_dep = (host_machine.system() == 'freebsd' or host_machine.system() == 'midnightbsd' +--- a/spa/plugins/aec/aec-webrtc.cpp ++++ b/spa/plugins/aec/aec-webrtc.cpp +@@ -3,6 +3,8 @@ + /* SPDX-FileCopyrightText: Copyright © 2021 Arun Raghavan <arun@asymptotic.io> */ + /* SPDX-License-Identifier: MIT */ + ++#include "config.h" ++ + #include <memory> + #include <utility> + +@@ -13,7 +15,13 @@ + #include <spa/utils/json.h> + #include <spa/support/plugin.h> + ++#ifdef HAVE_WEBRTC ++#include <webrtc/modules/audio_processing/include/audio_processing.h> ++#include <webrtc/modules/interface/module_common_types.h> ++#include <webrtc/system_wrappers/include/trace.h> ++#else + #include <modules/audio_processing/include/audio_processing.h> ++#endif + + struct impl_data { + struct spa_handle handle; +@@ -39,6 +47,54 @@ static bool webrtc_get_spa_bool(const struct spa_dict *args, const char *key, bo + return default_value; + } + ++#ifdef HAVE_WEBRTC ++/* [ f0 f1 f2 ] */ ++static int parse_point(struct spa_json *it, float (&f)[3]) ++{ ++ struct spa_json arr; ++ int i, res; ++ ++ if (spa_json_enter_array(it, &arr) <= 0) ++ return -EINVAL; ++ ++ for (i = 0; i < 3; i++) { ++ if ((res = spa_json_get_float(&arr, &f[i])) <= 0) ++ return -EINVAL; ++ } ++ return 0; ++} ++ ++/* [ point1 point2 ... ] */ ++static int parse_mic_geometry(struct impl_data *impl, const char *mic_geometry, ++ std::vector<webrtc::Point>& geometry) ++{ ++ int res; ++ size_t i; ++ struct spa_json it[2]; ++ ++ spa_json_init(&it[0], mic_geometry, strlen(mic_geometry)); ++ if (spa_json_enter_array(&it[0], &it[1]) <= 0) { ++ spa_log_error(impl->log, "Error: webrtc.mic-geometry expects an array"); ++ return -EINVAL; ++ } ++ ++ for (i = 0; i < geometry.size(); i++) { ++ float f[3]; ++ ++ if ((res = parse_point(&it[1], f)) < 0) { ++ spa_log_error(impl->log, "Error: can't parse webrtc.mic-geometry points: %d", res); ++ return res; ++ } ++ ++ spa_log_info(impl->log, "mic %zd position: (%g %g %g)", i, f[0], f[1], f[2]); ++ geometry[i].c[0] = f[0]; ++ geometry[i].c[1] = f[1]; ++ geometry[i].c[2] = f[2]; ++ } ++ return 0; ++} ++#endif ++ + static int webrtc_init2(void *object, const struct spa_dict *args, + struct spa_audio_info_raw *rec_info, struct spa_audio_info_raw *out_info, + struct spa_audio_info_raw *play_info) +@@ -48,9 +104,18 @@ static int webrtc_init2(void *object, const struct spa_dict *args, + + bool high_pass_filter = webrtc_get_spa_bool(args, "webrtc.high_pass_filter", true); + bool noise_suppression = webrtc_get_spa_bool(args, "webrtc.noise_suppression", true); +- bool transient_suppression = webrtc_get_spa_bool(args, "webrtc.transient_suppression", true); + bool voice_detection = webrtc_get_spa_bool(args, "webrtc.voice_detection", true); +- ++#ifdef HAVE_WEBRTC ++ bool extended_filter = webrtc_get_spa_bool(args, "webrtc.extended_filter", true); ++ bool delay_agnostic = webrtc_get_spa_bool(args, "webrtc.delay_agnostic", true); ++ // Disable experimental flags by default ++ bool experimental_agc = webrtc_get_spa_bool(args, "webrtc.experimental_agc", false); ++ bool experimental_ns = webrtc_get_spa_bool(args, "webrtc.experimental_ns", false); ++ ++ bool beamforming = webrtc_get_spa_bool(args, "webrtc.beamforming", false); ++#else ++ bool transient_suppression = webrtc_get_spa_bool(args, "webrtc.transient_suppression", true); ++#endif + // Note: AGC seems to mess up with Agnostic Delay Detection, especially with speech, + // result in very poor performance, disable by default + bool gain_control = webrtc_get_spa_bool(args, "webrtc.gain_control", false); +@@ -59,6 +124,51 @@ static int webrtc_init2(void *object, const struct spa_dict *args, + // This filter will modify playback buffer (when calling ProcessReverseStream), but now + // playback buffer modifications are discarded. + ++#ifdef HAVE_WEBRTC ++ webrtc::Config config; ++ config.Set<webrtc::ExtendedFilter>(new webrtc::ExtendedFilter(extended_filter)); ++ config.Set<webrtc::DelayAgnostic>(new webrtc::DelayAgnostic(delay_agnostic)); ++ config.Set<webrtc::ExperimentalAgc>(new webrtc::ExperimentalAgc(experimental_agc)); ++ config.Set<webrtc::ExperimentalNs>(new webrtc::ExperimentalNs(experimental_ns)); ++ ++ if (beamforming) { ++ std::vector<webrtc::Point> geometry(rec_info->channels); ++ const char *mic_geometry, *target_direction; ++ ++ /* The beamformer gives a single mono channel */ ++ out_info->channels = 1; ++ out_info->position[0] = SPA_AUDIO_CHANNEL_MONO; ++ ++ if ((mic_geometry = spa_dict_lookup(args, "webrtc.mic-geometry")) == NULL) { ++ spa_log_error(impl->log, "Error: webrtc.beamforming requires webrtc.mic-geometry"); ++ return -EINVAL; ++ } ++ ++ if ((res = parse_mic_geometry(impl, mic_geometry, geometry)) < 0) ++ return res; ++ ++ if ((target_direction = spa_dict_lookup(args, "webrtc.target-direction")) != NULL) { ++ webrtc::SphericalPointf direction(0.0f, 0.0f, 0.0f); ++ struct spa_json it; ++ float f[3]; ++ ++ spa_json_init(&it, target_direction, strlen(target_direction)); ++ if (parse_point(&it, f) < 0) { ++ spa_log_error(impl->log, "Error: can't parse target-direction %s", ++ target_direction); ++ return -EINVAL; ++ } ++ ++ direction.s[0] = f[0]; ++ direction.s[1] = f[1]; ++ direction.s[2] = f[2]; ++ ++ config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry, direction)); ++ } else { ++ config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry)); ++ } ++ } ++#else + webrtc::AudioProcessing::Config config; + config.echo_canceller.enabled = true; + // FIXME: Example code enables both gain controllers, but that seems sus +@@ -73,6 +183,7 @@ static int webrtc_init2(void *object, const struct spa_dict *args, + // FIXME: expose pre/postamp gain + config.transient_suppression.enabled = transient_suppression; + config.voice_detection.enabled = voice_detection; ++#endif + + webrtc::ProcessingConfig pconfig = {{ + webrtc::StreamConfig(rec_info->rate, rec_info->channels, false), /* input stream */ +@@ -81,15 +192,35 @@ static int webrtc_init2(void *object, const struct spa_dict *args, + webrtc::StreamConfig(play_info->rate, play_info->channels, false), /* reverse output stream */ + }}; + ++#ifdef HAVE_WEBRTC ++ auto apm = std::unique_ptr<webrtc::AudioProcessing>(webrtc::AudioProcessing::Create(config)); ++#else + auto apm = std::unique_ptr<webrtc::AudioProcessing>(webrtc::AudioProcessingBuilder().Create()); + + apm->ApplyConfig(config); ++#endif + + if ((res = apm->Initialize(pconfig)) != webrtc::AudioProcessing::kNoError) { + spa_log_error(impl->log, "Error initialising webrtc audio processing module: %d", res); + return -EINVAL; + } + ++#ifdef HAVE_WEBRTC ++ apm->high_pass_filter()->Enable(high_pass_filter); ++ // Always disable drift compensation since PipeWire will already do ++ // drift compensation on all sinks and sources linked to this echo-canceler ++ apm->echo_cancellation()->enable_drift_compensation(false); ++ apm->echo_cancellation()->Enable(true); ++ // TODO: wire up supression levels to args ++ apm->echo_cancellation()->set_suppression_level(webrtc::EchoCancellation::kHighSuppression); ++ apm->noise_suppression()->set_level(webrtc::NoiseSuppression::kHigh); ++ apm->noise_suppression()->Enable(noise_suppression); ++ apm->voice_detection()->Enable(voice_detection); ++ // TODO: wire up AGC parameters to args ++ apm->gain_control()->set_analog_level_limits(0, 255); ++ apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveDigital); ++ apm->gain_control()->Enable(gain_control); ++#endif + impl->apm = std::move(apm); + impl->rec_info = *rec_info; + impl->out_info = *out_info; +-- +GitLab diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.1 b/media-video/pipewire/files/gentoo-pipewire-launcher.1 new file mode 100644 index 000000000000..36e697c632cd --- /dev/null +++ b/media-video/pipewire/files/gentoo-pipewire-launcher.1 @@ -0,0 +1,52 @@ +.TH "gentoo-pipewire-launcher" "1" "2023-06-15" +.SH "NAME" +gentoo\-pipewire\-launcher \- start instances of PipeWire, PipeWire-Pulse and WirePlumber +.SH "SYNOPSIS" +.BR gentoo\-pipewire\-launcher +[restart] +.SH "DESCRIPTION" +\fIgentoo\-pipewire\-launcher\fR starts instances of PipeWire and +WirePlumber. +Two instances of PipeWire are started: one as the core sound-server, and +one for PulseAudio emulation (cf.\& +.BR pipewire-pulse (1)\fR). +.PP +It must be run in an environment with an active D-Bus session bus, +i.e. one in which the +.B DBUS_SESSION_BUS_ADDRESS +environment variable is set appropriately. +.PP +\fIgentoo\-pipewire\-launcher\fR +tries to avoid restarting, in order to avoid audio dropouts. +However, a restart can be forced by calling +\fIgentoo\-pipewire\-launcher\fR +with an argument of \(oqrestart\(cq. +.PP +.B ${XDG_CONFIG_HOME}/gentoo\-pipewire\-launcher.conf +(or, if +.B ${XDG_CONFIG_HOME} +is not set, +.BR ${HOME}/.config/gentoo\-pipewire\-launcher.conf ) +can be used to specify absolute paths of files to which log output +should be sent, by specifying values for one or more of the +.B GENTOO_PIPEWIRE_LOG\fR, +.B GENTOO_PIPEWIRE_PULSE_LOG\fR, +and +.B GENTOO_WIREPLUMBER_LOG +variables, one per line. +.SH "REPORTING BUGS" +Please report bugs via https://bugs.gentoo.org/ +.SH "FILES" +.TP +.B ${XDG_CONFIG_HOME}/gentoo\-pipewire\-launcher.conf +configures locations of files for log output. +.TP +.B ${HOME}/.config/gentoo\-pipewire\-launcher.conf +configures locations of files for log output if +.B ${XDG_CONFIG_HOME} +is not set. +.SH "SEE ALSO" +.BR pipewire (1), +.BR pipewire-pulse (1), +.BR wireplumber (1), +.BR pipewire.conf (5) diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in b/media-video/pipewire/files/gentoo-pipewire-launcher.in deleted file mode 100644 index 495c47f6c7e1..000000000000 --- a/media-video/pipewire/files/gentoo-pipewire-launcher.in +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# PipeWire launcher script for XDG compliant desktops on OpenRC. -# -# systemd users are very _STRONGLY_ advised to use the much -# more reliable and predictable user units instead. - -# WARNING: This script assumes being run inside XDG compliant session, -# which means D-Bus session instance is expected to be correctly set up -# prior to this script starting. If that is not true, things may break! - -# Best to reap any existing daemons and only then try to start a new set. -pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 - -# The core daemon which by itself does probably nothing. -@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire & - -# The so called pipewire-pulse daemon used for PulseAudio compatibility. -# Commenting this out will stop the PA proxying daemon from starting, -# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using -# clients will still have access to audio and may end up clashing with -# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon). -@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf & - -# Hack for bug #822498 -sleep 1 - -# Finally a session manager is required for PipeWire to do anything. -exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 new file mode 100644 index 000000000000..a149b0d326c3 --- /dev/null +++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r2 @@ -0,0 +1,77 @@ +#!/bin/sh + +# PipeWire launcher script for XDG compliant desktops on OpenRC. +# +# systemd users are very _STRONGLY_ advised to use the much +# more reliable and predictable user units instead. + +# WARNING: This script assumes being run inside XDG compliant session, +# which means D-Bus session instance is expected to be correctly set up +# prior to this script starting. If that is not true, things may break! + +DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z' + +CONF="${XDG_CONFIG_HOME:-${HOME}/.config}/gentoo-pipewire-launcher.conf" +if [ -f "${CONF}" ] +then + . "${CONF}" +else + GENTOO_PIPEWIRE_LOG='/dev/null' + GENTOO_PIPEWIRE_PULSE_LOG='/dev/null' + GENTOO_WIREPLUMBER_LOG='/dev/null' +fi +for L in \ + "${GENTOO_PIPEWIRE_LOG}" \ + "${GENTOO_PIPEWIRE_PULSE_LOG}" \ + "${GENTOO_WIREPLUMBER_LOG}" +do + if [ ! -e "${L}" ] + then + touch "${L}" + fi +done + +restart () { + echo "Terminating PipeWire processes ..." + pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 + pwait -u "${USER}" -x pipewire\|wireplumber + echo "PipeWire terminated." +} + +if [ "${#}" -gt 0 ] +then + if [ "${1}" = 'restart' ] + then + restart + else + echo "Unrecognised argument." >&2 + echo "Usage: gentoo-pipewire-launcher [restart]" >&2 + exit 1 + fi +fi + +if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 +then + echo "PipeWire already running, exiting." >&2 + echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2 + exit 1 +fi + +# The core daemon which by itself does probably nothing. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 & + +# The so called pipewire-pulse daemon used for PulseAudio compatibility. +# Commenting this out will stop the PA proxying daemon from starting, +# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using +# clients will still have access to audio and may end up clashing with +# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon). +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 & + +# Hack for bug #822498 +sleep 1 + +# Finally a session manager is required for PipeWire to do anything. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}" +exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1 diff --git a/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3 b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3 new file mode 100644 index 000000000000..abe9174c4253 --- /dev/null +++ b/media-video/pipewire/files/gentoo-pipewire-launcher.in-r3 @@ -0,0 +1,84 @@ +#!/bin/sh + +# PipeWire launcher script for XDG compliant desktops on OpenRC. +# +# systemd users are very _STRONGLY_ advised to use the much +# more reliable and predictable user units instead. + +# WARNING: This script assumes being run inside XDG compliant session, +# which means D-Bus session instance is expected to be correctly set up +# prior to this script starting. If that is not true, things may break! + +DATE_FORMAT='+%Y-%m-%dT%H:%M:%S%Z' + +CONF="${XDG_CONFIG_HOME:-${HOME}/.config}/gentoo-pipewire-launcher.conf" +if [ -f "${CONF}" ] +then + . "${CONF}" +else + GENTOO_PIPEWIRE_LOG='/dev/null' + GENTOO_PIPEWIRE_PULSE_LOG='/dev/null' + GENTOO_WIREPLUMBER_LOG='/dev/null' +fi +for L in \ + "${GENTOO_PIPEWIRE_LOG}" \ + "${GENTOO_PIPEWIRE_PULSE_LOG}" \ + "${GENTOO_WIREPLUMBER_LOG}" +do + if [ ! -e "${L}" ] + then + touch "${L}" + fi +done + +restart () { + echo "Terminating PipeWire processes ..." + pkill -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 + + # pidwait was renamed to pwait w/ procps-4 (bug #914030) + if command -v pidwait > /dev/null ; then + pidwait -u "${USER}" -x pipewire\|wireplumber + elif command -v pwait > /dev/null ; then + pwait -u "${USER}" -x pipewire\|wireplumber + fi + + echo "PipeWire terminated." +} + +if [ "${#}" -gt 0 ] +then + if [ "${1}" = 'restart' ] + then + restart + else + echo "Unrecognised argument." >&2 + echo "Usage: gentoo-pipewire-launcher [restart]" >&2 + exit 1 + fi +fi + +if pgrep -u "${USER}" -x pipewire\|wireplumber 1>/dev/null 2>&1 +then + echo "PipeWire already running, exiting." >&2 + echo "(Use 'gentoo-pipewire-launcher restart' to restart PipeWire and WirePlumber.)" >&2 + exit 1 +fi + +# The core daemon which by itself does probably nothing. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire." 1>>"${GENTOO_PIPEWIRE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire 1>>"${GENTOO_PIPEWIRE_LOG}" 2>&1 & + +# The so called pipewire-pulse daemon used for PulseAudio compatibility. +# Commenting this out will stop the PA proxying daemon from starting, +# however ALSA (with pipewire-alsa), JACK (with jack-sdk) and PW API using +# clients will still have access to audio and may end up clashing with +# non-PW apps over HW control (most notably, /usr/bin/pulseaudio daemon). +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting PipeWire-Pulse." 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" +@GENTOO_PORTAGE_EPREFIX@/usr/bin/pipewire -c pipewire-pulse.conf 1>>"${GENTOO_PIPEWIRE_PULSE_LOG}" 2>&1 & + +# Hack for bug #822498 +sleep 1 + +# Finally a session manager is required for PipeWire to do anything. +echo "[$(@GENTOO_PORTAGE_EPREFIX@/bin/date ${DATE_FORMAT})] Starting WirePlumber." 1>>"${GENTOO_WIREPLUMBER_LOG}" +exec @GENTOO_PORTAGE_EPREFIX@/usr/bin/wireplumber 1>>"${GENTOO_WIREPLUMBER_LOG}" 2>&1 diff --git a/media-video/pipewire/files/pipewire.desktop-r1 b/media-video/pipewire/files/pipewire.desktop-r1 deleted file mode 100644 index d950312930f6..000000000000 --- a/media-video/pipewire/files/pipewire.desktop-r1 +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Version=1.0 -Name[de]=PipeWire Mediensystem -Name=PipeWire Media System -Comment[de]=Das PipeWire Mediensystem starten -Comment=Start the PipeWire Media System -Exec=/usr/bin/gentoo-pipewire-launcher -Terminal=false -Type=Application -X-GNOME-HiddenUnderSystemd=true -X-KDE-HiddenUnderSystemd=true -X-systemd-skip=true diff --git a/media-video/pipewire/files/pipewire.desktop b/media-video/pipewire/files/pipewire.desktop-r2 index d3786e74f82b..1e8564dbe370 100644 --- a/media-video/pipewire/files/pipewire.desktop +++ b/media-video/pipewire/files/pipewire.desktop-r2 @@ -4,7 +4,7 @@ Name[de]=PipeWire Mediensystem Name=PipeWire Media System Comment[de]=Das PipeWire Mediensystem starten Comment=Start the PipeWire Media System -Exec=/usr/libexec/pipewire-launcher +Exec=/usr/bin/gentoo-pipewire-launcher restart Terminal=false Type=Application X-GNOME-HiddenUnderSystemd=true diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml index 4401131936e1..1e5541a20ad2 100644 --- a/media-video/pipewire/metadata.xml +++ b/media-video/pipewire/metadata.xml @@ -22,9 +22,11 @@ <flag name="gsettings">Use gsettings (<pkg>dev-libs/glib</pkg>) to read/save used modules (useful for e.g. <pkg>media-sound/paprefs</pkg></flag> <flag name="jack-client">Install a plugin for running PipeWire as a JACK client</flag> <flag name="jack-sdk">Use PipeWire as JACK replacement</flag> + <flag name="liblc3">Allow loading LC3 plugins via <pkg>media-sound/liblc3</pkg></flag> <flag name="lv2">Allow loading LV2 plugins via <pkg>media-libs/lv2</pkg></flag> <flag name="modemmanager">Combined with USE=bluetooth, allows PipeWire to perform telephony on mobile devices.</flag> <flag name="pipewire-alsa">Replace PulseAudio's ALSA plugin with PipeWire's plugin</flag> + <flag name="roc">Enable roc support for real-time audio streaming over the network, using <pkg>media-libs/roc-toolkit</pkg>. See https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Network#roc</flag> <flag name="ssl">Enable raop-sink support (needs <pkg>dev-libs/openssl</pkg>)</flag> <flag name="system-service">Install systemd unit files for running as a system service. Not recommended.</flag> <flag name="X">Enable audible bell for X11</flag> diff --git a/media-video/pipewire/pipewire-0.3.67.ebuild b/media-video/pipewire/pipewire-0.3.75-r3.ebuild index 9f2c486145b1..8df954be4490 100644 --- a/media-video/pipewire/pipewire-0.3.67.ebuild +++ b/media-video/pipewire/pipewire-0.3.75-r3.ebuild @@ -13,7 +13,7 @@ EAPI=8 # continue to move quickly. It's not uncommon for fixes to be made shortly # after releases. -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev @@ -29,7 +29,7 @@ else SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" fi - KEYWORDS="~amd64 arm arm64 ~loong ~ppc ppc64 ~riscv ~sparc x86" + KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" fi DESCRIPTION="Multimedia processing graphs" @@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/" LICENSE="MIT LGPL-2.1+ GPL-2" # ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 SLOT="0/0.4" -IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2 -modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that # jack-client IUSE will need blocking to avoid users accidentally @@ -97,41 +97,30 @@ RDEPEND=" ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) echo-cancel? ( media-libs/webrtc-audio-processing:0 ) - extra? ( - >=media-libs/libsndfile-1.0.20 - ) + extra? ( >=media-libs/libsndfile-1.0.20 ) ffmpeg? ( media-video/ffmpeg:= ) - flatpak? ( - dev-libs/glib - ) + flatpak? ( dev-libs/glib ) gstreamer? ( >=dev-libs/glib-2.32.0:2 >=media-libs/gstreamer-1.10.0:1.0 media-libs/gst-plugins-base:1.0 ) - gsettings? ( - >=dev-libs/glib-2.26.0:2 - ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) jack-sdk? ( !media-sound/jack-audio-connection-kit !media-sound/jack2 ) + liblc3? ( media-sound/liblc3 ) lv2? ( media-libs/lilv ) modemmanager? ( >=net-misc/modemmanager-1.10.0 ) - pipewire-alsa? ( - >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - ) - sound-server? ( - !media-sound/pulseaudio[daemon(+)] - !media-sound/pulseaudio-daemon - ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) readline? ( sys-libs/readline:= ) ssl? ( dev-libs/openssl:= ) systemd? ( sys-apps/systemd ) - system-service? ( - acct-user/pipewire - ) + system-service? ( acct-user/pipewire ) v4l? ( media-libs/libv4l ) X? ( media-libs/libcanberra @@ -187,6 +176,7 @@ multilib_src_configure() { $(meson_native_enabled man) $(meson_feature test tests) -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) $(meson_native_use_feature gstreamer) $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) @@ -213,13 +203,10 @@ multilib_src_configure() { $(meson_native_use_feature bluetooth bluez5-codec-aac) $(meson_native_use_feature bluetooth bluez5-codec-aptx) $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) $(meson_native_use_feature bluetooth bluez5-codec-opus) $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 - # Not yet packaged. - # http://www.bluez.org/le-audio-support-in-pipewire/ - -Dbluez5-codec-lc3=disabled - -Dbluez5-codec-lc3plus=disabled -Dcontrol=enabled # Matches upstream -Daudiotestsrc=enabled # Matches upstream -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 @@ -232,6 +219,8 @@ multilib_src_configure() { -Dsupport=enabled # Miscellaneous/common plugins, such as null sink -Devl=disabled # Matches upstream -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) $(meson_native_use_feature lv2) $(meson_native_use_feature v4l v4l2) -Dlibcamera=disabled # libcamera is not in Portage tree @@ -306,10 +295,12 @@ multilib_src_install_all() { if ! use systemd; then insinto /etc/xdg/autostart - newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then @@ -344,6 +335,13 @@ pkg_postinst() { local ver for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + if ver_test ${ver} -le 0.3.66-r1 ; then elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" elog "and limits needed to function smoothly:" @@ -414,6 +412,8 @@ pkg_postinst() { if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. if use sound-server && use systemd ; then elog elog "When switching from PulseAudio, you may need to disable PulseAudio:" diff --git a/media-video/pipewire/pipewire-0.3.66-r1.ebuild b/media-video/pipewire/pipewire-0.3.77-r2.ebuild index 9af52bf09561..8df954be4490 100644 --- a/media-video/pipewire/pipewire-0.3.66-r1.ebuild +++ b/media-video/pipewire/pipewire-0.3.77-r2.ebuild @@ -13,7 +13,7 @@ EAPI=8 # continue to move quickly. It's not uncommon for fixes to be made shortly # after releases. -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev @@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/" LICENSE="MIT LGPL-2.1+ GPL-2" # ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 SLOT="0/0.4" -IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2 -modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that # jack-client IUSE will need blocking to avoid users accidentally @@ -97,41 +97,30 @@ RDEPEND=" ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) echo-cancel? ( media-libs/webrtc-audio-processing:0 ) - extra? ( - >=media-libs/libsndfile-1.0.20 - ) + extra? ( >=media-libs/libsndfile-1.0.20 ) ffmpeg? ( media-video/ffmpeg:= ) - flatpak? ( - dev-libs/glib - ) + flatpak? ( dev-libs/glib ) gstreamer? ( >=dev-libs/glib-2.32.0:2 >=media-libs/gstreamer-1.10.0:1.0 media-libs/gst-plugins-base:1.0 ) - gsettings? ( - >=dev-libs/glib-2.26.0:2 - ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) jack-sdk? ( !media-sound/jack-audio-connection-kit !media-sound/jack2 ) + liblc3? ( media-sound/liblc3 ) lv2? ( media-libs/lilv ) modemmanager? ( >=net-misc/modemmanager-1.10.0 ) - pipewire-alsa? ( - >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - ) - sound-server? ( - !media-sound/pulseaudio[daemon(+)] - !media-sound/pulseaudio-daemon - ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) readline? ( sys-libs/readline:= ) ssl? ( dev-libs/openssl:= ) systemd? ( sys-apps/systemd ) - system-service? ( - acct-user/pipewire - ) + system-service? ( acct-user/pipewire ) v4l? ( media-libs/libv4l ) X? ( media-libs/libcanberra @@ -187,6 +176,7 @@ multilib_src_configure() { $(meson_native_enabled man) $(meson_feature test tests) -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) $(meson_native_use_feature gstreamer) $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) @@ -200,7 +190,7 @@ multilib_src_configure() { $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph -Dspa-plugins=enabled -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) - -Dcompress-offload=disabled # Matches upstream, tinycompress unpackaged too + -Dcompress-offload=disabled # TODO: tinycompress unpackaged -Daudiomixer=enabled # Matches upstream -Daudioconvert=enabled # Matches upstream $(meson_native_use_feature bluetooth bluez5) @@ -213,13 +203,10 @@ multilib_src_configure() { $(meson_native_use_feature bluetooth bluez5-codec-aac) $(meson_native_use_feature bluetooth bluez5-codec-aptx) $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) $(meson_native_use_feature bluetooth bluez5-codec-opus) $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 - # Not yet packaged. - # http://www.bluez.org/le-audio-support-in-pipewire/ - -Dbluez5-codec-lc3=disabled - -Dbluez5-codec-lc3plus=disabled -Dcontrol=enabled # Matches upstream -Daudiotestsrc=enabled # Matches upstream -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 @@ -232,6 +219,8 @@ multilib_src_configure() { -Dsupport=enabled # Miscellaneous/common plugins, such as null sink -Devl=disabled # Matches upstream -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) $(meson_native_use_feature lv2) $(meson_native_use_feature v4l v4l2) -Dlibcamera=disabled # libcamera is not in Portage tree @@ -306,10 +295,12 @@ multilib_src_install_all() { if ! use systemd; then insinto /etc/xdg/autostart - newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then @@ -344,15 +335,25 @@ pkg_postinst() { local ver for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + if ver_test ${ver} -le 0.3.66-r1 ; then elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" - elog "and limits needed to function smoothly." - elog "1. Please make sure your user is in the 'pipewire' group for correct" - elog "PAM limits behavior! You can add your account with:" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" elog " usermod -aG pipewire <youruser>" elog - elog "2. It is recommended that you remove your user from the 'audio' group" - elog "as it can interfere with fast user switching:" + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" elog " usermod -rG audio <youruser>" elog @@ -411,6 +412,8 @@ pkg_postinst() { if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. if use sound-server && use systemd ; then elog elog "When switching from PulseAudio, you may need to disable PulseAudio:" diff --git a/media-video/pipewire/pipewire-0.3.65-r3.ebuild b/media-video/pipewire/pipewire-0.3.78-r1.ebuild index c96649f89edb..608eb135e010 100644 --- a/media-video/pipewire/pipewire-0.3.65-r3.ebuild +++ b/media-video/pipewire/pipewire-0.3.78-r1.ebuild @@ -13,7 +13,7 @@ EAPI=8 # continue to move quickly. It's not uncommon for fixes to be made shortly # after releases. -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev @@ -29,7 +29,7 @@ else SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" fi - KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" fi DESCRIPTION="Multimedia processing graphs" @@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/" LICENSE="MIT LGPL-2.1+ GPL-2" # ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 SLOT="0/0.4" -IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2 -modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that # jack-client IUSE will need blocking to avoid users accidentally @@ -70,6 +70,7 @@ BDEPEND=" virtual/pkgconfig ${PYTHON_DEPS} $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + dbus? ( dev-util/gdbus-codegen ) doc? ( app-doc/doxygen media-gfx/graphviz @@ -79,6 +80,7 @@ BDEPEND=" # and not really worth it, bug #877769. RDEPEND=" acct-group/audio + acct-group/pipewire media-libs/alsa-lib sys-libs/ncurses:=[unicode(+)] virtual/libintl[${MULTILIB_USEDEP}] @@ -95,42 +97,30 @@ RDEPEND=" ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) echo-cancel? ( media-libs/webrtc-audio-processing:0 ) - extra? ( - >=media-libs/libsndfile-1.0.20 - ) + extra? ( >=media-libs/libsndfile-1.0.20 ) ffmpeg? ( media-video/ffmpeg:= ) - flatpak? ( - dev-libs/glib - ) + flatpak? ( dev-libs/glib ) gstreamer? ( >=dev-libs/glib-2.32.0:2 >=media-libs/gstreamer-1.10.0:1.0 media-libs/gst-plugins-base:1.0 ) - gsettings? ( - >=dev-libs/glib-2.26.0:2 - ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) jack-sdk? ( !media-sound/jack-audio-connection-kit !media-sound/jack2 ) + liblc3? ( media-sound/liblc3 ) lv2? ( media-libs/lilv ) modemmanager? ( >=net-misc/modemmanager-1.10.0 ) - pipewire-alsa? ( - >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - ) - sound-server? ( - !media-sound/pulseaudio[daemon(+)] - !media-sound/pulseaudio-daemon - ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) readline? ( sys-libs/readline:= ) ssl? ( dev-libs/openssl:= ) systemd? ( sys-apps/systemd ) - system-service? ( - acct-user/pipewire - acct-group/pipewire - ) + system-service? ( acct-user/pipewire ) v4l? ( media-libs/libv4l ) X? ( media-libs/libcanberra @@ -161,10 +151,6 @@ PATCHES=( "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch ) -# limitsdfile related code taken from =sys-auth/realtime-base-0.1 -# with changes as necessary. -limitsdfile=40-${PN}.conf - python_check_deps() { python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" } @@ -174,21 +160,6 @@ src_prepare() { # Used for upstream backports [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} - - einfo "Generating ${limitsdfile}" - cat > ${limitsdfile} <<- EOF || die - # Start of ${limitsdfile} from ${P} - - @audio - memlock 256 - - $(use system-service && { - echo @pipewire - rtprio 95 - echo @pipewire - nice -19 - echo @pipewire - memlock 4194304 - }) - - # End of ${limitsdfile} from ${P} - EOF } multilib_src_configure() { @@ -205,6 +176,7 @@ multilib_src_configure() { $(meson_native_enabled man) $(meson_feature test tests) -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) $(meson_native_use_feature gstreamer) $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) @@ -218,7 +190,7 @@ multilib_src_configure() { $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph -Dspa-plugins=enabled -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) - -Dcompress-offload=disabled # Matches upstream, tinycompress unpackaged too + -Dcompress-offload=disabled # TODO: tinycompress unpackaged -Daudiomixer=enabled # Matches upstream -Daudioconvert=enabled # Matches upstream $(meson_native_use_feature bluetooth bluez5) @@ -231,13 +203,10 @@ multilib_src_configure() { $(meson_native_use_feature bluetooth bluez5-codec-aac) $(meson_native_use_feature bluetooth bluez5-codec-aptx) $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) $(meson_native_use_feature bluetooth bluez5-codec-opus) $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 - # Not yet packaged. - # http://www.bluez.org/le-audio-support-in-pipewire/ - -Dbluez5-codec-lc3=disabled - -Dbluez5-codec-lc3plus=disabled -Dcontrol=enabled # Matches upstream -Daudiotestsrc=enabled # Matches upstream -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 @@ -250,6 +219,8 @@ multilib_src_configure() { -Dsupport=enabled # Miscellaneous/common plugins, such as null sink -Devl=disabled # Matches upstream -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) $(meson_native_use_feature lv2) $(meson_native_use_feature v4l v4l2) -Dlibcamera=disabled # libcamera is not in Portage tree @@ -263,9 +234,15 @@ multilib_src_configure() { -Dudev=enabled -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + -Dlibmysofa=disabled # libmysofa is unpackaged $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only + # just became stable, with 5.15 being the previous LTS. Many people + # are still on it. + -Dpam-defaults-install=true + # Just for bell sounds in X11 right now. $(meson_native_use_feature X x11) $(meson_native_use_feature X x11-xfixes) @@ -287,9 +264,6 @@ multilib_src_install() { multilib_src_install_all() { einstalldocs - insinto /etc/security/limits.d - doins ${limitsdfile} - if use pipewire-alsa; then dodir /etc/alsa/conf.d @@ -321,10 +295,12 @@ multilib_src_install_all() { if ! use systemd; then insinto /etc/xdg/autostart - newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then @@ -339,124 +315,159 @@ pkg_postrm() { udev_reload } +pkg_preinst() { + HAD_SOUND_SERVER=0 + HAD_SYSTEM_SERVICE=0 + + if has_version "media-video/pipewire[sound-server(-)]" ; then + HAD_SOUND_SERVER=1 + fi + + if has_version "media-video/pipewire[system-service(-)]" ; then + HAD_SYSTEM_SERVICE=1 + fi +} + pkg_postinst() { udev_reload - use system-service && tmpfiles_process pipewire.conf - elog "It is recommended to raise RLIMIT_MEMLOCK to 256 for users" - elog "using PipeWire. Do it either manually or add yourself" - elog "to the 'audio' group:" - elog - elog " usermod -aG audio <youruser>" - elog + use system-service && tmpfiles_process pipewire.conf local ver for ver in ${REPLACING_VERSIONS} ; do - if ver_test ${ver} -le 0.3.53-r1 && ! use sound-server ; then - ewarn "USE=sound-server is disabled! If you want PipeWire to provide" - ewarn "your sound, please enable it. See the wiki at" - ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" - ewarn "for more details." - - break + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." fi - done - if ! use jack-sdk; then - elog "JACK emulation is incomplete and not all programs will work. PipeWire's" - elog "alternative libraries have been installed to a non-default location." - elog "To use them, put pw-jack <application> before every JACK application." - elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" - elog "provider is still needed to compile the JACK applications themselves." - elog - fi + if ver_test ${ver} -le 0.3.66-r1 ; then + elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" + elog " usermod -aG pipewire <youruser>" + elog + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" + elog " usermod -rG audio <youruser>" + elog - if use systemd; then - elog "When switching from PulseAudio, you may need to disable PulseAudio:" - elog - elog " systemctl --user disable pulseaudio.service pulseaudio.socket" - elog - elog "To use PipeWire, the user units must be manually enabled" - elog "by running this command as each user you use for desktop activities:" - elog - elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" - elog - elog "A reboot is recommended to avoid interferences from still running" - elog "PulseAudio daemon." - elog - elog "Both new users and those upgrading need to enable WirePlumber" - elog "for relevant users:" - elog - elog " systemctl --user disable pipewire-media-session.service" - elog " systemctl --user --force enable wireplumber.service" - elog - elog "Root user may replace --user with --global to change system default" - elog "configuration for all of the above commands." - else - ewarn "PipeWire daemon startup has been moved to a launcher script!" - ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" - ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" - ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" - ewarn - ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" - ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" - ewarn "advised that a D-Bus user session is set up before starting the script." - ewarn + if ! use jack-sdk ; then + elog + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack <application> before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd ; then + ewarn + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + fi + + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then + elog + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit pulseaudio client configuration files:" + elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" + elog "if it exists, and disable autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable ofono" + else + ewarn "rc-update delete ofono" + fi + fi + fi + done - if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then - elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" - elog "are recommended to edit pulseaudio client configuration files:" - elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" - elog "if it exists, and disable autospawning of the original daemon by setting:" + if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. + if use sound-server && use systemd ; then + elog + elog "When switching from PulseAudio, you may need to disable PulseAudio:" + elog + elog " systemctl --user disable pulseaudio.service pulseaudio.socket" elog - elog " autospawn = no" + elog "To use PipeWire, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" elog - elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" elog - elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" - elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" - elog "command:" + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." elog - elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog "Both new users and those upgrading need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user disable pipewire-media-session.service" + elog " systemctl --user --force enable wireplumber.service" + elog + elog "Root user may replace --user with --global to change system default" + elog "configuration for all of the above commands." elog fi - elog "NOTE:" - elog "Starting with PipeWire-0.3.30, this package is no longer installing its config" - elog "into ${EROOT}/etc/pipewire by default. In case you need to change" - elog "its config, please start by copying default config from ${EROOT}/usr/share/pipewire" - elog "and just override the sections you want to change." - fi - elog - - elog "For latest tips and tricks, troubleshooting information and documentation" - elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" - elog - - optfeature_header "The following can be installed for optional runtime features:" - optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit - - if use sound-server && ! use pipewire-alsa; then - optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" - fi - if has_version 'net-misc/ofono' ; then - ewarn "Native backend has become default. Please disable oFono via:" - if systemd_is_booted ; then - ewarn "systemctl disable ofono" - else - ewarn "rc-update delete ofono" + if ! use sound-server ; then + ewarn + ewarn "USE=sound-server is disabled! If you want PipeWire to provide" + ewarn "your sound, please enable it. See the wiki at" + ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" + ewarn "for more details." + ewarn fi - ewarn fi - if use system-service; then + if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then ewarn - ewarn "WARNING: you have enabled the system-service USE flag, which installs" + ewarn "You have enabled the system-service USE flag, which installs" ewarn "the system-wide systemd units that enable PipeWire to run as a system" ewarn "service. This is more than likely NOT what you want. You are strongly" ewarn "advised not to enable this mode and instead stick with systemd user" - ewarn "units. The default configuration files will likely not work out of" + ewarn "units. The default configuration files will likely not work out of the" ewarn "box, and you are on your own with configuration." ewarn fi + + elog "For latest tips and tricks, troubleshooting information, and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if use sound-server && ! use pipewire-alsa; then + optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" + fi } diff --git a/media-video/pipewire/pipewire-0.3.79-r1.ebuild b/media-video/pipewire/pipewire-0.3.79-r1.ebuild new file mode 100644 index 000000000000..608eb135e010 --- /dev/null +++ b/media-video/pipewire/pipewire-0.3.79-r1.ebuild @@ -0,0 +1,473 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 1. Please regularly check (even at the point of bumping) Fedora's packaging +# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide. +# +# 2. Upstream also sometimes amend release notes for the previous release to mention +# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros +# +# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things +# continue to move quickly. It's not uncommon for fixes to be made shortly +# after releases. + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" + inherit git-r3 +else + if [[ ${PV} == *_p* ]] ; then + MY_COMMIT="" + SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + else + SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" + fi + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="MIT LGPL-2.1+ GPL-2" +# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 +SLOT="0/0.4" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" + +# Once replacing system JACK libraries is possible, it's likely that +# jack-client IUSE will need blocking to avoid users accidentally +# configuring their systems to send PW sink output to the emulated +# JACK's sink - doing so is likely to yield no audio, cause a CPU +# cycles consuming loop (and may even cause GUI crashes)! + +# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled +# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work +# which provides adequate guarantee that alsa-lib will be able to provide audio services. +# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL. +# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally. +# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity. +REQUIRED_USE=" + ffmpeg? ( extra ) + bluetooth? ( dbus ) + jack-sdk? ( !jack-client ) + modemmanager? ( bluetooth ) + system-service? ( systemd ) + !sound-server? ( !pipewire-alsa ) + jack-client? ( dbus ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-util/meson-0.59 + virtual/pkgconfig + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + dbus? ( dev-util/gdbus-codegen ) + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +# While udev could technically be optional, it's needed for a numebr of options, +# and not really worth it, bug #877769. +RDEPEND=" + acct-group/audio + acct-group/pipewire + media-libs/alsa-lib + sys-libs/ncurses:=[unicode(+)] + virtual/libintl[${MULTILIB_USEDEP}] + virtual/libudev[${MULTILIB_USEDEP}] + bluetooth? ( + dev-libs/glib + media-libs/fdk-aac + media-libs/libldac + media-libs/libfreeaptx + media-libs/opus + media-libs/sbc + >=net-wireless/bluez-4.101:= + virtual/libusb:1 + ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + echo-cancel? ( media-libs/webrtc-audio-processing:0 ) + extra? ( >=media-libs/libsndfile-1.0.20 ) + ffmpeg? ( media-video/ffmpeg:= ) + flatpak? ( dev-libs/glib ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) + jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) + jack-sdk? ( + !media-sound/jack-audio-connection-kit + !media-sound/jack2 + ) + liblc3? ( media-sound/liblc3 ) + lv2? ( media-libs/lilv ) + modemmanager? ( >=net-misc/modemmanager-1.10.0 ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) + readline? ( sys-libs/readline:= ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd ) + system-service? ( acct-user/pipewire ) + v4l? ( media-libs/libv4l ) + X? ( + media-libs/libcanberra + x11-libs/libX11 + x11-libs/libXfixes + ) + zeroconf? ( net-dns/avahi ) +" + +DEPEND="${RDEPEND}" + +# TODO: Consider use cases where pipewire is not used for driving audio +# Doing so with WirePlumber currently involves editing Lua scripts +PDEPEND=">=media-video/wireplumber-0.4.8-r3" + +# Present RDEPEND that are currently always disabled due to the PW +# code using them being required to be disabled by Gentoo guidelines +# (i.e. developer binaries not meant for users) and unready code +# media-libs/libsdl2 +# >=media-libs/vulkan-loader-1.1.69 +# +# Ditto for DEPEND +# >=dev-util/vulkan-headers-1.1.69 + +DOCS=( {README,INSTALL}.md NEWS ) + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch +) + +python_check_deps() { + python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + + # Used for upstream backports + [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} +} + +multilib_src_configure() { + # https://bugs.gentoo.org/838301 + filter-flags -fno-semantic-interposition + + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + + $(meson_feature dbus) + $(meson_native_use_feature zeroconf avahi) + $(meson_native_use_feature doc docs) + $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone + $(meson_native_enabled man) + $(meson_feature test tests) + -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) + $(meson_native_use_feature gstreamer) + $(meson_native_use_feature gstreamer gstreamer-device-provider) + $(meson_native_use_feature gsettings) + $(meson_native_use_feature systemd) + + $(meson_native_use_feature system-service systemd-system-service) + -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" + -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)" + + $(meson_native_use_feature systemd systemd-user-service) + $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph + -Dspa-plugins=enabled + -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) + -Dcompress-offload=disabled # TODO: tinycompress unpackaged + -Daudiomixer=enabled # Matches upstream + -Daudioconvert=enabled # Matches upstream + $(meson_native_use_feature bluetooth bluez5) + $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) + $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) + # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379 + $(meson_native_use_feature modemmanager bluez5-backend-native-mm) + $(meson_native_use_feature bluetooth bluez5-backend-ofono) + $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) + $(meson_native_use_feature bluetooth bluez5-codec-aac) + $(meson_native_use_feature bluetooth bluez5-codec-aptx) + $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) + $(meson_native_use_feature bluetooth bluez5-codec-opus) + $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) + $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 + -Dcontrol=enabled # Matches upstream + -Daudiotestsrc=enabled # Matches upstream + -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 + $(meson_native_use_feature ffmpeg pw-cat-ffmpeg) + $(meson_native_use_feature flatpak) + -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph + $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client + $(meson_use jack-sdk jack-devel) + $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') + -Dsupport=enabled # Miscellaneous/common plugins, such as null sink + -Devl=disabled # Matches upstream + -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) + $(meson_native_use_feature lv2) + $(meson_native_use_feature v4l v4l2) + -Dlibcamera=disabled # libcamera is not in Portage tree + $(meson_native_use_feature readline) + $(meson_native_use_feature ssl raop) + -Dvideoconvert=enabled # Matches upstream + -Dvideotestsrc=enabled # Matches upstream + -Dvolume=enabled # Matches upstream + -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) + $(meson_native_use_feature extra pw-cat) + -Dudev=enabled + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + -Dlibmysofa=disabled # libmysofa is unpackaged + $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) + -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + + # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only + # just became stable, with 5.15 being the previous LTS. Many people + # are still on it. + -Dpam-defaults-install=true + + # Just for bell sounds in X11 right now. + $(meson_native_use_feature X x11) + $(meson_native_use_feature X x11-xfixes) + $(meson_native_use_feature X libcanberra) + ) + + meson_src_configure +} + +multilib_src_test() { + meson_src_test --timeout-multiplier 10 +} + +multilib_src_install() { + # Our custom DOCS do not exist in multilib source directory + DOCS= meson_src_install +} + +multilib_src_install_all() { + einstalldocs + + if use pipewire-alsa; then + dodir /etc/alsa/conf.d + + # Install pipewire conf loader hook + insinto /usr/share/alsa/alsa.conf.d + doins "${FILESDIR}"/99-pipewire-default-hook.conf + eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf + + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 + # And the current dosym8 -r implementation is likely affected by the same issue, too. + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf + fi + + # Enable required wireplumber alsa and bluez monitors + if use sound-server; then + dodir /etc/wireplumber/main.lua.d + echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die + + dodir /etc/wireplumber/bluetooth.lua.d + echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die + fi + + if use system-service; then + newtmpfiles - pipewire.conf <<-EOF || die + d /run/pipewire 0755 pipewire pipewire - - + EOF + fi + + if ! use systemd; then + insinto /etc/xdg/autostart + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop + + exeinto /usr/bin + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 + + # Disable pipewire-pulse if sound-server is disabled. + if ! use sound-server ; then + sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die + fi + + eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher + fi +} + +pkg_postrm() { + udev_reload +} + +pkg_preinst() { + HAD_SOUND_SERVER=0 + HAD_SYSTEM_SERVICE=0 + + if has_version "media-video/pipewire[sound-server(-)]" ; then + HAD_SOUND_SERVER=1 + fi + + if has_version "media-video/pipewire[system-service(-)]" ; then + HAD_SYSTEM_SERVICE=1 + fi +} + +pkg_postinst() { + udev_reload + + use system-service && tmpfiles_process pipewire.conf + + local ver + for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + + if ver_test ${ver} -le 0.3.66-r1 ; then + elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" + elog " usermod -aG pipewire <youruser>" + elog + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" + elog " usermod -rG audio <youruser>" + elog + + if ! use jack-sdk ; then + elog + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack <application> before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd ; then + ewarn + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + fi + + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then + elog + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit pulseaudio client configuration files:" + elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" + elog "if it exists, and disable autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable ofono" + else + ewarn "rc-update delete ofono" + fi + fi + fi + done + + if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. + if use sound-server && use systemd ; then + elog + elog "When switching from PulseAudio, you may need to disable PulseAudio:" + elog + elog " systemctl --user disable pulseaudio.service pulseaudio.socket" + elog + elog "To use PipeWire, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" + elog + elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" + elog + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." + elog + elog "Both new users and those upgrading need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user disable pipewire-media-session.service" + elog " systemctl --user --force enable wireplumber.service" + elog + elog "Root user may replace --user with --global to change system default" + elog "configuration for all of the above commands." + elog + fi + + if ! use sound-server ; then + ewarn + ewarn "USE=sound-server is disabled! If you want PipeWire to provide" + ewarn "your sound, please enable it. See the wiki at" + ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" + ewarn "for more details." + ewarn + fi + fi + + if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + ewarn + ewarn "You have enabled the system-service USE flag, which installs" + ewarn "the system-wide systemd units that enable PipeWire to run as a system" + ewarn "service. This is more than likely NOT what you want. You are strongly" + ewarn "advised not to enable this mode and instead stick with systemd user" + ewarn "units. The default configuration files will likely not work out of the" + ewarn "box, and you are on your own with configuration." + ewarn + fi + + elog "For latest tips and tricks, troubleshooting information, and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if use sound-server && ! use pipewire-alsa; then + optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" + fi +} diff --git a/media-video/pipewire/pipewire-0.3.79-r2.ebuild b/media-video/pipewire/pipewire-0.3.79-r2.ebuild new file mode 100644 index 000000000000..9ae26c068a6e --- /dev/null +++ b/media-video/pipewire/pipewire-0.3.79-r2.ebuild @@ -0,0 +1,475 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 1. Please regularly check (even at the point of bumping) Fedora's packaging +# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide. +# +# 2. Upstream also sometimes amend release notes for the previous release to mention +# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros +# +# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things +# continue to move quickly. It's not uncommon for fixes to be made shortly +# after releases. + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" + inherit git-r3 +else + if [[ ${PV} == *_p* ]] ; then + MY_COMMIT="" + SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + else + SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" + fi + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="MIT LGPL-2.1+ GPL-2" +# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 +SLOT="0/0.4" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf" + +# Once replacing system JACK libraries is possible, it's likely that +# jack-client IUSE will need blocking to avoid users accidentally +# configuring their systems to send PW sink output to the emulated +# JACK's sink - doing so is likely to yield no audio, cause a CPU +# cycles consuming loop (and may even cause GUI crashes)! + +# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled +# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work +# which provides adequate guarantee that alsa-lib will be able to provide audio services. +# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL. +# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally. +# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity. +REQUIRED_USE=" + ffmpeg? ( extra ) + bluetooth? ( dbus ) + jack-sdk? ( !jack-client ) + modemmanager? ( bluetooth ) + system-service? ( systemd ) + !sound-server? ( !pipewire-alsa ) + jack-client? ( dbus ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-util/meson-0.59 + virtual/pkgconfig + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + dbus? ( dev-util/gdbus-codegen ) + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +# While udev could technically be optional, it's needed for a numebr of options, +# and not really worth it, bug #877769. +RDEPEND=" + acct-group/audio + acct-group/pipewire + media-libs/alsa-lib + sys-libs/ncurses:=[unicode(+)] + virtual/libintl[${MULTILIB_USEDEP}] + virtual/libudev[${MULTILIB_USEDEP}] + bluetooth? ( + dev-libs/glib + media-libs/fdk-aac + media-libs/libldac + media-libs/libfreeaptx + media-libs/opus + media-libs/sbc + >=net-wireless/bluez-4.101:= + virtual/libusb:1 + ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + echo-cancel? ( media-libs/webrtc-audio-processing:0 ) + extra? ( >=media-libs/libsndfile-1.0.20 ) + ffmpeg? ( media-video/ffmpeg:= ) + flatpak? ( dev-libs/glib ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) + jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) + jack-sdk? ( + !media-sound/jack-audio-connection-kit + !media-sound/jack2 + ) + liblc3? ( media-sound/liblc3 ) + lv2? ( media-libs/lilv ) + modemmanager? ( >=net-misc/modemmanager-1.10.0 ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) + roc? ( media-libs/roc-toolkit ) + readline? ( sys-libs/readline:= ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd ) + system-service? ( acct-user/pipewire ) + v4l? ( media-libs/libv4l ) + X? ( + media-libs/libcanberra + x11-libs/libX11 + x11-libs/libXfixes + ) + zeroconf? ( net-dns/avahi ) +" + +DEPEND="${RDEPEND}" + +# TODO: Consider use cases where pipewire is not used for driving audio +# Doing so with WirePlumber currently involves editing Lua scripts +PDEPEND=">=media-video/wireplumber-0.4.8-r3" + +# Present RDEPEND that are currently always disabled due to the PW +# code using them being required to be disabled by Gentoo guidelines +# (i.e. developer binaries not meant for users) and unready code +# media-libs/libsdl2 +# >=media-libs/vulkan-loader-1.1.69 +# +# Ditto for DEPEND +# >=dev-util/vulkan-headers-1.1.69 + +DOCS=( {README,INSTALL}.md NEWS ) + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch +) + +python_check_deps() { + python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + + # Used for upstream backports + [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} +} + +multilib_src_configure() { + # https://bugs.gentoo.org/838301 + filter-flags -fno-semantic-interposition + + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + + $(meson_feature dbus) + $(meson_native_use_feature zeroconf avahi) + $(meson_native_use_feature doc docs) + $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone + $(meson_native_enabled man) + $(meson_feature test tests) + -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) + $(meson_native_use_feature gstreamer) + $(meson_native_use_feature gstreamer gstreamer-device-provider) + $(meson_native_use_feature gsettings) + $(meson_native_use_feature systemd) + + $(meson_native_use_feature system-service systemd-system-service) + -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" + -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)" + + $(meson_native_use_feature systemd systemd-user-service) + $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph + -Dspa-plugins=enabled + -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) + -Dcompress-offload=disabled # TODO: tinycompress unpackaged + -Daudiomixer=enabled # Matches upstream + -Daudioconvert=enabled # Matches upstream + $(meson_native_use_feature bluetooth bluez5) + $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) + $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) + # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379 + $(meson_native_use_feature modemmanager bluez5-backend-native-mm) + $(meson_native_use_feature bluetooth bluez5-backend-ofono) + $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) + $(meson_native_use_feature bluetooth bluez5-codec-aac) + $(meson_native_use_feature bluetooth bluez5-codec-aptx) + $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) + $(meson_native_use_feature bluetooth bluez5-codec-opus) + $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) + $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 + -Dcontrol=enabled # Matches upstream + -Daudiotestsrc=enabled # Matches upstream + -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 + $(meson_native_use_feature ffmpeg pw-cat-ffmpeg) + $(meson_native_use_feature flatpak) + -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph + $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client + $(meson_use jack-sdk jack-devel) + $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') + -Dsupport=enabled # Miscellaneous/common plugins, such as null sink + -Devl=disabled # Matches upstream + -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) + $(meson_native_use_feature lv2) + $(meson_native_use_feature v4l v4l2) + -Dlibcamera=disabled # libcamera is not in Portage tree + $(meson_native_use_feature roc) + $(meson_native_use_feature readline) + $(meson_native_use_feature ssl raop) + -Dvideoconvert=enabled # Matches upstream + -Dvideotestsrc=enabled # Matches upstream + -Dvolume=enabled # Matches upstream + -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) + $(meson_native_use_feature extra pw-cat) + -Dudev=enabled + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + -Dlibmysofa=disabled # libmysofa is unpackaged + $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) + -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + + # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only + # just became stable, with 5.15 being the previous LTS. Many people + # are still on it. + -Dpam-defaults-install=true + + # Just for bell sounds in X11 right now. + $(meson_native_use_feature X x11) + $(meson_native_use_feature X x11-xfixes) + $(meson_native_use_feature X libcanberra) + ) + + meson_src_configure +} + +multilib_src_test() { + meson_src_test --timeout-multiplier 10 +} + +multilib_src_install() { + # Our custom DOCS do not exist in multilib source directory + DOCS= meson_src_install +} + +multilib_src_install_all() { + einstalldocs + + if use pipewire-alsa; then + dodir /etc/alsa/conf.d + + # Install pipewire conf loader hook + insinto /usr/share/alsa/alsa.conf.d + doins "${FILESDIR}"/99-pipewire-default-hook.conf + eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf + + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 + # And the current dosym8 -r implementation is likely affected by the same issue, too. + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf + fi + + # Enable required wireplumber alsa and bluez monitors + if use sound-server; then + dodir /etc/wireplumber/main.lua.d + echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die + + dodir /etc/wireplumber/bluetooth.lua.d + echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die + fi + + if use system-service; then + newtmpfiles - pipewire.conf <<-EOF || die + d /run/pipewire 0755 pipewire pipewire - - + EOF + fi + + if ! use systemd; then + insinto /etc/xdg/autostart + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop + + exeinto /usr/bin + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r2 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 + + # Disable pipewire-pulse if sound-server is disabled. + if ! use sound-server ; then + sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die + fi + + eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher + fi +} + +pkg_postrm() { + udev_reload +} + +pkg_preinst() { + HAD_SOUND_SERVER=0 + HAD_SYSTEM_SERVICE=0 + + if has_version "media-video/pipewire[sound-server(-)]" ; then + HAD_SOUND_SERVER=1 + fi + + if has_version "media-video/pipewire[system-service(-)]" ; then + HAD_SYSTEM_SERVICE=1 + fi +} + +pkg_postinst() { + udev_reload + + use system-service && tmpfiles_process pipewire.conf + + local ver + for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + + if ver_test ${ver} -le 0.3.66-r1 ; then + elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" + elog " usermod -aG pipewire <youruser>" + elog + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" + elog " usermod -rG audio <youruser>" + elog + + if ! use jack-sdk ; then + elog + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack <application> before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd ; then + ewarn + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + fi + + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then + elog + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit pulseaudio client configuration files:" + elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" + elog "if it exists, and disable autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable ofono" + else + ewarn "rc-update delete ofono" + fi + fi + fi + done + + if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. + if use sound-server && use systemd ; then + elog + elog "When switching from PulseAudio, you may need to disable PulseAudio:" + elog + elog " systemctl --user disable pulseaudio.service pulseaudio.socket" + elog + elog "To use PipeWire, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" + elog + elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" + elog + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." + elog + elog "Both new users and those upgrading need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user disable pipewire-media-session.service" + elog " systemctl --user --force enable wireplumber.service" + elog + elog "Root user may replace --user with --global to change system default" + elog "configuration for all of the above commands." + elog + fi + + if ! use sound-server ; then + ewarn + ewarn "USE=sound-server is disabled! If you want PipeWire to provide" + ewarn "your sound, please enable it. See the wiki at" + ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" + ewarn "for more details." + ewarn + fi + fi + + if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + ewarn + ewarn "You have enabled the system-service USE flag, which installs" + ewarn "the system-wide systemd units that enable PipeWire to run as a system" + ewarn "service. This is more than likely NOT what you want. You are strongly" + ewarn "advised not to enable this mode and instead stick with systemd user" + ewarn "units. The default configuration files will likely not work out of the" + ewarn "box, and you are on your own with configuration." + ewarn + fi + + elog "For latest tips and tricks, troubleshooting information, and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if use sound-server && ! use pipewire-alsa; then + optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" + fi +} diff --git a/media-video/pipewire/pipewire-0.3.79-r3.ebuild b/media-video/pipewire/pipewire-0.3.79-r3.ebuild new file mode 100644 index 000000000000..7a471fb632bf --- /dev/null +++ b/media-video/pipewire/pipewire-0.3.79-r3.ebuild @@ -0,0 +1,475 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 1. Please regularly check (even at the point of bumping) Fedora's packaging +# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide. +# +# 2. Upstream also sometimes amend release notes for the previous release to mention +# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros +# +# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things +# continue to move quickly. It's not uncommon for fixes to be made shortly +# after releases. + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" + inherit git-r3 +else + if [[ ${PV} == *_p* ]] ; then + MY_COMMIT="" + SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + else + SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" + fi + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="MIT LGPL-2.1+ GPL-2" +# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 +SLOT="0/0.4" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf" + +# Once replacing system JACK libraries is possible, it's likely that +# jack-client IUSE will need blocking to avoid users accidentally +# configuring their systems to send PW sink output to the emulated +# JACK's sink - doing so is likely to yield no audio, cause a CPU +# cycles consuming loop (and may even cause GUI crashes)! + +# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled +# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work +# which provides adequate guarantee that alsa-lib will be able to provide audio services. +# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL. +# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally. +# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity. +REQUIRED_USE=" + ffmpeg? ( extra ) + bluetooth? ( dbus ) + jack-sdk? ( !jack-client ) + modemmanager? ( bluetooth ) + system-service? ( systemd ) + !sound-server? ( !pipewire-alsa ) + jack-client? ( dbus ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-util/meson-0.59 + virtual/pkgconfig + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + dbus? ( dev-util/gdbus-codegen ) + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +# While udev could technically be optional, it's needed for a numebr of options, +# and not really worth it, bug #877769. +RDEPEND=" + acct-group/audio + acct-group/pipewire + media-libs/alsa-lib + sys-libs/ncurses:=[unicode(+)] + virtual/libintl[${MULTILIB_USEDEP}] + virtual/libudev[${MULTILIB_USEDEP}] + bluetooth? ( + dev-libs/glib + media-libs/fdk-aac + media-libs/libldac + media-libs/libfreeaptx + media-libs/opus + media-libs/sbc + >=net-wireless/bluez-4.101:= + virtual/libusb:1 + ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + echo-cancel? ( media-libs/webrtc-audio-processing:0 ) + extra? ( >=media-libs/libsndfile-1.0.20 ) + ffmpeg? ( media-video/ffmpeg:= ) + flatpak? ( dev-libs/glib ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) + jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) + jack-sdk? ( + !media-sound/jack-audio-connection-kit + !media-sound/jack2 + ) + liblc3? ( media-sound/liblc3 ) + lv2? ( media-libs/lilv ) + modemmanager? ( >=net-misc/modemmanager-1.10.0 ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) + roc? ( media-libs/roc-toolkit ) + readline? ( sys-libs/readline:= ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd ) + system-service? ( acct-user/pipewire ) + v4l? ( media-libs/libv4l ) + X? ( + media-libs/libcanberra + x11-libs/libX11 + x11-libs/libXfixes + ) + zeroconf? ( net-dns/avahi ) +" + +DEPEND="${RDEPEND}" + +# TODO: Consider use cases where pipewire is not used for driving audio +# Doing so with WirePlumber currently involves editing Lua scripts +PDEPEND=">=media-video/wireplumber-0.4.8-r3" + +# Present RDEPEND that are currently always disabled due to the PW +# code using them being required to be disabled by Gentoo guidelines +# (i.e. developer binaries not meant for users) and unready code +# media-libs/libsdl2 +# >=media-libs/vulkan-loader-1.1.69 +# +# Ditto for DEPEND +# >=dev-util/vulkan-headers-1.1.69 + +DOCS=( {README,INSTALL}.md NEWS ) + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch +) + +python_check_deps() { + python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + + # Used for upstream backports + [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} +} + +multilib_src_configure() { + # https://bugs.gentoo.org/838301 + filter-flags -fno-semantic-interposition + + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + + $(meson_feature dbus) + $(meson_native_use_feature zeroconf avahi) + $(meson_native_use_feature doc docs) + $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone + $(meson_native_enabled man) + $(meson_feature test tests) + -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) + $(meson_native_use_feature gstreamer) + $(meson_native_use_feature gstreamer gstreamer-device-provider) + $(meson_native_use_feature gsettings) + $(meson_native_use_feature systemd) + + $(meson_native_use_feature system-service systemd-system-service) + -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" + -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)" + + $(meson_native_use_feature systemd systemd-user-service) + $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph + -Dspa-plugins=enabled + -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) + -Dcompress-offload=disabled # TODO: tinycompress unpackaged + -Daudiomixer=enabled # Matches upstream + -Daudioconvert=enabled # Matches upstream + $(meson_native_use_feature bluetooth bluez5) + $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) + $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) + # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379 + $(meson_native_use_feature modemmanager bluez5-backend-native-mm) + $(meson_native_use_feature bluetooth bluez5-backend-ofono) + $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) + $(meson_native_use_feature bluetooth bluez5-codec-aac) + $(meson_native_use_feature bluetooth bluez5-codec-aptx) + $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) + $(meson_native_use_feature bluetooth bluez5-codec-opus) + $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) + $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 + -Dcontrol=enabled # Matches upstream + -Daudiotestsrc=enabled # Matches upstream + -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 + $(meson_native_use_feature ffmpeg pw-cat-ffmpeg) + $(meson_native_use_feature flatpak) + -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph + $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client + $(meson_use jack-sdk jack-devel) + $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') + -Dsupport=enabled # Miscellaneous/common plugins, such as null sink + -Devl=disabled # Matches upstream + -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) + $(meson_native_use_feature lv2) + $(meson_native_use_feature v4l v4l2) + -Dlibcamera=disabled # libcamera is not in Portage tree + $(meson_native_use_feature roc) + $(meson_native_use_feature readline) + $(meson_native_use_feature ssl raop) + -Dvideoconvert=enabled # Matches upstream + -Dvideotestsrc=enabled # Matches upstream + -Dvolume=enabled # Matches upstream + -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) + $(meson_native_use_feature extra pw-cat) + -Dudev=enabled + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + -Dlibmysofa=disabled # libmysofa is unpackaged + $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) + -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + + # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only + # just became stable, with 5.15 being the previous LTS. Many people + # are still on it. + -Dpam-defaults-install=true + + # Just for bell sounds in X11 right now. + $(meson_native_use_feature X x11) + $(meson_native_use_feature X x11-xfixes) + $(meson_native_use_feature X libcanberra) + ) + + meson_src_configure +} + +multilib_src_test() { + meson_src_test --timeout-multiplier 10 +} + +multilib_src_install() { + # Our custom DOCS do not exist in multilib source directory + DOCS= meson_src_install +} + +multilib_src_install_all() { + einstalldocs + + if use pipewire-alsa; then + dodir /etc/alsa/conf.d + + # Install pipewire conf loader hook + insinto /usr/share/alsa/alsa.conf.d + doins "${FILESDIR}"/99-pipewire-default-hook.conf + eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf + + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 + # And the current dosym8 -r implementation is likely affected by the same issue, too. + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf + fi + + # Enable required wireplumber alsa and bluez monitors + if use sound-server; then + dodir /etc/wireplumber/main.lua.d + echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die + + dodir /etc/wireplumber/bluetooth.lua.d + echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die + fi + + if use system-service; then + newtmpfiles - pipewire.conf <<-EOF || die + d /run/pipewire 0755 pipewire pipewire - - + EOF + fi + + if ! use systemd; then + insinto /etc/xdg/autostart + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop + + exeinto /usr/bin + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 + + # Disable pipewire-pulse if sound-server is disabled. + if ! use sound-server ; then + sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die + fi + + eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher + fi +} + +pkg_postrm() { + udev_reload +} + +pkg_preinst() { + HAD_SOUND_SERVER=0 + HAD_SYSTEM_SERVICE=0 + + if has_version "media-video/pipewire[sound-server(-)]" ; then + HAD_SOUND_SERVER=1 + fi + + if has_version "media-video/pipewire[system-service(-)]" ; then + HAD_SYSTEM_SERVICE=1 + fi +} + +pkg_postinst() { + udev_reload + + use system-service && tmpfiles_process pipewire.conf + + local ver + for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + + if ver_test ${ver} -le 0.3.66-r1 ; then + elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" + elog " usermod -aG pipewire <youruser>" + elog + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" + elog " usermod -rG audio <youruser>" + elog + + if ! use jack-sdk ; then + elog + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack <application> before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd ; then + ewarn + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + fi + + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then + elog + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit pulseaudio client configuration files:" + elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" + elog "if it exists, and disable autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable ofono" + else + ewarn "rc-update delete ofono" + fi + fi + fi + done + + if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. + if use sound-server && use systemd ; then + elog + elog "When switching from PulseAudio, you may need to disable PulseAudio:" + elog + elog " systemctl --user disable pulseaudio.service pulseaudio.socket" + elog + elog "To use PipeWire, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" + elog + elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" + elog + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." + elog + elog "Both new users and those upgrading need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user disable pipewire-media-session.service" + elog " systemctl --user --force enable wireplumber.service" + elog + elog "Root user may replace --user with --global to change system default" + elog "configuration for all of the above commands." + elog + fi + + if ! use sound-server ; then + ewarn + ewarn "USE=sound-server is disabled! If you want PipeWire to provide" + ewarn "your sound, please enable it. See the wiki at" + ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" + ewarn "for more details." + ewarn + fi + fi + + if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + ewarn + ewarn "You have enabled the system-service USE flag, which installs" + ewarn "the system-wide systemd units that enable PipeWire to run as a system" + ewarn "service. This is more than likely NOT what you want. You are strongly" + ewarn "advised not to enable this mode and instead stick with systemd user" + ewarn "units. The default configuration files will likely not work out of the" + ewarn "box, and you are on your own with configuration." + ewarn + fi + + elog "For latest tips and tricks, troubleshooting information, and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if use sound-server && ! use pipewire-alsa; then + optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" + fi +} diff --git a/media-video/pipewire/pipewire-0.3.80.ebuild b/media-video/pipewire/pipewire-0.3.80.ebuild new file mode 100644 index 000000000000..7a471fb632bf --- /dev/null +++ b/media-video/pipewire/pipewire-0.3.80.ebuild @@ -0,0 +1,475 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# 1. Please regularly check (even at the point of bumping) Fedora's packaging +# for needed backports at https://src.fedoraproject.org/rpms/pipewire/tree/rawhide. +# +# 2. Upstream also sometimes amend release notes for the previous release to mention +# needed patches, e.g. https://gitlab.freedesktop.org/pipewire/pipewire/-/tags/0.3.55#distros +# +# 3. Keep an eye on git master (for both PipeWire and WirePlumber) as things +# continue to move quickly. It's not uncommon for fixes to be made shortly +# after releases. + +PYTHON_COMPAT=( python3_{10..12} ) + +inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev + +if [[ ${PV} == 9999 ]]; then + EGIT_REPO_URI="https://gitlab.freedesktop.org/${PN}/${PN}.git" + inherit git-r3 +else + if [[ ${PV} == *_p* ]] ; then + MY_COMMIT="" + SRC_URI="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${MY_COMMIT}/pipewire-${MY_COMMIT}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}"/${PN}-${MY_COMMIT} + else + SRC_URI="https://gitlab.freedesktop.org/${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2" + fi + + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +DESCRIPTION="Multimedia processing graphs" +HOMEPAGE="https://pipewire.org/" + +LICENSE="MIT LGPL-2.1+ GPL-2" +# ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 +SLOT="0/0.4" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf" + +# Once replacing system JACK libraries is possible, it's likely that +# jack-client IUSE will need blocking to avoid users accidentally +# configuring their systems to send PW sink output to the emulated +# JACK's sink - doing so is likely to yield no audio, cause a CPU +# cycles consuming loop (and may even cause GUI crashes)! + +# - TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled +# - TODO: Pulseaudio alsa plugin performs runtime check that pulseaudio server connection will work +# which provides adequate guarantee that alsa-lib will be able to provide audio services. +# If that works, pulseaudio defaults are loaded into alsa-lib runtime replacing default PCM and CTL. +# When pipewire-alsa will be able to perform similar check, pipewire-alsa can be enabled unconditionally. +# - ffmpeg is only used for pw-cat. We don't build the spa plugin which receives barely any activity. +REQUIRED_USE=" + ffmpeg? ( extra ) + bluetooth? ( dbus ) + jack-sdk? ( !jack-client ) + modemmanager? ( bluetooth ) + system-service? ( systemd ) + !sound-server? ( !pipewire-alsa ) + jack-client? ( dbus ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + >=dev-util/meson-0.59 + virtual/pkgconfig + ${PYTHON_DEPS} + $(python_gen_any_dep 'dev-python/docutils[${PYTHON_USEDEP}]') + dbus? ( dev-util/gdbus-codegen ) + doc? ( + app-doc/doxygen + media-gfx/graphviz + ) +" +# While udev could technically be optional, it's needed for a numebr of options, +# and not really worth it, bug #877769. +RDEPEND=" + acct-group/audio + acct-group/pipewire + media-libs/alsa-lib + sys-libs/ncurses:=[unicode(+)] + virtual/libintl[${MULTILIB_USEDEP}] + virtual/libudev[${MULTILIB_USEDEP}] + bluetooth? ( + dev-libs/glib + media-libs/fdk-aac + media-libs/libldac + media-libs/libfreeaptx + media-libs/opus + media-libs/sbc + >=net-wireless/bluez-4.101:= + virtual/libusb:1 + ) + dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + echo-cancel? ( media-libs/webrtc-audio-processing:0 ) + extra? ( >=media-libs/libsndfile-1.0.20 ) + ffmpeg? ( media-video/ffmpeg:= ) + flatpak? ( dev-libs/glib ) + gstreamer? ( + >=dev-libs/glib-2.32.0:2 + >=media-libs/gstreamer-1.10.0:1.0 + media-libs/gst-plugins-base:1.0 + ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) + jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) + jack-sdk? ( + !media-sound/jack-audio-connection-kit + !media-sound/jack2 + ) + liblc3? ( media-sound/liblc3 ) + lv2? ( media-libs/lilv ) + modemmanager? ( >=net-misc/modemmanager-1.10.0 ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) + roc? ( media-libs/roc-toolkit ) + readline? ( sys-libs/readline:= ) + ssl? ( dev-libs/openssl:= ) + systemd? ( sys-apps/systemd ) + system-service? ( acct-user/pipewire ) + v4l? ( media-libs/libv4l ) + X? ( + media-libs/libcanberra + x11-libs/libX11 + x11-libs/libXfixes + ) + zeroconf? ( net-dns/avahi ) +" + +DEPEND="${RDEPEND}" + +# TODO: Consider use cases where pipewire is not used for driving audio +# Doing so with WirePlumber currently involves editing Lua scripts +PDEPEND=">=media-video/wireplumber-0.4.8-r3" + +# Present RDEPEND that are currently always disabled due to the PW +# code using them being required to be disabled by Gentoo guidelines +# (i.e. developer binaries not meant for users) and unready code +# media-libs/libsdl2 +# >=media-libs/vulkan-loader-1.1.69 +# +# Ditto for DEPEND +# >=dev-util/vulkan-headers-1.1.69 + +DOCS=( {README,INSTALL}.md NEWS ) + +PATCHES=( + "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch +) + +python_check_deps() { + python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" +} + +src_prepare() { + default + + # Used for upstream backports + [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} +} + +multilib_src_configure() { + # https://bugs.gentoo.org/838301 + filter-flags -fno-semantic-interposition + + local emesonargs=( + -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} + + $(meson_feature dbus) + $(meson_native_use_feature zeroconf avahi) + $(meson_native_use_feature doc docs) + $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone + $(meson_native_enabled man) + $(meson_feature test tests) + -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) + $(meson_native_use_feature gstreamer) + $(meson_native_use_feature gstreamer gstreamer-device-provider) + $(meson_native_use_feature gsettings) + $(meson_native_use_feature systemd) + + $(meson_native_use_feature system-service systemd-system-service) + -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" + -Dsystemd-user-unit-dir="$(systemd_get_userunitdir)" + + $(meson_native_use_feature systemd systemd-user-service) + $(meson_feature pipewire-alsa) # Allows integrating ALSA apps into PW graph + -Dspa-plugins=enabled + -Dalsa=enabled # Allows using kernel ALSA for sound I/O (NOTE: media-session is gone so IUSE=alsa/spa_alsa/alsa-backend might be possible) + -Dcompress-offload=disabled # TODO: tinycompress unpackaged + -Daudiomixer=enabled # Matches upstream + -Daudioconvert=enabled # Matches upstream + $(meson_native_use_feature bluetooth bluez5) + $(meson_native_use_feature bluetooth bluez5-backend-hsp-native) + $(meson_native_use_feature bluetooth bluez5-backend-hfp-native) + # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1379 + $(meson_native_use_feature modemmanager bluez5-backend-native-mm) + $(meson_native_use_feature bluetooth bluez5-backend-ofono) + $(meson_native_use_feature bluetooth bluez5-backend-hsphfpd) + $(meson_native_use_feature bluetooth bluez5-codec-aac) + $(meson_native_use_feature bluetooth bluez5-codec-aptx) + $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) + $(meson_native_use_feature bluetooth bluez5-codec-opus) + $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) + $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 + -Dcontrol=enabled # Matches upstream + -Daudiotestsrc=enabled # Matches upstream + -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 + $(meson_native_use_feature ffmpeg pw-cat-ffmpeg) + $(meson_native_use_feature flatpak) + -Dpipewire-jack=enabled # Allows integrating JACK apps into PW graph + $(meson_native_use_feature jack-client jack) # Allows PW to act as a JACK client + $(meson_use jack-sdk jack-devel) + $(usex jack-sdk "-Dlibjack-path=${EPREFIX}/usr/$(get_libdir)" '') + -Dsupport=enabled # Miscellaneous/common plugins, such as null sink + -Devl=disabled # Matches upstream + -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) + $(meson_native_use_feature lv2) + $(meson_native_use_feature v4l v4l2) + -Dlibcamera=disabled # libcamera is not in Portage tree + $(meson_native_use_feature roc) + $(meson_native_use_feature readline) + $(meson_native_use_feature ssl raop) + -Dvideoconvert=enabled # Matches upstream + -Dvideotestsrc=enabled # Matches upstream + -Dvolume=enabled # Matches upstream + -Dvulkan=disabled # Uses pre-compiled Vulkan compute shader to provide a CGI video source (dev thing; disabled by upstream) + $(meson_native_use_feature extra pw-cat) + -Dudev=enabled + -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d" + -Dsdl2=disabled # Controls SDL2 dependent code (currently only examples when -Dinstalled_tests=enabled which we never install) + -Dlibmysofa=disabled # libmysofa is unpackaged + $(meson_native_use_feature extra sndfile) # Enables libsndfile dependent code (currently only pw-cat) + -Dsession-managers="[]" # All available session managers are now their own projects, so there's nothing to build + + # We still have <5.16 kernels packaged in Gentoo and 6.1 (LTS) only + # just became stable, with 5.15 being the previous LTS. Many people + # are still on it. + -Dpam-defaults-install=true + + # Just for bell sounds in X11 right now. + $(meson_native_use_feature X x11) + $(meson_native_use_feature X x11-xfixes) + $(meson_native_use_feature X libcanberra) + ) + + meson_src_configure +} + +multilib_src_test() { + meson_src_test --timeout-multiplier 10 +} + +multilib_src_install() { + # Our custom DOCS do not exist in multilib source directory + DOCS= meson_src_install +} + +multilib_src_install_all() { + einstalldocs + + if use pipewire-alsa; then + dodir /etc/alsa/conf.d + + # Install pipewire conf loader hook + insinto /usr/share/alsa/alsa.conf.d + doins "${FILESDIR}"/99-pipewire-default-hook.conf + eprefixify "${ED}"/usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf + + # These will break if someone has /etc that is a symbolic link to a subfolder! See #724222 + # And the current dosym8 -r implementation is likely affected by the same issue, too. + dosym ../../../usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d/50-pipewire.conf + dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf + fi + + # Enable required wireplumber alsa and bluez monitors + if use sound-server; then + dodir /etc/wireplumber/main.lua.d + echo "alsa_monitor.enabled = true" > "${ED}"/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua || die + + dodir /etc/wireplumber/bluetooth.lua.d + echo "bluez_monitor.enabled = true" > "${ED}"/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua || die + fi + + if use system-service; then + newtmpfiles - pipewire.conf <<-EOF || die + d /run/pipewire 0755 pipewire pipewire - - + EOF + fi + + if ! use systemd; then + insinto /etc/xdg/autostart + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop + + exeinto /usr/bin + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 + + # Disable pipewire-pulse if sound-server is disabled. + if ! use sound-server ; then + sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die + fi + + eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher + fi +} + +pkg_postrm() { + udev_reload +} + +pkg_preinst() { + HAD_SOUND_SERVER=0 + HAD_SYSTEM_SERVICE=0 + + if has_version "media-video/pipewire[sound-server(-)]" ; then + HAD_SOUND_SERVER=1 + fi + + if has_version "media-video/pipewire[system-service(-)]" ; then + HAD_SYSTEM_SERVICE=1 + fi +} + +pkg_postinst() { + udev_reload + + use system-service && tmpfiles_process pipewire.conf + + local ver + for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + + if ver_test ${ver} -le 0.3.66-r1 ; then + elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" + elog "and limits needed to function smoothly:" + elog + elog "1. Please make sure your user is in the 'pipewire' group for" + elog "the best experience with realtime scheduling (PAM limits behavior)!" + elog "You can add your account with:" + elog " usermod -aG pipewire <youruser>" + elog + elog "2. For the best experience with fast user switching, it is recommended" + elog "that you remove your user from the 'audio' group unless you rely on the" + elog "audio group for device access control or ACLs.:" + elog " usermod -rG audio <youruser>" + elog + + if ! use jack-sdk ; then + elog + elog "JACK emulation is incomplete and not all programs will work. PipeWire's" + elog "alternative libraries have been installed to a non-default location." + elog "To use them, put pw-jack <application> before every JACK application." + elog "When using pw-jack, do not run jackd/jackdbus. However, a virtual/jack" + elog "provider is still needed to compile the JACK applications themselves." + elog + fi + + if use systemd ; then + ewarn + ewarn "PipeWire daemon startup has been moved to a launcher script!" + ewarn "Make sure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist or no" + ewarn "longer is set to start a session manager or PulseAudio compatibility daemon (all" + ewarn "lines similar to '{ path = /usr/bin/pipewire*' should be commented out)" + ewarn + ewarn "Those manually starting /usr/bin/pipewire via .xinitrc or similar _must_ from" + ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly" + ewarn "advised that a D-Bus user session is set up before starting the script." + ewarn + fi + + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then + elog + elog "This ebuild auto-enables PulseAudio replacement. Because of that, users" + elog "are recommended to edit pulseaudio client configuration files:" + elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf" + elog "if it exists, and disable autospawning of the original daemon by setting:" + elog + elog " autospawn = no" + elog + elog "Please note that the semicolon (;) must _NOT_ be at the beginning of the line!" + elog + elog "Alternatively, if replacing PulseAudio daemon is not desired, edit" + elog "${EROOT}/usr/bin/gentoo-pipewire-launcher by commenting out the relevant" + elog "command:" + elog + elog "#${EROOT}/usr/bin/pipewire -c pipewire-pulse.conf &" + elog + fi + + if has_version 'net-misc/ofono' ; then + ewarn "Native backend has become default. Please disable oFono via:" + if systemd_is_booted ; then + ewarn "systemctl disable ofono" + else + ewarn "rc-update delete ofono" + fi + fi + fi + done + + if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. + if use sound-server && use systemd ; then + elog + elog "When switching from PulseAudio, you may need to disable PulseAudio:" + elog + elog " systemctl --user disable pulseaudio.service pulseaudio.socket" + elog + elog "To use PipeWire, the user units must be manually enabled" + elog "by running this command as each user you use for desktop activities:" + elog + elog " systemctl --user enable pipewire.socket pipewire-pulse.socket" + elog + elog "A reboot is recommended to avoid interferences from still running" + elog "PulseAudio daemon." + elog + elog "Both new users and those upgrading need to enable WirePlumber" + elog "for relevant users:" + elog + elog " systemctl --user disable pipewire-media-session.service" + elog " systemctl --user --force enable wireplumber.service" + elog + elog "Root user may replace --user with --global to change system default" + elog "configuration for all of the above commands." + elog + fi + + if ! use sound-server ; then + ewarn + ewarn "USE=sound-server is disabled! If you want PipeWire to provide" + ewarn "your sound, please enable it. See the wiki at" + ewarn "https://wiki.gentoo.org/wiki/PipeWire#Replacing_PulseAudio" + ewarn "for more details." + ewarn + fi + fi + + if use system-service && [[ ${HAD_SYSTEM_SERVICE} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then + ewarn + ewarn "You have enabled the system-service USE flag, which installs" + ewarn "the system-wide systemd units that enable PipeWire to run as a system" + ewarn "service. This is more than likely NOT what you want. You are strongly" + ewarn "advised not to enable this mode and instead stick with systemd user" + ewarn "units. The default configuration files will likely not work out of the" + ewarn "box, and you are on your own with configuration." + ewarn + fi + + elog "For latest tips and tricks, troubleshooting information, and documentation" + elog "in general, please refer to https://wiki.gentoo.org/wiki/PipeWire" + elog + + optfeature_header "The following can be installed for optional runtime features:" + optfeature "restricted realtime capabilities via D-Bus" sys-auth/rtkit + + if use sound-server && ! use pipewire-alsa; then + optfeature "ALSA plugin to use PulseAudio interface for output" "media-plugins/alsa-plugins[pulseaudio]" + fi +} diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild index bcdc4725ecd4..7a471fb632bf 100644 --- a/media-video/pipewire/pipewire-9999.ebuild +++ b/media-video/pipewire/pipewire-9999.ebuild @@ -13,7 +13,7 @@ EAPI=8 # continue to move quickly. It's not uncommon for fixes to be made shortly # after releases. -PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_COMPAT=( python3_{10..12} ) inherit flag-o-matic meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev @@ -38,8 +38,8 @@ HOMEPAGE="https://pipewire.org/" LICENSE="MIT LGPL-2.1+ GPL-2" # ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49 SLOT="0/0.4" -IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings jack-client jack-sdk lv2 -modemmanager pipewire-alsa readline sound-server ssl system-service systemd test v4l X zeroconf" +IUSE="bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE+=" modemmanager pipewire-alsa readline roc sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that # jack-client IUSE will need blocking to avoid users accidentally @@ -97,41 +97,31 @@ RDEPEND=" ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) echo-cancel? ( media-libs/webrtc-audio-processing:0 ) - extra? ( - >=media-libs/libsndfile-1.0.20 - ) + extra? ( >=media-libs/libsndfile-1.0.20 ) ffmpeg? ( media-video/ffmpeg:= ) - flatpak? ( - dev-libs/glib - ) + flatpak? ( dev-libs/glib ) gstreamer? ( >=dev-libs/glib-2.32.0:2 >=media-libs/gstreamer-1.10.0:1.0 media-libs/gst-plugins-base:1.0 ) - gsettings? ( - >=dev-libs/glib-2.26.0:2 - ) + gsettings? ( >=dev-libs/glib-2.26.0:2 ) + ieee1394? ( media-libs/libffado[${MULTILIB_USEDEP}] ) jack-client? ( >=media-sound/jack2-1.9.10:2[dbus] ) jack-sdk? ( !media-sound/jack-audio-connection-kit !media-sound/jack2 ) + liblc3? ( media-sound/liblc3 ) lv2? ( media-libs/lilv ) modemmanager? ( >=net-misc/modemmanager-1.10.0 ) - pipewire-alsa? ( - >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] - ) - sound-server? ( - !media-sound/pulseaudio[daemon(+)] - !media-sound/pulseaudio-daemon - ) + pipewire-alsa? ( >=media-libs/alsa-lib-1.1.7[${MULTILIB_USEDEP}] ) + sound-server? ( !media-sound/pulseaudio-daemon ) + roc? ( media-libs/roc-toolkit ) readline? ( sys-libs/readline:= ) ssl? ( dev-libs/openssl:= ) systemd? ( sys-apps/systemd ) - system-service? ( - acct-user/pipewire - ) + system-service? ( acct-user/pipewire ) v4l? ( media-libs/libv4l ) X? ( media-libs/libcanberra @@ -187,6 +177,7 @@ multilib_src_configure() { $(meson_native_enabled man) $(meson_feature test tests) -Dinstalled_tests=disabled # Matches upstream; Gentoo never installs tests + $(meson_feature ieee1394 libffado) $(meson_native_use_feature gstreamer) $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) @@ -213,13 +204,10 @@ multilib_src_configure() { $(meson_native_use_feature bluetooth bluez5-codec-aac) $(meson_native_use_feature bluetooth bluez5-codec-aptx) $(meson_native_use_feature bluetooth bluez5-codec-ldac) + $(meson_native_use_feature bluetooth opus) $(meson_native_use_feature bluetooth bluez5-codec-opus) $(meson_native_use_feature bluetooth libusb) # At least for now only used by bluez5 native (quirk detection of adapters) $(meson_native_use_feature echo-cancel echo-cancel-webrtc) #807889 - # Not yet packaged. - # http://www.bluez.org/le-audio-support-in-pipewire/ - -Dbluez5-codec-lc3=disabled - -Dbluez5-codec-lc3plus=disabled -Dcontrol=enabled # Matches upstream -Daudiotestsrc=enabled # Matches upstream -Dffmpeg=disabled # Disabled by upstream and no major developments to spa/plugins/ffmpeg/ since May 2020 @@ -232,9 +220,12 @@ multilib_src_configure() { -Dsupport=enabled # Miscellaneous/common plugins, such as null sink -Devl=disabled # Matches upstream -Dtest=disabled # fakesink and fakesource plugins + -Dbluez5-codec-lc3plus=disabled # unpackaged + $(meson_native_use_feature liblc3 bluez5-codec-lc3) $(meson_native_use_feature lv2) $(meson_native_use_feature v4l v4l2) -Dlibcamera=disabled # libcamera is not in Portage tree + $(meson_native_use_feature roc) $(meson_native_use_feature readline) $(meson_native_use_feature ssl raop) -Dvideoconvert=enabled # Matches upstream @@ -306,10 +297,12 @@ multilib_src_install_all() { if ! use systemd; then insinto /etc/xdg/autostart - newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop + newins "${FILESDIR}"/pipewire.desktop-r2 pipewire.desktop exeinto /usr/bin - newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher + newexe "${FILESDIR}"/gentoo-pipewire-launcher.in-r3 gentoo-pipewire-launcher + + doman "${FILESDIR}"/gentoo-pipewire-launcher.1 # Disable pipewire-pulse if sound-server is disabled. if ! use sound-server ; then @@ -344,6 +337,13 @@ pkg_postinst() { local ver for ver in ${REPLACING_VERSIONS} ; do + if has_version kde-plasma/kwin[screencast] || has_version x11-wm/mutter[screencast] ; then + # https://bugs.gentoo.org/908490 + # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3243 + ewarn "Please restart KWin/Mutter after upgrading PipeWire." + ewarn "Screencasting may not work until you do." + fi + if ver_test ${ver} -le 0.3.66-r1 ; then elog ">=pipewire-0.3.66 uses the 'pipewire' group to manage permissions" elog "and limits needed to function smoothly:" @@ -414,6 +414,8 @@ pkg_postinst() { if [[ ${HAD_SOUND_SERVER} -eq 0 || -z ${REPLACING_VERSIONS} ]] ; then # TODO: We could drop most of this if we set up systemd presets? + # They're worth looking into because right now, the out-of-the-box experience + # is automatic on OpenRC, while it needs manual intervention on systemd. if use sound-server && use systemd ; then elog elog "When switching from PulseAudio, you may need to disable PulseAudio:" diff --git a/media-video/pitivi/Manifest b/media-video/pitivi/Manifest index 5bba247d761b..51b2a1bfe3c9 100644 --- a/media-video/pitivi/Manifest +++ b/media-video/pitivi/Manifest @@ -1 +1 @@ -DIST pitivi-2022.06.tar.xz 11352412 BLAKE2B f7d14f9bff136a8b50c0ce82e66fad92ba7df429d8cf588c526ae04f673617d882a0cc024c5a21c97471d2b31cb0001cefdeb8e32c9f62e1c6600d9500d1e428 SHA512 649c8e61d9545cbf35a0a0c8f648490c14c8bfb6c6637794887c03bffd6998c63cb2cc22102cd2f7a59974f79488a13f29beceadab29ddd1c1c01abff33a85fa +DIST pitivi-2023.03.tar.xz 11347576 BLAKE2B ff9ff391d2739a4b1617ab010defd63b39f575901297fae427a797cfcffefb58c33a86642fa4d364d681805697d1c31b91fbafa1e810ec9a65030d7f7575f274 SHA512 505c011bb375fcce250a46c958ef06d050f83e73fa41a66f8ba3be6a41332a4a05838b8245233f481146edae9af924b618901b7ed0600f642ebe550c151f52b0 diff --git a/media-video/pitivi/pitivi-2022.06.ebuild b/media-video/pitivi/pitivi-2023.03-r1.ebuild index 7dacc21dc1ef..8b3d98b8e913 100644 --- a/media-video/pitivi/pitivi-2022.06.ebuild +++ b/media-video/pitivi/pitivi-2023.03-r1.ebuild @@ -43,6 +43,7 @@ RDEPEND="${COMMON_DEPEND} dev-python/matplotlib[${PYTHON_USEDEP}] dev-python/numpy[${PYTHON_USEDEP}] >=dev-python/pygobject-3.8:3[${PYTHON_USEDEP}] + >=dev-python/scipy-1.9.3[${PYTHON_USEDEP}] ') gnome-base/librsvg:= @@ -65,7 +66,6 @@ BDEPEND=" $(python_gen_cond_dep ' dev-python/setuptools[${PYTHON_USEDEP}] ') - >=dev-util/intltool-0.35.5 dev-util/itstool sys-devel/gettext virtual/pkgconfig diff --git a/media-video/qmplay2/Manifest b/media-video/qmplay2/Manifest index 6e61c851eee9..d2b3e79d5426 100644 --- a/media-video/qmplay2/Manifest +++ b/media-video/qmplay2/Manifest @@ -1,2 +1,2 @@ -DIST QMPlay2-src-22.10.23.tar.xz 1414804 BLAKE2B c0db1187538be8ab0806abd41fbfdae5a71dda450505af1956989a3ccc10fa52997b8652f280cd66837d12a84a7a058783b65df3d4bd35665c92f1262cd8d004 SHA512 80c9408a9085084857b5b433f009bf62784cf73ceb90218ec09132be227aae97136095811ffa1211375dcbfc1f51cbefaa3690c56fc8df51d9b1cf022ce0709f -DIST QMPlay2-src-23.02.05.tar.xz 1428992 BLAKE2B 7296ed089306e50e1051c33c23dae30f14cbb166b9d9ea8c184e8aa027a261a658e1d7770c7d574784a5cde4890c66e2104927f4473f484562378c956bea4b3f SHA512 d2e998a2df08c98b7e0232de693ee17b5c703793e2b1edadde300ca39998f40f7ad58b5850ee1f8cddf1dd9489c7f96e664db7e9deba01a612d97707aad849c0 +DIST QMPlay2-src-23.08.22.tar.xz 1440292 BLAKE2B 9f563f1deaa65f8d452d7536a0c2b10f2ca74f8ac39318922bfe2e04feaad88f02234ba8efe0b110f7885383c212f857b20e6275a417d663af5c8911fd90412c SHA512 19648080f9bf7c7c982b637e2c1a5eeec7390604eee0e98dca96cf710f0df8e7ab71ac95bae64d01a5407357880467e05b0f91561f1f4b8f72773c85a5dba1ea +DIST QMPlay2-src-23.09.05.tar.xz 1441076 BLAKE2B b3c0140bdb17b8dab079f3706e35f635d481e8e639c60145088a592c4e70ba760e6574d0febc96cdb7e38fc40585ff34d762319769c99043a295bb72e42bb8bc SHA512 9e214b58b14f1954f11ca85c4a06661da339df3724f9bede57e3c543a07df0c73dba4e9547a5d57c8c1fc2315d3ee51502ba9a22afca30e893a51424bc2a815e diff --git a/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch b/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch deleted file mode 100644 index eb77927f6ea9..000000000000 --- a/media-video/qmplay2/files/qmplay2-22.10.23-fix-includes.patch +++ /dev/null @@ -1,44 +0,0 @@ -https://github.com/zaps166/QMPlay2/pull/541 - -fix include memory with USE_VULKAN=OFF - -Those header files are using std::shared_ptr from memory header even -when USE_VULKAN is OFF, so we must include them unconditionally. - -Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org> ---- a/src/qmplay2/LibASS.hpp -+++ b/src/qmplay2/LibASS.hpp -@@ -23,6 +23,7 @@ - #include <QByteArray> - #include <QList> - -+#include <memory> - #include <set> - - class Settings; -@@ -35,7 +36,6 @@ struct ass_renderer; - struct ass_image; - - #ifdef USE_VULKAN --#include <memory> - namespace QmVk { - class BufferPool; - } ---- a/src/qmplay2/QMPlay2OSD.hpp -+++ b/src/qmplay2/QMPlay2OSD.hpp -@@ -25,14 +25,13 @@ - #include <QRect> - - #include <functional> -+#include <memory> - #include <vector> - #include <mutex> - - #ifdef USE_VULKAN - # include <QVector4D> - --# include <memory> -- - namespace QmVk { - - class Buffer; diff --git a/media-video/qmplay2/metadata.xml b/media-video/qmplay2/metadata.xml index fc1a5ebde4be..061f7e97eba9 100644 --- a/media-video/qmplay2/metadata.xml +++ b/media-video/qmplay2/metadata.xml @@ -23,6 +23,5 @@ <flag name="shaders">Compile Vulkan shaders using <pkg>media-libs/shaderc</pkg></flag> <flag name="videofilters">Build with VideoFilters module</flag> <flag name="visualizations">Build with Visualizations module</flag> - <flag name="vulkan">Build with Vulkan support</flag> </use> </pkgmetadata> diff --git a/media-video/qmplay2/qmplay2-22.10.23.ebuild b/media-video/qmplay2/qmplay2-23.08.22.ebuild index 1ef2e8a50818..4c9184782dc4 100644 --- a/media-video/qmplay2/qmplay2-22.10.23.ebuild +++ b/media-video/qmplay2/qmplay2-23.08.22.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,61 +14,60 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz" S="${WORKDIR}/QMPlay2-src-${PV}" - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64" fi LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio sid shaders - +taglib vaapi vdpau videofilters visualizations vulkan xv" + modplug notifications opengl pipewire portaudio pulseaudio +qt5 qt6 sid + shaders +taglib vaapi vdpau videofilters visualizations vulkan xv" REQUIRED_USE=" audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) ) - shaders? ( vulkan )" + shaders? ( vulkan ) + ^^ ( qt5 qt6 ) +" RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - media-video/ffmpeg - || ( - dev-qt/qtgui:5[X(-)] - dev-qt/qtgui:5[xcb(-)] + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5[X(-),vulkan?] + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + extensions? ( dev-qt/qtdeclarative:5 ) + videofilters? ( dev-qt/qtconcurrent:5 ) + ) + qt6? ( + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 + extensions? ( dev-qt/qtdeclarative:6 ) ) + media-video/ffmpeg:=[vaapi?,vdpau?] alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) - extensions? ( dev-qt/qtdeclarative:5 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) pipewire? ( media-video/pipewire ) portaudio? ( media-libs/portaudio ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) taglib? ( media-libs/taglib ) - vaapi? ( - >=media-video/ffmpeg-4.1.3[vaapi] - media-libs/libva[X] - ) - vdpau? ( media-video/ffmpeg[vdpau] ) - videofilters? ( dev-qt/qtconcurrent:5 ) - vulkan? ( - >=dev-qt/qtgui-5.14.1:5[vulkan] - >=media-libs/vulkan-loader-1.2.133 - ) + vaapi? ( media-libs/libva[X] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" -BDEPEND="dev-qt/linguist-tools:5" - -PATCHES=( - "${FILESDIR}/${P}-fix-includes.patch" -) +BDEPEND=" + qt5? ( dev-qt/linguist-tools:5 ) + qt6? ( dev-qt/qttools:6[linguist] ) +" src_prepare() { # disable compress man pages @@ -82,6 +81,7 @@ src_prepare() { src_configure() { local mycmakeargs=( + -DBUILD_WITH_QT6=$(usex qt6) # core -DUSE_LINK_TIME_OPTIMIZATION=false -DUSE_UPDATES=OFF diff --git a/media-video/qmplay2/qmplay2-23.02.05.ebuild b/media-video/qmplay2/qmplay2-23.09.05.ebuild index 83acd1b1df36..961b70b140c8 100644 --- a/media-video/qmplay2/qmplay2-23.02.05.ebuild +++ b/media-video/qmplay2/qmplay2-23.09.05.ebuild @@ -14,57 +14,59 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz" S="${WORKDIR}/QMPlay2-src-${PV}" - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64" fi LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio sid shaders - +taglib vaapi vdpau videofilters visualizations vulkan xv" + modplug notifications opengl pipewire portaudio pulseaudio qt6 sid + shaders +taglib vaapi vdpau videofilters visualizations vulkan xv" REQUIRED_USE=" audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) ) - shaders? ( vulkan )" + shaders? ( vulkan ) +" RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - media-video/ffmpeg - || ( - dev-qt/qtgui:5[X(-)] - dev-qt/qtgui:5[xcb(-)] + media-video/ffmpeg:=[vaapi?,vdpau?] + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5[X(-),vulkan?] + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + extensions? ( dev-qt/qtdeclarative:5 ) + videofilters? ( dev-qt/qtconcurrent:5 ) + ) + qt6? ( + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 + extensions? ( dev-qt/qtdeclarative:6 ) ) alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) - extensions? ( dev-qt/qtdeclarative:5 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) pipewire? ( media-video/pipewire ) portaudio? ( media-libs/portaudio ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) taglib? ( media-libs/taglib ) - vaapi? ( - >=media-video/ffmpeg-4.1.3[vaapi] - media-libs/libva[X] - ) - vdpau? ( media-video/ffmpeg[vdpau] ) - videofilters? ( dev-qt/qtconcurrent:5 ) - vulkan? ( - >=dev-qt/qtgui-5.14.1:5[vulkan] - >=media-libs/vulkan-loader-1.2.133 - ) + vaapi? ( media-libs/libva[X] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" -BDEPEND="dev-qt/linguist-tools:5" +BDEPEND=" + !qt6? ( dev-qt/linguist-tools:5 ) + qt6? ( dev-qt/qttools:6[linguist] ) +" src_prepare() { # disable compress man pages @@ -78,6 +80,7 @@ src_prepare() { src_configure() { local mycmakeargs=( + -DBUILD_WITH_QT6=$(usex qt6) # core -DUSE_LINK_TIME_OPTIMIZATION=false -DUSE_UPDATES=OFF diff --git a/media-video/qmplay2/qmplay2-9999.ebuild b/media-video/qmplay2/qmplay2-9999.ebuild index dcf4fed040ad..961b70b140c8 100644 --- a/media-video/qmplay2/qmplay2-9999.ebuild +++ b/media-video/qmplay2/qmplay2-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2022 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,57 +14,59 @@ if [[ ${PV} == *9999 ]]; then else SRC_URI="https://github.com/zaps166/QMPlay2/releases/download/${PV}/QMPlay2-src-${PV}.tar.xz" S="${WORKDIR}/QMPlay2-src-${PV}" - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64" fi LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio sid shaders - +taglib vaapi vdpau videofilters visualizations vulkan xv" + modplug notifications opengl pipewire portaudio pulseaudio qt6 sid + shaders +taglib vaapi vdpau videofilters visualizations vulkan xv" REQUIRED_USE=" audiofilters? ( || ( alsa pipewire portaudio pulseaudio ) ) - shaders? ( vulkan )" + shaders? ( vulkan ) +" RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - media-video/ffmpeg - || ( - dev-qt/qtgui:5[X(-)] - dev-qt/qtgui:5[xcb(-)] + media-video/ffmpeg:=[vaapi?,vdpau?] + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5[X(-),vulkan?] + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + extensions? ( dev-qt/qtdeclarative:5 ) + videofilters? ( dev-qt/qtconcurrent:5 ) + ) + qt6? ( + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 + extensions? ( dev-qt/qtdeclarative:6 ) ) alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) - extensions? ( dev-qt/qtdeclarative:5 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) pipewire? ( media-video/pipewire ) portaudio? ( media-libs/portaudio ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) taglib? ( media-libs/taglib ) - vaapi? ( - >=media-video/ffmpeg-4.1.3[vaapi] - media-libs/libva - ) - vdpau? ( media-video/ffmpeg[vdpau] ) - videofilters? ( dev-qt/qtconcurrent:5 ) - vulkan? ( - >=dev-qt/qtgui-5.14.1:5[vulkan] - >=media-libs/vulkan-loader-1.2.133 - ) + vaapi? ( media-libs/libva[X] ) + vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" -BDEPEND="dev-qt/linguist-tools:5" +BDEPEND=" + !qt6? ( dev-qt/linguist-tools:5 ) + qt6? ( dev-qt/qttools:6[linguist] ) +" src_prepare() { # disable compress man pages @@ -78,6 +80,7 @@ src_prepare() { src_configure() { local mycmakeargs=( + -DBUILD_WITH_QT6=$(usex qt6) # core -DUSE_LINK_TIME_OPTIMIZATION=false -DUSE_UPDATES=OFF diff --git a/media-video/rav1e/Manifest b/media-video/rav1e/Manifest index 43389a4836d4..2545a2d887a2 100644 --- a/media-video/rav1e/Manifest +++ b/media-video/rav1e/Manifest @@ -4,10 +4,12 @@ DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e64656907 DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3 DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00 DIST aho-corasick-0.7.20.crate 111440 BLAKE2B 3f5d54fea2793ce1c2c4d5b3049b910f45a5721e7538cb2557df63dc3069ab3f6b66aceb5e9a48f21c43ae29778fd045428ea103b2a6de81659e605e30e64ca6 SHA512 ad31f3d1b3fe41e593d4ca7e721bbad62936f2e6a17fd1e0997353edb6fc906d1bef2b79f0ac7c7676abe637bbabb23ff22059947be379a2441011f8178983c5 +DIST aho-corasick-1.0.1.crate 167320 BLAKE2B f148004140d4f705e93f448020b97c434b93fea6ae34fd74b1f394b076c2727a87f5ec54542a0f52822d716c10ada3c68ae8f50a46c455fc6e828b10b5650ecc SHA512 7cea5b2305b90aebc54f78446cfc91f275b1be8489d2d80c3baa9ff8b913f9b2296adbdf4aefb0d8fce8f57812963fb9450b200d133a9d61e100cef324068070 DIST anes-0.1.6.crate 23857 BLAKE2B 9ef464a964709b408c7d7846b9b1e54e52d6ae8f21f22ccfe509ef7197d4694f439084dbdb01fdf88829d181965ea9d1452253789a46fdf6d0520e3413c50d61 SHA512 f9dfaaca9ca327881ec30efaf24e208daae668b1e9d6963c8b0ca9f9fd13be777c793076a87980429f0dfa4db28ef5331ce6652a76da4d5a87485b23fc2fde29 DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671 DIST anyhow-1.0.52.crate 44224 BLAKE2B 79d68d3390d27e0e27f9db784ad10b5d7845dec7949fbc722f944ef3988419acd72c509b44a4544e99bea5e57407da5b1ce40a96277d307fc408c958ea915c31 SHA512 b87e0b304daff85894c34060b97379d8e3d9be03078275313035c7142c76b3e59922b25924ac98a0b1b70fc98746eb174ca4b7ef33a26e115f294c1f1200aa6a DIST anyhow-1.0.68.crate 43882 BLAKE2B 0ccd8fcb746344dfa85674fa7c95aa648aed8d40134b8c1c1c0852f6c7d22f5622ca1704ec65c254fc20946b1733299e1517364d74f726952d5a951ef89a2fe5 SHA512 b8cfc132ebeac823edf18cba7e335d1939fcbb095ed4ea859f4dc4cde5b1ff35fd68f0743577c69085f74f019768a3359936bf6dc1b2aceb7e2b28ace7f74a0f +DIST anyhow-1.0.71.crate 43808 BLAKE2B 1ec6b440758e26b2328738bab7c6b1fe8670959793cc24f61cecd0d8b0ebe60b9855ee1cdac9b5f5a5b238daf796eae5b7c82b903e7c822a5625d95130f8b61f SHA512 401b1c5d04fa0581f303395fcb3af5e7684ead367e2a173b4d90db9c04ac20010c5330a686f3ba91a541e1526a7185091b7dbfddce5134b5a74cc749b0338da5 DIST aom-sys-0.3.0.crate 3064 BLAKE2B 210de17df81b78af866336bc4f3c00803d0c62a503809b288883fcf8bcfab6262b2bec35ab9fc8d8d4ec31d38665ca74069bf5f866daa8a2ab3f04c16ecc91de SHA512 9bb02069b5951dce34a445427f3c49c9995464213104786f0a800f7cb6629e5f6cfb5c4d736dce7963d1bdddee2cc8caf3cfa9df801d5a9cea93397aaf38b53f DIST aom-sys-0.3.2.crate 3043 BLAKE2B edef684249c8e0fb6abfdc656c65e64d311aea2cd1b591044837be4061d89548533c0a1b88fd9349733a38ac97e29d760db27440632cab709ddfb6b455fd99d4 SHA512 0d08bd789cc52d7981dc1d01c98d5d075502bc29e23a851e51f609314d9ebde8d3cf13a32b7fc57290b83152e18b5b39ba946fc1f8a935cbaa8a6b9ec0998b0a DIST arbitrary-0.4.7.crate 26282 BLAKE2B 1a304154926c9f24a80eced744f13379814377f067f8340672c2588edad22b26088b359b304c1c22f068bf6c7a1da09715caefa28eab046fe79085e67ecb259e SHA512 17968466d1403903a8cb5ec7f8af403e2ecbbbd8beed3df41035c34af1c19bc9d57596e1751f3aaf4c6021fe8fc7e23a7f0c1bbd1a5942d94f9dcafd0b19c1a6 @@ -20,6 +22,7 @@ DIST autocfg-1.0.1.crate 12908 BLAKE2B 40c53cab298e4f26634c3acff3ece6a3371188d91 DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f DIST av-metrics-0.7.2.crate 22690 BLAKE2B 938a6488d9a50c962540cb0dd7488bb0a1fba5db68a2f9ec68338961c5d31c2448f5b9536463b7e287caf3adc901d9df11bb0af8b64e7c21ae440e0df6f17983 SHA512 b98571f685a0a3eadf28b2e889964b0a7ac2853405e179e7af349d416506beb8fe18b39cb9cd452a2c0167054d2203d2fc7914e6eefab164b5973f67a0ffcd61 DIST av-metrics-0.9.0.crate 22812 BLAKE2B 62532067da3cb4a91645f6b65e40514f7e0637bbd060369f509fb14bc7eca089882dd021ae5840364ea63c81f0078da10129cb962dfddf767c3750f3d9ab365a SHA512 22b6b61b08949b0dfb9d340a00cab8af03222a8b8c480771f02850ec8a5165c899c9e7c9411d10cae111e0b984ef48458affa9b46b535695e7fe2c29d9fcf8a2 +DIST av-metrics-0.9.1.crate 22681 BLAKE2B 18a5ad630e75bd4624577e700e9cfbec2215bc6867f980d1cac9d8e96caef4491d4669f0d31c78a03a3a5efbfb65faca4ab441f4698b2610da12fe15cd101cb2 SHA512 5d9c408a4ff66ef2e163a2d83eea91fc317c80d7e36fc782f4a8b577d6a7e930d9d657f924dabb8ca28c1b2c674fe7f3348b28d6012e1fd592aa857fe98c784f DIST av1-grain-0.2.2.crate 33763 BLAKE2B 6c1a8967e74f3a776abe7b04fe910f36cdc4ca02d69372fed34292527d8e6946610d77ed929c04cecf621aab329cff7507ccb43c0b2620b50a185082997a4890 SHA512 026bffbf4fd085b0e57ee7d525bb6033cb6cc4343c11ee1e8370dddfe629298868e295b5e4ac7f60ae6d4167fcd28a2d2663b78ec2935d9d8fcc5e01aa30b157 DIST backtrace-0.3.63.crate 74280 BLAKE2B 825fcabaddb436d33e179630301657d212c9364b323bfe72e8ed8edda5c0c34abe36142b0bc34501d1885d40d55ab53c0f8bc6387e35ef86f14a9d010c426bf5 SHA512 25cf411ee21c796f39a45e6320374b38f62580ca853e560b3a8ec596f0ca6d60b94539662b1a8a3a3046f481b8b84a5b84983e1d2624aea297090382eb99b25a DIST backtrace-0.3.67.crate 78564 BLAKE2B 8c77d3d182c7e1ec3840fd6c7f4214322e473ba79a71b2d11d98696f8ae4440350f3c84a891b2ec79fffde107fb2ebb99fffca202d6ed235d3abd68215a1089b SHA512 8603a3b63f4f08be315176908134243680bf1a4b0e6cb26ed81f5fc1060279126ca0ef28f209a10289e1a85214b35db6b496affd71ad21524094f3ee3acd31b6 @@ -30,10 +33,14 @@ DIST bitstream-io-1.2.0.crate 27108 BLAKE2B 1e22302fa66f9afb8f45abbc319af67fdafd DIST bitstream-io-1.6.0.crate 30445 BLAKE2B 48c078ebb28f36e65f634f545a8a335c47d8e24e6a101204cd16b1aca4425b2fbe20ede37c743d247440fc7fedb71ab2502bac96c8b39d2e07d638c4132b903b SHA512 7b530eb34351f822b6b114d55d33bd9f5ae618d56e336ef84e78f991aa07e901918895e1815a7049460f5167dbd9b73104450715b2c2a18d73b509e71813827c DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2 DIST bstr-1.1.0.crate 340878 BLAKE2B 33168147f9e53bbae98672b61e342665b70dad65ec440af24245d358758ef79e9e50d1a518de09e79207106901aea5cf7824a3d7b18f3a258a3cc511110bfe03 SHA512 5c7802a9d3d2cc219d26fd82c91288195a95d16d4f9f14d7bc3e9932f1027b6a4a50729a2eef998eba25e75d95945a4bd4fba9bd18b8a5bd33306b4548f114ca +DIST bstr-1.4.0.crate 345921 BLAKE2B 39a3cb366a7ceb784b7a6626f81338e8047498c5755ed60fce1f6460ea5aa907ab5df4bcf30a07ed699c7af7d2d0dbc48b2c5cb674b863c22fd63b5080b52fae SHA512 98dc7bdcc1a307eae2ed202b2b785a4ad27719c4b3289408edc710beabedb78d16b3042b41de04fca5dbdba19d8567df69c35431e33a3c02924820e1a601df36 DIST built-0.5.2.crate 17621 BLAKE2B 02a59238e4da373a369f3621a08eda6ad6a9138cab6f6973b11542fd9e30cc93ae28243a4a261841f7d642bd91c3868967841d1f42fa37c47d216f80622932f8 SHA512 dd405a96c9f44622f901a90da11715529f23f5576115ef0c464b43d954fd3a05aa702e2cf91d28e1ec6556a4533fabd94f21bea89a8145a4b89939cfe26a0e5e DIST bumpalo-3.11.1.crate 81207 BLAKE2B ba76008fb5a975aca12b6f893779e18dd353a22a42cbbeecd5870622a7cbc0cd7e37036af600c570b8a55f26ea8d07f44a9aa1a8373d977b6f75bd4276730292 SHA512 70e90bee1fa4e783ff5a3b18f192b9347bafab7daaa907e74913a415a66c29acfb073fcfb46150801aa7649ab0d2ec8a610de239551565dd167bac72ab13a9bc +DIST bumpalo-3.12.1.crate 81653 BLAKE2B 26ca1df07c8f55a4362e844bb80cabf1efb6627ed0f489f280178e03d0c8bb600303529c05e5c2a9bab79115510eddddf446f4baa717352babd68b6a3200b7bb SHA512 1f57591bddd5d4c856d5ad1ae71f9306d8c37681a72172b6be35b4d6fffa7f30b086d88b37d8f512e2256cb7d37dc992ee83bd071e4ff84182e5e226dc92e4bd +DIST bumpalo-3.12.2.crate 81706 BLAKE2B 50aa1e5f8f1208bd50b8fb0580bb5c5a7baadf36c0a0d8ad041c48b127896b75437118decfb1138e694964b89c8c0f66144cbd44037a67ef376fed312e08ebe8 SHA512 a0571501d2b2cbe25b862197295fddf14dbbbba7472965ab6006fb7cfcdf0f76df3b5e505888c0f1a0be99870b87afe5881a80df4f75756d2d9b65791d94d566 DIST bumpalo-3.8.0.crate 79835 BLAKE2B 3937c4ca9d7c5e2ffee229c8f5503c6a59f2fabfa3b7c81fefbf5df816efc5f601aaca4b606a62e647262acafa34146aa0906eedc09368e16eb76b3c6722e8e1 SHA512 c9825e7638bd54f97877adee8ac8f6a2cee308050c3f446f9da3996688ec3d779cb6eb935a440329794fb534958a6e89749b44a9bb27dfd219a963f64a6bcac1 DIST bytemuck-1.12.3.crate 39835 BLAKE2B 70bb0459b80fceec7f3c16c70a251f3d0e77069d77468e80c8ab2c3fcb7596dfd072c2214008d78ed1bd1a19332ed312b50a77b9f57c4230f2815768497fabcd SHA512 4bd87ace983d659877792e4f463d7ccf16e5a524f2c9698728bd688bf9d0cc5651cf641f4d6d987c8c26be5e56d11d22537389ac76a8d49b4d6e25b6a2284c1e +DIST bytemuck-1.13.1.crate 42309 BLAKE2B 055e031a677823c110e44446e1e371632a0a5a8227ef7053e964bd3f9967705bdedf96b14178818021ffc09182ead805a68813a8a2b9cf7a70b6e8daf733eac4 SHA512 eb0a7e423a3f903fb831369e0c6d1e5fbffd7eff1b56bb7d1ffe4e5e18850cdfb9a7f9bdcfd53ce10b1c659dff11c59190b7b85ad89ca60485878548621f01c0 DIST bytemuck-1.7.3.crate 27879 BLAKE2B b231e200fa8925f71e457a6ae3a6677366cf6a5b1a6c19845b6973f385fdaaa86b6a3d4e8b38356dbc824cde70e8f1120008d21a3d77d06575fd036b0bf20678 SHA512 03569cb6b6532ff62f406f8f6c80ea5cc3a4fc36ebe28f5a4bab32000862192eed2d26163062c62c0749d2f96ebed6968ce76d2e95a6430d9147c3648aff1f64 DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa DIST cargo-lock-8.0.3.crate 39302 BLAKE2B 63e67288b0201088d25da9246675b4d9bef96d532038655b484996cddcaeeb44b1bcba22f4738001c8593c1c5bea2716896b2f57cb3107c415f08bf85adca629 SHA512 297636b1e573ed42e539d8f9eab40ef516af7eaa60a476ed371900e5a4c1ae61dbc94d5aae8313f7eb684d1e5e9cf0bee698022fc95b9557d6fbc944e38e1140 @@ -41,19 +48,26 @@ DIST cast-0.2.7.crate 11222 BLAKE2B 8a09b6493d68b08539b38fef39ac3abae829c8b899d5 DIST cast-0.3.0.crate 11452 BLAKE2B fe6edddd0589fa436cda32342d7beaabe4003afdbdf1d7c5db7e8748adf23b1b2cdcdd286235837c735d2143f29e692c152a5d56fb0458a54961e4dea303b2cb SHA512 4a3e19bc1e9e5ecc03aaef9bcdce01624ac0e6858c065fa1c41693db0ac172b9735ce872064561347cd9e79f00a274129011f6e4ccf9e61d960c8bb684b6d396 DIST cc-1.0.72.crate 57495 BLAKE2B b2057ca53aacafa063a4eaa907bfb65aa32ce01a74a90b9085c8243a87723cee8ce79e4904f9d205f9d451598ee34495f8879d27c189477ca43bd39b88b5ea2e SHA512 e9a5b283b2a1fee1030009068c1f87291ec1dab7584a0892f27cc7e523c8fdfd5d986281d9aec1a00af706af1e61d7e64c245c74be7b39c8c022ae2d4f87de8d DIST cc-1.0.78.crate 61375 BLAKE2B fd4765cf5ae0dc7018bc6b56298cd0fa9bf6fe23545e845670d98ce73baee55354e77c6d87cf047f10b074f3d742deca8b5631a250c69b347b4a1fc653965d43 SHA512 b85bec4c75cb1d1e252419052e9dd22b6892e54ea36195ff483a04f785b5b103e82b30b778459fd45324ffeb2463aa4f5696baeff2779c25ffe9f65eb99ae893 +DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5 DIST cexpr-0.4.0.crate 18023 BLAKE2B 4a55c6c80f09c1d4ee86706d8af1f52219ceee99f19ecd0618825ce5bb27535184b64c0a49a540756b0c5e9cce6e39aac271545c504fbfb37c44052d04856cb2 SHA512 31592e38d80414cd07b25f7460775eafce1f91570abc1b94af7452961604574d1ca2374c0177875569b644f615a2b6fede273f37a6ee137f9adc9c0315c59b37 DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886 DIST cfg-expr-0.11.0.crate 39821 BLAKE2B 19a9c100105026ddb7e415f31f0d2ee20c431df02b155fc9e1975d586e4d1cc6f34a135a6962cdd6b95d7b5a56cad0a051bc5c3de9b5bd81b6ebbacbdb2c49c0 SHA512 92ef9c4f1ab0788295efe75cdced1a2a63503892fee1b63f8ddd5a6fc125b6046e17950f2ce060133a763640b992988a6899b15d397d3892f7a3298b3a3130d7 +DIST cfg-expr-0.15.1.crate 40860 BLAKE2B 66d7144c6ef87ee78ccb7c11e8dae73221d89039dee77e57207bee666888f5fd2162075ec13ef2cf844ddf05bfddd0ea95bf89f894e647ab4e7c0f4ae4df6dd4 SHA512 cd13158c37ccc01c0cdc23f3d9def013a1dcb0864cf8341b1d8117ab7fef9f9b4a221eceb71bb5ff1704c334e354a4d13b3cb68b8f3a59c4efb956eaa2fe84bd DIST cfg-expr-0.7.4.crate 34162 BLAKE2B 24314b3e3ae62be22ecbb147272fc2dafec5e7978c98b7dfbd4865387a8219e0b2168aaba42ed0d22b584f7087e46af1d96a9c3a9cb0a4a1c45855f617e9c129 SHA512 13b52f443ea10f28a475aa6c3077a8a97743935d44dfe6567ee044893bbab696af9f95fedc9b89582f388e2eaacc2cb0786ca62d2202973ade9270082ae0f9b7 DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980 DIST ciborium-0.2.0.crate 30130 BLAKE2B 69896bd45dc95fb38df5f6b7f0952866c8efcb65490ad64447e1a645b5558c00a56d81aafe1ff6d2477daab4050c1f69598f0a3f2a74f644e090006291b9af0d SHA512 05f906ca1eec19e903652f2cfe86de36c25f6019af0e10212720bfdb2260a90426cea3acbab6acf64cb059fd138883e5cd4e46032b9a2d7a021715243ca6ecc1 +DIST ciborium-0.2.1.crate 34974 BLAKE2B 370f4228aa63075cd7a0d41dd83f15211fc69267235905e7f5607f6e6c0baf64db0f6203c97990604de2ae683ca1937acf284c6444702414fe1a685ccfdc12a4 SHA512 4403239badcdb5ea6e754e706472e25c4593a1fbdfc5a07e46409ea3dac41151020204167102dbf401a2e5f31b3731267bc3759be59a73880a022e5f4a3064fc DIST ciborium-io-0.2.0.crate 2738 BLAKE2B 6f59c4e8d9c91bec47775d96d1089fa3989d347f7138f73f73cda02842a0409d96f32ce25f371a8a7dd5b34706c457b6815aeafeac36a61e309e828f9cc2edd3 SHA512 814059cf5c32c3ca2eab6877eeb73074d38f3419c04137ba345f83c7dc0222b983166e869e0ae9f22d9c604a162555926bff92a3ff57c076d72c9cb39072db63 +DIST ciborium-io-0.2.1.crate 6679 BLAKE2B 1835b1002c2e5f6fb1cc36a6a1f1e3ee10423760646b00a75e5ee5e66dfd2892914705e4456ec440cde27dda04e28329febfbd5c640ec7f86e7c013a9a9d748d SHA512 8860de0a72f07d0d0bb84af3c24635193540c574cc87367c7379222bf97ed68648330511866810265b68076bd1146e0ddb41c269e62db669b1c3390aca679c50 DIST ciborium-ll-0.2.0.crate 10740 BLAKE2B f2ab6870bf68d238d51617e17a6a50fb7894d11d7428305fa0ef590b825fa9351dcfec02e27d5cdf716bf392d0a996ecee2a475297de02ed99c65d8fc06f2c08 SHA512 73a7507332c8d941c82e7ff8cc707168f8d231db7531fd28eaba1be341f1511cd494c61f531852e0c5e37a65153addf259ebceac70f70185ede287d93b911845 +DIST ciborium-ll-0.2.1.crate 14649 BLAKE2B 02f5ddca41141e426492afe237ef439acca518c448a6f8daea650ceb925f6a13517819df88c93c979ed1ad9e8411cde400ff39ca288d2de8577ec870531453f3 SHA512 214550780734dcb0bb5dc999ecf22283850bf52ee4a9cfb58d86bdac9d4b80db32f0664eef71e8197e7e56a6643ff45d2974b9a36945db2c754a98df42adf9f8 DIST clang-sys-1.3.0.crate 37713 BLAKE2B ca7ee0771a970ed67b02d55d9027bab061c52d624540894cd00d09d847f6f35c58e76a1a6153309f8af709474df64b46f4764c2036883a688ffb8154d77ed123 SHA512 80c78c53a877cd8208730885214c135dd65a208cfd047dba7595283bbeec266f4d39cd1e0b3c2c69a474569ba68e4db93636e31a77c350d7bb2337e06ee7cb74 DIST clang-sys-1.4.0.crate 38679 BLAKE2B d15bdae2142ed26b4f6bd037bd2062e8c4b7b87fc5b749b872a95ff1952d000066c255aa0984e5f9c4a5c88066db4a20cfd048db4ba5a59b331d5ffa5e9a281d SHA512 062189bb0a341e2e85de4987f4b564c1fc69e4005c9c42cfedb61dee5f48db9126a8114d1d97be1b9c21b8c885243751232fbe8cf532e1d2be593308fe45216a +DIST clang-sys-1.6.1.crate 41346 BLAKE2B b70104e6c6b3c1b85caa111c2b1fb2c20d30eeb85059bc616afc49bce9409f7ee2dd8b800750a466accad6a74ef29d10c6a2ee4459d854a2c0c54050ff51cc4b SHA512 a6c62c1d3faae3796f5e7d98ed4f1a8119f0ffaf8fceee8e728cd4da57b0140e82631012450bb0c551cd13814a97065e9e47015320707a87bdfbb6fd317e952c DIST clap-2.34.0.crate 202210 BLAKE2B f383adf1d757ac4b68995132b33837686ce451f85a02a8d05d2c746da398510d05d46330f3efade063c3952aacb1754cdac73dd0afcae0df5340a89f9353aa1c SHA512 c648a761b9996a7e7464a538bb53621bae22090b846a42c3b729beca3363958ae67e3da9f93f58b10a10e043cadf7ff930388680d168646178c2824177832db8 DIST clap-3.2.23.crate 219435 BLAKE2B e99a928ef61a7f9f6d7df2c38acd480fc86bfa3885d8b875007aa5bc855396641ca6772387de2eadc1d545dd201434037ea9e7fd138395831e4755ae5a917a7d SHA512 1f1f2ad07a0f8fbe8672f4252edf260ffb5e024a20d6673fb846d59e245a226a43675539ccd3cb252571766b1f6511c68c5cb0f2351c8086955d49c37f87338a +DIST clap-3.2.25.crate 219403 BLAKE2B 75a8ee36c52e64cf0ac7ed5604d8a575c41c756a588bd418e6c1edccfb358350cdd831b4176f01b987fe7fa5901ca2bccee6b0f68ccba7dbe40baf85a5f3bdb4 SHA512 557c8932175d7ecd077b32b68904924e52dd46d04fd04ba36b3a9dfd7ab1dbe8c2128fecfd75d0388b21fca4aee55a941794181cc2910a4d4eb3c54e9c7e73ea DIST clap-4.0.32.crate 207531 BLAKE2B 5a8dedd7d9b6ef3dbd1dbb6a6504b0f6ea694246bfc3cc608f018898ff75b9952bd56dea16ca321d2a3fc208b164cb4016558cf4dce28863bb00ce133d470eb1 SHA512 a054f02385bb9a3539786295c55395ddae398f8d2b05b5d3ab50d065155ccc702c3bd624e6f878ea678bc01a1cbea8979476703856b9a86d8d0d971f22954e37 DIST clap_complete-4.0.7.crate 32728 BLAKE2B 3798b9209637c88a76e830d7ad32213aa160a6c76b82bfe076cf27a26735370c3d5f643bc8ff6c9af42c0c1a301df1dab623b4a95ccd2e5bfdff477ec9e2af03 SHA512 263c2290e8239820469bb9810494433186e0e9e135083fe82945aa7669d8f08fa68200366815a8280edef8ce541abfaf56e8e984072a2635028c42b13d55da6b DIST clap_derive-4.0.21.crate 27567 BLAKE2B cbef7e547b0d0a145ee7696a773e1dce541866dd4878797e9b810b7506dd11d75ae9cd2547b4c3330569390568a1039588406ee614b9eaa2b1a619951b0e67e5 SHA512 95bbddfd09de9dc1c64266743e9877aaed086be56f7e0f6e933dc5245724fead7163316a7bb4a744bc81597e4d079fb0abfea891766a17e0b1aafba011dd74df @@ -61,9 +75,11 @@ DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c DIST clap_lex-0.3.0.crate 9671 BLAKE2B 4422495226da19cb7a793d364ba5539ec77f9d327e2f1627e4b547fee0625162b57ddc6bc50585f520d31ec289a53065a2b6e0ba66111959390f756143cd5fb7 SHA512 5e601d540e46e527f6a2ea1959fa5aa035ad823008806f3a5adb4785f1928de4c9fe04e61680c64bcb87ed32b2e991951ec27c5cc5acdcfae51cdc61767ff100 DIST cmake-0.1.46.crate 15119 BLAKE2B 0889436835c16bc47cdc671615f421a50acf6c34a3ba3b6b8b4289e11bf1b803abd15d88a65ae9c1588586151f467524517e9c60d5dcc820e41ff21711f3a536 SHA512 e2749309055c85baa242cef8d0f4a91eb7e694664c5e42339df8ccc6644d1563337b835d3d931f5a0a75351efd299a21fe6eea497941802ea041916d665c7311 DIST cmake-0.1.49.crate 16717 BLAKE2B 4a2dfdbfe38c481715054db4bf3ade6339b033180e4e1560edd820b1d44a66cdb23e042db772ef28283dd4d9e73423d64c9bed791742f706771c309c1b542007 SHA512 ba8d65a757734d72c8c7c7f532adbe563b5caedb67140d100cde404d4bd206e227a9d408f122975b737d44cc76a9deebbf0b4a492d1bf03e3d5f1ce8a6d50fc2 +DIST cmake-0.1.50.crate 16748 BLAKE2B cd3b131fbc27764e15fcefdac31f97a9d12f82ac9758b2aad256ccb371ce3e2db8aed3c76fbf4816df3483dad9fffe9973940ced65be6d31463d8c059c543646 SHA512 868d5cece75d79382ac6176aabde1723bb7e26dc745383a636516ff45856dc9187fe5a83e139f17e3bb0c114624e9e71b93c8a460b89b8facbafbca50d1d0923 DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201 DIST console-0.14.1.crate 22844 BLAKE2B 2e7a1480fc10ba92d4d5c601b87a0dac840b71c6c44679acf0a90667f37a40528ff2155130aa72be2ade1fdef4e6512dfb404b0eff181d77fbafb00c25dd6c5c SHA512 2c85d1938faca5163dd7eede2a8a07569e536c92fd0fbc7f6e6ed91c60fa7f947f0ae101817ed943b0668c4d98ddfd3149033c83614786b5d841b19a8b011c91 DIST console-0.15.4.crate 34237 BLAKE2B edd1992b38a24a4c5a6cab42a1a1ae2483a2ec42231a9460b9a4d2701945d1bb1fdde181044976f76781348497303b035b9f9dcf5733c9a317fb32ff3252edfe SHA512 fc719a26f93fa28793379e77eb90a9144892b07ee7fa5c495d842c892f5a161607da83376d447950dc1b2be6b023b38f2f1d416b112c09ab2c84847e53055650 +DIST console-0.15.5.crate 34788 BLAKE2B 915818e2a5cc6776a3d40f51ac85ba178e738f5cf40e5e3c1450aa731a04d73a617341dead606e043fcf66d0701f625ccdb5c787978d784c3f22f9ec0524e89a SHA512 54dc15a0c0d7e1a96a368e5866e1e5ea9d11b0b7eafd0e086376085efd3f656bcf5ec86f4eb387b42dd8cd4258f9162c401914d519a175331d0c1873794f8d43 DIST const_fn_assert-0.1.2.crate 5772 BLAKE2B b9f715593c0a53c1a028b08bad260f6a2f676100a7622a47ecd0217639e3605e819782b2a67b4f745d496719520c24dc4f81ccad83d3c0744379128a296fe8e2 SHA512 99d98d3cfd8e4c7b74378263e4ce4ec952b97ef0289bde5ae1c1672cce461cc9827eeb29c4756e2ca48d2a0d818dadb01e7cde13843cac1a42034ecd3705e367 DIST crc32fast-1.3.0.crate 38565 BLAKE2B 4191cbfdf05964a39933f66453752c5f14b177c43fa5fa44de02d74b6fb4e4d874218f5a369c4a1d1ea71461cd541203f42afee259343ea139e305043e155ee7 SHA512 6ff361acfc0bb134672b30fb438f6d3ac93841d06332a6ff156025620b23870a79a4ceacf57d4b14ea1744838cffcfb77b413352d055809e74acd853ae912673 DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357 @@ -75,13 +91,17 @@ DIST crossbeam-0.8.1.crate 10429 BLAKE2B 4f915d623533a226370eeceefa5c196438b1b33 DIST crossbeam-0.8.2.crate 10502 BLAKE2B 487a7a5f197898ebea0fd41a413647db0fc3380790cfdfc6cb7cf3caef48197bb7c2498579ce676d3c5796480a8541ae37ae03f009d768a6157246b1f7d63a33 SHA512 bd2e54372595daeaddcaa26802780959465bd571cac64f23256b7ecc68ff5c0161a36740a51386ee54abe7c509ad1ff870b6f6877a7921f4335661f2c554c3a0 DIST crossbeam-channel-0.5.1.crate 86919 BLAKE2B b223d0dcacbb09850d457825cb2a018494d798d0000a20eed3f54b1152e41ebca4698e7d50e81f467b86543779155ad08566da9496eee36aa06644b69cf5d7eb SHA512 f15aff67e9105584f5fe41e1ee650ae4fdd0d0ca0fa9202ee83c6f6025398a300decaa50d1b4682e8afb9bd6e11e95b69bcf23f68ae117419aa84df14ee7747b DIST crossbeam-channel-0.5.6.crate 90292 BLAKE2B 7da87ab15c384754d2493dd1a30e83550cd4b2b749b7f0c24de131f054e3a2e521e1bb4ba10094378c8f4c7bdf19218e35b10562c50b4ad1d2871bf6f821e488 SHA512 de6a42ffede95750a13e3b9af6ab26cbc498125860cd8e4d227c7361bd831e558254a48bdef5cf901585a915003071b0efa321f2011f282218c364780f62f44a +DIST crossbeam-channel-0.5.8.crate 90455 BLAKE2B 017132056f1b40e55fbc7a09b75509d72b0a6123a0e5ea5d6104fe822f73b3ccce670d711d3b84b5ce743dcab5f10445297a6701b71213b77c0d56e2c3fd7160 SHA512 47677d6fe63050c51393e4a0537a3c65d7055c9eae118ebe60c5d716b4f47f23c2b1947b1e1b66bfb34a57c4db3a44631d323e996dd545565fe4f58c25863ff4 DIST crossbeam-deque-0.8.1.crate 20852 BLAKE2B 0e7a2616b82c5e501c0f74935adfea3ee09db5475408be83db8f1b6faab4cd5509de2e029bdf6df90435e474ef91f3fc8d482ce3a72966b2a3bec5967666bdc4 SHA512 44a4fe1d4ab7457e2b0950be787b76b15e1bb0b1c108d032381ce3fe99bf7bf76f3d1718085660083d813e2639e66fdd3635d9186e85a9eb7267063b117eaca4 DIST crossbeam-deque-0.8.2.crate 21237 BLAKE2B f00948fe90806fcbf1585c0404250dc84bca2cf27733bf7f2a0aa957e618f916162f41124333329a5b1e84909cbae3d93fb3b4461ab23e9dd97672c7d520d5b7 SHA512 a50a878d843d6eb1b5b92321ce6bfb87a23d3c16e820b1ff55472f0bd3d29b41d09ea95e1b9ccb2790f6687c043dd9ada1cd5124705e24292ccbd8fae1f243b3 +DIST crossbeam-deque-0.8.3.crate 21746 BLAKE2B c24025c65d7c1c98e442af95491749dd4f777af0509636ed66886dcf656359ec50dc2a5e26327559c6659f6b355d2b0b992dafa691a36571c99637cb47372d0f SHA512 f3201c9afef7d2d119702696f7e5e7997a104b8f7d67c7adebd1cbed84d3a3415636ff674f1ccdfd95d0dc162384e46c6138c8203ede69577b0d5359a4b44672 DIST crossbeam-epoch-0.9.13.crate 48313 BLAKE2B 6e548cd39fb400732dc179c5b7185555bdb8a367b5d3a27dcabe9ad36db6e9858604dee210fe487de8f9127fd6d0db1ef1fd04a1cc8cdcf34bedcf980c048555 SHA512 a4578e0e535f301b73f0332778e79b327bafea6afa43284317fccc49b410118360866a2dea8ac22f2977f309d07c663e5d95fbfa852ab795d414c170ee4e06bf +DIST crossbeam-epoch-0.9.14.crate 48524 BLAKE2B 439eec7e5e0364af0fe0a34ffc9354ae289798ffa7480bc656d4a610101e1ef2d5f484d84f82c87f961bd622434c36adfb7a87f7fbd2c71077b732cc7cc765ad SHA512 543cb60cff7c0823733f6ace191b137a04025a2b40fe4fea5eb273772009627fb705aecf742bc59e01367d4c15a14aca73aa2caf7f4b509f4b25947e14fd1e19 DIST crossbeam-epoch-0.9.5.crate 43883 BLAKE2B c0ee0879c583bd1051b63d29eccac37ceb9f9446ee8cb64756b2e3d95a30c5c11bc79d9d460be4ef4b62513049e28900a96085031f805d064e81b5eae4bc297a SHA512 ad822e967e5ef45fa0c4a939f057f44146f1f051032fd032355a75c0f45ae4e0a55e1d31c80bc67c01ff8d9c87a51aba7ccfe9a440f061fd8225c879aa663064 DIST crossbeam-queue-0.3.2.crate 14993 BLAKE2B b22d68d0bebcee8eeb53fe431f54ae2193a837a0ce8dfe7a49c3c1a42c2de895dea1ef1d71b0909abf9e89442efb14c8fde932553ba13dff8af9d155d7e6dab7 SHA512 7e67037b7a7f134a50e34728813b85a4a6e062895b9f482fa4ef7b1e1e9cc15c9c2836b9b5dec2a4ec36eee57065dc2f1066937e1ffc5b77fae253f60cf3f05a DIST crossbeam-queue-0.3.8.crate 16731 BLAKE2B 80a8647bf491adc1a5dc736f662c01e77bcceb4bb2b876eaf684cb2a742a2f46d09e1221f6ca8b19340ddc9ed3a10bf07a08305a5bf069338d00873b1296ad96 SHA512 3c4e855184f8e2656305a59463f0170aab99f9c2df1001f54341b62e05e533864f384477a7a9cbc2b8b1a36bbe4b8076531c11b1492485029ef81ade6e7cbf8b DIST crossbeam-utils-0.8.14.crate 42127 BLAKE2B 3e31e6371e46aba6697501a34e1b737680dcb692c0d1ba7cc1ce7025ec70ee69f7595e3abd90fb52c11e42cb43fa5fae6103f97add35cf87b0a68ea83213d0d0 SHA512 fa00a57c41c9daa152f8a6c6f4d3c77986de1aa21585984adf577e244c2f121db014ba2beb92241590e1cf78710e77d9a703ce4a4d44d8854bc3e60690151393 +DIST crossbeam-utils-0.8.15.crate 42326 BLAKE2B 23e6bd2a6535c6fccf7b7d17487fdd4095c92a3f3ae383a72dd6d90c1c49c2ec8d96dc01a94c7127b2681bfaef843585b3ae8665ecbc43b2e7db8434e31c6c8b SHA512 adb9ce1886396bc637299cb8122d102bcc9e561f25d67ef73e98c9ed8a8b13b78bc0f5bbacab19d015e1a7690bc0201f08b3d8e82393ec347e7f2933eb622533 DIST crossbeam-utils-0.8.5.crate 38414 BLAKE2B 8a10162cbc54f77737602b6f8574b65a02765577f0e2f59d71e1d87662180fe24a781df542f3e765c4d64b7a0666575157e000766dac138bd4fc0356944092ad SHA512 fd4d2ae10340bb96c22b31190b300aab54e96b8089fd62489e102c76a944e6a16c582a90bc40f5e188f13f841293a4b9becf30830c2ece04f3ce78c29066532f DIST csv-1.1.6.crate 886999 BLAKE2B b178d0419af671df570f37a4d054391bc883085b0cd3949de5e967aa4ca323fdadfd8c5d91eef1e8882ec112a1111cf255756eace3c7421e455ea2b6e01cb600 SHA512 81dd826f0ee85e7d335d844e9f9b4d2b66f7076c517d8050ee2e35721bfa4ecb8a906dcd9671b1c5381a968dcce0949202f1afe8eea535b6d215363d4f5be6fc DIST csv-core-0.1.10.crate 25668 BLAKE2B 8e9a56c26e75f4c4c9e90a21cc30c60cc3fff17515ac93bc858e8ec45e130df2ecabafa7c513b2d2815269fbbd98c418269dfb1bf1425d2fd32fe46823cee6c8 SHA512 2a269d050fbe5d9e0f5dcda2de1e84bfeb69538dde86040ad1ec7307a214eed813a1482acb5029a51f18126d384d5238355e021964e47811db971a0821bcc328 @@ -89,6 +109,7 @@ DIST ctor-0.1.21.crate 9303 BLAKE2B 8feeaacd3d870b721ecfed7c8df60a27005de1f2a099 DIST ctor-0.1.26.crate 10803 BLAKE2B 93627949b92651243b7a763d3d45a22fafcf2147a30661c4cc017e222bfc2bc12b4071054e3079adc431fc8a5dd8b86a8d11c53c401be6db846a3d0d2076b9b5 SHA512 3a3d60c976ec02a9edfe04470af4b04b02601c48e2a007393cedfef5c13e22bca58630e9e885e635a71aabc3e0ad8fb70995876551cdbc6a31029d8d2bc2e86d DIST dav1d-sys-0.3.4.crate 2748 BLAKE2B 64cb5dc703ca302e2348af9d81951c91dcbb52128ea1b2792e538044fd2e1007baeaab1d27b54982afbb3255b7dfc0c1cf94932e88a0f509542d035e20b8fc75 SHA512 950c1a2e4ab0072321b2e55ec3c7494e0b67bf86721563a8d3ab4ae51dd23b308552cf98cb5e293c4ef4633bade2b02412541dfc2b526352ffd0761ff56ca4fd DIST dav1d-sys-0.7.0.crate 6692 BLAKE2B 968e5e9ce9bd66f0fc9ac4079d803060825550d95ad4a5e54690f49b0a56a82d266819aac827f4eaf2fb086512ee19117d1a751f1a807edcacf2a96072e921ed SHA512 b22c7f6cc019b99fc2a84a95da1529b6fcdbc1535559c93c06f43439bfda0d7b653e3014e2b9218bf128ab6df62840dbf27eff215422ba01f8046168fd6caa27 +DIST dav1d-sys-0.7.1.crate 6820 BLAKE2B 9ea4ec165ec1591f7e7872114da74c768b0aee211ac3445ac290d452456616642ad5643d3e31471cb08197f759c9920bb6bd8ca809d818ea10a115e1d27e91c0 SHA512 c40f63fc48f7b88da48bd372aec9b6a848f9ed02dc6deb4327c07c5a27f94de0a19cefd86aa6d5ef903dc6133610cf95bb1f5b7f92d9c911c106e598c88159f0 DIST deflate-0.8.6.crate 62365 BLAKE2B 05b1f81e4c423f9fdd823bc33352d8421f2ca0c26d43cf0c5990db12f5e31c46ff7769f1baa3b971166b4146eb448ed0bd3ffe68f7c4aff5885b47826f77d847 SHA512 7e2e23205c56cc4c834ade2a6a22b056253c32e29346907558117714a18d8433882a712711413addb15da79f9f59e089a06dfd680b756ab2725b500a49dc16b2 DIST diff-0.1.12.crate 10223 BLAKE2B 369f305661f1da31207f3801ed1841dbce12451ac9c3e9d3736f7158ece433af9b2e42c29063e5d93bb86b1d300e503caa9c3ce7dd0b25553f91d72a9eea5298 SHA512 0e81331c0424e9369963e23894a6412b65a3ed4f3154ccc184fc84cf1c5985b81c586a6b34e8c6c0e5c3afba38fb15277cfd89e7f50c85bd5d8d4d24ba670d16 DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb @@ -96,18 +117,26 @@ DIST difflib-0.4.0.crate 7638 BLAKE2B 57c703de0d467c997bcbedc4d6577569b3d72c612d DIST doc-comment-0.3.3.crate 4123 BLAKE2B a82d1c1a7a90af6e111b5e684a1298d7eac5fd8e4bf7d5baf6c7403d26b609958716d57e51122fe7ad7626fe00a2d824dcfef3cc2fd7679fdb7b5099603de1cd SHA512 e98ff9646a3612bd41bb6f278e7b6e9a0c58747f8b82524da814cf51b7f06c76ad4d65b502ac5740e818744abb295f78f15f8262d0b50ced1523f6d1a26939ba DIST either-1.6.1.crate 13641 BLAKE2B e5f40c40a5edb6dcb07a10bf79183cbe42438f1f70f3932dce72f6f6e91f75f24d17d82bc447507def4dad4345ffc9dd9162dde778afb253bdb1218e91887949 SHA512 4bfe56920e30cbc8eb4f90162db618f7dca653b42db35ab6a7045d3fd9a24ceb1778b1f79613850bdb1a87ad3794fa0d73015e46c48d513f368d8c3776fc9ddf DIST either-1.8.0.crate 15992 BLAKE2B 5b9254d54ced1f23447cc78fca74f12085c37e3c2da441b30521819025ebb808e8cbd9cbcec811f8b3951030914c1736b8bda61744d1323af8c5b8b0a3ef3ee9 SHA512 5089b218af067b51ee39c085568a1a6f542e8f68b362207bd7126cbcd2b76783cd21cc1517a1d088ce4dad1714be03a3660f50e9498a0bb43a8676cd7ec490d2 +DIST either-1.8.1.crate 16027 BLAKE2B 2fad54b5f20bb8540fff5959ca7b2f9021c814ee610895d770f7081b12ebe2c93ce754c462df9d81824d479ca75e07f4a9e398c07a655f4abe2740b9c9de9c62 SHA512 5e4da301a605e0bc1ee3a269fe449aef044df05b5e833940c7f79bed61bbff4fc248e9c82b45dab92b2688d578ada000b271aaf67f2f4f7c82b35f05663cfe7e DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77 DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049 DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1 +DIST errno-0.3.1.crate 10348 BLAKE2B 72831d0b69f95884a69918249cc0e814eb5eade3205331bec6d2021f8b01a42c4c9b494f2717033d65a4c5230c8490b6ce250d349c1e8e177b20e7e84a860020 SHA512 00d64157d066f1e7601c522c0f4e777eb662ca5cce64682f616de0734857765c343396f7161ac2908c3db0c474995ae157bfe9d8a9880743724d9bd428dfdf54 DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916 +DIST fdeflate-0.3.0.crate 21790 BLAKE2B 3c96f6395fc42f66e436fbf6b747c2f3c2dfd8c38729bd0eb88be872ad55e5d964ba322b703fae122907d51892619687ac9b7a5e7546f8fe6eb7d80a91c1f398 SHA512 1a1862460745780407892c835b4e3431267044285fdd718dc6b316dbce9520d2955bf36e5e28257f2f758ba7bc3051b446e786d11ace83deec492e4c161664bc DIST fern-0.6.0.crate 299856 BLAKE2B e7adf3beaa2f5fc029acc8d87411c5ef8d3288100b5521d0c1379db6868bcaae73e197f456509bf29f52429ec72bc6e5ef297e971ce9cf6d7cc6232b5d9813fd SHA512 d0524c272cba970b5193d845d4e84698d64bc28c75b38dd2f265f1a132e1c9ea177ebdc38741614f6a6f3d106c7c50565b8562378a50d59ed093e00aee8ca382 DIST fern-0.6.1.crate 300402 BLAKE2B 70ddb9f8cf605471594d961fd8dafa20100a7eb9b58bfd17caba63b60fef35d5c96e642c03c5b302c314361b695d4f3b4cc10f6f5cc78e6ee13e97eb94f6b73a SHA512 f33d3e03c8f4248b046bc84c83d0de9be77b895e79ebc1ab943c50d7ebae021477749376daa14763709aaafa69d414a8ea774bb009a10737d1de57c7cb6d7fbc +DIST fern-0.6.2.crate 304626 BLAKE2B 7dbfc8a1cf0adc288732a1dcc23e30bfea6668b01e162b60e867b67b995b7eeea5399b9e9a630510e3f56c8f36b79b34913342b7c8834783ddacb2cd7b94e140 SHA512 f9c44d1387f803b567b7254d91cd942c55d30a1c3cd37786101d7d49d346bc2bbc593fa8a3b2e59711c5320c1496354e8d2f3ecf0967030ac1e5199650523fba DIST flate2-1.0.25.crate 70210 BLAKE2B 992525ffeeb4433a222487cdfb0c3927ad77f914e1db94f612d80e81faef4a2c955c755c2b800251e3416d0b22726d5f7d7e432a81c3582c54b7de95ab7a324e SHA512 d81a463360ee2778f609ff297e04548120d1fda1f9e020fb2f429ea51189b8fe6cae57252fcd924d71fb65ad0f93ff7cdc7235913f8b78fa82925939cf884af7 +DIST flate2-1.0.26.crate 70832 BLAKE2B acbfad138abf2175822153867413dc89bafa9254494b4f13d958dcc6008a26fca6f934e8010b8c090367b8e25272a4ba3b26a31e59cec69c1359f83ca859d186 SHA512 a9f7b9e4adfd0a22fbf66e1cbcfe377cc03ec248c7fb7113097b839922b569cc96bf080089b8c800b35ec6f81b3f602a5860de55963b85f27ee6d75a9df88f3d +DIST float-cmp-0.9.0.crate 10102 BLAKE2B 46bce5f7e838a947bbbdd22b085435e795b67fd23479780f65bf1586a70e7a35f04f9af086be98bff24e2583eeac7c9688727a2ddbd1ce978526dc01abf67dfd SHA512 f8dad12ecf8a278769054fd78794999dae8dedbcfde5e77bdf6cea12fdeaadeeb2f1f3ca62df9aadc1bc3f61457236c4854d6d6923ad6d03ae7f23af600572e8 DIST form_urlencoded-1.1.0.crate 8734 BLAKE2B eaca73d73d16242f3fa3e38e23531c67c01404697bc7b7eb7c64fa04167dcb403a41818487fc46c5d9118842818472d549a2f5fcef5e4d962461e1c103d895d1 SHA512 9e245495dbf235b147e4216b313f2e6a96357d2782a66d71c08c2902c6a065701ca8ecdbb6b2035983a83c44cf36c921b5c71d63af0e02dd39bf5f8347117e11 DIST getrandom-0.2.3.crate 26261 BLAKE2B 3e52a87b9355f850e07e5080c20e1ab3acfa927bae28c63bb8bfd6a773ad77be96d3ba770c344631cc0f2d9a95aac920790173168b102e25f50480ee96663569 SHA512 e6da64ed529cb0fc000b613f75187ed6b20f716e721d8a02ac2ae39c507fb9f6189ebb66b522d28584eff1e7e9efc274cad6bfe43f464f58053701e1d51c603d DIST getrandom-0.2.8.crate 30553 BLAKE2B 30211bc6a8ceb5ba765cbf068405cfc08842b2521c5850647971f4cb4bc9a5b0a9195ccfbc1461de019eeb7744ee69f934922ff21677259d7b815800516df4dc SHA512 cd7aea29f79a33a0de2a52a0a82f2b57ea8f27908ccfe00a5f42248766df88b225023603ec56d6fc634ef9c1eb67ad0135c90d4c695f6f659db0767e7fda44c5 +DIST getrandom-0.2.9.crate 34457 BLAKE2B ccf7232ece1047000140ed6bb9a1afa784be87b5cf83e2f58dff77abcd79e34120b45336cb05e47fbfde36407957fe9da8b04971092ec05f67b321fde9142d29 SHA512 48e341125223945d1c02c4dfc54df303ae27d3ceca0d5a30b42065f5e40da600cb2010bb59e88af6b990d54b5eb4bf83ae5bbd27e13e56363f5f68be03ea9082 DIST gimli-0.26.1.crate 716168 BLAKE2B c138e890457e8724295cc8996f8e60f1f4d3eed46c865dc7ff2379c65e8d470080953eee70718867b73524f57d54d4a91b5d5ba74d79bd3da38084a880f3fed6 SHA512 c341354e13a78c4afeb651a0ed651f60d188957216ba51079512531ab1273b1b79c86c57e904b87064015f8e7efe4280d9edd4acf90e25fb29f8813a4c7bf9a9 DIST gimli-0.27.0.crate 720457 BLAKE2B 0a4fdb66844f3370203dc696a2f826135630b29d3aa78f378a162f5c74763565792c900174d859f4e15b32c951333fc35e46ae7c2fa293a70e3bcfde4cbb6183 SHA512 71563f0b086ec7e22475db77b4f18f05c706dd39dee37fd5df47e636e010c6ab1dae0f6759c6b90a0b2d7937a85878d9b8d62bbf7b5b7e2390335895c6ef2905 +DIST gimli-0.27.2.crate 721636 BLAKE2B 61a202545529618b44035450c696b52559d5aa8af091dccc613d62b21733dadde0da467d40595aab71f4532d1fc2f2a6b3744e0aefe89f244e54b9eebf422d99 SHA512 1c0bf53754db2503033c17988e1cfa824af4e01f43c874b02fa61a475467185b13657c7ddf891e06f5984db3ef6b1e37586b184443716dbe45db1aa8bd082ba2 DIST git2-0.15.0.crate 198983 BLAKE2B 0e340dedef36339cc6ce4cf9ac79014e7bcbdf9ebf688986d1836c3e2f480998a60a2722017381124682edc5dc511368497f03c9bd9a8c4d0e7690682789bf88 SHA512 8ea32850e592cb9bc8caa0d7a04042e284c11b9d46959807d8e6d496d93946342dc37fcdf1ed354010434798a404f415e8e980fee2ce4f5cb998e0f8736b5bc5 DIST glob-0.3.0.crate 18724 BLAKE2B 1f1dd380e7d668a0c2cff9134279ebda958b4bccdd4a65ff01f9665b45ec4cce8ffbd47eb46e52cf516c5fd5803561e6bcb60cdee21ddfbb8601a95d45500620 SHA512 87098ffdbc518442995c422120cef71f83069c8f88a1970ecec5105b0f284ddd92bcee929f5c230d5b90ae1ead7e1214c3eea26f4a8b26715a00c1ab8b09bc46 DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b @@ -115,54 +144,74 @@ DIST half-1.8.2.crate 41874 BLAKE2B c3c5c01771f05b7af652abb8e5490dde7afd04de1305 DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76 DIST heck-0.3.3.crate 10260 BLAKE2B dc756738081d855583f239908f671e9b5dde72ebfb577f6387b1a169817a03332464cf67071708a4c4f06b1ecb222118e8c719073ccdec1c0f938e5ef378b13f SHA512 b3498e033f44e03206421e565efec5b21d13107b60d35e4476331c44e6effd75c81f7678f2452c822eefd581209a2ffefd2034779cca2d8b4fac4583bbbf777f DIST heck-0.4.0.crate 11161 BLAKE2B 13b8bc39cf3ab90e71433e3c7b3e5f1c19404bec58dc4298dca05d94d5c14c2fc97350de737cb78aa45196b1241aa8f1ccf3a11ca309da5fe0f6a657673412b3 SHA512 33bdbf4ff9ecc4f4d74cf06590e056f4d96bf0d990d5381b9da5b65682b2495ed74e27b45419c2afa986c1f6200909d5175b137ae73ced5cc8ac869e4e1bce8f +DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8 DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a DIST hermit-abi-0.2.6.crate 13027 BLAKE2B 4df5306639511a5f69594e903f8ce62482cbbfbfe272a91a12f407483dbac4e87c2d7e5668cc06ca5c0fc149ca93a3152fe6ad4bb3b96cacf56a22cb635e5b7f SHA512 bad8442bb822a9c99f6536db16523c80f5139af6a139bcc359c03725c59ff935816e2ecc5c491dc362ac75ab2dff41ab1e9dd29431f5e9a109b60eb9b7a8dc28 +DIST hermit-abi-0.3.1.crate 13793 BLAKE2B ece7865a09f566a95bfba5f1fba380bf12836c3761fc6d5a3d5543d3e50ca0eac81bb567d50b5643849cf1a752aa651a0db4c053c60faa8f1c74fe2f12819d71 SHA512 a55fe9230e4e8fef63284befff74108f206e76067257439d334d33068875368902dc690926a1feea15611f14123073867d7e9cd21397bc484cef849d6e1dfbf9 DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441 DIST image-0.23.14.crate 226804 BLAKE2B 0debec9484b54cb56eedbf07c246b80afc6de99b03e5f41b5cb9aa29ad2269cb7e9891b7377ef7ff53200959317bd38b24e823ebe5c2125677ef2588eec81ae8 SHA512 4eb07fd698c2d902979ab06ae0baef4a53db74da78493c45f0c32d5903c5399cb8a1a25a2e89bf504ffb612e8153eaba4ae41df3d17f02c27e7991fdca518f63 DIST image-0.24.5.crate 270381 BLAKE2B 239022ae8f5cb6ae187fa886f531b3eda2134f3ca31501902a13aec104efa86dfc717aeaaad329a22ccfdd2d8ff3eb222d2acd83f01854333199611aa95c77a0 SHA512 710647226e060cc75550e6bf852a5d78f94628b44bfc5a9d20fcf60dbe10efb1b28d192e91d5a9ac8aa57e975ecc88b0f9b19d08e732694f1037d8c235b48fc9 +DIST image-0.24.6.crate 273618 BLAKE2B 3a76d8dbc30540d3b34df2bff54ac8cff024d3edbaf22d0de8acc6e48219b168be98699c823e1173d88316fe7b696d6cb89819d33dc04aafab010fce706ea35d SHA512 559f8396cedcf7141a05e3714f2e8e33e5b5873b0ea81d50f13c8e8ca860c1ec20dc2fe89feb59c8a72eefa1bf74f2b93ab81f28aea0339b2a4c24c5e4a94803 DIST indexmap-1.9.2.crate 54627 BLAKE2B dbfa551d33305db06b59d07c1b4bf8d4596a67ff1caa03062d07f6d78b4604ac0533d1c1fe3c371702dd7e65a012bfb960d79c76db37e264d0b44be576969285 SHA512 946c54881a347892dfcb55648a2b881d3a4d113424b8c76d8957980a834895318d11336dc438a04601916cca787420708ad7e271f965c38bfeae511ec1dedf85 +DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37 DIST interpolate_name-0.2.3.crate 4165 BLAKE2B 4399a4330a833c45918b94c78a269e9166a616714faec00998a69484e3fcb8cef20b2a0fc266fa6dea5abda2830e0f9bc958f51497b249c01e1f60373e198a59 SHA512 964944384c39d0c085c05a7643ed2e8a25e224e6b28fd9da9d971567b4d56e7c4887a61e107c718cd95c19c6d83f355256d1130206491f7b286a68899eb7b894 +DIST io-lifetimes-1.0.10.crate 37294 BLAKE2B 9b8836c4bf30e6d102fd9973ac66f067c3ff8bc2806e55f26368ebdc9854f2e9cc6eecc8014f9a0b22a968a6eea8be243fcb7a641d2d0dfc747ee08a6a1450bb SHA512 4b2cde9522780a408c5d4e6406286bc5dd3a0de1a99675129e9856e5d889498a127fd5dd7c937a7542135abc2213b60bfb6258b7871b8709dcdd79d60455bea9 DIST io-lifetimes-1.0.3.crate 35650 BLAKE2B 51182293d373618fdf5dbab016167a01b3e12f79bffcbcc00e1679c2f63a167f7fc291fcd8f886944a855ad5d9828aadc9aceff1a3e5c09106fb274b39e837be SHA512 afb868979d54bc99d5c8a1c31062c91ea9e920470bb1f0bce95c2ebe0ef22fe8970ba86b2ad570d789f648485ea4d75fd83bba34e5a590a443698c713a321388 DIST is-terminal-0.4.2.crate 7577 BLAKE2B 4ef84768184203b58e2b155256e35fd7a74169a8ccd52c3c74aec7fb1d6aeefe6232d049bbdbc40ede2acaf0be453caac19f758cf1abfd04cd1efdf4022c4996 SHA512 ce4997ce1b9f529a7d1b875985cde02440de288a0e823f2f5a9647e3a34658c5f56d254e85dd7f152a987f08f428bd82ce7e2af626c4b3c76cde50e8ae1e9374 +DIST is-terminal-0.4.7.crate 8356 BLAKE2B f0f42d6f6204c68bc8a9e1290b9b059ec55f5aa2f83f6966711a5f986852befe21ac9281fd611e65cb4fcbf35dfb212748785c7258c44602e7e390c51f09dec5 SHA512 56c00b2942963f8a0b5c40c96a885f85565fb09e247bfd5a3e77ca5c9e0e0e40a17a8d809c0541177e8b496fef87baac4b86c751765491ffffdb631515d8acf5 DIST itertools-0.10.3.crate 118661 BLAKE2B 0095d6e7f14ddda69605d09f74e8cc881eec1a1d234f705e667d7f9e738ef157b7ddee066855cbcad7f134bf79b99a4a4c77bff3371397a567cd34d98b68bf97 SHA512 9d17357eb68159edf4f4ccd2eb9895672c7fb633803166d5e24ee12350639eaf66f1c822910518185cd1f1ca5d9c3e228dd37525e6c337ba3fc7ce967f9bfc85 DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3 DIST itertools-0.8.2.crate 89203 BLAKE2B bcf8c00da5033f36cc205708324fd8eff083d46313ee84f567e4f333d8ac1ebe44474d89835a312a5357a48659e2f51d34d2194d548256118943999a3da8ebaf SHA512 325d87a80c0b217469762ae958c46925d284b37ddd987c3ab977c864f426dc6e4515701864f12fafbe49289b45b1910906f0e7d884ba8aea217cac521c3d1ff3 DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e DIST itoa-1.0.1.crate 11059 BLAKE2B 5a2e22ab891ec883a90f652c88f924113252765579c03c783e43210fb2604e9e3ccbd4c1571087791be07bb99c4e85c7f85253be831b3ea883bc0ac18a927980 SHA512 8e7bc1e9bf4fc06871b9fe20caad4e0af965477d724f4c8d0e2a3a4d87aedf99f92e4e583a6440ce574d0fb43fc9d6a2e80add52a2f64210c6aa3b402e424295 DIST itoa-1.0.5.crate 10622 BLAKE2B 0d08db487ee791a252389e40e08e47a649d9eb90faad16bfbdfdfde46366082d2e3561fb8a62da80b122e7771052c50a0483e9618260d094820e20748d99882e SHA512 b90841e3a016a9a68cb090e4bf78959bbadecb3391cba71e0deeb5ac2723379ccd3251ec18a0bd055fba7cb6e71608ab1d7db990ad4d03cf2fd1289bd5834540 +DIST itoa-1.0.6.crate 10410 BLAKE2B 8b1dc9ae9d55a006bb2abe3b0282e5e77397814b692a87b9becdc2bb74deabf5db09e3d5a2f604964cbff046148025988a5d916480e0402b2b80646fbed32875 SHA512 e1fb82fe16e1248141d48de9e05e7abed0c6fef58f2ff8b77b52aca5f16f3600c46707ff4c7a0f0307047610f29775bda74948d6d1efceb74b37cdd22e1fcf31 DIST jobserver-0.1.24.crate 21303 BLAKE2B 571e6f18f09d56d8281d2b2d206647666dc6e9ebb0a1fa48f707d3cdf603880b78ac6a2ec2239658a220e70924ed1612dc19ad90fcef883f21972a1df4f67d57 SHA512 0feade0f1f0a458bdbcedafce8fc39f44adeb56772ea94a59f16f038a743f506db1405a7c8deae65a6a5c1695bfb363c19aeea1c82c41c7f4d1101469f32e42e DIST jobserver-0.1.25.crate 21888 BLAKE2B 2ecd417446f9eb975119af4ec74c9b3463d061f5348ebca380f0ab9963ccce6dcea8c1671c7701f3f867c7e49d0ec130809a37bff466261a2fc75e80cc01d15c SHA512 0c014e7c72a070e3332463cfa6e9c9095d542a68f8631150bad0efa3706a2d6de0347bf7d1221cc3bc0f3d5f9840fe7188aad949559375403b929d43b4a524b7 +DIST jobserver-0.1.26.crate 22645 BLAKE2B 44bcc15330268ea29650e58605c7f21c35108eb64b790c005968955238e948d27b3d12e6bb06bfc0eb4a3fe5f9e5322bc0657200212bf87e08d9e043e008a5a8 SHA512 ad3ebb693018928daf399e918ce35ed0d4e643cfb5c78bde04697e41dc8adf2861023ea1cf2c5033a3026048ca0ebeb7f2f57a966ba8e420558e42dde8d494f7 DIST js-sys-0.3.55.crate 70499 BLAKE2B 6108d6bf4be72dc93db5c2f45d59dcbd7b94edc02ccb368a05bdc0e259768be4708e449647b254bc3c542a366492a02f0569d08e69c00249f58b07a566cdf97a SHA512 bd51d61684b3683d5b80df42eb80cb2e4688096bf14fcbd30234503709b1730ab25c7b58112516aeb5d7f44ae20e0ba08bdfddb0518a20603bbb4ca74544d4ac DIST js-sys-0.3.60.crate 79257 BLAKE2B 714facdab00d567d074de4a25b69487400c23194d0f58ca784159483f9e02289acadce084b1514d8816cc9e0597800de82a5298b071b7df19a24df93541f23c1 SHA512 543dfd444539fad27bafcbbf112366f53d4ccf4bc63f8bb17820d818c3e1804656697ed6268a793f383ddf6b6227f7e9b3a11fb6fbb24e10732fdbd971801665 +DIST js-sys-0.3.61.crate 80158 BLAKE2B 07980db627a1f4f385586ad0609b5daf30d590931d2ca0c123f2d84f6c97be0ea935aaae3ccd082440c7e7da1adb4eccfd054a3598d99351fafdfa748f567b5b SHA512 f97bb546af2111fe072a23cbdc71e4fbfd39fbfc6be37132b306853d5737175d4c9c0c4661096012f7fce3612f81509e62a97df8bcb21d7cc796a8084e5b2e16 +DIST js-sys-0.3.63.crate 80154 BLAKE2B 378b8da12827a743c2cc996362934cfe249dc9d9dc0de507cef366fef4ed1b9d82b5ffc22f3ac6270c909eef901f494dccc8f01725278876ef2fae1945041111 SHA512 fddab182e0f093d8b600f86688ffe736852b48351abfab1e60073c67901f144bacbcdac867f533056b1213eb75920b08b6249fcfb5a15e650978966e8350918b DIST lab-0.11.0.crate 15140 BLAKE2B 28763aba9809eaf8ee5d90438ed973fbcde5861d78f51757a23840e5c1823ac30e53cfdcd88c6a8f0cc44c6b0d9ea7e8e50192f40c290c8ef1e93c9c58b35a7b SHA512 bb56ba0af097c5822f6e9ad51f0e4202ddd740953336f9da79af072feb0b40fcb18863f17df4ea8a076e5af719144037303b0fff4fcc0e5c37a018129a08fa91 DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8 DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d DIST libc-0.2.112.crate 571445 BLAKE2B 3936f4fd08cda0ad5be7b1ff417b6dfc9abad14ea5cf647425d8a2e7306275e958fb5cab4de9eeaab95065176bc295065bafec3846ebadb6e15cba20de495280 SHA512 6c1a027eff21d3ef8078ad19b90b06d90790919a848e95a4c878e8c8b850d2e9be3fca36d8db39b24e472f15e5352ead1182d5491a0b382e06f8c3ead379c45f DIST libc-0.2.139.crate 638983 BLAKE2B e92b296cf8c916e10e859722ed75f4790401662ff7aa2fe8ed84ef9b94a00538768be33c272f0881e42da887c8c43e1fd44d061343386216492a76fe5d308598 SHA512 ff5fae517c49c382dee9b1d7479b65b0a818780453e5c00c416847d02f42186e2fcf19a8a8dc5e9cc2611300690c6ad324f9c0f0e8172e913a1b781fb7c0b5b4 +DIST libc-0.2.144.crate 682092 BLAKE2B 1f699cb880a65baf9210527789abb35fe8be9565828d061e12b5c76330e21babab67b21e9a44be6a706f643f3c8b98503a3b40482183188b49f33f96a2489a68 SHA512 576da68e3845a7149f64bee425529ffec4bbb8df0272790182e49c8bad5b9744de21ffb5c1206753b57b7fe45af02c6c429e16522b72a77e5262482d64df5692 DIST libfuzzer-sys-0.3.5.crate 112480 BLAKE2B 0c566e9f8187e51708b8df88333a9ad92f80e62be22c6dcede44729c87a245f41ad254dd4bcbb76f5f6be3c7c426770b0800e82ad6e4b1e5b598e54ac033ee9e SHA512 d07c49351ff8bdb1cfc62f60cbf9147213bfd524e26dc50ca17f2374868a05581c432822c396222fbb9c72098fe47a57d97423f4b40fc2e7577801b829a8e796 DIST libgit2-sys-0.14.0+1.5.0.crate 1740370 BLAKE2B 0bdcec13f78292ad7849f88bbf21a8168371e9d4b15dcd09863b2ef703caa8e94a33da01164214620e11ff6f75038cf9ee6257c44aed5e07c52af044abca9952 SHA512 b2e1e54b172e6b0c71fdd02da0800e9120a3fe1b9c33b5fee4e667e9aa627979012865397b406fe91437425bf52e52a26245cfb7fa84f3ba64269dbe204582d6 +DIST libgit2-sys-0.14.2+1.5.1.crate 1742257 BLAKE2B 028e6bf6980d7a54b76c918fcd499684869f14cb160e821d6657e59925d142655dae6e018c9f29389de304ef6109197fd71e6e6752d0d0a53152f2c4820ea1a3 SHA512 eb9602706036ea62ecbc08250f297119a1c51ea09ea86ae8630dc6d0521b74db96d8eccc4106343572eb70d9a156415c017c6a91fb5529100fbed091ff8e7921 DIST libloading-0.7.2.crate 27229 BLAKE2B f85ba948aa88e7e3e32984e4a74e34efc01d3c35354ea30bc3d8f0a873094eff8d0c30b8583fbbb57e6afec8d505d4b53c8f2b7bf879921c986d5908ec6354ec SHA512 235ecd8750baef122f3f6ce673e4feae621d806851e842f33f95e8a414915776c33c11e6253da449faa12855f5e444f691c591cbe66efffcbe221d6ca2d32a67 DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1 DIST libz-sys-1.1.8.crate 2481844 BLAKE2B e890a3850aed5348afe7558168c7571564687d6a7d3567a4d53ffdf79444d38c4d70d35891e16f496f31169bf73b669534f5fc584f9ec520b518dda05e80b882 SHA512 0766ab72cc1414160ccefe4812e6204cbed1341607e5d17607f24fd4ff81dca68d8f2cf43e1d27f332a508d602bff0ad340c4c647a5d5f85acc120c19cfb4100 +DIST libz-sys-1.1.9.crate 2404387 BLAKE2B ffca4e9993a8ef2af6360d38cc8f2d3c6f1d6ba27c689057bcd99500c05b80aefe5225bcc77ff2a1c75289edb0da617c2ca15c4f2aef7c06745521721caf4728 SHA512 0d474b79aa55f1cdda8f52c87fd2cde84da80db5e18485b3e6845d40c49c6f3b3b92ae73e286b06acbc0e05f36ef3975231fb57e1b5b6546ad90a46752fa88b2 DIST linux-raw-sys-0.1.4.crate 878981 BLAKE2B b8708b06e48ef4e32d820b5a0e25ce12d3d985d729a2d7fef46d0b3b4518b4ad40d037d4689fb2270f9c2583dc031d0f4daa26500197e6c32bffd1400357934c SHA512 ee6d5a7a08b183681ae00890784c9e6b72e4c987b2ce2d7de6e7308b7a10d4a2b532db3d5121523bf5d4a262407f3033af4f4c1fd9f09be091523366fa30d768 +DIST linux-raw-sys-0.3.7.crate 1013423 BLAKE2B e77b372a391c0389674331647f8f479d96ebfff99f6bbe60b6d8935e035834026e15c056f098c91ed328e512b72b7e25b04534841aac26e658991e41fb9963d6 SHA512 49a84d3e57f3e3985fbb82a2d59df55bd7a259a65a2b2dc180b6a32e92eb1dedad0edfdda1fbd51698dfa31b1ac06777338910c63564a14d1e85d9b7344d21dc DIST log-0.4.14.crate 34582 BLAKE2B ddfba35947ae1f5905cd9ecb9eb862a78af6f00ee8b8fe6258b369b140928fe677a02b1b3ca5bdec36ff2b16abd85a9f49688fd5f3d1ba2b2905e7f96b8a84c1 SHA512 796100167663d85a7bc4244cd305e9b3f0a1b1520764b63464698eb136318d0928c40c16f5d19d9f602a5bf769851275bbd48d66b088b0c37be7a6fb62def7cc DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2 DIST maybe-rayon-0.1.0.crate 2781 BLAKE2B a564232c540f12a27c7861ad45320a28152c5b07baa1088a1ddb0ef8a1c92c163061676bee127721b48562f010907b4e8d8c1696b025aaa2615e7dc689c1a5ce SHA512 18385659062be0fa98b3b0ebe6191b2fd5fd1d3d8dd5aed880cda136e3cfa7193be4d810dd23d9e2c5a32c4c2a4d1720abba6b16edd9381c484accf648784a2f +DIST maybe-rayon-0.1.1.crate 2901 BLAKE2B dca587f95e7766a0050b320cac7adb31d3fe9b84688c241c004824da684df0ce5f8c04053cc120d70e4325fac7bddc5d0dfc5aaf29c791b67503e7588bb81182 SHA512 6f4e0e2a342fc86b5d0626a08779075c68911ffd3f837ac6ab2c15c821ba96e50617cfc9df9d16bf96ae57fa1802c5549e21d67f79e4e1c3f10bce04b88115e9 DIST memchr-2.4.1.crate 64977 BLAKE2B 31479718c118093b684bed946eae0706d77d9d275bd49f5aeff4de490f479abd60c7dc462150eafffc6d6fc1da0853123b78be038826b775d2a41a4c39d93ab5 SHA512 d8912e3902a2126f86159bdc998532a2890b882cbb7d59b5a470fffcad4c32281e045f2fff48a235aa4189f1928866bf3d33b699d50866ad6b6c272bba7adb11 DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157 +DIST memoffset-0.8.0.crate 8912 BLAKE2B 19ad3abed21fc39461b0382b15a8cc312378aba36f042b1e5335012115d31b350a4e3bc720f1eea300d7d19b9b317f75a28d4ccd78ff3b31defd9e4b3147899c SHA512 47adcae0848ff967035e10543ea599c7af9c5bad387023eb4dc77c9e8d875994ec8139b9941b3ecc4fc17214d80944a47a3be174a45b334661914a5a7382dfbe DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c DIST miniz_oxide-0.3.7.crate 44996 BLAKE2B 0e89ec4131e7abdadaa9feb6019b31853976a34434216e0f89ddab519559d0e1feaf2228fbc09906e51fb0242a18abe1a67a5362e080c19fc7cd00c2f95f08ae SHA512 d4eff239f8d6e947b94619e80fe03ed32aabd1a6393f63145d70ed7f08c51c45c7261d8157bf61c78d1637ea1f71ef15f9813ec733efd8afe6aa14810888718e DIST miniz_oxide-0.4.4.crate 49938 BLAKE2B 3403416bf9d10b67ef976eb23be64216027c67c56225efd08c87f8269017cb5174ae64f35d18acb66c7a1b831347791cee5af565f3ddfb31ae4210221604b0c4 SHA512 2c6e484a8a53c6b1fb84e2bf9518919e6e5ba84e7716c0bb8e33b53dc0d3432c35f28f19c18368e27c94f6df66b7674f514ef889cf1b19f546bedfb6e6ebaf6f DIST miniz_oxide-0.6.2.crate 54536 BLAKE2B 8127ebec5a2cee1c2101d9533da573e01ef1a0fcb169bb0fb1419973ddd2e6953d8dfe85f9509a5d1226643ad290f0ee1479fc68f1788ade7ddf9633d90bfe1e SHA512 250782e214572acdd11df87c2788cd5f78e8388d9b285d0a850918219678e262e8b9905cc88728f5b70d13920ef9d19c43d243dad8fbcc18f8c8462662ce1419 +DIST miniz_oxide-0.7.1.crate 55194 BLAKE2B 56afbe0c0b3eca98105ae2d507493f365353cce29a6b04910ff26bc75899400fdbd067756cbda7b3d86f047fb8f3d737de00043a4a7348a813cc43e45824e33f SHA512 5eb6ffe34a866403273ff0267ff7838aeb50722ca57a03d5a1d842a5f19a3b4af570b133a3b9d64d78eafe49e4b9732b92dd63fd9c6b0ce59b3295daf10f6a3c DIST nasm-rs-0.2.2.crate 9733 BLAKE2B 60574883ef3215444cc3245e0b789f4f8e87813207720f0abae3b5311ce4426d3ad2629bdbf906d400ab785bac77d4736f055a4a614324481b700d9d850a5494 SHA512 83c6953e7651325b30f58a63a1cff203656dc0facd57b2f6285999e5f77e95706c9e16b2927b237ad6a67bca29253632955b9b49bd6f0600cde2ff03107b1fd7 DIST nasm-rs-0.2.4.crate 9919 BLAKE2B bd8029f67065e08d73c338dc63cd9bbde87ab2dff6d80cada6a24abec59beeb44b2656efc9bdf81c307113fbee36f840e392a364e09115523101435f7747c5f8 SHA512 220824b9acc693336a684e1d4017ec22e5feadbb61c5aa98c5a5061d5e3e54fb35401927d01fbb01f28f2cb5dfc9d1e48806428faf20b0a0d71f77789a45e352 +DIST nasm-rs-0.2.5.crate 9920 BLAKE2B 2fc889ed1f8c743afb639265d78b3612cc4da8c0185e08de742625b5b34c2381553ef8baa4ab586e0b0120ee3350400e1168ec007a015f912fc2191058e589be SHA512 b636dbd1594f2f0d1f71c3dc76fef94c9940c4a2a735b86c4b7c05838024c86122c9e8342b8f7ae8e8c63c5a56344a1f21346317952552face0aa2b6425b0465 DIST new_debug_unreachable-1.0.4.crate 2561 BLAKE2B 5c9831b04e2a44b2dd27816df0a331a8108991a84ebdfefe4e42f325ec3519ee50e89a99d490020a65a3d75acc371316c2253d2c6382453a0b15f4c3d5b96520 SHA512 6f964bb322aa8f2ff92078381dd720527600c6449e237b703278cbcf47b39a2581fddfc2f34ebb7cf31229e33d58de48bb5050e083fec6dad9aefddc1d771c85 DIST nom-5.1.2.crate 136174 BLAKE2B 32387d6ded0fbcdee8a1a0d0a08cd36bf92c38906cd199b574b6b9b24f6c245f2287e04374f7d84e2867d2785aa16d8c01ae3bd3bc811829770232681e2d33a5 SHA512 53b8ddab62475588efae46c78b5fd086a14c0fa505c84e625fbedd6dc74d4ac047e9fbed7312b797f126e9ca1f056458d8ffe0ab13f0117de685ef8b43f86aca DIST nom-7.1.2.crate 117341 BLAKE2B c7956334c92b7f7d427e1eb7618785bc240217a398e6a5bbe58454af99d06ac997c58ce239355f5f8ce4fd29b54ccbdfd7a07d289810fd46cb83554efb02715b SHA512 7fdec020468d6a16fa1d2602478bf07324605f37ef6e2ea9dfc6aaa3a772fd6d54b5facf6b5f717368e39f269fc9218ffb6d1854db60cf2d45ae83e5991d75fa +DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad DIST noop_proc_macro-0.3.0.crate 2157 BLAKE2B 0be977f9820fe4cab4035e866d6ebc77a07cf634ee6889dc91581a9eb43f308b0fc60b87c8bcf200742bcea4af14a94c69c5b9dfbb32b95454219a4197fd5228 SHA512 a5ad22e815b8c574b42f7b70486a3fac319c24334ade74726ec07b976a838954d1de2d3632fc55ce6c8de2673e62b987fb4607a49c576f60959b1609e47b3771 +DIST normalize-line-endings-0.3.0.crate 5737 BLAKE2B 935b2d20ccd37ca7469641a37aa0ae9b6872715d6ee88d568d0ee16fb76416cb1a0c585cff861825de8cef11d864b1dc1b350911c28d64e071d8fb444bbdf740 SHA512 f8e2a6e333b0e8972febe8b9cf058c8d899c384fd177e0b6ef1c5f94e0fa18192963970cb1a2ba80e3135a8cca66cdae6796e4d84ac6b325bb369575bdfc6eea DIST num-bigint-0.4.3.crate 97799 BLAKE2B afe9a08bf20dc974dcea12b5f9dd465e8b399a0cb0a6d0028d08f7f753aa4dfc929710e4dae883e67633d9dda073f995287e5315b1487e8f99f8f23f1f70e581 SHA512 4b38eaa8b51119dbc7cd8a1e177f37ec935ee348b693a93378742e9bfa68fe5f7e5062b7f34638283c23f04d2127451d796d310cd8adb64dc8e865b28708374f DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053 DIST num-integer-0.1.44.crate 22216 BLAKE2B e1c08427e006cde6f2084adadb6086e87e6d6f8bb8dfa757a8228aa671e862a366e4bd8ca5e0500008c18bab128aead9bd5b1e53568a4f40afadcaf3882ee98f SHA512 d07e27ede02a1d007373935fd91e57a26e0e84ae14bbe24be66763baae6850788bd64ad2598d2bde4f4fad6c8a4675c40bfe0927164b16b9b69de5e9a83d9771 @@ -176,17 +225,22 @@ DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459 DIST num_cpus-1.15.0.crate 15680 BLAKE2B a4d98b29ad534de9bc262f58f615ec06bde5d5a2f5252f09b5a0a6ecb06a9daf9709ad9045eb08f7cb744d8a838854b9095aa73918e06624a84efbc11a9a5c1d SHA512 fd4772868def9460a6ee17ef6fc00b0bc74115eec891bb3fdb07ba5b5fe4057a2ac69eb31ba8beddbd3189c7be4545888e5724879f3a89132fbc9b32aa7bb10f DIST object-0.27.1.crate 228030 BLAKE2B 48ebfff83ebd0c1bad5f956f79a0f8628f9cdcd75638ecb92f040ed84f625425062c16449ce44b29d9d99c3950554fc1a480046fff922bba30348ac14d68d887 SHA512 3f25b663fdbf9a38090c2b1cdc03ca40bead87fb83f99143e79a272dfa4f2fedc387a50d3412d42a53aab228bbcbc6967fdb5a0c8db0a8a3e3ae9cdcf1061589 DIST object-0.30.1.crate 258223 BLAKE2B b5754225d2aa81bfc40fd98017ddb13a124df0151fa45aaf6ca030a295d9a351df495a1e0b08d94bb5b4dc05229c8de32201c8d6d31640994dce97b2784d657c SHA512 dc9a3a90352a662c9adf0f146ec1bd69bf5b891b6db9f455e6fee4317c74414cf93b2358ae338e14163dd55a8e6892d1a12b73636185122e6c1c5981a5453fd7 +DIST object-0.30.3.crate 258901 BLAKE2B 73e190fcbf7c47950ac036306ca8e6e03bd1772466cd580fc51e246868cc69c4e49c712601759533ea650c806a8363d0d77582e1363ce2b5f92d4b7439fde91b SHA512 61414475d3fcc7c4c3ad8c1316f6ada7801e28590d98bd425fa246f091d464de4eff7eba7cd74904517dee95ae0673e3d581400adb971306955a0aefa814172c DIST once_cell-1.17.0.crate 32736 BLAKE2B 767fc8f362ce5ed7a9eafceb2f0764a2a1c7f4070e22d1e6e2498b3c841c5f761e77fb66a34b899a75d48f1563f6b9b73b90aa9431055d4e0269c47a1b043c1f SHA512 291d87380c0ea17fb3ffc9fdff8620d2ff55601c06ef65b2f0c54254fecd5b488645c6e94c6026b82071893f4d420491ff712399a782e14efa1e323e5c299c46 +DIST once_cell-1.17.1.crate 32856 BLAKE2B 8bde2aaaf9ef45d1f6b8458686179f1fe9295ee8faea269e9b49779583ce26ab9dafe988c3584e841a9e5d05e28430ca967ef3b25e755f48f0120d9c99cdb7bc SHA512 1302d51801e38bfee23e74c0046f1ecb1d3c27309b5fe11c2b6c99553b357db502ce1718695602f9d8b10429e8ff03f91c016d5d604957083728293824c05904 DIST oorandom-11.1.3.crate 10068 BLAKE2B 443ced49f63015823866257a36a88e566f75adaa79511c1c73f1190ec8855ca590d2b6ece07c2ad5e9e47a89f7891af6e9e43b7d74d9ac57cb3551e60b50aca1 SHA512 51ae60ef51da56d7673f36a6c5b99b743580c5f5be54fdcb54b69e5e2f6bbba3267f96b74e7cd6dee6962dfa6696fd9ed073f22726a2861b8f2601946a8efab9 DIST os_str_bytes-6.4.1.crate 23101 BLAKE2B 252fc826f646bbb999fa80b47f58ac9a77e409b10a99284c7b669304c0cd701a3d20e690350018f5d7de8c6c7d38521f3413ac81d08067dc26f76b7c0e5b056b SHA512 2199502ad24449e08370686a596f905325f5b145e105e8c7bf90ed7729bbc405e065fce62c98eada40f77f0665ca041db41f16cc8e62473501eca32c24e56f43 +DIST os_str_bytes-6.5.0.crate 23166 BLAKE2B 60f5beced502b7bcf165dd2bca2989f9039fc22cda80bbb09d2ed0eb115831c6e0f80292e656f4bf9c0b0635ad10210c88c1b23bcbb59b8d2729b6cda473ecd7 SHA512 cde7779ba24304256cc57de78208af4d26bc91dae7fbb9c85e3f67c3e35cb6268caf3fc9eef530a8d3cbdc951ec3534223f3559d2a013561912231ebdb1801b2 DIST output_vt100-0.1.2.crate 4062 BLAKE2B eed08c0a1800560d4f623f451d818e3c7f0dcd72fa99f4e5e6dd4934e50a9649011ec955e06728fd017d58bb9f36cecbeb9b4aa8c13c040225c24019f774e63a SHA512 b8eb00a541bebef2e0bb44975c4547fadfd4ab88a14aa8e31945f3c73531a550cf5729f1f3d18fae5cf36286b82d1a54fb08b28720f1592ab6cfe0814c8d3036 DIST output_vt100-0.1.3.crate 4473 BLAKE2B 8c75dbcd413e1273ddf077f3b57996953d70376be6e438ee1a4de83a8c3c535d4cc866849aed91df74aa9b22d41d428b1142cefe035dab7404ec89af9efaa832 SHA512 ccca3b4c582e860b0643dea78302fbcb96f8f86b356041ae9c685e7c48f1721fd3366dd1bea39afc1bcef03b298d0f6c87918a1ba92a56e6b06bc8b4123c0d89 DIST paste-1.0.11.crate 18349 BLAKE2B 02e3168fd03a4036bff486cd01bb7f7fa2c355cb6087c4b92c091e9e16d6d098fca1f142cf29fd0428fae9fc32bf96e84a0fd59ddb5f6bbbe155dcbfd1d41558 SHA512 136f7e840a20d18b6706929b0c440ea2d546d0931da91236e3b401e0dbaa74aea95510277620fbcba401f2ca7f56a315049a77ee16a4b228dcaf63f90bd2c9a8 +DIST paste-1.0.12.crate 18156 BLAKE2B ab4426f9f588de4c50114421c4f9a0bb2fb5f144e9cde5d0d8ab14b3a451ff5219a99ee1cfa82dd48cae86f70d205dd8fef591651e443ba118bb27f7446e601b SHA512 fa75129e5463347ebb871f2e409463d2f164e1d9cf7160aca044dd280582354cb3286df05d56acc209174e371b577996a5b99ff35f12810610172bd9de21f98e DIST paste-1.0.6.crate 17808 BLAKE2B 8659076678f659ab0bc5d9c626d405f1f545742c79222348ad6d974beeef4541663e166247433c617829e5e65fb7a5b4d00656d95d37bad214bcfb2182d45677 SHA512 cf7795c64ded12c16ed7bc90a29bb36156abc8c424066c62d3eff8831a86b4133965d87b8b76b17ed5487ec286fc80e05fff1180833dee4b48f0429016bea25e DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721 DIST percent-encoding-2.2.0.crate 10075 BLAKE2B 397e59acc3953868c709244b89a2e0db3304c0b574ecba761026b570a485f2cb5b0b2a0159586d1f342ec395ef02ace536da3bc1c72093e1cf93f8b37b26b0ec SHA512 890a5256d2b4290e12e04a02c3529f3a017faa2b6016a4dd0f08b36509f0b1107eacfcb4702024d6a21ff8852a11f263c1adc096b16ef8d12c45a734c087fe68 DIST pkg-config-0.3.24.crate 16489 BLAKE2B d0bd099bcc39928b6758c22b14291f2dc4f4452c0837aeed8c3ff6086cdcf29518806e4f3f379804c998d752b717a26d5c0054c071c5f4c224a3e03cc6a3ee51 SHA512 be22c609b3d5a9a38bab1d30792cff397cc908f1c53fb2da68a9a7d1258e53ef64c1c5b26d840b0ed1d35b307c98ffb499c82e5796e88be0a6ecc0c6f3b5dbfb DIST pkg-config-0.3.26.crate 18662 BLAKE2B 2ad92dfdc8ac0414b12a61dd30ea4ac5f142bbb55d0555ecfa3a53e750367e1b11766a693ef11f8cbe5a2ddb978327632458b2bcf75be7aa8f973262033349ee SHA512 509c4d1494cccc20de6a62d9d037c63ff77ebee8d907747c57ba0926d177b08fcac0231ccdda14511b453deb0b76ddd10f8fbdf63ff94257d72a12a889546435 +DIST pkg-config-0.3.27.crate 18838 BLAKE2B 1295eb4f08751b3663cb2c7c2753f29bf2ccd80f4e5856909fe10b6f006c37fb9672c9518b9b416546469faa18821512673a66543c0bd1e848bddabc456d0a90 SHA512 41e9b8d4fce6b8244c2ac8566318a001b481bd42a182f1a832c81ce93c6a023e18af03aa3500b134c30195219d35080433bdba69b2594e9665081debfbb4533a DIST plotters-0.3.1.crate 8595577 BLAKE2B 7c500c43c2b2875d9dc17e4eab57cbd8a470c6064deadf4e78c429abe2f1e97511f64bc67782b4e03e7cc47c8ac54aadfa5f7cc8c27d3b4453d2ee8252896c99 SHA512 c7bcdf9da56c2d1c03053f61256d44d2384fac1a9a7e0db058090c13b359bce76a2a96bbcbfde04fdcde0a9dd3db8a1a22bc57508b0b6e4a374c8b35ec6c9707 DIST plotters-0.3.4.crate 143219 BLAKE2B 3121caf7d2a62d3dd337d887ea2343981d23b26ab742fa192456d58a73ebd07d384ad6e1de58671b5c06344c2efea8e32168d830051d425a63299d15746f3a73 SHA512 04d490ad1b822195259a661dbc605ec2f8e190a5bbbbf549741b286aa888b26a2c7468d226cee7718bd69b77e026283944367504db98c0293b3db4ce45103534 DIST plotters-backend-0.3.2.crate 13524 BLAKE2B cfd42df0fcea4e5ee944a6b8c48e3b7fcecefd6d97f07e1c333067193c211da9eba29fb56e9fc8b861cfa2d1baa3c042fddb494bb66b9109656b26bde7901f7d SHA512 116bc6866094a2ec40a9ab9363378566ff37eeb4a4e3805562dd3e95f1d5e8664b54d3dc858a2c9974b125e308e46b77c294de2a655f836d342712c32f0242a3 @@ -195,6 +249,7 @@ DIST plotters-svg-0.3.1.crate 7596 BLAKE2B ac8dffc5dea833c0506c472567056be0804e5 DIST plotters-svg-0.3.3.crate 6916 BLAKE2B 74c2c71afefe1148c82f8695ca3ae5283bad5b084e542325f3b6d587eac23f9fc087b64033043ff52ebcd661d40bb91c33ccd0de3c424ac0916baaa3a69c63b6 SHA512 1233eece4ab91ec690f93c7134ae8e6405183aaf500b2dce6973b6e212058334b7335aa80915e40363b9d2057398028c57d0b3aa974b88bb42c4e0e4726e7a92 DIST png-0.16.8.crate 52598 BLAKE2B 03f706591182a89b0566f8a793163372a4db3e7a742f3aadf06fda93068c42a4351722796ddbbb013fdc1be5a88dc02debae50ab1cc3ac81d72d07a814b456ce SHA512 df96f8580d8cc11df54788ff64ab3269b14369a467d7c29964a5b19add5e7a82258e6bfda40eedf135bffa98a2a86afbb725cd085cf37f6c433abf9a7485edee DIST png-0.17.7.crate 80979 BLAKE2B 37628fa2282c7195f983a95939eda1c73745f89d772904173775d7e1906b71615e45de8f59489d6842450ed6f7c7b809b28881c84d5a3399da38013fc3062c79 SHA512 f8009925a6948d8b9c82007f31eefd18d2173274816c0329673e48ef725aec52ca3aab2b91e8fc4f776c8f7f17475a3e065835e578a632445e1bd70794b18270 +DIST png-0.17.8.crate 88654 BLAKE2B 2c7d7cf032be40bcb614c2cdea6e41af2d15ca701377af6cae1bac6be7dc154d33a1d31cbaebe4848044ba59e02d56cc4b02bee14ce2d93904ae9bc5e4b6a699 SHA512 65a7a98295f6c4d1da79d17c3ad5a879e43fdafe3a925cf92c9866146032fd223144a84c1e6d95886bdfd07bbf35d1ef38abf2ab4ed09373c9fccc12992019af DIST ppv-lite86-0.2.15.crate 22002 BLAKE2B 3f967f112ba799f18a3f897c944ea656994abdc7c912868023de90d3885a87d9544159c44b6aeeffd83c1fe0172e326bed4044c2d199ca899da4f8420629736c SHA512 6dac73153d244cca97ea00e429f783a7d03b48f10ee450cf6f8d77581010b28be5048f53322b0c888b425b5085f440b6ea90599ea00c55c641de6e29da42f0b3 DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a DIST predicates-2.1.0.crate 23141 BLAKE2B 32dc6455d74e4188385e196f9b9042411c0c1278d12121b4aeaffd58d5adbd201ee4a3e51d908dd59528928f5751f53a125b53e1b15542ed6064c753cd8cfe52 SHA512 824cc99e8e904e5257223bba104cc705fb2e1c93ec6b638cd898dd53fb29217978de1a61c2f11caf1e4a0e076a37efbd09a2998457bcf4af1c2e7eb3c089e0af @@ -209,10 +264,14 @@ DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315 DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495 DIST proc-macro2-1.0.34.crate 41072 BLAKE2B 6b507e95802fd8dfca422deace25e328b1e4c5a9515c83ae55f8a34b1c1d34ce427afea7d7a748f582abf903245ed8c2b3f4175d78c8c9dc9f467c9805329d47 SHA512 960036a077c3869386ecb5c2019816adc70e9a9b32ceeacd4b14b39a91dbffe0b21764ead7237ab3aa553b26cb6732bbeccacbaf83c8dca9069b11b9a85dd1f8 DIST proc-macro2-1.0.49.crate 41977 BLAKE2B e31c81d3b836404bd2c28363eb0cf2637cb7fb1ff5fb39333158be2b40b15f6f8f582edaec51cabd32d7b215df39c08a9632208fe4da36fc435dc32a48483a6b SHA512 b490d5cbaa790163aaa49c1595e694dfaded61c59fc23f9b6d359f4b774ee6eb20ae8efc5f5ebd59c8ca75da85baad61c065451c1cde03b3b6148e2aaa2c9e1b +DIST proc-macro2-1.0.56.crate 44454 BLAKE2B b2a1f28979245a784a4b3a0af8cb04bd01ef3e7aba32c45122fc05a6cceddb1b7303890827f1a2cb99b0b2ae013cd772bffd6e94ea226f0030cde867d6c22aad SHA512 511fd8332eca47ed834736d405e18d53d83642cf528bebb8fd67fa5561e19b0a43c359b3e8020ecd28f9fafdb065c484ca360abc0287a0f97e94d4f779145f03 +DIST proc-macro2-1.0.57.crate 44506 BLAKE2B 6f3535a71213b2403b4ffd088366cb9e6b729def8b31afeb153702d6af24e93b4e90ca3d167ee260d7ae92d0c30ef69675587f63dc2c0b267a9354db05f648b4 SHA512 c812e51f1a85b9592d2259f5568ed39ebbc837a44b31237b943f6f0fe9c6149854597320d009730f5d6337dad59bbf648a0c3764fcfdc74436645c9edb8e9336 DIST quickcheck-1.0.3.crate 28069 BLAKE2B 5f0ddc8e22fec55e879745a95024abaa03d7bcfc6453286eec072663b36a5d6ae247b3c1622c4743e1ca9b7c4bb21da0d095aa5247f32b0bedc393f92cda6bc0 SHA512 07dd707c9d3fd0b9cedbba545bc8b4fc1ca2770d169e444f8c96f8306d3161a6a3e9189cc5d0d6b3dc4221f7dbc05887dfe2dedc914f88d5e69ab2b94179185a DIST quickcheck_macros-1.0.0.crate 5275 BLAKE2B 1681fbc5a476c627da442d601d9f24dfeaa147dbad7c8d6989ad73cf5a204963c29b2b5bf68513ba74c322f74ef5ceea92594953e9034921a2c8132150252779 SHA512 f7de86f76a53fc36063f10f5405979677a2e48a96d13c439a4aa98e89ec7f3c3cae324b8dd789a5236630110ac9a1763f28361442cca08d1a1ef458c7bfadd55 DIST quote-1.0.10.crate 29960 BLAKE2B fbd4e3e0e0f452e64b30399fdfaef318cead505d05f0c61db61a7aa3cd5a3300220b4ba2656603f88bc0b535390ab4d0ec101a919ace1d442a3e979f08e8d48f SHA512 08613679b564ea7d750117d3a2907ba957d5d595bdfa8016344f99a232c72c6b08acb882dff45c34c9e4c8f93f879fb308b36125572722aac04fbc6bb0c666f0 DIST quote-1.0.23.crate 28058 BLAKE2B 81c483fa26b36b5c4dbe85b386a74f5bfeaa854a99c0d678374507613da916a60e3f5b14d4a4d295e1c9ef0413fa1f16447df8f19a9db8cb0485b7a5c327fdc1 SHA512 3bce6846dda94d285de15771549099e60df39c8395c498b372c90a240f77df31d6d9048127913ec1c7ed8f3a189470ade1db2bede406bb00fa715ea641ec87c2 +DIST quote-1.0.26.crate 28397 BLAKE2B b468a5e9350843ea81e540d17c9fcb302b46fbd450e10280c5fff6fd7c98a439df8c3d3d47e551bc6d67ed02052b5b5c65d215d5ff8ee34f045747e75c1ba37e SHA512 6fcfe4d31f601aa60beb858c25df217421b0a184d185eebc7a4cb9fbf97c687992b77bebd8671a9e6193716387c3e926fed9b75a08684eb2d9a5b155fbc321a5 +DIST quote-1.0.27.crate 28416 BLAKE2B 68715000ad56f93c573ebacfbad0987054ef7716e10144cc8de47636812271060e3aa8f0754d105abef46a27024cda03a7054f11cbdecf110735ef845dc59a31 SHA512 5fb5802aa667c60d1a721766081b01bfd6cd929db7a5d71cb74627c2325f7108740752e514db73fb3612c163840e60ef2d4bde31c41978f3d77605418bdf2b4a DIST rand-0.8.4.crate 87406 BLAKE2B c09358416d2425a8243b623346fe71bf6f03fddab1a23fc752f4303ba7c241b3606629e4edf0ea720785bda0bca534acd675c2de079b78eac3df24a1ad6ba654 SHA512 77ae0e988e31e12f7d3f2c40814f930eecbc94c4aced827c337be78eeeabf39fde2dc5c4fda059afdc01285ff4afe30393c32694377de004feff16207606558e DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2 DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075 @@ -221,42 +280,61 @@ DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808 DIST rand_hc-0.3.1.crate 11891 BLAKE2B b3aa810638390eea4245ebb711de88ccdc2a64350a5c6e14064fea7685d49746b4b77215dbb8374fa7a6cbc2cfd79fb553513d6e551acf64586d8303f7d4f3a0 SHA512 582bb44b81c27e698eb57c6f06444b8a7c9d3f7ee73f4e14be8004c4bfd3bbfd9795c69f7294b5e87107e86b90fa3e91ad080964474af81c92705d356e43fbb5 DIST rav1e-0.5.1.tar.gz 2697850 BLAKE2B b4c117e28130996970a75132defb619563d2f91c512c9b05f40a70904dfba0e4cb55cdce4f3a9210029e93a9065ccce0bdedc4b01a4452d1c56790ef3175b722 SHA512 54fdc65527e83bed1c57916c48f03b5701cb1c41c3990326130f56c562174a97b571fb58f0f099108ccc00d8c0fd05c8a57be3fc043750dcddf804440ceeff39 DIST rav1e-0.6.3.tar.gz 2915740 BLAKE2B febd4a3267bbf77d753ac6c22474b0ef08666b038c13b4d96e26b2c50ee999488a249790e4c71cdc26163ccbbe709f09320878379ec8482b218215b0382976e4 SHA512 f39066c90c82c11b79be20836574e2ab0f7889157598c32cc91e1e78c689c1df727b16e3977f9628ac854e156c1c7ce8aafa2817857eef156bd51e348a9fe733 +DIST rav1e-0.6.5.tar.gz 2919590 BLAKE2B cd8a2eafef335a20e50a799865ba6b847c9a4ad2056c72745fc9cb567046f840dd36ef02110e8d750c46aee104555a03707d1895760379d90838b37367397e2a SHA512 bf0d107aed4c19bd75dcdcfcbf05a8df9fd7a2dbb15dae863e18f09fbfbb6dd0771907192c8f0fd4d4cf3422b2d20cafde237e93cfe987f30aad2f6bfa02b2b1 +DIST rav1e-0.6.6.tar.gz 3002789 BLAKE2B b0151ab424e58f5d85f36e4febaaa08b6a990532d24892e8b1b3bf136cc200f5945c7e6379edb9498dc6a072b450aea96acf5d5a7d679473dc17e0f190709cbb SHA512 4427c75f176989b72d6eca009dfe976ea5daf2dd7a6f01937e14304c9735dea8468b3612801d36a65bf6e818f460ed71890a487e6a2db62f165840c2318f7d3b DIST rayon-1.5.1.crate 160424 BLAKE2B 1c31c8e3290f76d02347271cb020e50e8f915b7a064f133a196c12e07ae1551c0e7c31883a31ec419a05198d6c71f0057be1b8ddb21f451db9ba40da511a0e1a SHA512 a68e65aae7040a6f6b0cc33b53b4c22929c15504ed4fdf54f5eb5fcaeab137c220b00c716aed96246b6a762c4f1e8be920356231d6c4a0b3e01132b9ab96ffc9 DIST rayon-1.6.1.crate 166330 BLAKE2B 5bbc439e0c88780b8d80cb36d4b4164e698a1189bd140e8c84d9f6a466023de0cd69a1f24c4217d595ae9af1f61aca6829461648152116c6bebeef0f0e686e50 SHA512 2e03585170e59f4388359817d67a43cd10a2244382615ae39bf84210db03a6dfec3b75d8a23800b8faaa31f45e8df4c44fbc343f02e18dd3dc0572c207791e73 +DIST rayon-1.7.0.crate 169488 BLAKE2B 518f0eda1fcbd1b1b230587ea18cab0023a699e796c819bf35a6492b7edb051137446bfbc49aaab0a68aef8280c970ad14301a9f8f7461d537af119a65b33a38 SHA512 d999c811b701d0aa4e547234bdc20a7df56728e142c4aa882bae081b7b057e8c3a72f4a62fb35535e57501e8c2ba7ff072068b59d6b5374e9ca6bb66cc0984d3 DIST rayon-core-1.10.1.crate 70008 BLAKE2B aa6dc470af3464ddd20f75faa5793bbc684d1550e44e0148134be7219dbded5dc7c1a1da96487ce9132330f26a587d9861b64be342566d6550cf3806a764d51b SHA512 a9261aa4a648029f50bcca30bd991ef51353c258b9b8c98027efe9ff62e4b7be200e59bc7aa9144d9a3d39873b01bbe104c1d7875d61e02e089bb04e0312798f +DIST rayon-core-1.11.0.crate 73118 BLAKE2B 313d65bb6e3a010569b317b32ac91c72e38282f4fcddbcb56ffa97de42d88c0d34f35f76b62e1ad60ee96b596aa681caf2071a8d5dfdca085fb1fbafb07c3ee4 SHA512 00ac782f49d688da90e823980e83b5ccd858f93769e2d801061fdef78728cff37d3a9fa4fd47a5cddb058f28f3289de349f8c8fdd94fa2f8c400d73bc4529800 DIST rayon-core-1.9.1.crate 64961 BLAKE2B 7201024124324d2cf2d5785b7e79d2195adc7de576b826a9c28603dc44f1b5de46d277b791a741413c85facb4f4a552bfd55989a190f6f5ea3df4bbd32042f66 SHA512 c24c34dc488171ce476df145e8c6953d35fea93412805f6c411ba8b8e9dbbd733610b291203ee91bd265b766b78e14ba15a7b587e8f0ae8bde53f60e0644ef78 DIST regex-1.5.4.crate 236581 BLAKE2B 6efaf69d1a99dc3a2e04b2d1a96b036f631e9a0ad0d3aa57263febd47f7ec12765526f06f9c52a5497bf0d9b455f1d1b39e011adc4c28530c44b65c8a453efc0 SHA512 1a9208358c4ab87c19ec91bcf5c1e35dede46f3a0c0097061b7b53fa77a1e5ad38090d243aab274956f09c491e5fbe3b3b35a91db079b82a2dde2fd9fbad4c19 DIST regex-1.7.1.crate 239648 BLAKE2B d68591ab0627f0bbcead8e81de2b9f6c7eb7be2d29b2c1700e06ffb541c073ecc054dfc76aba8f55ac0630b191d4136805bd04c7d1b9f6cbb1ca2437668ab244 SHA512 ee19bc6d24b981a151324ad4115488383227ec33dfba0225b35b6252f0d363b8d906db59a45170139c7a687fe681a983c2392d2921c7365db38c7c0e9745066f +DIST regex-1.8.1.crate 248412 BLAKE2B 4f1355104def09ec8f7a7d604fb08d0a39af36cdbb5160c63329e8c06ef2d2ad1063fc7280c90ba3748e1766b65f52fd6da24e439d5262209a6137bcbe2eda9c SHA512 fe83c2497b786314cbd9ead0d85a39ca87ae92225e444a41ba381fe80aa381a88806e2c20e1c468b8b59503fdf1c2b7e5bf6eaae0ddf9f14a70c1ca2773e8830 DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f DIST regex-syntax-0.6.25.crate 293293 BLAKE2B d5ca0dbc26b03c6a1818026f9a69cd226ec934e7c64094d0ebe843052b648617ffae7aa3a074f8da46d03c46996d8b547d8916576342000bd9711089b3e57d73 SHA512 a3d31f82aadc6be1796f76c03152ff24f37fe42d6ce27fb98e2f55ab102f86502bc37ccd563f6e0eba61aab20d002184c618517b678b3b93cb8f0497cc046ca5 DIST regex-syntax-0.6.28.crate 299288 BLAKE2B 8554370e269e888e603c403089aa6eb4a087ae65fec016a428e424289990a07826e37a2e51cd353c7d530d5b3421e2db6a8f9d50e62379867bb5b6cbc57f2436 SHA512 ba5fb1622a330b67a4eb820551c7f20dbfdc6b38eb697b9bfddea4cf0060b473472045e93aaf6cb9727ae609e06ed285e1e42f06f34ac730ac39fb90425bbe85 +DIST regex-syntax-0.7.1.crate 339705 BLAKE2B 59dcdb9e0f5a2008db491756fb353745bf4dbaba0d3a8a6782960c990065e1870cc120d7a7e220991b78f89053aa63b1a9c326f5ae3526d47679e4ae30ae5e66 SHA512 ff61e4a075550fce3a16e516f8222a489dfe2bdf9431220c98c33b1f9e6b19da7bc1ca6bf34031235d6f1ad06882b63d606874a14d2e27c615701ecc2f4cdd9a DIST rust_hawktracer-0.7.0.crate 4718 BLAKE2B 269902116f53e1f50cfb524bedd4594c9c43d481ae5eebb16dc12f4314024afa16e224fbccc97907429534cfb74e06cc263c69da3ac1cc2f04b49ec4b8b29890 SHA512 62756c6c99a1ff1dd78565a522cebec3a9bed637a157b3d5d7ab91f7ce74d6de809604e8406b7e80807f34a7fa7b72fc9b6df51bcbd41e4fb503425d0b8cbc02 DIST rust_hawktracer_normal_macro-0.4.1.crate 3000 BLAKE2B 9126ff8bd5dd0300e4c6df4311a94c96c1b0ffc23973fdde752593c7072ed687393a5165d5e4a27df28ab56490a0cf4af67556c1829103298963f1210dab7161 SHA512 19d2d10da7728d28baf3c5be0f7a9df7b23e63188d7f6f2acae199d081a06fcc6a78c778d56cbaeeb83dfcc5e0c775f1d608074c95461a17b6a1ff84017129a9 DIST rust_hawktracer_proc_macro-0.4.1.crate 3028 BLAKE2B aa2d70be709d0926a2edc4e29c31fb2bb1412d2e9c2144a604d19a4b903e92c59ed2a9892a2182c859963704ea0d6035304e0621e8f8bb432ca7cb888b1bc4a5 SHA512 f23b23cedbf1992a58e238d03acf75d627a9a4442019597c913e8c23d133511c2501e80a839f61af816efd55d6b9d8a6b045454652dced927e06b480dec53140 DIST rust_hawktracer_sys-0.4.2.crate 319968 BLAKE2B 251fd00f03338cd5287c79a58a5589cc03890b9e044fe679b2ede657816256caab8d7b09765b540b1ff50b0fcc52b9138a63b41e6b6def35ead81168e0c3ca13 SHA512 9a145263b5debed91980151229fbf61583f67b187c904cd9976d8837c0c8b348e53b47e58cd0d34b7a23609ecec8cd40d241f08d0da585931a203915e36bcc24 DIST rustc-demangle-0.1.21.crate 27920 BLAKE2B 73ada923b9b293c5a9893f86fda0586139afbb7d56894cabbd70612d1fb0330a9e491d5143fe3498a0c8d3e1a3f8e63c14b20865926e4c831915592486ae32d0 SHA512 4031b26863a726cc6d3398b48682e0f0f9e5665abf20a5d35343a904ebd7c0d3752dcdd3a049b2bfa3e2a303214dc39a2980700bcc64464f7029be3c7f34727c +DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247 DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544 DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db DIST rustix-0.36.6.crate 288718 BLAKE2B 5b1a09f8af9bc4b7ae045d038734f3568896c75ac0e77d9d1d74aef63e461f14a2934129cce36bb2d450fa94046770f6d394b0469b072b16f82977de92fa1e50 SHA512 d18e44d7546024d96a0ab6256c0913d9647a3290a60a5c8ed66611ab5983e7e22e05bddd61b12cd5b3d864ab9f1a2ed604e48a1336aea9e95907c2fc0cbfc4c4 +DIST rustix-0.37.19.crate 323809 BLAKE2B 6a01e5128910c4b1333359efdacd5d0c1f0cf0ac4f2615e6891c10e7de3ce8df5ca50955a3e5c27f3b85d3ffee9fe28105aac3baa4fadd05172645e9f7ddb853 SHA512 e1c00f97414313580dfb7a616cd0e9a64d87950b4d4e6b536b5eaea93b8741f769ef62d4ee1461af8266758f9bdc136a445abbb05c8355a11d338a166b498722 DIST ryu-1.0.12.crate 47070 BLAKE2B 02b0eec6bf266b7c482aea15ff83de4bf3cd6f607f8cd6f17f1c3ffc60cc64b62b15738907b4069f5816dd81669ed4f5b00c4bbc8705abaebe3a0846f56e8e29 SHA512 070f0b2b52e47cc9a6d8f003439d257c27aec15ffb030a92481ac22d5052436156e25127ea3ea7986cc514d2a7a924f9328710d743c216d7b1379beacae79829 +DIST ryu-1.0.13.crate 46823 BLAKE2B c6d661cbff5e7b273da5a6bb704bb1910b897c55d854b05bd417f53853a832791afc351e5a5aeaa94ba99a8fe64c8a930221c52a8784519728da748371a4ae04 SHA512 25f60216d91e68cb47695ce4e966fae674d5b3e4b0cf33e740248c1605fdcf0c963acd278a485c5b4bb0a1c1144002e73173592222af4989df7a4ba402508c13 DIST ryu-1.0.9.crate 48391 BLAKE2B d5c1035ffd6340d846009953cb4303fb8c250a3a6ac60b51a2fec77a6cb3648524420064b7380fe31af33c57011f950f6f739a1f0114196675b3b5de4b54efc6 SHA512 4e7c2c7ec73da1ddb32e18d36b8159cb4047b9f4feeb975361e7ba68135e671e11419bb7786df789f5d08e5895231d2c98e36035b515f2c64ac40474d08905cb DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c DIST scan_fmt-0.2.6.crate 9676 BLAKE2B eb314c3e456de46b31d4286016b9194e663f7c3aea0b699a2693d180b2f0fa549448609b845afbbd0053661b5777a8912c2c607ffb26e490f86fd43ee2c2a1ab SHA512 ac24f699aa39d6fb29c309a9716eda9bda7331769114f52ab51f4aa781ecb3c7694ac385c7d60cec9b87e134fa2a5d8f586b54166ee9d58cc4bc34c83943ecc0 DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d DIST semver-1.0.16.crate 29850 BLAKE2B 6a6a680e55b6e98e5d0d466cae2f144531d3019988a7a241e7f0e54ebf2ebfbef27eb7af5ac59a618fdaa5546bb84c65e4616734b775fb2e90d87c1ac0b07317 SHA512 4fac06eb9ea475f8a31dd85e4d28c70a351656914e8e61518ad69274e93f1b6f14cc32a5b0c0e5a7d9ba0c74d4a16d502518dfdf2756e8df5e45869886db8c2d +DIST semver-1.0.17.crate 29685 BLAKE2B b9beb685eb9f6cffe557d1185997e1a93d0e50ecd8e9719d9855347f12dd430ed1020df81839b7924a984596437ae7fb2951e7ae44c5540692a7f37b591bee2e SHA512 5199923757e675506d68c252182b10f55955e47054880492e5471a0a0f9ad13ef25d552d2ab9bd68fba37121b8026d9989bf15db67e95265b3aa53d06377fda7 DIST semver-1.0.4.crate 29375 BLAKE2B 534a89125c4483fc99c44f7b104870be1471d478ba4f709819ae700767f4d6d0bdc98955897e33566651cbecadb4d4dc223204e4504ba4820c2d3919ef4fa775 SHA512 82ef2b4a3533360de1c645dba02b57a2670fdc51709a07be4a63b94055335225764d42d70f9617ed3aeb4c4de121da24e73b0e2c5c781501e9ee32dff756ebd9 DIST serde-1.0.132.crate 75364 BLAKE2B 7485bcf0ae578f02f7c7dcdb284fcd6d8ccb4022b7d487e19593f3b3c9bd03a369410307dbe5ecde8071ca3ab6c7e45a5ddfe332e43076b84d67444d1f105b7b SHA512 8dac512547074a6934315ebae3e7540ef8baa225cdd58f11416b4565a1335ab317e659901fd626beffd6514c5dc6ec9fc705cc1d15e9cdd2051bd28649cca555 DIST serde-1.0.152.crate 77091 BLAKE2B 89c01ce359042ebe6b1b64ea710580886f965a98e1d6085c58a75269a9b43401e2cace080c4c93ee51982855fb7e2f09fdefe9bd237bbf30c5537f3a4258283b SHA512 b47bd58fdc1a81d96cc0c9d14c8b19153b6689e893851975b1d7c7010c4448750e7fa09056dd4f13ed475a4aea2a3950952ff528832976919a6e78504a37bea7 +DIST serde-1.0.162.crate 77030 BLAKE2B 27e6a9bfabcd66a2250be36ac9987ec12a864c15eabea4bb793f796a19d85db097bf46426462fbdd22ccde24af3581638c2e14634701a0b14a3bfcc624c40a8d SHA512 e9b112999b69a14f1d05cce985448378c889a497dfa00f86e0c611b17d98fe7d942e9142fdf8c95c6d0a32e2016b3f384b52efae3bd75012c12299b02d055578 +DIST serde-1.0.163.crate 77030 BLAKE2B 0d7ead66faab8ae01c693c9bbcadfd0a7a736c8bf46f50ef43ba261eec9e0f0c43477feadb2e134f0ed6dda3115dcbc3d22daa28592f343739f1ea03d9c25723 SHA512 752738ef5f67f1b4435bdd4e76e740ba192bd93e83cac55fd667809af26ceaf02db7083aaf7b2074644b38964021af206000b6130199e7994c12c9c57cd31a34 DIST serde-big-array-0.4.1.crate 5707 BLAKE2B 9520b244c92e2dd5d59d91c9414cc4bb44ab20cd6fad773c3df7bc52a33bf00420fb8797636ea0f537792a3db0a1bd368f8057a68e886ee94a803d73ae0267f3 SHA512 0777c2e36c87ca88334559512d9399fb4badccbfb44d6353dda985ad762c7e9ccc375ce5b80ba6a8283458827077851436f717492772cdf0591d200d51733024 DIST serde_cbor-0.11.2.crate 44570 BLAKE2B facc8d16886dde89125b7d69e9e77ff586c61993c3493fe4089ff03c53e6c0808c6da45a83337d3be7414dd82f3d6a7f3d43167473e49e586a7e817d47ef3014 SHA512 12ddcbd5de0d85f2da6e078e3ccfdf2115125084d57eb93d7e9b45bca6a86daf79dcc79c8e54260c56240c3b5e814b1481ac28c3aa1d1b4b982ef5956b5cc3cd DIST serde_derive-1.0.132.crate 54725 BLAKE2B 10ba0e55a498cfb469f1a36368f66515ab3e331f337b9441b08aba857dd6c824ccb718fdc33ab467413bd755db31370d4eb52039bb28e4a6c0775e2be87db896 SHA512 04f1a738b133de752fd1f4d70ffa35bbc144208bc3495ead56cda8ce65a72c501ea9c8e5e6 |