diff options
Diffstat (limited to 'media-video')
128 files changed, 3763 insertions, 3722 deletions
diff --git a/media-video/aegisub/aegisub-3.3.3-r1.ebuild b/media-video/aegisub/aegisub-3.3.3-r1.ebuild new file mode 100644 index 000000000000..530606341ba5 --- /dev/null +++ b/media-video/aegisub/aegisub-3.3.3-r1.ebuild @@ -0,0 +1,156 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( luajit ) +LUA_REQ_USE="lua52compat" + +WX_GTK_VER=3.2-gtk3 +PLOCALES="ar be bg ca cs da de el es eu fa fi fr_FR gl hu id it ja ko nl pl pt_BR pt_PT ru sr_RS sr_RS@latin uk_UA vi zh_CN zh_TW" + +inherit autotools flag-o-matic lua-single plocale wxwidgets xdg-utils vcs-snapshot toolchain-funcs + +DESCRIPTION="Advanced subtitle editor" +HOMEPAGE="http://www.aegisub.org/ https://github.com/wangqr/Aegisub" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://github.com/wangqr/${PN^}.git" + # Submodules are used to pull bundled libraries. + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://github.com/wangqr/Aegisub/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi +LICENSE="BSD MIT" +SLOT="0" +IUSE="+alsa debug +fftw openal oss portaudio pulseaudio spell test +uchardet" +RESTRICT="test" + +# aegisub bundles luabins (https://github.com/agladysh/luabins). +# Unfortunately, luabins upstream is practically dead since 2010. +# Thus unbundling luabins isn't worth the effort. +RDEPEND="${LUA_DEPS} + x11-libs/wxGTK:${WX_GTK_VER}[X,opengl,debug?] + dev-libs/boost:=[icu,nls] + dev-libs/icu:= + media-libs/ffmpegsource:= + media-libs/fontconfig + media-libs/freetype + media-libs/libass:=[fontconfig] + sys-libs/zlib + virtual/libiconv + virtual/opengl + alsa? ( media-libs/alsa-lib ) + fftw? ( >=sci-libs/fftw-3.3:= ) + openal? ( media-libs/openal ) + portaudio? ( =media-libs/portaudio-19* ) + pulseaudio? ( media-libs/libpulse ) + spell? ( app-text/hunspell:= ) + uchardet? ( app-i18n/uchardet ) +" +DEPEND="${RDEPEND}" +# luarocks is only used as a command-line tool so there is no need to enforce +# LUA_SINGLE_USEDEP on it. On the other hand, this means we must use version +# bounds in order to make sure we use a version migrated to Lua eclasses. +BDEPEND="dev-util/intltool + sys-devel/gettext + virtual/pkgconfig + test? ( + ${RDEPEND} + >=dev-cpp/gtest-1.8.1 + >=dev-lua/luarocks-3.4.0-r100 + $(lua_gen_cond_dep ' + dev-lua/busted[${LUA_USEDEP}] + ') + ) +" + +REQUIRED_USE="${LUA_REQUIRED_USE} + || ( alsa openal oss portaudio pulseaudio )" + +PATCHES=( + "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-fix-system-luajit-build.patch" + "${FILESDIR}/3.3.3/${PN}-3.3.3-support-system-gtest.patch" + "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-tests_luarocks_lua_version.patch" + "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-fix-boost-181-build.patch" + "${FILESDIR}/3.3.3/${PN}-3.3.3-support-icu-75.patch" +) + +aegisub_check_compiler() { + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++17; then + die "Your compiler lacks C++17 support." + fi +} + +pkg_pretend() { + aegisub_check_compiler +} + +pkg_setup() { + aegisub_check_compiler + lua-single_pkg_setup +} + +src_prepare() { + default_src_prepare + + # Remove tests that require unavailable uuid Lua module. + rm automation/tests/modules/lfs.moon || die + + remove_locale() { + rm "po/${1}.po" || die + } + + plocale_find_changes 'po' '' '.po' + plocale_for_each_disabled_locale remove_locale + + # See http://devel.aegisub.org/ticket/1914 + config_rpath_update "${S}"/config.rpath + + eautoreconf +} + +src_configure() { + tc-export PKG_CONFIG + # Prevent access violations from OpenAL detection. See Gentoo bug 508184. + use openal && export agi_cv_with_openal="yes" + + setup-wxwidgets + local myeconfargs=( + --disable-update-checker + --with-ffms2 + --with-system-luajit + $(use_enable debug) + $(use_with alsa) + $(use_with fftw fftw3) + $(use_with openal) + $(use_with oss) + $(use_with portaudio) + $(use_with pulseaudio libpulse) + $(use_with spell hunspell) + $(use_with uchardet) + ) + export FORCE_GIT_VERSION="v${PV}" + econf "${myeconfargs[@]}" +} + +src_compile() { + emake WITH_SYSTEM_GTEST=$(usex test) +} + +src_test() { + emake test-automation + emake test-libaegisub +} + +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/aegisub/aegisub-9999.ebuild b/media-video/aegisub/aegisub-9999.ebuild index 208e6b0e5adb..530606341ba5 100644 --- a/media-video/aegisub/aegisub-9999.ebuild +++ b/media-video/aegisub/aegisub-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -75,11 +75,12 @@ PATCHES=( "${FILESDIR}/3.3.3/${PN}-3.3.3-support-system-gtest.patch" "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-tests_luarocks_lua_version.patch" "${FILESDIR}/3.2.2_p20160518/${PN}-3.2.2_p20160518-fix-boost-181-build.patch" + "${FILESDIR}/3.3.3/${PN}-3.3.3-support-icu-75.patch" ) aegisub_check_compiler() { - if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++14; then - die "Your compiler lacks C++14 support." + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++17; then + die "Your compiler lacks C++17 support." fi } diff --git a/media-video/aegisub/files/3.3.3/aegisub-3.3.3-support-icu-75.patch b/media-video/aegisub/files/3.3.3/aegisub-3.3.3-support-icu-75.patch new file mode 100644 index 000000000000..0287527117ba --- /dev/null +++ b/media-video/aegisub/files/3.3.3/aegisub-3.3.3-support-icu-75.patch @@ -0,0 +1,26 @@ +From 5ef040ffe2fc743ecff0d744b82a24e5c9b521a8 Mon Sep 17 00:00:00 2001 +From: Nick Sarnie <sarnex@gentoo.org> +Date: Thu, 8 Aug 2024 17:21:31 -0400 +Subject: [PATCH] Fix build with icu 75 + +Signed-off-by: Nick Sarnie <sarnex@gentoo.org> +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 197d0a788..02cb56052 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -144,7 +144,7 @@ AS_IF([test x$enable_compiler_flags != xno], [ + CXXFLAGS="$CXXFLAGS -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing" + + # For mac compiler which still stuck on c++98 +- AC_CXX_FLAG([-std=c++14]) ++ AC_CXX_FLAG([-std=c++17]) + + # -O* messes with debugging. + AS_IF([test x$enable_debug = xyes], [ +-- +2.45.2 + diff --git a/media-video/amdgpu-pro-amf/Manifest b/media-video/amdgpu-pro-amf/Manifest index 06cdc29d13c0..c396df9e0527 100644 --- a/media-video/amdgpu-pro-amf/Manifest +++ b/media-video/amdgpu-pro-amf/Manifest @@ -1,3 +1,2 @@ -DIST amdgpu-pro-amf-1.4.24.1452059.deb 1307216 BLAKE2B 2ecae593da961e2ff86e807c017a85fda5459458434c491e538f3845a12b0354e65da568550bbdebb47685aad6b7d22607b5f2a281b49718154ead6f92d30058 SHA512 9e3611ad3cad50da4aeeec2b14ad944e2ff7d83b9b104f65acf5e5915f74644fb25f74bfa51a5802dac828fa6c84e01351fbe58f14e1dde1145ba908d6a0445d -DIST amdgpu-pro-amf-1.4.29.1580631.deb 1653852 BLAKE2B 5af5250c07e1b99ae8c1ee28507927e28ee7811929c789b5939a06f631b81155d6795e1392830945bf377f5298a5153e9af3541b2d94533661db394a059fb715 SHA512 07568c5e2f92f10274f7ac25a9d68539b8ce2e5d24c87e9b6a3aec2b8d5a32980c8fd802394dfa6eb421d3321dd60e07929e7f481578d23afcf623c5c9aa2fcc -DIST amdgpu-pro-amf-1.4.33.1718238.deb 3311972 BLAKE2B 549ab0cae83e6014ef79ef70981cdb296cebee1cdeeb7d07258523018d9efa89e174fbabe537896e524b69064806dc12bf24aae29f291d76b5bddb3d2e203639 SHA512 ec5771eebe30d749e5fa753600a9fc02ca97b5023cbbd9f58ffbf657a5f6c4d1e2066da1974ad759c6d9089b233c25654fbb0ec019b34232445f9e4f53720388 +DIST amdgpu-pro-amf-1.4.34.1787253-enc.deb 256792 BLAKE2B 91948608c6f298eb3757d12f3bd60f10c28a81cbfe973d4a025ebb9d1806efbc7d36e647f7fbd7d4d6f5cfdb36f54e21066bdf040762070b5f30ed7bb8f7c739 SHA512 38b0ac921326d9b9aa47c9c281bb8708f6cbc1de82b979eb4491fde3d78205898e638ca4704fa00c1d0b0d73291efc85e818762cd0880d0ce6672172e09402ef +DIST amdgpu-pro-amf-1.4.34.1787253.deb 3203792 BLAKE2B 3dc70fd3b68f7a2d2ba0706cc2203afeca28b297c2e7c1cd60fdcba373d0b32553e6630c537cbfeed8c849873ebc41cac2868ace9c9fc1764aee03b04f94a0a8 SHA512 d6773b3dfb1176ea14663b4a1f2827fb7b4ce2baeed1a9b457382c5cbe2536673a9729215586177819be26e8272c8db22a663880a0366194057bb957aa6f8e76 diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild deleted file mode 100644 index 2ae162b65fcb..000000000000 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.24.1452059.ebuild +++ /dev/null @@ -1,55 +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="22.10.4" - -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}_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.1" -} diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild deleted file mode 100644 index aeace360442d..000000000000 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.29.1580631.ebuild +++ /dev/null @@ -1,56 +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" - -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/${INTERNAL_VER}/ubuntu/pool/proprietary/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_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.1" -} diff --git a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.33.1718238.ebuild b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.34.1787253.ebuild index 79a35e7579e0..fa004817f5f6 100644 --- a/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.33.1718238.ebuild +++ b/media-video/amdgpu-pro-amf/amdgpu-pro-amf-1.4.34.1787253.ebuild @@ -14,43 +14,61 @@ MY_PV="${MY_PV_HIGH}.${MY_PV_MIDDLE}.${MY_PV_LOW}" MY_PV_FULL="${MY_PV}-${MY_PV_REV}" MY_PN="amf-amdgpu-pro" +MY_PN_ENC="libamdenc-amdgpu-pro" -INTERNAL_VER="6.0.2" +INTERNAL_VER="6.1.3" UBUNTU_VER="22.04" -DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver" +DESCRIPTION="AMD's closed source Advanced Media Framework (AMF) driver for AMD GPUs" HOMEPAGE="https://www.amd.com/en/support" -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}" +URI_PREFIX="repo.radeon.com/amdgpu/${INTERNAL_VER}/ubuntu/pool/proprietary" -RESTRICT="bindist mirror" +SRC_URI=" + https://${URI_PREFIX}/a/${MY_PN}/${MY_PN}_${MY_PV_FULL}.${UBUNTU_VER}_amd64.deb -> ${P}.deb + https://${URI_PREFIX}/liba/${MY_PN_ENC}/${MY_PN_ENC}_1.0-${MY_PV_REV}.${UBUNTU_VER}_amd64.deb -> ${P}-enc.deb +" + +S="${WORKDIR}" LICENSE="AMD-GPU-PRO-EULA" -SLOT="0/31" +SLOT="0" KEYWORDS="-* amd64" +IUSE="+radv pro video_cards_amdgpu" +REQUIRED_USE=" + video_cards_amdgpu + || ( radv pro ) +" + +RESTRICT="bindist mirror" + RDEPEND=" - media-libs/amdgpu-pro-vulkan media-libs/libglvnd x11-libs/libdrm x11-libs/libX11 + pro? ( media-libs/amdgpu-pro-vulkan ) + radv? ( media-libs/mesa[proprietary-codecs,vulkan] ) " QA_PREBUILT=" usr/lib64/libamfrt64.so* + usr/lib64/libamdenc64.so* " src_unpack() { mkdir "${S}/${PN}-amd64" || die cd "${S}/${PN}-amd64" || die unpack_deb "${DISTDIR}/${P}.deb" + unpack_deb "${DISTDIR}/${P}-enc.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.1" + + doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamdenc64.so.1.0" + doins "${S}/${PN}-amd64/opt/amdgpu-pro/lib/x86_64-linux-gnu/libamdenc64.so" } diff --git a/media-video/amdgpu-pro-amf/metadata.xml b/media-video/amdgpu-pro-amf/metadata.xml index 6d07c8aa6259..fbd4c6cd9424 100644 --- a/media-video/amdgpu-pro-amf/metadata.xml +++ b/media-video/amdgpu-pro-amf/metadata.xml @@ -9,4 +9,8 @@ <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> + <use> + <flag name="radv">Pull media-libs/amdgpu-pro-vulkan as dependency</flag> + <flag name="pro">Pull media-libs/mesa as dependency</flag> + </use> </pkgmetadata> diff --git a/media-video/bdsup2sub/Manifest b/media-video/bdsup2sub/Manifest deleted file mode 100644 index d48b0ef5b348..000000000000 --- a/media-video/bdsup2sub/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST bdsup2sub-4.0.0.tar.xz 199796 BLAKE2B 293c7d0433103a3087fb057b938b1cf2d42acc01ccdeb8c815f124c3a6b61f20bb211d88f9f4a7e516f4f7aa54200d2c1ec36adbfe700321543f27a9408269f4 SHA512 d12f5ddde2b9fec9dc50a43212db52f068852c972c0ee559dbe7f56490d7082eb1f603413a17737f791450d7f1458ed5ba39fda9a7a1349af03c07a0173c13a6 -DIST xdg-20100731.java.xz 648 BLAKE2B 8bd082c445d64051c65c66e8a22b61e582d04f1f650e3b15ee2f3400d47b10f137d245bd8a7633d96299e2c688f7bf836b59a4dd49ea3c181684a78fa55304c3 SHA512 8b5d8e695f3f052f889002dc93742da8ba9eada173cb10ad1db525e1ad89d1c8f44200d79dc02068ccf93fdbf2e8daa5bb359dae77bacbc89cb6d4895732774b diff --git a/media-video/bdsup2sub/bdsup2sub-4.0.0-r3.ebuild b/media-video/bdsup2sub/bdsup2sub-4.0.0-r3.ebuild deleted file mode 100644 index 8246c205b408..000000000000 --- a/media-video/bdsup2sub/bdsup2sub-4.0.0-r3.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -JAVA_PKG_IUSE="doc source" - -inherit desktop java-pkg-2 java-ant-2 - -XDG_P="xdg-20100731" - -MY_PN="BDSup2Sub" - -DESCRIPTION="A tool to convert and tweak bitmap based subtitle streams" -HOMEPAGE="http://bdsup2sub.javaforge.com/help.htm" -SRC_URI=" - http://sbriesen.de/gentoo/distfiles/${P}.tar.xz - http://sbriesen.de/gentoo/distfiles/${XDG_P}.java.xz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - >=virtual/jre-1.8:*" - -DEPEND=" - >=virtual/jdk-1.8:*" - -S="${WORKDIR}/${PN}/${PV}" - -PATCHES=( "${FILESDIR}/${P}-xdg.patch" ) - -src_prepare() { - default - - # apply XDG patch - cp -v "${WORKDIR}/${XDG_P}.java" "${S}/src/xdg.java" || die - - # copy build.xml - cp -f "${FILESDIR}/build-${PV}.xml" build.xml || die -} - -src_compile() { - eant build $(use_doc) -} - -src_install() { - java-pkg_dojar "dist/${MY_PN}.jar" - java-pkg_dolauncher "${PN}" --main "${MY_PN}" --java_args -Xmx256m - newicon bin_copy/icon_32.png "${MY_PN}.png" - make_desktop_entry "${MY_PN}" "${MY_PN}" "${MY_PN}" - use doc && java-pkg_dojavadoc apidocs - use source && java-pkg_dosrc src -} diff --git a/media-video/bdsup2sub/files/bdsup2sub-4.0.0-xdg.patch b/media-video/bdsup2sub/files/bdsup2sub-4.0.0-xdg.patch deleted file mode 100644 index 3f68beb6d495..000000000000 --- a/media-video/bdsup2sub/files/bdsup2sub-4.0.0-xdg.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/src/deadbeef/SupTools/Core.java 2010-07-29 13:01:48.000000000 +0200 -+++ b/src/deadbeef/SupTools/Core.java 2010-08-01 02:19:25.215473885 +0200 -@@ -22,6 +22,8 @@ - import deadbeef.Tools.Props;
- import deadbeef.Tools.ToolBox;
-
-+import xdg.*;
-+
- /*
- * Copyright 2009 Volker Oth (0xdeadbeef)
- *
-@@ -750,6 +752,7 @@ - cliMode = false;
- String s = c.getClass().getName().replace('.','/') + ".class";
- URL url = c.getClass().getClassLoader().getResource(s);
-+ /*
- int pos;
- try {
- fnameProps = URLDecoder.decode(url.getPath(),"UTF-8");
-@@ -767,6 +770,8 @@ - fnameProps = fnameProps.substring(0,pos+1);
- }
- fnameProps += Core.iniName;
-+ */
-+ fnameProps = xdg.config_home() + "/" + Core.iniName;
-
- // read properties from ini file
- props = new Props();
-@@ -905,8 +910,10 @@ - * Write properties
- */
- public static void storeProps() {
-- if (props != null)
-+ if (props != null) {
-+ xdg.mkdirs_file(fnameProps);
- props.save(fnameProps);
-+ }
- }
-
- /**
diff --git a/media-video/bdsup2sub/files/build-4.0.0.xml b/media-video/bdsup2sub/files/build-4.0.0.xml deleted file mode 100644 index 9aab31c3a5e1..000000000000 --- a/media-video/bdsup2sub/files/build-4.0.0.xml +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0"?> - -<project name="BDSup2Sub" default="jar"> - <!-- some properties --> - <property name="src.dir" value="src" /> - <property name="build.dir" value="build" /> - <property name="docs.dir" value="apidocs" /> - <property name="dist.dir" value="dist" /> - <property name="resources.dir" value="bin_copy" /> - <property name="project.jar" value="${dist.dir}/${ant.project.name}.jar" /> - <property name="target.jdk" value="1.6" /> - - <!-- init --> - <target name="init"> - <mkdir dir="${dist.dir}" /> - <mkdir dir="${docs.dir}" /> - <mkdir dir="${build.dir}" /> - </target> - - <!-- compile everything --> - <target name="compile" depends="init"> - <javac srcdir="${src.dir}" - destdir="${build.dir}" - source="${target.jdk}" - target="${target.jdk}" - encoding="ISO-8859-1"/> - <copy todir="${build.dir}"> - <fileset dir="${resources.dir}" /> - </copy> - </target> - - <!-- build the jar files --> - <target name="build" depends="compile"> - <jar jarfile="${project.jar}" basedir="${build.dir}"> - <manifest> - <attribute name="Main-Class" value="${ant.project.name}" /> - </manifest> - </jar> - </target> - - <!-- generate javadocs --> - <target name="javadoc" depends="init"> - <javadoc sourcepath="${src.dir}" - packagenames="*" - destdir="${docs.dir}" - author="true" - version="true" - use="true" - charset="UTF-8" - encoding="ISO-8859-1" - windowtitle="${ant.project.name} API" /> - </target> - - <!-- clean up --> - <target name="clean"> - <delete dir="${build.dir}" /> - <delete dir="${docs.dir}" /> - <delete dir="${dist.dir}" /> - </target> - - <!-- zip the sources --> - <target name="sourcezip"> - <zip destfile="${dist.dir}/${ant.project.name}-src.zip"> - <zipfileset dir="${src.dir}" /> - </zip> - </target> - -</project> diff --git a/media-video/bdsup2sub/metadata.xml b/media-video/bdsup2sub/metadata.xml deleted file mode 100644 index a2dfee954457..000000000000 --- a/media-video/bdsup2sub/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?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> - <name>Gentoo Video project</name> - </maintainer> -</pkgmetadata> diff --git a/media-video/cheese/cheese-44.1.ebuild b/media-video/cheese/cheese-44.1.ebuild index b6998ae2db97..b229a7621fcd 100644 --- a/media-video/cheese/cheese-44.1.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 ~loong ~ppc ~ppc64 ~riscv ~sparc x86" +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86" IUSE="gtk-doc +introspection test" RESTRICT="!test? ( test )" diff --git a/media-video/dirac/dirac-1.0.2-r2.ebuild b/media-video/dirac/dirac-1.0.2-r2.ebuild index c69be76aff2a..180b12111cfa 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="https://downloads.sourceforge.net/${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" +KEYWORDS="~alpha amd64 arm ~hppa ~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/ffmpeg-chromium/Manifest b/media-video/ffmpeg-chromium/Manifest index 5c5c58f892d0..ed477c1c8d90 100644 --- a/media-video/ffmpeg-chromium/Manifest +++ b/media-video/ffmpeg-chromium/Manifest @@ -2,3 +2,5 @@ DIST ffmpeg-chromium-125.tar.xz 10372892 BLAKE2B 53b805354b55f1dfbe2341b767aaccc DIST ffmpeg-chromium-126.tar.xz 10402160 BLAKE2B 96a92ff2a5ece8668693f5ef7ed5da3e61a523b98a91d00316494df91edfc42c1622663719a3c192de2a4ebf7a6258f08c53393201ee3fc3261f162e1b529dcd SHA512 8fc10b1d5fe159a1dd718229bf8ec50ed0bea1fedd917859b3a0703f15e94809087e67ccf2031eb14ae8b06ad32d958ed71ff54621fd667f5507abd9738a6f0c DIST ffmpeg-chromium-127.tar.xz 10418192 BLAKE2B 2a623ee8e2c0940e4067e6ebecaecdc64c45b16022327a84d77323348c210b091c58eb52b4afea1f2918cd29a27c3457a3294f561a5e6ee2db28c63f432b23bd SHA512 0cddb21761ad3b54f5393d3963ca94518cb4ab8183f2bbe975f8419bd94d8b20131750a22d75fd56b304a2b83be364993a839f727342b7eed6a2d1868f79af4c DIST ffmpeg-chromium-128.tar.xz 10420280 BLAKE2B 0b5b3ca891445042c9c1a27713b57a0d99f75fd2d57116b89afa1020dde61a1b2d3d14e0c6d639a17fd0b45359e803580100c600e6ac99eb383630512ab8402b SHA512 a420da69c49c11bf49229066f7f08d837d8bfacfa47c659b8c3e5bb28426b65749a16ce221bf2996541902f2d55750c43e75596102a6449cdf4a845cbad777dc +DIST ffmpeg-chromium-129.tar.xz 10424032 BLAKE2B dbe0b8c2d799958660b6a3ca0f1a8e68a8f5b81ef813f2837b1c66bc03a9200cc8273b6c077fec5402157701cd341ce75055d39aac7b78e5af39537285a0bb8a SHA512 c6ac36f41cc7eed353b92809a481dd783ca52eabc15a10d6a41cb241e2ad8a25cb2467b62c671f303f90b6b3bb1497a196b4488457832fb5b51a796de20ca49c +DIST ffmpeg-chromium-130.tar.xz 10420352 BLAKE2B 1b7711a3ee349d1e0d8ad8f761c8a38f78a5088dcf985d5da6423938fd93512b177d749949d4a6a3894f6b1faa4e4a0a0584067448d2ac5c886c00bbc25db89c SHA512 ee1a13634695ef5fb3e1a812420662e17449cab5e3c4e29611f9503b771ccb60c4821136160c51faeb4e18919efc3138ca8e034a27f44739a60cc3452d31572a diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild index 3186f0ec2b6a..7112d7b23cff 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-125.ebuild @@ -140,15 +140,6 @@ src_configure() { # Bug #918997. Will probably be fixed upstream in the next release. use vulkan && append-ldflags -Wl,-z,muldefs - # 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 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-126.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-126.ebuild index e4db10a00285..30123f9c2d1f 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-126.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-126.ebuild @@ -140,15 +140,6 @@ src_configure() { # Bug #918997. Will probably be fixed upstream in the next release. use vulkan && append-ldflags -Wl,-z,muldefs - # 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 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-127.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-127.ebuild index 91d93d2a4d58..f67cb20d79f3 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-127.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-127.ebuild @@ -140,15 +140,6 @@ src_configure() { # Bug #918997. Will probably be fixed upstream in the next release. use vulkan && append-ldflags -Wl,-z,muldefs - # 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 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-128.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-128.ebuild index 6b5bd6600a97..0669dac8dc36 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-128.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-128.ebuild @@ -16,7 +16,7 @@ LICENSE=" " SLOT="${PV}" -KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64" +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64" # Options to use as use_enable in the foo[:bar] form. # This will feed configure with $(use_enable foo bar) @@ -140,15 +140,6 @@ src_configure() { # Bug #918997. Will probably be fixed upstream in the next release. use vulkan && append-ldflags -Wl,-z,muldefs - # 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 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-129.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-129.ebuild new file mode 100644 index 000000000000..5c3db3e86611 --- /dev/null +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-129.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +COMMIT=14d16cd143ad1993900c276e37592956702443a9 +DESCRIPTION="FFmpeg built specifically for codec support in Chromium-based browsers" +HOMEPAGE="https://ffmpeg.org/" +SRC_URI="https://deps.gentoo.zip/media-video/${P}.tar.xz" + +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) +" +SLOT="${PV}" + +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64" + +# 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 + 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 + cpu_flags_arm_asimddp:dotprod + cpu_flags_arm_i8mm:i8mm +) +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 ) + ) +" +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=" + >=media-libs/opus-1.0.2-r2 + vaapi? ( >=media-libs/libva-1.2.1-r1:0= ) + nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) + vdpau? ( >=x11-libs/libvdpau-0.7 ) + vulkan? ( >=media-libs/vulkan-loader-1.3.277:= ) +" + +DEPEND="${RDEPEND} + vulkan? ( >=dev-util/vulkan-headers-1.3.277 ) +" +BDEPEND=" + >=dev-build/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) +" + +REQUIRED_USE=" + vulkan? ( threads ) + ${CPU_REQUIRED_USE}" +RESTRICT=" + test +" + +PATCHES=( + "${FILESDIR}"/${PN}-120.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 #918997. Will probably be fixed upstream in the next release. + use vulkan && append-ldflags -Wl,-z,muldefs + + 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 + if [[ ${ABI} != x86 ]] && tc-is-lto; then + # Respect -flto value, e.g -flto=thin + local v="$(get-flag flto)" + [[ -n ${v} ]] && myconf+=( "--enable-lto=${v}" ) || myconf+=( "--enable-lto" ) + fi + 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-libopus \ + --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/ffmpeg-chromium-130.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-130.ebuild new file mode 100644 index 000000000000..e2cbf285339c --- /dev/null +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-130.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +COMMIT=91903c28af60a732a051c343b496e1188eec9b05 +DESCRIPTION="FFmpeg built specifically for codec support in Chromium-based browsers" +HOMEPAGE="https://ffmpeg.org/" +SRC_URI="https://deps.gentoo.zip/media-video/${P}.tar.xz" + +LICENSE=" + !gpl? ( LGPL-2.1 ) + gpl? ( GPL-2 ) +" +SLOT="${PV}" + +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64" + +# 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 + 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 + cpu_flags_arm_asimddp:dotprod + cpu_flags_arm_i8mm:i8mm +) +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 ) + ) +" +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=" + >=media-libs/opus-1.0.2-r2 + vaapi? ( >=media-libs/libva-1.2.1-r1:0= ) + nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) + vdpau? ( >=x11-libs/libvdpau-0.7 ) + vulkan? ( >=media-libs/vulkan-loader-1.3.277:= ) +" + +DEPEND="${RDEPEND} + vulkan? ( >=dev-util/vulkan-headers-1.3.277 ) +" +BDEPEND=" + >=dev-build/make-3.81 + virtual/pkgconfig + cpu_flags_x86_mmx? ( || ( >=dev-lang/nasm-2.13 >=dev-lang/yasm-1.3 ) ) +" + +REQUIRED_USE=" + vulkan? ( threads ) + ${CPU_REQUIRED_USE}" +RESTRICT=" + test +" + +PATCHES=( + "${FILESDIR}"/${PN}-120.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 #918997. Will probably be fixed upstream in the next release. + use vulkan && append-ldflags -Wl,-z,muldefs + + 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 + if [[ ${ABI} != x86 ]] && tc-is-lto; then + # Respect -flto value, e.g -flto=thin + local v="$(get-flag flto)" + [[ -n ${v} ]] && myconf+=( "--enable-lto=${v}" ) || myconf+=( "--enable-lto" ) + fi + 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-libopus \ + --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/Manifest b/media-video/ffmpeg/Manifest index 745b007c9410..2c622807c410 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -1,12 +1,18 @@ DIST ffmpeg-4.4.4-texinfo.patch.xz 19136 BLAKE2B 591b46180fccdb58c5b6b102c5e12075ff4388dc6bc0ab1752531d4f9f2802c1fd09ed1353ed70a539fdc5c2298f9cfc84ec24e3a04d371ef0d9f3f30d8e8f38 SHA512 f86a324efe261801a5192d4f204f48de581466550cca49b54432fdf5430f1b3bc9a9d31b9b52e2f23481def67ad55b5ad315752c482709aa67b1f3a3e6c17a4f 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-4.4.5.tar.xz 9575596 BLAKE2B 546df09f7731d22e532a18d9ba9be184283f62b7a2e9470e745e536802bc2263a00f11ed6ab0aee8fc60c5f728826311cbf3542084ba3a64b65a61d76295cd64 SHA512 70df4e63ef507a7ec76da34438142499139769728fd5130d9cf48d56c110ec82c3d6a7e6d1622da03c70167fa861d901d016bbe52c21d2b284b8a0d9f30811dc +DIST ffmpeg-4.4.5.tar.xz.asc 520 BLAKE2B 505987208ed58b548f910299adb1324e6eba655cc37e6f03cac32c8623e16a4a884e822c745fb72b1934129a8c0a2706bb8bfb785715e6a68e43f737cb8ed365 SHA512 bcfee8986681dfbefd3add741fcbbc5e223bb06c9800797e68fde968c114055ac3fc02ce8731ed269bf30c92d6c990c7f636f82d42379920012e8a0ace8d527e DIST ffmpeg-6.0.1.tar.xz 10240172 BLAKE2B 1e21862f1f4eac04b8e9ef5597853d9e105bac4e858960c07e244ec3dbcea8f9e9fbdec4ff20b64227afad5ea5d0b05eff79a905f8002314ab4e9c37116c1908 SHA512 8a86b2db4a9abb68bb86d770ba1babb76c8b8313cfb0258ae70c88e736a93b99c342a6ecda94b739e8e7c103bed75d4afd756dd94e08c6255f424ef62c264741 DIST ffmpeg-6.0.1.tar.xz.asc 520 BLAKE2B dc7222c7c55e9af28c54dcfae4fce33fb44aa2a7e9d2ca4af85a961568b67f63116a6597234cd7ce009669b8ecf6576defd9380c389356435ffc3026b1126f03 SHA512 314f9ef996b85bc93c9fb823d582697c7415ac35f56bfc9cd906893491c8076df90bd852cf6e5e757b1fa94bd415ed108488c1220add49eb1f4854fc253c178c DIST ffmpeg-6.1.1.tar.xz 10458600 BLAKE2B 77827ff92b47c773ed82e7b7793dbb135c370fe23501169cb1eab08ff5ede77cfd5b397e8fb1d38756812cc82277898fd5c74b7d8495842556570c0c5570daeb SHA512 fca3f8635f29182e3ae0fe843a8a53614e4b47e22c11508df3ff7cdbafbb4b5ee0d82d9b3332871f7c1032033b1cad2f67557d7c5f7f7d85e2adadca122965d5 DIST ffmpeg-6.1.1.tar.xz.asc 520 BLAKE2B 801cd976d10363d1f9fc302351b330cb57e609a266407627ef378172f28974f4a18435b8a77b9cc7a8ff7b75701185211739f685629bbda961c3588c15af1221 SHA512 0e10c1f560bab0812d759d286656593dea5940f02bb52d88d9ba7f10b12b9cc3d7aa2a41c5f7a45b319069e04dce22dc1286b3c1ba685b35cd6d04cd81c5a0f5 +DIST ffmpeg-6.1.2.tar.xz 10466152 BLAKE2B ff1f2b2bb60ccc4c37b6ffda2a0e6a0be80c451dc99f6d4a99bd95a1bdc44c494d62377c53383ccfb5b818573a1971948d7db34119099dbc56d7258724831d3c SHA512 3a009184d971fc3168e1322d1d724aae787ed0e9c152d8d1813ea0b9099bda3b35c41fcabbd7b140560e7a8fa9fa1ffd7f0938432d5d498c43829fc6cc3d9e08 +DIST ffmpeg-6.1.2.tar.xz.asc 520 BLAKE2B f26a2d6f5423f93090f2a448172e49f3858aeb5a00f326207d374bbb70fa8942c7ee1a7c55338b2db664b647c983cd5ab4fd8d71efe5c37af4c90385ca17d0ab SHA512 a26dba1f4870b964080b45f8468f5ce3591eb6aa69be426bf4afbe5a60c3cbd0fe5056dc86ca7bb817c04ae30d39160cb7773772a9a2123ae7f095b18a6d7050 DIST ffmpeg-7.0.1.tar.xz 10793572 BLAKE2B 7468bb0768da56794c57b43db5fb8a1c5471f86dc7789ba342e494907b2f05fd0edbaa93159b05927a749d878c431ad8ac56cafc2434b54c5190b91ca6a6116a SHA512 94e06c4ce64ed3888620547db0e33b29c68a9e78b3ea748346f34280f69723a6d4b7485911f45f1849f9aa3036c0699334abbcf7126d2763bdaa7276673b7daa DIST ffmpeg-7.0.1.tar.xz.asc 520 BLAKE2B 3fe3bdd8da390591849ac3784bf8e68e021124715de1a8d142a42096d625df9d9a27b224258f2f0c24b20397bfea7a8035ced4202904ca12fe0eef109516dbf1 SHA512 bd787bfa6dbb147800f5f79a3fe5e4c20054d48ea9e6af4d5c84ace68c19459f4ea677f5921b084eab889ed7b9f81dc138fa2ecf9ae306ac7fb19434a68aeced +DIST ffmpeg-7.0.2.tar.xz 10795332 BLAKE2B f6536f41f784f1b49ed0728d80a522676dfe1facbeb7fec3f7796683ce28c73e41508f9a5dd1e5cd18d3ff787d562bb1e6a5085ee0660076b84a76040587e5a8 SHA512 2fc66e919db53f6b12f845c0f9b92f3d8a7ec1db1ff533d29e679a6524f32567babf2d0791da039dcf2918c4d4cbb3f99c2898d3795345f03112238af8edcbd9 +DIST ffmpeg-7.0.2.tar.xz.asc 520 BLAKE2B edaadb45588938a524b64d82f96d224c2060648c10649adeba4a3546863eea45b674ebca80e7839e92138ae0b375afd22e0b4552d4d5a68dbb021e706f965b6d SHA512 b41eeb8044754bfcf2cf67a3ed4a4e74194ee6e5f4ed5f03aa03bb68772f6bacd7a1839d8e9740573889230a71d3bc7d52b4625542f4c892e8de8c61deda2c51 DIST ffmpeg-rpi-6.1-r3.patch 800738 BLAKE2B b7e449ee5eec8b50a3b3bba233c5269f3b6845dbd18a619b844c841a97345ce24c7a5d7f4da05b08e3cb49668426b9044f3d3553d9c2ef3a50aec7199bfa3c09 SHA512 aeaf12afabf5f2192fb0b6ef47397d8477b109e49cee8c02a890d1656a27b1985c62c719ef72966d8c97b0709918233b65ea2e0ef988771507e4be137fcd9158 DIST ffmpeg-rpi-6.1-r3.patch.asc 833 BLAKE2B 31fd5823c06d5884f7b0980de9072c35bbf4e1d6c0ed20b089439325d50956127238ca29469b003dba623b888a5aae3c4d8ad177862534e77b8e51f29cbed96c SHA512 3d8943b7151e20f73e9c14b121c501847bd7e01f2cf57ff135fc8c223653ec9d433bfe4012fa564f70c0471980b66d7ec3d9b5b1b14865187187719ba110cb5f DIST ffmpeg-rpi-7.0.patch 807653 BLAKE2B 2d7d4fb55313c0ea227bf714af08fe17c118969aef972cf85bd8bf33643da08b2a224b2ea7c369a58e62fb758c0e8747c6cc6694672b889016fdb16b3d33f530 SHA512 cf65f68f6b0fa351d273c1b4fd74fca63a40cbd802bcd14124018784164fd1c6a09de3d9b0e0631eaf4c8b4fbcb846cc47a7831ad70eb0cfac6d21a51bd09941 diff --git a/media-video/ffmpeg/ffmpeg-4.4.4-r10.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r11.ebuild index e54372178894..875c7a9c72f7 100644 --- a/media-video/ffmpeg/ffmpeg-4.4.4-r10.ebuild +++ b/media-video/ffmpeg/ffmpeg-4.4.4-r11.ebuild @@ -65,7 +65,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 ~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. @@ -185,7 +185,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -404,15 +404,6 @@ src_prepare() { 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 ) @@ -617,6 +608,4 @@ multilib_src_install() { 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-4.4.4-r9.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r9.ebuild index 7eb94f61dbb6..9d18868440b4 100644 --- a/media-video/ffmpeg/ffmpeg-4.4.4-r9.ebuild +++ b/media-video/ffmpeg/ffmpeg-4.4.4-r9.ebuild @@ -65,7 +65,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 ~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. @@ -185,7 +185,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -403,15 +403,6 @@ src_prepare() { 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 ) diff --git a/media-video/ffmpeg/ffmpeg-4.4.5-r1.ebuild b/media-video/ffmpeg/ffmpeg-4.4.5-r1.ebuild new file mode 100644 index 000000000000..1786ce09a903 --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-4.4.5-r1.ebuild @@ -0,0 +1,607 @@ +# Copyright 1999-2024 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=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.xz" +else # Release + VERIFY_SIG_OPENPGP_KEY_PATH=/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 ~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. +# 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 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 fribidi:libfribidi + fontconfig glslang:libglslang ladspa libass libtesseract lv2 truetype:libfreetype + vidstab:libvidstab vmaf:libvmaf 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}] ) + glslang? ( dev-util/glslang:=[${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}] ) + 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}] ) + 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-12 ) + 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}] ) + 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}] + ) + 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+=" + >=dev-build/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 app-alternatives/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 ) + fftools_cws2fws? ( zlib ) + glslang? ( vulkan ) + libv4l? ( v4l ) + 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.0-backport-ranlib-build-fix.patch + "${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch + "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch + "${FILESDIR}"/${PN}-4.4.4-opencl-parallel-gmake-fix.patch + "${FILESDIR}"/${PN}-4.4.4-glslang.patch + "${FILESDIR}"/${PN}-4.4.4-amd-av1-vaapi.patch + "${FILESDIR}"/${PN}-4.4.5-incmptbl-pntr-types.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_unpack() { + if use verify-sig ; then + # Needed for downloaded patch (which is unsigned, which is fine) + verify-sig_verify_detached "${DISTDIR}"/${P/_/-}.tar.xz{,.asc} + fi + + default +} + +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=( ) + + 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 ) + 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 ]] && tc-is-lto && myconf+=( "--enable-lto" ) + filter-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 + *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:${BUILD_DIR}/libavresample" \ + emake V=1 fate -k +} + +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" +} diff --git a/media-video/ffmpeg/ffmpeg-6.0.1-r4.ebuild b/media-video/ffmpeg/ffmpeg-6.0.1-r4.ebuild index 5609d999e0d2..d29404297015 100644 --- a/media-video/ffmpeg/ffmpeg-6.0.1-r4.ebuild +++ b/media-video/ffmpeg/ffmpeg-6.0.1-r4.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 ~arm64-macos ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~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. @@ -185,7 +185,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -390,15 +390,6 @@ src_prepare() { 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 ) @@ -603,6 +594,4 @@ multilib_src_install() { multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" - - use amf && elog "To use AMF, prefix the ffmpeg call with the 'vk_pro' wrapper script, e.g. `vk_pro ffmpeg -vcodec h264_amf [...]`" } diff --git a/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild b/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild index 29d671d9c23a..8ca3ffa196ed 100644 --- a/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild +++ b/media-video/ffmpeg/ffmpeg-6.1.1-r5.ebuild @@ -85,7 +85,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 ~arm64-macos ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~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. @@ -427,15 +427,6 @@ multilib_src_configure() { # Conditional patch options use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) - # 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 ) diff --git a/media-video/ffmpeg/ffmpeg-6.1.1-r8.ebuild b/media-video/ffmpeg/ffmpeg-6.1.1-r8.ebuild index 2c4afcc40118..906e3e77d5e4 100644 --- a/media-video/ffmpeg/ffmpeg-6.1.1-r8.ebuild +++ b/media-video/ffmpeg/ffmpeg-6.1.1-r8.ebuild @@ -85,7 +85,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 ~arm64-macos ~x64-macos" + KEYWORDS="~alpha amd64 arm arm64 ~hppa ~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. @@ -208,7 +208,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -293,7 +293,7 @@ RDEPEND=" x11-libs/cairo[${MULTILIB_USEDEP}] ) nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) - svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + svt-av1? ( >=media-libs/svt-av1-0.9.0:=[${MULTILIB_USEDEP}] ) truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] media-libs/harfbuzz:=[${MULTILIB_USEDEP}] @@ -437,15 +437,6 @@ multilib_src_configure() { # Conditional patch options use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) - # 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 ) @@ -618,6 +609,4 @@ multilib_src_install() { multilib_src_install_all() { dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" - - use amf && elog "To use AMF, prefix the ffmpeg call with the 'vk_pro' wrapper script, e.g. `vk_pro ffmpeg -vcodec h264_amf [...]`" } diff --git a/media-video/ffmpeg/ffmpeg-6.1.2.ebuild b/media-video/ffmpeg/ffmpeg-6.1.2.ebuild new file mode 100644 index 000000000000..c913e481816f --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-6.1.2.ebuild @@ -0,0 +1,610 @@ +# Copyright 1999-2024 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 + +SOC_PATCH="ffmpeg-rpi-6.1-r3.patch" + +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/" +SRC_URI="soc? ( https://dev.gentoo.org/~chewi/distfiles/${SOC_PATCH} )" +if [ "${PV#9999}" != "${PV}" ] ; then + : +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI+=" mirror://gentoo/${P}.tar.xz" +else # Release + inherit verify-sig + + SRC_URI+=" + https://ffmpeg.org/releases/${P/_/-}.tar.xz + verify-sig? ( + https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc + soc? ( https://dev.gentoo.org/~chewi/distfiles/${SOC_PATCH}.asc ) + ) + " + + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-ffmpeg + soc? ( sec-keys/openpgp-keys-gentoo-developers ) + ) + " + + src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P/_/-}.tar.xz{,.asc} /usr/share/openpgp-keys/ffmpeg.asc + use soc && verify-sig_verify_detached "${DISTDIR}"/${SOC_PATCH}{,.asc} /usr/share/openpgp-keys/gentoo-developers.asc + fi + default + } +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 ~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 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 fontconfig frei0r + fribidi:libfribidi glslang:libglslang ladspa lcms:lcms2 libass libplacebo + libtesseract lv2 rubberband:librubberband shaderc:libshaderc truetype:libfreetype + truetype:libharfbuzz vidstab:libvidstab vmaf:libvmaf 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 soc + ${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 + cpu_flags_arm_asimddp:dotprod + cpu_flags_arm_i8mm:i8mm +) +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.5.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-2.0.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.5:=[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}] ) + glslang? ( dev-util/glslang:=[${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.1: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}] ) + 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? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/libvpl[${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}] ) + shaderc? ( media-libs/shaderc[${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + soc? ( virtual/libudev:=[${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.6.0:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) + svt-av1? ( >=media-libs/svt-av1-0.9.0:=[${MULTILIB_USEDEP}] ) + truetype? ( + >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] + media-libs/harfbuzz:=[${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.3.255:=[${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.2.1:= ) + 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 ) + vulkan? ( >=dev-util/vulkan-headers-1.3.255 ) +" + +# += for verify-sig above +BDEPEND+=" + >=dev-build/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 app-alternatives/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=" + chromium? ( opus ) + cuda? ( nvenc ) + fftools_cws2fws? ( zlib ) + glslang? ( vulkan !shaderc ) + libv4l? ( v4l ) + shaderc? ( vulkan !glslang ) + soc? ( libdrm ) + test? ( encode ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +S=${WORKDIR}/${P/_/-} + +PATCHES=( + "${FILESDIR}"/chromium-r2.patch + "${FILESDIR}"/${PN}-6.1-wint-conversion.patch + "${FILESDIR}"/${PN}-6.0-fix-lto-type-mismatch.patch + "${FILESDIR}"/${PN}-6.1-opencl-parallel-gmake-fix.patch + "${FILESDIR}"/${PN}-6.1-gcc-14.patch + "${FILESDIR}"/${PN}-6.0.1-alignment.patch + "${FILESDIR}"/${PN}-6.1.1-wint-inconversion-libgcrypt.patch + "${FILESDIR}"/${PN}-6.1.1-amd-av1-vaapi.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +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 + + use soc && + eapply "${DISTDIR}"/${SOC_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 + + ln -snf "${FILESDIR}"/chromium.c chromium.c || die + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die + + # We need to detect LTO usage before multilib stuff and filter-lto is called (bug #923491) + if tc-is-lto ; then + # Respect -flto value, e.g -flto=thin + local v="$(get-flag flto)" + [[ ${v} != -flto ]] && LTO_FLAG="--enable-lto=${v}" || LTO_FLAG="--enable-lto" + fi + filter-lto +} + +multilib_src_configure() { + local myconf=( ) + + # Conditional patch options + use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) + + 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 + if [[ ${ABI} != x86 && ! -z ${LTO_FLAG} ]]; then + myconf+=( ${LTO_FLAG} ) + fi + + # Mandatory configuration + myconf=( + --disable-libaribcaption # libaribcaption is not packaged (yet?) + --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 +} + +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 + + use chromium && + emake V=1 libffmpeg + 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 -k +} + +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 + + use chromium && + emake V=1 DESTDIR="${D}" install-libffmpeg + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" +} diff --git a/media-video/ffmpeg/ffmpeg-7.0.1.ebuild b/media-video/ffmpeg/ffmpeg-7.0.1-r1.ebuild index 797aa00fb30e..a4d91f76c9bf 100644 --- a/media-video/ffmpeg/ffmpeg-7.0.1.ebuild +++ b/media-video/ffmpeg/ffmpeg-7.0.1-r1.ebuild @@ -86,7 +86,7 @@ LICENSE=" " SLOT="0/${FFMPEG_SUBSLOT}" 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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. @@ -210,7 +210,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -299,7 +299,7 @@ RDEPEND=" x11-libs/cairo[${MULTILIB_USEDEP}] ) nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) - svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + svt-av1? ( >=media-libs/svt-av1-0.9.0:=[${MULTILIB_USEDEP}] ) truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] media-libs/harfbuzz:=[${MULTILIB_USEDEP}] @@ -434,15 +434,6 @@ multilib_src_configure() { # Conditional patch options use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) - # 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 ) @@ -618,6 +609,4 @@ multilib_src_install() { 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-7.0.2-r1.ebuild b/media-video/ffmpeg/ffmpeg-7.0.2-r1.ebuild new file mode 100644 index 000000000000..a4d91f76c9bf --- /dev/null +++ b/media-video/ffmpeg/ffmpeg-7.0.2-r1.ebuild @@ -0,0 +1,612 @@ +# Copyright 1999-2024 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 + +SOC_PATCH="ffmpeg-rpi-7.0.patch" + +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/" +SRC_URI="soc? ( https://dev.gentoo.org/~chewi/distfiles/${SOC_PATCH} )" +if [ "${PV#9999}" != "${PV}" ] ; then + : +elif [ "${PV%_p*}" != "${PV}" ] ; then # Snapshot + SRC_URI+=" mirror://gentoo/${P}.tar.xz" +else # Release + inherit verify-sig + + SRC_URI+=" + https://ffmpeg.org/releases/${P/_/-}.tar.xz + verify-sig? ( + https://ffmpeg.org/releases/${P/_/-}.tar.xz.asc + soc? ( https://dev.gentoo.org/~chewi/distfiles/${SOC_PATCH}.asc ) + ) + " + + BDEPEND=" + verify-sig? ( + sec-keys/openpgp-keys-ffmpeg + soc? ( >=sec-keys/openpgp-keys-gentoo-developers-20240708 ) + ) + " + + src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${P/_/-}.tar.xz{,.asc} /usr/share/openpgp-keys/ffmpeg.asc + use soc && verify-sig_verify_detached "${DISTDIR}"/${SOC_PATCH}{,.asc} /usr/share/openpgp-keys/gentoo-developers.asc + fi + default + } +fi +FFMPEG_REVISION="${PV#*_p}" + +S=${WORKDIR}/${P/_/-} +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 ) +" +SLOT="0/${FFMPEG_SUBSLOT}" +if [ "${PV#9999}" = "${PV}" ] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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 libdvdnav libdvdread lzma +network + opencl openssl +postproc qrcode:libqrencode quirc:libquirc + 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 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 fontconfig frei0r + fribidi:libfribidi glslang:libglslang ladspa lcms:lcms2 libass libplacebo + libtesseract lv2 rubberband:librubberband shaderc:libshaderc truetype:libfreetype + truetype:libharfbuzz vidstab:libvidstab vmaf:libvmaf 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 soc + ${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 + cpu_flags_arm_asimddp:dotprod + cpu_flags_arm_i8mm:i8mm +) +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.5.0:0=[${MULTILIB_USEDEP}] ) + encode? ( + amrenc? ( >=media-libs/vo-amrwbenc-0.1.2-r1[${MULTILIB_USEDEP}] ) + kvazaar? ( >=media-libs/kvazaar-2.0.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.5:=[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}] ) + glslang? ( dev-util/glslang:=[${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.1: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}] ) + libdvdnav? ( media-libs/libdvdnav[${MULTILIB_USEDEP}] ) + libdvdread? ( media-libs/libdvdread:=[${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}] ) + 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? ( media-libs/libglvnd[X,${MULTILIB_USEDEP}] ) + opus? ( >=media-libs/opus-1.0.2-r2[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + qsv? ( media-libs/libvpl[${MULTILIB_USEDEP}] ) + qrcode? ( media-gfx/qrencode:=[${MULTILIB_USEDEP}] ) + quirc? ( media-libs/quirc:=[${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}] ) + shaderc? ( media-libs/shaderc[${MULTILIB_USEDEP}] ) + sndio? ( media-sound/sndio:=[${MULTILIB_USEDEP}] ) + soc? ( virtual/libudev:=[${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.6.0:=[sftp,${MULTILIB_USEDEP}] ) + svg? ( + gnome-base/librsvg:2=[${MULTILIB_USEDEP}] + x11-libs/cairo[${MULTILIB_USEDEP}] + ) + nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) + svt-av1? ( >=media-libs/svt-av1-0.9.0:=[${MULTILIB_USEDEP}] ) + truetype? ( + >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] + media-libs/harfbuzz:=[${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.3.277:=[${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.2.1:= ) + 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 ) + vulkan? ( >=dev-util/vulkan-headers-1.3.277 ) +" + +# += for verify-sig above +BDEPEND+=" + >=dev-build/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 app-alternatives/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=" + chromium? ( opus ) + cuda? ( nvenc ) + fftools_cws2fws? ( zlib ) + glslang? ( vulkan !shaderc ) + libv4l? ( v4l ) + shaderc? ( vulkan !glslang ) + soc? ( libdrm ) + test? ( encode ) + vulkan? ( threads ) + ${GPL_REQUIRED_USE} + ${CPU_REQUIRED_USE}" +RESTRICT=" + !test? ( test ) + gpl? ( openssl? ( bindist ) fdk? ( bindist ) ) +" + +PATCHES=( + "${FILESDIR}"/chromium-r2.patch + "${FILESDIR}"/${PN}-6.1-opencl-parallel-gmake-fix.patch +) + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/libavutil/avconfig.h +) + +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 + + use soc && + eapply "${DISTDIR}"/${SOC_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 + + ln -snf "${FILESDIR}"/chromium.c chromium.c || die + echo 'include $(SRC_PATH)/ffbuild/libffmpeg.mak' >> Makefile || die + + # We need to detect LTO usage before multilib stuff and filter-lto is called (bug #923491) + if tc-is-lto ; then + # Respect -flto value, e.g -flto=thin + local v="$(get-flag flto)" + [[ ${v} != -flto ]] && LTO_FLAG="--enable-lto=${v}" || LTO_FLAG="--enable-lto" + fi + filter-lto +} + +multilib_src_configure() { + local myconf=( ) + + # Conditional patch options + use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) + + 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 + if [[ ${ABI} != x86 && ! -z ${LTO_FLAG} ]]; then + myconf+=( ${LTO_FLAG} ) + fi + + # Mandatory configuration + myconf=( + --disable-libaribcaption # libaribcaption is not packaged (yet?) + --disable-libxeve + --disable-libxevd + --disable-d3d12va + --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 +} + +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 + + use chromium && + emake V=1 libffmpeg + 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 -k +} + +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 + + use chromium && + emake V=1 DESTDIR="${D}" install-libffmpeg + fi +} + +multilib_src_install_all() { + dodoc Changelog README.md CREDITS doc/*.txt doc/APIchanges + [ -f "RELEASE_NOTES" ] && dodoc "RELEASE_NOTES" +} diff --git a/media-video/ffmpeg/ffmpeg-9999.ebuild b/media-video/ffmpeg/ffmpeg-9999.ebuild index 8294c24da0d7..357a04d67a61 100644 --- a/media-video/ffmpeg/ffmpeg-9999.ebuild +++ b/media-video/ffmpeg/ffmpeg-9999.ebuild @@ -86,7 +86,7 @@ LICENSE=" " SLOT="0/${FFMPEG_SUBSLOT}" 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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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. @@ -210,7 +210,7 @@ IUSE="${IUSE} ${FFTOOLS[@]/#/+fftools_}" RDEPEND=" alsa? ( >=media-libs/alsa-lib-1.0.27.2[${MULTILIB_USEDEP}] ) - amf? ( media-video/amdgpu-pro-amf:= ) + 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}] ) @@ -300,7 +300,7 @@ RDEPEND=" x11-libs/cairo[${MULTILIB_USEDEP}] ) nvenc? ( >=media-libs/nv-codec-headers-11.1.5.3 ) - svt-av1? ( >=media-libs/svt-av1-0.9.0[${MULTILIB_USEDEP}] ) + svt-av1? ( >=media-libs/svt-av1-0.9.0:=[${MULTILIB_USEDEP}] ) truetype? ( >=media-libs/freetype-2.5.0.1:2[${MULTILIB_USEDEP}] media-libs/harfbuzz:=[${MULTILIB_USEDEP}] @@ -435,15 +435,6 @@ multilib_src_configure() { # Conditional patch options use soc && myconf+=( --enable-v4l2-request --enable-libudev --enable-sand ) - # 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 ) @@ -619,6 +610,4 @@ multilib_src_install() { 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/files/amf-env-vulkan-override b/media-video/ffmpeg/files/amf-env-vulkan-override deleted file mode 100644 index 41ee27911178..000000000000 --- a/media-video/ffmpeg/files/amf-env-vulkan-override +++ /dev/null @@ -1 +0,0 @@ -VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_pro_icd64.json diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.5-incmptbl-pntr-types.patch b/media-video/ffmpeg/files/ffmpeg-4.4.5-incmptbl-pntr-types.patch new file mode 100644 index 000000000000..a47a62917a29 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-4.4.5-incmptbl-pntr-types.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/936433 + +diff --git a/libavutil/hwcontext_vaapi.c b/libavutil/hwcontext_vaapi.c +index 4b81bd1..4e7f49f 100644 +--- a/libavutil/hwcontext_vaapi.c ++++ b/libavutil/hwcontext_vaapi.c +@@ -1032,7 +1032,7 @@ static int vaapi_map_from_drm(AVHWFramesContext *src_fc, AVFrame *dst, + uint32_t va_fourcc; + int err, i, j, k; + +- unsigned long buffer_handle; ++ uintptr_t buffer_handle; + VASurfaceAttribExternalBuffers buffer_desc; + VASurfaceAttrib attrs[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 deleted file mode 100644 index a06b9119666f..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-6.0-binutils-2.41.patch +++ /dev/null @@ -1,76 +0,0 @@ -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-wint-conversion-vulkan.patch b/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch deleted file mode 100644 index 2c71a189329a..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-6.0-wint-conversion-vulkan.patch +++ /dev/null @@ -1,43 +0,0 @@ -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/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild index fe3bdd09679e..6a940ef78356 100644 --- a/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild +++ b/media-video/ffmpegthumbnailer/ffmpegthumbnailer-2.2.2-r1.ebuild @@ -11,7 +11,7 @@ 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 ~loong ppc ppc64 ~riscv sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86" IUSE="gnome gtk jpeg png test" RESTRICT="!test? ( test )" diff --git a/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild index 9046f8687f34..5149615fad73 100644 --- a/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild +++ b/media-video/gnome-video-effects/gnome-video-effects-0.5.0-r1.ebuild @@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Projects/GnomeVideoEffects" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~ppc ~ppc64 ~riscv ~sparc x86" DEPEND="" RDEPEND="" diff --git a/media-video/handbrake/handbrake-1.6.1.ebuild b/media-video/handbrake/handbrake-1.6.1.ebuild index 427b5614f5b4..2fbb8d88ba6b 100644 --- a/media-video/handbrake/handbrake-1.6.1.ebuild +++ b/media-video/handbrake/handbrake-1.6.1.ebuild @@ -43,7 +43,7 @@ RDEPEND=" >=media-libs/libvpx-1.12.0:= media-libs/opus >=media-libs/speex-1.2.1 - >=media-libs/svt-av1-1.4.1 + >=media-libs/svt-av1-1.4.1:= >=media-libs/x264-0.0.20220222:= >=media-libs/zimg-3.0.4 media-sound/lame diff --git a/media-video/handbrake/handbrake-9999.ebuild b/media-video/handbrake/handbrake-9999.ebuild index 0201e9e8dd27..d12123f0bf5e 100644 --- a/media-video/handbrake/handbrake-9999.ebuild +++ b/media-video/handbrake/handbrake-9999.ebuild @@ -43,7 +43,7 @@ RDEPEND=" >=media-libs/libvpx-1.12.0:= media-libs/opus >=media-libs/speex-1.2.1 - >=media-libs/svt-av1-1.4.1 + >=media-libs/svt-av1-1.4.1:= >=media-libs/x264-0.0.20220222:= >=media-libs/zimg-3.0.4 media-sound/lame diff --git a/media-video/hevc-hm/hevc-hm-17.0.ebuild b/media-video/hevc-hm/hevc-hm-17.0.ebuild index db7b1b83085a..958e4a2525ca 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="~alpha amd64 arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" S="${WORKDIR}/HM-HM-${PV}" diff --git a/media-video/imagination/Manifest b/media-video/imagination/Manifest index f62bd64e44c3..f48464c853f6 100644 --- a/media-video/imagination/Manifest +++ b/media-video/imagination/Manifest @@ -1,2 +1 @@ -DIST imagination-3.0.tar.gz 3327784 BLAKE2B 0322a68ab6c44e2b0d47bb89de6522249ca3507808ee3733f2f195923c4269591c2225271ef27b24c648cb6784a5c85bd6ca97142072e52641bdf7f80b9a9bc7 SHA512 0780ab572d8f4fc1e728befef79f974169438d723f67205e677c06cbe0dac06745868936e7d3eab5fc42728902f6b06eb5f9d7e836532c289df005ddab2104b8 DIST imagination-3.6.tar.gz 3553509 BLAKE2B 39b345b073b123e68ab6a025b03ca23a38191cb2d2f5163d8b7722a8891d254f9fc7b54461c7d741ba6d2e7b25cb2029d9eec55e5115a5b8504dd85985c740aa SHA512 673651cf59baded805ba3993c6f9dff83f20ae9174d5f5e07b99d9d590eb817e6733cbc130a3d32502a84fa29bd78c4f1dd093c01aaedfef5f9425a59125865d diff --git a/media-video/imagination/files/imagination-3.0-cflags.patch b/media-video/imagination/files/imagination-3.0-cflags.patch deleted file mode 100644 index 1b38a9aeff71..000000000000 --- a/media-video/imagination/files/imagination-3.0-cflags.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/configure.in b/configure.in -index 0be7802..d19c8ec 100644 ---- a/configure.in -+++ b/configure.in -@@ -24,7 +24,7 @@ - AM_PROG_LIBTOOL - LIBTOOL="$LIBTOOL --silent" - --pkg_modules="gtk+-2.0 >= 2.14.0 gthread-2.0" -+pkg_modules="gtk+-2.0 >= 2.14.0 gthread-2.0 gmodule-2.0" - PKG_CHECK_MODULES(PACKAGE, [$pkg_modules]) - - sox_modules="sox >= 14.2.0" -@@ -33,6 +33,11 @@ - plugins_modules="cairo >= 1.6 glib-2.0 > 2.18.0" - PKG_CHECK_MODULES(PLUGINS, [$plugins_modules]) - -+dnl Check for libm for sqrtf() -+AC_SEARCH_LIBS([sqrtf], [m], [], [ -+ AC_MSG_ERROR([unable to find the sqrtf() function]) -+]) -+ - # get svn revision - REVISION="r0" - if test "x${REVISION}" = "xr0" -@@ -46,7 +51,7 @@ - if test "x${REVISION}" != "xr0" - then - # force debug mode for a SVN working copy -- CFLAGS="-g -Wall" -+ CFLAGS +="-Wall" - else - REVISION="-1" - fi diff --git a/media-video/imagination/files/imagination-3.0-enable-translations.patch b/media-video/imagination/files/imagination-3.0-enable-translations.patch deleted file mode 100644 index d829129d8c77..000000000000 --- a/media-video/imagination/files/imagination-3.0-enable-translations.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/support.h -+++ b/src/support.h -@@ -20,7 +20,7 @@ - #ifndef __IMAGINATION_SUPPORT_H - #define __IMAGINATION_SUPPORT_H - --#define PLUGINS_INSTALLED 0 -+#define PLUGINS_INSTALLED 1 - - #ifdef HAVE_CONFIG_H - # include <config.h> diff --git a/media-video/imagination/imagination-3.0-r2.ebuild b/media-video/imagination/imagination-3.0-r2.ebuild deleted file mode 100644 index ccbedf7474e0..000000000000 --- a/media-video/imagination/imagination-3.0-r2.ebuild +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools desktop - -DESCRIPTION="Simple DVD slideshow maker" -HOMEPAGE="https://imagination.sourceforge.net/" -SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -DEPEND=" - media-sound/sox:= - x11-libs/cairo:= - x11-libs/gtk+:2" -RDEPEND="${DEPEND} - media-video/ffmpeg" - -PATCHES=( - "${FILESDIR}"/${P}-cflags.patch - "${FILESDIR}"/${P}-enable-translations.patch - "${FILESDIR}"/${P}-fix-htmldir.patch -) - -src_prepare() { - default - mv configure.{in,ac} || die - eautoreconf -} - -src_install() { - default - doicon icons/48x48/${PN}.png - - # only plugins - find "${D}" -name '*.la' -delete || die -} diff --git a/media-video/jellyfin-media-player/Manifest b/media-video/jellyfin-media-player/Manifest index a67f2b616569..1f37a26d2c55 100644 --- a/media-video/jellyfin-media-player/Manifest +++ b/media-video/jellyfin-media-player/Manifest @@ -1,3 +1,4 @@ +DIST jellyfin-media-player-1.11.1.tar.gz 514141 BLAKE2B 00984b9241613a94ab0c27f21c4202ca064ff42cba8ba3d01b7bda20af53e80aa4ce14df9a8e906574d94fb3146a68cc84bc61e2be94d4e16ce087c97494de5b SHA512 24616c36e92e168655f6c37ef214ad7aa46df1cb331e1bff225b83b83da18fa91fb66d13145744c20cf49d2b92132cff065f6e8429bc111fd1be1a3d68a9c8ec 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 diff --git a/media-video/jellyfin-media-player/jellyfin-media-player-1.11.1.ebuild b/media-video/jellyfin-media-player/jellyfin-media-player-1.11.1.ebuild new file mode 100644 index 000000000000..f2716ede9ed4 --- /dev/null +++ b/media-video/jellyfin-media-player/jellyfin-media-player-1.11.1.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +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} + !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/kaffeine/Manifest b/media-video/kaffeine/Manifest index 2a7daee2655a..c15a50861660 100644 --- a/media-video/kaffeine/Manifest +++ b/media-video/kaffeine/Manifest @@ -1,4 +1,3 @@ DIST kaffeine-2.0.18-patchset.tar.xz 29600 BLAKE2B b7e4fa7c367ded01ddbdc258d2b6cac904fefe44b34668e64f7c4d9d2933abe42aeaee64c4889cee050d131ac6aac8bb58b6685523d0e6bdb019430fdd2a269d SHA512 66d9a2f1820fd284b601245c6b7d5eac927e8e1c22e86ef2d84177c0e3f23f2bf6dacfe51f6512dfcaed3d7c59aad522ee9e3555ec2940179fe6b2b3a4fb7f98 DIST kaffeine-2.0.18-r3-scantable.dvb 1980400 BLAKE2B dcc43fcd04cc155ae99e35a32de15f9823007f68041a4b3fc6fce143d2b66e3c209d945a24e9aea968b195b782d8ffb5d21533cba21fb48ffedb77d82f28d5f2 SHA512 de93c5dbecdb7549b03a1809891a33ee216a1592a140fcce81649e4355ac9e51898ca6a2d7b0d302e3e92191800fbd50033902a06fc6672ca3590eb4d7be2f98 -DIST kaffeine-2.0.18-scantable.dvb 1880456 BLAKE2B e435309f0a11cb6ecb9671c0948c6afdf4c946bc0914c0809945002e353383bb539e1c5594a0a52f2968393623c56914b360b37e5b24a0c17a8f3a60b100ad6a SHA512 2d00987eb261e6f52df490dd44b43567f7d4e3bdcfd0eb2f62e064604d91661e9754cf9e5462b491009fcb35bdca681f4be2a9f06b6b6d47a5b44f5819dbf4fe DIST kaffeine-2.0.18.tar.xz 6033112 BLAKE2B c9a0fbd58f7ee4ed8ad44cbed59d95cde7df8ba9c2f5f341df74e6a771293756434e38adb7706baf224a684b56453601099fcac9bf27fd7ec935073a0c30ec19 SHA512 60854251f25e7de94928686f647e6e0f07ca40188e8dfd8140985f1dfbb53bb4d92ff42c29e216431500839d7eb83b81f386bac3a8a86dd8c986a611ec0db3a4 diff --git a/media-video/kaffeine/files/kaffeine-2.0.18-wayland-window-activation.patch b/media-video/kaffeine/files/kaffeine-2.0.18-wayland-window-activation.patch deleted file mode 100644 index 2c4cc7a6f862..000000000000 --- a/media-video/kaffeine/files/kaffeine-2.0.18-wayland-window-activation.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 389c812c3afffc5184492039a80bee24a8104815 Mon Sep 17 00:00:00 2001 -From: Nicolas Fella <nicolas.fella@gmx.de> -Date: Sun, 15 May 2022 18:38:07 +0200 -Subject: [PATCH] Fix activating existing window - -Also raise window when no arguments were passed - -Use KWindowSystem API that also works on Wayland ---- - src/main.cpp | 11 +++++++---- - 1 file changed, 7 insertions(+), 4 deletions(-) - -diff --git a/src/main.cpp b/src/main.cpp -index 68677fd..b5a07dc 100644 ---- a/src/main.cpp -+++ b/src/main.cpp -@@ -178,12 +178,11 @@ KaffeineApplication::KaffeineApplication(int &argc, char **argv) : QApplication( - void KaffeineApplication::activateRequested(const QStringList &arguments, - const QString &workingDirectory) - { -- if (arguments.isEmpty()) -- return; -- - parser.parse(arguments); -+ -+ KWindowSystem::updateStartupId(mainWindow->windowHandle()); -+ KWindowSystem::activateWindow(mainWindow->windowHandle()); -- KStartupInfo::setNewStartupId(mainWindow, KStartupInfo::startupId()); - KWindowSystem::forceActiveWindow(mainWindow->winId()); - mainWindow->parseArgs(workingDirectory); - } - --- -GitLab - diff --git a/media-video/kaffeine/kaffeine-2.0.18-r2.ebuild b/media-video/kaffeine/kaffeine-2.0.18-r2.ebuild deleted file mode 100644 index f988700d6e1d..000000000000 --- a/media-video/kaffeine/kaffeine-2.0.18-r2.ebuild +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_HANDBOOK="optional" -KFMIN=5.92.0 -QTMIN=5.15.5 -inherit ecm kde.org - -if [[ ${KDE_BUILD_TYPE} == release ]]; then - SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz - https://linuxtv.org/downloads/dtv-scan-tables/${PN}/scantable.dvb -> ${P}-scantable.dvb" - KEYWORDS="amd64 x86" -fi - -DESCRIPTION="Media player with digital TV support by KDE" -HOMEPAGE="https://apps.kde.org/kaffeine/ https://userbase.kde.org/Kaffeine" - -LICENSE="GPL-2+ handbook? ( FDL-1.3 )" -SLOT="5" -IUSE="dvb" - -DEPEND=" - >=dev-qt/qtdbus-${QTMIN}:5 - >=dev-qt/qtgui-${QTMIN}:5 - >=dev-qt/qtnetwork-${QTMIN}:5 - >=dev-qt/qtsql-${QTMIN}:5[sqlite] - >=dev-qt/qtwidgets-${QTMIN}:5 - >=dev-qt/qtx11extras-${QTMIN}:5 - >=dev-qt/qtxml-${QTMIN}:5 - >=kde-frameworks/kconfig-${KFMIN}:5 - >=kde-frameworks/kconfigwidgets-${KFMIN}:5 - >=kde-frameworks/kcoreaddons-${KFMIN}:5 - >=kde-frameworks/kdbusaddons-${KFMIN}:5 - >=kde-frameworks/ki18n-${KFMIN}:5 - >=kde-frameworks/kio-${KFMIN}:5 - >=kde-frameworks/kwidgetsaddons-${KFMIN}:5 - >=kde-frameworks/kwindowsystem-${KFMIN}:5 - >=kde-frameworks/kxmlgui-${KFMIN}:5 - >=kde-frameworks/solid-${KFMIN}:5 - media-video/vlc[X] - x11-libs/libXScrnSaver - dvb? ( media-libs/libv4l[dvb] ) -" -RDEPEND="${DEPEND}" -BDEPEND=" - sys-devel/gettext - virtual/pkgconfig -" - -DOCS=( Changelog NOTES README.md ) - -PATCHES=( "${FILESDIR}/${P}-wayland-window-activation.patch" ) - -src_prepare() { - ecm_src_prepare - cp -av "${DISTDIR}"/kaffeine-2.0.18-scantable.dvb src/scantable.dvb || die -} - -src_configure() { - # tools working on $HOME directory for a local git checkout - local mycmakeargs=( - -DBUILD_TOOLS=OFF - $(cmake_use_find_package dvb Libdvbv5) - ) - - ecm_src_configure -} diff --git a/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild b/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild index bb6e662ce6a2..c49400b0d90f 100644 --- a/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild +++ b/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild @@ -14,7 +14,7 @@ if [[ ${KDE_BUILD_TYPE} == release ]]; then SRC_URI="mirror://kde/stable/${PN}/${P}.tar.xz https://linuxtv.org/downloads/dtv-scan-tables/${PN}/scantable.dvb -> ${SCANTABLE}" SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="amd64 x86" fi DESCRIPTION="Media player with digital TV support by KDE" diff --git a/media-video/libva-utils/libva-utils-2.22.0.ebuild b/media-video/libva-utils/libva-utils-2.22.0.ebuild index 60f57e6e4c4a..4de57531c234 100644 --- a/media-video/libva-utils/libva-utils-2.22.0.ebuild +++ b/media-video/libva-utils/libva-utils-2.22.0.ebuild @@ -12,7 +12,7 @@ if [[ ${PV} = *9999 ]] ; then EGIT_REPO_URI="https://github.com/intel/libva-utils" else SRC_URI="https://github.com/intel/libva-utils/archive/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" + KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86 ~amd64-linux ~x86-linux" fi LICENSE="MIT" diff --git a/media-video/lsdvd/lsdvd-0.17.ebuild b/media-video/lsdvd/lsdvd-0.17.ebuild index 8e7ad78a3d30..1f6f3484592a 100644 --- a/media-video/lsdvd/lsdvd-0.17.ebuild +++ b/media-video/lsdvd/lsdvd-0.17.ebuild @@ -11,7 +11,7 @@ SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" +KEYWORDS="~alpha amd64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" RDEPEND="media-libs/libdvdread:0=" DEPEND="${RDEPEND}" diff --git a/media-video/makemkv/Manifest b/media-video/makemkv/Manifest index a81343186078..fa550f132047 100644 --- a/media-video/makemkv/Manifest +++ b/media-video/makemkv/Manifest @@ -1,2 +1,4 @@ DIST makemkv-bin-1.17.7.tar.gz 16420879 BLAKE2B adc54191fd445832b9c4805400746e42d1b3261d076299b5e34beb1f13d80bf7bcbd113699f3d28fce5e21bb8f810a40927924b3d9c7250467d1979b1bf4f72b SHA512 2c93dd6e63c5e59415ad8a9a1370f7a1eddda2b643fa4dcde6383abb6065b84a77b03b977bf2ade50bc2d3560bb245ad2e1e79bab21629f7fc5816598738a5d9 +DIST makemkv-bin-1.17.8.tar.gz 17859805 BLAKE2B 0ddbcd50a44a98c118420485c7c8e48a1c03290ac840b22ab8119d5cd6db0743e746ca9cbdd7fd714f49a2a37420645c820477c5c7d7b189763b5a46de342e9d SHA512 033c51a818ccf6537f9709d6d19ce81d89edded7dfa1c24fb080c4c7caf6ae267e18722b39ee27e70752f18d502c819c8c582fc53fbc153013713046ef756c01 DIST makemkv-oss-1.17.7.tar.gz 6618248 BLAKE2B 18652db1d72ea7287e7e38706afc589e6fe8fb1fbf9d4e24770b9a2bfe670a464b2c21b7c543b23d3c6234f40048358d944b123897c4f569beb31faac8ef3eb7 SHA512 e21bc293133d7f999b3ea4258f01f0b88c5a58610da0185d8f74b724d61578211d35d5d44fae1610887e98f3ff36b2f0df33068d8647ad8983020be49adde037 +DIST makemkv-oss-1.17.8.tar.gz 6627058 BLAKE2B 76ffcf0a67c2ee6b05820006ff7926accef7939374b328d709dbbf6c746f010e273f89748a2a3386679b83f2af0b4f3e41f31e8acaf29cdbaeffccaf25b57500 SHA512 4c8d462933138a614afdf4fe5a896400e92299f9ed1882596dd28168c65a654b51ed89c4b0571d60255c2709c0f1dc8b108d4e7d3bbb84842813a661b28f504b diff --git a/media-video/makemkv/makemkv-1.17.8.ebuild b/media-video/makemkv/makemkv-1.17.8.ebuild new file mode 100644 index 000000000000..c8dd8c6309b2 --- /dev/null +++ b/media-video/makemkv/makemkv-1.17.8.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2024 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" +S="${WORKDIR}/${MY_P}" +LICENSE="GPL-2 LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~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" + +PATCHES=( + "${FILESDIR}"/${PN}-path.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=armhf ;; + 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/mjpegtools/mjpegtools-2.2.1-r2.ebuild b/media-video/mjpegtools/mjpegtools-2.2.1-r2.ebuild index b6700e97964f..150ce709ca1b 100644 --- a/media-video/mjpegtools/mjpegtools-2.2.1-r2.ebuild +++ b/media-video/mjpegtools/mjpegtools-2.2.1-r2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://downloads.sourceforge.net/project/mjpeg/mjpegtools/${PV}/${P}.t LICENSE="GPL-2" # Compare with version in SONAME on major bumps (e.g. 2.1 -> 2.2) SLOT="1/2.2" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86" IUSE="cpu_flags_x86_mmx dv gtk png quicktime sdl sdlgfx static-libs" REQUIRED_USE="sdlgfx? ( sdl )" diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest index 27593459ae9f..6f92e2e55130 100644 --- a/media-video/mkvtoolnix/Manifest +++ b/media-video/mkvtoolnix/Manifest @@ -1,6 +1,6 @@ -DIST mkvtoolnix-81.0.tar.xz 11067288 BLAKE2B 64bf3cd1872e3b67c6932ed29527e1dff2f913d257464cdca2d54a62bd2154a820d86bce857f55345aba1bcd5701872dbddcb5a029845d0079159358cb154fb0 SHA512 d23f6d1819437ba77576852141256698997e49066158903e1cea4086b9c05302d6661780e911fc258c028a84f2ac95140f6ba15d2ffd11c23cb92e422febf7c7 -DIST mkvtoolnix-81.0.tar.xz.sig 833 BLAKE2B 37e63e92628d3dcb6e9c9129e09dbef1d1d4e80515a05a9a5684d5d542ef54b024e76f1fac50b242e32172ef24493123b6103ae79fa411eefea7704cd63070d5 SHA512 3975c0b217318fdd9eeed23694c0e25536c694fa6cef63560b48ed79db7827be41cbe9a2cd8d8c1d2555beb436a5191a5ad21f0e5e73f93f2ca1c09be13826cb DIST mkvtoolnix-83.0.tar.xz 11278152 BLAKE2B f57b398c747d90021f2a13e58df23655e898a0bb68ad7f050f7a3fe0018866570fb81780f2d68a8c9ed06b66882578b5a9144c3be1bb9b79bc5f79e13f06bde5 SHA512 e70236249f9f72c4ffeab8222c03cdf373a25643f1b106a1abb695184152be8bb22e3fb5dc67b48e6193d9ac37d0b9b2ea317a31214b92648ac75a82c99f9b5d DIST mkvtoolnix-83.0.tar.xz.sig 833 BLAKE2B 3eddaa4941d84937a7b771bea66be52979437abb54cd178eb6d24b30628db3ee0ad72f23bea7419a7bc13cfd4f84d6d004b46ad63bad0eeeef8fd05f37bcaf4f SHA512 6d3ac46a40139fff67da61c77a802df243764d8c26c55e3b951d407fd3147bcf985f8a62c21b18c12fabe0afdc535a3449a6bfff3f15a5779b2aed1f94fe0ab7 DIST mkvtoolnix-84.0.tar.xz 11325260 BLAKE2B 147878e796c3ce9b3dc03e026eaeb45c21946d0a80ff76d090a8a11a22e1e02fddfe158192df264c5a006ad9007a73d68ddd5c79f0ccd1d103e827e4d0123974 SHA512 3a73bb2497a227fd2e0a65d58e72bf479662828a7b4201b37b7bfdd7f88d294a6690aee024661d8b5615036f64a4ce1c2ba64d7b24ebd352f8f5ce3ffdac543a DIST mkvtoolnix-84.0.tar.xz.sig 833 BLAKE2B 903530d5968d9409a9b0fe1f236c254386a33ce1224b36d4e6f33d603851eec2ed27aac2923d59a3f2e729a48bd7724d8b697cbdff5213bec338417f1632ef29 SHA512 2338a226e0df776e1b3c78f93793900e62c391fd7fd4e56c317840f3d00fccc20d6ede3118ad47266b6772459d1959a221f2e475a4b96bd9c2d58caab3dae184 +DIST mkvtoolnix-86.0.tar.xz 11369476 BLAKE2B a18ed1534f693f98924bc5c4bb1d3acedd154dacede17691a88b1d1a14c99d5ba4bc5483060d67624e682058e8af1a91ea0f77b095f35af340dea84a441dedc1 SHA512 ca1009439d662f32c75ee915f89ed1ccf1475f84782a5da977521e1ab1a558400d844d689ba37d3e5bcc2cb0ec70d3fac5db5594d0088668dd0ba3ac759819c6 +DIST mkvtoolnix-86.0.tar.xz.sig 833 BLAKE2B d53e8f8198f5ce5faec0b6c991ecf64a43f42395182aa7ead970f17e56b01c986392922b052cc2ac5e380983b937345838a96cde84e575d72bfcff2dd3084b09 SHA512 19901f9f61e108b8c4db0dab833e0998ab2bdc227130fe6d1aea6b9f495e66aa796bd4d3f70f14dadc906226884f03aaca90e710233e58fb604f66b28fb4abee diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-fix-qtmultimedia.patch b/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-fix-qtmultimedia.patch deleted file mode 100644 index d31731a266f8..000000000000 --- a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-fix-qtmultimedia.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 246f824a6a0d2bc93ec4ad2ebfde7c92b42c879a Mon Sep 17 00:00:00 2001 -From: Alfred Wingate <parona@protonmail.com> -Date: Tue, 21 Nov 2023 01:10:23 +0200 -Subject: [PATCH] Fix detection of QtDBus and QtMultimedia - -* Sometimes you may have qtdbus and qtmultimedia present at the same - time. - -Signed-off-by: Alfred Wingate <parona@protonmail.com> ---- a/ac/qt6.m4 -+++ b/ac/qt6.m4 -@@ -95,10 +95,12 @@ EOT - - if test $result2 != 0; then - continue -- elif test $qt_module = dbus; then -+ fi -+ if test $qt_module = dbus; then - qmake_qt_ui="$qmake_qt_ui dbus" - AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present]) -- elif test $qt_module = multimedia; then -+ fi -+ if test $qt_module = multimedia; then - qmake_qt_ui="$qmake_qt_ui multimedia" - fi - done --- -2.43.0 - diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch b/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch deleted file mode 100644 index 203721aedcff..000000000000 --- a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 196e704d9bd44a5bb7655d8a85b6f270b2165b3c Mon Sep 17 00:00:00 2001 -From: Alfred Wingate <parona@protonmail.com> -Date: Mon, 20 Nov 2023 23:41:06 +0200 -Subject: [PATCH] Only check for uic in qt5 if gui is enabled - -We should only check for UIC (provided by qtwidgets) if we're building the GUI. - -Qt (just qtcore) itself is *always* needed to build mkvtoolnix (it's used -for e.g. MIME type detection since 59.0.0), but the rest of Qt -(like qtwidgets) is only needed for the GUI build. - -The build system incorrectly unconditionally checks for UIC. We fix it here -to only check for it when doing a GUI build. - -https://bugs.gentoo.org/844097 - -Signed-off-by: Alfred Wingate <parona@protonmail.com> ---- a/ac/qt5.m4 -+++ b/ac/qt5.m4 -@@ -63,7 +63,7 @@ check_qt5() { - AC_MSG_RESULT(no: could not find the rcc executable) - return - -- elif test x"$UIC" = x; then -+ elif test x"$UIC" = x && test x"$enable_gui" = xyes; then - AC_MSG_CHECKING(for Qt 5) - AC_MSG_RESULT(no: could not find the uic executable) - return --- -2.43.0 - diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-optional-qtdbus.patch b/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-optional-qtdbus.patch deleted file mode 100644 index deb8d59fa6c4..000000000000 --- a/media-video/mkvtoolnix/files/mkvtoolnix-80.0.0-optional-qtdbus.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 998cd9baa8edbbc0a02509728c7ff21ddaaaad51 Mon Sep 17 00:00:00 2001 -From: Alfred Wingate <parona@protonmail.com> -Date: Mon, 20 Nov 2023 23:18:56 +0200 -Subject: [PATCH] Add an option for qtdbus support - -Signed-off-by: Alfred Wingate <parona@protonmail.com> ---- a/ac/qt5.m4 -+++ b/ac/qt5.m4 -@@ -103,11 +103,13 @@ check_qt5() { - return - fi - -- if test x"$MINGW" != x1 && ! echo "$host" | grep -q -i apple ; then -- PKG_CHECK_EXISTS([Qt5DBus],[dbus_found=yes],[dbus_found=no]) -- if test x"$dbus_found" = xyes; then -- with_qt_pkg_config_modules="$with_qt_pkg_config_modules,Qt5DBus" -- AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present]) -+ if test x"$enable_dbus" = xyes; then -+ if test x"$MINGW" != x1 && ! echo "$host" | grep -q -i apple ; then -+ PKG_CHECK_EXISTS([Qt5DBus],[dbus_found=yes],[dbus_found=no]) -+ if test x"$dbus_found" = xyes; then -+ with_qt_pkg_config_modules="$with_qt_pkg_config_modules,Qt5DBus" -+ AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present]) -+ fi - fi - fi - -@@ -254,6 +256,11 @@ AC_ARG_WITH([qt_pkg_config_modules], - AC_ARG_WITH([qt_pkg_config], - AS_HELP_STRING([--without-qt-pkg-config],[do not use pkg-config for detecting Qt 5; instead rely on QT_CFLAGS/QT_LIBS being set correctly already]), - [ with_qt_pkg_config=${withval} ], [ with_qt_pkg_config=yes ]) -+AC_ARG_ENABLE([dbus], -+ AC_HELP_STRING([--enable-dbus],[enable/disable qtdbus/dbus from being included in build (yes)]), -+ [],[enable_dbus=yes]) -+ -+ - - have_qt5=no - ---- a/ac/qt6.m4 -+++ b/ac/qt6.m4 -@@ -96,9 +96,12 @@ EOT - if test $result2 != 0; then - continue - fi -- if test $qt_module = dbus; then -- qmake_qt_ui="$qmake_qt_ui dbus" -- AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present]) -+ if test x"$enable_dbus" = xyes; then -+ PKG_CHECK_EXISTS([Qt6DBus],[dbus_found=yes],[dbus_found=no]) -+ if test x"$dbus_found" = xyes; then -+ qmake_qt_ui="$qmake_qt_ui dbus" -+ AC_DEFINE(HAVE_QTDBUS, 1, [Define if QtDBus is present]) -+ fi - fi - if test $qt_module = multimedia; then - qmake_qt_ui="$qmake_qt_ui multimedia" -@@ -272,6 +275,9 @@ AC_ARG_ENABLE([gui], - AC_ARG_ENABLE([qt6], - AS_HELP_STRING([--enable-qt6],[compile with Qt 6 (yes)]), - [],[enable_qt6=yes]) -+AC_ARG_ENABLE([dbus], -+ AC_HELP_STRING([--enable-dbus],[enable/disable qtdbus/dbus from being included in build (yes)]), -+ [],[enable_dbus=yes]) - - have_qt6=no - --- -2.43.0 - diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-86.0-libfmt-11-fix.patch b/media-video/mkvtoolnix/files/mkvtoolnix-86.0-libfmt-11-fix.patch new file mode 100644 index 000000000000..3b4b1b9fca52 --- /dev/null +++ b/media-video/mkvtoolnix/files/mkvtoolnix-86.0-libfmt-11-fix.patch @@ -0,0 +1,25 @@ +https://gitlab.com/mbunkus/mkvtoolnix/-/merge_requests/2259 +https://gitlab.com/mbunkus/mkvtoolnix/-/commit/b57dde69dc80b151844e0762a2ae6bca3ba86d95 + +From b57dde69dc80b151844e0762a2ae6bca3ba86d95 Mon Sep 17 00:00:00 2001 +From: Kefu Chai <tchaikov@gmail.com> +Date: Mon, 15 Jul 2024 11:10:09 +0800 +Subject: [PATCH] fix build with fmt v11 + +fmt::join() was moved into fmt/ranges.h since fmt 11, so let's +include this header for using it. + +Signed-off-by: Kefu Chai <tchaikov@gmail.com> +--- a/src/common/common.h ++++ b/src/common/common.h +@@ -35,6 +35,7 @@ + + #include <fmt/format.h> + #include <fmt/ostream.h> ++#include <fmt/ranges.h> + + #include <boost/algorithm/string.hpp> + #include <boost/multiprecision/cpp_int.hpp> +-- +GitLab + diff --git a/media-video/mkvtoolnix/mkvtoolnix-81.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-86.0.ebuild index 077c325ecc46..b44d36acb42f 100644 --- a/media-video/mkvtoolnix/mkvtoolnix-81.0.ebuild +++ b/media-video/mkvtoolnix/mkvtoolnix-86.0.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit autotools flag-o-matic multiprocessing qmake-utils xdg +inherit autotools flag-o-matic multiprocessing prefix qmake-utils xdg if [[ ${PV} == *9999 ]] ; then inherit git-r3 @@ -17,7 +17,7 @@ else https://mkvtoolnix.download/sources/${P}.tar.xz verify-sig? ( https://mkvtoolnix.download/sources/${P}.tar.xz.sig ) " - KEYWORDS="amd64 ppc ppc64 x86" + KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/mkvtoolnix.asc" fi @@ -27,43 +27,30 @@ HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix" LICENSE="GPL-2" SLOT="0" -IUSE="dbus debug dvd gui nls qt6 pch test" +IUSE="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=" - app-text/cmark:0= dev-libs/boost:= dev-libs/gmp:= - >=dev-libs/libebml-1.4.4:= + >=dev-libs/libebml-1.4.5:= >=dev-libs/libfmt-8.0.1:= >=dev-libs/pugixml-1.11 + >=dev-qt/qtbase-6.2:6[dbus] media-libs/flac:= >=media-libs/libmatroska-1.7.1:= media-libs/libogg media-libs/libvorbis sys-libs/zlib dvd? ( media-libs/libdvdread:= ) - !qt6? ( - dev-qt/qtcore:5 - dbus? ( dev-qt/qtdbus: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 - ) - ) - qt6? ( - dev-qt/qtbase:6[dbus?] - gui? ( - dev-qt/qtbase:6[concurrent,gui,network,widgets] - dev-qt/qtmultimedia:6 - dev-qt/qtsvg:6 - ) + gui? ( + app-text/cmark:0= + >=dev-qt/qtbase-6.2:6[concurrent,gui,network,widgets] + >=dev-qt/qtmultimedia-6.2:6 + >=dev-qt/qtsvg-6.2:6 + media-libs/libglvnd ) " DEPEND="${RDEPEND} @@ -87,9 +74,7 @@ if [[ ${PV} != *9999 ]] ; then fi PATCHES=( - "${FILESDIR}"/mkvtoolnix-80.0.0-no-uic-qtwidgets.patch - "${FILESDIR}"/mkvtoolnix-80.0.0-fix-qtmultimedia.patch - "${FILESDIR}"/mkvtoolnix-80.0.0-optional-qtdbus.patch + "${FILESDIR}"/mkvtoolnix-86.0-libfmt-11-fix.patch ) src_prepare() { @@ -102,6 +87,9 @@ src_prepare() { # bug #692018 sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die + # bug #928463 + hprefixify "${S}/ac/ax_docbook.m4" + eautoreconf # remove bundled libs @@ -115,7 +103,6 @@ src_configure() { local myeconfargs=( $(use_enable debug) $(usex pch "" --disable-precompiled-headers) - $(use_enable dbus) $(use_enable gui) $(use_with dvd dvdread) $(use_with nls gettext) @@ -124,24 +111,12 @@ src_configure() { --disable-optimization --with-boost="${ESYSROOT}"/usr --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir) - ) - # 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. - if use qt6; then - myeconfargs+=( - --enable-qt6 - --disable-qt5 - --with-qmake6="$(qt6_get_bindir)"/qmake - ) - else - myeconfargs+=( - --disable-qt6 - --enable-qt5 - --with-qmake="$(qt5_get_bindir)"/qmake - ) - fi + # 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. + --with-qmake6="$(qt6_get_bindir)"/qmake + ) # Work around bug #904710. use nls || export ac_cv_path_PO4A= diff --git a/media-video/motion/motion-4.5.1-r3.ebuild b/media-video/motion/motion-4.5.1-r3.ebuild index b145c2763090..4147689f41f8 100644 --- a/media-video/motion/motion-4.5.1-r3.ebuild +++ b/media-video/motion/motion-4.5.1-r3.ebuild @@ -12,7 +12,7 @@ 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 ~ppc ~ppc64 ~sparc x86" IUSE="ffmpeg mariadb mmal mysql postgres sqlite v4l webp" RDEPEND=" diff --git a/media-video/motion/motion-4.5.1-r4.ebuild b/media-video/motion/motion-4.5.1-r4.ebuild index 691023faf1fd..6c898913fac2 100644 --- a/media-video/motion/motion-4.5.1-r4.ebuild +++ b/media-video/motion/motion-4.5.1-r4.ebuild @@ -12,7 +12,7 @@ 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 ~ppc ~ppc64 ~sparc ~x86" IUSE="ffmpeg mariadb mysql postgres sqlite v4l webp" RDEPEND=" diff --git a/media-video/mplayer/mplayer-1.5_p20230215.ebuild b/media-video/mplayer/mplayer-1.5_p20230215.ebuild index ae49ee100092..73222bdf8321 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 ppc ppc64 ~riscv ~sparc x86" fi # faac codecs are nonfree diff --git a/media-video/mplayer/mplayer-1.5_p20230618.ebuild b/media-video/mplayer/mplayer-1.5_p20230618.ebuild index 60e8cf3cc9e3..7d5a5877ad06 100644 --- a/media-video/mplayer/mplayer-1.5_p20230618.ebuild +++ b/media-video/mplayer/mplayer-1.5_p20230618.ebuild @@ -169,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 ppc ppc64 ~riscv ~sparc x86" fi # faac codecs are nonfree diff --git a/media-video/mplayer/mplayer-1.5_p20231206.ebuild b/media-video/mplayer/mplayer-1.5_p20231206.ebuild index 54ab8bf0f878..2fcc4c0f3ffe 100644 --- a/media-video/mplayer/mplayer-1.5_p20231206.ebuild +++ b/media-video/mplayer/mplayer-1.5_p20231206.ebuild @@ -169,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 ~ppc ~ppc64 ~riscv ~sparc ~x86" fi # faac codecs are nonfree diff --git a/media-video/mplayer/mplayer-9999.ebuild b/media-video/mplayer/mplayer-9999.ebuild index b7e9b5420e81..2257a9dbf343 100644 --- a/media-video/mplayer/mplayer-9999.ebuild +++ b/media-video/mplayer/mplayer-9999.ebuild @@ -169,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 ~ppc ~ppc64 ~riscv ~sparc ~x86" fi # faac codecs are nonfree diff --git a/media-video/mpv/Manifest b/media-video/mpv/Manifest index bf9c05f949be..b36b129e6d2c 100644 --- a/media-video/mpv/Manifest +++ b/media-video/mpv/Manifest @@ -1 +1,2 @@ DIST mpv-0.38.0.tar.gz 3419741 BLAKE2B 3ff59d30bc305394f58a1fff4f24540aa3be9412bc3cad27bec0c3478f4b7c13190e26847f38edc52996bb9f9a36dd6832c6fccebd6d873058acf78a320e42e4 SHA512 b5b2af59039ef4711814f94bbdfedb37f8ce914301670e42d4ed05fe1900025a3d3a2f3d5e69628a8aad115a647a27c386718959e2df1a18740468b3a84f8975 +DIST mpv-0.39.0.tar.gz 3494313 BLAKE2B 9f96ba225eb0587d50f8c439359b18f752b98024ab6b40f987be4d57b0ce4b595243f49177ffc48840b351ce19fddc84788b5784b508eb685e58fdfb8e1e0520 SHA512 9cf1d7487b1e9e36d2b731bf951c4d3b9deba95109af408ccfc71b88e85f6de2558e7b4950781667bb4d40e0352742e3ed278559ff34d07905dd459969cbf503 diff --git a/media-video/mpv/mpv-0.39.0.ebuild b/media-video/mpv/mpv-0.39.0.ebuild new file mode 100644 index 000000000000..31b23432e18e --- /dev/null +++ b/media-video/mpv/mpv-0.39.0.ebuild @@ -0,0 +1,277 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-1 luajit ) +PYTHON_COMPAT=( python3_{10..13} ) +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" +fi + +DESCRIPTION="Media player for the command line" +HOMEPAGE="https://mpv.io/" + +LICENSE="LGPL-2.1+ GPL-2+ BSD ISC MIT" #506946 +SLOT="0/2" # soname +IUSE=" + +X +alsa aqua archive bluray cdda +cli coreaudio debug +drm dvb + dvd +egl gamepad +iconv jack javascript jpeg lcms libcaca +libmpv + +lua nvenc openal opengl pipewire pulseaudio rubberband sdl selinux + sixel sndio soc test tools +uchardet vaapi vdpau vulkan wayland xv + zimg zlib +" +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + || ( cli libmpv ) + egl? ( || ( X drm wayland ) ) + lua? ( ${LUA_REQUIRED_USE} ) + nvenc? ( || ( egl opengl vulkan ) ) + opengl? ( || ( X aqua ) ) + test? ( cli ) + tools? ( cli ) + uchardet? ( iconv ) + vaapi? ( || ( X drm wayland ) ) + vdpau? ( X ) + vulkan? ( || ( X wayland ) ) + xv? ( X ) +" +RESTRICT="!test? ( test )" + +COMMON_DEPEND=" + media-libs/libass:=[fontconfig] + >=media-libs/libplacebo-6.338.2:=[opengl?,vulkan?] + >=media-video/ffmpeg-6.1:=[encode,soc(-)?,threads,vaapi?,vdpau?] + X? ( + x11-libs/libX11 + x11-libs/libXScrnSaver + x11-libs/libXext + x11-libs/libXpresent + x11-libs/libXrandr + xv? ( x11-libs/libXv ) + ) + alsa? ( media-libs/alsa-lib ) + archive? ( app-arch/libarchive:= ) + bluray? ( media-libs/libbluray:= ) + cdda? ( + dev-libs/libcdio-paranoia:= + dev-libs/libcdio:= + ) + drm? ( + x11-libs/libdrm + egl? ( media-libs/mesa[gbm(+)] ) + ) + dvd? ( + media-libs/libdvdnav + media-libs/libdvdread:= + ) + egl? ( + media-libs/libglvnd + media-libs/libplacebo[opengl] + ) + gamepad? ( media-libs/libsdl2[joystick] ) + iconv? ( + virtual/libiconv + uchardet? ( app-i18n/uchardet ) + ) + jack? ( virtual/jack ) + javascript? ( dev-lang/mujs:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + lcms? ( media-libs/lcms:2 ) + libcaca? ( media-libs/libcaca ) + lua? ( ${LUA_DEPS} ) + openal? ( media-libs/openal ) + opengl? ( media-libs/libglvnd[X?] ) + pipewire? ( media-video/pipewire:= ) + pulseaudio? ( media-libs/libpulse ) + rubberband? ( media-libs/rubberband ) + sdl? ( media-libs/libsdl2[sound,threads(+),video] ) + sixel? ( media-libs/libsixel ) + sndio? ( media-sound/sndio:= ) + vaapi? ( media-libs/libva:=[X?,drm(+)?,wayland?] ) + vdpau? ( x11-libs/libvdpau ) + vulkan? ( media-libs/vulkan-loader[X?,wayland?] ) + wayland? ( + dev-libs/wayland + dev-libs/wayland-protocols + x11-libs/libxkbcommon + ) + zimg? ( media-libs/zimg ) + zlib? ( sys-libs/zlib:= ) +" +RDEPEND=" + ${COMMON_DEPEND} + selinux? ( sec-policy/selinux-mplayer ) + tools? ( ${PYTHON_DEPS} ) +" +DEPEND=" + ${COMMON_DEPEND} + X? ( x11-base/xorg-proto ) + dvb? ( sys-kernel/linux-headers ) + nvenc? ( media-libs/nv-codec-headers ) + vulkan? ( dev-util/vulkan-headers ) + wayland? ( dev-libs/wayland-protocols ) +" +BDEPEND=" + ${PYTHON_DEPS} + virtual/pkgconfig + cli? ( dev-python/docutils ) + wayland? ( dev-util/wayland-scanner ) +" + +pkg_setup() { + use lua && lua-single_pkg_setup + python-single-r1_pkg_setup +} + +src_configure() { + if use !debug; then + if use test; then + einfo "Skipping -DNDEBUG due to USE=test" + else + append-cppflags -DNDEBUG # treated specially + fi + fi + + mpv_feature_multi() { + local use set + for use in ${1} ${2}; do + use ${use} || set=disabled + done + echo -D${3-${2}}=${set-enabled} + } + + local emesonargs=( + $(meson_use cli cplayer) + $(meson_use libmpv) + $(meson_use test tests) + + $(meson_feature cli html-build) + $(meson_feature cli manpage-build) + -Dpdf-build=disabled + + -Dbuild-date=false + + # misc options + $(meson_feature archive libarchive) + $(meson_feature bluray libbluray) + $(meson_feature cdda) + -Dcplugins=enabled + $(meson_feature dvb dvbin) + $(meson_feature dvd dvdnav) + $(meson_feature gamepad sdl2-gamepad) + $(meson_feature iconv) + $(meson_feature javascript) + -Dlibavdevice=enabled + $(meson_feature lcms lcms2) + -Dlua=$(usex lua "${ELUA}" disabled) + $(meson_feature rubberband) + -Dsdl2=$(use gamepad || use sdl && echo enabled || echo disabled) #857156 + $(meson_feature uchardet) + -Dvapoursynth=disabled # only available in overlays + $(meson_feature zimg) + $(meson_feature zlib) + + # audio output + $(meson_feature alsa) + $(meson_feature coreaudio) + $(meson_feature jack) + $(meson_feature openal) + $(meson_feature pipewire) + $(meson_feature pulseaudio pulse) + $(meson_feature sdl sdl2-audio) + $(meson_feature sndio) + + # video output + $(meson_feature X x11) + $(meson_feature aqua cocoa) + $(meson_feature drm) + $(meson_feature jpeg) + $(meson_feature libcaca caca) + $(meson_feature sdl sdl2-video) + $(meson_feature sixel) + $(meson_feature wayland) + $(meson_feature xv) + + -Dgl=$(use egl || use libmpv || use opengl && + 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) + $(mpv_feature_multi opengl X gl-x11) + $(mpv_feature_multi opengl aqua gl-cocoa) + + $(meson_feature vulkan) + + # hardware decoding + $(meson_feature nvenc cuda-hwaccel) + $(meson_feature nvenc cuda-interop) + + $(meson_feature vaapi) + $(mpv_feature_multi vaapi X vaapi-x11) + $(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="vulkan" + >=ffmpeg-6.1 + # TODO?: perhaps few more similar compound options should be left auto + ) + + meson_src_configure +} + +src_test() { + # ffmpeg tests are picky and easily break without necessarily + # meaning that there are runtime issues (bug #921091,#924276) + meson_src_test --no-suite ffmpeg +} + +src_install() { + meson_src_install + + if use lua; then + insinto /usr/share/${PN} + doins -r TOOLS/lua + + if use cli && use lua_single_target_luajit; then + pax-mark -m "${ED}"/usr/bin/${PN} + fi + fi + + if use tools; then + dobin TOOLS/{mpv_identify.sh,umpv} + newbin TOOLS/idet.sh mpv_idet.sh + python_fix_shebang "${ED}"/usr/bin/umpv + fi + + if use cli; then + dodir /usr/share/doc/${PF}/html + mv "${ED}"/usr/share/doc/{mpv,${PF}/html}/mpv.html || die + mv "${ED}"/usr/share/doc/{mpv,${PF}/examples} || die + fi + + local GLOBIGNORE=*/*build*:*/*policy* + dodoc RELEASE_NOTES DOCS/*.{md,rst} +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "various websites URL support$(usev !lua \ + " (requires ${PN} with USE=lua)")" net-misc/yt-dlp +} diff --git a/media-video/mpv/mpv-9999.ebuild b/media-video/mpv/mpv-9999.ebuild index 31b23432e18e..2ddeff6f6a3a 100644 --- a/media-video/mpv/mpv-9999.ebuild +++ b/media-video/mpv/mpv-9999.ebuild @@ -46,7 +46,7 @@ RESTRICT="!test? ( test )" COMMON_DEPEND=" media-libs/libass:=[fontconfig] - >=media-libs/libplacebo-6.338.2:=[opengl?,vulkan?] + >=media-libs/libplacebo-7.349.0:=[opengl?,vulkan?] >=media-video/ffmpeg-6.1:=[encode,soc(-)?,threads,vaapi?,vdpau?] X? ( x11-libs/libX11 diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest index 9f311bc29cbd..7fe20340b6f5 100644 --- a/media-video/obs-studio/Manifest +++ b/media-video/obs-studio/Manifest @@ -1,10 +1,4 @@ DIST cef_binary_5060_linux_x86_64_v3.tar.xz 91352460 BLAKE2B 443f4b1bc638d3fe462fd8b8dd167e96f65aebb2b8de3616beac298449e2786c746f9a1fa4a0dbe2e3ef2d593139938e97538890d3ca3b74018b3afb9c7fc661 SHA512 1fbdf1d4ed117f3b8af20476c57502145d652b451ba8e0a544081403d292cc7a78642e9071b8f0283a19ef7ad507ef6e0d9df32b00afc51605ab74f650a7d755 -DIST obs-browser-2a2879b5a69f4a99cd7459d8595af46cdb23115c.tar.gz 112519 BLAKE2B 94b0e46d83865ff5b85ffa07c082a561ad14205512502976e555555449441a0f701d14445b97b2084d2e10bc9289dd51e28fcf7057cb4584e6ef025bfde93062 SHA512 5ad219dacf50a4187ff79ee8d5d3e2bcc978b6dd91396669e76c56af2af26424c74151b15d9185a87c06aeb694a0a2f5d80e66a6c18c60ce843009c6f97e9b3a -DIST obs-browser-996b5a7bc43d912f1f4992e0032d4f263ac8b060.tar.gz 112416 BLAKE2B c82b5b55184130caaca0aad066ce1253c28206522e8d130cb3b940ee283c8a2dffc409a5d4774cad17535f958f52f4fe632a6b4462a18c10a4b5bbe02b60b4e9 SHA512 f6f7dbeb1d28b6c47663f36cb119cbc90a18c46fc6e81ca6db87e901ae4cee1fafd4a4a8c3f8cae94619d2f8f92baf1c52ca5c7df182f3df7521397638b0660d -DIST obs-browser-c81851a1d7696c2d7ba319122eec387c1568ad44.tar.gz 112521 BLAKE2B 184d398941e8055c89f9a80664ce0b3a900fc0df75c5f45c30e3c80e7645c23052ab4ff6816169136c7d9ae4da7754ab0a64bc075a7ee9036effa64860c88f21 SHA512 78e09171d173ff756ce60f6ac1da201cc87ac317b3f5839632813a177b7eb126a376e8d194eb2b6d64a7cf0d1292640d6c216cfd4e82f71f54b44e8a85e86c49 -DIST obs-studio-30.1.2.tar.gz 16023853 BLAKE2B 8886b7c07240e5f83a37f046c0a68aad6432cfc7056959caa25c33dd9a830de44f27c821809116000f82939e1684222c1f8343bc83b362f0f3f3338923bbf196 SHA512 8d6102f3431c1c6c530f22b09612cb955c1877e5aba07aa0ba1d7b014471ebf9f0c1f8e898eb9373c64417455e75d8b9cf2ae4d9010b6a09330bac9f4e5aa01e -DIST obs-studio-30.2.0.tar.gz 16122672 BLAKE2B 7c91c1a3691035fb3503ac25a22bad416de506488cb9bf2f4567b6048f40f4bd93ca17a92e92c535c9ead6e70b7610200b335d203978b47feee7e642310d86d2 SHA512 546374e0efbe9f23ecc2580d9d118e930afd576471b8931baa00cd4fbafe6bcba5f3a4b15769338860472aad616ccd2bd952bdef416acd85e637bbefd8c9d581 -DIST obs-studio-30.2.1.tar.gz 16150144 BLAKE2B 4e50f90af43ba785619bb90a793bbfe63e5d914d046c4da109883a3f21f98f9a55efd6600374046623e87f47733167236a2390b0ba90d4e9c7c310e24a4d5792 SHA512 d8bbe71305d3aac3d64db1d3c9bee0a849bffcad4ba1019c9028d69511a4c2ed341b878a3fd5818abda707fcecb2bc90c3f35a453d84317c782d24c299a15a13 +DIST obs-browser-c710222ec9d7ef9aa5d7099e9019d636e2c89f00.tar.gz 112527 BLAKE2B abfdd7cff3ec4479cc78d1f85a404ac48c2ebee1ba679a48e4e7abeb685ee08faa00059bda1cee2d5abf16b69ad0aa843898f612b3ee9d46f0950bd546aa6e44 SHA512 1ec2f48ce986c0d44cddf4332c8b58b8eb1fcb6a662504dd7ec580f9eb45b2a570542424d4c31ed6f96060746f21082661d43bf50b94469b4ef0c1f0b9190f7c +DIST obs-studio-30.2.3.tar.gz 16150339 BLAKE2B b3ed65060881a731bd2e48d8b490cde4a0cf2886bfbdfb2f09536b4aae15c8230c6f6fc20eed3943b88c194b46509dca702d7e955b5b148b5f3577db410f0889 SHA512 1fea762b8fb4d5401516d9e547fe20db389633fb1abbdb52e4b9559ab6aaf3b9f4c25e055896b4063c6a693bfeb78e6463486b4c66e3994a6d1ceb0b7f65865f DIST obs-websocket-0548c7798a323fe5296c150e13b898a5ee62fc1e.tar.gz 250611 BLAKE2B fefeab4a637528138152d6e1bd374d6e3f08e4a4e20698665adf4dd925e7831df5bdb1068e402def71b6e12e239db823dac2944e6549c00e914abca175d16fc0 SHA512 f24f520c4a08ad2b80d97c5dfba14421fcd48661d3b0fb694af5d11e063c711e7bf49a4baa95d9de8aff07b6fbbd4b4681ce10a4074506d98cf25c793cc2844d -DIST obs-websocket-d2d4bfb3e78cf2b02c8e2f5dda1d805eda8d8f32.tar.gz 246888 BLAKE2B 6e06c85ee47cb088a50b9d5eae9a8d68441989c1f76fdcd7806d59597062af5eb36e1722600b1a8d544e5f11533985b9bac243f7ca1002eed616e2f5c11a9a3f SHA512 31d5e1817aab341e55cbc5c759f28509f442695afb90d08a235c07359a65d2c2d3dfae2bf9c8a5086db310bb127dc59945ebe23fb219fda7408ee82d05b43938 -DIST obs-websocket-f8bc7c4f593c7957ecdb45a24faaff3e95f24e8b.tar.gz 250582 BLAKE2B 13a93a00b8f7d3cc775641243ffb14b98490b2190386663a05621376dc9f70838005768039c236083e8767e1951378341a242df2fefdd74b7172090a4526a0d0 SHA512 38e02f346042d6c71bab6f0dc3c706953b996d0c8a92a3c0922b04955ea0152857005f924c5a0fccfaa64a6fef5b0dd597bce658c152be38081d1dc02ed2be19 diff --git a/media-video/obs-studio/files/json11-1.0.0-include-cstdint.patch b/media-video/obs-studio/files/json11-1.0.0-include-cstdint.patch new file mode 100644 index 000000000000..29648cf15825 --- /dev/null +++ b/media-video/obs-studio/files/json11-1.0.0-include-cstdint.patch @@ -0,0 +1,12 @@ +diff --git a/json11.cpp b/json11.cpp +index 9647846..8266a14 100644 +--- a/json11.cpp ++++ b/json11.cpp +@@ -22,6 +22,7 @@ + #include "json11.hpp" + #include <cassert> + #include <cmath> ++#include <cstdint> + #include <cstdlib> + #include <cstdio> + #include <limits> diff --git a/media-video/obs-studio/metadata.xml b/media-video/obs-studio/metadata.xml index 2e6e1d188e06..be051ff610c3 100644 --- a/media-video/obs-studio/metadata.xml +++ b/media-video/obs-studio/metadata.xml @@ -19,8 +19,9 @@ <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="sndio">Build with sndio 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="test-input">Build and install input sources used for testing.</flag> <flag name="vlc">Build with VLC media source support.</flag> <flag name="websocket">Build with WebSocket API support.</flag> </use> diff --git a/media-video/obs-studio/obs-studio-30.1.2.ebuild b/media-video/obs-studio/obs-studio-30.1.2.ebuild deleted file mode 100644 index 6ddcf823b797..000000000000 --- a/media-video/obs-studio/obs-studio-30.1.2.ebuild +++ /dev/null @@ -1,270 +0,0 @@ -# Copyright 1999-2024 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..12} ) - -inherit cmake flag-o-matic lua-single optfeature python-single-r1 xdg - -CEF_DIR="cef_binary_5060_linux_x86_64" -CEF_REVISION="_v3" -OBS_BROWSER_COMMIT="996b5a7bc43d912f1f4992e0032d4f263ac8b060" -OBS_WEBSOCKET_COMMIT="d2d4bfb3e78cf2b02c8e2f5dda1d805eda8d8f32" - -DESCRIPTION="Software for Recording and Streaming Live Video Content" -HOMEPAGE="https://obsproject.com" - -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 - ) -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/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz - " - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" -fi - -SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}${CEF_REVISION}.tar.xz )" - -LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" -SLOT="0" -IUSE=" - +alsa browser decklink fdk jack lua mpegts nvenc pipewire pulseaudio - python qsv speex +ssl test truetype v4l vlc wayland websocket -" -RESTRICT="!test? ( test )" -REQUIRED_USE=" - browser? ( || ( alsa pulseaudio ) ) - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -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[X] - media-libs/libva - media-libs/rnnoise - media-libs/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/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 - 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} ) - mpegts? ( - net-libs/librist - net-libs/srt - ) - pipewire? ( media-video/pipewire:= ) - pulseaudio? ( media-libs/libpulse ) - python? ( ${PYTHON_DEPS} ) - qsv? ( media-libs/libvpl ) - speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) - test? ( dev-util/cmocka ) - truetype? ( - media-libs/fontconfig - media-libs/freetype - ) - v4l? ( - media-libs/libv4l - virtual/udev - ) - vlc? ( media-video/vlc:= ) - wayland? ( - dev-libs/wayland - x11-libs/libxkbcommon - ) - websocket? ( - dev-cpp/asio - dev-cpp/nlohmann_json - dev-cpp/websocketpp - dev-libs/qr-code-generator - ) -" -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 - fi -} - -src_prepare() { - default - - sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die - - # -Werror=lto-type-mismatch - # https://bugs.gentoo.org/867250 - # https://github.com/obsproject/obs-studio/issues/8988 - use wayland && filter-lto - - 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) - -DENABLE_DECKLINK=$(usex decklink) - -DENABLE_FREETYPE=$(usex truetype) - -DENABLE_JACK=$(usex jack) - -DENABLE_LIBFDK=$(usex fdk) - -DENABLE_NEW_MPEGTS_OUTPUT=$(usex mpegts) - -DENABLE_PIPEWIRE=$(usex pipewire) - -DENABLE_PULSEAUDIO=$(usex pulseaudio) - -DENABLE_QSV11=$(usex qsv) - -DENABLE_RNNOISE=ON - -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861 - -DENABLE_SPEEXDSP=$(usex speex) - -DENABLE_UNIT_TESTS=$(usex test) - -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} - -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 "VA-API hardware encoding" media-video/ffmpeg[vaapi] - optfeature "virtual camera support" media-video/v4l2loopback -} diff --git a/media-video/obs-studio/obs-studio-30.2.0-r1.ebuild b/media-video/obs-studio/obs-studio-30.2.0-r1.ebuild deleted file mode 100644 index c2bb6f445487..000000000000 --- a/media-video/obs-studio/obs-studio-30.2.0-r1.ebuild +++ /dev/null @@ -1,271 +0,0 @@ -# Copyright 1999-2024 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..12} ) - -inherit cmake flag-o-matic lua-single optfeature python-single-r1 xdg - -CEF_DIR="cef_binary_5060_linux_x86_64" -CEF_REVISION="_v3" -OBS_BROWSER_COMMIT="c81851a1d7696c2d7ba319122eec387c1568ad44" -OBS_WEBSOCKET_COMMIT="f8bc7c4f593c7957ecdb45a24faaff3e95f24e8b" - -DESCRIPTION="Software for Recording and Streaming Live Video Content" -HOMEPAGE="https://obsproject.com" - -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 - ) -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/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz - " - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" -fi - -SRC_URI+=" browser? ( https://cdn-fastly.obsproject.com/downloads/${CEF_DIR}${CEF_REVISION}.tar.xz )" - -LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" -SLOT="0" -IUSE=" - +alsa browser decklink fdk jack lua mpegts nvenc pipewire pulseaudio - python qsv speex +ssl test truetype v4l vlc wayland websocket -" -RESTRICT="!test? ( test )" -REQUIRED_USE=" - browser? ( || ( alsa pulseaudio ) ) - lua? ( ${LUA_REQUIRED_USE} ) - python? ( ${PYTHON_REQUIRED_USE} ) -" - -BDEPEND=" - lua? ( dev-lang/swig ) - python? ( dev-lang/swig ) -" -# media-video/ffmpeg[opus] required due to bug 909566 -DEPEND=" - dev-cpp/nlohmann_json - dev-libs/glib:2 - dev-libs/jansson:= - dev-libs/uthash - dev-qt/qtbase:6[network,widgets,xml(+)] - dev-qt/qtsvg:6 - media-libs/libglvnd[X] - media-libs/libva - media-libs/rnnoise - media-libs/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/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-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} ) - mpegts? ( - net-libs/librist - net-libs/srt - ) - pipewire? ( media-video/pipewire:= ) - pulseaudio? ( media-libs/libpulse ) - python? ( ${PYTHON_DEPS} ) - qsv? ( media-libs/libvpl ) - speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) - test? ( dev-util/cmocka ) - truetype? ( - media-libs/fontconfig - media-libs/freetype - ) - v4l? ( - media-libs/libv4l - virtual/udev - ) - vlc? ( media-video/vlc:= ) - wayland? ( - dev-libs/wayland - x11-libs/libxkbcommon - ) - websocket? ( - dev-cpp/asio - dev-cpp/websocketpp - dev-libs/qr-code-generator - ) -" -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 - fi -} - -src_prepare() { - default - - sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die - - # -Werror=lto-type-mismatch - # https://bugs.gentoo.org/867250 - # https://github.com/obsproject/obs-studio/issues/8988 - use wayland && filter-lto - - 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) - -DENABLE_DECKLINK=$(usex decklink) - -DENABLE_FREETYPE=$(usex truetype) - -DENABLE_JACK=$(usex jack) - -DENABLE_LIBFDK=$(usex fdk) - -DENABLE_NATIVE_NVENC=$(usex nvenc) - -DENABLE_NEW_MPEGTS_OUTPUT=$(usex mpegts) - -DENABLE_PIPEWIRE=$(usex pipewire) - -DENABLE_PULSEAUDIO=$(usex pulseaudio) - -DENABLE_QSV11=$(usex qsv) - -DENABLE_RNNOISE=ON - -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861 - -DENABLE_SPEEXDSP=$(usex speex) - -DENABLE_UNIT_TESTS=$(usex test) - -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} - -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 "VA-API hardware encoding" media-video/ffmpeg[vaapi] - optfeature "virtual camera support" media-video/v4l2loopback -} diff --git a/media-video/obs-studio/obs-studio-30.2.1.ebuild b/media-video/obs-studio/obs-studio-30.2.3.ebuild index d5800bb8e299..043f43465d42 100644 --- a/media-video/obs-studio/obs-studio-30.2.1.ebuild +++ b/media-video/obs-studio/obs-studio-30.2.3.ebuild @@ -11,7 +11,7 @@ inherit cmake flag-o-matic lua-single optfeature python-single-r1 xdg CEF_DIR="cef_binary_5060_linux_x86_64" CEF_REVISION="_v3" -OBS_BROWSER_COMMIT="2a2879b5a69f4a99cd7459d8595af46cdb23115c" +OBS_BROWSER_COMMIT="c710222ec9d7ef9aa5d7099e9019d636e2c89f00" OBS_WEBSOCKET_COMMIT="0548c7798a323fe5296c150e13b898a5ee62fc1e" DESCRIPTION="Software for Recording and Streaming Live Video Content" @@ -111,6 +111,7 @@ DEPEND=" net-libs/librist net-libs/srt ) + nvenc? ( >=media-libs/nv-codec-headers-12 ) pipewire? ( media-video/pipewire:= ) pulseaudio? ( media-libs/libpulse ) python? ( ${PYTHON_DEPS} ) @@ -137,7 +138,9 @@ DEPEND=" dev-libs/qr-code-generator ) " -RDEPEND="${DEPEND}" +RDEPEND="${DEPEND} + qsv? ( media-libs/intel-mediasdk ) +" QA_PREBUILT=" usr/lib*/obs-plugins/chrome-sandbox @@ -180,6 +183,10 @@ src_prepare() { use wayland && filter-lto cmake_src_prepare + + pushd deps/json11 &> /dev/null || die + eapply "${FILESDIR}/json11-1.0.0-include-cstdint.patch" + popd &> /dev/null || die } src_configure() { @@ -195,7 +202,7 @@ src_configure() { -DENABLE_FREETYPE=$(usex truetype) -DENABLE_JACK=$(usex jack) -DENABLE_LIBFDK=$(usex fdk) - -DENABLE_NATIVE_NVENC=$(usex nvenc) + -DENABLE_NATIVE_NVENC=OFF -DENABLE_NEW_MPEGTS_OUTPUT=$(usex mpegts) -DENABLE_PIPEWIRE=$(usex pipewire) -DENABLE_PULSEAUDIO=$(usex pulseaudio) diff --git a/media-video/obs-studio/obs-studio-9999.ebuild b/media-video/obs-studio/obs-studio-9999.ebuild index d5800bb8e299..78f140d81c76 100644 --- a/media-video/obs-studio/obs-studio-9999.ebuild +++ b/media-video/obs-studio/obs-studio-9999.ebuild @@ -5,13 +5,13 @@ EAPI=8 CMAKE_REMOVE_MODULES_LIST=( FindFreetype ) LUA_COMPAT=( luajit ) -PYTHON_COMPAT=( python3_{9..12} ) +PYTHON_COMPAT=( python3_{10..13} ) inherit cmake flag-o-matic lua-single optfeature python-single-r1 xdg CEF_DIR="cef_binary_5060_linux_x86_64" CEF_REVISION="_v3" -OBS_BROWSER_COMMIT="2a2879b5a69f4a99cd7459d8595af46cdb23115c" +OBS_BROWSER_COMMIT="be9f1b646406d2250b402581b043f1558042d7f0" OBS_WEBSOCKET_COMMIT="0548c7798a323fe5296c150e13b898a5ee62fc1e" DESCRIPTION="Software for Recording and Streaming Live Video Content" @@ -26,9 +26,12 @@ if [[ ${PV} == 9999 ]]; then ) 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/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz + 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/obsproject/obs-websocket/archive/${OBS_WEBSOCKET_COMMIT}.tar.gz + -> obs-websocket-${OBS_WEBSOCKET_COMMIT}.tar.gz " KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" fi @@ -39,9 +42,8 @@ LICENSE="Boost-1.0 GPL-2+ MIT Unlicense" SLOT="0" IUSE=" +alsa browser decklink fdk jack lua mpegts nvenc pipewire pulseaudio - python qsv speex +ssl test truetype v4l vlc wayland websocket + python qsv sndio speex test-input truetype v4l vlc wayland websocket " -RESTRICT="!test? ( test )" REQUIRED_USE=" browser? ( || ( alsa pulseaudio ) ) lua? ( ${LUA_REQUIRED_USE} ) @@ -66,6 +68,7 @@ DEPEND=" media-libs/x264:= media-video/ffmpeg:=[nvenc?,opus,x264] net-misc/curl + net-libs/mbedtls:= sys-apps/dbus sys-apps/pciutils sys-apps/util-linux @@ -111,13 +114,13 @@ DEPEND=" net-libs/librist net-libs/srt ) + nvenc? ( >=media-libs/nv-codec-headers-12 ) pipewire? ( media-video/pipewire:= ) pulseaudio? ( media-libs/libpulse ) python? ( ${PYTHON_DEPS} ) qsv? ( media-libs/libvpl ) + sndio? ( media-sound/sndio ) speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) - test? ( dev-util/cmocka ) truetype? ( media-libs/fontconfig media-libs/freetype @@ -137,7 +140,9 @@ DEPEND=" dev-libs/qr-code-generator ) " -RDEPEND="${DEPEND}" +RDEPEND="${DEPEND} + qsv? ( media-libs/intel-mediasdk ) +" QA_PREBUILT=" usr/lib*/obs-plugins/chrome-sandbox @@ -172,46 +177,46 @@ src_unpack() { src_prepare() { default - sed -i '/-Werror$/d' "${WORKDIR}"/${P}/cmake/Modules/CompilerConfig.cmake || die - # -Werror=lto-type-mismatch # https://bugs.gentoo.org/867250 # https://github.com/obsproject/obs-studio/issues/8988 use wayland && filter-lto cmake_src_prepare + + pushd deps/json11 &> /dev/null || die + eapply "${FILESDIR}/json11-1.0.0-include-cstdint.patch" + popd &> /dev/null || die } 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) + -DENABLE_CCACHE=OFF -DENABLE_DECKLINK=$(usex decklink) + -DENABLE_FFMPEG_NVENC=$(usex nvenc) -DENABLE_FREETYPE=$(usex truetype) -DENABLE_JACK=$(usex jack) -DENABLE_LIBFDK=$(usex fdk) - -DENABLE_NATIVE_NVENC=$(usex nvenc) -DENABLE_NEW_MPEGTS_OUTPUT=$(usex mpegts) + -DENABLE_NVENC=$(usex nvenc) -DENABLE_PIPEWIRE=$(usex pipewire) -DENABLE_PULSEAUDIO=$(usex pulseaudio) -DENABLE_QSV11=$(usex qsv) -DENABLE_RNNOISE=ON - -DENABLE_RTMPS=$(usex ssl ON OFF) # Needed for bug 880861 + -DENABLE_SNDIO=$(usex sndio) -DENABLE_SPEEXDSP=$(usex speex) - -DENABLE_UNIT_TESTS=$(usex test) + -DENABLE_TEST_INPUT=$(usex test-input) -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} - -DUNIX_STRUCTURE=1 ) if [[ ${PV} != 9999 ]]; then @@ -230,7 +235,7 @@ src_configure() { mycmakeargs+=( -DENABLE_SCRIPTING=OFF ) fi - if use browser && use ssl; then + if use browser; then mycmakeargs+=( -DENABLE_WHATSNEW=ON ) else mycmakeargs+=( -DENABLE_WHATSNEW=OFF ) diff --git a/media-video/parole/parole-4.18.1.ebuild b/media-video/parole/parole-4.18.1.ebuild index 22957f3ae0b8..8e2685ebdb8e 100644 --- a/media-video/parole/parole-4.18.1.ebuild +++ b/media-video/parole/parole-4.18.1.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 arm arm64 ~ia64 ~loong ~mips ~ppc ppc64 ~riscv x86" +KEYWORDS="amd64 arm arm64 ~loong ~mips ~ppc ppc64 ~riscv x86" IUSE="libnotify taglib wayland X" REQUIRED_USE="|| ( wayland X )" diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest index b9866a1db072..930bf08c5cb1 100644 --- a/media-video/pipewire/Manifest +++ b/media-video/pipewire/Manifest @@ -1,7 +1,6 @@ DIST pipewire-1.0.0-docs.tar.xz 33632 BLAKE2B be06aa7242f7d2f8627b3bf2a2ae491dbda456a24811a767218eb89b1fd5961a461697e5d8ae2782323fdb927985fa4fd5dd40c21268b1c7939f4cd3c9e1a9ab SHA512 14f794c4152d7d9a4a7d9d4d5c2ff381c2a8262deaff034f993c4d28629fca8cc3d71d3a7c02982703e449fae5f58257fea0c20db02bf95b5aed88a4d99d2c58 -DIST pipewire-1.0.5.tar.bz2 1698291 BLAKE2B 0f919a01b5f84060fb2ce560a7790a0d59374671f52a941492930fe21ac39178688f27f00cad649d239901f88b392e16895648efae2ec2785c394c1f6d186ddf SHA512 18fbbe36c8752eb0f1df5ee3f3fffee279addcec9825281bd165ad8316f17af7e91bb5759f63c16139c074b03e5a77ef9d596a87f584d1580bbb754101b70a0f -DIST pipewire-1.0.6.tar.bz2 1698889 BLAKE2B f782efa2aa8fa0976fd3025f58041f450505c63acd9028c3d79368d0c41465a51b4472059a1c13092aa72dc6110fc12589b03de653d7eac3c93bc5498cc17154 SHA512 09e5c951c835dcc2654ec284aaaad6be4254744e943f95556c494cd22a4fc67bdc481982856f2aa439e33ec84e7fbdb6df45a1d4b9ced261b01cd91b0ee4d2ed DIST pipewire-1.0.7.tar.bz2 1698775 BLAKE2B be075eb82fe516116de0a6a4d390dd99d7ea3b41e53c9079219978649845df4e9c16cb8e2dcfe594c2ace65fe63976ec432e9ce97eb048df5103d17f3e8ff353 SHA512 3fb46376cdf061b3ea7be55249399d0036c2728bb4deeb6f5c6d708141234e75f563e6a3dc749fbd40dadba72ad2db5fda358b368a480479157731cc67f3303d DIST pipewire-1.2.0-docs.tar.xz 58528 BLAKE2B b7abdfecd46239050ab80695c8f3d1a4e6a2aded3f9d64c435c64c7dc54a4e6ae32c3526da0fb4f6e2a22a6dbc8c768450ac2c0824b685022284eb1e1990c038 SHA512 25792090f258acc6cd52231be3918f0edaefeeb6c757acc748710a2e6f40ff7861a44e376dc9651742173c40153d3f848c9532257036ab874940270559d9c7f3 -DIST pipewire-1.2.0.tar.bz2 1810104 BLAKE2B a20caae515d800f80f607aeba585609ce9f47d0a38c48cc2eb3534f64049f774c119e36d27a585b5f7537e4eef6b2a56881e7db1e2ca2eedd52248ee9f331209 SHA512 3b9ceb02d3ea9fcadd2e009750d0c5b2435c8648c79f2fa9dc8dc83c772759985b140a02381a6c7be819b23d2a5a7671e456e81cf9b5be3437e994ef610bda59 -DIST pipewire-1.2.1.tar.bz2 1812153 BLAKE2B a95d3ba69ef6ee8d001c9081fec4392ef0c219c154b0f78851dd15e5a60f6daccc33fdf80a9ea653bd32d14109c5e1a5885e0c5ce392747be8e08c37a239a2e2 SHA512 e5bf5b712e2d96c96dd907780cd4b1a3d153f01261977bd75a11823bcc2be17b6c858d2967821862660d97426c8ed5f8ebd7bfde27dafe9f30c5b459b17e587f +DIST pipewire-1.2.3.tar.bz2 1813639 BLAKE2B 42bd8a08125e79a67a4adec30541ae7fef3c1e8279d8f84365636f8691a237fc7d6b392ed2576b681a9b9418804978e5a8493d7062567ed89035286fb49977f5 SHA512 8a06ef3a9079b334b0d3248431fe6a09f330ad8078dc378ac465e253d3601c3e4552e2e07f7cf492ff6fbc218e686b30941ea153ccaaf826b5f0ff231f6b214e +DIST pipewire-1.2.4.tar.bz2 1813941 BLAKE2B 07819879ccd4122ea543fa7dffb45701741520577f09dd6a6fff9931fc571e0a2f1b3d1a023effd57e13148b6d1fb988fbd6444519b5e7c30b2c10fe30aa1cae SHA512 844c3c95b61aa78c21e5e471648f9c4c03839a64ca365ef39cfba6e4b9cc86a72dbfd725cdbbf00db22d3b82ae6faa20911b2bfcb0bc06a87984bfcb73fc4481 +DIST pipewire-1.2.5.tar.bz2 1814091 BLAKE2B 734fc6e70eab6d7c145a6d6614d6a0a49941b00b51d072f8ba318264d8cb0ec9937da63cf0c1725e90c8a2e6730ae0d590d530cd171aba325611cd916170d902 SHA512 c6b3c59882fe9261c14fb28d3ac3887566c56aeb98b3ec3ad965a007a51519c9597ca88ef76432872220bdd8c802fa1abe1dc043523410f4186321bbd353dc67 diff --git a/media-video/pipewire/files/pipewire-1.2.0-automagic-gsettings.patch b/media-video/pipewire/files/pipewire-1.2.0-automagic-gsettings.patch deleted file mode 100644 index ab102a606c82..000000000000 --- a/media-video/pipewire/files/pipewire-1.2.0-automagic-gsettings.patch +++ /dev/null @@ -1,79 +0,0 @@ -From b5f031bc15524bbfde577290ad9bbadeab77ae8b Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <eschwartz93@gmail.com> -Date: Sun, 30 Jun 2024 13:44:06 -0400 -Subject: [PATCH] meson: fix conflicting use of feature-based dependency - lookups - -When spa-plugins is enabled, the gio-2.0 global dependency is -overwritten. - -When bluez support is enabled, OR when gsettings is enabled, the gio-2.0 -dependency is then detected as found. This means that -pipewire-module-protocol-pulse can end up enabling gsettings support -even if it has been forcibly turned off. - -Rename the meson variables to ensure they are looked up separately. ---- - meson.build | 6 +++--- - spa/meson.build | 6 +++--- - src/modules/meson.build | 4 ++-- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/meson.build b/meson.build -index 2607c5c8f4..38b6b59d00 100644 ---- a/meson.build -+++ b/meson.build -@@ -346,9 +346,9 @@ summary({'GLib-2.0 (Flatpak support)': glib2_dep.found()}, bool_yn: true, sectio - flatpak_support = glib2_dep.found() - cdata.set('HAVE_GLIB2', flatpak_support) - --gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings')) --summary({'GIO (GSettings)': gio_dep.found()}, bool_yn: true, section: 'Misc dependencies') --if not gio_dep.found() and get_option('gsettings-pulse-schema').enabled() -+gsettings_gio_dep = dependency('gio-2.0', version : '>= 2.26.0', required : get_option('gsettings')) -+summary({'GIO (GSettings)': gsettings_gio_dep.found()}, bool_yn: true, section: 'Misc dependencies') -+if not gsettings_gio_dep.found() and get_option('gsettings-pulse-schema').enabled() - error('`gsettings-pulse-schema` is enabled but `gio` was not found.') - endif - -diff --git a/spa/meson.build b/spa/meson.build -index 67e4b5c506..cf25609dab 100644 ---- a/spa/meson.build -+++ b/spa/meson.build -@@ -47,12 +47,12 @@ if get_option('spa-plugins').allowed() - summary({'ALSA': alsa_dep.found()}, bool_yn: true, section: 'Backend') - - bluez_dep = dependency('bluez', version : '>= 4.101', required: get_option('bluez5')) -- gio_dep = dependency('gio-2.0', required : get_option('bluez5')) -- gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5')) -+ bluez_gio_dep = dependency('gio-2.0', required : get_option('bluez5')) -+ bluez_gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5')) - bluez_glib2_dep = dependency('glib-2.0', required : get_option('bluez5')) - sbc_dep = dependency('sbc', required: get_option('bluez5')) - summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs') -- bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, gio_dep, gio_unix_dep ] -+ bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, bluez_gio_dep, bluez_gio_unix_dep ] - bluez_deps_found = get_option('bluez5').allowed() - foreach dep: bluez5_deps - if get_option('bluez5').enabled() and not dep.found() -diff --git a/src/modules/meson.build b/src/modules/meson.build -index ceaa7013d9..3f400f0877 100644 ---- a/src/modules/meson.build -+++ b/src/modules/meson.build -@@ -433,11 +433,11 @@ if avahi_dep.found() - cdata.set('HAVE_AVAHI', true) - endif - --if gio_dep.found() -+if gsettings_gio_dep.found() - pipewire_module_protocol_pulse_sources += [ - 'module-protocol-pulse/modules/module-gsettings.c', - ] -- pipewire_module_protocol_pulse_deps += gio_dep -+ pipewire_module_protocol_pulse_deps += gsettings_gio_dep - cdata.set('HAVE_GIO', true) - if get_option('gsettings-pulse-schema').enabled() - install_data(['module-protocol-pulse/modules/org.freedesktop.pulseaudio.gschema.xml'], --- -GitLab - diff --git a/media-video/pipewire/pipewire-1.0.5-r1.ebuild b/media-video/pipewire/pipewire-1.0.5-r1.ebuild deleted file mode 100644 index 1373789d2b11..000000000000 --- a/media-video/pipewire/pipewire-1.0.5-r1.ebuild +++ /dev/null @@ -1,502 +0,0 @@ -# Copyright 1999-2024 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. - -# TODO: Maybe get upstream to produce `meson dist` tarballs: -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663 -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788 -# -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${PIPEWIRE_DOCS_PREBUILT:=1} - -PIPEWIRE_DOCS_PREBUILT_DEV=sam -PIPEWIRE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -PIPEWIRE_DOCS_USEFLAG="+man" -PYTHON_COMPAT=( python3_{10..12} ) -inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev - -if [[ ${PV} == 9999 ]]; then - PIPEWIRE_DOCS_PREBUILT=0 - 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 - - if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )" - PIPEWIRE_DOCS_USEFLAG="man" - fi - - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~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="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" -IUSE+=" modemmanager pipewire-alsa readline roc selinux 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-build/meson-0.59 - virtual/pkgconfig - dbus? ( dev-util/gdbus-codegen ) - doc? ( - ${PYTHON_DEPS} - >=app-text/doxygen-1.9.8 - media-gfx/graphviz - ) - man? ( - ${PYTHON_DEPS} - >=app-text/doxygen-1.9.8 - ) -" -# * While udev could technically be optional, it's needed for a number of options, -# and not really worth it, bug #877769. -# -# * Supports both legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1. -# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic. -# -# * Older Doxygen (<1.9.8) may work but inferior output is created: -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778 -# - https://github.com/doxygen/doxygen/issues/9254 -RDEPEND=" - acct-group/audio - acct-group/pipewire - media-libs/alsa-lib[${MULTILIB_USEDEP}] - 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:1 ) - 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-0.3.0:= ) - readline? ( sys-libs/readline:= ) - selinux? ( sys-libs/libselinux ) - 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}" - -PDEPEND=">=media-video/wireplumber-0.5.2" - -# 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 - -PATCHES=( - "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch -) - -pkg_setup() { - if use doc || use man ; then - python-any-r1_pkg_setup - fi -} - -src_prepare() { - default - - # Used for upstream backports - [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} -} - -multilib_src_configure() { - 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_use_feature man) - $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone - $(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 - $(meson_feature selinux) - -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 man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8] - fi - - 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 - # Install sound-server enabler for wireplumber 0.5.0+ conf syntax - insinto /etc/wireplumber/wireplumber.conf.d - doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf - 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-1.0.5.ebuild b/media-video/pipewire/pipewire-1.0.5.ebuild deleted file mode 100644 index 0115d177525b..000000000000 --- a/media-video/pipewire/pipewire-1.0.5.ebuild +++ /dev/null @@ -1,512 +0,0 @@ -# Copyright 1999-2024 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. - -# TODO: Maybe get upstream to produce `meson dist` tarballs: -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3663 -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1788 -# -# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-pipewire-docs -# Set to 1 if prebuilt, 0 if not -# (the construct below is to allow overriding from env for script) -: ${PIPEWIRE_DOCS_PREBUILT:=1} - -PIPEWIRE_DOCS_PREBUILT_DEV=sam -PIPEWIRE_DOCS_VERSION=$(ver_cut 1-2).0 -# Default to generating docs (inc. man pages) if no prebuilt; overridden later -PIPEWIRE_DOCS_USEFLAG="+man" -PYTHON_COMPAT=( python3_{10..12} ) -inherit meson-multilib optfeature prefix python-any-r1 systemd tmpfiles udev - -if [[ ${PV} == 9999 ]]; then - PIPEWIRE_DOCS_PREBUILT=0 - 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 - - if [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then - SRC_URI+=" !man? ( https://dev.gentoo.org/~${PIPEWIRE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${PIPEWIRE_DOCS_VERSION}-docs.tar.xz )" - PIPEWIRE_DOCS_USEFLAG="man" - fi - - KEYWORDS="amd64 arm arm64 ~loong ~mips 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="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" -IUSE+=" modemmanager pipewire-alsa readline roc selinux 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-build/meson-0.59 - virtual/pkgconfig - dbus? ( dev-util/gdbus-codegen ) - doc? ( - ${PYTHON_DEPS} - >=app-text/doxygen-1.9.8 - media-gfx/graphviz - ) - man? ( - ${PYTHON_DEPS} - >=app-text/doxygen-1.9.8 - ) -" -# * While udev could technically be optional, it's needed for a number of options, -# and not really worth it, bug #877769. -# -# * Supports both legacy webrtc-audio-processing:0 and new webrtc-audio-processing:1. -# We depend on :1 as it prefers that, it's not legacy, and to avoid automagic. -# -# * Older Doxygen (<1.9.8) may work but inferior output is created: -# - https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1778 -# - https://github.com/doxygen/doxygen/issues/9254 -RDEPEND=" - acct-group/audio - acct-group/pipewire - media-libs/alsa-lib[${MULTILIB_USEDEP}] - 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:1 ) - 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-0.3.0:= ) - readline? ( sys-libs/readline:= ) - selinux? ( sys-libs/libselinux ) - 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 - -PATCHES=( - "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch -) - -pkg_setup() { - if use doc || use man ; then - python-any-r1_pkg_setup - fi -} - -src_prepare() { - default - - # Used for upstream backports - [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} -} - -multilib_src_configure() { - 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_use_feature man) - $(meson_native_enabled examples) # TODO: Figure out if this is still important now that media-session gone - $(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 - $(meson_feature selinux) - -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 man && [[ ${PIPEWIRE_DOCS_PREBUILT} == 1 ]] ; then - doman "${WORKDIR}"/${PN}-${PIPEWIRE_DOCS_VERSION}-docs/man/*/*.[0-8] - fi - - 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 - # Install sound-server enabler, alsa part, wireplumber 0.4.15 syntax, clean this up with wireplumber dep bump - 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 - - # Install sound-server enabler, bluetooth part, wireplumber 0.4.15 syntax, clean this up with wireplumber dep bump - 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 - - # Install sound-server enabler for wireplumber 0.4.81+ conf syntax - insinto /etc/pipewire/wireplumber.conf.d - doins "${FILESDIR}"/gentoo-sound-server-enable-audio-bluetooth.conf - 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-1.2.0-r2.ebuild b/media-video/pipewire/pipewire-1.2.3.ebuild index f4aeba1f7ea4..2f8576568666 100644 --- a/media-video/pipewire/pipewire-1.2.0-r2.ebuild +++ b/media-video/pipewire/pipewire-1.2.3.ebuild @@ -23,7 +23,7 @@ EAPI=8 : ${PIPEWIRE_DOCS_PREBUILT:=1} PIPEWIRE_DOCS_PREBUILT_DEV=sam -PIPEWIRE_DOCS_VERSION="${PV}" +PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0" # Default to generating docs (inc. man pages) if no prebuilt; overridden later PIPEWIRE_DOCS_USEFLAG="+man" PYTHON_COMPAT=( python3_{10..12} ) @@ -47,7 +47,7 @@ else PIPEWIRE_DOCS_USEFLAG="man" fi - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi DESCRIPTION="Multimedia processing graphs" @@ -175,8 +175,6 @@ PDEPEND=">=media-video/wireplumber-0.5.2" PATCHES=( "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch - # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2061 - "${FILESDIR}"/${P}-automagic-gsettings.patch ) pkg_setup() { diff --git a/media-video/pipewire/pipewire-1.2.1.ebuild b/media-video/pipewire/pipewire-1.2.4.ebuild index 537951c763cc..408bee308b53 100644 --- a/media-video/pipewire/pipewire-1.2.1.ebuild +++ b/media-video/pipewire/pipewire-1.2.4.ebuild @@ -175,8 +175,6 @@ PDEPEND=">=media-video/wireplumber-0.5.2" PATCHES=( "${FILESDIR}"/${PN}-0.3.25-enable-failed-mlock-warning.patch - # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2061 - "${FILESDIR}"/${PN}-1.2.0-automagic-gsettings.patch ) pkg_setup() { diff --git a/media-video/pipewire/pipewire-1.0.6.ebuild b/media-video/pipewire/pipewire-1.2.5.ebuild index 1373789d2b11..600cb6e439b3 100644 --- a/media-video/pipewire/pipewire-1.0.6.ebuild +++ b/media-video/pipewire/pipewire-1.2.5.ebuild @@ -23,7 +23,7 @@ EAPI=8 : ${PIPEWIRE_DOCS_PREBUILT:=1} PIPEWIRE_DOCS_PREBUILT_DEV=sam -PIPEWIRE_DOCS_VERSION=$(ver_cut 1-2).0 +PIPEWIRE_DOCS_VERSION="$(ver_cut 1-2).0" # Default to generating docs (inc. man pages) if no prebuilt; overridden later PIPEWIRE_DOCS_USEFLAG="+man" PYTHON_COMPAT=( python3_{10..12} ) @@ -56,7 +56,7 @@ 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="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" IUSE+=" modemmanager pipewire-alsa readline roc selinux sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that @@ -123,8 +123,9 @@ RDEPEND=" >=net-wireless/bluez-4.101:= virtual/libusb:1 ) + elogind? ( sys-auth/elogind ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - echo-cancel? ( media-libs/webrtc-audio-processing:1 ) + echo-cancel? ( >=media-libs/webrtc-audio-processing-1.2:1 ) extra? ( >=media-libs/libsndfile-1.0.20 ) ffmpeg? ( media-video/ffmpeg:= ) flatpak? ( dev-libs/glib ) @@ -191,6 +192,15 @@ src_prepare() { } multilib_src_configure() { + local logind=disabled + if multilib_is_native_abi ; then + if use systemd ; then + logind=enabled + elif use elogind ; then + logind=enabled + fi + fi + local emesonargs=( -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} @@ -206,6 +216,8 @@ multilib_src_configure() { $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) $(meson_native_use_feature systemd) + -Dlogind=${logind} + -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind') $(meson_native_use_feature system-service systemd-system-service) -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" @@ -274,8 +286,21 @@ multilib_src_configure() { $(meson_native_use_feature X x11) $(meson_native_use_feature X x11-xfixes) $(meson_native_use_feature X libcanberra) + + # TODO + -Dsnap=disabled ) + # This installs the schema file for pulseaudio-daemon, iff we are replacing + # the official sound-server + if use !sound-server; then + emesonargs+=( '-Dgsettings-pulse-schema=disabled' ) + else + emesonargs+=( + $(meson_native_use_feature gsettings gsettings-pulse-schema) + ) + fi + meson_src_configure } diff --git a/media-video/pipewire/pipewire-9999.ebuild b/media-video/pipewire/pipewire-9999.ebuild index 785496b22c13..235f514e441f 100644 --- a/media-video/pipewire/pipewire-9999.ebuild +++ b/media-video/pipewire/pipewire-9999.ebuild @@ -56,7 +56,7 @@ 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="${PIPEWIRE_DOCS_USEFLAG} bluetooth dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" +IUSE="${PIPEWIRE_DOCS_USEFLAG} bluetooth elogind dbus doc echo-cancel extra ffmpeg flatpak gstreamer gsettings ieee1394 jack-client jack-sdk liblc3 lv2" IUSE+=" modemmanager pipewire-alsa readline roc selinux sound-server ssl system-service systemd test v4l X zeroconf" # Once replacing system JACK libraries is possible, it's likely that @@ -123,6 +123,7 @@ RDEPEND=" >=net-wireless/bluez-4.101:= virtual/libusb:1 ) + elogind? ( sys-auth/elogind ) dbus? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) echo-cancel? ( >=media-libs/webrtc-audio-processing-1.2:1 ) extra? ( >=media-libs/libsndfile-1.0.20 ) @@ -191,6 +192,15 @@ src_prepare() { } multilib_src_configure() { + local logind=disabled + if multilib_is_native_abi ; then + if use systemd ; then + logind=enabled + elif use elogind ; then + logind=enabled + fi + fi + local emesonargs=( -Ddocdir="${EPREFIX}"/usr/share/doc/${PF} @@ -206,6 +216,8 @@ multilib_src_configure() { $(meson_native_use_feature gstreamer gstreamer-device-provider) $(meson_native_use_feature gsettings) $(meson_native_use_feature systemd) + -Dlogind=${logind} + -Dlogind-provider=$(usex systemd 'libsystemd' 'libelogind') $(meson_native_use_feature system-service systemd-system-service) -Dsystemd-system-unit-dir="$(systemd_get_systemunitdir)" diff --git a/media-video/raspberrypi-omxplayer/Manifest b/media-video/raspberrypi-omxplayer/Manifest deleted file mode 100644 index be77ff186208..000000000000 --- a/media-video/raspberrypi-omxplayer/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST raspberrypi-omxplayer-0_p20160528.tar.gz 1207624 BLAKE2B 5b8f8973302718cd06f0b7527eb1cc59bddd4c98a58917c540853e54a5c6d6978b00eb790ac5d18cd2e1b90730543e51c3c6edc221b4df1d9482d5e89af5846b SHA512 c7b00908f52159745dda94f35b9150122ca1e4e97ad1578a89f6db917b1579a8ed94c4ef1592a7c2590240e0fd1e7e0617e3ee8dec7f532368205ee63ce42572 diff --git a/media-video/raspberrypi-omxplayer/files/Makefile-0_p20160528.patch b/media-video/raspberrypi-omxplayer/files/Makefile-0_p20160528.patch deleted file mode 100644 index d71e6b376080..000000000000 --- a/media-video/raspberrypi-omxplayer/files/Makefile-0_p20160528.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -2,9 +2,11 @@ - - CFLAGS+=-std=c++0x -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -DTARGET_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CMAKE_CONFIG -D__VIDEOCORE4__ -U_FORTIFY_SOURCE -Wall -DHAVE_OMXLIB -DUSE_EXTERNAL_FFMPEG -DHAVE_LIBAVCODEC_AVCODEC_H -DHAVE_LIBAVUTIL_OPT_H -DHAVE_LIBAVUTIL_MEM_H -DHAVE_LIBAVUTIL_AVUTIL_H -DHAVE_LIBAVFORMAT_AVFORMAT_H -DHAVE_LIBAVFILTER_AVFILTER_H -DHAVE_LIBSWRESAMPLE_SWRESAMPLE_H -DOMX -DOMX_SKIP64BIT -ftree-vectorize -DUSE_EXTERNAL_OMX -DTARGET_RASPBERRY_PI -DUSE_EXTERNAL_LIBBCM_HOST - --LDFLAGS+=-L./ -Lffmpeg_compiled/usr/local/lib/ -lc -lWFC -lGLESv2 -lEGL -lbcm_host -lopenmaxil -lfreetype -lz -+PKGS=freetype2 dbus-1 libavcodec libavutil libavformat libswresample libswscale libpcre -+ -+LIBS+=-lrt -lpthread $(shell ${PKG_CONFIG} --libs $(PKGS)) -L/opt/vc/lib - --INCLUDES+=-I./ -Ilinux -Iffmpeg_compiled/usr/local/include/ -I /usr/include/dbus-1.0 -I /usr/lib/arm-linux-gnueabihf/dbus-1.0/include -+INCLUDES+=$(shell ${PKG_CONFIG} --cflags $(PKGS)) -I/opt/vc/include -I. -Ilinux - - DIST ?= omxplayer-dist - -@@ -51,8 +47,7 @@ - bash gen_version.sh > version.h - - omxplayer.bin: version $(OBJS) -- $(CXX) $(LDFLAGS) -o omxplayer.bin $(OBJS) -lvchiq_arm -lvchostif -lvcos -ldbus-1 -lrt -lpthread -lavutil -lavcodec -lavformat -lswscale -lswresample -lpcre -- $(STRIP) omxplayer.bin -+ $(CXX) $(LDFLAGS) -o omxplayer.bin $(OBJS) $(LIBS) - - help.h: README.md Makefile - awk '/SYNOPSIS/{p=1;print;next} p&&/KEY BINDINGS/{p=0};p' $< \ diff --git a/media-video/raspberrypi-omxplayer/files/cross-0_p20160528.patch b/media-video/raspberrypi-omxplayer/files/cross-0_p20160528.patch deleted file mode 100644 index bd35d6283d21..000000000000 --- a/media-video/raspberrypi-omxplayer/files/cross-0_p20160528.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -4,9 +4,11 @@ - - PKGS=freetype2 dbus-1 libavcodec libavutil libavformat libswresample libswscale libpcre - --LIBS+=-lrt -lpthread $(shell pkg-config --libs $(PKGS)) -L/opt/vc/lib -+PKG_CONFIG ?= pkg-config - --INCLUDES+=$(shell pkg-config --cflags $(PKGS)) -I/opt/vc/include -I. -Ilinux -+LIBS+=-lrt -lpthread $(shell $(PKG_CONFIG) --libs $(PKGS)) -L${SYSROOT}/opt/vc/lib -+ -+INCLUDES+=$(shell $(PKG_CONFIG) --cflags $(PKGS)) -I${SYSROOT}/opt/vc/include -I. -Ilinux - - DIST ?= omxplayer-dist diff --git a/media-video/raspberrypi-omxplayer/files/fonts-path.patch b/media-video/raspberrypi-omxplayer/files/fonts-path.patch deleted file mode 100644 index 6683145f6833..000000000000 --- a/media-video/raspberrypi-omxplayer/files/fonts-path.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/omxplayer.cpp b/omxplayer.cpp -index 0626e2e..8450bf2 100644 ---- a/omxplayer.cpp -+++ b/omxplayer.cpp -@@ -83,8 +83,8 @@ bool m_osd = true; - bool m_no_keys = false; - std::string m_external_subtitles_path; - bool m_has_external_subtitles = false; --std::string m_font_path = "/usr/share/fonts/truetype/freefont/FreeSans.ttf"; --std::string m_italic_font_path = "/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf"; -+std::string m_font_path = "/usr/share/fonts/freefont/FreeSans.ttf"; -+std::string m_italic_font_path = "/usr/share/fonts/freefont/FreeSansOblique.ttf"; - std::string m_dbus_name = "org.mpris.MediaPlayer2.omxplayer"; - bool m_asked_for_font = false; - bool m_asked_for_italic_font = false; diff --git a/media-video/raspberrypi-omxplayer/metadata.xml b/media-video/raspberrypi-omxplayer/metadata.xml deleted file mode 100644 index a3222eacca00..000000000000 --- a/media-video/raspberrypi-omxplayer/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>fordfrog@gentoo.org</email> - <name>Miroslav Šulc</name> - </maintainer> - <upstream> - <remote-id type="github">popcornmix/omxplayer</remote-id> - </upstream> -</pkgmetadata> diff --git a/media-video/raspberrypi-omxplayer/raspberrypi-omxplayer-0_p20160528-r3.ebuild b/media-video/raspberrypi-omxplayer/raspberrypi-omxplayer-0_p20160528-r3.ebuild deleted file mode 100644 index 67b8ee489721..000000000000 --- a/media-video/raspberrypi-omxplayer/raspberrypi-omxplayer-0_p20160528-r3.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit flag-o-matic toolchain-funcs - -GIT_COMMIT="791d7df" -DESCRIPTION="Command line media player for the Raspberry Pi" -HOMEPAGE="https://github.com/popcornmix/omxplayer" -SRC_URI="https://github.com/popcornmix/omxplayer/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~arm" -IUSE="X" - -RDEPEND="dev-libs/libpcre - media-fonts/freefont - || ( media-libs/raspberrypi-userland media-libs/raspberrypi-userland-bin ) - sys-apps/dbus - sys-apps/fbset - media-video/ffmpeg - dev-libs/boost - media-libs/freetype:2 - X? ( - x11-apps/xrefresh - x11-apps/xset - )" -DEPEND="${RDEPEND} - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}"/Makefile-0_p20160528.patch - "${FILESDIR}"/fonts-path.patch - "${FILESDIR}"/cross-0_p20160528.patch -) - -DOCS=( README.md ) - -S="${WORKDIR}/popcornmix-omxplayer-${GIT_COMMIT}" - -src_prepare() { - default - cat > Makefile.include << EOF -LIBS=-lvchostif -lvchiq_arm -lvcos -lbcm_host -lEGL -lGLESv2 -lopenmaxil -lrt -lpthread -EOF - - tc-export CXX PKG_CONFIG -} - -src_compile() { - emake omxplayer.bin -} - -src_install() { - dobin omxplayer omxplayer.bin - einstalldocs -} diff --git a/media-video/shotcut/Manifest b/media-video/shotcut/Manifest index 40c2ec9173eb..6b436d457909 100644 --- a/media-video/shotcut/Manifest +++ b/media-video/shotcut/Manifest @@ -1,2 +1,2 @@ -DIST shotcut-23.09.29.tar.gz 11908874 BLAKE2B e107d5f0284afd54b31eff72220d4224621da7b46fff6345d729ea0464b8967bc3329a12121aeedcdec6bcce7f4c6394065463269708a4bd4d29cc4389bc1706 SHA512 a829c2eda51db4fe20fa207e3e98ce0fb1e777af8ac495aa1ad20407bb91a41fed569298611288e04a528f1120fc89292d0333d3e445dce1ab86a799dea78e16 DIST shotcut-24.02.19.tar.gz 12077171 BLAKE2B ac7ab500f8817007ec981a94a2b7a414a4d981c630bd289fdf70eb2f1d493391dc74e372d82273aa4d81a2a9b685b1275e30ab47f6d6c5ce44812c286f43ed54 SHA512 60fc8874622db7ebb3e345ac8ba23a0d7c5e60c929c5955189b71540bbd5946e4dc0db0ad119a4ba3659f2d6e4dd64652be3dabc82b3c01feefb5619685ec454 +DIST shotcut-24.06.26.tar.gz 12276595 BLAKE2B 0f062f3cb3991291b962fd351cac266bf20fd7d58acb70245655b93cbdbc7147a24e17d4ecf4eaa1bd5e3bbf29a29b73f289d529c539f6540616e3a03bf82ac5 SHA512 282c3f73cedae9b1fcb85d08a18fcd164481307baaca0227f536846ee0fc1c2f09382d0ba40fb0993210c78e7192338fa3577fe9c963e8bfc5a9d5bacc912a8b diff --git a/media-video/shotcut/shotcut-23.09.29.ebuild b/media-video/shotcut/shotcut-24.06.26.ebuild index 88276adaf800..b72aafd2d6c0 100644 --- a/media-video/shotcut/shotcut-23.09.29.ebuild +++ b/media-video/shotcut/shotcut-24.06.26.ebuild @@ -15,11 +15,12 @@ else EGIT_REPO_URI="https://github.com/mltframework/shotcut/" fi -IUSE="debug" - LICENSE="GPL-3+" + SLOT="0" +IUSE="debug" + BDEPEND=" dev-qt/qttools:6[linguist] " @@ -27,6 +28,7 @@ DEPEND=" dev-qt/qtbase:6[concurrent,gui,network,opengl,sql,widgets,xml] dev-qt/qtdeclarative:6[widgets] dev-qt/qtmultimedia:6 + dev-qt/qtcharts:6 >=media-libs/mlt-7.18.0[ffmpeg,frei0r,jack,opengl,sdl,xml] media-video/ffmpeg " diff --git a/media-video/shotcut/shotcut-9999.ebuild b/media-video/shotcut/shotcut-9999.ebuild index 88276adaf800..b72aafd2d6c0 100644 --- a/media-video/shotcut/shotcut-9999.ebuild +++ b/media-video/shotcut/shotcut-9999.ebuild @@ -15,11 +15,12 @@ else EGIT_REPO_URI="https://github.com/mltframework/shotcut/" fi -IUSE="debug" - LICENSE="GPL-3+" + SLOT="0" +IUSE="debug" + BDEPEND=" dev-qt/qttools:6[linguist] " @@ -27,6 +28,7 @@ DEPEND=" dev-qt/qtbase:6[concurrent,gui,network,opengl,sql,widgets,xml] dev-qt/qtdeclarative:6[widgets] dev-qt/qtmultimedia:6 + dev-qt/qtcharts:6 >=media-libs/mlt-7.18.0[ffmpeg,frei0r,jack,opengl,sdl,xml] media-video/ffmpeg " diff --git a/media-video/smplayer/Manifest b/media-video/smplayer/Manifest index 6f540ff44320..d468036d934a 100644 --- a/media-video/smplayer/Manifest +++ b/media-video/smplayer/Manifest @@ -1 +1,2 @@ DIST smplayer-23.6.0.tar.bz2 5164535 BLAKE2B 27200ad658a2acfc3c93c48ed59fca2333b5935d5b7e955cb12dd0c33566aaf0288c68081a68578904076e467bb3b39f9a5bb702d7ad8be0474aa400e40ce6e0 SHA512 097085ffae11b0d065f0822e36466f3e934d4484de29146deba66de14bfd4abcaa8dfd91aa5890921f336a99c3392650e932102812bf401a843d7a86dfc4996d +DIST smplayer-24.5.0.tar.bz2 5221961 BLAKE2B 6c088b87508ada09fb8712610da76403fbcc9f0d3f2ce1908d99560400aac8351b08453c77f2cf64f13625b09e4d748a7f0a64458e6429aeb29ce1ae49ebcaad SHA512 0de968babbb99a92ef2721d8b30d336433bb99745212da0d7dadec9ec389da0be6cdc5b461960662b4342f80ee6407a814bc6abc3372c07a75ee6804e705851e diff --git a/media-video/smplayer/files/smplayer-23.6.0-mpv-0.37-resume.patch b/media-video/smplayer/files/smplayer-23.6.0-mpv-0.37-resume.patch new file mode 100644 index 000000000000..d2ff738e76d8 --- /dev/null +++ b/media-video/smplayer/files/smplayer-23.6.0-mpv-0.37-resume.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/919917#c2 +https://github.com/smplayer-dev/smplayer/issues/837 +--- a/src/mpvoptions.cpp ++++ b/src/mpvoptions.cpp +@@ -848,6 +848,10 @@ void MPVProcess::mute(bool b) { + + void MPVProcess::setPause(bool b) { + sendCommand(QString("set pause %1").arg(b ? "yes" : "no")); ++ ++ // Workaround for mpv 0.37, playback not resuming after pause ++ // It seems mpv reports the pause state in the status line with some delay ++ if (b) sendCommand("no-osd seek 0 relative exact"); + } + + void MPVProcess::frameStep() { diff --git a/media-video/smplayer/metadata.xml b/media-video/smplayer/metadata.xml index 9b4c43a953d1..e414faa507d5 100644 --- a/media-video/smplayer/metadata.xml +++ b/media-video/smplayer/metadata.xml @@ -7,5 +7,6 @@ </maintainer> <upstream> <remote-id type="sourceforge">smplayer</remote-id> + <remote-id type="github">smplayer-dev/smplayer</remote-id> </upstream> </pkgmetadata> diff --git a/media-video/smplayer/smplayer-23.6.0-r1.ebuild b/media-video/smplayer/smplayer-23.6.0-r1.ebuild new file mode 100644 index 000000000000..b0f6f1eccfd3 --- /dev/null +++ b/media-video/smplayer/smplayer-23.6.0-r1.ebuild @@ -0,0 +1,126 @@ +# Copyright 2007-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PLOCALES="am ar_SY ar bg ca cs da de el en_GB en en_US es et eu fa fi fr gl +he_IL hr hu id it ja ka ko ku lt mk ms_MY nl nn_NO pl pt_BR pt ro_RO ru_RU +sk sl_SI sq_AL sr sv th tr uk_UA uz vi_VN zh_CN zh_TW" +PLOCALE_BACKUP="en_US" + +inherit plocale qmake-utils toolchain-funcs xdg + +DESCRIPTION="Great Qt GUI front-end for mplayer/mpv" +HOMEPAGE="https://www.smplayer.info/" +SRC_URI="https://github.com/smplayer-dev/${PN}/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="GPL-2+ BSD-2" +SLOT="0" +KEYWORDS="amd64 ~arm ~hppa ~ppc ~ppc64 x86 ~amd64-linux" +IUSE="bidi debug" + +DEPEND=" + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5= + dev-qt/qtnetwork:5[ssl] + dev-qt/qtsingleapplication[X,qt5(+)] + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + sys-libs/zlib + x11-libs/libX11 +" +RDEPEND="${DEPEND} + || ( + media-video/mpv[libass(+),X] + media-video/mplayer[bidi?,libass,png,X] + ) +" +BDEPEND="dev-qt/linguist-tools:5" + +PATCHES=( + "${FILESDIR}/${PN}-14.9.0.6966-unbundle-qtsingleapplication.patch" # bug 487544 + "${FILESDIR}/${PN}-17.1.0-advertisement_crap.patch" + "${FILESDIR}/${PN}-18.2.0-jobserver.patch" + "${FILESDIR}/${PN}-18.3.0-disable-werror.patch" + "${FILESDIR}/${P}-mpv-0.37-resume.patch" +) + +src_prepare() { + use bidi || PATCHES+=( "${FILESDIR}"/${PN}-16.4.0-zero-bidi.patch ) + + default + + # Upstream Makefile sucks + sed -i -e "/^PREFIX=/ s:/usr/local:${EPREFIX}/usr:" \ + -e "/^DOC_PATH=/ s:packages/smplayer:${PF}:" \ + -e '/\.\/get_svn_revision\.sh/,+2c\ + cd src && $(DEFS) $(MAKE)' \ + Makefile || die + + # Turn off online update checker, bug #479902 + sed -e 's:DEFINES += UPDATE_CHECKER:#&:' \ + -e 's:DEFINES += CHECK_UPGRADED:#&:' \ + -i src/smplayer.pro || die + + # Turn off intrusive share widget + sed -e 's:DEFINES += SHARE_WIDGET:#&:' \ + -i src/smplayer.pro || die + + # Turn debug message flooding off + if ! use debug ; then + sed -e 's:#\(DEFINES += NO_DEBUG_ON_CONSOLE\):\1:' \ + -i src/smplayer.pro || die + fi + + # Commented out because it gives false positives + #plocale_find_changes "${S}"/src/translations ${PN}_ .ts + + # Do not default compress man page + sed '/gzip -9.*\.1$/d' -i Makefile || die + sed 's@\.gz$@@' -i smplayer.spec || die +} + +src_configure() { + cd src || die + eqmake5 QT_MAJOR_VERSION=5 +} + +gen_translation() { + local mydir="$(qt5_get_bindir)" + + ebegin "Generating $1 translation" + "${mydir}"/lrelease ${PN}_${1}.ts + eend $? || die "failed to generate $1 translation" +} + +src_compile() { + emake CC="$(tc-getCC)" + + cd src/translations || die + plocale_for_each_locale gen_translation +} + +src_install() { + # remove unneeded copies of the GPL + rm Copying* docs/*/gpl.html || die + # don't install empty dirs + rmdir --ignore-fail-on-non-empty docs/* || die + + default +} + +pkg_preinst() { + xdg_pkg_preinst +} + +pkg_postinst() { + xdg_pkg_postinst + + elog "If you want URL support with media-video/mpv, please install" + elog "net-misc/yt-dlp." +} + +pkg_postrm() { + xdg_pkg_postrm +} diff --git a/media-video/smplayer/smplayer-24.5.0.ebuild b/media-video/smplayer/smplayer-24.5.0.ebuild new file mode 100644 index 000000000000..6ae116a3af27 --- /dev/null +++ b/media-video/smplayer/smplayer-24.5.0.ebuild @@ -0,0 +1,125 @@ +# Copyright 2007-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PLOCALES="am ar_SY ar bg ca cs da de el en_GB en en_US es et eu fa fi fr gl +he_IL hr hu id it ja ka ko ku lt mk ms_MY nl nn_NO pl pt_BR pt ro_RO ru_RU +sk sl_SI sq_AL sr sv th tr uk_UA uz vi_VN zh_CN zh_TW" +PLOCALE_BACKUP="en_US" + +inherit optfeature plocale qmake-utils toolchain-funcs xdg + +DESCRIPTION="Great Qt GUI front-end for mplayer/mpv" +HOMEPAGE="https://www.smplayer.info/" +SRC_URI="https://github.com/smplayer-dev/${PN}/releases/download/v${PV}/${P}.tar.bz2" + +LICENSE="GPL-2+ BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="bidi debug" + +DEPEND=" + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5= + dev-qt/qtnetwork:5[ssl] + dev-qt/qtsingleapplication[X,qt5(+)] + dev-qt/qtwidgets:5 + dev-qt/qtxml:5 + sys-libs/zlib + x11-libs/libX11 +" +RDEPEND=" + ${DEPEND} + || ( + media-video/mpv[libass(+),X] + media-video/mplayer[bidi?,libass,png,X] + ) +" +BDEPEND="dev-qt/linguist-tools:5" + +PATCHES=( + "${FILESDIR}/${PN}-14.9.0.6966-unbundle-qtsingleapplication.patch" # bug 487544 + "${FILESDIR}/${PN}-17.1.0-advertisement_crap.patch" + "${FILESDIR}/${PN}-18.2.0-jobserver.patch" + "${FILESDIR}/${PN}-18.3.0-disable-werror.patch" +) + +src_prepare() { + use bidi || PATCHES+=( "${FILESDIR}"/${PN}-16.4.0-zero-bidi.patch ) + + default + + # Upstream Makefile sucks + sed -i -e "/^PREFIX=/ s:/usr/local:${EPREFIX}/usr:" \ + -e "/^DOC_PATH=/ s:packages/smplayer:${PF}:" \ + -e '/\.\/get_svn_revision\.sh/,+2c\ + cd src && $(DEFS) $(MAKE)' \ + Makefile || die + + # Turn off online update checker, bug #479902 + sed -e 's:DEFINES += UPDATE_CHECKER:#&:' \ + -e 's:DEFINES += CHECK_UPGRADED:#&:' \ + -i src/smplayer.pro || die + + # Turn off intrusive share widget + sed -e 's:DEFINES += SHARE_WIDGET:#&:' \ + -i src/smplayer.pro || die + + # Turn debug message flooding off + if ! use debug ; then + sed -e 's:#\(DEFINES += NO_DEBUG_ON_CONSOLE\):\1:' \ + -i src/smplayer.pro || die + fi + + # Commented out because it gives false positives + #plocale_find_changes "${S}"/src/translations ${PN}_ .ts + + # Do not default compress man page + sed '/gzip -9.*\.1$/d' -i Makefile || die + sed 's@\.gz$@@' -i smplayer.spec || die +} + +src_configure() { + cd src || die + eqmake5 QT_MAJOR_VERSION=5 +} + +gen_translation() { + local mydir="$(qt5_get_bindir)" + + ebegin "Generating $1 translation" + "${mydir}"/lrelease ${PN}_${1}.ts + eend $? || die "failed to generate $1 translation" +} + +src_compile() { + emake CC="$(tc-getCC)" + + cd src/translations || die + plocale_for_each_locale gen_translation +} + +src_install() { + # remove unneeded copies of the GPL + rm Copying* docs/*/gpl.html || die + # don't install empty dirs + rmdir --ignore-fail-on-non-empty docs/* || die + + default +} + +pkg_preinst() { + xdg_pkg_preinst +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "URL support with media-video/mpv" net-misc/yt-dlp +} + +pkg_postrm() { + xdg_pkg_postrm +} diff --git a/media-video/subliminal/subliminal-2.2.1.ebuild b/media-video/subliminal/subliminal-2.2.1.ebuild index 2ced5f8b3782..d432d8ef9ca3 100644 --- a/media-video/subliminal/subliminal-2.2.1.ebuild +++ b/media-video/subliminal/subliminal-2.2.1.ebuild @@ -18,7 +18,7 @@ if [[ ${PV} == 9999 ]] ; then EGIT_BRANCH="develop" else SRC_URI="https://github.com/Diaoul/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" - KEYWORDS="~amd64 ~arm64 ~x86" + KEYWORDS="amd64 ~arm64 ~x86" fi SRC_URI+=" test? ( https://downloads.sourceforge.net/matroska/test_files/matroska_test_w1_1.zip )" diff --git a/media-video/totem/totem-43.0-r1.ebuild b/media-video/totem/totem-43.0-r1.ebuild index 99c261c6b5ea..500638a0f4ac 100644 --- a/media-video/totem/totem-43.0-r1.ebuild +++ b/media-video/totem/totem-43.0-r1.ebuild @@ -19,7 +19,7 @@ REQUIRED_USE=" " RESTRICT="!test? ( test )" -KEYWORDS="amd64 ~arm arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv x86" +KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~riscv x86" COMMON_DEPEND=" >=dev-libs/glib-2.72.0:2 diff --git a/media-video/ttcut/Manifest b/media-video/ttcut/Manifest index 5662cf041df6..08af0393fab4 100644 --- a/media-video/ttcut/Manifest +++ b/media-video/ttcut/Manifest @@ -1 +1,2 @@ DIST ttcut-0.19.6_p1.tar.gz 283304 BLAKE2B ee0d000a1cc091be1848746d3b32930ae5f59865d7fc04779be9aac4bc9621eaace88a6d9263c767671643d9ce381af2cf57fc5b87707903a5abe8a59eb6cb99 SHA512 9d104436145ef209db4eaca1566d718ccdf84636a391e3f47bd829a165741f57a6123942f37ba2eb361dd46716e78e36832cb9a459ca9ed0130a70af92287494 +DIST ttcut-0.19.6_p2.tar.gz 290868 BLAKE2B 9dfc140d720aca17966dff5be3581f35903fd7122a5385d1e576ce4d64aa96953dee231ffbadb14e83762b7a46973aa3f65202394c4c2ef35f87824c31014aa8 SHA512 61338658d35c4392dd3f3a85792dd6d502577a73c955257eee745a3be46f8761d92912e5d8150445346c799bcf5c0ffc30bc15682fc50e3c1798d5c0985c9baa diff --git a/media-video/ttcut/ttcut-0.19.6_p2.ebuild b/media-video/ttcut/ttcut-0.19.6_p2.ebuild new file mode 100644 index 000000000000..be8a11b21141 --- /dev/null +++ b/media-video/ttcut/ttcut-0.19.6_p2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit desktop qmake-utils xdg + +DESCRIPTION="Tool for cutting MPEG files especially for removing commercials" +HOMEPAGE="https://github.com/baltendorf/ttcut" +SRC_URI="https://dev.gentoo.org/~billie/distfiles/${P}.tar.gz" + +S=${WORKDIR}/${PN} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +DEPEND=" + >=media-libs/libmpeg2-0.4.0 + dev-qt/qtbase:6 + dev-qt/qtbase:6[gui] + dev-qt/qtbase:6[opengl] + dev-qt/qtbase:6[widgets] + virtual/glu + virtual/opengl +" +RDEPEND=" + ${DEPEND} + media-video/mjpegtools + media-video/mplayer + >=media-video/ffmpeg-1.0.8[encode] +" + +src_prepare() { + default + + xdg_environment_reset + + eqmake6 ttcut.pro +} + +src_install() { + dobin ttcut + + domenu "${FILESDIR}"/${PN}.desktop + + dodoc AUTHORS BUGS CHANGELOG README.* TODO +} diff --git a/media-video/vcdimager/vcdimager-2.0.1.ebuild b/media-video/vcdimager/vcdimager-2.0.1.ebuild index ef677b24f99a..e426f812b722 100644 --- a/media-video/vcdimager/vcdimager-2.0.1.ebuild +++ b/media-video/vcdimager/vcdimager-2.0.1.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://gnu/${PN}/${P}.tar.gz" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86" +KEYWORDS="~alpha amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86" IUSE="static-libs +xml" RDEPEND=" diff --git a/media-video/vdr/vdr-2.6.9.ebuild b/media-video/vdr/vdr-2.6.9.ebuild index b6cea5c029fe..62092ddacd56 100644 --- a/media-video/vdr/vdr-2.6.9.ebuild +++ b/media-video/vdr/vdr-2.6.9.ebuild @@ -13,7 +13,7 @@ SRC_URI="http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/${PV};sf=tbz2 -> $ LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" +KEYWORDS="amd64 ~arm ~arm64 ~ppc x86" IUSE="bidi debug demoplugins html keyboard mainmenuhooks menuorg naludump permashift pinplugin systemd ttxtsubs verbose" COMMON_DEPEND=" diff --git a/media-video/vlc/Manifest b/media-video/vlc/Manifest index 8cf48b2f4863..6d8c4a110fc2 100644 --- a/media-video/vlc/Manifest +++ b/media-video/vlc/Manifest @@ -1,2 +1 @@ -DIST vlc-3.0.20.tar.xz 25596392 BLAKE2B 4537d6b4b3445a28366cdb7ed7e12d0dc864e19a53d34efcdc0a62226642ec8653cf8d5b74d4aea30c9f324c34166e8fa71653b3b298f5abdebe29c4f21f2865 SHA512 02e58fb52dd75bf483ac4b298aecf86463b13d4782173d164adba6e4552d9262ff5e2ee1cbe1bce2c8a809801b79f328c6a8c475d34ae62aefaea02ae5ade406 DIST vlc-3.0.21.tar.xz 25649288 BLAKE2B 0ad05282d624611ba8a2b6ca062c68aabeac8f37410dd427cc9b8c0d107af48ed203b73978e2fe83e8171ea6b78caa51394f3497061b561447dbb41058e1af9f SHA512 cb1af76c8056648c331d7e6e0680d161ed1849eb635987504f45eae02531e9b432651034317fa7e02b0722905dfb9f0f5dad67b5924cc62edcaf0d173ac36aee diff --git a/media-video/vlc/files/vlc-3.0.20-c99-2.patch b/media-video/vlc/files/vlc-3.0.20-c99-2.patch deleted file mode 100644 index 56397d913d8e..000000000000 --- a/media-video/vlc/files/vlc-3.0.20-c99-2.patch +++ /dev/null @@ -1,23 +0,0 @@ -https://bugs.gentoo.org/926261 -https://code.videolan.org/videolan/vlc/-/commit/770789f265761fc7ab2de69ca105fec4ad93d9e2 - -From 770789f265761fc7ab2de69ca105fec4ad93d9e2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> -Date: Mon, 26 Feb 2018 20:36:29 +0200 -Subject: [PATCH] chromaprint: missing cast - -(cherry picked from commit 7bd5bab3e43ae187f7219db61ed85d06d2ba0547) -Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz> ---- a/modules/stream_out/chromaprint.c -+++ b/modules/stream_out/chromaprint.c -@@ -231,7 +231,7 @@ static int Send( sout_stream_t *p_stream, sout_stream_id_sys_t *id, - if ( !p_sys->b_finished && id->i_samples > 0 && p_buf->i_buffer ) - { - if(! chromaprint_feed( p_sys->p_chromaprint_ctx, -- p_buf->p_buffer, -+ (int16_t *)p_buf->p_buffer, - p_buf->i_buffer / BYTESPERSAMPLE ) ) - msg_Warn( p_stream, "feed error" ); - id->i_samples -= i_samples; --- -GitLab diff --git a/media-video/vlc/files/vlc-3.0.20-c99.patch b/media-video/vlc/files/vlc-3.0.20-c99.patch deleted file mode 100644 index 135e1e6b9e5b..000000000000 --- a/media-video/vlc/files/vlc-3.0.20-c99.patch +++ /dev/null @@ -1,150 +0,0 @@ -https://bugs.gentoo.org/919068 -https://code.videolan.org/videolan/vlc/-/issues/28441 -https://code.videolan.org/videolan/vlc/-/merge_requests/4645 - -From 1e2918115ca2f5c4ffde00dc02ad89525714f6c2 Mon Sep 17 00:00:00 2001 -From: Thomas Guillem <thomas@gllm.fr> -Date: Tue, 5 Dec 2023 09:23:35 +0100 -Subject: [PATCH 1/5] input: fix incompatible-pointer-types assignment - -Fixes #28441 ---- a/src/input/input_internal.h -+++ b/src/input/input_internal.h -@@ -117,7 +117,7 @@ typedef struct input_thread_private_t - - /* Title infos FIXME multi-input (not easy) ? */ - int i_title; -- const input_title_t **title; -+ input_title_t * const *title; - - int i_title_offset; - int i_seekpoint_offset; --- -GitLab - - -From adcf4e66e2ce2c382bb97957c91bfde040f4f3ca Mon Sep 17 00:00:00 2001 -From: Zhao Zhili <quinkblack@foxmail.com> -Date: Thu, 1 Mar 2018 14:25:59 +0800 -Subject: [PATCH 2/5] yadif: fix variable type - -Signed-off-by: Thomas Guillem <thomas@gllm.fr> -(cherry picked from commit 77b86f4452be4dbe0d56a9cd1b66da61b116da60) -Signed-off-by: Thomas Guillem <thomas@gllm.fr> ---- a/modules/video_filter/deinterlace/yadif.h -+++ b/modules/video_filter/deinterlace/yadif.h -@@ -140,10 +140,10 @@ static void yadif_filter_line_c(uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8 - } - - static void yadif_filter_line_c_16bit(uint8_t *dst8, uint8_t *prev8, uint8_t *cur8, uint8_t *next8, int w, int prefs, int mrefs, int parity, int mode) { -- uint8_t *dst = (uint8_t *)dst8; -- uint8_t *prev = (uint8_t *)prev8; -- uint8_t *cur = (uint8_t *)cur8; -- uint8_t *next = (uint8_t *)next8; -+ uint16_t *dst = (uint16_t *)dst8; -+ uint16_t *prev = (uint16_t *)prev8; -+ uint16_t *cur = (uint16_t *)cur8; -+ uint16_t *next = (uint16_t *)next8; - int x; - uint16_t *prev2= parity ? prev : cur ; - uint16_t *next2= parity ? cur : next; --- -GitLab - - -From 45198e5328ff2b2f4eb2fb76add0789fec26270f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> -Date: Sun, 3 Mar 2019 09:59:10 +0200 -Subject: [PATCH 3/5] swscale: avoid invalid pointer conversion - -(cherry picked from commit ab00e6c59d42e05ab08893091783d8b5febc0058) -Signed-off-by: Thomas Guillem <thomas@gllm.fr> ---- a/modules/video_chroma/swscale.c -+++ b/modules/video_chroma/swscale.c -@@ -588,8 +588,9 @@ static void Convert( filter_t *p_filter, struct SwsContext *ctx, - { - filter_sys_t *p_sys = p_filter->p_sys; - uint8_t palette[AVPALETTE_SIZE]; -- uint8_t *src[4]; int src_stride[4]; -- uint8_t *dst[4]; int dst_stride[4]; -+ uint8_t *src[4], *dst[4]; -+ const uint8_t *csrc[4]; -+ int src_stride[4], dst_stride[4]; - - GetPixels( src, src_stride, p_sys->desc_in, &p_filter->fmt_in.video, - p_src, i_plane_count, b_swap_uvi ); -@@ -606,11 +607,14 @@ static void Convert( filter_t *p_filter, struct SwsContext *ctx, - GetPixels( dst, dst_stride, p_sys->desc_out, &p_filter->fmt_out.video, - p_dst, i_plane_count, b_swap_uvo ); - -+ for (size_t i = 0; i < ARRAY_SIZE(src); i++) -+ csrc[i] = src[i]; -+ - #if LIBSWSCALE_VERSION_INT >= ((0<<16)+(5<<8)+0) -- sws_scale( ctx, src, src_stride, 0, i_height, -+ sws_scale( ctx, csrc, src_stride, 0, i_height, - dst, dst_stride ); - #else -- sws_scale_ordered( ctx, src, src_stride, 0, i_height, -+ sws_scale_ordered( ctx, csrc, src_stride, 0, i_height, - dst, dst_stride ); - #endif - } --- -GitLab - - -From 4431076ad4a21fdcabd3f7ef1d61c45891689b0c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> -Date: Sun, 3 Mar 2019 17:20:04 +0200 -Subject: [PATCH 4/5] dynamicoverlay: fix variable shadowing - -(cherry picked from commit d42e05d6b2c061ae352c131d5aebf8c8d8aa6d35) -Signed-off-by: Thomas Guillem <thomas@gllm.fr> ---- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c -+++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c -@@ -899,12 +899,11 @@ static const commanddesc_static_t p_commands[] = - void RegisterCommand( filter_t *p_filter ) - { - filter_sys_t *p_sys = (filter_sys_t*) p_filter->p_sys; -- size_t i_index = 0; - - p_sys->i_commands = ARRAY_SIZE(p_commands); - p_sys->pp_commands = (commanddesc_t **) calloc( p_sys->i_commands, sizeof(commanddesc_t*) ); - if( !p_sys->pp_commands ) return; -- for( i_index = 0; i_index < p_sys->i_commands; i_index ++ ) -+ for( size_t i_index = 0; i_index < p_sys->i_commands; i_index ++ ) - { - p_sys->pp_commands[i_index] = (commanddesc_t *) malloc( sizeof(commanddesc_t) ); - if( !p_sys->pp_commands[i_index] ) return; --- -GitLab - - -From fda14fc7c013eb75291df10cc8b88336c51328ad Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> -Date: Mon, 26 Feb 2018 20:43:03 +0200 -Subject: [PATCH 5/5] dynamicoverlay: fix memory corruption - -Font alpha is 8-bits, not 32-bits. - -(cherry picked from commit 6f14081af7325d334a53126c4eea52bc30fc08a0) -Signed-off-by: Thomas Guillem <thomas@gllm.fr> ---- a/modules/spu/dynamicoverlay/dynamicoverlay_commands.c -+++ b/modules/spu/dynamicoverlay/dynamicoverlay_commands.c -@@ -234,8 +234,12 @@ static int parser_SetTextAlpha( char *psz_command, char *psz_end, - skip_space( &psz_command ); - if( isdigit( (unsigned char)*psz_command ) ) - { -- if( parse_digit( &psz_command, &p_params->fontstyle.i_font_alpha ) == VLC_EGENERIC ) -+ int32_t value; -+ -+ if( parse_digit( &psz_command, &value ) == VLC_EGENERIC ) - return VLC_EGENERIC; -+ -+ p_params->fontstyle.i_font_alpha = value; - } - return VLC_SUCCESS; - } --- -GitLab diff --git a/media-video/vlc/vlc-3.0.20-r11.ebuild b/media-video/vlc/vlc-3.0.20-r11.ebuild deleted file mode 100644 index 9559fbe675d4..000000000000 --- a/media-video/vlc/vlc-3.0.20-r11.ebuild +++ /dev/null @@ -1,519 +0,0 @@ -# Copyright 2000-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -LUA_COMPAT=( lua5-{1..2} ) - -MY_PV="${PV/_/-}" -MY_PV="${MY_PV/-beta/-test}" -MY_P="${PN}-${MY_PV}" -if [[ ${PV} = *9999 ]] ; then - if [[ ${PV%.9999} != ${PV} ]] ; then - EGIT_BRANCH="3.0.x" - fi - EGIT_REPO_URI="https://code.videolan.org/videolan/vlc.git" - inherit git-r3 -else - if [[ ${MY_P} = ${P} ]] ; then - SRC_URI="https://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.xz" - else - SRC_URI="https://download.videolan.org/pub/videolan/testing/${MY_P}/${MY_P}.tar.xz" - fi - KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv -sparc x86" -fi -inherit autotools flag-o-matic lua-single toolchain-funcs virtualx xdg - -DESCRIPTION="Media player and framework with support for most multimedia files and streaming" -HOMEPAGE="https://www.videolan.org/vlc/" - -LICENSE="LGPL-2.1 GPL-2" -SLOT="0/5-9" # vlc - vlccore - -IUSE="a52 alsa aom archive aribsub bidi bluray cddb chromaprint chromecast dav1d dbus - dc1394 debug directx dts +dvbpsi dvd +encode faad fdk +ffmpeg flac fluidsynth - fontconfig +gcrypt gme keyring gstreamer +gui ieee1394 jack jpeg kate - libass libcaca libnotify +libsamplerate libtar libtiger linsys lirc live lua - macosx-notifications mad matroska modplug mp3 mpeg mtp musepack ncurses nfs ogg - omxil optimisememory opus png projectm pulseaudio rdp run-as-root samba sdl-image - sftp shout sid skins soxr speex srt ssl svg taglib theora tremor truetype twolame - udev upnp vaapi v4l vdpau vnc vpx wayland +X x264 x265 xml zeroconf zvbi - cpu_flags_arm_neon cpu_flags_ppc_altivec cpu_flags_x86_mmx cpu_flags_x86_sse -" -REQUIRED_USE=" - chromecast? ( encode ) - directx? ( ffmpeg ) - fontconfig? ( truetype ) - libcaca? ( X ) - libtar? ( skins ) - libtiger? ( kate ) - lua? ( ${LUA_REQUIRED_USE} ) - skins? ( archive gui truetype X xml ) - ssl? ( gcrypt ) - vaapi? ( ffmpeg X ) - vdpau? ( ffmpeg X ) -" -BDEPEND=" - >=sys-devel/gettext-0.19.8 - virtual/pkgconfig - lua? ( ${LUA_DEPS} ) - amd64? ( dev-lang/yasm ) - wayland? ( dev-util/wayland-scanner ) - x86? ( dev-lang/yasm ) -" -# <ffmpeg-5 dep for USE="ffmpeg vaapi" for bug #864721 -RDEPEND=" - media-libs/libvorbis - net-dns/libidn:= - sys-libs/zlib - virtual/libintl - virtual/opengl - a52? ( media-libs/a52dec ) - alsa? ( media-libs/alsa-lib ) - aom? ( media-libs/libaom:= ) - archive? ( app-arch/libarchive:= ) - aribsub? ( media-libs/aribb24 ) - bidi? ( - dev-libs/fribidi - media-libs/freetype:2[harfbuzz] - media-libs/harfbuzz:= - virtual/ttf-fonts - ) - bluray? ( >=media-libs/libbluray-1.3.0:= ) - cddb? ( media-libs/libcddb ) - chromaprint? ( media-libs/chromaprint:= ) - chromecast? ( - >=dev-libs/protobuf-2.5.0:= - >=net-libs/libmicrodns-0.1.2:= - ) - dav1d? ( media-libs/dav1d:= ) - dbus? ( sys-apps/dbus ) - dc1394? ( - media-libs/libdc1394:2 - sys-libs/libraw1394 - ) - dts? ( media-libs/libdca ) - dvbpsi? ( >=media-libs/libdvbpsi-1.2.0:= ) - dvd? ( - >=media-libs/libdvdnav-6.1.1:= - >=media-libs/libdvdread-6.1.2:= - ) - faad? ( media-libs/faad2 ) - fdk? ( media-libs/fdk-aac:= ) - ffmpeg? ( >=media-video/ffmpeg-3.1.3:=[postproc,vaapi?,vdpau?] ) - flac? ( - media-libs/flac:= - media-libs/libogg - ) - fluidsynth? ( media-sound/fluidsynth:= ) - fontconfig? ( media-libs/fontconfig:1.0 ) - gcrypt? ( - dev-libs/libgcrypt:= - dev-libs/libgpg-error - ) - gme? ( media-libs/game-music-emu ) - keyring? ( app-crypt/libsecret ) - gstreamer? ( >=media-libs/gst-plugins-base-1.4.5:1.0 ) - gui? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - X? ( - dev-qt/qtx11extras:5 - x11-libs/libX11 - ) - ) - ieee1394? ( - sys-libs/libavc1394 - sys-libs/libraw1394 - ) - jack? ( virtual/jack ) - jpeg? ( media-libs/libjpeg-turbo:0 ) - kate? ( media-libs/libkate ) - libass? ( - media-libs/fontconfig:1.0 - media-libs/libass:= - ) - libcaca? ( media-libs/libcaca ) - libnotify? ( - dev-libs/glib:2 - x11-libs/gdk-pixbuf:2 - x11-libs/gtk+:3 - x11-libs/libnotify - ) - libsamplerate? ( media-libs/libsamplerate ) - libtar? ( dev-libs/libtar ) - libtiger? ( media-libs/libtiger ) - linsys? ( media-libs/zvbi ) - lirc? ( app-misc/lirc ) - live? ( media-plugins/live:= ) - lua? ( ${LUA_DEPS} ) - mad? ( media-libs/libmad ) - matroska? ( - >=dev-libs/libebml-1.4.2:= - media-libs/libmatroska:= - ) - modplug? ( >=media-libs/libmodplug-0.8.9.0 ) - mp3? ( media-sound/mpg123-base ) - mpeg? ( media-libs/libmpeg2 ) - mtp? ( media-libs/libmtp:= ) - musepack? ( media-sound/musepack-tools ) - ncurses? ( sys-libs/ncurses:=[unicode(+)] ) - nfs? ( >=net-fs/libnfs-0.10.0:= ) - ogg? ( media-libs/libogg ) - opus? ( >=media-libs/opus-1.0.3 ) - png? ( media-libs/libpng:0= ) - projectm? ( - media-fonts/dejavu - >=media-libs/libprojectm-3.1.12:0= - ) - pulseaudio? ( media-libs/libpulse ) - rdp? ( >=net-misc/freerdp-2.0.0_rc0:2= ) - samba? ( >=net-fs/samba-4.0.0:0[client,-debug(-)] ) - sdl-image? ( media-libs/sdl-image ) - sftp? ( net-libs/libssh2 ) - shout? ( media-libs/libshout ) - sid? ( media-libs/libsidplay:2 ) - skins? ( - x11-libs/libXext - x11-libs/libXinerama - x11-libs/libXpm - ) - soxr? ( >=media-libs/soxr-0.1.2 ) - speex? ( - >=media-libs/speex-1.2.0 - media-libs/speexdsp - ) - srt? ( >=net-libs/srt-1.4.2:= ) - ssl? ( net-libs/gnutls:= ) - svg? ( - gnome-base/librsvg:2 - x11-libs/cairo - ) - taglib? ( >=media-libs/taglib-1.9 ) - theora? ( media-libs/libtheora ) - tremor? ( media-libs/tremor ) - truetype? ( - media-libs/freetype:2 - virtual/ttf-fonts - !fontconfig? ( media-fonts/dejavu ) - ) - twolame? ( media-sound/twolame ) - udev? ( virtual/udev ) - upnp? ( net-libs/libupnp:=[ipv6(+)] ) - v4l? ( media-libs/libv4l:= ) - vaapi? ( - <media-video/ffmpeg-5 - media-libs/libva:=[drm(+),wayland?,X?] - ) - vdpau? ( x11-libs/libvdpau ) - vnc? ( net-libs/libvncserver ) - vpx? ( media-libs/libvpx:= ) - wayland? ( - >=dev-libs/wayland-1.15 - dev-libs/wayland-protocols - ) - X? ( - x11-libs/libX11 - x11-libs/libxcb - x11-libs/xcb-util - x11-libs/xcb-util-keysyms - ) - x264? ( >=media-libs/x264-0.0.20190214:= ) - x265? ( media-libs/x265:= ) - xml? ( dev-libs/libxml2:2 ) - zeroconf? ( net-dns/avahi[dbus] ) - zvbi? ( media-libs/zvbi ) -" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto ) -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.1.0-fix-libtremor-libs.patch # build system - "${FILESDIR}"/${PN}-2.2.8-freerdp-2.patch # bug 590164 - "${FILESDIR}"/${PN}-3.0.6-fdk-aac-2.0.0.patch # bug 672290 - "${FILESDIR}"/${PN}-3.0.11.1-configure_lua_version.patch - "${FILESDIR}"/${PN}-3.0.18-drop-minizip-dep.patch - "${FILESDIR}"/${PN}-3.0.20-c99.patch - "${FILESDIR}"/${PN}-3.0.20-c99-2.patch -) - -DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt ) - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - if use lua; then - lua-single_pkg_setup - fi -} - -src_prepare() { - default - - # bug 608256 - xdg_environment_reset - - has_version 'net-libs/libupnp:1.8' && \ - eapply "${FILESDIR}"/${PN}-2.2.8-libupnp-slot-1.8.patch - - # Bootstrap when we are on a git checkout. - if [[ ${PV} = *9999 ]] ; then - ./bootstrap - fi - - # Make it build with libtool 1.5 - rm m4/lt* m4/libtool.m4 || die - - # We are not in a real git checkout due to the absence of a .git directory. - touch src/revision.txt || die - - # Don't use --started-from-file when not using dbus. - if ! use dbus ; then - sed -i 's/ --started-from-file//' share/vlc.desktop.in || die - fi - - # Disable running of vlc-cache-gen, we do that in pkg_postinst - sed -e "/test.*build.*host/s/\$(host)/nothanks/" \ - -i Makefile.am -i bin/Makefile.am || die "Failed to disable vlc-cache-gen" - - # Fix gettext version mismatch errors. - sed -i -e s/GETTEXT_VERSION/GETTEXT_REQUIRE_VERSION/ configure.ac || die - - eautoreconf - - # Disable automatic running of tests. - find . -name 'Makefile.in' -exec sed -i 's/\(..*\)check-TESTS/\1/' {} \; || die -} - -src_configure() { - local -x BUILDCC="$(tc-getBUILD_CC)" - - local myeconfargs=( - --disable-aa - --disable-optimizations - --disable-rpath - --disable-update-check - --enable-fast-install - --enable-screen - --enable-vcd - --enable-vlc - --enable-vorbis - $(use_enable a52) - $(use_enable alsa) - $(use_enable aom) - $(use_enable archive) - $(use_enable aribsub) - $(use_enable bidi fribidi) - $(use_enable bidi harfbuzz) - $(use_enable bluray) - $(use_enable cddb libcddb) - $(use_enable chromaprint) - $(use_enable chromecast) - $(use_enable chromecast microdns) - $(use_enable cpu_flags_arm_neon neon) - $(use_enable cpu_flags_ppc_altivec altivec) - $(use_enable cpu_flags_x86_mmx mmx) - $(use_enable cpu_flags_x86_sse sse) - $(use_enable dav1d) - $(use_enable dbus) - $(use_enable dbus kwallet) - $(use_enable dc1394) - $(use_enable debug) - $(use_enable directx) - $(use_enable directx d3d11va) - $(use_enable directx dxva2) - $(use_enable dts dca) - $(use_enable dvbpsi) - $(use_enable dvd dvdnav) - $(use_enable dvd dvdread) - $(use_enable encode sout) - $(use_enable encode vlm) - $(use_enable faad) - $(use_enable fdk fdkaac) - $(use_enable ffmpeg avcodec) - $(use_enable ffmpeg avformat) - $(use_enable ffmpeg postproc) - $(use_enable ffmpeg swscale) - $(use_enable flac) - $(use_enable fluidsynth) - $(use_enable fontconfig) - $(use_enable gcrypt libgcrypt) - $(use_enable gme) - $(use_enable keyring secret) - $(use_enable gstreamer gst-decode) - $(use_enable gui qt) - $(use_enable ieee1394 dv1394) - $(use_enable jack) - $(use_enable jpeg) - $(use_enable kate) - $(use_enable libass) - $(use_enable libcaca caca) - $(use_enable libnotify notify) - $(use_enable libsamplerate samplerate) - $(use_enable libtar) - $(use_enable libtiger tiger) - $(use_enable linsys) - $(use_enable lirc) - $(use_enable live live555) - $(use_enable lua) - $(use_enable macosx-notifications osx-notifications) - $(use_enable mad) - $(use_enable matroska) - $(use_enable modplug mod) - $(use_enable mp3 mpg123) - $(use_enable mpeg libmpeg2) - $(use_enable mtp) - $(use_enable musepack mpc) - $(use_enable ncurses) - $(use_enable nfs) - $(use_enable ogg) - $(use_enable omxil) - $(use_enable omxil omxil-vout) - $(use_enable optimisememory optimize-memory) - $(use_enable opus) - $(use_enable png) - $(use_enable projectm) - $(use_enable pulseaudio pulse) - $(use_enable rdp freerdp) - $(use_enable run-as-root) - $(use_enable samba smbclient) - $(use_enable sdl-image) - $(use_enable sftp) - $(use_enable shout) - $(use_enable sid) - $(use_enable skins skins2) - $(use_enable soxr) - $(use_enable speex) - $(use_enable srt) - $(use_enable ssl gnutls) - $(use_enable svg) - $(use_enable svg svgdec) - $(use_enable taglib) - $(use_enable theora) - $(use_enable tremor) - $(use_enable twolame) - $(use_enable udev) - $(use_enable upnp) - $(use_enable v4l v4l2) - $(use_enable vaapi libva) - $(use_enable vdpau) - $(use_enable vnc) - $(use_enable vpx) - $(use_enable wayland) - $(use_with X x) - $(use_enable X xcb) - $(use_enable X xvideo) - $(use_enable x264) - $(use_enable x264 x26410b) - $(use_enable x265) - $(use_enable xml libxml2) - $(use_enable zeroconf avahi) - $(use_enable zvbi) - $(use_enable !zvbi telx) - --with-kde-solid="${EPREFIX}"/usr/share/solid/actions - --disable-asdcp - --disable-coverage - --disable-cprof - --disable-crystalhd - --disable-decklink - --disable-gles2 - --disable-goom - --disable-kai - --disable-kva - --disable-libplacebo - --disable-maintainer-mode - --disable-merge-ffmpeg - --disable-mfx - --disable-mmal - --disable-opencv - --disable-opensles - --disable-oss - --disable-rpi-omxil - --disable-schroedinger - --disable-shine - --disable-sndio - --disable-spatialaudio - --disable-vsxu - --disable-wasapi - --disable-wma-fixed - ) - # ^ We don't have these disabled libraries in the Portage tree yet. - - # https://code.videolan.org/videolan/vlc/-/issues/17626 (bug #861143) - append-flags -fno-strict-aliasing - filter-lto - - # Compatibility fix for Samba 4. - use samba && append-cppflags "-I${ESYSROOT}/usr/include/samba-4.0" - - if use x86; then - # We need to disable -fstack-check if use >=gcc 4.8.0. bug #499996 - append-cflags $(test-flags-CC -fno-stack-check) - # Bug 569774 - replace-flags -Os -O2 - fi - - # FIXME: Needs libresid-builder from libsidplay:2 which is in another directory... - append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/sidplay/builders/" - - if use riscv; then - # bug #803473 - append-libs -latomic - fi - - if use truetype || use bidi; then - myeconfargs+=( --enable-freetype ) - else - myeconfargs+=( --disable-freetype ) - fi - - if use truetype || use projectm; then - local dejavu="${EPREFIX}/usr/share/fonts/dejavu/" - myeconfargs+=( - --with-default-font=${dejavu}/DejaVuSans.ttf - --with-default-font-family=Sans - --with-default-monospace-font=${dejavu}/DejaVuSansMono.ttf - --with-default-monospace-font-family=Monospace - ) - fi - - econf "${myeconfargs[@]}" - - # _FORTIFY_SOURCE is set to 2 in config.h, which is also the default value on Gentoo. - # Other values may break the build (bug 523144), so definition should not be removed. - # To prevent redefinition warnings, we undefine _FORTIFY_SOURCE at the start of config.h - sed -i '1i#undef _FORTIFY_SOURCE' config.h || die -} - -src_test() { - virtx emake check-TESTS -} - -src_install() { - default - find "${ED}" -name '*.la' -delete || die -} - -pkg_postinst() { - if [[ -z "${ROOT}" ]] && [[ -x "${EROOT}/usr/$(get_libdir)/vlc/vlc-cache-gen" ]] ; then - einfo "Running ${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen on ${EROOT}/usr/$(get_libdir)/vlc/plugins/" - "${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen" "${EROOT}/usr/$(get_libdir)/vlc/plugins/" - else - ewarn "We cannot run vlc-cache-gen (most likely ROOT != /)" - ewarn "Please run ${EPREFIX}/usr/$(get_libdir)/vlc/vlc-cache-gen manually" - ewarn "If you do not do it, vlc will take a long time to load." - fi - - xdg_pkg_postinst -} - -pkg_postrm() { - if [[ -e "${EROOT}"/usr/$(get_libdir)/vlc/plugins/plugins.dat ]]; then - rm "${EROOT}"/usr/$(get_libdir)/vlc/plugins/plugins.dat || die "Failed to rm plugins.dat" - fi - - xdg_pkg_postrm -} diff --git a/media-video/vlc/vlc-3.0.21.ebuild b/media-video/vlc/vlc-3.0.21.ebuild index 68f0efe4be9a..a133a040f602 100644 --- a/media-video/vlc/vlc-3.0.21.ebuild +++ b/media-video/vlc/vlc-3.0.21.ebuild @@ -20,7 +20,7 @@ else else SRC_URI="https://download.videolan.org/pub/videolan/testing/${MY_P}/${MY_P}.tar.xz" fi - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv -sparc ~x86" + KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv -sparc x86" fi inherit autotools flag-o-matic lua-single toolchain-funcs virtualx xdg diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest index 05bb9ac24752..f05acee20f6e 100644 --- a/media-video/wireplumber/Manifest +++ b/media-video/wireplumber/Manifest @@ -1,4 +1,2 @@ -DIST wireplumber-0.4.17.tar.bz2 330355 BLAKE2B fec1cf75bec687bff1cb48416cf22503a79609cf11220ab9353d3b8038cae1db63da8aa269aca034c0c0afd474e2ba89b236bb7e778da111516e3b15d5449f02 SHA512 5efb71091f262458bc912f4670249fac3ef858021785fbee9be749564a3fa452b1c4ff75634132f7d44fd06d7fc5ea2debb022b1f4a8d5c9c3afa992fab7ecf8 -DIST wireplumber-0.5.2.tar.bz2 408788 BLAKE2B 51a9c0268212b353b54099d2d57fd93dec5b42d4ec3151f93b4ebd4df3f4478a19858ec8302af58558a9387afa647a00a0872d471f0f2ea5e681978afbdcf553 SHA512 4cd2949739b8af86f73e072fe8c1d8606fa9be77b6e109aa0825d516f11953c4811ae1162da07ae245f7039f4243d01c43b8e9c083d4e0be1066b180484abbfb DIST wireplumber-0.5.3.tar.bz2 411081 BLAKE2B 627cb0adaddd512e2b5f2e706b622972232f76000d690837da5f03a3628669b99c4768de6590ec378684311915626de7ac3316bda1f5d1152c9df448ec41e389 SHA512 1c62f7f919242b2a9586ff6a532f214b564bcf10c838eae4a64078edf6fd461fc65f364c8af79150e33b86594331446516a1a4c926bb245a4b2ba2d9f63f7243 -DIST wireplumber-0.5.5.tar.bz2 411519 BLAKE2B 016641b6b21b6176b0f3f70c0c96ccd32ea4d3609bf337a3c9af6e8219cb160a92e30027e3187adb023d0c35ad822ce9be374d098eab76508f218a7ae2528754 SHA512 50ddc6f275bba89ddac0e55dd2a572a13ca19953bce6bdbca14eadd44f3669c7ad4b39ae857770543567a05ea3e437ccee36a2538fad1f4caa777036ace04f77 +DIST wireplumber-0.5.6.tar.bz2 415566 BLAKE2B 7f5323ddea415bac31bbb5f05b711e52bd631d9e6c4b22b6055055761a19c0a4c16a36a90ecd0f90c3fbfaddad8be57e823ad0b97327569e94074bee21d5e31c SHA512 58b18c1c1f1040e9954de75488a82ff7504fb908f7e5d57dd219f3479612551c94a1384d399a99b983f66859560aaf71c8ab9414318e48abb6f8cd3b88fcecc8 diff --git a/media-video/wireplumber/files/wireplumber-0.4.15-config-disable-sound-server-parts.patch b/media-video/wireplumber/files/wireplumber-0.4.15-config-disable-sound-server-parts.patch deleted file mode 100644 index b4f3ecd311f7..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.15-config-disable-sound-server-parts.patch +++ /dev/null @@ -1,24 +0,0 @@ -commit 3d86f51d2c43fd76be2450a8c27836fdd8619cfa -Author: Igor V. Kovalenko <igor.v.kovalenko@gmail.com> -Date: Sun May 15 18:19:03 2022 +0300 - - config: Disable alsa and bluez monitors by default ---- a/src/config/bluetooth.lua.d/50-bluez-config.lua -+++ b/src/config/bluetooth.lua.d/50-bluez-config.lua -@@ -1,4 +1,4 @@ --bluez_monitor.enabled = true -+bluez_monitor.enabled = false - - bluez_monitor.properties = { - -- Enabled roles (default: [ a2dp_sink a2dp_source bap_sink bap_source hfp_hf hfp_ag ]) ---- a/src/config/main.lua.d/50-alsa-config.lua -+++ b/src/config/main.lua.d/50-alsa-config.lua -@@ -1,4 +1,4 @@ --alsa_monitor.enabled = true -+alsa_monitor.enabled = false - - alsa_monitor.properties = { - -- Create a JACK device. This is not enabled by default because --- -2.42.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.5.6-bluetooth-only-autoswitch.patch b/media-video/wireplumber/files/wireplumber-0.5.6-bluetooth-only-autoswitch.patch new file mode 100644 index 000000000000..779a4d4f21bf --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.5.6-bluetooth-only-autoswitch.patch @@ -0,0 +1,64 @@ +https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/715 +https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/669 +https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/b68a6794cd5c3702a2144be60c41a9ca982c416b + +From b68a6794cd5c3702a2144be60c41a9ca982c416b Mon Sep 17 00:00:00 2001 +From: Pauli Virtanen <pav@iki.fi> +Date: Sun, 8 Sep 2024 20:22:41 +0300 +Subject: [PATCH] autoswitch-bluetooth-profile: switch only Bluetooth devices + +Handle only devices associated with Bluetooth loopback nodes. + +Make sure the node.link-group iteration cannot get stuck if there is a +loop in the link graph. +--- a/src/scripts/device/autoswitch-bluetooth-profile.lua ++++ b/src/scripts/device/autoswitch-bluetooth-profile.lua +@@ -301,13 +301,14 @@ end + + -- We consider a Stream of interest if it is linked to a bluetooth loopback + -- source filter +-local function checkStreamStatus (stream, node_om) ++local function checkStreamStatus (stream, node_om, visited_link_groups) + -- check if the stream is linked to a bluetooth loopback source + local stream_id = tonumber(stream["bound-id"]) + local peer_id = lutils.getNodePeerId (stream_id) + if peer_id ~= nil then + local bt_node = node_om:lookup { +- Constraint { "bound-id", "=", peer_id, type = "gobject" } ++ Constraint { "bound-id", "=", peer_id, type = "gobject" }, ++ Constraint { "bluez5.loopback", "=", "true", type = "pw" } + } + if bt_node ~= nil then + local dev_id = bt_node.properties["device.id"] +@@ -325,18 +326,27 @@ local function checkStreamStatus (stream, node_om) + else + -- Check if it is linked to a filter main node, and recursively advance if so + local filter_main_node = node_om:lookup { +- Constraint { "bound-id", "=", peer_id, type = "gobject" } ++ Constraint { "bound-id", "=", peer_id, type = "gobject" }, ++ Constraint { "node.link-group", "+", type = "pw" } + } + if filter_main_node ~= nil then + -- Now check all stream nodes for this filter + local filter_link_group = filter_main_node.properties ["node.link-group"] ++ if visited_link_groups == nil then ++ visited_link_groups = {} ++ end ++ if visited_link_groups [filter_link_group] then ++ return nil ++ else ++ visited_link_groups [filter_link_group] = true ++ end + for filter_stream_node in node_om:iterate { + Constraint { "media.class", "matches", "Stream/Input/Audio", type = "pw-global" }, + Constraint { "stream.monitor", "!", "true", type = "pw" }, + Constraint { "bluez5.loopback", "!", "true", type = "pw" }, + Constraint { "node.link-group", "=", filter_link_group, type = "pw" } + } do +- local dev_id = checkStreamStatus (filter_stream_node, node_om) ++ local dev_id = checkStreamStatus (filter_stream_node, node_om, visited_link_groups) + if dev_id ~= nil then + return dev_id + end +-- +GitLab diff --git a/media-video/wireplumber/files/wireplumber-0.5.6-config-disable-sound-server-parts.patch b/media-video/wireplumber/files/wireplumber-0.5.6-config-disable-sound-server-parts.patch new file mode 100644 index 000000000000..4e691e5790b3 --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.5.6-config-disable-sound-server-parts.patch @@ -0,0 +1,18 @@ +From ed5ce9c176db2e26ac9915b4d86c3a076a8093ae Mon Sep 17 00:00:00 2001 +From: "Igor V. Kovalenko" <igor.v.kovalenko@gmail.com> +Date: Fri, 2 Feb 2024 22:00:03 +0300 +Subject: [PATCH] config: Disable alsa and bluez monitors by default + +--- a/src/config/wireplumber.conf ++++ b/src/config/wireplumber.conf +@@ -72,8 +72,8 @@ wireplumber.profiles = { + + policy.standard = required + +- hardware.audio = required +- hardware.bluetooth = required ++ #hardware.audio = required ++ #hardware.bluetooth = required + hardware.video-capture = required + } + diff --git a/media-video/wireplumber/wireplumber-0.4.17-r1.ebuild b/media-video/wireplumber/wireplumber-0.4.17-r1.ebuild deleted file mode 100644 index 747c967706dc..000000000000 --- a/media-video/wireplumber/wireplumber-0.4.17-r1.ebuild +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 1999-2024 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/wireplumber/tree/rawhide -# -# 2. 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. - -LUA_COMPAT=( lua5-{3,4} ) - -inherit lua-single meson systemd - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git" - EGIT_BRANCH="master" - inherit git-r3 -else - SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2" - KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" -fi - -DESCRIPTION="Replacement for pipewire-media-session" -HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber" - -LICENSE="MIT" -SLOT="0/0.4" -IUSE="elogind system-service systemd test" - -REQUIRED_USE=" - ${LUA_REQUIRED_USE} - ?? ( elogind systemd ) - system-service? ( systemd ) -" - -RESTRICT="!test? ( test )" - -# introspection? ( dev-libs/gobject-introspection ) is valid but likely only used for doc building -BDEPEND=" - dev-libs/glib - dev-util/gdbus-codegen - dev-util/glib-utils - sys-devel/gettext - test? ( sys-apps/dbus ) -" - -DEPEND=" - ${LUA_DEPS} - >=dev-libs/glib-2.62 - >=media-video/pipewire-0.3.68:= - virtual/libintl - elogind? ( sys-auth/elogind ) - systemd? ( sys-apps/systemd ) -" - -# Any dev-lua/* deps get declared like this inside RDEPEND: -# $(lua_gen_cond_dep ' -# dev-lua/<NAME>[${LUA_USEDEP}] -# ') -RDEPEND="${DEPEND} - system-service? ( - acct-user/pipewire - acct-group/pipewire - ) -" - -DOCS=( {NEWS,README}.rst ) - -PATCHES=( - "${FILESDIR}"/${PN}-0.4.15-config-disable-sound-server-parts.patch # defer enabling sound server parts to media-video/pipewire -) - -src_configure() { - local emesonargs=( - -Ddaemon=true - -Dtools=true - -Dmodules=true - -Ddoc=disabled # Ebuild not wired up yet (Sphinx, Doxygen?) - -Dintrospection=disabled # Only used for Sphinx doc generation - -Dsystem-lua=true # We always unbundle everything we can - -Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version)) - $(meson_feature elogind) - $(meson_feature systemd) - $(meson_use system-service systemd-system-service) - $(meson_use systemd systemd-user-service) - -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir) - -Dsystemd-user-unit-dir=$(systemd_get_userunitdir) - $(meson_use test tests) - $(meson_use test dbus-tests) - ) - - meson_src_configure -} - -pkg_postinst() { - if systemd_is_booted ; then - ewarn "pipewire-media-session.service is no longer installed. You must switch" - ewarn "to wireplumber.service user unit before your next logout/reboot:" - ewarn "systemctl --user disable pipewire-media-session.service" - ewarn "systemctl --user --force enable wireplumber.service" - else - ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher" - ewarn "is started (a replacement for directly calling pipewire binary)." - ewarn - ewarn "Please ensure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist" - ewarn "or, if it does exist, that any reference to" - ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)." - fi - if use system-service; then - ewarn - ewarn "WARNING: you have enabled the system-service USE flag, which installs" - ewarn "the system-wide systemd units that enable WirePlumber 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 "box, and you are on your own with configuration." - ewarn - fi -} diff --git a/media-video/wireplumber/wireplumber-0.5.2.ebuild b/media-video/wireplumber/wireplumber-0.5.2.ebuild deleted file mode 100644 index ea1b71883dbb..000000000000 --- a/media-video/wireplumber/wireplumber-0.5.2.ebuild +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 1999-2024 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/wireplumber/tree/rawhide -# -# 2. 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. - -LUA_COMPAT=( lua5-{3,4} ) - -inherit lua-single meson systemd - -DESCRIPTION="Replacement for pipewire-media-session" -HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber" - -if [[ ${PV} == 9999 ]]; then - EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git" - EGIT_BRANCH="master" - inherit git-r3 -else - SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" -fi - -LICENSE="MIT" -SLOT="0/0.5" -IUSE="elogind system-service systemd test" - -REQUIRED_USE=" - ${LUA_REQUIRED_USE} - ?? ( elogind systemd ) - system-service? ( systemd ) -" - -RESTRICT="!test? ( test )" - -# introspection? ( dev-libs/gobject-introspection ) is valid but likely only used for doc building -BDEPEND=" - dev-libs/glib - dev-util/gdbus-codegen - dev-util/glib-utils - sys-devel/gettext - test? ( sys-apps/dbus ) -" -DEPEND=" - ${LUA_DEPS} - >=dev-libs/glib-2.68 - >=media-video/pipewire-1.0.5-r1:= - virtual/libintl - elogind? ( sys-auth/elogind ) - systemd? ( sys-apps/systemd ) -" -RDEPEND=" - ${DEPEND} - system-service? ( - acct-user/pipewire - acct-group/pipewire - ) -" - -DOCS=( {NEWS,README}.rst ) - -PATCHES=( - # Defer enabling sound server parts to media-video/pipewire - # TODO: Soon, we should be able to migrate to just a dropin at - # /usr/share. See https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/652#note_2399735. - "${FILESDIR}"/${PN}-0.4.81-config-disable-sound-server-parts.patch -) - -src_configure() { - local emesonargs=( - -Ddaemon=true - -Dtools=true - -Dmodules=true - # Ebuild not wired up yet (Sphinx, Doxygen?) - -Ddoc=disabled - # Only used for Sphinx doc generation - -Dintrospection=disabled - -Dsystem-lua=true - -Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version)) - $(meson_feature elogind) - $(meson_feature systemd) - $(meson_use system-service systemd-system-service) - $(meson_use systemd systemd-user-service) - -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir) - -Dsystemd-user-unit-dir=$(systemd_get_userunitdir) - $(meson_use test tests) - $(meson_use test dbus-tests) - ) - - meson_src_configure -} - -pkg_postinst() { - if systemd_is_booted ; then - ewarn "pipewire-media-session.service is no longer installed. You must switch" - ewarn "to wireplumber.service user unit before your next logout/reboot:" - ewarn "systemctl --user disable pipewire-media-session.service" - ewarn "systemctl --user --force enable wireplumber.service" - else - ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher" - ewarn "is started (a replacement for directly calling pipewire binary)." - ewarn - ewarn "Please ensure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist" - ewarn "or, if it does exist, that any reference to" - ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)." - fi - - if use system-service; then - ewarn - ewarn "WARNING: you have enabled the system-service USE flag, which installs" - ewarn "the system-wide systemd units that enable WirePlumber 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 "box, and you are on your own with configuration." - ewarn - fi -} diff --git a/media-video/wireplumber/wireplumber-0.5.5.ebuild b/media-video/wireplumber/wireplumber-0.5.6-r1.ebuild index a3a02062c4c1..1122490df73a 100644 --- a/media-video/wireplumber/wireplumber-0.5.5.ebuild +++ b/media-video/wireplumber/wireplumber-0.5.6-r1.ebuild @@ -23,7 +23,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 else SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2" - KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86" fi LICENSE="MIT" @@ -68,7 +68,9 @@ PATCHES=( # Defer enabling sound server parts to media-video/pipewire # TODO: Soon, we should be able to migrate to just a dropin at # /usr/share. See https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/652#note_2399735. - "${FILESDIR}"/${PN}-0.4.81-config-disable-sound-server-parts.patch + "${FILESDIR}"/${PN}-0.5.6-config-disable-sound-server-parts.patch + + "${FILESDIR}"/${P}-bluetooth-only-autoswitch.patch ) src_configure() { diff --git a/media-video/wireplumber/wireplumber-9999.ebuild b/media-video/wireplumber/wireplumber-9999.ebuild index a3a02062c4c1..05daac42ad03 100644 --- a/media-video/wireplumber/wireplumber-9999.ebuild +++ b/media-video/wireplumber/wireplumber-9999.ebuild @@ -68,7 +68,7 @@ PATCHES=( # Defer enabling sound server parts to media-video/pipewire # TODO: Soon, we should be able to migrate to just a dropin at # /usr/share. See https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/652#note_2399735. - "${FILESDIR}"/${PN}-0.4.81-config-disable-sound-server-parts.patch + "${FILESDIR}"/${PN}-0.5.6-config-disable-sound-server-parts.patch ) src_configure() { diff --git a/media-video/x264-encoder/Manifest b/media-video/x264-encoder/Manifest index b95b528c7338..df3438c35d15 100644 --- a/media-video/x264-encoder/Manifest +++ b/media-video/x264-encoder/Manifest @@ -1,2 +1,3 @@ DIST x264-0.0.20220222.tar.bz2 777236 BLAKE2B 45e57c48b4b889f5c7b4ce87d1442d26d907aac47fb7c586b34239317a8b74bb93eac3058eed766728fbca6370656d9a6f070e8992643984a89560e28edf206d SHA512 1cf864059f83731ac47008c1af1d9ac06d06283439cf883a020f8a76e0c7efc3b525791d11efe8784d0e39ded68dd03794f0502fa64cc07df2f2de064a55e1d9 DIST x264-0.0.20231114.tar.bz2 833229 BLAKE2B e8e60767d16ea11e55f9dd56f1c74535a06b07a498b91d4372872925915563b67fb917c5856e2e40e1f58acbab3142509d036cae8d56820bef0e16ee7bc35196 SHA512 7705c2827c6b280afc7403bce206f82ee94c1ba76c582d3e6ae017b9c4f08c4475ac70373f8a0bcda73046221456efc3f338c57aaf03c11f4d8e63f69bb94db5 +DIST x264-0.0.20240513.tar.bz2 841594 BLAKE2B fe88195c52d90e635a0aedef7d18886160147ba41cd1a692ae9a661b76608ac11e05aa5bc4628030f833d6a822cee187f3fbc4c015e094eb1b30c96783147124 SHA512 6d0d9e079d6c7650abb5c00ad60cf3cfe72a220b3ee7cd030d4daeefdd9feeb4d056cf2e01b2f8d2fb0a66ccc15cdde860237f8ac5eac42ede6e5444a81346f8 diff --git a/media-video/x264-encoder/x264-encoder-0.0.20240513.ebuild b/media-video/x264-encoder/x264-encoder-0.0.20240513.ebuild new file mode 100644 index 000000000000..488b1f76ddb7 --- /dev/null +++ b/media-video/x264-encoder/x264-encoder-0.0.20240513.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump with media-libs/x264 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="A free commandline encoder for X264/AVC streams" +HOMEPAGE="https://www.videolan.org/developers/x264.html" + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://code.videolan.org/videolan/x264.git" +else + X264_COMMIT="4613ac3c15fd75cebc4b9f65b7fb95e70a3acce1" + SRC_URI="https://code.videolan.org/videolan/x264/-/archive/${X264_COMMIT}/x264-${X264_COMMIT}.tar.bz2 -> ${P/-encoder}.tar.bz2" + KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86" + S="${WORKDIR}/${PN/-encoder}-${X264_COMMIT}" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="avs custom-cflags ffmpeg ffmpegsource +interlaced mp4 +threads" +REQUIRED_USE="ffmpegsource? ( ffmpeg )" + +RDEPEND=" + ~media-libs/x264-${PV}[interlaced=,threads=] + ffmpeg? ( media-video/ffmpeg:= ) + ffmpegsource? ( media-libs/ffmpegsource ) + mp4? ( >=media-video/gpac-0.5.2:= ) +" +ASM_DEP=">=dev-lang/nasm-2.13" +DEPEND=" + ${RDEPEND} + amd64? ( ${ASM_DEP} ) + x86? ( ${ASM_DEP} ) +" +BDEPEND="virtual/pkgconfig" + +src_configure() { + tc-export CC + + if [[ ${ABI} == x86 || ${ABI} == amd64 ]]; then + export AS="nasm" + else + export AS="${CC}" + fi + + # let upstream pick the optimization level by default + use custom-cflags || filter-flags -O? + + ./configure \ + --prefix="${EPREFIX}"/usr \ + --libdir="${EPREFIX}"/usr/$(get_libdir) \ + --system-libx264 \ + --host="${CHOST}" \ + --disable-lsmash \ + $(usex avs "" "--disable-avs") \ + $(usex ffmpeg "" "--disable-lavf --disable-swscale") \ + $(usex ffmpegsource "" "--disable-ffms") \ + $(usex interlaced "" "--disable-interlaced") \ + $(usex mp4 "" "--disable-gpac") \ + $(usex threads "" "--disable-thread") || die + + # this is a nasty workaround for bug #376925 for x264 that also applies + # here, needed because as upstream doesn't like us fiddling with their CFLAGS + if use custom-cflags; then + local cflags + cflags="$(grep "^CFLAGS=" config.mak | sed 's/CFLAGS=//')" + cflags="${cflags//$(get-flag O)/}" + cflags="${cflags//-O? /$(get-flag O) }" + cflags="${cflags//-g /}" + sed -i "s:^CFLAGS=.*:CFLAGS=${cflags//:/\\:}:" config.mak + fi +} diff --git a/media-video/x264-encoder/x264-encoder-9999.ebuild b/media-video/x264-encoder/x264-encoder-9999.ebuild index f688e3cb2d4e..488b1f76ddb7 100644 --- a/media-video/x264-encoder/x264-encoder-9999.ebuild +++ b/media-video/x264-encoder/x264-encoder-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,7 @@ if [[ ${PV} == 9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://code.videolan.org/videolan/x264.git" else - X264_COMMIT="c196240409e4d7c01b47448d93b1f9683aaa7cf7" + X264_COMMIT="4613ac3c15fd75cebc4b9f65b7fb95e70a3acce1" SRC_URI="https://code.videolan.org/videolan/x264/-/archive/${X264_COMMIT}/x264-${X264_COMMIT}.tar.bz2 -> ${P/-encoder}.tar.bz2" KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86" S="${WORKDIR}/${PN/-encoder}-${X264_COMMIT}" diff --git a/media-video/xvid4conf/xvid4conf-1.12.ebuild b/media-video/xvid4conf/xvid4conf-1.12.ebuild index 1abd32b45fc1..9132080a0b58 100644 --- a/media-video/xvid4conf/xvid4conf-1.12.ebuild +++ b/media-video/xvid4conf/xvid4conf-1.12.ebuild @@ -9,7 +9,7 @@ SRC_URI="mirror://gentoo/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha amd64 ~hppa ~ia64 ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 ~hppa ppc ppc64 sparc x86" RDEPEND=">=x11-libs/gtk+-2.2.4:2" DEPEND="${RDEPEND}" diff --git a/media-video/yle-dl/Manifest b/media-video/yle-dl/Manifest index 7af50726cdfc..7aac41366e46 100644 --- a/media-video/yle-dl/Manifest +++ b/media-video/yle-dl/Manifest @@ -1 +1,2 @@ -DIST yle-dl-20240706.tar.gz 78964 BLAKE2B 5ed0a9ba391853566c3abbbd88d6fcce33c7f7e88183e89f3c272f6cae6c519ff272f648934e8fa58e0a7d59f87677189e14f1532cbadbbd6f73312810b4994e SHA512 c54a99bfa1ff71296e4ae40cb62408338942144e60f8df25fa8e7a9d53ff8d3c61e0b3c85e8404c716a18f54986e242b72dd4424c65ffe24f2ea4b128f7cf27a +DIST yle-dl-20240806.tar.gz 79725 BLAKE2B c09d8ee7ca7f9db30433fb1cfa2ecf7ea2d791a56661341d059c917a498b9a60d7db277a4a186523eb841f0543d07d8caeb8c1adcf4804051e3196cbba4e2e4a SHA512 21b3cbddbdf058b75a5bb1afca0a2ca3573b99a18a85185458227d82f291028c4796e27f53a7a72b07cdd96ef1606ddac6dd467ebe8d1004ad4e9f4e0e62f17e +DIST yle-dl-20240927.tar.gz 80008 BLAKE2B b6dfd38bae52de4265d904550124bef96f1f9e75c952a63fc3dabe71ccaf99a9a9cbbb6d2dc10e3ffab0bc1f0ff6b7b42d25e9378c1bfbc06229227bf544ed76 SHA512 e063807ec2e4ad80d69cd6ad10c3973bb32b890c3874a1ce4047f925173d66b198f5d1b4f40dd51056040476f499a972237830e71dd15eb18c38799aa16c5552 diff --git a/media-video/yle-dl/yle-dl-20240706.ebuild b/media-video/yle-dl/yle-dl-20240806.ebuild index d879b645e845..63252b50ca2d 100644 --- a/media-video/yle-dl/yle-dl-20240706.ebuild +++ b/media-video/yle-dl/yle-dl-20240806.ebuild @@ -3,7 +3,7 @@ EAPI=8 -PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_COMPAT=( python3_{10..13} ) DISTUTILS_USE_PEP517=flit inherit distutils-r1 optfeature diff --git a/media-video/yle-dl/yle-dl-20240927.ebuild b/media-video/yle-dl/yle-dl-20240927.ebuild new file mode 100644 index 000000000000..63252b50ca2d --- /dev/null +++ b/media-video/yle-dl/yle-dl-20240927.ebuild @@ -0,0 +1,57 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +DISTUTILS_USE_PEP517=flit + +inherit distutils-r1 optfeature + +DESCRIPTION="Download media files from Yle Areena" +HOMEPAGE="https://aajanki.github.io/yle-dl/ https://github.com/aajanki/yle-dl" +SRC_URI="https://github.com/aajanki/yle-dl/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="amd64 x86" + +IUSE="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# Requires an active internet connection during tests, +PROPERTIES="test_network" +RESTRICT="test" + +RDEPEND="media-video/ffmpeg + net-misc/wget + >=dev-python/attrs-18.1.0[${PYTHON_USEDEP}] + >=dev-python/ConfigArgParse-0.13.0[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/progress[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}]" +BDEPEND="test? ( + ${RDEPEND} + media-video/ffmpeg[gnutls] + dev-python/pip[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + )" + +distutils_enable_tests pytest + +DOCS=( COPYING ChangeLog README.fi.md README.sv.md README.md yledl.conf.sample ) + +src_install() { + docompress -x "/usr/share/doc/${PF}/yledl.conf.sample" + distutils-r1_src_install +} + +pkg_postinst() { + elog "Sample configuration file has been installed to " + elog " /usr/share/doc/yle-dl-${PVR}/yledl.conf.sample" + elog + optfeature "automatically detect filesystems that require restricted character sets" dev-python/psutil + optfeature "store metadata as extended file attributes" dev-python/pyxattr + optfeature "youtube-dl download engine" net-misc/yt-dlp +} |