diff options
Diffstat (limited to 'media-video')
105 files changed, 3684 insertions, 4563 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz Binary files differindex 160d54af18d6..4f72ca53f34f 100644 --- a/media-video/Manifest.gz +++ b/media-video/Manifest.gz diff --git a/media-video/aegisub/Manifest b/media-video/aegisub/Manifest index f3e8f8847952..d7477f0afba6 100644 --- a/media-video/aegisub/Manifest +++ b/media-video/aegisub/Manifest @@ -12,8 +12,18 @@ AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-support-system-gtest.patch 2452 BLAK AUX 3.2.2_p20160518/aegisub-3.2.2_p20160518-tests_luarocks_lua_version.patch 505 BLAKE2B d92ab5c7604b9c04296ea82d3c5b093a900bb9345289539262e5d057bf21d003ce1fdfce7e6f57b8dad3cb62c3e604ada6e9bd596a3673afbbced338230ba638 SHA512 71bc5511bc0fcb9d55e893300066f7e755da5bad04f74e0ba103e622cac6ebf99d1fa7b1ca9f08d2b5169d305a4bee6a7782cb14304352ca108d126931851a5b AUX 3.3.3/aegisub-3.3.3-support-icu-75.patch 763 BLAKE2B d816a88c954d3153a3c1ee6b313fff700107489d0d8c88a480030ab82dc74a646f270e93507740d088e3e7f1855e9dc108a5d487e274e6f7bfc85b03ffcc81eb SHA512 d80549dbcf4292af53230b6bc4fdf12d6b6d1efc3e9bbf5322a38aa623677e138ffdb2d867d46093cda7f89101e01545fddaf37338b1d38c5f88136f229be471 AUX 3.3.3/aegisub-3.3.3-support-system-gtest.patch 2932 BLAKE2B e05519e4734f7532f605d63d27fd9386fba7eb0b36055235701ad65ee704f86424fbfc89fa36da6137c11fb149d11e793f37ae1e3c1e7820eaf236a774d2fa83 SHA512 643b7525e6f170d552551b6ebeffc9a5b37b8a38570f654fb93d523d2ccce355403ce50ddb337ee1761a4997235e12440d86684f296619196c418183989727cd +AUX 3.4.0/Fix-build-without-pch.patch 6586 BLAKE2B 9a7df7afc364179686c0f1cda9683f57e10c05349b19ebbec4f7d918abe2d188c4463000cca50a676f13aae779ebc9d726fe0972d8c27b84904b8bb1c7085d1d SHA512 0f3746ebc5612885e13f9bc82aff1da9037be0d9aaa3c547656dde3ca51b783dd80a9593c320094b6e94b9db7425b727e96513ca49052aadaa89953a9c05a70e +AUX 3.4.0/Use-generated-git-version.patch 626 BLAKE2B 8a4aa53e21988270ce4e7a6e61d2691c1830a89963e877a57260fb9e3dc73d2165b0713bd6d7c01323aa25428a1226ef43732143746f5f6bf98931600a7f6f3e SHA512 f44eaa0cef348488ce81982b5f104a89acaf7ad0e26b7308cee0e392dcfe6262bd456aa725a4b13be9f9268ae82c457f041a4b616af35da65aa3be85f5999dca +AUX 3.4.0/git_version.h 175 BLAKE2B 9d4981a93e5d000533d30e24a9d89407b148162795bac3f42f012a538c3d1bfb22376e29e2016319e214535210f60b5ced2b07753e55caa89c15d3416a827283 SHA512 9d38a05064df1dcaf53e7e7d7d2aba291a14a955072a12980a0b8340dfc907f8718ebbd2f916ed15e1ca0525b7168b18afb81d328981e6e7d7a2f898e9f3bece +AUX 3.4.2/Fix-build-without-pch.patch 11782 BLAKE2B 68d51698309a0ed7267025f90d8be5884562a9e00d8ed732325ac8eac0dceebf03dd40720bd27cbcfcd2a7515ad596b801a7f4b3950df0b65a79a894d5bec6a6 SHA512 49a60480b29cd52bcb7b4bdffb629fee6d490181428504fa4d752ea982c4a2a03c856fbea19c4567c4cf36294cf85e29807f1122a69d182218e6a747436c02ad +AUX 3.4.2/git_version.h 175 BLAKE2B b9d60e5d47311056a2dd40f710fddb6b82e65fad33d2ef1868f009c2394fc39b6d3f3bc552a0b119712f444972eaa08b40259539e4f20efb602baaba02b2dd59 SHA512 78a3ccb7593d64e5d609465b899a4705bbfdabd2343035cac9324ec623b8d3085d7c67eb8af9a797e49b1286a12f01083e12e46e5c378d06d833730cf7bab1d3 +AUX 9999/git_version.h 175 BLAKE2B 3f6378c56734ad13cb1b7bc9d09675ed133b93b436fd7d1459152573856a163c5e19533debb4862da38360dadee88c4628c987b07ce1907ccbc7485288415cb1 SHA512 c1f3a2f6d5c51517377450e54292bfb7404ca8f9bdad4ae3a12324d5f8c020338a1cf2e2290845478c63c91f5f380175615645890bbbd8b448be5393f6507399 DIST aegisub-3.3.3.tar.gz 6580314 BLAKE2B b6a6b6d9a805fb1aec943f00452e5f074c050d7d8970e0fa57da54a7a3c12b86241eafafd957577625bcce395c9f909fe60a22c9d76fcf8f018a4ea03921dacf SHA512 19e44667ad8742560559387c15f6c00339194cd26e1140624c63f34c6b4da6bb0b80be0f636a2d1cd0b15f1598e0580218d648e0622635b12eeaad3a40df9abc +DIST aegisub-3.4.0.tar.gz 6294724 BLAKE2B 6ab466a33082107f509675eb062a679c68da5b3ec9d97847d0c50ad43d717ff50efcb4fb59a2e8c23f57e893de846b651b7a80a117f047734e6d54ccf6522ef3 SHA512 364f56aece74b14f37d796e364ffcc5b9d8ab5816f8e118b7f44d2d4e3bdf8afa0731c36995269dd953d2f532e7a905729bcbfa907c672a8eb91b68565c1ade0 +DIST aegisub-3.4.2.tar.gz 6602618 BLAKE2B 38b2d2d0bb5dd4d3a7fe9e16bfe47f36120bc54d6b60dfa796906ce5699f584c350faf2e0de55879c32aa13ea87ae96d5365071082920d777d8ae4a4aea04361 SHA512 225f97a59feda2ddd7a65e967c19eb074c2f961cbdfbd5e743e4b622f8fb54ec85b679e5b9f30333965e98a19bf6b56cd54cc10417f67771c9661999483dacca EBUILD aegisub-3.3.3-r1.ebuild 3969 BLAKE2B 2f179f41f1c5cd57635d08472499c6eb4bbd8b4ed8c7020ed43d1e02ede8422a33d81418ceee50f9e2604c8a816a1ef3b9bb93577785464dedbaf3fbf9ef847c SHA512 bea0bc450338b5c17d4f3f07382f49474920e60c5e7cebaf42ab81df1b3b21582955ef8680cf07bad37a94e085507575cfd37afc4608572dbab729d280cfe8dc EBUILD aegisub-3.3.3.ebuild 3915 BLAKE2B e23ce10ea46e06315826b446d3f4f00368271432e9ad3d235c7d413c69cf83bebf65e43de5354bb5f52cce57be10963346d6c3abf42713ea10f4a66924d7fad3 SHA512 ddf52ad9a4bb353a048a6c5b406173d6389a65ab1fd5e5765acf785e0f48dcd57f7397ffcafe1153a928e9e225e9bbef76fa1b44d30577f93bf296fecc54e224 -EBUILD aegisub-9999.ebuild 3971 BLAKE2B 9e87a96bc66a9ef52337f0e76dace3cbba68b3bc7a1fee75a3341be6db2f637dc83fcbc841b9fa44409a64b7a8bc6f1c7bb681574ce9b1fad937c3d85726ae86 SHA512 52cca502f798cf3c246477319dcb49c44d4b95b8c7e38f7c8a31a7c21595e818a1255169fed589ffa8897932ffc2bd291cb5a3f11204de6044992c1881af23a6 -MISC metadata.xml 490 BLAKE2B dd77320afb5975e48eae5240c165ed9470fe5ae1ed917b8ba022a9c63d1b446c75b820eafef914c885afb9c32c8634bf6ee55e1340a1efce91d0fe019a589cc8 SHA512 deee9b5cbcbd3fa37a665b333094334c3a298face98c7deb992127191d77cbe0f7781945fd8297ce9f26ca34988539a4abc27877c4dff79228d64dc1c4bfeddd +EBUILD aegisub-3.4.0.ebuild 3647 BLAKE2B b7377ae8b078f42b5bf99f1f482ef77dc22b74537cac5e0439e67d84af5c431a46e38c7dd65ebafc005e20b99e371f9591bafdb317f3b2769cac06f999e81e90 SHA512 217339bd72e40d203acbe0d6777ba09198a174486fcd7d342b053c110f76ca0df1ce6086cf44054e8684e544b85ff4b2f2801fd130111bddfeb2019e7d7e271f +EBUILD aegisub-3.4.2.ebuild 3815 BLAKE2B c14273fc81894a540f20a3c58497c6504464851b6592080aec885e410ca15a9fe7f8d933607cc936e3e5a129625160c836b4925af0f3c3321d9cf1318642620b SHA512 16dae334bbadcf78ff34726723ba5a5631a33972a11915fba8b2a02df07ae7e8789f6c3a8f467af27563ceac20402cec88a66f2855216cc038ae48447f5b3547 +EBUILD aegisub-9999.ebuild 3650 BLAKE2B aa75a999b286547a612ad8d605d98827f59932264234948ff2b93b67632c86c154c89bd6fcddd0820d864dda096431353bf556b7bc9ee28f903e0bb5d31d1fe5 SHA512 760ea2114054dd890a59a8084019248a230d919280ef0985443f3671295940ceab6a7dab03598da915854aa93aa468a06770f1b447996a9e58f707ee668c4d0d +MISC metadata.xml 510 BLAKE2B 46c0880517c62df4ec49e282a69c5841dedd832e2350fccc74328da7af8dca4a70f084d868de0699b87b9a399b564ab622c34469cbbc54b53290959bce1213bc SHA512 b518855b2e19d26985d1340b87e33c53b9bfd3f0f84159841c999ea6481eb50f81b933bb6c4f7e307cd144e6f34008364e8e6d40179dd50fc73ac8052b072eee diff --git a/media-video/aegisub/aegisub-3.4.0.ebuild b/media-video/aegisub/aegisub-3.4.0.ebuild new file mode 100644 index 000000000000..82d80b7054ce --- /dev/null +++ b/media-video/aegisub/aegisub-3.4.0.ebuild @@ -0,0 +1,145 @@ +# 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 meson 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/TypesettingTools/Aegisub" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://github.com/TypesettingTools/${PN^}.git" + # Submodules are used to pull bundled libraries. + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://github.com/TypesettingTools/Aegisub/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi +LICENSE="BSD MIT" +SLOT="0" +IUSE="+alsa debug +fftw openal 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 portaudio pulseaudio )" + +BUILD_DIR="${WORKDIR}/${P}-build" + +PATCHES=( +"${FILESDIR}/3.4.0/Fix-build-without-pch.patch" +"${FILESDIR}/3.4.0/Use-generated-git-version.patch" +) + +aegisub_check_compiler() { + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++20; then + die "Your compiler lacks C++20 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 + + use test || sed -i "s|subdir('tests')||g" "${S}"/meson.build || die + + mkdir "${BUILD_DIR}" || die + cp "${FILESDIR}/${PV}"/git_version.h "${BUILD_DIR}"/git_version.h || die +} + +src_configure() { + tc-export PKG_CONFIG + use debug && EMESON_BUILDTYPE=debug + setup-wxwidgets + local emesonargs=( + -Denable_update_checker=false + -Dffms2=enabled + -Dsystem_luajit=true + $(meson_feature alsa) + $(meson_feature fftw fftw3) + $(meson_feature openal) + $(meson_feature portaudio) + $(meson_feature pulseaudio libpulse) + $(meson_feature spell hunspell) + $(meson_feature uchardet) + ) + meson_src_configure +} + +src_test() { + meson_src_test 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-3.4.2.ebuild b/media-video/aegisub/aegisub-3.4.2.ebuild new file mode 100644 index 000000000000..84c85dd0f0f5 --- /dev/null +++ b/media-video/aegisub/aegisub-3.4.2.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2025 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 tr uk_UA vi zh_CN zh_TW" + +inherit meson 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/TypesettingTools/Aegisub" + +if [[ ${PV} == *9999 ]]; then + EGIT_REPO_URI="https://github.com/TypesettingTools/${PN^}.git" + # Submodules are used to pull bundled libraries. + EGIT_SUBMODULES=() + inherit git-r3 +else + SRC_URI="https://github.com/TypesettingTools/Aegisub/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" +fi +LICENSE="BSD MIT" +SLOT="0" +IUSE="+alsa debug +fftw openal 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 portaudio pulseaudio )" + +BUILD_DIR="${WORKDIR}/${P}-build" + +PATCHES=( +"${FILESDIR}/3.4.2/Fix-build-without-pch.patch" +) + +aegisub_check_compiler() { + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++20; then + die "Your compiler lacks C++20 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 + sed -i "s|#ifdef WITH_UPDATE_CHECKER| #if WITH_UPDATE_CHECKER == 1|g" "${S}"/src/dialog_version_check.cpp \ + "${S}"/src/command/app.cpp "${S}"/src/main.cpp || die + use test || sed -i "s|subdir('tests')||g" "${S}"/meson.build || die + + mkdir "${BUILD_DIR}" || die + cp "${FILESDIR}/${PV}"/git_version.h "${BUILD_DIR}"/git_version.h || die +} + +src_configure() { + tc-export PKG_CONFIG + use debug && EMESON_BUILDTYPE=debug + setup-wxwidgets + local emesonargs=( + -Denable_update_checker=false + -Dffms2=enabled + -Dsystem_luajit=true + $(meson_feature alsa) + $(meson_feature fftw fftw3) + $(meson_feature openal) + $(meson_feature portaudio) + $(meson_feature pulseaudio libpulse) + $(meson_feature spell hunspell) + $(meson_feature uchardet) + ) + meson_src_configure +} + +src_test() { + meson_src_test 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 530606341ba5..382c883351f0 100644 --- a/media-video/aegisub/aegisub-9999.ebuild +++ b/media-video/aegisub/aegisub-9999.ebuild @@ -7,25 +7,25 @@ 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" +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 tr uk_UA vi zh_CN zh_TW" -inherit autotools flag-o-matic lua-single plocale wxwidgets xdg-utils vcs-snapshot toolchain-funcs +inherit meson 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" +HOMEPAGE="http://www.aegisub.org/ https://github.com/TypesettingTools/Aegisub" if [[ ${PV} == *9999 ]]; then - EGIT_REPO_URI="https://github.com/wangqr/${PN^}.git" + EGIT_REPO_URI="https://github.com/TypesettingTools/${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" + SRC_URI="https://github.com/TypesettingTools/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" +IUSE="+alsa debug +fftw openal portaudio pulseaudio spell test +uchardet" RESTRICT="test" # aegisub bundles luabins (https://github.com/agladysh/luabins). @@ -68,19 +68,18 @@ BDEPEND="dev-util/intltool " REQUIRED_USE="${LUA_REQUIRED_USE} - || ( alsa openal oss portaudio pulseaudio )" + || ( alsa openal portaudio pulseaudio )" + +BUILD_DIR="${WORKDIR}/${P}-build" 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" +"${FILESDIR}/3.4.0/Fix-build-without-pch.patch" +"${FILESDIR}/3.4.0/Use-generated-git-version.patch" ) aegisub_check_compiler() { - if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++17; then - die "Your compiler lacks C++17 support." + if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++20; then + die "Your compiler lacks C++20 support." fi } @@ -106,43 +105,33 @@ src_prepare() { 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 + use test || sed -i "s|subdir('tests')||g" "${S}"/meson.build || die - eautoreconf + mkdir "${BUILD_DIR}" || die + cp "${FILESDIR}/${PV}"/git_version.h "${BUILD_DIR}"/git_version.h || die } src_configure() { tc-export PKG_CONFIG - # Prevent access violations from OpenAL detection. See Gentoo bug 508184. - use openal && export agi_cv_with_openal="yes" - + use debug && EMESON_BUILDTYPE=debug 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) + local emesonargs=( + -Denable_update_checker=false + -Dffms2=enabled + -Dsystem_luajit=true + $(meson_feature alsa) + $(meson_feature fftw fftw3) + $(meson_feature openal) + $(meson_feature portaudio) + $(meson_feature pulseaudio libpulse) + $(meson_feature spell hunspell) + $(meson_feature uchardet) ) - export FORCE_GIT_VERSION="v${PV}" - econf "${myeconfargs[@]}" -} - -src_compile() { - emake WITH_SYSTEM_GTEST=$(usex test) + meson_src_configure } src_test() { - emake test-automation - emake test-libaegisub + meson_src_test test-libaegisub } pkg_postinst() { diff --git a/media-video/aegisub/files/3.4.0/Fix-build-without-pch.patch b/media-video/aegisub/files/3.4.0/Fix-build-without-pch.patch new file mode 100644 index 000000000000..2f88b130c975 --- /dev/null +++ b/media-video/aegisub/files/3.4.0/Fix-build-without-pch.patch @@ -0,0 +1,229 @@ +From c5e3d6e927e638796b7d0862f6a0c4e19e9fbe6b Mon Sep 17 00:00:00 2001 +From: Nick Sarnie <sarnex@gentoo.org> +Date: Fri, 27 Dec 2024 20:26:36 +0900 +Subject: [PATCH] Fix build without PCH + +Signed-off-by: Nick Sarnie <sarnex@gentoo.org> +--- + libaegisub/ass/uuencode.cpp | 2 +- + libaegisub/audio/provider_dummy.cpp | 1 + + libaegisub/common/cajun/reader.cpp | 1 + + libaegisub/common/calltip_provider.cpp | 2 +- + libaegisub/common/mru.cpp | 2 +- + libaegisub/common/option.cpp | 1 + + libaegisub/common/thesaurus.cpp | 1 + + libaegisub/include/libaegisub/lua/ffi.h | 1 + + libaegisub/lua/modules/unicode.cpp | 2 +- + libaegisub/unix/path.cpp | 2 ++ + src/aegisublocale.cpp | 2 ++ + src/audio_timing_dialogue.cpp | 2 ++ + src/base_grid.h | 2 ++ + src/command/command.h | 1 + + src/frame_main.cpp | 2 +- + src/preferences.cpp | 1 + + 16 files changed, 20 insertions(+), 5 deletions(-) + +diff --git a/libaegisub/ass/uuencode.cpp b/libaegisub/ass/uuencode.cpp +index 893268d07..ee5441144 100644 +--- a/libaegisub/ass/uuencode.cpp ++++ b/libaegisub/ass/uuencode.cpp +@@ -17,7 +17,7 @@ + #include <libaegisub/ass/uuencode.h> + + #include <algorithm> +- ++#include <cstring> + // Despite being called uuencoding by ass_specs.doc, the format is actually + // somewhat different from real uuencoding. Each 3-byte chunk is split into 4 + // 6-bit pieces, then 33 is added to each piece. Lines are wrapped after 80 +diff --git a/libaegisub/audio/provider_dummy.cpp b/libaegisub/audio/provider_dummy.cpp +index 3e7f104ef..1de35b2b6 100644 +--- a/libaegisub/audio/provider_dummy.cpp ++++ b/libaegisub/audio/provider_dummy.cpp +@@ -18,6 +18,7 @@ + + #include "libaegisub/fs.h" + ++#include <cstring> + #include <random> + + /* +diff --git a/libaegisub/common/cajun/reader.cpp b/libaegisub/common/cajun/reader.cpp +index 6f32d2ff4..0c69ef9c2 100644 +--- a/libaegisub/common/cajun/reader.cpp ++++ b/libaegisub/common/cajun/reader.cpp +@@ -9,6 +9,7 @@ Author: Terry Caton + #include "libaegisub/cajun/reader.h" + + #include <boost/interprocess/streams/bufferstream.hpp> ++#include <algorithm> + #include <cassert> + + /* +diff --git a/libaegisub/common/calltip_provider.cpp b/libaegisub/common/calltip_provider.cpp +index de693e637..d24d6277a 100644 +--- a/libaegisub/common/calltip_provider.cpp ++++ b/libaegisub/common/calltip_provider.cpp +@@ -19,7 +19,7 @@ + #include "libaegisub/ass/dialogue_parser.h" + + #include <algorithm> +- ++#include <cstring> + namespace { + struct proto_lit { + const char *name; +diff --git a/libaegisub/common/mru.cpp b/libaegisub/common/mru.cpp +index 81db2715a..ef2a06944 100644 +--- a/libaegisub/common/mru.cpp ++++ b/libaegisub/common/mru.cpp +@@ -21,7 +21,7 @@ + #include "libaegisub/log.h" + #include "libaegisub/option.h" + #include "libaegisub/option_value.h" +- ++#include <algorithm> + namespace { + std::string_view mru_names[] = { + "Audio", +diff --git a/libaegisub/common/option.cpp b/libaegisub/common/option.cpp +index 13e93a3a0..c90ae9c46 100644 +--- a/libaegisub/common/option.cpp ++++ b/libaegisub/common/option.cpp +@@ -26,6 +26,7 @@ + #include "libaegisub/option_value.h" + + #include <boost/interprocess/streams/bufferstream.hpp> ++#include <algorithm> + #include <cassert> + #include <memory> + +diff --git a/libaegisub/common/thesaurus.cpp b/libaegisub/common/thesaurus.cpp +index 23366e82c..6626316d9 100644 +--- a/libaegisub/common/thesaurus.cpp ++++ b/libaegisub/common/thesaurus.cpp +@@ -20,6 +20,7 @@ + #include "libaegisub/split.h" + + #include <boost/interprocess/streams/bufferstream.hpp> ++#include <algorithm> + + namespace agi { + +diff --git a/libaegisub/include/libaegisub/lua/ffi.h b/libaegisub/include/libaegisub/lua/ffi.h +index 17cf0088d..29902f77a 100644 +--- a/libaegisub/include/libaegisub/lua/ffi.h ++++ b/libaegisub/include/libaegisub/lua/ffi.h +@@ -17,6 +17,7 @@ + #include <libaegisub/type_name.h> + + #include <cstdlib> ++#include <cstring> + #include <lua.hpp> + + namespace agi::lua { +diff --git a/libaegisub/lua/modules/unicode.cpp b/libaegisub/lua/modules/unicode.cpp +index 9ee64b114..7f700918b 100644 +--- a/libaegisub/lua/modules/unicode.cpp ++++ b/libaegisub/lua/modules/unicode.cpp +@@ -17,7 +17,7 @@ + #include <libaegisub/lua/ffi.h> + + #include <unicode/unistr.h> +- ++#include <cstring> + namespace { + char *wrap(void (*fn)(icu::UnicodeString&), const char *str, char **err) { + auto ustr = icu::UnicodeString::fromUTF8(str); +diff --git a/libaegisub/unix/path.cpp b/libaegisub/unix/path.cpp +index a171bc2a4..5a33bf68b 100644 +--- a/libaegisub/unix/path.cpp ++++ b/libaegisub/unix/path.cpp +@@ -21,6 +21,8 @@ + + #include <pwd.h> + ++#include "../acconf.h" ++ + #ifndef __APPLE__ + #include <fstream> + #include <stdlib.h> +diff --git a/src/aegisublocale.cpp b/src/aegisublocale.cpp +index cc5f4e10d..754d867d7 100644 +--- a/src/aegisublocale.cpp ++++ b/src/aegisublocale.cpp +@@ -38,6 +38,8 @@ + #include "options.h" + #include "utils.h" + ++#include "../acconf.h" ++ + #include <libaegisub/path.h> + + #include <algorithm> +diff --git a/src/audio_timing_dialogue.cpp b/src/audio_timing_dialogue.cpp +index fd15582b1..9ca06eff5 100644 +--- a/src/audio_timing_dialogue.cpp ++++ b/src/audio_timing_dialogue.cpp +@@ -39,6 +39,8 @@ + #include "selection_controller.h" + #include "utils.h" + ++#include <list> ++ + #include <libaegisub/ass/time.h> + + #include <boost/range/algorithm.hpp> +diff --git a/src/base_grid.h b/src/base_grid.h +index 2f28a21dc..017d8b35c 100644 +--- a/src/base_grid.h ++++ b/src/base_grid.h +@@ -32,6 +32,8 @@ + #include <memory> + #include <string> + #include <vector> ++#include <wx/brush.h> ++#include <wx/scrolbar.h> + #include <wx/window.h> + + namespace agi { +diff --git a/src/command/command.h b/src/command/command.h +index c90b230a0..b9582630b 100644 +--- a/src/command/command.h ++++ b/src/command/command.h +@@ -17,6 +17,7 @@ + /// @ingroup command + + #include <map> ++#include <memory> + #include <string> + #include <vector> + +diff --git a/src/frame_main.cpp b/src/frame_main.cpp +index 24ef314d7..e81c07761 100644 +--- a/src/frame_main.cpp ++++ b/src/frame_main.cpp +@@ -67,7 +67,7 @@ + #include <wx/sizer.h> + #include <wx/statline.h> + #include <wx/sysopt.h> +- ++#include <wx/toolbar.h> + enum { + ID_APP_TIMER_STATUSCLEAR = 12002 + }; +diff --git a/src/preferences.cpp b/src/preferences.cpp +index 1b0033b05..ccc52a905 100644 +--- a/src/preferences.cpp ++++ b/src/preferences.cpp +@@ -47,6 +47,7 @@ + + #include <wx/checkbox.h> + #include <wx/combobox.h> ++#include <wx/dc.h> + #include <wx/event.h> + #include <wx/listctrl.h> + #include <wx/msgdlg.h> +-- +2.45.2 + diff --git a/media-video/aegisub/files/3.4.0/Use-generated-git-version.patch b/media-video/aegisub/files/3.4.0/Use-generated-git-version.patch new file mode 100644 index 000000000000..ebee2aa3cd4f --- /dev/null +++ b/media-video/aegisub/files/3.4.0/Use-generated-git-version.patch @@ -0,0 +1,20 @@ +diff --git a/tools/version.sh b/tools/version.sh +index 8df33e175..1293d1578 100755 +--- a/tools/version.sh ++++ b/tools/version.sh +@@ -3,7 +3,6 @@ srcdir="$2" + + # If no git repo try to read from the existing git_version.h, for building from tarballs + version_h_path="${builddir}/git_version.h" +-if ! test -d "${srcdir}/.git"; then + if test -f "${version_h_path}"; then + while read line; do + set -- $line +@@ -19,7 +18,6 @@ if ! test -d "${srcdir}/.git"; then + echo "git repo not found and no cached git_version.h" + exit 2 + fi +-fi + osx_bundle_sed_path="${builddir}/osx-bundle.sed" + + last_svn_revision=6962 diff --git a/media-video/aegisub/files/3.4.0/git_version.h b/media-video/aegisub/files/3.4.0/git_version.h new file mode 100644 index 000000000000..1e0344e9ca99 --- /dev/null +++ b/media-video/aegisub/files/3.4.0/git_version.h @@ -0,0 +1,5 @@ +#define BUILD_GIT_VERSION_NUMBER 340 +#define BUILD_GIT_VERSION_STRING "3.4.0" +#define TAGGED_RELEASE 0 +#define INSTALLER_VERSION "0.0.0" +#define RESOURCE_BASE_VERSION 0, 0, 0 diff --git a/media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch b/media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch new file mode 100644 index 000000000000..08506c667cef --- /dev/null +++ b/media-video/aegisub/files/3.4.2/Fix-build-without-pch.patch @@ -0,0 +1,386 @@ +From 0f268eda235d41f33c778f595d5e6781ba8f38e2 Mon Sep 17 00:00:00 2001 +From: arch1t3cht <arch1t3cht@gmail.com> +Date: Tue, 21 Jan 2025 21:29:34 +0100 +Subject: [PATCH] Allow building without PCHs on Linux +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +It seems that Aegisub used to be able to be built without precompiled +headers, but this broke with the meson port since there the PCHs are +needed to include acconf.h. (On the old build system(s), the feature +flags were passed directly as defines to the compiler on Visual Studio, +and acconf.h was forcibly included via -include acconf.h with autoconf.) + +Some distributions (gentoo in particular) disable PCHs by default for +meson due to various bugs, and PCHs can also be quite a headache with +language servers (I ended up running an sed one-liner after every +configure to replace -include-pch in my compile_commands.json with the +respective -include). + +Since meson doesn't seem to be able to forcibly include headers for +every source file, just pass the config as a set of preprocessor +defines when b_pch is disabled. If it's enabled, stick to acconf.h to +not bloat the compiler command lines too much. + +For now this only works on Linux, Windows will need extra work due to +windows.h being annoying, but there isn't as much of a need to build +without PCHs there anyway. + +The added includes were mostly taken from TypesettingTools/Aegisub#241 +and TypesettingTools/Aegisub#223. + +Co-authored-by: Ștefan Talpalaru <stefantalpalaru@yahoo.com> +Co-authored-by: Nick Sarnie <sarnex@gentoo.org> +--- + +diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml +index fbef59e0e..31bae4f84 100644 +--- a/.github/workflows/ci.yml ++++ b/.github/workflows/ci.yml +@@ -43,25 +43,25 @@ jobs: + name: Ubuntu 22 Debug, + os: ubuntu-22.04, + buildtype: debugoptimized, +- args: '' ++ args: -Db_pch=false + } + - { + name: Ubuntu 22 Release, + os: ubuntu-22.04, + buildtype: release, +- args: '' ++ args: -Db_pch=false + } + - { + name: Ubuntu 24 Debug, + os: ubuntu-24.04, + buildtype: debugoptimized, +- args: '' ++ args: -Db_pch=false + } + - { + name: Ubuntu 24 Release, + os: ubuntu-24.04, + buildtype: release, +- args: '' ++ args: -Db_pch=false + } + - { + name: macOS Debug, +diff --git a/libaegisub/ass/uuencode.cpp b/libaegisub/ass/uuencode.cpp +index 893268d07..b2e0df60f 100644 +--- a/libaegisub/ass/uuencode.cpp ++++ b/libaegisub/ass/uuencode.cpp +@@ -17,6 +17,7 @@ + #include <libaegisub/ass/uuencode.h> + + #include <algorithm> ++#include <cstring> + + // Despite being called uuencoding by ass_specs.doc, the format is actually + // somewhat different from real uuencoding. Each 3-byte chunk is split into 4 +diff --git a/libaegisub/audio/provider_dummy.cpp b/libaegisub/audio/provider_dummy.cpp +index 01a6ae5b4..41b9c9cb2 100644 +--- a/libaegisub/audio/provider_dummy.cpp ++++ b/libaegisub/audio/provider_dummy.cpp +@@ -18,6 +18,7 @@ + + #include "libaegisub/fs.h" + ++#include <cstring> + #include <random> + + /* +diff --git a/libaegisub/common/cajun/reader.cpp b/libaegisub/common/cajun/reader.cpp +index 6f32d2ff4..5068dfe90 100644 +--- a/libaegisub/common/cajun/reader.cpp ++++ b/libaegisub/common/cajun/reader.cpp +@@ -8,6 +8,7 @@ Author: Terry Caton + + #include "libaegisub/cajun/reader.h" + ++#include <algorithm> + #include <boost/interprocess/streams/bufferstream.hpp> + #include <cassert> + +diff --git a/libaegisub/common/calltip_provider.cpp b/libaegisub/common/calltip_provider.cpp +index de693e637..d0188cbbb 100644 +--- a/libaegisub/common/calltip_provider.cpp ++++ b/libaegisub/common/calltip_provider.cpp +@@ -19,6 +19,7 @@ + #include "libaegisub/ass/dialogue_parser.h" + + #include <algorithm> ++#include <cstring> + + namespace { + struct proto_lit { +diff --git a/libaegisub/common/mru.cpp b/libaegisub/common/mru.cpp +index be12812b6..ef41535c1 100644 +--- a/libaegisub/common/mru.cpp ++++ b/libaegisub/common/mru.cpp +@@ -22,6 +22,8 @@ + #include "libaegisub/option.h" + #include "libaegisub/option_value.h" + ++#include <algorithm> ++ + namespace { + std::string_view mru_names[] = { + "Audio", +diff --git a/libaegisub/common/option.cpp b/libaegisub/common/option.cpp +index 0a1f8c8b3..9b33a3807 100644 +--- a/libaegisub/common/option.cpp ++++ b/libaegisub/common/option.cpp +@@ -25,6 +25,7 @@ + #include "libaegisub/log.h" + #include "libaegisub/option_value.h" + ++#include <algorithm> + #include <boost/interprocess/streams/bufferstream.hpp> + #include <cassert> + #include <memory> +diff --git a/libaegisub/common/thesaurus.cpp b/libaegisub/common/thesaurus.cpp +index 25011b4e6..e5c141e34 100644 +--- a/libaegisub/common/thesaurus.cpp ++++ b/libaegisub/common/thesaurus.cpp +@@ -19,6 +19,7 @@ + #include "libaegisub/line_iterator.h" + #include "libaegisub/split.h" + ++#include <algorithm> + #include <boost/interprocess/streams/bufferstream.hpp> + + namespace agi { +diff --git a/libaegisub/include/libaegisub/lua/ffi.h b/libaegisub/include/libaegisub/lua/ffi.h +index 17cf0088d..29902f77a 100644 +--- a/libaegisub/include/libaegisub/lua/ffi.h ++++ b/libaegisub/include/libaegisub/lua/ffi.h +@@ -17,6 +17,7 @@ + #include <libaegisub/type_name.h> + + #include <cstdlib> ++#include <cstring> + #include <lua.hpp> + + namespace agi::lua { +diff --git a/libaegisub/lua/modules/unicode.cpp b/libaegisub/lua/modules/unicode.cpp +index 9ee64b114..d6d84a97b 100644 +--- a/libaegisub/lua/modules/unicode.cpp ++++ b/libaegisub/lua/modules/unicode.cpp +@@ -18,6 +18,8 @@ + + #include <unicode/unistr.h> + ++#include <cstring> ++ + namespace { + char *wrap(void (*fn)(icu::UnicodeString&), const char *str, char **err) { + auto ustr = icu::UnicodeString::fromUTF8(str); +diff --git a/libaegisub/meson.build b/libaegisub/meson.build +index 7689d31ae..7755b0d39 100644 +--- a/libaegisub/meson.build ++++ b/libaegisub/meson.build +@@ -86,7 +86,9 @@ libaegisub_c_pch = ['include/lagi_pre_c.h'] + + libaegisub_inc = include_directories('include') + +-libaegisub = static_library('aegisub', libaegisub_src, acconf, ++libaegisub = static_library('aegisub', libaegisub_src, aegisub_order_dep, ++ c_args: aegisub_defines, ++ cpp_args: aegisub_defines, + include_directories: [libaegisub_inc, deps_inc], + cpp_pch: libaegisub_cpp_pch, + c_pch: libaegisub_c_pch, +diff --git a/meson.build b/meson.build +index f0e56521c..82c92c724 100644 +--- a/meson.build ++++ b/meson.build +@@ -377,7 +377,23 @@ if not get_option('csri').disabled() and host_machine.system() == 'windows' + deps += csri_sp.get_variable('csri_dep') + endif + +-acconf = configure_file(output: 'acconf.h', configuration: conf) ++aegisub_order_dep = [] ++aegisub_defines = [] ++ ++if get_option('b_pch') ++ # Write the feature flags into a configure_file to not bloat the compiler args too much ++ aegisub_order_dep += configure_file(output: 'acconf.h', configuration: conf) ++else ++ # Manually pass the feature flags as compiler args ++ foreach key : conf.keys() ++ aegisub_defines += '-D@0@=@1@'.format(key, conf.get(key)) ++ endforeach ++ ++ if host_machine.system() == 'windows' ++ # This is also part of all the PCHs ++ aegisub_defines += '-DWIN32_LEAN_AND_MEAN' ++ endif ++endif + + subdir('automation') + subdir('libaegisub') +@@ -389,7 +405,9 @@ subdir('tests') + aegisub_cpp_pch = ['src/include/agi_pre.h'] + aegisub_c_pch = ['src/include/agi_pre_c.h'] + +-aegisub = executable('aegisub', aegisub_src, version_h, acconf, resrc, ++aegisub = executable('aegisub', aegisub_src, version_h, resrc, aegisub_order_dep, ++ c_args: aegisub_defines, ++ cpp_args: aegisub_defines, + link_with: [libresrc, libaegisub], + include_directories: [libaegisub_inc, libresrc_inc, version_inc, deps_inc, include_directories('src')], + cpp_pch: aegisub_cpp_pch, +diff --git a/src/ass_parser.h b/src/ass_parser.h +index 9cf6f5017..c621059b6 100644 +--- a/src/ass_parser.h ++++ b/src/ass_parser.h +@@ -13,6 +13,7 @@ + // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + #include <memory> ++#include <string> + + class AssAttachment; + class AssFile; +diff --git a/src/ass_style.cpp b/src/ass_style.cpp +index 33c93b8f3..559cb337c 100644 +--- a/src/ass_style.cpp ++++ b/src/ass_style.cpp +@@ -40,6 +40,7 @@ + #include <libaegisub/format.h> + #include <libaegisub/split.h> + ++#include <algorithm> + #include <boost/lexical_cast.hpp> + #include <wx/intl.h> + +diff --git a/src/audio_timing_dialogue.cpp b/src/audio_timing_dialogue.cpp +index fd15582b1..38b1617c0 100644 +--- a/src/audio_timing_dialogue.cpp ++++ b/src/audio_timing_dialogue.cpp +@@ -39,9 +39,12 @@ + #include "selection_controller.h" + #include "utils.h" + ++#include <list> ++ + #include <libaegisub/ass/time.h> + + #include <boost/range/algorithm.hpp> ++ + #include <wx/pen.h> + + namespace { +diff --git a/src/base_grid.h b/src/base_grid.h +index 2f28a21dc..017d8b35c 100644 +--- a/src/base_grid.h ++++ b/src/base_grid.h +@@ -32,6 +32,8 @@ + #include <memory> + #include <string> + #include <vector> ++#include <wx/brush.h> ++#include <wx/scrolbar.h> + #include <wx/window.h> + + namespace agi { +diff --git a/src/command/command.h b/src/command/command.h +index c90b230a0..b9582630b 100644 +--- a/src/command/command.h ++++ b/src/command/command.h +@@ -17,6 +17,7 @@ + /// @ingroup command + + #include <map> ++#include <memory> + #include <string> + #include <vector> + +diff --git a/src/dialog_colorpicker.cpp b/src/dialog_colorpicker.cpp +index 3430c48bd..4ba6f7f8c 100644 +--- a/src/dialog_colorpicker.cpp ++++ b/src/dialog_colorpicker.cpp +@@ -38,6 +38,7 @@ + + #include <libaegisub/scoped_ptr.h> + ++#include <algorithm> + #include <memory> + #include <vector> + +diff --git a/src/frame_main.cpp b/src/frame_main.cpp +index 58a8a3d0f..d20bc44fb 100644 +--- a/src/frame_main.cpp ++++ b/src/frame_main.cpp +@@ -67,6 +67,7 @@ + #include <wx/sizer.h> + #include <wx/statline.h> + #include <wx/sysopt.h> ++#include <wx/toolbar.h> + + enum { + ID_APP_TIMER_STATUSCLEAR = 12002 +diff --git a/src/main.h b/src/main.h +index de65b65da..35b7be1c9 100644 +--- a/src/main.h ++++ b/src/main.h +@@ -31,6 +31,8 @@ + + #include "aegisublocale.h" + ++#include <vector> ++ + #ifndef wxUSE_EXCEPTIONS + #error wxWidgets is compiled without exceptions support. Aegisub requires exceptions support in wxWidgets to run safely. + #endif +diff --git a/src/preferences.cpp b/src/preferences.cpp +index 1b0033b05..ccc52a905 100644 +--- a/src/preferences.cpp ++++ b/src/preferences.cpp +@@ -47,6 +47,7 @@ + + #include <wx/checkbox.h> + #include <wx/combobox.h> ++#include <wx/dc.h> + #include <wx/event.h> + #include <wx/listctrl.h> + #include <wx/msgdlg.h> +diff --git a/src/spline_curve.cpp b/src/spline_curve.cpp +index b1a799a0f..8020e5bd3 100644 +--- a/src/spline_curve.cpp ++++ b/src/spline_curve.cpp +@@ -35,6 +35,7 @@ + #include "spline_curve.h" + #include "utils.h" + ++#include <algorithm> + #include <limits> + + SplineCurve::SplineCurve(Vector2D p1) : p1(p1), type(POINT) { } +diff --git a/src/utils.cpp b/src/utils.cpp +index 0a307f10c..5929d6171 100644 +--- a/src/utils.cpp ++++ b/src/utils.cpp +@@ -41,6 +41,7 @@ + #ifdef __UNIX__ + #include <unistd.h> + #endif ++#include <algorithm> + #include <map> + #include <unicode/locid.h> + #include <unicode/unistr.h> +diff --git a/src/video_frame.h b/src/video_frame.h +index 2a47ed69c..c57c92dc2 100644 +--- a/src/video_frame.h ++++ b/src/video_frame.h +@@ -14,6 +14,7 @@ + // + // Aegisub Project http://www.aegisub.org/ + ++#include <stddef.h> + #include <vector> + + class wxImage; diff --git a/media-video/aegisub/files/3.4.2/git_version.h b/media-video/aegisub/files/3.4.2/git_version.h new file mode 100644 index 000000000000..f03726ff0de6 --- /dev/null +++ b/media-video/aegisub/files/3.4.2/git_version.h @@ -0,0 +1,5 @@ +#define BUILD_GIT_VERSION_NUMBER 342 +#define BUILD_GIT_VERSION_STRING "3.4.2" +#define TAGGED_RELEASE 0 +#define INSTALLER_VERSION "0.0.0" +#define RESOURCE_BASE_VERSION 0, 0, 0 diff --git a/media-video/aegisub/files/9999/git_version.h b/media-video/aegisub/files/9999/git_version.h new file mode 100644 index 000000000000..b015ecba42ec --- /dev/null +++ b/media-video/aegisub/files/9999/git_version.h @@ -0,0 +1,5 @@ +#define BUILD_GIT_VERSION_NUMBER 9999 +#define BUILD_GIT_VERSION_STRING "9999" +#define TAGGED_RELEASE 0 +#define INSTALLER_VERSION "0.0.0" +#define RESOURCE_BASE_VERSION 0, 0, 0 diff --git a/media-video/aegisub/metadata.xml b/media-video/aegisub/metadata.xml index 331bf705f1d7..91d2b087b736 100644 --- a/media-video/aegisub/metadata.xml +++ b/media-video/aegisub/metadata.xml @@ -9,7 +9,7 @@ <flag name="uchardet">Enable charset discovery via <pkg>app-i18n/uchardet</pkg></flag> </use> <upstream> - <bugs-to>https://github.com/wangqr/Aegisub/issues</bugs-to> - <remote-id type="github">wangqr/Aegisub</remote-id> + <bugs-to>https://github.com/TypesettingTools/Aegisub/issues</bugs-to> + <remote-id type="github">TypesettingTools/Aegisub</remote-id> </upstream> </pkgmetadata> diff --git a/media-video/devedeng/Manifest b/media-video/devedeng/Manifest index c441c3997b10..8e5051ddd326 100644 --- a/media-video/devedeng/Manifest +++ b/media-video/devedeng/Manifest @@ -1,9 +1,5 @@ -AUX devedeng-4.14.0-no_compress_man.patch 878 BLAKE2B f3460e0b28e1a1a80c3f9c1c41e26e608f203e4f9fa59ed93ff837e430ad14231b7375efaf14886fba16ac4f1a1f7247f03a43775441579c364ab91e6b830515 SHA512 d669cd0f55215e90f622acb1ec1895e25b29850ecb1ec5ebe2c5cbf9283f63f8448d064a5938cef250c748feeee0c0da25cdd5370f85d9a61b89532b2e5915cb -AUX devedeng-4.17.0-locale_install.patch 783 BLAKE2B f4917043d5c2f0787c3ee029e13b55ad0f9ac0fa405b5f64fb475f5859c74d4d8e503ad6c06148357d053c928f0f5a4c4be9656117dd5799526ff08499ddf64a SHA512 ad8550b40151d682cd59ee804ad52f28566cf31dac0cdfe8f56fe89983413c4af5146a9493a6b7600ad095c34e3c51ea3a63c2b87fcbb8640790f580813d6bd7 -DIST devedeng-4.17.0.tar.bz2 1773455 BLAKE2B 46d91145f94122bb3a9e83368f50dde6f1b25cecf5101c7d79bbc237bad69cb3d80d3b78429be76af2e4652eeb09e99e12c6c014c6bac8e71a7dd01d689ba634 SHA512 942e9a969146ae87bf1f1a5fa7441459801258f7dcac5a2f2ac8def146c6d88d8d3db27c474b7741cdc980c0757f99e6ee03b0da524f71895ebdbe2fe442a179 -DIST devedeng-4.18.0.tar.bz2 1775035 BLAKE2B f8588af82183ad5824a2d9abfa575b8facc592046845e98a4b9beb6dc73db7ba575b176e2edaf2f7e6d1e95a591932e20fa320efda2a44bbe23cf9c9df072b05 SHA512 0e4b816accf55c896d76c96bffb8ca2f2041310a019ef15b5bd3b0b4099edfae384854c670e564534e8eb1d569706e28810dc226ade6595aeea1e1a17e67391a DIST devedeng-4.19.0.tar.bz2 1772188 BLAKE2B 8a84f09c7d0dc24da31bfb0948ecd3f70d1357393276c70ee6e7951f93a8025d7f6d389e81415d43bceed8bb2f148f29ff673d27c4321ece9eb1bcdbccdb29ce SHA512 77204553ceec014b43872c9be4f2c915557c2a2f4be1533062a0ff376f7c199da911f0eb664c40a2262b4f2dcc2e6c8fb4e6d9c4e4813e63836cd20fb0375347 -EBUILD devedeng-4.17.0-r2.ebuild 1278 BLAKE2B 925f109feef396c71ac082313f0b102ee7152c13bf69800571fd2055460841f78cb6890d639b25fd5f587be85b2c13c48a32908b7254d07d6398c85ddc87b155 SHA512 922954f36ef7a513eb317d6512712bc4e2957994433cbd6a39e47a0ed98284720d9650565e4b15b44a3170b2cdde9f94eed48e304b458842e3265395a3385e1f -EBUILD devedeng-4.18.0.ebuild 1286 BLAKE2B 8f9df5c310177b3e09e0819da1eb7b830aad9e3ee0254a7b00fd57d02dfd30b81c48e216cd8617233fe7125ce453c98dad133ba9277a1de7ab1be4bfd2c6f516 SHA512 c15ef031d5d7277633340dc4b3f01790ac864ffde49f6a245bcb4a838de748e57076bc215404099ea66314cfd2f6fbcca788dfdb51056da5a84f69cf775a0310 +DIST devedeng-4.20.0.tar.bz2 1808587 BLAKE2B f9080a67a21c44738c8ace4d214bbc49e3fb03009d39d351ff85a610b737e5b2b3c7e6347dea8d54e983b5a9bc037ece7b9a4436da30ece67191fb13a9fb4522 SHA512 91989c8dd15cf2bf6a1ef63bfd409a578744f365c88ea9f9536bad970e4be95dacd16500b969e3f32c73690d167ad498ee217685f673be390fea38e268fcba85 EBUILD devedeng-4.19.0.ebuild 1187 BLAKE2B 37a0aa907dce5001e755df23ca5c360416840018ba223ff30d4439a01146956404d44310494134f20a943ffec58bc7afe3ae0de162cfb2549111f31357a28802 SHA512 d5405c7b7cc1747ce17a76cab84b13f81c8edc05601c94ea32c8a276d26a289105ffe7f25052bee63278585f84e31ebd0a95eecd4f3413fbcdf17209c3a17b5e +EBUILD devedeng-4.20.0.ebuild 1187 BLAKE2B a47847bc2e53bc2b32f4ecd9dffc6dd2101dbcc32210cefec68a0b62d36204cd256f5d1bda1f22003b8f5088eaf47f52eaf9ee385f7d2ede3bad113e9a0d4e3f SHA512 eb7e859185fcc95b13ae0c00382386792cd4f11b066366677008c8e2c0df1f4ba07833538fbaf02d7ba5c44a499de7c08f4f79e2a59abec3f2005f3066a83e01 MISC metadata.xml 944 BLAKE2B c2b50b5c9acb851aae770a9cadb5ec843e6bb00fb1dc388717c91c5fdb30f8e17771bc405e988ae3b53c2faff02f0dc795e7ecc858ba93710c396f7daa3d619c SHA512 796edd86345d05e5ee65f4e8472b226c60765ffa80f40fd1f2f744bf9bc5a8d4ae91f0f4a32c13d955f340745107b5fa10669340174accbebec54903026c9886 diff --git a/media-video/devedeng/devedeng-4.18.0.ebuild b/media-video/devedeng/devedeng-4.18.0.ebuild deleted file mode 100644 index 3537b0871278..000000000000 --- a/media-video/devedeng/devedeng-4.18.0.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9..12} ) - -inherit distutils-r1 xdg - -DESCRIPTION="DevedeNG is a program to create video DVDs and CDs (VCD, sVCD or CVD)" -HOMEPAGE="https://www.rastersoft.com/programas/devede.html" -SRC_URI="https://gitlab.com/rastersoft/${PN}/-/archive/${PV}/${P}.tar.bz2" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - app-cdr/cdrtools - dev-python/pycairo[${PYTHON_USEDEP}] - dev-python/pygobject:3[${PYTHON_USEDEP}] - x11-libs/gtk+:3 - || ( media-video/vlc media-video/mpv media-video/mplayer ) - media-video/ffmpeg - media-video/dvdauthor - media-video/vcdimager - || ( app-cdr/brasero kde-apps/k3b app-cdr/xfburn )" - -DEPEND="${PYTHON_DEPS}" - -# src/unitests only works against system installed devedeng -RESTRICT="test" - -PATCHES=( - "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch - "${FILESDIR}"/${PN}-4.17.0-locale_install.patch -) - -src_prepare() { - default - - # Documentation path - sed -e "s#/usr/share/doc/devedeng#/usr/share/doc/${PF}#" \ - -i src/devedeng/configuration_data.py || die - sed -e "/'doc'/s/devedeng/${PF}/" -i setup.py || die - - # Desktop icon - sed -e "/^Icon/s/.svg$//#" -i data/devede_ng.py.desktop || die -} diff --git a/media-video/devedeng/devedeng-4.17.0-r2.ebuild b/media-video/devedeng/devedeng-4.20.0.ebuild index 451ce0cb30ea..475fd54f3a90 100644 --- a/media-video/devedeng/devedeng-4.17.0-r2.ebuild +++ b/media-video/devedeng/devedeng-4.20.0.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9..12} ) +PYTHON_COMPAT=( python3_{9..13} ) inherit distutils-r1 xdg @@ -32,19 +32,14 @@ DEPEND="${PYTHON_DEPS}" # src/unitests only works against system installed devedeng RESTRICT="test" -PATCHES=( - "${FILESDIR}"/${PN}-4.14.0-no_compress_man.patch - "${FILESDIR}"/${P}-locale_install.patch -) - src_prepare() { default # Documentation path - sed -e "s#/usr/share/doc/devedeng#/usr/share/doc/${PF}#" \ - -i src/devedeng/configuration_data.py || die - sed -e "/'doc'/s/devedeng/${PF}/" -i setup.py || die + #sed -e "s#/usr/share/doc/devedeng#/usr/share/doc/${PF}#" \ + # -i src/devedeng/configuration_data.py || die + #sed -e "/'doc'/s/devedeng/${PF}/" -i setup.py || die # Desktop icon - sed -e "/^Icon/s/.svg$//#" -i data/devede_ng.py.desktop || die + sed -e "/^Icon/s/.svg$//#" -i src/devedeng/data/devede_ng.desktop || die } diff --git a/media-video/devedeng/files/devedeng-4.14.0-no_compress_man.patch b/media-video/devedeng/files/devedeng-4.14.0-no_compress_man.patch deleted file mode 100644 index f9d1bfbcbbd4..000000000000 --- a/media-video/devedeng/files/devedeng-4.14.0-no_compress_man.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naur devedeng-4.14.0.orig/setup.py devedeng-4.14.0/setup.py ---- devedeng-4.14.0.orig/setup.py 2019-02-04 23:15:33.000000000 +0100 -+++ devedeng-4.14.0/setup.py 2019-04-15 19:44:50.048675427 +0200 -@@ -26,7 +26,7 @@ - (os.path.join('share', 'devedeng', 'backgrounds'), - glob('data/pixmaps/backgrounds/*')), - (os.path.join('share', 'doc', 'devedeng', 'html'), glob('doc/*')), -- (os.path.join('share', 'man', 'man1'), ['data/devede.1.gz']) -+ (os.path.join('share', 'man', 'man1'), ['data/devede.1']) - ] - - for lang_name in [f for f in os.listdir('locale')]: -@@ -73,12 +73,6 @@ - except: - print("Failed to generate the translations") - --try: -- if os.path.isfile('data/devede.1'): -- os.system("gzip -c data/devede.1 > data/devede.1.gz") --except: -- pass -- - #here = os.path.abspath(os.path.dirname(__file__)) - - setup( diff --git a/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch b/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch deleted file mode 100644 index c8cfefad093b..000000000000 --- a/media-video/devedeng/files/devedeng-4.17.0-locale_install.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -Naur devedeng-4.17.0.orig/setup.py devedeng-4.17.0/setup.py ---- devedeng-4.17.0.orig/setup.py 2022-03-02 16:03:24.000000000 +0100 -+++ devedeng-4.17.0/setup.py 2023-07-09 11:07:43.855950815 +0200 -@@ -33,10 +33,7 @@ - for lang_name in [f for f in os.listdir('locale')]: - mofile = os.path.join('locale', lang_name, - 'LC_MESSAGES', 'devedeng.mo') -- # translations must be always in /usr/share because Gtk.builder only -- # search there. If someone knows how to fix this... -- # share/locale/fr/LC_MESSAGES/ -- target = os.path.join('/usr', 'share', 'locale', -+ target = os.path.join('share', 'locale', - lang_name, 'LC_MESSAGES') - data_files.append((target, [mofile])) - diff --git a/media-video/ffdiaporama/Manifest b/media-video/ffdiaporama/Manifest index 77845ef35058..a13b55a0435d 100644 --- a/media-video/ffdiaporama/Manifest +++ b/media-video/ffdiaporama/Manifest @@ -1,5 +1,3 @@ -DIST ffdiaporama-2.2_pre20230525.tar.gz 63270147 BLAKE2B 26cc3ecd7966a945808481c18b2f9a239132cae5016f33e83ef5588c55b1f2a0d7609cd1bdfaf51ada75e1df5274733b7985f6eb3b3814260102f6c9e406ed68 SHA512 777d110b0948bc3c3bdb14e13b4ce09ec819bfac2759c715a1e247b1d6cf8c8461c1ec28a0315f034e4e5a19b4732ce583d71b2edd9c6375b7dae14868cc8dfe DIST ffdiaporama-2.2_pre20240203.tar.gz 63277387 BLAKE2B 466f8c38b4e308b024f1a8961a0efb0ec5f6c5fe651a8165bd74d8e87823bf3134c5234012f1bd7637d339df92d495f1fc4acaf63670b30ec220e1667963caa0 SHA512 e5e46997df7c90016380f15e4b8b5bab4c8df97e536d4f90216e09ab3c09114dba1b034ea8ce23a6b3c04808ba35e92fd850ab1c1bd8fa1db3e7d8ae7cb6d212 -EBUILD ffdiaporama-2.2_pre20230525.ebuild 1236 BLAKE2B c2a9145f88591c22e817ecdfe0cc61bcf7a500fac177c8edcfc5f691c15804b3540d10f9ac47a09e69240e85c3f59e88a55cbdf3c2be647ea1403ae1dd9c2a43 SHA512 4fb10f01f065fc4f1a299fbff7303a9c521a29b3e85c3fcff145183e85fe04c71d33ffd6bb8da170757df3324d20b2699f9d103718192d5a2d1c8a26b7dab1a6 -EBUILD ffdiaporama-2.2_pre20240203.ebuild 1237 BLAKE2B 6129bf8d4ded58ddb9099ac4ccbc16b2c2435b74bc2eb4659fa91c14e2a356aa2009572b565da883acebe7242b8552c048bfc5f15ba5f170919ebfc16402742d SHA512 8391366fdd202cff6af280d698f7348bf1309d78f61f58f1ee9aabb3f7c70cec5b03faab5e1b1d88c6db743237bb1f7aef5dbfba2379dbdcc0ac48cb68f6536e +EBUILD ffdiaporama-2.2_pre20240203.ebuild 1235 BLAKE2B 7374977c769a3996d8d53c96705e04d504a7d0549ab147d686181709040d70fd6dc3ace9298aaba033d46fa774772cdf17e0b25f300f330d92674d64ecdb82c9 SHA512 3de38e58beb9ac31852b366b7ea3f110a012ab3d45771cfe20bd6c6fab6cb4c3e5ea72b11299eb7dbaaa1c78107775212ac2015a9b16d18c3cd52936fba04a59 MISC metadata.xml 2289 BLAKE2B 508259cbede84e5680f8cf7f481143ab52c3915adef22a0f39198e20174b64327ae7570ce583c585a65aaf39f4478b10e3bf248155c0b49fd00a9e7f70051a34 SHA512 9df8bd5dfab9954b93b61d6460a6d94b5b42a9973d1e27a10b2210d7fe955a70d3f327ce558091055924c3dd9dcf04c84a7bcd475bd5bf7e7808ec4291af48d7 diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild deleted file mode 100644 index 624ed4d35a2f..000000000000 --- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20230525.ebuild +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -COMMIT="6b2587064d705de42a3e88468d4922bc27b97e2a" - -inherit qmake-utils xdg-utils - -DESCRIPTION="Movie creator from photos and video clips" -HOMEPAGE="https://ffdiaporama.tuxfamily.org" -SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-3 CC-BY-3.0" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="openclipart" - -RDEPEND=" - dev-qt/qtconcurrent:5 - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qthelp:5 - dev-qt/qtmultimedia:5 - dev-qt/qtsql:5[sqlite] - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - media-gfx/exiv2:= - >=media-video/ffmpeg-4:0=[encode] - openclipart? ( media-gfx/openclipart[svg,-gzip] )" -DEPEND="${RDEPEND}" - -DOCS=( authors.txt ) - -S="${WORKDIR}/${PN}-${COMMIT}" - -src_configure() { - eqmake5 QMAKE_CFLAGS_ISYSTEM= -} - -src_install() { - emake INSTALL_ROOT="${D}" install - if use openclipart; then - dosym ../../clipart/openclipart /usr/share/ffDiaporama/clipart/openclipart - fi -} - -pkg_postinst() { - xdg_desktop_database_update - xdg_mimeinfo_database_update - xdg_icon_cache_update -} - -pkg_postrm() { - xdg_desktop_database_update - xdg_mimeinfo_database_update - xdg_icon_cache_update -} diff --git a/media-video/ffdiaporama/ffdiaporama-2.2_pre20240203.ebuild b/media-video/ffdiaporama/ffdiaporama-2.2_pre20240203.ebuild index 09236af881f4..6e7189a3b361 100644 --- a/media-video/ffdiaporama/ffdiaporama-2.2_pre20240203.ebuild +++ b/media-video/ffdiaporama/ffdiaporama-2.2_pre20240203.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -13,7 +13,7 @@ SRC_URI="https://github.com/laurantino/${PN}/archive/${COMMIT}.tar.gz -> ${P}.ta LICENSE="GPL-3 CC-BY-3.0" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="openclipart" RDEPEND=" diff --git a/media-video/ffmpeg-chromium/Manifest b/media-video/ffmpeg-chromium/Manifest index daa1e9d745f1..963fc98f29a4 100644 --- a/media-video/ffmpeg-chromium/Manifest +++ b/media-video/ffmpeg-chromium/Manifest @@ -9,6 +9,7 @@ DIST ffmpeg-chromium-130.tar.xz 10420352 BLAKE2B 1b7711a3ee349d1e0d8ad8f761c8a38 DIST ffmpeg-chromium-131.tar.xz 10550352 BLAKE2B 985a4d0caede506050d2277af956723ae74236e2373d766862cef669031e91e44bcb51de219a76a1663f5cac5d85c74bd85215e96dffb14e6090d05ba6031f6c SHA512 1ccba5547ead2a64bcf72b6cdc9b6f9f8a6f817840125248b4d41efdf8376f8a69e8f7d3e4527cf155bb0a058ea6fc9f4cdb12d40a4b74189682e0db7b501ba3 DIST ffmpeg-chromium-132.tar.xz 10588420 BLAKE2B 988fa447019d4fc3a26685bffd9345b4cf31ace3d39c31a070551f4d4f664cf2982b47c4b6265c2f3e2e7b0eca65effb68a9e25840b6a5ca61600a33d5901b8b SHA512 51856a226e29345c708356e1c6ae478239f1f634937e0ad4caa73e33c7bef1dbaeae97d8670ccd8f15e628fc3d399fdb3a4be1769c57d1283704743b6ce23b72 DIST ffmpeg-chromium-133.tar.xz 10592716 BLAKE2B 81aac47dfb694c605242e762e6ced29714bc9780907afda6f61f55afef5416d1d998dda6785e8e64b7968f8b9cfc03bdcc4711535ccad65e6a9c55c626d30226 SHA512 798704455973439d3a1990e6344fe7bf1ebef370e7316cb813e898b84b4a39809e5681d54554a765a8f474731fcdf69897fb00f0b5e7ecc6b2e1bd6eef46a77a +DIST ffmpeg-chromium-134.tar.xz 10687424 BLAKE2B c33487885bb6c75f9bc93abf7b11b52266930dde95411d7e702a2039d94de79d0fa9a4d5f82af12fb7db9e3b3e2be24147a446c6498c60c17841aa5738ec403e SHA512 369aae6bd3b065db3e3b9cac004209e596e9bbeada1a03bb8e20df4b026810fc12489ce52fb95a4320eeec31c09460d18e5c598f36fab1205024f0540be1c639 EBUILD ffmpeg-chromium-125.ebuild 6479 BLAKE2B f71dbdd8922f14df1bca7a085645fdf48b843efe57c022bb31e2728e886c57f80b7993c675a71fd25641b995332d6a8b8015ff6eef988d2b005fb8a1ae980878 SHA512 21c167a3ba28277ac66a400fce531848a5a04a4be344ac94a7de421b8e8814f3c7f3b5612ba91c5ef1607bba371211655f7dfc87a44b8c239b473c8a7f7062a1 EBUILD ffmpeg-chromium-126.ebuild 6479 BLAKE2B 31d1f47cf086e7617bcabc9b342c0155a0bc2782c569e65c391a4d15161165ec6869027b7498d5a20cad433f00d5bc4d64944498170b8b408be4147390ea3910 SHA512 8e7fe997f6ab7ebe4a3e24ab695b8d978296cb368ba2aeda0e5acd4e0dba5ed32bb95b4ae4210ebeef6b178004da153d4fd530ed509c050e777924f786752c37 EBUILD ffmpeg-chromium-127.ebuild 6479 BLAKE2B 7357fe026fd686a96c6098e5259cbbd745b9b3e16afe088f3f0001a40994599439b2638d387b3dbc2aa66eba28a366ec3d032a4ed5d18948d501f8ab8cad086b SHA512 59380fcf97cc23930f8c3ff4023a8351881e8cf11dcfdad16d8c40ebb9891074ae6661455cd3395f0ca55552e8c0782458a9409bb175401d0af2e8a4222b82f4 @@ -16,6 +17,7 @@ EBUILD ffmpeg-chromium-128.ebuild 6479 BLAKE2B 9b7d9a1d995d0a925979ba122a51821d9 EBUILD ffmpeg-chromium-129.ebuild 6479 BLAKE2B 291953066345a7e3018ba56e1cd7ebb12c5f14220c19030b78197381764fb5fe5ff48fad423786ef0dbd335ba917886ab2d71765ef7cae43eed324a0cd08eb88 SHA512 e59e8ec78bcdd939b100ba681488d3c212539ee79a441be0dd6d894689b8a37b2b0e7fbf6d18a9cbf3673daec0be9055dc455c1b0d38fb5afb34594319e63206 EBUILD ffmpeg-chromium-130.ebuild 6479 BLAKE2B 1f58dc1d9b2dcafc3376f6d5048257e35d6bd8b0a0e1eb282de9ea0f710a4500cef8f17653dd41b2e099d02ec5674e01b08bb06ab96e7ef941dcb1254880d80f SHA512 5a7388287e60aed2a0542343805ca1a49a887d97bb9d6e4b2a4d1730a1898c4b953106479a12444ac856099ac7376e22df5484366a0246e86910284c6d3b55a6 EBUILD ffmpeg-chromium-131.ebuild 6479 BLAKE2B 7eb290e9d70180370f3cf2cd0ed93ecdfea60e08df4586730533709650dccd461b43f5f1f2fdc69aa751894d3aefd550ea47fb0aa03adf3c123c1896f167eff6 SHA512 d978f8a08f1f67db72cf6b9af488b71fa57752ef94b40adc42dbddf8cfbb57b2c7654cb09fcc524cf8b533dc6f8580eccdc75cbb236a46e1f1d2737e4d75f92c -EBUILD ffmpeg-chromium-132.ebuild 6454 BLAKE2B c5593622c2c275f72d7bea6cf1636fb284e6993f93f178ce662a40db66f9a8b11f4bfee2a5b65ff8265e84614f263177027db45c8bce30c31a6b5a9fc5bdf863 SHA512 082e172e83a2b30cbdfbd27d95abc79879b7143128b84b59c9a4ffe16cff343a164049bbd8568651658f48c9d9d189e5c4495edc17be69ea79b87f305c7dd21a +EBUILD ffmpeg-chromium-132.ebuild 6452 BLAKE2B a743e4c5d771088ee19cc996ebf5743bc7e828bfca4cbff9928840a57b3658ce3bfd9fca5352c391843989b649c4d5961f1eb64c394ca543ef8e72eef3455c97 SHA512 fdd9cff14fb47a28cf5391508da080298447f049b1282651357c9faa4e3b7824c101df0af48c4221b6219e5c5e567db18992448c9e9c3a19c5c23ad2c6304357 EBUILD ffmpeg-chromium-133.ebuild 6454 BLAKE2B c5593622c2c275f72d7bea6cf1636fb284e6993f93f178ce662a40db66f9a8b11f4bfee2a5b65ff8265e84614f263177027db45c8bce30c31a6b5a9fc5bdf863 SHA512 082e172e83a2b30cbdfbd27d95abc79879b7143128b84b59c9a4ffe16cff343a164049bbd8568651658f48c9d9d189e5c4495edc17be69ea79b87f305c7dd21a +EBUILD ffmpeg-chromium-134.ebuild 6454 BLAKE2B 8210e941f03241209e30f0b70f6e9f116ea25674d4585e30ab5bf71b8a39bb330b0711ef654686bcd5e3249a340bc7b33e18dbf487912600f96c7a39fbf2c41d SHA512 da629eb6853842da6ed0ef261f96617bb9bc9cf06b0b946a263afa1c35b20b4900968165cd0ac37523905619bf7e3602530a5e4021a8419d0e79f1ad801418ba MISC metadata.xml 695 BLAKE2B 84fa4967572665812d4da8bb1a86a8b28a749892570cb1fca5c0515f860fbe8c472a91240f1d3b7b3109ccdbd32cf8da941c438cd9f332b763f2824e0e193ac8 SHA512 0069bcf32d2aa083c66e13579295e8ef96b9ac72b02f1436620000c71c4d1e335391838f9a9e56f7768bd13dbe13ce6f3f3674a303cf90cc658360825867c3f9 diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-132.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-132.ebuild index 649b2d94ea08..cfbddc764afd 100644 --- a/media-video/ffmpeg-chromium/ffmpeg-chromium-132.ebuild +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-132.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -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) diff --git a/media-video/ffmpeg-chromium/ffmpeg-chromium-134.ebuild b/media-video/ffmpeg-chromium/ffmpeg-chromium-134.ebuild new file mode 100644 index 000000000000..043dc19c028a --- /dev/null +++ b/media-video/ffmpeg-chromium/ffmpeg-chromium-134.ebuild @@ -0,0 +1,239 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +COMMIT=d10a0f8bf5ddcce572df95105152bc74041cae0c +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 ) +" + +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 fa961467e4e0..c9d6fba07304 100644 --- a/media-video/ffmpeg/Manifest +++ b/media-video/ffmpeg/Manifest @@ -1,17 +1,14 @@ AUX chromium-r1.patch 1582 BLAKE2B 48547a7d53fd1f0f44b682c7e2306e79f007f8e96b36253f76775c4a3ced54ffaaf403dfaae94e81aa26c60887677b2dabdd2c5cef9fc4553e203f8259453910 SHA512 808daad5afed13a6d3926c9f9ab5cb58f80e16969533022c7ee959147908bb2c12d066d2125a6b6975ef9304d9b8d49c39aeb0a047009adabb4529e3cf54498f AUX chromium-r2.patch 1602 BLAKE2B e3f5441dfb3b8b6975da9dc6c1283c814fae24d0c373b86a2b6b8706d7169a63504f258fcef57c28f738aa7dba0b1f3186afebe45e13e1ab14b7538bdeb1b86e SHA512 31ff29d8fdf91cb4151a6a32902aaac55bb0062383619a655db20351582a88c487da528c6cf319717e4f39a140e3721de9d499c3e96ca0ea231aa4651f41ed9d AUX chromium.c 215 BLAKE2B 2b5149d401433a362149cd4ff020cdc2217388e3ecac4aef86e7a46c7abb0d13a050eb61eab859578ecb9682e075451e2ccf7c2bda5c7ec397f71b9d06c1cf48 SHA512 552ef0a6316e743be717bdb8f49b69ab0b2acda828ff87f581aaf816d403ff59d5153a57f0bfd3b64e37a4fb8d261f0449b520b7e26feb7fd444cb480dc895b5 -AUX ffmpeg-4.4.3-clang-14-ff_seek_frame_binary-crash.patch 1813 BLAKE2B 3fdb56fade5c723fcf387dfe5e31aefbd88e8256fb2ae24a3a90b91902ff18f9ffa9b1e464c0b0b40fad04c7230be7bec78f043b7ce52d70ee94f2a2313dc2b2 SHA512 fb11cb1047d8f44ab9f9f66e52af136b7fea27589929e45afb770e53837954fb03854ea9d839ecee80d3c3d5a493f32bbdbc74e8efc9600d5b53a7d91136abca AUX ffmpeg-4.4.3-get_cabac_inline_x86-32-bit.patch 1068 BLAKE2B b547cd925bfd506e08d44395c67916fe20b30f397a36adf53fcf277660c45aef9d3d8c014b2bbfcf038539618affb9dd8ff5d93f2fe622e4282c61c4d1b26861 SHA512 779e921e783b800e6bf9bc95af73d44a170287676d17bc22f2b7cd91e393f410ec3f6c7bfa173497443a65496047f39f37cac1d56507271411893c5bdcb37d8b AUX ffmpeg-4.4.4-amd-av1-vaapi.patch 11092 BLAKE2B d3561619dd226102116c729475691a4d10382abbe09be3ca79beed61c4b785e76e01d13ef956fce5233a8d525d84b27cb191bb91bc1b9538e72794b98ac31c6a SHA512 3ef47e1f6ab0eacc7a17ee31fcf0ccd6e90812689cd94cbfd4763db57aadff09eafb6dca7a20931bc95208109c6fd00370d6b9a6b3cb9d1bfe55b2436fd5eda8 -AUX ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch 1882 BLAKE2B e60bb09566cf61018a0e910f32ccc9e9d94695877dccdbeedc0c27996c356c397b59889f5d3997b6cea85acf4228f41bdb8086dfa2dc4b0852f4a8031a6d2c14 SHA512 d29410a1119853c7a7c1762fb557be26b7c38e1787a9ebea744a71438cd701d658d55e4c27350bf2d4ff31a8cdc88e0844fa37b5ade3ef706b3ba1cd1462916e AUX ffmpeg-4.4.4-glslang.patch 1526 BLAKE2B d64d95f089c3d3aeafb7cc3fb08700641b6252c3cdbfac2e9b16431819007a8fa7b52ae156a1c9727671f00c9281024596183b85f7f74864ef997f660aa47296 SHA512 2bca3ca62bece6696dd6bd30c8cf57e31b9da551ee1f698a09d0a00ecdc96da51b519a8a42c85d1f572d26db92bec72a717d75c1a6e3c8f59a4a0066e6a332b8 AUX ffmpeg-4.4.4-opencl-parallel-gmake-fix.patch 362 BLAKE2B 709a5a79aea781258998f295e539620651dce08820db345ab3d1d8996b076907db5157bfc7cd1fe15b8ce86bd1f6d073f79a2343f74a2548e9a699b92b4efe6f SHA512 0a5ecb29c19505564b4d3d6f362b8885d055c5a93688f3671509764194fb851aaf51483a956b8a150ec6ea17cc7ca2e5e0cca25d5f476f26c3bbdcb3ebd8ce05 AUX ffmpeg-4.4.4-wint-conversion-vulkan.patch 1066 BLAKE2B 1409c97a31ae59500df944ced7efc064486e325e1658ac8f30d74ac926c63de51b610eebb5be9951adcd8ad02c8c143429c6eff57ce789a1c187e0b24221aa6d SHA512 58e33b2f0e94e75ef7acebb221332dc4d618846f8a968011da370743ce80a4ab688112411d3f2a5320d144c25db567780c870a0eb4045152b73957e2d7fe747e AUX ffmpeg-4.4.5-incmptbl-pntr-types.patch 502 BLAKE2B 2c4d4416b112d1b4b0c985be7765e18e5d52586252834dd47052e13caa8554fd28dcbc88b37013f36134d5dba06b0c917f485f42a8e12d5cda37a6b13dd48827 SHA512 d3e9730467d52cb75999fa2494996e2b1515cdfb22d134be50240308f2c1167569033c7aaa821efe10dc0ee252863ff3c8826b58fbf2a727639c1bee652edc14 AUX ffmpeg-4.4.5-wint-inconversion-libgcrypt.patch 3472 BLAKE2B 7ba84ccd12c4c661a09ad0843ad53d863d3fe60cdba32c9ac2c05c4f2b5167a2315f24ac387d5ec612cf7d05fe6abd4cf00c7facc1c30bcf4f247ed316f716b7 SHA512 8951addd67a6720a45411f28fb3bccfd0707f35c1861969ea5e19c4e71c553116704f18c403c9032ae2443f065fae81c08d029d3a1d44de7c22a959b5e9835a1 AUX ffmpeg-5.0-backport-ranlib-build-fix.patch 2224 BLAKE2B 1af6c5eee3f2c69c0630a73ec3885b9302cb045a03623ff138939348d6ba7e7deef1bb07c33c5bef5834040c4f6abcd7d22af8b0b849b28efde3d5753b776108 SHA512 e82cd400488ba86e5d039f088e3798b5a66245a8753d275d608284081f4b260fb7a4d8d1310f43acdf81258cc507943c8f07e431c497411744a62ba98c88c5bb -AUX ffmpeg-5.1.3-binutils-2.41.patch 2217 BLAKE2B f013c5df1cc3495830d101e551e42dfd07b016913c7cfed82920e85e69d857fb8081e19503d7f0306ca2e0313683d00e3b20293fc8ddab491eb10ffdd3a92b1a SHA512 2db666d4e5f3e9e4f32b6a34e537b5af2229c744eebdbc6680e883b88e5d937ab59f8a0fd7da812a28d9d0a3955853cb594ac5352d31a9655da95b735bbc46c0 AUX ffmpeg-6.0-fix-lto-type-mismatch.patch 1782 BLAKE2B 4cafd0244136c645e8da072b21c906fba97579f667e57f678b450410759fddc834e5a2428b7d0f078130cfc7ab267cad82a46d369951efddcfc5853dd2118837 SHA512 170114d57af0a0b5fc5da71ae76f4725b8cf1a604b5eca10e60761ef22fb0cdb35a166d1dd5ebc4ef990c383e1d1331f8ef2ceccb8dc7bf4adcc7e9ebb2ba899 AUX ffmpeg-6.0.1-alignment.patch 5048 BLAKE2B 9a9345b84b68442c97258a71b49ed773e40d985ea8f2525a8749a7562d787634ff0b0e5e1d257e94f7cf68fab81790ca2f0b64cfcb27453e1e6912de30c560e9 SHA512 575b71b2d69b0c7b4e0498b9375dad55945adc7178c72ed5fd12addeae3ffb0081ab59d743a2a6da1a3b67d84642c7dd3d04e2fdb9ae2d992968ba52aa1aee41 AUX ffmpeg-6.1-gcc-14.patch 523 BLAKE2B b82fc06a7eee0c7ab68ef78f3ac205f45a68a7799dc241f0a574afa48e4dbd477c0d67f7c5a7ff46971adc821ef1507f4957156200167a2c59f8c7f7867ac048 SHA512 092cd9bad652ab82c3b160a37c0c92b561577d56b33776e30b79b7abf487fffeb1ef1273b950c4d4eff62d3cd7fec2a6dc2c294285b0b32eda364e47834a4ff9 @@ -24,28 +21,21 @@ AUX ffmpeg-6.1.1-vulkan-rename.patch 5784 BLAKE2B 25e85dc0e5d3915a709d86be60a938 AUX ffmpeg-6.1.1-wint-inconversion-libgcrypt.patch 3442 BLAKE2B 21d441dd39595c13b7be7407c774a9e3a9d4ae8b2334aeed79d2fa5b88f4c637665b782b0705fabe6283062549138453fb01d1c1d4bbcd799474a7590e59ed75 SHA512 aa8c0c259e7ab98afd608e4c2167eebe4e373000713c84a2052b9836cd04a029d6123bc1ce27a84589048ee3634ab8b30a8e501ff48394d3fccf9f13c85273af AUX ffmpeg-6.1.1-wint-inconversion-vulkan.patch 1565 BLAKE2B 275132b55cdd9b6e1671dc2db5cf5aea1b6198d0942f2ecda5078902ad62172742bf29e17ba63847133b7eb3ff93ccb832ad92e7a7c42ab8c8cc917e964be888 SHA512 fef857daa13fe2b146d22764ede340ccf348d21beda5db4635273c37e22acb054e9d000466fd06b057c97187ba406e5fb08b929808b49e64d67ffcfa0e459a9e AUX vmaf-models-default-path.patch 1126 BLAKE2B 71f83765dc89b85e929af393f9d1415d119e71a91aaf45e8a32fd4fff270a129ca797c3b383a6074bea32fb582816660022a59d33bb6f557514df038baaf0271 SHA512 4d21f4b1622d8e47d2821ecac6b893847ada74d75db7d8aaac70efc7e6e7a6607c011b6fb2d015cb0c5e05f6a56e4feed43eca7d35b0f686a68261e6d9981b6a -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.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 DIST ffmpeg-rpi-7.0.patch.asc 833 BLAKE2B 3086d77e2cc05b7c295fcaef26a9a0d32775999d1bab9075eeeb0a80804b35928698efe870a432558ece55d7873e016422a00013e7d0cca160b71172c31ab449 SHA512 cc885f01b9547f17c6ef1d26d7d1d053186fdf57aa31c0a411a2ab1c0246cec9c2aeef8687e7f8eb0c998d3379712541c60432bc2521a3db1b45d72d316c2d2b -EBUILD ffmpeg-4.4.4-r11.ebuild 20088 BLAKE2B daa4dfb0e08e579346d5e9483fa417ea35ffe368b7cac31c62089baa2bca450e81d64a2703c69b7673026df057f6e6603c02ebd098b9854ff727081d1c1c7038 SHA512 ebdf866e87c58f9361c47f9c5ea3b49f746cdfca0a694fe5f3a418841e2d4b7769bd506cbe26656d0b7cb0c4cb9b845da925fedc23c13596bed08b7ad284a89f EBUILD ffmpeg-4.4.5-r1.ebuild 19907 BLAKE2B 86ef88edda60622dfc4ec3c1179855200063458718a4b32475e25c0d433452ffd66811bd8ffec1a96d9a9ccc0b555386aedabb426786412129db922a21c5b6db SHA512 44d2d81cc7bc15d334bc574c4ba77a88dff209e7f16d445c76d62e15e8940b713a2385af922720f52180eacdefb69fd3c7a0e136657791800a01f545bc658d69 EBUILD ffmpeg-6.1.1-r8.ebuild 20405 BLAKE2B 03cd08cbc65fb67c85a9c5db284269b1f20397314096e1943c5f1ee233fd242f1cef2cb44b3caa241e5705d4dd78b963bf229cc01a50e737f5d6c0967ad95354 SHA512 0bb43aa266d2cd5994dcbaa3547154e9e8a2cc096799f34e4472eea92b0a7135bb12de7a12a0eb825549b94f3b842de26fb46df2b97251343092169b9d395143 EBUILD ffmpeg-6.1.2.ebuild 20372 BLAKE2B 9f15152bbcb4c3b535fcbc16352ee7c1cf8c66f5f74968147bbfa04b53be02a0aa3dda39a3442caecbc2299c52dfe394802fbedfdf47ab8463be3bd6d90992c6 SHA512 3a4f8b302257912b2cff7d238fb32f632f50ea452509f382e4f759add50c2b66df3fa325438df1e513d1c0d8a1b1f224e83669b0d161cbc46d68042402b53a0c -EBUILD ffmpeg-7.0.1-r1.ebuild 20346 BLAKE2B 6f6aab9925cf2b5f2337d27d9d3798a635111d7fc734562d1554b1a54867245b5f4da92e386e771cfcd06d7e78d122dda8cfa1c2ac08395e92211ffaf84be32b SHA512 350bff3c8b953d794cfdc3df585d8851d50d21e0f84aa95da5aca5c97983edbb9ff8c65f87ac67046ab75b25b73a83b7954b67c8cde7bd0ee6e0b0179ba7d7cc EBUILD ffmpeg-7.0.2-r1.ebuild 20346 BLAKE2B 6f6aab9925cf2b5f2337d27d9d3798a635111d7fc734562d1554b1a54867245b5f4da92e386e771cfcd06d7e78d122dda8cfa1c2ac08395e92211ffaf84be32b SHA512 350bff3c8b953d794cfdc3df585d8851d50d21e0f84aa95da5aca5c97983edbb9ff8c65f87ac67046ab75b25b73a83b7954b67c8cde7bd0ee6e0b0179ba7d7cc EBUILD ffmpeg-9999.ebuild 20389 BLAKE2B 4ea633514d6eb64f502fa6919291a20558b342034a8cc06b263baea32a0906b0e0553f5d2321dbf74e81e4c5104e443f379788e97fb1f1efbd32314dee62e3ed SHA512 f6a8002cdc02ac24476baf362272ef4a152ae43cd665732c595e95a97b1741ecedb3a520787a89a2b7efc7bc8f07f74991b0cfc69f21f0b7c0d45352d80f24ce MISC metadata.xml 8343 BLAKE2B 4fa89eaccf10b2b691d66fc20df7cc09b31b848d0c054040664f6d9b132ba422c3a9cae2b239a95f307b4f15d1a5432e751a72fe1e4239376252bee9b814c59a SHA512 9b085513512c323c524d88837a517ebeb6a9db7212e4353ae1330c1db763761aa8114a47337a2f85a18ad2adae210cb56fb0472b09dfd78fdcac0fecf08ea7b3 diff --git a/media-video/ffmpeg/ffmpeg-4.4.4-r11.ebuild b/media-video/ffmpeg/ffmpeg-4.4.4-r11.ebuild deleted file mode 100644 index f0197354a2e7..000000000000 --- a/media-video/ffmpeg/ffmpeg-4.4.4-r11.ebuild +++ /dev/null @@ -1,611 +0,0 @@ -# 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+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-texinfo.patch.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? ( >=llvm-core/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-clang-14-ff_seek_frame_binary-crash.patch - "${FILESDIR}"/${PN}-4.4.3-get_cabac_inline_x86-32-bit.patch - "${FILESDIR}"/${PN}-4.4.4-wint-conversion-vulkan.patch - "${FILESDIR}"/${P}-fix-build-svt-av1-1.5.0.patch - "${FILESDIR}"/${PN}-5.1.3-binutils-2.41.patch - "${FILESDIR}"/${PN}-4.4.4-opencl-parallel-gmake-fix.patch - "${FILESDIR}"/${PN}-4.4.4-glslang.patch - "${WORKDIR}"/${PN}-4.4.4-texinfo.patch - "${FILESDIR}"/${PN}-4.4.4-amd-av1-vaapi.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-7.0.1-r1.ebuild b/media-video/ffmpeg/ffmpeg-7.0.1-r1.ebuild deleted file mode 100644 index aa31d2b98eb0..000000000000 --- a/media-video/ffmpeg/ffmpeg-7.0.1-r1.ebuild +++ /dev/null @@ -1,616 +0,0 @@ -# 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? ( >=llvm-core/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) - ) - - if use elibc_musl ; then - append-cflags -D__musl__ - fi - - # 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/files/ffmpeg-4.4.3-clang-14-ff_seek_frame_binary-crash.patch b/media-video/ffmpeg/files/ffmpeg-4.4.3-clang-14-ff_seek_frame_binary-crash.patch deleted file mode 100644 index c8733ea2382f..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-4.4.3-clang-14-ff_seek_frame_binary-crash.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://github.com/FFmpeg/FFmpeg/commit/ab792634197e364ca1bb194f9abe36836e42f12d - -(Rebased for 4.4.x in Gentoo.) - -From ab792634197e364ca1bb194f9abe36836e42f12d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st> -Date: Mon, 18 Oct 2021 12:31:38 +0300 -Subject: [PATCH] seek: Fix crashes in ff_seek_frame_binary if built with - latest Clang 14 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Passing an uninitialized variable as argument to a function is -undefined behaviour (UB). The compiler can assume that UB does not -happen. - -Hence, the compiler can assume that the variables are never -uninitialized when passed as argument, which means that the codepaths -that initializes them must be taken. - -In ff_seek_frame_binary, this means that the compiler can assume -that the codepaths that initialize pos_min and pos_max are taken, -which means that the conditions "if (sti->index_entries)" and -"if (index >= 0)" can be optimized out. - -Current Clang git versions (upcoming Clang 14) enabled an optimization -that does this, which broke the current version of this function -(which intentionally left the variables uninitialized, but silencing -warnings about being uninitialized). See [1] for discussion on -the matter. - -[1] https://reviews.llvm.org/D105169#3069555 - -Signed-off-by: Martin Storsjö <martin@martin.st> ---- a/libavformat/utils.c -+++ b/libavformat/utils.c -@@ -2146,7 +2146,7 @@ int ff_seek_frame_binary(AVFormatContext *s, int stream_index, - int64_t target_ts, int flags) - { - const AVInputFormat *avif = s->iformat; -- int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit; -+ int64_t pos_min = 0, pos_max = 0, pos, pos_limit; - int64_t ts_min, ts_max, ts; - int index; - int64_t ret; diff --git a/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch b/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch deleted file mode 100644 index c9c180f06641..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-4.4.4-fix-build-svt-av1-1.5.0.patch +++ /dev/null @@ -1,44 +0,0 @@ -https://bugs.gentoo.org/907478 -https://bugs.gentoo.org/907493 -https://git.videolan.org/?p=ffmpeg.git;a=commit;h=c3c8f97a9804b4234e97f13b0057ffc2c9af27c0 - -From c3c8f97a9804b4234e97f13b0057ffc2c9af27c0 Mon Sep 17 00:00:00 2001 -From: Christopher Degawa <christopher.degawa@intel.com> -Date: Thu, 20 Oct 2022 22:55:27 -0500 -Subject: [PATCH] avcodec/libsvtav1: remove compressed_ten_bit_format and - simplify alloc_buffer - -compressed_ten_bit_format has been deprecated upstream and has no effect -and can be removed. Plus, technically it was never used in the first place -since it would require the app (ffmpeg) to set it and do additional -processing of the input frames. - -Also simplify alloc_buffer by removing calculations relating to the -non-existant processing. - -Signed-off-by: Christopher Degawa <christopher.degawa@intel.com> -(cherry picked from commit 031f1561cd286596cdb374da32f8aa816ce3b135) ---- a/libavcodec/libsvtav1.c -+++ b/libavcodec/libsvtav1.c -@@ -120,16 +120,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err, - - static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) - { -- const int pack_mode_10bit = -- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; -- const size_t luma_size_8bit = -- config->source_width * config->source_height * (1 << pack_mode_10bit); -- const size_t luma_size_10bit = -- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; -+ const size_t luma_size = config->source_width * config->source_height * -+ (config->encoder_bit_depth > 8 ? 2 : 1); - - EbSvtIOFormat *in_data; - -- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; -+ svt_enc->raw_size = luma_size * 3 / 2; - - // allocate buffer for in and out - svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); --- -2.30.2 diff --git a/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch b/media-video/ffmpeg/files/ffmpeg-5.1.3-binutils-2.41.patch deleted file mode 100644 index 7031d1f02ccf..000000000000 --- a/media-video/ffmpeg/files/ffmpeg-5.1.3-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=25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e -https://sourceware.org/PR30578 -https://gcc.gnu.org/PR108941 - -From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001 -From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net> -Date: Sun, 16 Jul 2023 18:18:02 +0300 -Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift - instructions within inline assembly - -Fixes assembling with binutil as >= 2.41 - -Signed-off-by: James Almer <jamrial@gmail.com> -(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb) ---- a/libavcodec/x86/mathops.h -+++ b/libavcodec/x86/mathops.h -@@ -35,12 +35,20 @@ - static av_always_inline av_const int MULL(int a, int b, unsigned shift) - { - int rt, dummy; -+ if (__builtin_constant_p(shift)) - __asm__ ( - "imull %3 \n\t" - "shrdl %4, %%edx, %%eax \n\t" - :"=a"(rt), "=d"(dummy) -- :"a"(a), "rm"(b), "ci"((uint8_t)shift) -+ :"a"(a), "rm"(b), "i"(shift & 0x1F) - ); -+ else -+ __asm__ ( -+ "imull %3 \n\t" -+ "shrdl %4, %%edx, %%eax \n\t" -+ :"=a"(rt), "=d"(dummy) -+ :"a"(a), "rm"(b), "c"((uint8_t)shift) -+ ); - return rt; - } - -@@ -113,19 +121,31 @@ __asm__ volatile(\ - // avoid +32 for shift optimization (gcc should do that ...) - #define NEG_SSR32 NEG_SSR32 - static inline int32_t NEG_SSR32( int32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("sarl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("sarl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - - #define NEG_USR32 NEG_USR32 - static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ -+ if (__builtin_constant_p(s)) - __asm__ ("shrl %1, %0\n\t" - : "+r" (a) -- : "ic" ((uint8_t)(-s)) -+ : "i" (-s & 0x1F) - ); -+ else -+ __asm__ ("shrl %1, %0\n\t" -+ : "+r" (a) -+ : "c" ((uint8_t)(-s)) -+ ); - return a; - } - --- -2.30.2 diff --git a/media-video/guvcview/Manifest b/media-video/guvcview/Manifest index 7eb58b4c3559..347bd4e4cc8b 100644 --- a/media-video/guvcview/Manifest +++ b/media-video/guvcview/Manifest @@ -1,3 +1,5 @@ -DIST guvcview-src-2.1.0.tar.bz2 775670 BLAKE2B e6f0fe87b1c44e00265228195b93bb5863170487fd1c3b9741667dc32295406bd920f44150efaecb42ab9396ec67897d3bef517e29ee788c2a6a8a6a95692f81 SHA512 f449e1b1623bb2a96847fc88c4e334ff5bde91f0f9779e37ccbd5777fb96ea4106c3df2c9c30f5d6cacf99e4da04815fc3b739387c2a8fb496c3080b1f99ab70 -EBUILD guvcview-2.1.0.ebuild 1553 BLAKE2B 4f4fdc3d02762f8744edd62edbad8c144a004438ae6050978b331b48a05427356b1a580f4736b63ac3dc77edc8f97050e5b385cb5171a9a4d4af24b94502e10a SHA512 918ba2f2730aa03802a136588d7986232728cd9fb0e210655aa6c17947e602be1d35283161064909a94ef14eab3e7b40d60afea881576edeea36d5f12da02df2 -MISC metadata.xml 381 BLAKE2B d720778a6b2eb8b44e4e14d00129463dfe9d1b00ae8f65df21e91dd5fd9a3a34a17fcd646227b8da5d38291d01b1cbc52050ec3f15e5ea983e6c4bc11268735d SHA512 28c16af3583e468277389a9a80a24b0e2a5b9515fcb5e3840edc399c20d57df669cea911d4f62461f4d75211c7396d5a12ef61d73554eeb0a8ea78ad7e6e7d1f +AUX guvcview-2.2.1-fix-desktop-file-for-cmake.patch 4049 BLAKE2B 29d55a995067a040455b501d3cf53900cb3742d7a843318abd5d55549788cf3aa1903024872ca68bc02985fd8f168609d8663598ef4a23cc42f74fd6036ed0cd SHA512 3cae1a8eb2e4bd3ad0039ab1607f212d4c098969173a7dcacaf288512302946c292486c8096c93ec3d04ded9a80e88eff28b8efa21fd132558bb2359926232b6 +AUX guvcview-2.2.1-set-metainfo-dir.patch 638 BLAKE2B 0086765d05e88b0cdfe6e91bea33b749c2a7d105477f66371a4356779e4dbadc9f36c0e87b9dee44ce902804f27b4dc22d7a93a1afd5bd43ec7573fa1d5cafaa SHA512 b7a040b46e5931a03c38c5a48a16ad735dd5072f08f8b0ed4711f738b1de34177465ea7322807fe645daca9818bf7de5c937bdbd4c038ba403a4453def1efc7e +DIST guvcview-src-2.2.1.tar.bz2 355747 BLAKE2B 57b1ea3a38ce4dbd68220b3a5caacf2f0b3e4b8cd880667988ea13bf50f495cb761249df2fc7ddf24fcdea19b6b4317b5ec1fc63202987bc7820d6095913233f SHA512 3757ff41306c6c02b3a0fcb7f9a4499e90271e47a2dd97f75a2a809caf32a0a0ceaf28c2475bf707017009f8bf9aa7fcef36cb4386b08311998b51d7122cefea +EBUILD guvcview-2.2.1.ebuild 1449 BLAKE2B 7480999860d60e38ace3958b498380fe1ac6caa59c07739036ab0101facb6aaf92fd792f2fb70a1203c0bf85d056927188b3ffa0cd5ac5e70c069d7199d30e8f SHA512 bc5fb4fbd2e7cfc36568ef512f02b245f40a24f45678fd9d944b3e0ffb9b09cc24a1b976521379ab1593983eceaa0da8e4ef8e023ec44c99f8e8a9af4d7c4166 +MISC metadata.xml 453 BLAKE2B ed954c0cfdf0d7212125af613a8929574866b13857abf41e2416c4020b88337f4a0809f35a528e7be7c5f4e826d1aca7d5097f708ccb126cf5b7fcc5a2b1af9f SHA512 559dab81f693aab8513e7c5178383dbbfa3a96bf7268278a645d591f807552e877e19928c3074c2a7e00ec7e24c9bad5cd4cdf71daae90c499f740ec248f299b diff --git a/media-video/guvcview/files/guvcview-2.2.1-fix-desktop-file-for-cmake.patch b/media-video/guvcview/files/guvcview-2.2.1-fix-desktop-file-for-cmake.patch new file mode 100644 index 000000000000..4748def9a922 --- /dev/null +++ b/media-video/guvcview/files/guvcview-2.2.1-fix-desktop-file-for-cmake.patch @@ -0,0 +1,86 @@ +https://sourceforge.net/p/guvcview/git-master/ci/39f76eda4d66ef7b2303ce795e701e43fafadff2 +From 39f76eda4d66ef7b2303ce795e701e43fafadff2 Mon Sep 17 00:00:00 2001 +From: Paulo Assis <pj.assis@gmail.com> +Date: Mon, 2 Dec 2024 14:19:01 +0000 +Subject: [PATCH] Fix desktop file for cmake + +--- + data/guvcview.desktop.in | 64 +++++++++++++++++++++++++++++++++++++--- + 1 file changed, 60 insertions(+), 4 deletions(-) + +diff --git a/data/guvcview.desktop.in b/data/guvcview.desktop.in +index c086c21..ca02856 100644 +--- a/data/guvcview.desktop.in ++++ b/data/guvcview.desktop.in +@@ -1,8 +1,64 @@ + [Desktop Entry] +-_Name=guvcview +-_GenericName=GTK UVC video viewer +-_X-GNOME-FullName=GTK UVC video viewer +-_Comment=A video viewer and capturer for the linux uvc driver ++Name=guvcview ++Name[cs]=guvcview ++Name[de]=GUVCView ++Name[en_AU]=guvcview ++Name[es]=guvcview ++Name[fr]=guvcview ++Name[it]=guvcview ++Name[lv]=guvcview ++Name[nl]=guvcview ++Name[pt]=guvcview ++Name[pt_BR]=guvcview ++Name[ru]=guvcview ++Name[si]=guvcview ++Name[sr]=Камерица ++Name[tr]=guvcview ++GenericName=GTK UVC video viewer ++GenericName[cs]=Prohlížeč videa GTK UVC ++GenericName[de]=UVC-Video-Betrachter in GTK ++GenericName[en_AU]=GTK UVC video viewer ++GenericName[es]=Visualizador GTK de vídeo UVC ++GenericName[fr]=Logiciel GTK de visualisation de vidéo UVC ++GenericName[it]=GTK UVC visualizzatore video ++GenericName[lv]=GTK UVC video skatītājs ++GenericName[nl]=GTK UVC videokijker ++GenericName[pt]=Visualizador de vídeo GTK UVC ++GenericName[pt_BR]=Visualizador de vídeo GTK UVC ++GenericName[ru]=GTK UVC видео обозреватель ++GenericName[si]=GTK UVC වීඩියෝ දකින්නා ++GenericName[sr]=ГТК УВЦ видео приказивач ++GenericName[tr]=GTK UVC video görüntüleyici ++X-GNOME-FullName=GTK UVC video viewer ++X-GNOME-FullName[cs]=Prohlížeč videa GTK UVC ++X-GNOME-FullName[de]=UVC-Video-Betrachter in GTK ++X-GNOME-FullName[en_AU]=GTK UVC video viewer ++X-GNOME-FullName[es]=Visualizador GTK de vídeo UVC ++X-GNOME-FullName[fr]=Logiciel GTK de visualisation de vidéo UVC ++X-GNOME-FullName[it]=GTK UVC visualizzatore video ++X-GNOME-FullName[lv]=GTK UVC video skatītājs ++X-GNOME-FullName[nl]=GTK UVC videokijker ++X-GNOME-FullName[pt]=Visualizador de vídeo GTK UVC ++X-GNOME-FullName[pt_BR]=Visualizador de vídeo GTK UVC ++X-GNOME-FullName[ru]=GTK UVC видео обозреватель ++X-GNOME-FullName[si]=GTK UVC වීඩියෝ දකින්නා ++X-GNOME-FullName[sr]=ГТК УВЦ видео приказивач ++X-GNOME-FullName[tr]=GTK UVC video görüntüleyici ++Comment=A video viewer and capturer for the linux uvc driver ++Comment[cs]=Prohlížení a zachytávání videa z linuxových uvc ovladačů ++Comment[de]=Ein Video-Betrachter und Aufnahmewerkzeug für den Linux-UVC-Treiber ++Comment[en_AU]=A video viewer and capturer for the linux uvc driver ++Comment[es]=Un visualizador y capturador de vídeo para el controlador UVC de Linux ++Comment[fr]=Logiciel de visualisation et de capture vidéo pour le pilote uvc Linux ++Comment[it]=Un visualizzatore e catturatore video per il driver uvc di linux ++Comment[lv]=Video skatītājs un uzņēmējs Linux UVC draiverim ++Comment[nl]=Een programma voor het bekijken en opnemen van video, voor het Linuxstuurprogramma uvc ++Comment[pt]=Um visualizador e capturador de de vídeo para o controlador linux uvc ++Comment[pt_BR]=Um visualizador e capturador de de vídeo para o controlador linux uvc ++Comment[ru]=Программа просмотра и записи видео для драйвера Linux UVC ++Comment[si]=ලිනක්ස් uvc ඩ්රයිවරය සඳහා වීඩියෝ පෙන්වන්නා සහ ග්රහණය කරන්නා ++Comment[sr]=Приказивач и снимач видеа за линуксов увц управљачки програм ++Comment[tr]=Linux uvc sürücüsü için video görüntüleyici ve yakalayıcı + TryExec=guvcview + Exec=guvcview + Icon=@DATADIR@/pixmaps/guvcview.png +-- +2.45.2 + diff --git a/media-video/guvcview/files/guvcview-2.2.1-set-metainfo-dir.patch b/media-video/guvcview/files/guvcview-2.2.1-set-metainfo-dir.patch new file mode 100644 index 000000000000..dc0285fa7afa --- /dev/null +++ b/media-video/guvcview/files/guvcview-2.2.1-set-metainfo-dir.patch @@ -0,0 +1,11 @@ +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -16,7 +16,7 @@ + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/guvcview DESTINATION ${DATADIR}/menu) + endif() + +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/guvcview.appdata.xml DESTINATION ${DATADIR}/appdata) ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/guvcview.appdata.xml DESTINATION ${DATADIR}/metainfo) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/guvcview.desktop DESTINATION ${DATADIR}/applications) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/guvcview.1.gz DESTINATION ${DATADIR}/man/man1) + install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/icons/guvcview.png DESTINATION ${DATADIR}/pixmaps) diff --git a/media-video/guvcview/guvcview-2.1.0.ebuild b/media-video/guvcview/guvcview-2.1.0.ebuild deleted file mode 100644 index d0bfd23a7cb9..000000000000 --- a/media-video/guvcview/guvcview-2.1.0.ebuild +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -MY_P=${PN}-src-${PV} -inherit autotools qmake-utils toolchain-funcs - -DESCRIPTION="Simple Qt5 or GTK+3 interface for capturing and viewing video from v4l2 devices" -HOMEPAGE="http://guvcview.sourceforge.net/" -SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.bz2" -S="${WORKDIR}/${PN}-src-${PV}" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="gsl pulseaudio qt5" - -BDEPEND=" - dev-util/intltool - dev-build/autoconf-archive - sys-devel/gettext - virtual/pkgconfig -" -RDEPEND=" - >=dev-libs/glib-2.10 - media-libs/libpng:= - media-libs/libsdl2 - media-libs/libv4l - >=media-libs/portaudio-19_pre - >=media-video/ffmpeg-2.8:= - virtual/libusb:1 - virtual/udev - gsl? ( >=sci-libs/gsl-1.15:= ) - pulseaudio? ( media-libs/libpulse ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - ) - !qt5? ( >=x11-libs/gtk+-3.6:3 ) -" -# linux-headers: bug 448260 -DEPEND=" - ${RDEPEND} - >=sys-kernel/linux-headers-3.4-r2 - virtual/os-headers -" - -src_prepare() { - default - - sed -i '/^docdir/,/^$/d' Makefile.am || die - echo "guvcview/gui_qt5_audioctrls.cpp" >> po/POTFILES.skip || die # bug #630984 - eautoreconf -} - -src_configure() { - export MOC="$(qt5_get_bindir)/moc" - - # 599030 - tc-export CC CXX - - local myeconfargs=( - --disable-debian-menu - $(use_enable gsl) - $(use_enable pulseaudio pulse) - $(use_enable qt5) - $(use_enable !qt5 gtk3) - ) - econf "${myeconfargs[@]}" -} - -src_install() { - default - find "${D}" -name '*.la' -type f -delete || die -} diff --git a/media-video/guvcview/guvcview-2.2.1.ebuild b/media-video/guvcview/guvcview-2.2.1.ebuild new file mode 100644 index 000000000000..29ccca3d023d --- /dev/null +++ b/media-video/guvcview/guvcview-2.2.1.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="Simple Qt6 or GTK+3 interface for capturing and viewing video from v4l2 devices" +HOMEPAGE="https://guvcview.sourceforge.net/" +SRC_URI="https://downloads.sourceforge.net/project/${PN}/source/${PN}-src-${PV}.tar.bz2" +S="${WORKDIR}/${PN}-src-${PV}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="gsl pulseaudio qt6 sfml" + +BDEPEND=" + sys-devel/gettext + virtual/pkgconfig +" +RDEPEND=" + media-libs/libpng:= + media-libs/libv4l + media-libs/portaudio + media-video/ffmpeg:= + virtual/libusb:1 + virtual/udev + gsl? ( sci-libs/gsl:= ) + pulseaudio? ( media-libs/libpulse ) + qt6? ( dev-qt/qtbase:6[gui,widgets] ) + !qt6? ( + dev-libs/glib:2 + x11-libs/gtk+:3 + ) + sfml? ( + media-libs/libglvnd + media-libs/libsfml:= + ) + !sfml? ( media-libs/libsdl2 ) +" +# linux-headers: bug 448260 +DEPEND=" + ${RDEPEND} + virtual/os-headers + !qt6? ( x11-base/xorg-proto ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-2.2.1-fix-desktop-file-for-cmake.patch + "${FILESDIR}"/${PN}-2.2.1-set-metainfo-dir.patch +) + +src_configure() { + local mycmakeargs=( + -DINSTALL_DEVKIT=ON + -DUSE_DEBIANMENU=OFF + -DUSE_PULSE=$(usex pulseaudio) + -DUSE_GTK3=$(usex !qt6) + -DUSE_QT6=$(usex qt6) + -DUSE_SDL2=$(usex !sfml) + -DUSE_SFML=$(usex sfml) + ) + + cmake_src_configure +} + +src_install() { + cmake_src_install + + gunzip "${ED}"/usr/share/man/man1/guvcview.1.gz || die +} diff --git a/media-video/guvcview/metadata.xml b/media-video/guvcview/metadata.xml index b0fc701d591b..3ac36f1bffc3 100644 --- a/media-video/guvcview/metadata.xml +++ b/media-video/guvcview/metadata.xml @@ -8,6 +8,7 @@ <remote-id type="sourceforge">guvcview</remote-id> </upstream> <use> - <flag name="qt5">Build with Qt5 interface instead Gtk+</flag> + <flag name="qt6">Build with Qt6 interface instead of Gtk+</flag> + <flag name="sfml">Build with SFML X11-engine instead of sdl</flag> </use> </pkgmetadata> diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest index a47cdfa63cf8..3408c9d0866a 100644 --- a/media-video/handbrake/Manifest +++ b/media-video/handbrake/Manifest @@ -1,5 +1,6 @@ AUX handbrake-1.3.3-x265-link.patch 205 BLAKE2B e65b844a3924f2a332112502b9fb627eb876165d24ee4610c10a9d32a6d6e4eb98046d524837e7c1ce603135d40c77fa461128c3900734ae06681cb4d5bebd47 SHA512 d094c5348356ee3fde1ca1a0181b5b9bb64e9d10f956e34aed5033c21abb81db262970efc9fc72ef75b931ddc240dcb275f18dcc118b73dc585c933f537678e7 AUX handbrake-1.6.1-missing-include.patch 550 BLAKE2B 874c646bd6ce430dd2b273fc80406bee3ab4b405be41f984a6f8600b69a9344996de31e007db3d62c4a423d4e5c75758e47d7d089a5c7b07ea7e866a7b222fd4 SHA512 7b09ad791823f34ca8d64312bbcf0583a087522502625eba043fb9c81db5a135c7585bdd8d8241ecb2a3dd045cee4192b0bab83a9457d419b82204cb1b48432d +AUX handbrake-1.9.0-arm64-c99.patch 3496 BLAKE2B c4e9893cd154b0e8ba4dfc4a2d81e332ca295ec816990de7a34e5e885fdd6c1d9790224bcfff4e6780da914ee9d4b4662f3259b1746609174983d054c97305e3 SHA512 0894cc994e980723f13e34f5bcf8b5def55fb054febb96fe77852d88651675ea0c2a36932216f0af4a273edb01b04294315329770215e237fcfa4fd8e8f1259d AUX handbrake-1.9.0-include-vpl-properly.patch 529 BLAKE2B 3b50d912631f0308f41a2ca3704c496a01b0e5a2c74f21c4e39d50d1013e8cb0a10f02e69f01843a1f8390804b512a39908ff07a11aa4c2081c6e4693d57c7dc SHA512 167335712a90894b09ea20731578fe54c59b539fe848a1e69e0908ff3962b11b734b48edec377e92631d3b6695076bb5a1e1cf4cfd3b7158ee2cad4947812416 AUX handbrake-1.9.0-link-libdovi-properly.patch 817 BLAKE2B c06d501b35dde3e7ff034130e179adff62a6ae518238860957ab562809e61a336fc73f1f2303d47e208bfbd47fb90e1b0f6f32bcb647a9a721f8b2b4a2e908a3 SHA512 01428d07d2add6ce9e7a7acb53fdb00310e3cfcbf5ae2f723dc4507523380dbbc15c4e3d8e1fd4c1ec7519034520905d9987659c2a5f1c277580aa7381c6b856 AUX handbrake-9999-dont-search-for-python.patch 626 BLAKE2B 25226e243d06fb1a4bf7d7a9a0b2d5f77b37e87fd413c17bad285f10c0cefd33bee9dc193cc3497cd0740a36d3c596579502d3c76eccb514fa09b5976a171e48 SHA512 fd7684b0e312772c4e9e206dad402f3672c600a570cc60da543dc7e984b2bb91c7a3843b1a86dfe11179b86e35396aafa1c7464d6d7d0e93472d740ab6bcc4d9 @@ -10,6 +11,6 @@ DIST handbrake-1.9.0.tar.bz2 9427823 BLAKE2B 5e7c4aa054957dc61582956b7e2b9916f67 DIST handbrake-ffmpeg-7.1.tar.bz2 13260188 BLAKE2B 32466fbefdeb30796a329869bf6fe547a0d3285ae8d9505758e5bff5103f5edf1bebd2dd8595822d0cd25e3754929ed47878ab42c420e248fb2d6ea51747145a SHA512 3f28af9a0c0779b4a7f4e5fbfd94616eb83265856ef060a8bb8afbb9f1b899885a218f15b7ac2c48f724d961dd2742ef6544b237118cb94563ecf49fbd740e3b DIST handbrake-x265_4.1.tar.gz 1722231 BLAKE2B 5950cc5361da88a8db5403b2837081347980cd31848ce77802e8a29cfb70f6b321d14ffa08c20270e80435076e36428c7de8293c3db9b6b2e8837aa512300126 SHA512 72798265423b605b0ca5f5541f3cc39f62dae7560a5a4023f8d38f6977ded80b1911ef8154c485fbe62ef97a051d938412934c9a00f3df010f11d83ffc650e7e EBUILD handbrake-1.6.1.ebuild 4304 BLAKE2B b958d31ef276ab178f00b0f64e6244c5290697cfdc31c872e5e35c914b35dff1eeaa79a438924d9785b943d90429792c10159b2bd11a0e4c7d1c005181dd1d56 SHA512 336fa7705b34ff1a1cb29b7279a836e285d6864ccfabfd58ed9f5d01c19417063328e3562b672834b417a0fccd0457442038afc75e81f7afa6a557d38e7e45bc -EBUILD handbrake-1.9.0.ebuild 5462 BLAKE2B 77bc5dd73c59612bb69142948250cbf8decf4efc515915707f74a8e196c528103d6e9c815381c5d4ac743abda0e8c7d1ae9d685e7e74c8126427287eb536196b SHA512 7bedfe3f68f7b52bc753379c17a0e3eebbc7ac26cdb6969e473f6834d370847548aa203f308561026209944f31a41e835ced7e8a7c1d11a6566479ebc5becf08 +EBUILD handbrake-1.9.0.ebuild 5509 BLAKE2B 713ffdb6815a43f064adfb4cd373e5166a0965b4931b4954e23cb72aa884f5d302b8538e8c79fffe3bfef589f40f38be8e011f21be3d590dc6fd70e27f4df0ae SHA512 efabd09d16ae4e25a075375f7e301e29472635c31bb9b0eb16a15b6f6c400ebbb462e4e7d00bd0b5736232ef16afd3a8c50eed11163df2ad9cb3460518db8da0 EBUILD handbrake-9999.ebuild 5462 BLAKE2B 77bc5dd73c59612bb69142948250cbf8decf4efc515915707f74a8e196c528103d6e9c815381c5d4ac743abda0e8c7d1ae9d685e7e74c8126427287eb536196b SHA512 7bedfe3f68f7b52bc753379c17a0e3eebbc7ac26cdb6969e473f6834d370847548aa203f308561026209944f31a41e835ced7e8a7c1d11a6566479ebc5becf08 MISC metadata.xml 977 BLAKE2B 5146109b2ca201d5b292e0be595eae56a945e0179137467a2b9aaee92446454e5b3bcd0e15499dc0f486aba9cf676c3debf34006193a6f84468c4be657eafacf SHA512 e8c3dfea5cda5e48370001fb72f7b6cb53e8ee8ec28a3f2e209e3c55195884d5a83ed3ecbc47e09b9ffc623494ae317811ca853646e61c263ab9a25833cdd5e1 diff --git a/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch b/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch new file mode 100644 index 000000000000..ba795cc607b2 --- /dev/null +++ b/media-video/handbrake/files/handbrake-1.9.0-arm64-c99.patch @@ -0,0 +1,77 @@ +https://bugs.gentoo.org/946885 +https://github.com/HandBrake/HandBrake/issues/6454 +https://github.com/HandBrake/HandBrake/pull/6463 + +From f8550e62e853348d36e0f0fc8e757a18fb3ac784 Mon Sep 17 00:00:00 2001 +From: Dash Santosh <dash.sathyanarayanan@multicorewareinc.com> +Date: Tue, 3 Dec 2024 06:43:59 -0800 +Subject: [PATCH] build: fix gcc14 aarch64 build failure + +--- + libhb/templates/comb_detect_template.c | 8 ++++---- + libhb/templates/decomb_template.c | 4 ++-- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/libhb/templates/comb_detect_template.c b/libhb/templates/comb_detect_template.c +index dfda498b2023..89bd0a468a28 100644 +--- a/libhb/templates/comb_detect_template.c ++++ b/libhb/templates/comb_detect_template.c +@@ -270,7 +270,7 @@ static void FUNC(detect_gamma_combed_segment)(hb_filter_private_t *pv, + mask_vec = vandq_u32(mask_vec, condition); + mask_vec = vandq_u32(mask_vec, v_one); + +- vst1q_u32(&mask32, mask_vec); ++ vst1q_u32(mask32, mask_vec); + + mask[0] = mask32[0]; + mask[1] = mask32[1]; +@@ -550,7 +550,7 @@ static void FUNC(detect_combed_segment)(hb_filter_private_t *pv, + mask_vec = vandq_u32(mask_vec, condition); + mask_vec = vandq_u32(mask_vec, v_one); + +- vst1q_u32(&mask32, mask_vec); ++ vst1q_u32(mask32, mask_vec); + + mask[0] = mask32[0]; + mask[1] = mask32[1]; +@@ -568,7 +568,7 @@ static void FUNC(detect_combed_segment)(hb_filter_private_t *pv, + mask_vec = vandq_u32(mask_vec, condition); + mask_vec = vandq_u32(mask_vec, v_one); + +- vst1q_u32(&mask32, mask_vec); ++ vst1q_u32(mask32, mask_vec); + + mask[0] = mask32[0]; + mask[1] = mask32[1]; +@@ -585,7 +585,7 @@ static void FUNC(detect_combed_segment)(hb_filter_private_t *pv, + mask_vec = vandq_u32(mask_vec, condition); + mask_vec = vandq_u32(mask_vec, v_one); + +- vst1q_u32(&mask32, mask_vec); ++ vst1q_u32(mask32, mask_vec); + + mask[0] = mask32[0]; + mask[1] = mask32[1]; +diff --git a/libhb/templates/decomb_template.c b/libhb/templates/decomb_template.c +index a46cae506f9a..b5b557186cc2 100644 +--- a/libhb/templates/decomb_template.c ++++ b/libhb/templates/decomb_template.c +@@ -181,7 +181,7 @@ static void FUNC(blend_filter_line)(const filter_param_t *filter, + result = vshrq_n_s32(result, 3); + + uint32x4_t result_u32 = vreinterpretq_u32_s32(vaddq_s32(result, offset)); +- vst1q_u32(&cr_table_vec, result_u32); ++ vst1q_u32(cr_table_vec, result_u32); + dst[x+0] = crop_table[cr_table_vec[0]]; + dst[x+1] = crop_table[cr_table_vec[1]]; + dst[x+2] = crop_table[cr_table_vec[2]]; +@@ -263,7 +263,7 @@ static void FUNC(blend_filter_line)(const filter_param_t *filter, + result = vshrq_n_s16(result, 3); + + uint16x8_t result_u16 = vreinterpretq_u16_s16(vaddq_s16(result, offset)); +- vst1q_u16(&cr_table_vec, result_u16); ++ vst1q_u16(cr_table_vec, result_u16); + dst[x+0] = crop_table[cr_table_vec[0]]; + dst[x+1] = crop_table[cr_table_vec[1]]; + dst[x+2] = crop_table[cr_table_vec[2]]; + diff --git a/media-video/handbrake/handbrake-1.9.0.ebuild b/media-video/handbrake/handbrake-1.9.0.ebuild index 87d75de6700c..565fcec3cad9 100644 --- a/media-video/handbrake/handbrake-1.9.0.ebuild +++ b/media-video/handbrake/handbrake-1.9.0.ebuild @@ -111,6 +111,7 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/handbrake-1.9.0-link-libdovi-properly.patch "${FILESDIR}"/handbrake-1.9.0-include-vpl-properly.patch + "${FILESDIR}"/handbrake-1.9.0-arm64-c99.patch ) src_unpack() { diff --git a/media-video/kaffeine/Manifest b/media-video/kaffeine/Manifest index 454d723474a5..414de506cedb 100644 --- a/media-video/kaffeine/Manifest +++ b/media-video/kaffeine/Manifest @@ -1,8 +1,3 @@ -AUX kaffeine-2.0.18-cmake-no-dupl-po-targets.patch 299 BLAKE2B bf3bd5dc17af567c9f957604bb6b030742b44fd37008a670f33ed917ab652cfe4f85290b46a9677b4a3591debee794aeaf6321e24d6b310a6743f8d759505266 SHA512 e3619aa01afe2385f80afe5278c2b6200419d4563bd9788978a3980fb9c9b87fb0be0596460aa05db8799980bdb6f66a08b52bcac554aec72ba6c0dd0dd6c64f -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.tar.xz 6033112 BLAKE2B c9a0fbd58f7ee4ed8ad44cbed59d95cde7df8ba9c2f5f341df74e6a771293756434e38adb7706baf224a684b56453601099fcac9bf27fd7ec935073a0c30ec19 SHA512 60854251f25e7de94928686f647e6e0f07ca40188e8dfd8140985f1dfbb53bb4d92ff42c29e216431500839d7eb83b81f386bac3a8a86dd8c986a611ec0db3a4 DIST kaffeine-2.1.0_pre20241125-45fd3627.tar.gz 6573858 BLAKE2B 6ccc18725ad16e5b3f7c37233fcf3a040a4dcf3b9a88ed867ea9d0dbd44225e9b0cbc5f2491943b73cd3e6d6dc557aa5a69ffa8db0fe42d32da504375c88184d SHA512 d4c109a727d69fce7ddfede90f03d82bf2003ec4cac6f7f685745c1e880cdb92e69f93693315d03d5a2088cdba70f67141b2581f935a11937816cfc8d3369b05 -EBUILD kaffeine-2.0.18-r3.ebuild 1881 BLAKE2B 4bd3a6b399883a00da673c321c56e876d1df57415cbc432ffc0dc4dc8db97d237332d8d57eba7eb9adf751adddf0c3d45d75036b128118a4910f5a6db8f3699b SHA512 e781864b1f3d25afc14d9e78229136ac212b497c44d9c77b4fc6edafecc4d8628118e17c02bc0a6625cf4528fe3460bfc10201f04c1620a029c9c150aee9ab4d -EBUILD kaffeine-2.1.0_pre20241125.ebuild 1291 BLAKE2B 0f08cb803b046d919571c0f64f74378720c0da8eadc1377a0312e9ccaf9fa8f80db1be5000cde55be59400b9af292ea0d6b3a91c49d4ddb3fdb672100d483848 SHA512 ea7887a5f91abb0261704e00476df0da00185e778ac2df5ca29ab27bbe38114ac7706a0324f22571213288432d724ad3bca366c78fc06beaff9ca7a0521952f0 +EBUILD kaffeine-2.1.0_pre20241125.ebuild 1290 BLAKE2B 2b9c318509c557b723cad2bfd2e98648091217805aa558be42104d47023745c5a8550b5b7ccc72d8ebeb499b3dca5fd5df7a0562f79702df851384744a4e3f04 SHA512 91e23946f2389e2fd41796ff98bd9b2b7de687cbf54737443f66e1e49a0558cc9560b84169e7d3b0ad20bc51cb472269d21b0cabe531e9a3fc4ad979a14871e7 MISC metadata.xml 531 BLAKE2B 7a1855baa27cfd698688e7451187d4ca265593866485751ae9d44b39dcfa95e5961ba4e8d991ec8b1b41e1ce74d82150847e97ab6ab07dbbefbc5b618f3bc457 SHA512 0ee50508e7549058c31a5a58d760256b57e039a067d7ba10833d199b6e8b70c2968ea52adddcd69ddb0460b3c12ae13c27b14fa5f0d3ccc3584ea783975a3033 diff --git a/media-video/kaffeine/files/kaffeine-2.0.18-cmake-no-dupl-po-targets.patch b/media-video/kaffeine/files/kaffeine-2.0.18-cmake-no-dupl-po-targets.patch deleted file mode 100644 index 79482164bc2c..000000000000 --- a/media-video/kaffeine/files/kaffeine-2.0.18-cmake-no-dupl-po-targets.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/CMakeLists.txt 2019-05-14 15:04:58.000000000 +0200 -+++ b/CMakeLists.txt 2024-08-04 22:36:49.346618444 +0200 -@@ -112,8 +112,3 @@ - if(BUILD_TOOLS) - add_subdirectory(tools) - endif(BUILD_TOOLS) -- -- find_package(KF5DocTools CONFIG) -- if(KF5DocTools_FOUND) -- kdoctools_install(po) -- endif() diff --git a/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild b/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild deleted file mode 100644 index c49400b0d90f..000000000000 --- a/media-video/kaffeine/kaffeine-2.0.18-r3.ebuild +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -ECM_HANDBOOK="optional" -PATCHSET="${P}-patchset" -SCANTABLE="${P}-r3-scantable.dvb" -KFMIN=5.106.0 -QTMIN=5.15.9 -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 -> ${SCANTABLE}" - SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz" - 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=( - "${WORKDIR}/${PATCHSET}" - "${FILESDIR}/${P}-cmake-no-dupl-po-targets.patch") - -src_prepare() { - ecm_src_prepare - cp -av "${DISTDIR}"/${SCANTABLE} 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.1.0_pre20241125.ebuild b/media-video/kaffeine/kaffeine-2.1.0_pre20241125.ebuild index 46301d6fa1d2..b5e4972d08f1 100644 --- a/media-video/kaffeine/kaffeine-2.1.0_pre20241125.ebuild +++ b/media-video/kaffeine/kaffeine-2.1.0_pre20241125.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -14,7 +14,7 @@ HOMEPAGE="https://apps.kde.org/kaffeine/ https://userbase.kde.org/Kaffeine" LICENSE="GPL-2+ handbook? ( FDL-1.3 )" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~x86" IUSE="dvb" DEPEND=" diff --git a/media-video/makemkv/Manifest b/media-video/makemkv/Manifest index 52f8257e9f5f..b3faa49ff5f5 100644 --- a/media-video/makemkv/Manifest +++ b/media-video/makemkv/Manifest @@ -5,5 +5,5 @@ DIST makemkv-bin-1.17.8.tar.gz 17859805 BLAKE2B 0ddbcd50a44a98c118420485c7c8e48a 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 EBUILD makemkv-1.17.7.ebuild 3084 BLAKE2B 3990ef9d58c00d8981b7228e80ddc4ea1cb75d26a89d18b13753df9a3a48660093e68265bc051e4ba000ca1b7c800c21df27e50cc0d30e439e3e752f30e50e57 SHA512 72d7cb5d7e8c02d92cee8d1d52b650a4feaf9aa512b2aa791273c6ad16da3320cb3a74c5cad66497b334db6a8a5faba37bf3692b57491450534dcca52a512e7c -EBUILD makemkv-1.17.8.ebuild 3088 BLAKE2B e194e111640c35eb9859d16bfc4f73bd2c7da8d9e2c5d6ff304e853781ebf8067dce7e7a8d150d7478ebf943d1274b7423d9af19fd4064689941004e96542b01 SHA512 99fd71a43d8f14bee088ab65a5452bee9417534c69f019676d7f033142975cd44924f65e6d9aeac326d7bea95dd19d88554abd527ec7e109e759a2bd518c5b20 +EBUILD makemkv-1.17.8.ebuild 3087 BLAKE2B d7dc46048f420a6acdc238bd529e62f70e1a007f794b6117f2b9a76d9e94b70daa7c8ddd4b984e6a6bc9152de46dfc4194055a83d1a40f2645cd67f3299a1117 SHA512 b3580f133c4e04a26522c542f4f2910f94df8f8eb09c92f48beed4e438fc4c3509182671bd1f9bbd82e5d0938c660d9ac3e4aadb16471c62ae5b61f88831a159 MISC metadata.xml 1272 BLAKE2B 7c02bfcb2638d2f33c6fbee2d0e79b6d7d270b8209f7ec82ec51d7cf0e19b94936ee599b618f9a6b9df280fc403b0890b2c8e2323525f6d50b79fc19d26c8756 SHA512 8de92a5802b26a98984be7b5e3c0868b249c14a77a690a186dc4361db1508b79c7ebccd261e7fe9251b2d4abbbe2b93aec8a91efeafc00baada2839020a9207f diff --git a/media-video/makemkv/makemkv-1.17.8.ebuild b/media-video/makemkv/makemkv-1.17.8.ebuild index c8dd8c6309b2..792e4df29072 100644 --- a/media-video/makemkv/makemkv-1.17.8.ebuild +++ b/media-video/makemkv/makemkv-1.17.8.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -15,7 +15,7 @@ SRC_URI="http://www.makemkv.com/download/${MY_P}.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" +KEYWORDS="~amd64 ~arm ~arm64 x86" IUSE="+gui +java" RESTRICT="bindist mirror" diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest index 3f7b322275fb..4860e97c68fb 100644 --- a/media-video/mkvtoolnix/Manifest +++ b/media-video/mkvtoolnix/Manifest @@ -8,6 +8,6 @@ DIST mkvtoolnix-88.0.tar.xz 11241552 BLAKE2B 01edcfe995e75fa7cde1916eb37a5f75d97 DIST mkvtoolnix-88.0.tar.xz.sig 833 BLAKE2B b0acd58dbc4c937ec50477e2695c4df1e67d6b40e985d676be38eaaff513a4eed17b19c612892c39c613e3736f516074febd12f76087ade3078d1183b0a3bce1 SHA512 f8175019b12f5a7bf36cc69f806d3dfc18431945f50bd1c4be5e5c1422ea9e53ca8ca93a08a417cae97da163b622ed09e7490a80255fccece6a5cbd32efbfe96 EBUILD mkvtoolnix-83.0-r1.ebuild 3232 BLAKE2B f260b944cba90951c0db5b83bacb2ebbbd3f466dd14f0e4ba69460430783c334d232ec80c19aacb2dc926f4f1271966ee7444ad5d74d03ab77fbc729ebb65139 SHA512 3620d4f073e157e60e6f67b4f9fff494295cf7bb4df6b7140135902ed1d000fe6a4f712f10132f64adecc23673097f4e21a1ea83c522ee9e462b84575deee284 EBUILD mkvtoolnix-86.0.ebuild 3182 BLAKE2B a081872ad23073066638aebc67ceac238e2200f7e6ebd431706b3dd21f1b3424ba8d361353a5550bf94d0ba696be8e973bfddf98caf57724c137f75c5f48e6e6 SHA512 97f41c0614f8e2cf9e95eaf750671ca913415a6ee88965cad4c7fc3e0dc15fbcfb22bdf756227a171747710ad81f36f84d98228c081fb1a359baef0794836463 -EBUILD mkvtoolnix-88.0.ebuild 3122 BLAKE2B 08bd971c6a8eac6d5c328e864692176097b8c10fe00da64d2985626b2fa5eab4dc239f7042ebe152a8c566e047b217924935e2ec0d31a8ac3f6fe60beacd0649 SHA512 3adf6b36985c95a0112274021bb80419ac51a652aa6a6004e46357488bf34e3367849bc35e7ead16e78012b36632d4cfc6aaa0daff7456451628cc72f04fa68c +EBUILD mkvtoolnix-88.0.ebuild 3120 BLAKE2B fdf0be85c372e14b5c33062003fe794545db690780bfecd2fce699e56301ac9ff0875d5f4fe5319cdf018fd5a7566bc769708249bd887a36430290443105dd5e SHA512 b315d0c1fd8c08dbc45c11a932c1585fd8b139d35541793f4ee864fa20a375cd8996d0295978cc33d5e3c5a7e70e27356a79edb4fa9eedaf17c853e44bd0225e EBUILD mkvtoolnix-9999.ebuild 3122 BLAKE2B 08bd971c6a8eac6d5c328e864692176097b8c10fe00da64d2985626b2fa5eab4dc239f7042ebe152a8c566e047b217924935e2ec0d31a8ac3f6fe60beacd0649 SHA512 3adf6b36985c95a0112274021bb80419ac51a652aa6a6004e46357488bf34e3367849bc35e7ead16e78012b36632d4cfc6aaa0daff7456451628cc72f04fa68c MISC metadata.xml 343 BLAKE2B b13d9c252a7ad2f27c772c43d3476eee87d9a173c8fcc04a3be28ca9cfb826e6f1de6eade1211b4ff5f4a379b20a0961667fc99eee91495589e0632ad94b4c0a SHA512 cb7fd77f65779de841da03890fd1d0031cea8a95153f116f01f1be7d8ef5b87bb760933fc74f64a1d49ce94bc897cde94fdd4f6b45c016c3c20b842097692dc0 diff --git a/media-video/mkvtoolnix/mkvtoolnix-88.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-88.0.ebuild index 6731cce63b2d..11168efe0a43 100644 --- a/media-video/mkvtoolnix/mkvtoolnix-88.0.ebuild +++ b/media-video/mkvtoolnix/mkvtoolnix-88.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -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 diff --git a/media-video/obs-studio/Manifest b/media-video/obs-studio/Manifest index 4e8726cf7f63..ef7b7e525420 100644 --- a/media-video/obs-studio/Manifest +++ b/media-video/obs-studio/Manifest @@ -1,4 +1,5 @@ AUX json11-1.0.0-include-cstdint.patch 258 BLAKE2B 2b7cb5abcbaaaf7c44f1b483716cd68e7a68a5d92f0107847aeb514b93c2b34da1311bd9465ba2077ef568cb7d1a7c150fc89e9adb981a9b59fd7821cefb159d SHA512 c7df20caa578d12a707b74fde88f856dbbf5e75176d7b9aca13f7fe9b501f4ca844fee5a4f2250b3c9de4afd1cd9ed1c26717a06ea4b1d239415cc154152305f +AUX obs-studio-31.0.0-libx11-link.patch 827 BLAKE2B b0572ea25d4d54bf6ed0fe6bafb1fc80611e8868439829c044bc7bcf08c6d292035c2e2b89ab467687275ce5cf82c4787a55da47110458af0b6637bf1c7cc4f7 SHA512 ade4e7927066635c32813c6a5e24808ccfea0494490b7df009a14caa0e9f212de67ff9330d3191838540488725999b087b7299b6ddd17e64afc31c09cd65f2b3 DIST cef_binary_5060_linux_x86_64_v3.tar.xz 91352460 BLAKE2B 443f4b1bc638d3fe462fd8b8dd167e96f65aebb2b8de3616beac298449e2786c746f9a1fa4a0dbe2e3ef2d593139938e97538890d3ca3b74018b3afb9c7fc661 SHA512 1fbdf1d4ed117f3b8af20476c57502145d652b451ba8e0a544081403d292cc7a78642e9071b8f0283a19ef7ad507ef6e0d9df32b00afc51605ab74f650a7d755 DIST cef_binary_6533_linux_x86_64.tar.xz 325687240 BLAKE2B 5d34cac26cd35ebb1ce5c4f978cbc16766ad51696c800c1d2c999d50e9340420c580094e57dc9d06f0aa063708c0aef45cee2cdcaad5ba999c7b5c722423de90 SHA512 2539e3cd59b70511f438921348472298ad6cd55c20516b19fc6f200c44ab157b067ef557e2e8ba790635b7351ea553fed044abf979fc6bdf0220b210d95b883b DIST obs-browser-a76b4d8810a0a33e91ac5b76a0b1af2f22bf8efd.tar.gz 113664 BLAKE2B 1079a11ac5865aee18c1e1768df31db56306ecbce9aa03b1869bbfc37934c13b24f9555e574fcb31f4f0c7d7a9841ea2dacf7b8ac614294c834ebce2026eb305 SHA512 70b428b5ab7e7d9e8c1402656530dbea590d122e098e4e1b3ca293061b3b5ee1f91d969f2c0bfc3efa581d539670e94a68c2ac80afce02b5ea0581fedc0fd243 @@ -7,7 +8,7 @@ DIST obs-studio-30.2.3.tar.gz 16150339 BLAKE2B b3ed65060881a731bd2e48d8b490cde4a DIST obs-studio-31.0.0.tar.gz 16012774 BLAKE2B 1cc70a755845700c7a59d096ff3ee5e5af2b4b737745d60154e53a3f56505ecbdd0ae4f2f6b80747131667457f1549e64eb80f52d05c37ea3a70eb9d596d5db3 SHA512 e3d4e495b971d471f4742c0d3101c5b2f06995579516920d96d16a7a521f0bf688bc8b5c1243f5266e186297c368189b0ee24e25989f38647dcff2a145b9685f DIST obs-websocket-0548c7798a323fe5296c150e13b898a5ee62fc1e.tar.gz 250611 BLAKE2B fefeab4a637528138152d6e1bd374d6e3f08e4a4e20698665adf4dd925e7831df5bdb1068e402def71b6e12e239db823dac2944e6549c00e914abca175d16fc0 SHA512 f24f520c4a08ad2b80d97c5dfba14421fcd48661d3b0fb694af5d11e063c711e7bf49a4baa95d9de8aff07b6fbbd4b4681ce10a4074506d98cf25c793cc2844d DIST obs-websocket-eed8a49933786383d11f4868a4e5604a9ee303c6.tar.gz 250566 BLAKE2B 138041a2bdd5d7eb6b5c2636c17fe6ae8a30986ec55548556ce4a1762b2bcc3fee6e039840220d9d60d3314527647334bf7a408dc63e0ab3f0cc45f0e0e65a47 SHA512 21ff4a58465bcb8917f2e213b430dbcbfd56a1647e80c351f18479d7dd3ff2b4c64292132ca26b40054f2b994db9dd8d0a2cb97f32498cb5d59f2812272a6ec5 -EBUILD obs-studio-30.2.3.ebuild 6866 BLAKE2B 837ac56245cfc7a1f627a930b1bbbf4278357600b1ddd7f810948f4110fd45c060f173cafd156d022b5a9a2990a7660074a14118f3dce052fec6fee5802b7801 SHA512 dd621ec4cf061d89f47a78e911d6bdc6527b6f932cda248f4a36239eb2297314eeb2c63e00856a602508fd61ffe7fb1b552b8a3bc98e45e583b5aaa6baa1a5d8 -EBUILD obs-studio-31.0.0-r1.ebuild 6801 BLAKE2B 15454727e99c21540103764bbb2581a196dad617915b19ec08cb1c4b86fa92b70d4d540c4d50ee8bea93ba01df54e99d9160e00452b8d7c5dce6952702cc9b1d SHA512 6526ffb83d6ec9ceaf4bc8f4c56cb660be64da09d0c85d329ff5e37adce4449cbdb940d6cd932c74def661fbd7486eed5f6ba51113bd4fa911b4f9ba79f160fe -EBUILD obs-studio-9999.ebuild 6801 BLAKE2B 15454727e99c21540103764bbb2581a196dad617915b19ec08cb1c4b86fa92b70d4d540c4d50ee8bea93ba01df54e99d9160e00452b8d7c5dce6952702cc9b1d SHA512 6526ffb83d6ec9ceaf4bc8f4c56cb660be64da09d0c85d329ff5e37adce4449cbdb940d6cd932c74def661fbd7486eed5f6ba51113bd4fa911b4f9ba79f160fe +EBUILD obs-studio-30.2.3-r1.ebuild 6867 BLAKE2B a7c337e57b14866d9939ecb12a66da289184fb686121593a4be35c5d24672a4e1b57e0858e9bb74d9ab6b3dd9095894ffecb830c9070ec7ad6ceb28cfa9db56c SHA512 0f9f310475c45042517bedcca8269373f5cdcaa0fec83a927c6b45b01db536c0e1b63e1c14579747511c47fd3247f375e674e1296f4481f880125bc3f0f3047b +EBUILD obs-studio-31.0.0-r3.ebuild 6850 BLAKE2B e99f19fe1b1bf3ceeff2de30bcbcee8565196c7ddd961bfd50090b593b1e86a434393b1806503d3edd92b977c5a454fd6bb42dec76ddceadaacb0e912487a179 SHA512 fc02fabcf74a51ed78be9829cf15f475df9022af86786577fc3138396b589d480e9afeef7791a802761e746601bc0b21bc6868ab2ec7a3ac89521b4bd01eaf2b +EBUILD obs-studio-9999.ebuild 6830 BLAKE2B 4bbd83fbece645b01fd994240ab8288f651a9641cc9e951d109708fc64c0703ce327b4780add3577830eec8f3de04fda46fabefc3c4c7e6e3afc87a8e19cb8f4 SHA512 5b9c9fdad85afcf551acc765554521c4908630fe12895ad1dfd6f64c497e02cc36a813a8b0fa39e48bae5ef63705bb696183e399fdca207c5acb655d326dd4b7 MISC metadata.xml 1533 BLAKE2B 7bc778d152d6854330f821d0712da81b54397a35118baf4ba61b3ce4eb7aff5a292d4e4c74c01992761c3cae15b367dcf85450080e920d35ffeb2ee06c74483b SHA512 3dbc5096e3203ec8350e75db78519a061270d52d441e159ab297147a729bda21016a26e15b5c0447dc4a835da59ee822da99265e4f8c3bea3a1e173b134c739c diff --git a/media-video/obs-studio/files/obs-studio-31.0.0-libx11-link.patch b/media-video/obs-studio/files/obs-studio-31.0.0-libx11-link.patch new file mode 100644 index 000000000000..40aa5c2130d3 --- /dev/null +++ b/media-video/obs-studio/files/obs-studio-31.0.0-libx11-link.patch @@ -0,0 +1,28 @@ +- https://bugs.gentoo.org/946057 +- https://github.com/obsproject/obs-studio/issues/11667 + +From 428142d7022989af61a684a680e2d6ecc5b7ca8a Mon Sep 17 00:00:00 2001 +From: Kurt Kartaltepe <kkartaltepe@gmail.com> +Date: Tue, 24 Dec 2024 10:22:40 -0800 +Subject: [PATCH] libobs: Fix underlinking by adding libx11 + +We directly depend on libx11 for various operations in obs-nix-x11.c, +not just xcb. So be sure to link it in too. + +fixes #11667 +--- + libobs/cmake/os-linux.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libobs/cmake/os-linux.cmake b/libobs/cmake/os-linux.cmake +index 317e75cab0c1dd..1af874f4f1fefe 100644 +--- a/libobs/cmake/os-linux.cmake ++++ b/libobs/cmake/os-linux.cmake +@@ -47,6 +47,7 @@ endif() + target_link_libraries( + libobs + PRIVATE ++ X11::X11 + X11::x11-xcb + xcb::xcb + LibUUID::LibUUID diff --git a/media-video/obs-studio/obs-studio-30.2.3.ebuild b/media-video/obs-studio/obs-studio-30.2.3-r1.ebuild index 043f43465d42..81b7effe5cfc 100644 --- a/media-video/obs-studio/obs-studio-30.2.3.ebuild +++ b/media-video/obs-studio/obs-studio-30.2.3-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -117,7 +117,7 @@ DEPEND=" python? ( ${PYTHON_DEPS} ) qsv? ( media-libs/libvpl ) speex? ( media-libs/speexdsp ) - ssl? ( net-libs/mbedtls:= ) + ssl? ( net-libs/mbedtls:0= ) test? ( dev-util/cmocka ) truetype? ( media-libs/fontconfig diff --git a/media-video/obs-studio/obs-studio-31.0.0-r1.ebuild b/media-video/obs-studio/obs-studio-31.0.0-r3.ebuild index a7536b82f747..7f7837436298 100644 --- a/media-video/obs-studio/obs-studio-31.0.0-r1.ebuild +++ b/media-video/obs-studio/obs-studio-31.0.0-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -69,7 +69,7 @@ DEPEND=" media-libs/x264:= >=media-video/ffmpeg-6.1:=[nvenc?,opus,x264] net-misc/curl - net-libs/mbedtls:= + net-libs/mbedtls:0= sys-apps/dbus sys-apps/pciutils sys-apps/util-linux @@ -145,6 +145,8 @@ RDEPEND="${DEPEND} qsv? ( media-libs/intel-mediasdk ) " +PATCHES=( "${FILESDIR}"/${PN}-31.0.0-libx11-link.patch ) + QA_PREBUILT=" usr/lib*/obs-plugins/chrome-sandbox usr/lib*/obs-plugins/libcef.so @@ -176,8 +178,6 @@ src_unpack() { } src_prepare() { - default - # -Werror=lto-type-mismatch # https://bugs.gentoo.org/867250 # https://github.com/obsproject/obs-studio/issues/8988 diff --git a/media-video/obs-studio/obs-studio-9999.ebuild b/media-video/obs-studio/obs-studio-9999.ebuild index a7536b82f747..b215ca637d54 100644 --- a/media-video/obs-studio/obs-studio-9999.ebuild +++ b/media-video/obs-studio/obs-studio-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -69,7 +69,7 @@ DEPEND=" media-libs/x264:= >=media-video/ffmpeg-6.1:=[nvenc?,opus,x264] net-misc/curl - net-libs/mbedtls:= + net-libs/mbedtls:0= sys-apps/dbus sys-apps/pciutils sys-apps/util-linux @@ -141,8 +141,14 @@ DEPEND=" dev-libs/qr-code-generator ) " -RDEPEND="${DEPEND} - qsv? ( media-libs/intel-mediasdk ) +RDEPEND=" + ${DEPEND} + qsv? ( + || ( + media-libs/intel-mediasdk + media-libs/vpl-gpu-rt + ) + ) " QA_PREBUILT=" @@ -249,8 +255,8 @@ 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 + insinto /usr/include/obs/frontend/api + doins frontend/api/obs-frontend-api.h } pkg_postinst() { diff --git a/media-video/parole/Manifest b/media-video/parole/Manifest index 29bfe7d8ce1e..0b0035bd2558 100644 --- a/media-video/parole/Manifest +++ b/media-video/parole/Manifest @@ -1,3 +1,5 @@ DIST parole-4.18.1.tar.bz2 934059 BLAKE2B db5b6345bcf8eae47668bfd504106b8f44bb272a7d9e88fb53824a4141c88a45f4fdcb6df5a5513ebba82ffda9438be91ffe060d1cc19f0ab56887dc3ff606e1 SHA512 ec2b8036f2be594dc13c37aca76b7250ec1792c7166501e9a2775efb731e87cf6894196243e68026437e2bbd4a9edf1aa9cfa076886e333e2ecf4523f8f1d647 +DIST parole-4.18.2.tar.bz2 1183723 BLAKE2B b7222cbe0271408987869d924f83343c1b599e700952b6b094d7ac5566c3d6c1135ed84a06037a07a6d60c899f92e19f6e67ccc778f8525b859bffd28d0a7007 SHA512 856a8430882f3b4410cb719702eabdc9754b9511cc21cb61d86d033fb1b623442affb4e1ec569adecd414413eecb604553b5256525165c7eeda1b3d598330673 EBUILD parole-4.18.1.ebuild 1543 BLAKE2B f568237ced2baf59669ea6e40cd1649e5c5f775ec4525ea81bc5c72f74c30da575dba655cbcb31df9a2b310c73ed543b56bbb36c114f0cce793d8ed8e19c7850 SHA512 bc2a5eaf66134192e23f726827489cdf854680ebac2d8f6477d2bcc617d7f322197cccd4a3f750b94261ce2e2b211e6d5a22f892c4662ac0d42b05820845e51d +EBUILD parole-4.18.2.ebuild 1542 BLAKE2B 316f85b1fb115075851b74ea47cf936e6de7f0fc325dd3185ec6fcd2189a12dec4c30600ddf960cacb5ec34712f912940d6fc0cedf7a369cdabaa3d9c596e0dc SHA512 e64d609ef50a39a0bb29ef3f6ba25f5016a4e4d52457333a2056c9f5e2a271a7792a74fde422e19b3a68ccb7751909eac344be3ef9360a9e6c55210ee69d80d1 MISC metadata.xml 242 BLAKE2B e489d8bd8fc709502185e0439171cde4402146bc1ec7340bbe41550c06410a49faec8777cb7e79c3ba482feee774350beec5741ed8fe93a85ebed7b746f9200e SHA512 1bcfaf0482a1e7b5a7182d853dafaa2d47687bbc1c9d38b69ba35ce97cdeeff9bd2137a086c5af2a27b730a295e7cbd73d0b43fbe5af331bb7a3113d2117dff3 diff --git a/media-video/parole/parole-4.18.2.ebuild b/media-video/parole/parole-4.18.2.ebuild new file mode 100644 index 000000000000..50e1b0ae5af1 --- /dev/null +++ b/media-video/parole/parole-4.18.2.ebuild @@ -0,0 +1,76 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit xdg-utils + +DESCRIPTION="A simple Xfce4 media player using GStreamer" +HOMEPAGE=" + https://docs.xfce.org/apps/parole/start + https://gitlab.xfce.org/apps/parole/ +" +SRC_URI="https://archive.xfce.org/src/apps/${PN}/${PV%.*}/${P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv x86" +IUSE="libnotify taglib wayland X" +REQUIRED_USE="|| ( wayland X )" + +DEPEND=" + >=dev-libs/dbus-glib-0.100 + >=dev-libs/glib-2.38.0:2 + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + sys-apps/dbus + >=x11-libs/gtk+-3.22.0:3[wayland?,X?] + >=xfce-base/libxfce4ui-4.11.0:=[gtk3(+)] + >=xfce-base/libxfce4util-4.11.0:= + >=xfce-base/xfconf-4.10.0:= + libnotify? ( >=x11-libs/libnotify-0.7 ) + taglib? ( >=media-libs/taglib-1.6:0= ) + X? ( + >=x11-libs/libX11-1.6.7 + ) +" +RDEPEND=" + ${DEPEND} + media-plugins/gst-plugins-meta:1.0 +" +DEPEND+=" + x11-base/xorg-proto +" +BDEPEND=" + dev-util/glib-utils + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig +" + +src_configure() { + local myconf=( + # clutter backend does not work with new GTK+3 versions + --disable-clutter + $(use_enable taglib) + $(use_enable libnotify notify-plugin) + $(use_enable wayland) + $(use_enable X x11) + ) + + econf "${myconf[@]}" +} + +src_install() { + default + find "${D}" -name '*.la' -delete || die +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update +} diff --git a/media-video/pipewire/Manifest b/media-video/pipewire/Manifest index ba3000df1bcf..108c93668e56 100644 --- a/media-video/pipewire/Manifest +++ b/media-video/pipewire/Manifest @@ -1,29 +1,22 @@ -AUX 1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch 3030 BLAKE2B 372d33b155cd8b798265b6dd04296179adcfcddeefd7253a9979f4722b343f68a7cbe128f1f4b24acda9c099d6fc12e75d14c1ec184b5f25a5f3667c5fc85383 SHA512 19803d71e99cc6b79e96b1e8d96c7d279fe345d67df8242dd8589cc8a2eb8549ed879cb8c3a00d9c7d780329dfc3821dca13fb19dea366b5f86f733413586b30 -AUX 1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch 1048 BLAKE2B 326704effb2a904079c33d07c6557c854ef6842a9f3ade996d1a8a4f1e5d073246426d7c94f5e44f9bf195877326972368cecd9cad6883a6c7a33973a4447284 SHA512 a125dd8d7ac121c7fb66211bcac9a9202f654ba5550b237a55588b8153ac6523b350038305df930b3eb5ac640c53387c56b7b8cc3d29a124180425355f32416b -AUX 1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch 5206 BLAKE2B 5d4d6ded0a8cf79c7181c40707329d11a00b4d543b46e0e3bf37985299ca0cdd2782a1c9843469f160332d8bd4a987e10165dc25c99405defc2e02119f665d0b SHA512 37b972529cd4f702863a7e19d1980439daab26ee5feed548a204d969c8af9dcaae29a58ea3b87429c0da0b1220ad4e8b719f294103feebc500ed872d5215c565 -AUX 1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch 4717 BLAKE2B 92ddbc78ff24a385bc54a88c46f3654456c8db27229715a4923790cd0e271b32fe245295b37eda6023e2827c3791dc5bf29411edcdad9a7b91c4e593dbe7c34a SHA512 1fb1b85ee717952b8551dc943c72aa158279aacae5666649b8a2b0c1f63ad9d681817be9d5d1b85f4e51aee6b43febda07d01c85e6ba72c1a31323adc4098a02 -AUX 1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch 1188 BLAKE2B e54b9973f7529b0a6facdc632a2e9c8fd2080171882e5dc081da6ac7e241266eca5186d11d09670281ae772b3054190d64220d2cf0b3e7ca8853d6a9667f8add SHA512 49261c21e7d41d7e1017a8ab5c2f72056a68b10d4d5ac5ab1fe66418cad727fc0ba915dc8f551640ee1b6a54285981dd19fdc999784dbbac7facdee30c7271f3 +AUX 1.2.7/0001-spa-alsa-Fix-key-name-suggestion-in-log-message.patch 1037 BLAKE2B 61f718d04de6e9a2239480933e6d0bee747862090963e6860ac3b99902931fb733eb336efb9c9cafa20132c5e1858b5310fcf863d83eb1a0fb0be86dead5f4d7 SHA512 3457542d03fed9cc0e9f7d72b9876201fcfd1d127289f532d04ce0d5d2c970c9275fe97228ea81e253d30fac19b4762133353df2a8d27beea3f22826d6214a55 +AUX 1.2.7/0002-spa-alsa-Don-t-assume-all-PCMs-have-a-card.patch 4675 BLAKE2B 2ef4a024cf0f457e1e1a24cd5addeba5ce597bd73bb3ce4e917a82bc250cce718a7e5501992541c83a0be5ad10361b959f2f9df3b24605125bb4629a26353db7 SHA512 44420aff1700535582f6e6d2a27df6c4909deb509e03a2ba003cbaa42906d88ba5e751a5741441f76911527012438f8e3c897a88b5740592fc913962f0c010e8 +AUX 1.2.7/0003-gst-mark-the-pipewiresink-as-EARLY_PROCESS.patch 1139 BLAKE2B bf4b148aaa7f97a6baf0f730740b852635510f714391641f31b6bbfdb2a03bb79437cdd57c0b0a6f3bb6733181be4c7b724d961ad01a297ee124a5ab0e9eacca SHA512 5bdff0ca4868fabab09144cce9577bf631d6ddd8879257167fc9860c3ee92cc3211c797b2cd53f6dbb17553c570773445545009c78489f8174e2d16c668e569a +AUX 1.2.7/0004-gst-add-rate-control-to-the-sink.patch 7549 BLAKE2B e278a6f0c298e40903753ec1c1c05a77680ffcf1ecb027b15fbbcb53533227446e2fac11f95724c0e6df95bfa08b7a77c6d68582d3737d81bee743089b2ccef3 SHA512 425b13f167334076a6f053f804c9aafd22fb9362e9990376236d5896fd24e432b76b9c4b9dadfd22c5df62f01c336b4e14bbe582643b8d50caceb4f973c1890e +AUX 1.2.7/0005-gst-add-slave-method-property.patch 8627 BLAKE2B eb75ab858fda648a2aa23054a512ed4ba160bd1fe38c7512375ad50659ed50c01e81b6e8c3d34d41f2f62b061126ca524d69c7fed925e11735111ae4de23cc51 SHA512 637aae5164851d7ef5ad54a09b372f80b9b28a21866636c19fde5124cb2052d0f14285cf9ed6ac9dc6df9de59f037a9eca3fdf7c083b860bbbf0a7b0f4ece1d9 +AUX 1.2.7/0006-spa-fix-some-param-type-info.patch 2681 BLAKE2B 5e838cd145241a3fed0f00294f9beb537eea10f01b3e1ede6afe5e6695b79ed045e82453ca03e24a63b87e1397ef8f5270a046c3adeda94a62a062981bb8ed3f SHA512 185dcbb63b40c69cd61ab15e32e6476a25a2992da72704fefd66fd563eb48b2441e1282a7e6ce7cfec5fa18d866ef62ac506f69a3d0e477eb2108fb654600715 +AUX 1.2.7/0007-filter-chain-handle-0-length-IR.patch 12253 BLAKE2B f7e54d3ff5786752b3e3f2cb5d3544e22920c08c765d07e0488515ad4b37232efc000ca5c04949e021e62b3f6866a3880a86cad77bc1c6be867e8876afd98ca7 SHA512 a3c2031c62f0df218be4d573162bb45f50b81da27e37a111946c2310785beb2446d837e0816434404b2e05ba0b0c2c3f72d40e15b34f8b821d709d4eab3fbe85 +AUX 1.2.7/0008-spa-initialize-all-fields-explicitly.patch 1898 BLAKE2B 96dc79e4b3f48c58b5e5fda7ca4b90fc9686fb4c8f48a31e76723090d98e8e23b659d60cffc271ea3cb4c4710ceb3cdfb1c30935ef4c6a45986c9c8f63ac0e32 SHA512 21d593e6165a969fb21412de4dd0f0b5255f240244e789a3606d610976ff01bdb4e1d8879f698a2751a449b7e64f258dcf8f0565cf0b9401a8fc12f94f596c5a AUX 99-pipewire-default-hook.conf 540 BLAKE2B cec76e78db9db290054bf766774c284d7a7a1374c453802eb1bdc19db9289856ec7b8643acbab916a39ca859d543deca111e3b0f110d1904343221c1573ffc17 SHA512 ef891e38c6f40fce2904e240307147a58c48d780e8470dac8e28044cfb86ddeb163885a2362687791779379ad814f58ad5649b75ac4e82931c5bdd3f37a6ed01 AUX gentoo-pipewire-launcher.1 1633 BLAKE2B 36c8888693bd0389dc9b1e49d0501d2679956d88f6b7ac42f0347c3fe2259775dd7082cb0bbdeb54a232fcc8902faa8086203e0fe2437c0eea5f1927ba2d0de4 SHA512 8085c9a989f21ee7f2528d56d5b104c0d14024df06f5cb6cd2aa8168b58469c71b91c788706b11021d9dbddb647a2203175603f4f8aa7b33a63a7b7cf8b59d1f AUX gentoo-pipewire-launcher.in-r3 2848 BLAKE2B 5e6b8ca2df88cef240ca1ff4de28cc8ed3590fabd29b903b37880baf9cf52c35ca01be25b031898d4ee06f4600a5f0c61025a244778577a562f4a4bfa14e2aca SHA512 43cf3e07058e86bf6651106f7f192022c05c5640ba8e101b88e98a83efcc5614f9474107b6d0daf3d5234a51ebcc0a3a7ae5b359d9ba36b648c125813f4e1334 AUX gentoo-sound-server-enable-audio-bluetooth.conf 106 BLAKE2B 79945d2dac9671d9b85f6334afb43ff3f35db555d460e82bccee0f1f8ec4a8bf5e6de3b340698a4e9db80a5dc181c4824b9265bf0fce43bef61afd50177ef70a SHA512 fede2c9dc6256894aa29cf72ede8ba42874cf0706d81031d724ca5b43fa424d09009ec6eb685737623f3c5eadb9b095060b0ce48b7325d68d4b07225b07aa2fe AUX pipewire-0.3.25-enable-failed-mlock-warning.patch 704 BLAKE2B dc0732b89b57a258ea6dc54941899134259469675f92ae93aebda09a796c73ace8bc4ed0ab2aef4ea1bcaa30c1bea8c3304288168421ce8f9939ec993c8aa438 SHA512 7456a24276b7b766ff5799acf5b80ef5f85ee7a78fc5b52adff3206c0b0aa1985a0bf72634aacf7818c90136c09bcc11cb0fecec291d961c8b3585c897869f65 -AUX pipewire-1.0.7-automagic-gsettings.patch 3429 BLAKE2B b6184a1edc18396c3fde3b020d2c0222df1086a261d2da18a2d8345f7ef7f813144df0948e8863180afbd5b56b797e5eed2fdf324e9cf2b2b637a4685641a932 SHA512 7a9d71bf631974d88fdc5adb9f4d7ea7d46c589812c3d9b0a4767ed5d9e117ed88db456f723176acc7abe73a59591a57bcffd0384d2d5822e94656a5d9efc293 -AUX pipewire-1.0.7-automagic-webrtc-audio-processing.patch 3745 BLAKE2B 65978f89fb1dd9e4aa56d7e116fd650efb36d9730d9eae2ead02c77f6b9e567c8b881314ed1ca71af45f7ba0f23b482f14036eefdb87d298e0c90eacfecf3ce3 SHA512 d8dcb1eb0234dff76a9a48b54c57e73505d81f29b043d5ef7ad6974fbe976b7ab8480f622c0664e112375875e2b9dc7d78dde5e481376b7cfa488e54119c5bf2 AUX pipewire.desktop-r2 333 BLAKE2B 6a8805bb4ea3f23af535867c0551b8f742543de1fa8d99d2b451575066c3394b01977587078356dab65a640899bf336252b7f81b83072c676110fce9b0732eff SHA512 292fbc7283b30454025be50c657803dcb0592c9a6f0757eebe4de5a98166c3bcfeb5563da3d72489762073fe782b5e1f913c01184fbd2e926d872fc7ade73eb7 -DIST pipewire-1.0.0-docs.tar.xz 33632 BLAKE2B be06aa7242f7d2f8627b3bf2a2ae491dbda456a24811a767218eb89b1fd5961a461697e5d8ae2782323fdb927985fa4fd5dd40c21268b1c7939f4cd3c9e1a9ab SHA512 14f794c4152d7d9a4a7d9d4d5c2ff381c2a8262deaff034f993c4d28629fca8cc3d71d3a7c02982703e449fae5f58257fea0c20db02bf95b5aed88a4d99d2c58 -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.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 DIST pipewire-1.2.6.tar.bz2 1818268 BLAKE2B 8b70af60a77436ed14119d0e57eef663b98e7e18841b61302b76e31befabaf9a63b4d01b9d5d3d582f598adb1d92f9c5e3aa3fdc9bec26f6aa1d0916fbdc6cf9 SHA512 6bb2e0a89fbbb1fc23cad18c2f34cf539a8414626a80174512833545a28493f9aaad96db8db8715dcf2f036cbd5133680d01188a38f58a8bd01af8deb4c343e0 DIST pipewire-1.2.7.tar.bz2 1823442 BLAKE2B e81a897d4ee23e0048a8b7fbac8b397f74b8f68add71e228e9bbfffffda1a71d0dc7ebbb3a4878fab27c57ec392840fed2fdf9e677c313ea0c0cab3166d6f2d3 SHA512 f353761e612f5703fe2a55000af958c663f0648331242297f9c18d5ab6cadc5468e92b663bf811c37c4736e6564aa4e2466903593c4d621ea0686a966e30d63d -EBUILD pipewire-1.0.7-r1.ebuild 19565 BLAKE2B c0250fdcf5157412d74ef4c020d64b571f84cf75296fe900a4fa964352782f440bc05b413df6475e227c42b526b9e423f23aafa19debc65d18018a43a85452cf SHA512 77f9b34964a14f34a855a8061860b4ce5a6de0ad75f99bc1d599c9c0ad318b6e4604b449e7a0c0483cc4439ce39d4233d2a2cedc1f92ad2b7c3e12ba317841bc -EBUILD pipewire-1.2.3.ebuild 19596 BLAKE2B bada9a63a09f8ca26fbadeebdc0efba1acd88d15b50a81bbc2ba0ed25273543439c0441d1fdb6596c1a5c30f6efacbf7c14b181c09a329fff674753256e10d33 SHA512 db0183a5bffe627e947684f6414fbdb14986a4f05a9722ff3bf63988bcf95e13bd55817881d19f695737b2882f4145beb107d2c5fac37084989ef9f4c18d9219 -EBUILD pipewire-1.2.4.ebuild 19602 BLAKE2B 0594a1082c02d88befd9d3cdf4eaea883bb905e3a16223e1646be00d6281c1446d4c56b07db6c5873c73a38a80f4219106ac0f5d77a3490ad8f4c88d293ace14 SHA512 f14db8d84c6081b6ea4d59d6b67a83f82cf795794d73c8b4917a67ca037b22a3c041bf2f58020f7d7b342fbbbaaa44cea1e17b9e43847ba388e27a8bcdabf9e5 -EBUILD pipewire-1.2.5.ebuild 19871 BLAKE2B dfae536c24cf9a489a08b33b08298027cbb31e90b0e06d59d1045e2b2406c6a23152a36de5abc0d90f0f9bb76d5e9f2f38e05e21dea751b6c3cb925cd347b628 SHA512 696652eee3c8ab6227f44160f29e163250368c883843c9e62188f88d1843c189ffa09efe573af3f96c046a3b089077756e4b89ce08e7588d005f10e9d586a362 EBUILD pipewire-1.2.6.ebuild 19871 BLAKE2B dfae536c24cf9a489a08b33b08298027cbb31e90b0e06d59d1045e2b2406c6a23152a36de5abc0d90f0f9bb76d5e9f2f38e05e21dea751b6c3cb925cd347b628 SHA512 696652eee3c8ab6227f44160f29e163250368c883843c9e62188f88d1843c189ffa09efe573af3f96c046a3b089077756e4b89ce08e7588d005f10e9d586a362 -EBUILD pipewire-1.2.7.ebuild 19877 BLAKE2B 6d813b8c4b5aaadb01d6daae3d11f96a17aa7e88f32665e901b3ccd45e04aa05e9b026a2814d5ff0ca1fd7bf36ee4995fa7105c8735a9e5c5252b4911c19640e SHA512 dca76d013343c89a813611b8490b38b9e6423a5628563716f73a494927e0d7e14971c99785ae8ee818343cea9fca8ad4625f05bbc39fbb8dc02ee72eeba0925b +EBUILD pipewire-1.2.7-r1.ebuild 19871 BLAKE2B 8288e9263f0397d16550004f9af73fa2b77290e7ddfc42e955560eb669270214c89af551ef87724d3b45318462acaadf549a62a6483eb978ab547208709948b5 SHA512 353eb77858fbbc63f64a5ffcb1426786577d5b241b1d1a0b86966016a9ea327a0fc961145e12d1cfc5144b31e6e77eae2425b4aff75ab4ba993cc573394c5c84 +EBUILD pipewire-1.2.7.ebuild 19872 BLAKE2B 8315b853895fb553d4ea0cb64a77f5c5712ddc1f08c0000305553c15a5f520eb60c6c073a2fe72970eb42779ba215e86b21f53d28e94ca4ef428b7eb9735a4ec SHA512 c0368d6fd4d359ccec15016f9fc13a0fea9d284860189babeee688f0a4170f4cd304c7c173b09a827b443ac6c3c3effcbdc142bb4e01961985c6e232f2d2f1fc EBUILD pipewire-9999.ebuild 19866 BLAKE2B e178f8dc8254d7d77191e71b7a13d2d6225586c65f25fd969dfff45a40d7ed1f2c8b0139a13b3e4691c2acaa24e07f89d152cf5061e64c4b3c8ba356ff3da36f SHA512 ccdf5dfbafedac96b7c248a186249cbd0e19dc85d16431f54d98894f890b05d9bfdc4cf5cf7dd27911898fefbe94e39e3943ac3d842689724024c7e9ec196d43 MISC metadata.xml 2156 BLAKE2B 974459115e0f3cf4e4c3ac15159740b42e01a093da37d8a27f80e122c9ab2a3fe9194443eaf08f9b66d613db90a14465abbe1b76816bce90e11a46c8409c7513 SHA512 cfe0fdb86c993f167507e22635878d6d7d5dcd48f4c23323231263551ceff986fc454700428ecb7d2ee2abe82093c35d8e7bd491020fd6dd3f3889c09e9020bb diff --git a/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch b/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch deleted file mode 100644 index 105c8dd1676a..000000000000 --- a/media-video/pipewire/files/1.2.0/0001-impl-node-fix-required-state-for-async-driver-nodes.patch +++ /dev/null @@ -1,82 +0,0 @@ -From b8d07e40d66f12ac28aab710cfeb181bf25bc59a Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Mon, 1 Jul 2024 10:36:09 +0200 -Subject: [PATCH 1/5] impl-node: fix required state for async driver nodes - -When the node activation.required was incremented because it was a -driver, only decrement it in that case, regardless of the current driver -state of the node. - -This fixes the case of KODI where the required field gets out of sync -and things become unschedulable. - -Fixes #4087 ---- - src/pipewire/impl-node.c | 22 ++++++++++++++-------- - src/pipewire/private.h | 1 + - 2 files changed, 15 insertions(+), 8 deletions(-) - -diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c -index 12629ee64..4def52897 100644 ---- a/src/pipewire/impl-node.c -+++ b/src/pipewire/impl-node.c -@@ -112,13 +112,17 @@ static inline void activate_target(struct pw_impl_node *node, struct pw_node_tar - { - struct pw_node_activation_state *state = &t->activation->state[0]; - if (!t->active) { -- if ((!node->async || node->driving) && !node->exported) { -- SPA_ATOMIC_INC(state->required); -- SPA_ATOMIC_INC(state->pending); -+ if (!node->async || node->driving) { -+ if (!node->exported) { -+ SPA_ATOMIC_INC(state->required); -+ SPA_ATOMIC_INC(state->pending); -+ } - } -+ t->active_driving = node->driving; - t->active = true; -- pw_log_debug("%p: target state:%p id:%d pending:%d/%d", -- node, state, t->id, state->pending, state->required); -+ pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d", -+ node, state, t->id, state->pending, state->required, -+ node->async, node->driving, node->exported); - } - } - -@@ -126,7 +130,7 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t - { - if (t->active) { - struct pw_node_activation_state *state = &t->activation->state[0]; -- if (!node->async || node->driving) { -+ if (!node->async || t->active_driving) { - /* the driver copies the required to the pending state - * so first try to resume the node and then decrement the - * required state. This way we either resume with the old value -@@ -137,8 +141,10 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t - SPA_ATOMIC_DEC(state->required); - } - t->active = false; -- pw_log_debug("%p: target state:%p id:%d pending:%d/%d trigger:%"PRIu64, -- node, state, t->id, state->pending, state->required, trigger); -+ t->active_driving = false; -+ pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d trigger:%"PRIu64, -+ node, state, t->id, state->pending, state->required, -+ node->async, node->driving, node->exported, trigger); - } - } - -diff --git a/src/pipewire/private.h b/src/pipewire/private.h -index 8c01fe8d5..25af677ac 100644 ---- a/src/pipewire/private.h -+++ b/src/pipewire/private.h -@@ -541,6 +541,7 @@ struct pw_node_target { - int fd; - void (*trigger)(struct pw_node_target *t, uint64_t nsec); - unsigned int active:1; -+ unsigned int active_driving:1; - unsigned int added:1; - }; - --- -2.45.2 - diff --git a/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch b/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch deleted file mode 100644 index 343b42dfdc8a..000000000000 --- a/media-video/pipewire/files/1.2.0/0002-module-raop-only-set-softVolume-when-valid.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 82b9fa118f2fa009b5eb2891378fe003e2573bbe Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Mon, 1 Jul 2024 11:27:17 +0200 -Subject: [PATCH 2/5] module-raop: only set softVolume when valid - ---- - src/modules/module-raop-sink.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/modules/module-raop-sink.c b/src/modules/module-raop-sink.c -index 05e467d24..8ad28693f 100644 ---- a/src/modules/module-raop-sink.c -+++ b/src/modules/module-raop-sink.c -@@ -1643,10 +1643,10 @@ static void stream_props_changed(struct impl *impl, uint32_t id, const struct sp - impl->volume = volume; - - rtsp_send_volume(impl); -+ spa_pod_builder_prop(&b, SPA_PROP_softVolumes, 0); -+ spa_pod_builder_array(&b, sizeof(float), SPA_TYPE_Float, -+ n_vols, soft_vols); - } -- spa_pod_builder_prop(&b, SPA_PROP_softVolumes, 0); -- spa_pod_builder_array(&b, sizeof(float), SPA_TYPE_Float, -- n_vols, soft_vols); - spa_pod_builder_raw_padded(&b, prop, SPA_POD_PROP_SIZE(prop)); - break; - } --- -2.45.2 - diff --git a/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch b/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch deleted file mode 100644 index 5e18550bf193..000000000000 --- a/media-video/pipewire/files/1.2.0/0003-context-Fix-node-collect-with-groups-and-sync-enable.patch +++ /dev/null @@ -1,149 +0,0 @@ -From e6c0014f94e995e49b72bea7ae56b960416e6b29 Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Mon, 1 Jul 2024 14:50:34 +0200 -Subject: [PATCH 3/5] context: Fix node collect with groups and sync enabled - -Keep track of the sync nodes we added to a driver and bring in the other -nodes from the same sync group, group or link groups. This makes it -possible to have disjoint sync groups each with their own driver. - -Fixes export in ardour8 - -Fixes #4083 ---- - src/pipewire/context.c | 49 +++++++++++++++++++++--------------------- - 1 file changed, 25 insertions(+), 24 deletions(-) - -diff --git a/src/pipewire/context.c b/src/pipewire/context.c -index 686dd5eee..f3e1b4d76 100644 ---- a/src/pipewire/context.c -+++ b/src/pipewire/context.c -@@ -1163,13 +1163,14 @@ static inline int run_nodes(struct pw_context *context, struct pw_impl_node *nod - * This ensures that we only activate the paths from the runnable nodes to the - * driver nodes and leave the other nodes idle. - */ --static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, struct spa_list *collect, -- char **sync) -+static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, struct spa_list *collect) - { - struct spa_list queue; - struct pw_impl_node *n, *t; - struct pw_impl_port *p; - struct pw_impl_link *l; -+ uint32_t n_sync; -+ char *sync[MAX_SYNC+1]; - - pw_log_debug("node %p: '%s'", node, node->name); - -@@ -1178,20 +1179,30 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, - spa_list_append(&queue, &node->sort_link); - node->visited = true; - -+ n_sync = 0; -+ sync[0] = NULL; -+ - /* now follow all the links from the nodes in the queue - * and add the peers to the queue. */ - spa_list_consume(n, &queue, sort_link) { - spa_list_remove(&n->sort_link); - spa_list_append(collect, &n->sort_link); - -- pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable); -+ pw_log_debug(" next node %p: '%s' runnable:%u active:%d", -+ n, n->name, n->runnable, n->active); - - if (!n->active) - continue; - -- if (sync[0] != NULL) { -- if (pw_strv_find_common(n->sync_groups, sync) < 0) -- continue; -+ if (n->sync) { -+ for (uint32_t i = 0; n->sync_groups[i]; i++) { -+ if (n_sync >= MAX_SYNC) -+ break; -+ if (pw_strv_find(sync, n->sync_groups[i]) >= 0) -+ continue; -+ sync[n_sync++] = n->sync_groups[i]; -+ sync[n_sync] = NULL; -+ } - } - - spa_list_for_each(p, &n->input_ports, link) { -@@ -1242,6 +1253,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, - spa_list_for_each(t, &context->node_list, link) { - if (t->exported || !t->active || t->visited) - continue; -+ /* the other node will be scheduled with this one if it's in -+ * the same group or link group */ - if (pw_strv_find_common(t->groups, n->groups) < 0 && - pw_strv_find_common(t->link_groups, n->link_groups) < 0 && - pw_strv_find_common(t->sync_groups, sync) < 0) -@@ -1253,7 +1266,8 @@ static int collect_nodes(struct pw_context *context, struct pw_impl_node *node, - spa_list_append(&queue, &t->sort_link); - } - } -- pw_log_debug(" next node %p: '%s' runnable:%u", n, n->name, n->runnable); -+ pw_log_debug(" next node %p: '%s' runnable:%u %p %p %p", n, n->name, n->runnable, -+ n->groups, n->link_groups, sync); - } - spa_list_for_each(n, collect, sort_link) - if (!n->driving && n->runnable) { -@@ -1497,10 +1511,9 @@ int pw_context_recalc_graph(struct pw_context *context, const char *reason) - struct pw_impl_node *n, *s, *target, *fallback; - const uint32_t *rates; - uint32_t max_quantum, min_quantum, def_quantum, rate_quantum, floor_quantum, ceil_quantum; -- uint32_t n_rates, def_rate, n_sync; -+ uint32_t n_rates, def_rate; - bool freewheel, global_force_rate, global_force_quantum, transport_start; - struct spa_list collect; -- char *sync[MAX_SYNC+1]; - - pw_log_info("%p: busy:%d reason:%s", context, impl->recalc, reason); - -@@ -1514,23 +1527,11 @@ again: - freewheel = false; - transport_start = false; - -- /* clean up the flags first and collect sync */ -- n_sync = 0; -- sync[0] = NULL; -+ /* clean up the flags first */ - spa_list_for_each(n, &context->node_list, link) { - n->visited = false; - n->checked = 0; - n->runnable = n->always_process && n->active; -- if (n->sync) { -- for (uint32_t i = 0; n->sync_groups[i]; i++) { -- if (n_sync >= MAX_SYNC) -- break; -- if (pw_strv_find(sync, n->sync_groups[i]) >= 0) -- continue; -- sync[n_sync++] = n->sync_groups[i]; -- sync[n_sync] = NULL; -- } -- } - } - - get_quantums(context, &def_quantum, &min_quantum, &max_quantum, &rate_quantum, -@@ -1551,7 +1552,7 @@ again: - - if (!n->visited) { - spa_list_init(&collect); -- collect_nodes(context, n, &collect, sync); -+ collect_nodes(context, n, &collect); - move_to_driver(context, &collect, n); - } - /* from now on we are only interested in active driving nodes -@@ -1605,7 +1606,7 @@ again: - - /* collect all nodes in this group */ - spa_list_init(&collect); -- collect_nodes(context, n, &collect, sync); -+ collect_nodes(context, n, &collect); - - driver = NULL; - spa_list_for_each(t, &collect, sort_link) { --- -2.45.2 - diff --git a/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch b/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch deleted file mode 100644 index a7528249f1e3..000000000000 --- a/media-video/pipewire/files/1.2.0/0004-impl-node-disable-async-for-driver-nodes.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 525360d70ab1698afaaaf20f7e58002b8756353f Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Wed, 3 Jul 2024 13:31:24 +0200 -Subject: [PATCH 4/5] impl-node: disable async for driver nodes - -Make it so that a driver node can never be scheduled async. It could -possibly make sense when the driver node is not currently driving the -graph but when it drives the graph it always needs to be sync. This -also simplifies the target activation because we can simply check the -async state and ignore if the node is driving or not. - -Also make sure that we never make an async link with a driver output port. -This does not make sense because the driver node will always be -triggered sync first and before the async node so we can simply make -a sync link. - -This fixes the modified (only generate 1 buffer) video-src -> video-play -case where the buffer never arrives in video-play because of the -useless async link. - -Fixes #4092 ---- - src/pipewire/impl-link.c | 8 +++++--- - src/pipewire/impl-node.c | 7 +++---- - src/pipewire/private.h | 1 - - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/src/pipewire/impl-link.c b/src/pipewire/impl-link.c -index 39e9bd17d..6dc2e1a59 100644 ---- a/src/pipewire/impl-link.c -+++ b/src/pipewire/impl-link.c -@@ -1321,7 +1321,8 @@ struct pw_impl_link *pw_context_create_link(struct pw_context *context, - if (this->passive && str == NULL) - pw_properties_set(properties, PW_KEY_LINK_PASSIVE, "true"); - -- impl->async = (output_node->async || input_node->async) && -+ impl->async = !output_node->driver && -+ (output_node->async || input_node->async) && - SPA_FLAG_IS_SET(output->flags, PW_IMPL_PORT_FLAG_ASYNC) && - SPA_FLAG_IS_SET(input->flags, PW_IMPL_PORT_FLAG_ASYNC); - -@@ -1375,8 +1376,9 @@ struct pw_impl_link *pw_context_create_link(struct pw_context *context, - this->name = spa_aprintf("%d.%d.%d -> %d.%d.%d", - output_node->info.id, output->port_id, this->rt.out_mix.port.port_id, - input_node->info.id, input->port_id, this->rt.in_mix.port.port_id); -- pw_log_info("(%s) (%s) -> (%s) async:%04x:%04x:%d", this->name, output_node->name, -- input_node->name, output->flags, input->flags, impl->async); -+ pw_log_info("(%s) (%s) -> (%s) async:%d:%04x:%04x:%d", this->name, output_node->name, -+ input_node->name, output_node->driving, -+ output->flags, input->flags, impl->async); - - pw_impl_port_emit_link_added(output, this); - pw_impl_port_emit_link_added(input, this); -diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c -index 4def52897..c75e5793e 100644 ---- a/src/pipewire/impl-node.c -+++ b/src/pipewire/impl-node.c -@@ -112,13 +112,12 @@ static inline void activate_target(struct pw_impl_node *node, struct pw_node_tar - { - struct pw_node_activation_state *state = &t->activation->state[0]; - if (!t->active) { -- if (!node->async || node->driving) { -+ if (!node->async) { - if (!node->exported) { - SPA_ATOMIC_INC(state->required); - SPA_ATOMIC_INC(state->pending); - } - } -- t->active_driving = node->driving; - t->active = true; - pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d", - node, state, t->id, state->pending, state->required, -@@ -130,7 +129,7 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t - { - if (t->active) { - struct pw_node_activation_state *state = &t->activation->state[0]; -- if (!node->async || t->active_driving) { -+ if (!node->async) { - /* the driver copies the required to the pending state - * so first try to resume the node and then decrement the - * required state. This way we either resume with the old value -@@ -141,7 +140,6 @@ static inline void deactivate_target(struct pw_impl_node *node, struct pw_node_t - SPA_ATOMIC_DEC(state->required); - } - t->active = false; -- t->active_driving = false; - pw_log_debug("%p: target state:%p id:%d pending:%d/%d %d:%d:%d trigger:%"PRIu64, - node, state, t->id, state->pending, state->required, - node->async, node->driving, node->exported, trigger); -@@ -1202,6 +1200,7 @@ static void check_properties(struct pw_impl_node *node) - recalc_reason = "transport changed"; - } - async = pw_properties_get_bool(node->properties, PW_KEY_NODE_ASYNC, false); -+ async &= !node->driver; - if (async != node->async) { - pw_log_info("%p: async %d -> %d", node, node->async, async); - node->async = async; -diff --git a/src/pipewire/private.h b/src/pipewire/private.h -index 25af677ac..8c01fe8d5 100644 ---- a/src/pipewire/private.h -+++ b/src/pipewire/private.h -@@ -541,7 +541,6 @@ struct pw_node_target { - int fd; - void (*trigger)(struct pw_node_target *t, uint64_t nsec); - unsigned int active:1; -- unsigned int active_driving:1; - unsigned int added:1; - }; - --- -2.45.2 - diff --git a/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch b/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch deleted file mode 100644 index 9821c151c97b..000000000000 --- a/media-video/pipewire/files/1.2.0/0005-impl-node-set-INACTIVE-state-on-server.patch +++ /dev/null @@ -1,30 +0,0 @@ -From d08df293a95ce976df1cc8c3ec367a8d5d84db35 Mon Sep 17 00:00:00 2001 -From: Wim Taymans <wtaymans@redhat.com> -Date: Wed, 3 Jul 2024 17:42:39 +0200 -Subject: [PATCH 5/5] impl-node: set INACTIVE state on server - -Don't wait for the client to set the INACTIVE state, do it on the -server. We already decremented the target required so we don't want to -schedule the node anymore. - -Fixes some xruns when removing nodes in a stress test. ---- - src/pipewire/impl-node.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/pipewire/impl-node.c b/src/pipewire/impl-node.c -index c75e5793e..be25aa83e 100644 ---- a/src/pipewire/impl-node.c -+++ b/src/pipewire/impl-node.c -@@ -221,7 +221,7 @@ do_node_unprepare(struct spa_loop *loop, bool async, uint32_t seq, - if (!this->rt.prepared) - return 0; - -- if (!this->remote || this->rt.target.activation->client_version < 1) { -+ if (!this->exported) { - /* We mark ourself as finished now, this will avoid going further into the process loop - * in case our fd was ready (removing ourselfs from the loop should avoid that as well). - * If we were supposed to be scheduled make sure we continue the graph for the peers we --- -2.45.2 - diff --git a/media-video/pipewire/files/1.2.7/0001-spa-alsa-Fix-key-name-suggestion-in-log-message.patch b/media-video/pipewire/files/1.2.7/0001-spa-alsa-Fix-key-name-suggestion-in-log-message.patch new file mode 100644 index 000000000000..a9348553e15b --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0001-spa-alsa-Fix-key-name-suggestion-in-log-message.patch @@ -0,0 +1,28 @@ +From 1993383ddf67e296334c7916d6afc699ee6300c7 Mon Sep 17 00:00:00 2001 +Message-ID: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Arun Raghavan <arun@asymptotic.io> +Date: Fri, 29 Nov 2024 10:54:18 -0500 +Subject: [PATCH 1/8] spa: alsa: Fix key name suggestion in log message + +We use api.alsa.pcm.card to look up the PCM's card if we don't know it +by other means. +--- + spa/plugins/alsa/alsa-pcm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c +index b07897935..9244b66aa 100644 +--- a/spa/plugins/alsa/alsa-pcm.c ++++ b/spa/plugins/alsa/alsa-pcm.c +@@ -939,7 +939,7 @@ int spa_alsa_init(struct state *state, const struct spa_dict *info) + sscanf(state->props.device, "%*[^:]:%u", &state->card_index); + if (state->card_index == SPA_ID_INVALID) { + spa_log_error(state->log, "Could not determine card index, maybe set %s", +- SPA_KEY_API_ALSA_CARD); ++ SPA_KEY_API_ALSA_PCM_CARD); + return -EINVAL; + } + } +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0002-spa-alsa-Don-t-assume-all-PCMs-have-a-card.patch b/media-video/pipewire/files/1.2.7/0002-spa-alsa-Don-t-assume-all-PCMs-have-a-card.patch new file mode 100644 index 000000000000..efb13f667b9a --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0002-spa-alsa-Don-t-assume-all-PCMs-have-a-card.patch @@ -0,0 +1,128 @@ +From a6019e6dd73e686c69db5967fc3e852a8fe43ecb Mon Sep 17 00:00:00 2001 +Message-ID: <a6019e6dd73e686c69db5967fc3e852a8fe43ecb.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Arun Raghavan <arun@asymptotic.io> +Date: Fri, 29 Nov 2024 10:42:58 -0500 +Subject: [PATCH 2/8] spa: alsa: Don't assume all PCMs have a card + +dmix/dsnoop devices, for example, don't have an associated card, so all +the card-related checks don't make sense. Let's explicitly deal with +this case. + +Fixes: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/4432 +--- + spa/plugins/alsa/alsa-pcm.c | 31 +++++++++++++++++-------------- + 1 file changed, 17 insertions(+), 14 deletions(-) + +diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c +index 9244b66aa..b8728bfe1 100644 +--- a/spa/plugins/alsa/alsa-pcm.c ++++ b/spa/plugins/alsa/alsa-pcm.c +@@ -40,6 +40,9 @@ static struct card *ensure_card(uint32_t index, bool ucm) + const char *alibpref = NULL; + int err; + ++ if (index == SPA_ID_INVALID) ++ return NULL; ++ + if ((c = find_card(index)) != NULL) + return c; + +@@ -78,6 +81,9 @@ error: + + static void release_card(struct card *c) + { ++ if (!c) ++ return; ++ + spa_assert(c->ref > 0); + + if (--c->ref > 0) +@@ -657,7 +663,7 @@ static void silence_error_handler(const char *file, int line, + static void fill_device_name(struct state *state, const char *params, char device_name[], size_t len) + { + spa_scnprintf(device_name, len, "%s%s%s", +- state->card->ucm_prefix ? state->card->ucm_prefix : "", ++ state->card && state->card->ucm_prefix ? state->card->ucm_prefix : "", + state->props.device, params ? params : ""); + } + +@@ -938,13 +944,12 @@ int spa_alsa_init(struct state *state, const struct spa_dict *info) + /* If we don't have a card index, see if we have a *:<idx> string */ + sscanf(state->props.device, "%*[^:]:%u", &state->card_index); + if (state->card_index == SPA_ID_INVALID) { +- spa_log_error(state->log, "Could not determine card index, maybe set %s", +- SPA_KEY_API_ALSA_PCM_CARD); +- return -EINVAL; ++ spa_log_info(state->log, "Could not determine card index. %s and/or clock.name " ++ "may need to be configured manually", SPA_KEY_API_ALSA_PCM_CARD); + } + } + +- if (state->clock_name[0] == '\0') ++ if (state->clock_name[0] == '\0' && state->card_index != SPA_ID_INVALID) + snprintf(state->clock_name, sizeof(state->clock_name), + "api.alsa.%s-%u", + state->stream == SND_PCM_STREAM_PLAYBACK ? "p" : "c", +@@ -957,10 +962,7 @@ int spa_alsa_init(struct state *state, const struct spa_dict *info) + } + + state->card = ensure_card(state->card_index, state->open_ucm); +- if (state->card == NULL) { +- spa_log_error(state->log, "can't create card %u", state->card_index); +- return -errno; +- } ++ + state->log_file = fopencookie(state, "w", io_funcs); + if (state->log_file == NULL) { + spa_log_error(state->log, "can't create log file"); +@@ -1203,7 +1205,7 @@ int spa_alsa_close(struct state *state) + else + state->n_fds = 0; + +- if (state->have_format) ++ if (state->have_format && state->card) + state->card->format_ref--; + + state->have_format = false; +@@ -1423,7 +1425,7 @@ static int add_rate(struct state *state, uint32_t scale, uint32_t interleave, bo + if (max < min) + return 0; + +- if (!state->multi_rate && state->card->format_ref > 0) ++ if (!state->multi_rate && state->card && state->card->format_ref > 0) + rate = state->card->rate; + else + rate = state->default_rate; +@@ -1439,8 +1441,8 @@ static int add_rate(struct state *state, uint32_t scale, uint32_t interleave, bo + + rate = SPA_CLAMP(rate, min, max); + +- spa_log_debug(state->log, "rate:%u multi:%d card:%d def:%d", +- rate, state->multi_rate, state->card->rate, state->default_rate); ++ spa_log_debug(state->log, "rate:%u multi:%d card:%u def:%d", ++ rate, state->multi_rate, state->card ? state->card->rate : 0, state->default_rate); + + spa_pod_builder_prop(b, SPA_FORMAT_AUDIO_rate, 0); + +@@ -2172,6 +2174,7 @@ int spa_alsa_set_format(struct state *state, struct spa_audio_info *fmt, uint32_ + } + + if (!state->multi_rate && ++ state->card && + state->card->format_ref > 0 && + state->card->rate != rrate) { + spa_log_error(state->log, "%p: card already opened at rate:%i", +@@ -2217,7 +2220,7 @@ int spa_alsa_set_format(struct state *state, struct spa_audio_info *fmt, uint32_ + state->driver_rate.denom = 0; + + state->have_format = true; +- if (state->card->format_ref++ == 0) ++ if (state->card && state->card->format_ref++ == 0) + state->card->rate = rrate; + + dir = 0; +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0003-gst-mark-the-pipewiresink-as-EARLY_PROCESS.patch b/media-video/pipewire/files/1.2.7/0003-gst-mark-the-pipewiresink-as-EARLY_PROCESS.patch new file mode 100644 index 000000000000..54f020f9379e --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0003-gst-mark-the-pipewiresink-as-EARLY_PROCESS.patch @@ -0,0 +1,29 @@ +From 938283aee4a1c120bf1c9285090ea196a5b5c89b Mon Sep 17 00:00:00 2001 +Message-ID: <938283aee4a1c120bf1c9285090ea196a5b5c89b.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 26 Nov 2024 16:57:14 +0100 +Subject: [PATCH 3/8] gst: mark the pipewiresink as EARLY_PROCESS + +We want to receive process callbacks as soon as a buffer is ready for +reuse because we dequeue it for use in our buffer pool. +--- + src/gst/gstpipewiresink.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gst/gstpipewiresink.c b/src/gst/gstpipewiresink.c +index b39a335d8..d79ceaa66 100644 +--- a/src/gst/gstpipewiresink.c ++++ b/src/gst/gstpipewiresink.c +@@ -633,6 +633,7 @@ gst_pipewire_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) + char buf[64]; + + flags = PW_STREAM_FLAG_ASYNC; ++ flags |= PW_STREAM_FLAG_EARLY_PROCESS; + if (pwsink->mode != GST_PIPEWIRE_SINK_MODE_PROVIDE) + flags |= PW_STREAM_FLAG_AUTOCONNECT; + else +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0004-gst-add-rate-control-to-the-sink.patch b/media-video/pipewire/files/1.2.7/0004-gst-add-rate-control-to-the-sink.patch new file mode 100644 index 000000000000..1fdd40244948 --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0004-gst-add-rate-control-to-the-sink.patch @@ -0,0 +1,234 @@ +From 1e2b7f7c00fbded9e9ebb83b10ce302155ba444f Mon Sep 17 00:00:00 2001 +Message-ID: <1e2b7f7c00fbded9e9ebb83b10ce302155ba444f.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 26 Nov 2024 17:45:41 +0100 +Subject: [PATCH 4/8] gst: add rate control to the sink + +Track the elapsed time between buffers and try to keep the buffer fill +level constant by changing the rate of the stream. + +See #4374 +--- + src/gst/gstpipewiresink.c | 76 ++++++++++++++++++++++++++++++++++--- + src/gst/gstpipewiresink.h | 4 ++ + src/gst/gstpipewirestream.c | 1 + + src/gst/gstpipewirestream.h | 8 ++++ + src/gst/meson.build | 2 +- + 5 files changed, 84 insertions(+), 7 deletions(-) + +diff --git a/src/gst/gstpipewiresink.c b/src/gst/gstpipewiresink.c +index d79ceaa66..33f2322e9 100644 +--- a/src/gst/gstpipewiresink.c ++++ b/src/gst/gstpipewiresink.c +@@ -26,6 +26,7 @@ + + #include <spa/pod/builder.h> + #include <spa/utils/result.h> ++#include <spa/utils/dll.h> + + #include <gst/video/video.h> + +@@ -481,14 +482,13 @@ static void + do_send_buffer (GstPipeWireSink *pwsink, GstBuffer *buffer) + { + GstPipeWirePoolData *data; ++ GstPipeWireStream *stream = pwsink->stream; + gboolean res; + guint i; + struct spa_buffer *b; + + data = gst_pipewire_pool_get_data(buffer); + +- GST_LOG_OBJECT (pwsink, "queue buffer %p, pw_buffer %p", buffer, data->b); +- + b = data->b->buffer; + + if (data->header) { +@@ -508,12 +508,15 @@ do_send_buffer (GstPipeWireSink *pwsink, GstBuffer *buffer) + data->crop->region.size.height = meta->width; + } + } ++ data->b->size = 0; + for (i = 0; i < b->n_datas; i++) { + struct spa_data *d = &b->datas[i]; + GstMemory *mem = gst_buffer_peek_memory (buffer, i); + d->chunk->offset = mem->offset; + d->chunk->size = mem->size; +- d->chunk->stride = pwsink->stream->pool->video_info.stride[i]; ++ d->chunk->stride = stream->pool->video_info.stride[i]; ++ ++ data->b->size += mem->size / 4; + } + + GstVideoMeta *meta = gst_buffer_get_video_meta (buffer); +@@ -532,9 +535,50 @@ do_send_buffer (GstPipeWireSink *pwsink, GstBuffer *buffer) + } + } + +- if ((res = pw_stream_queue_buffer (pwsink->stream->pwstream, data->b)) < 0) { ++ if ((res = pw_stream_queue_buffer (stream->pwstream, data->b)) < 0) { + g_warning ("can't send buffer %s", spa_strerror(res)); + } ++ ++ if (pwsink->rate_match) { ++ double err, corr; ++ struct pw_time ts; ++ guint64 queued, now, elapsed, target; ++ ++ pw_stream_get_time_n(stream->pwstream, &ts, sizeof(ts)); ++ now = pw_stream_get_nsec(stream->pwstream); ++ if (ts.now != 0) ++ elapsed = gst_util_uint64_scale_int (now - ts.now, ts.rate.denom, GST_SECOND * ts.rate.num); ++ else ++ elapsed = 0; ++ ++ queued = ts.queued - ts.size; ++ target = 2 * elapsed; ++ err = ((gint64)queued - ((gint64)target)); ++ ++ corr = spa_dll_update(&stream->dll, SPA_CLAMPD(err, -128.0, 128.0)); ++ ++ stream->err_wdw = (double)ts.rate.denom/ts.size; ++ ++ double avg = (stream->err_avg * stream->err_wdw + (err - stream->err_avg)) / (stream->err_wdw + 1.0); ++ stream->err_var = (stream->err_var * stream->err_wdw + ++ (err - stream->err_avg) * (err - avg)) / (stream->err_wdw + 1.0); ++ stream->err_avg = avg; ++ ++ if (stream->last_ts == 0 || stream->last_ts + SPA_NSEC_PER_SEC < now) { ++ stream->last_ts = now; ++ spa_dll_set_bw(&stream->dll, SPA_CLAMPD(fabs(stream->err_avg) / sqrt(fabs(stream->err_var)), 0.001, SPA_DLL_BW_MAX), ++ ts.size, ts.rate.denom); ++ GST_INFO_OBJECT (pwsink, "queue buffer %p, pw_buffer %p q:%"PRIi64"/%"PRIi64" e:%"PRIu64 ++ " err:%+03f corr:%f %f %f %f", ++ buffer, data->b, ts.queued, ts.size, elapsed, err, corr, ++ stream->err_avg, stream->err_var, stream->dll.bw); ++ } ++ ++ if (pwsink->match) { ++ pwsink->match->rate = corr; ++ SPA_FLAG_UPDATE(pwsink->match->flags, SPA_IO_RATE_MATCH_FLAG_ACTIVE, true); ++ } ++ } + } + + +@@ -576,6 +620,18 @@ on_state_changed (void *data, enum pw_stream_state old, enum pw_stream_state sta + pw_thread_loop_signal (pwsink->stream->core->loop, FALSE); + } + ++static void ++on_io_changed (void *obj, uint32_t id, void *data, uint32_t size) ++{ ++ GstPipeWireSink *pwsink = obj; ++ ++ switch (id) { ++ case SPA_IO_RateMatch: ++ pwsink->match = data; ++ break; ++ } ++} ++ + static void + on_param_changed (void *data, uint32_t id, const struct spa_pod *param) + { +@@ -613,9 +669,16 @@ gst_pipewire_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) + pwsink = GST_PIPEWIRE_SINK (bsink); + + s = gst_caps_get_structure (caps, 0); +- rate = 0; +- if (gst_structure_has_name (s, "audio/x-raw")) ++ if (gst_structure_has_name (s, "audio/x-raw")) { + gst_structure_get_int (s, "rate", &rate); ++ pwsink->rate = rate; ++ pwsink->rate_match = true; ++ } else { ++ pwsink->rate = rate = 0; ++ pwsink->rate_match = false; ++ } ++ ++ spa_dll_set_bw(&pwsink->stream->dll, SPA_DLL_BW_MIN, 4096, rate); + + possible = gst_caps_to_format_all (caps); + +@@ -791,6 +854,7 @@ not_negotiated: + static const struct pw_stream_events stream_events = { + PW_VERSION_STREAM_EVENTS, + .state_changed = on_state_changed, ++ .io_changed = on_io_changed, + .param_changed = on_param_changed, + .add_buffer = on_add_buffer, + .remove_buffer = on_remove_buffer, +diff --git a/src/gst/gstpipewiresink.h b/src/gst/gstpipewiresink.h +index 74e6667e6..33d7b5b4f 100644 +--- a/src/gst/gstpipewiresink.h ++++ b/src/gst/gstpipewiresink.h +@@ -50,8 +50,12 @@ struct _GstPipeWireSink { + + /* video state */ + gboolean negotiated; ++ gboolean rate_match; ++ gint rate; + + GstPipeWireSinkMode mode; ++ ++ struct spa_io_rate_match *match; + }; + + GType gst_pipewire_sink_mode_get_type (void); +diff --git a/src/gst/gstpipewirestream.c b/src/gst/gstpipewirestream.c +index bf7641548..68cb9be21 100644 +--- a/src/gst/gstpipewirestream.c ++++ b/src/gst/gstpipewirestream.c +@@ -19,6 +19,7 @@ gst_pipewire_stream_init (GstPipeWireStream * self) + self->fd = -1; + self->client_name = g_strdup (pw_get_client_name()); + self->pool = gst_pipewire_pool_new (self); ++ spa_dll_init(&self->dll); + } + + static void +diff --git a/src/gst/gstpipewirestream.h b/src/gst/gstpipewirestream.h +index ff8c8e2e6..a301375c7 100644 +--- a/src/gst/gstpipewirestream.h ++++ b/src/gst/gstpipewirestream.h +@@ -11,6 +11,7 @@ + #include "gstpipewirecore.h" + + #include <gst/gst.h> ++#include <spa/utils/dll.h> + #include <pipewire/pipewire.h> + + G_BEGIN_DECLS +@@ -29,6 +30,13 @@ struct _GstPipeWireStream { + GstPipeWirePool *pool; + GstClock *clock; + ++ guint64 position; ++ struct spa_dll dll; ++ double err_avg, err_var, err_wdw; ++ guint64 last_ts; ++ guint64 base_buffer_ts; ++ guint64 base_ts; ++ + /* the actual pw stream */ + struct pw_stream *pwstream; + struct spa_hook pwstream_listener; +diff --git a/src/gst/meson.build b/src/gst/meson.build +index ba1f6d558..1e39bcf89 100644 +--- a/src/gst/meson.build ++++ b/src/gst/meson.build +@@ -27,7 +27,7 @@ pipewire_gst_headers = [ + pipewire_gst = shared_library('gstpipewire', + pipewire_gst_sources, + include_directories : [ configinc ], +- dependencies : [ spa_dep, gst_dep, pipewire_dep ], ++ dependencies : [ spa_dep, gst_dep, pipewire_dep, mathlib ], + install : true, + install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')), + ) +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0005-gst-add-slave-method-property.patch b/media-video/pipewire/files/1.2.7/0005-gst-add-slave-method-property.patch new file mode 100644 index 000000000000..74df92bbdfcf --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0005-gst-add-slave-method-property.patch @@ -0,0 +1,259 @@ +From 91e26d6011bd194deffb5765f9b3306fb92738d9 Mon Sep 17 00:00:00 2001 +Message-ID: <91e26d6011bd194deffb5765f9b3306fb92738d9.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 3 Dec 2024 11:54:52 +0100 +Subject: [PATCH 5/8] gst: add slave-method property + +Set the slave-method to none by default to disable the resampler. + +Fixes #4374 +--- + src/gst/gstpipewiresink.c | 141 +++++++++++++++++++++++++++----------- + src/gst/gstpipewiresink.h | 21 +++++- + 2 files changed, 120 insertions(+), 42 deletions(-) + +diff --git a/src/gst/gstpipewiresink.c b/src/gst/gstpipewiresink.c +index 33f2322e9..bf1b427f0 100644 +--- a/src/gst/gstpipewiresink.c ++++ b/src/gst/gstpipewiresink.c +@@ -37,6 +37,7 @@ GST_DEBUG_CATEGORY_STATIC (pipewire_sink_debug); + #define GST_CAT_DEFAULT pipewire_sink_debug + + #define DEFAULT_PROP_MODE GST_PIPEWIRE_SINK_MODE_DEFAULT ++#define DEFAULT_PROP_SLAVE_METHOD GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE + + #define MIN_BUFFERS 8u + +@@ -49,7 +50,8 @@ enum + PROP_CLIENT_PROPERTIES, + PROP_STREAM_PROPERTIES, + PROP_MODE, +- PROP_FD ++ PROP_FD, ++ PROP_SLAVE_METHOD + }; + + GType +@@ -72,6 +74,26 @@ gst_pipewire_sink_mode_get_type (void) + return (GType) mode_type; + } + ++GType ++gst_pipewire_sink_slave_method_get_type (void) ++{ ++ static gsize method_type = 0; ++ static const GEnumValue method[] = { ++ {GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE, "GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE", "none"}, ++ {GST_PIPEWIRE_SINK_SLAVE_METHOD_RESAMPLE, "GST_PIPEWIRE_SINK_SLAVE_METHOD_RESAMPLE", "resample"}, ++ {0, NULL, NULL}, ++ }; ++ ++ if (g_once_init_enter (&method_type)) { ++ GType tmp = ++ g_enum_register_static ("GstPipeWireSinkSlaveMethod", method); ++ g_once_init_leave (&method_type, tmp); ++ } ++ ++ return (GType) method_type; ++} ++ ++ + + static GstStaticPadTemplate gst_pipewire_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", +@@ -225,6 +247,17 @@ gst_pipewire_sink_class_init (GstPipeWireSinkClass * klass) + G_PARAM_READWRITE | + G_PARAM_STATIC_STRINGS)); + ++ g_object_class_install_property (gobject_class, ++ PROP_SLAVE_METHOD, ++ g_param_spec_enum ("slave-method", ++ "Slave Method", ++ "Algorithm used to match the rate of the masterclock", ++ GST_TYPE_PIPEWIRE_SINK_SLAVE_METHOD, ++ DEFAULT_PROP_SLAVE_METHOD, ++ G_PARAM_READWRITE | ++ G_PARAM_STATIC_STRINGS)); ++ ++ + gstelement_class->provide_clock = gst_pipewire_sink_provide_clock; + gstelement_class->change_state = gst_pipewire_sink_change_state; + +@@ -408,6 +441,10 @@ gst_pipewire_sink_set_property (GObject * object, guint prop_id, + pwsink->stream->fd = g_value_get_int (value); + break; + ++ case PROP_SLAVE_METHOD: ++ pwsink->slave_method = g_value_get_enum (value); ++ break; ++ + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; +@@ -449,12 +486,69 @@ gst_pipewire_sink_get_property (GObject * object, guint prop_id, + g_value_set_int (value, pwsink->stream->fd); + break; + ++ case PROP_SLAVE_METHOD: ++ g_value_set_enum (value, pwsink->slave_method); ++ break; ++ + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + } + ++static void rate_match_resample(GstPipeWireSink *pwsink) ++{ ++ GstPipeWireStream *stream = pwsink->stream; ++ double err, corr; ++ struct pw_time ts; ++ guint64 queued, now, elapsed, target; ++ ++ if (!pwsink->rate_match) ++ return; ++ ++ pw_stream_get_time_n(stream->pwstream, &ts, sizeof(ts)); ++ now = pw_stream_get_nsec(stream->pwstream); ++ if (ts.now != 0) ++ elapsed = gst_util_uint64_scale_int (now - ts.now, ts.rate.denom, GST_SECOND * ts.rate.num); ++ else ++ elapsed = 0; ++ ++ queued = ts.queued - ts.size; ++ target = elapsed; ++ err = ((gint64)queued - ((gint64)target)); ++ ++ corr = spa_dll_update(&stream->dll, SPA_CLAMPD(err, -128.0, 128.0)); ++ ++ stream->err_wdw = (double)ts.rate.denom/ts.size; ++ ++ double avg = (stream->err_avg * stream->err_wdw + (err - stream->err_avg)) / (stream->err_wdw + 1.0); ++ stream->err_var = (stream->err_var * stream->err_wdw + ++ (err - stream->err_avg) * (err - avg)) / (stream->err_wdw + 1.0); ++ stream->err_avg = avg; ++ ++ if (stream->last_ts == 0 || stream->last_ts + SPA_NSEC_PER_SEC < now) { ++ double bw; ++ ++ stream->last_ts = now; ++ ++ if (stream->err_var == 0.0) ++ bw = 0.0; ++ else ++ bw = fabs(stream->err_avg) / sqrt(fabs(stream->err_var)); ++ ++ spa_dll_set_bw(&stream->dll, SPA_CLAMPD(bw, 0.001, SPA_DLL_BW_MAX), ts.size, ts.rate.denom); ++ ++ GST_INFO_OBJECT (pwsink, "q:%"PRIi64"/%"PRIi64" e:%"PRIu64" err:%+03f corr:%f %f %f %f", ++ ts.queued, ts.size, elapsed, err, corr, ++ stream->err_avg, stream->err_var, stream->dll.bw); ++ } ++ ++ if (pwsink->match) { ++ pwsink->match->rate = corr; ++ SPA_FLAG_UPDATE(pwsink->match->flags, SPA_IO_RATE_MATCH_FLAG_ACTIVE, true); ++ } ++} ++ + static void + on_add_buffer (void *_data, struct pw_buffer *b) + { +@@ -539,45 +633,12 @@ do_send_buffer (GstPipeWireSink *pwsink, GstBuffer *buffer) + g_warning ("can't send buffer %s", spa_strerror(res)); + } + +- if (pwsink->rate_match) { +- double err, corr; +- struct pw_time ts; +- guint64 queued, now, elapsed, target; +- +- pw_stream_get_time_n(stream->pwstream, &ts, sizeof(ts)); +- now = pw_stream_get_nsec(stream->pwstream); +- if (ts.now != 0) +- elapsed = gst_util_uint64_scale_int (now - ts.now, ts.rate.denom, GST_SECOND * ts.rate.num); +- else +- elapsed = 0; +- +- queued = ts.queued - ts.size; +- target = 2 * elapsed; +- err = ((gint64)queued - ((gint64)target)); +- +- corr = spa_dll_update(&stream->dll, SPA_CLAMPD(err, -128.0, 128.0)); +- +- stream->err_wdw = (double)ts.rate.denom/ts.size; +- +- double avg = (stream->err_avg * stream->err_wdw + (err - stream->err_avg)) / (stream->err_wdw + 1.0); +- stream->err_var = (stream->err_var * stream->err_wdw + +- (err - stream->err_avg) * (err - avg)) / (stream->err_wdw + 1.0); +- stream->err_avg = avg; +- +- if (stream->last_ts == 0 || stream->last_ts + SPA_NSEC_PER_SEC < now) { +- stream->last_ts = now; +- spa_dll_set_bw(&stream->dll, SPA_CLAMPD(fabs(stream->err_avg) / sqrt(fabs(stream->err_var)), 0.001, SPA_DLL_BW_MAX), +- ts.size, ts.rate.denom); +- GST_INFO_OBJECT (pwsink, "queue buffer %p, pw_buffer %p q:%"PRIi64"/%"PRIi64" e:%"PRIu64 +- " err:%+03f corr:%f %f %f %f", +- buffer, data->b, ts.queued, ts.size, elapsed, err, corr, +- stream->err_avg, stream->err_var, stream->dll.bw); +- } +- +- if (pwsink->match) { +- pwsink->match->rate = corr; +- SPA_FLAG_UPDATE(pwsink->match->flags, SPA_IO_RATE_MATCH_FLAG_ACTIVE, true); +- } ++ switch (pwsink->slave_method) { ++ case GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE: ++ break; ++ case GST_PIPEWIRE_SINK_SLAVE_METHOD_RESAMPLE: ++ rate_match_resample(pwsink); ++ break; + } + } + +diff --git a/src/gst/gstpipewiresink.h b/src/gst/gstpipewiresink.h +index 33d7b5b4f..306297d0e 100644 +--- a/src/gst/gstpipewiresink.h ++++ b/src/gst/gstpipewiresink.h +@@ -37,6 +37,22 @@ typedef enum + + #define GST_TYPE_PIPEWIRE_SINK_MODE (gst_pipewire_sink_mode_get_type ()) + ++ ++/** ++ * GstPipeWireSinkSlaveMethod: ++ * @GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE: no clock and timestamp slaving ++ * @GST_PIPEWIRE_SINK_SLAVE_METHOD_RESAMPLE: resample audio ++ * ++ * Different clock slaving methods ++ */ ++typedef enum ++{ ++ GST_PIPEWIRE_SINK_SLAVE_METHOD_NONE, ++ GST_PIPEWIRE_SINK_SLAVE_METHOD_RESAMPLE, ++} GstPipeWireSinkSlaveMethod; ++ ++#define GST_TYPE_PIPEWIRE_SINK_SLAVE_METHOD (gst_pipewire_sink_slave_method_get_type ()) ++ + /** + * GstPipeWireSink: + * +@@ -53,9 +69,10 @@ struct _GstPipeWireSink { + gboolean rate_match; + gint rate; + +- GstPipeWireSinkMode mode; +- + struct spa_io_rate_match *match; ++ ++ GstPipeWireSinkMode mode; ++ GstPipeWireSinkSlaveMethod slave_method; + }; + + GType gst_pipewire_sink_mode_get_type (void); +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0006-spa-fix-some-param-type-info.patch b/media-video/pipewire/files/1.2.7/0006-spa-fix-some-param-type-info.patch new file mode 100644 index 000000000000..c91ada71cf5a --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0006-spa-fix-some-param-type-info.patch @@ -0,0 +1,51 @@ +From e42de413e89249dca22b78f3c3d5a5c2e2e8b2f3 Mon Sep 17 00:00:00 2001 +Message-ID: <e42de413e89249dca22b78f3c3d5a5c2e2e8b2f3.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 3 Dec 2024 12:41:07 +0100 +Subject: [PATCH 6/8] spa: fix some param type info + +Add an int array type and use this in the route properties. + +Fixes #4441 +--- + spa/include/spa/param/param-types.h | 5 +++++ + spa/include/spa/param/route-types.h | 4 ++-- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/spa/include/spa/param/param-types.h b/spa/include/spa/param/param-types.h +index 4bed3651d..ebb8d988b 100644 +--- a/spa/include/spa/param/param-types.h ++++ b/spa/include/spa/param/param-types.h +@@ -55,6 +55,11 @@ static const struct spa_type_info spa_type_prop_float_array[] = { + { 0, 0, NULL, NULL }, + }; + ++static const struct spa_type_info spa_type_prop_int_array[] = { ++ { SPA_PROP_START, SPA_TYPE_Int, SPA_TYPE_INFO_BASE "intArray", NULL, }, ++ { 0, 0, NULL, NULL }, ++}; ++ + static const struct spa_type_info spa_type_prop_channel_map[] = { + { SPA_PROP_START, SPA_TYPE_Id, SPA_TYPE_INFO_BASE "channelMap", spa_type_audio_channel, }, + { 0, 0, NULL, NULL }, +diff --git a/spa/include/spa/param/route-types.h b/spa/include/spa/param/route-types.h +index 619a9e2e8..78ced495e 100644 +--- a/spa/include/spa/param/route-types.h ++++ b/spa/include/spa/param/route-types.h +@@ -32,9 +32,9 @@ static const struct spa_type_info spa_type_param_route[] = { + { SPA_PARAM_ROUTE_priority, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ROUTE_BASE "priority", NULL, }, + { SPA_PARAM_ROUTE_available, SPA_TYPE_Id, SPA_TYPE_INFO_PARAM_ROUTE_BASE "available", spa_type_param_availability, }, + { SPA_PARAM_ROUTE_info, SPA_TYPE_Struct, SPA_TYPE_INFO_PARAM_ROUTE_BASE "info", NULL, }, +- { SPA_PARAM_ROUTE_profiles, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ROUTE_BASE "profiles", NULL, }, ++ { SPA_PARAM_ROUTE_profiles, SPA_TYPE_Array, SPA_TYPE_INFO_PARAM_ROUTE_BASE "profiles", spa_type_prop_int_array, }, + { SPA_PARAM_ROUTE_props, SPA_TYPE_OBJECT_Props, SPA_TYPE_INFO_PARAM_ROUTE_BASE "props", NULL, }, +- { SPA_PARAM_ROUTE_devices, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ROUTE_BASE "devices", NULL, }, ++ { SPA_PARAM_ROUTE_devices, SPA_TYPE_Array, SPA_TYPE_INFO_PARAM_ROUTE_BASE "devices", spa_type_prop_int_array, }, + { SPA_PARAM_ROUTE_profile, SPA_TYPE_Int, SPA_TYPE_INFO_PARAM_ROUTE_BASE "profile", NULL, }, + { SPA_PARAM_ROUTE_save, SPA_TYPE_Bool, SPA_TYPE_INFO_PARAM_ROUTE_BASE "save", NULL, }, + { 0, 0, NULL, NULL }, +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0007-filter-chain-handle-0-length-IR.patch b/media-video/pipewire/files/1.2.7/0007-filter-chain-handle-0-length-IR.patch new file mode 100644 index 000000000000..4a1c25871d4c --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0007-filter-chain-handle-0-length-IR.patch @@ -0,0 +1,305 @@ +From 8d9269374ddd7fc1628d9bf05c0880e82a76015d Mon Sep 17 00:00:00 2001 +Message-ID: <8d9269374ddd7fc1628d9bf05c0880e82a76015d.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 3 Dec 2024 15:43:56 +0100 +Subject: [PATCH 7/8] filter-chain: handle 0 length IR + +Make sure we copy the DSP functions in the convolver before leaving the +function because we need them to clear memory. + +Don't store the DSP functions in the head and tail convolvers but pass +them from the main convolver because the convolvers might be NULL but we +still need the DSP functions to clear memory. + +Fixes #4433 +--- + src/modules/module-filter-chain/convolver.c | 96 +++++++++++---------- + 1 file changed, 49 insertions(+), 47 deletions(-) + +diff --git a/src/modules/module-filter-chain/convolver.c b/src/modules/module-filter-chain/convolver.c +index 3aa7230c0..4251c4025 100644 +--- a/src/modules/module-filter-chain/convolver.c ++++ b/src/modules/module-filter-chain/convolver.c +@@ -11,8 +11,6 @@ + #include <math.h> + + struct convolver1 { +- struct dsp_ops *dsp; +- + int blockSize; + int segSize; + int segCount; +@@ -76,15 +74,15 @@ static int next_power_of_two(int val) + return r; + } + +-static void convolver1_reset(struct convolver1 *conv) ++static void convolver1_reset(struct dsp_ops *dsp, struct convolver1 *conv) + { + int i; + for (i = 0; i < conv->segCount; i++) +- fft_cpx_clear(conv->dsp, conv->segments[i], conv->fftComplexSize); +- dsp_ops_clear(conv->dsp, conv->overlap, conv->blockSize); +- dsp_ops_clear(conv->dsp, conv->inputBuffer, conv->segSize); +- fft_cpx_clear(conv->dsp, conv->pre_mult, conv->fftComplexSize); +- fft_cpx_clear(conv->dsp, conv->conv, conv->fftComplexSize); ++ fft_cpx_clear(dsp, conv->segments[i], conv->fftComplexSize); ++ dsp_ops_clear(dsp, conv->overlap, conv->blockSize); ++ dsp_ops_clear(dsp, conv->inputBuffer, conv->segSize); ++ fft_cpx_clear(dsp, conv->pre_mult, conv->fftComplexSize); ++ fft_cpx_clear(dsp, conv->conv, conv->fftComplexSize); + conv->inputBufferFill = 0; + conv->current = 0; + } +@@ -107,16 +105,15 @@ static struct convolver1 *convolver1_new(struct dsp_ops *dsp, int block, const f + if (irlen == 0) + return conv; + +- conv->dsp = dsp; + conv->blockSize = next_power_of_two(block); + conv->segSize = 2 * conv->blockSize; + conv->segCount = (irlen + conv->blockSize-1) / conv->blockSize; + conv->fftComplexSize = (conv->segSize / 2) + 1; + +- conv->fft = dsp_ops_fft_new(conv->dsp, conv->segSize, true); ++ conv->fft = dsp_ops_fft_new(dsp, conv->segSize, true); + if (conv->fft == NULL) + goto error; +- conv->ifft = dsp_ops_fft_new(conv->dsp, conv->segSize, true); ++ conv->ifft = dsp_ops_fft_new(dsp, conv->segSize, true); + if (conv->ifft == NULL) + goto error; + +@@ -134,18 +131,18 @@ static struct convolver1 *convolver1_new(struct dsp_ops *dsp, int block, const f + conv->segments[i] = fft_cpx_alloc(conv->fftComplexSize); + conv->segmentsIr[i] = fft_cpx_alloc(conv->fftComplexSize); + +- dsp_ops_copy(conv->dsp, conv->fft_buffer, &ir[i * conv->blockSize], copy); ++ dsp_ops_copy(dsp, conv->fft_buffer, &ir[i * conv->blockSize], copy); + if (copy < conv->segSize) +- dsp_ops_clear(conv->dsp, conv->fft_buffer + copy, conv->segSize - copy); ++ dsp_ops_clear(dsp, conv->fft_buffer + copy, conv->segSize - copy); + +- dsp_ops_fft_run(conv->dsp, conv->fft, 1, conv->fft_buffer, conv->segmentsIr[i]); ++ dsp_ops_fft_run(dsp, conv->fft, 1, conv->fft_buffer, conv->segmentsIr[i]); + } + conv->pre_mult = fft_cpx_alloc(conv->fftComplexSize); + conv->conv = fft_cpx_alloc(conv->fftComplexSize); + conv->overlap = fft_alloc(conv->blockSize); + conv->inputBuffer = fft_alloc(conv->segSize); + conv->scale = 1.0f / conv->segSize; +- convolver1_reset(conv); ++ convolver1_reset(dsp, conv); + + return conv; + error: +@@ -159,7 +156,7 @@ error: + return NULL; + } + +-static void convolver1_free(struct convolver1 *conv) ++static void convolver1_free(struct dsp_ops *dsp, struct convolver1 *conv) + { + int i; + for (i = 0; i < conv->segCount; i++) { +@@ -167,9 +164,9 @@ static void convolver1_free(struct convolver1 *conv) + fft_cpx_free(conv->segmentsIr[i]); + } + if (conv->fft) +- dsp_ops_fft_free(conv->dsp, conv->fft); ++ dsp_ops_fft_free(dsp, conv->fft); + if (conv->ifft) +- dsp_ops_fft_free(conv->dsp, conv->ifft); ++ dsp_ops_fft_free(dsp, conv->ifft); + if (conv->fft_buffer) + fft_free(conv->fft_buffer); + free(conv->segments); +@@ -181,12 +178,12 @@ static void convolver1_free(struct convolver1 *conv) + free(conv); + } + +-static int convolver1_run(struct convolver1 *conv, const float *input, float *output, int len) ++static int convolver1_run(struct dsp_ops *dsp, struct convolver1 *conv, const float *input, float *output, int len) + { + int i, processed = 0; + + if (conv == NULL || conv->segCount == 0) { +- dsp_ops_clear(conv->dsp, output, len); ++ dsp_ops_clear(dsp, output, len); + return len; + } + +@@ -194,17 +191,17 @@ static int convolver1_run(struct convolver1 *conv, const float *input, float *ou + const int processing = SPA_MIN(len - processed, conv->blockSize - conv->inputBufferFill); + const int inputBufferPos = conv->inputBufferFill; + +- dsp_ops_copy(conv->dsp, conv->inputBuffer + inputBufferPos, input + processed, processing); ++ dsp_ops_copy(dsp, conv->inputBuffer + inputBufferPos, input + processed, processing); + if (inputBufferPos == 0 && processing < conv->blockSize) +- dsp_ops_clear(conv->dsp, conv->inputBuffer + processing, conv->blockSize - processing); ++ dsp_ops_clear(dsp, conv->inputBuffer + processing, conv->blockSize - processing); + +- dsp_ops_fft_run(conv->dsp, conv->fft, 1, conv->inputBuffer, conv->segments[conv->current]); ++ dsp_ops_fft_run(dsp, conv->fft, 1, conv->inputBuffer, conv->segments[conv->current]); + + if (conv->segCount > 1) { + if (conv->inputBufferFill == 0) { + int indexAudio = (conv->current + 1) % conv->segCount; + +- dsp_ops_fft_cmul(conv->dsp, conv->fft, conv->pre_mult, ++ dsp_ops_fft_cmul(dsp, conv->fft, conv->pre_mult, + conv->segmentsIr[1], + conv->segments[indexAudio], + conv->fftComplexSize, conv->scale); +@@ -212,7 +209,7 @@ static int convolver1_run(struct convolver1 *conv, const float *input, float *ou + for (i = 2; i < conv->segCount; i++) { + indexAudio = (conv->current + i) % conv->segCount; + +- dsp_ops_fft_cmuladd(conv->dsp, conv->fft, ++ dsp_ops_fft_cmuladd(dsp, conv->fft, + conv->pre_mult, + conv->pre_mult, + conv->segmentsIr[i], +@@ -220,30 +217,30 @@ static int convolver1_run(struct convolver1 *conv, const float *input, float *ou + conv->fftComplexSize, conv->scale); + } + } +- dsp_ops_fft_cmuladd(conv->dsp, conv->fft, ++ dsp_ops_fft_cmuladd(dsp, conv->fft, + conv->conv, + conv->pre_mult, + conv->segments[conv->current], + conv->segmentsIr[0], + conv->fftComplexSize, conv->scale); + } else { +- dsp_ops_fft_cmul(conv->dsp, conv->fft, ++ dsp_ops_fft_cmul(dsp, conv->fft, + conv->conv, + conv->segments[conv->current], + conv->segmentsIr[0], + conv->fftComplexSize, conv->scale); + } + +- dsp_ops_fft_run(conv->dsp, conv->ifft, -1, conv->conv, conv->fft_buffer); ++ dsp_ops_fft_run(dsp, conv->ifft, -1, conv->conv, conv->fft_buffer); + +- dsp_ops_sum(conv->dsp, output + processed, conv->fft_buffer + inputBufferPos, ++ dsp_ops_sum(dsp, output + processed, conv->fft_buffer + inputBufferPos, + conv->overlap + inputBufferPos, processing); + + conv->inputBufferFill += processing; + if (conv->inputBufferFill == conv->blockSize) { + conv->inputBufferFill = 0; + +- dsp_ops_copy(conv->dsp, conv->overlap, conv->fft_buffer + conv->blockSize, conv->blockSize); ++ dsp_ops_copy(dsp, conv->overlap, conv->fft_buffer + conv->blockSize, conv->blockSize); + + conv->current = (conv->current > 0) ? (conv->current - 1) : (conv->segCount - 1); + } +@@ -272,17 +269,18 @@ struct convolver + + void convolver_reset(struct convolver *conv) + { ++ struct dsp_ops *dsp = conv->dsp; + if (conv->headConvolver) +- convolver1_reset(conv->headConvolver); ++ convolver1_reset(dsp, conv->headConvolver); + if (conv->tailConvolver0) { +- convolver1_reset(conv->tailConvolver0); +- dsp_ops_clear(conv->dsp, conv->tailOutput0, conv->tailBlockSize); +- dsp_ops_clear(conv->dsp, conv->tailPrecalculated0, conv->tailBlockSize); ++ convolver1_reset(dsp, conv->tailConvolver0); ++ dsp_ops_clear(dsp, conv->tailOutput0, conv->tailBlockSize); ++ dsp_ops_clear(dsp, conv->tailPrecalculated0, conv->tailBlockSize); + } + if (conv->tailConvolver) { +- convolver1_reset(conv->tailConvolver); +- dsp_ops_clear(conv->dsp, conv->tailOutput, conv->tailBlockSize); +- dsp_ops_clear(conv->dsp, conv->tailPrecalculated, conv->tailBlockSize); ++ convolver1_reset(dsp, conv->tailConvolver); ++ dsp_ops_clear(dsp, conv->tailOutput, conv->tailBlockSize); ++ dsp_ops_clear(dsp, conv->tailPrecalculated, conv->tailBlockSize); + } + conv->tailInputFill = 0; + conv->precalculatedPos = 0; +@@ -307,10 +305,11 @@ struct convolver *convolver_new(struct dsp_ops *dsp_ops, int head_block, int tai + if (conv == NULL) + return NULL; + ++ conv->dsp = dsp_ops; ++ + if (irlen == 0) + return conv; + +- conv->dsp = dsp_ops; + conv->headBlockSize = next_power_of_two(head_block); + conv->tailBlockSize = next_power_of_two(tail_block); + +@@ -341,12 +340,13 @@ struct convolver *convolver_new(struct dsp_ops *dsp_ops, int head_block, int tai + + void convolver_free(struct convolver *conv) + { ++ struct dsp_ops *dsp = conv->dsp; + if (conv->headConvolver) +- convolver1_free(conv->headConvolver); ++ convolver1_free(dsp, conv->headConvolver); + if (conv->tailConvolver0) +- convolver1_free(conv->tailConvolver0); ++ convolver1_free(dsp, conv->tailConvolver0); + if (conv->tailConvolver) +- convolver1_free(conv->tailConvolver); ++ convolver1_free(dsp, conv->tailConvolver); + fft_free(conv->tailOutput0); + fft_free(conv->tailPrecalculated0); + fft_free(conv->tailOutput); +@@ -357,7 +357,9 @@ void convolver_free(struct convolver *conv) + + int convolver_run(struct convolver *conv, const float *input, float *output, int length) + { +- convolver1_run(conv->headConvolver, input, output, length); ++ struct dsp_ops *dsp = conv->dsp; ++ ++ convolver1_run(dsp, conv->headConvolver, input, output, length); + + if (conv->tailInput) { + int processed = 0; +@@ -367,21 +369,21 @@ int convolver_run(struct convolver *conv, const float *input, float *output, int + int processing = SPA_MIN(remaining, conv->headBlockSize - (conv->tailInputFill % conv->headBlockSize)); + + if (conv->tailPrecalculated0) +- dsp_ops_sum(conv->dsp, &output[processed], &output[processed], ++ dsp_ops_sum(dsp, &output[processed], &output[processed], + &conv->tailPrecalculated0[conv->precalculatedPos], + processing); + if (conv->tailPrecalculated) +- dsp_ops_sum(conv->dsp, &output[processed], &output[processed], ++ dsp_ops_sum(dsp, &output[processed], &output[processed], + &conv->tailPrecalculated[conv->precalculatedPos], + processing); + conv->precalculatedPos += processing; + +- dsp_ops_copy(conv->dsp, conv->tailInput + conv->tailInputFill, input + processed, processing); ++ dsp_ops_copy(dsp, conv->tailInput + conv->tailInputFill, input + processed, processing); + conv->tailInputFill += processing; + + if (conv->tailPrecalculated0 && (conv->tailInputFill % conv->headBlockSize == 0)) { + int blockOffset = conv->tailInputFill - conv->headBlockSize; +- convolver1_run(conv->tailConvolver0, ++ convolver1_run(dsp, conv->tailConvolver0, + conv->tailInput + blockOffset, + conv->tailOutput0 + blockOffset, + conv->headBlockSize); +@@ -392,7 +394,7 @@ int convolver_run(struct convolver *conv, const float *input, float *output, int + if (conv->tailPrecalculated && + conv->tailInputFill == conv->tailBlockSize) { + SPA_SWAP(conv->tailPrecalculated, conv->tailOutput); +- convolver1_run(conv->tailConvolver, conv->tailInput, ++ convolver1_run(dsp, conv->tailConvolver, conv->tailInput, + conv->tailOutput, conv->tailBlockSize); + } + if (conv->tailInputFill == conv->tailBlockSize) { +-- +2.48.0 + diff --git a/media-video/pipewire/files/1.2.7/0008-spa-initialize-all-fields-explicitly.patch b/media-video/pipewire/files/1.2.7/0008-spa-initialize-all-fields-explicitly.patch new file mode 100644 index 000000000000..24b99891cee2 --- /dev/null +++ b/media-video/pipewire/files/1.2.7/0008-spa-initialize-all-fields-explicitly.patch @@ -0,0 +1,47 @@ +From 223569dc4a5778bf74f6d072b10e71912f8b5418 Mon Sep 17 00:00:00 2001 +Message-ID: <223569dc4a5778bf74f6d072b10e71912f8b5418.1737052666.git.sam@gentoo.org> +In-Reply-To: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +References: <1993383ddf67e296334c7916d6afc699ee6300c7.1737052666.git.sam@gentoo.org> +From: Wim Taymans <wtaymans@redhat.com> +Date: Mon, 30 Sep 2024 10:06:30 +0200 +Subject: [PATCH 8/8] spa: initialize all fields explicitly + +Patch by Petar Popovic + +Fixes #4325 + +(cherry picked from commit 0ca64277b317b4836beccaa3248ab9055526811c) +--- + spa/include/spa/pod/builder.h | 2 +- + spa/include/spa/pod/parser.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/spa/include/spa/pod/builder.h b/spa/include/spa/pod/builder.h +index 0564d94ea..6d3e9d54a 100644 +--- a/spa/include/spa/pod/builder.h ++++ b/spa/include/spa/pod/builder.h +@@ -49,7 +49,7 @@ struct spa_pod_builder { + struct spa_callbacks callbacks; + }; + +-#define SPA_POD_BUILDER_INIT(buffer,size) ((struct spa_pod_builder){ (buffer), (size), 0, {0}, {0} }) ++#define SPA_POD_BUILDER_INIT(buffer,size) ((struct spa_pod_builder){ (buffer), (size), 0, {0,0,NULL},{NULL,NULL}}) + + static inline void + spa_pod_builder_get_state(struct spa_pod_builder *builder, struct spa_pod_builder_state *state) +diff --git a/spa/include/spa/pod/parser.h b/spa/include/spa/pod/parser.h +index 083f91171..4c1e72acc 100644 +--- a/spa/include/spa/pod/parser.h ++++ b/spa/include/spa/pod/parser.h +@@ -33,7 +33,7 @@ struct spa_pod_parser { + struct spa_pod_parser_state state; + }; + +-#define SPA_POD_PARSER_INIT(buffer,size) ((struct spa_pod_parser){ (buffer), (size), 0, {0} }) ++#define SPA_POD_PARSER_INIT(buffer,size) ((struct spa_pod_parser){ (buffer), (size), 0, {0,0,NULL}}) + + static inline void spa_pod_parser_init(struct spa_pod_parser *parser, + const void *data, uint32_t size) +-- +2.48.0 + diff --git a/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch b/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch deleted file mode 100644 index bde229b80b24..000000000000 --- a/media-video/pipewire/files/pipewire-1.0.7-automagic-gsettings.patch +++ /dev/null @@ -1,80 +0,0 @@ -From acc75b21f653873ec1da68bfa08f2945a8dd09d2 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. - -(cherry picked from commit b5f031bc15524bbfde577290ad9bbadeab77ae8b) -Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> ---- - meson.build | 4 ++-- - spa/meson.build | 6 +++--- - src/modules/meson.build | 4 ++-- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/meson.build b/meson.build -index 0ea256e9b..3353a2aec 100644 ---- a/meson.build -+++ b/meson.build -@@ -343,8 +343,8 @@ 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') -+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') - - gst_option = get_option('gstreamer') - gst_deps_def = { -diff --git a/spa/meson.build b/spa/meson.build -index db0a84425..e37744b08 100644 ---- a/spa/meson.build -+++ b/spa/meson.build -@@ -43,12 +43,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 1b434b7f6..52660253e 100644 ---- a/src/modules/meson.build -+++ b/src/modules/meson.build -@@ -409,11 +409,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) - endif - --- -2.44.2 - diff --git a/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch b/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch deleted file mode 100644 index ac245dd7cc15..000000000000 --- a/media-video/pipewire/files/pipewire-1.0.7-automagic-webrtc-audio-processing.patch +++ /dev/null @@ -1,95 +0,0 @@ -From acd5bf60b9d4a35d00c90bfdca7f89e4ff4a4ff7 Mon Sep 17 00:00:00 2001 -From: Eli Schwartz <eschwartz93@gmail.com> -Date: Thu, 30 May 2024 19:44:38 -0400 -Subject: [PATCH] meson: fix webrtc-audio-processing dependency ignoring - configure args - -Most dependencies use meson "feature" options for optional -functionality. This allows people to disable them, if they don't want -them, through the power of tristate decision-making. - -This particular dependency does something a bit more complicated than -can be described by simply passing feature options to the required -kwarg. It: - -- tries to look for two different names of the dependency -- selects different version ranges, depending on the dependency name -- has a hole in the middle of the versions - -Unfortunately, `required: false` for the first dependency isn't -equivalent to a tristate decision-making process. We have to manually -code the logic ourselves. - -The problem is that when we look up the first name, we cannot pass the -feature option in because if the option is force enabled, then the -dependency lookup fails and configuration never tries to find the older -version instead. - -But also, we can't just say it *isn't* required, because if the option -is force *disabled* but it is installed on the system, we still find it -and build against it. - -One solution would be using meson 0.60's support for multiple dependency -names: - -``` -dependency('webrtc-audio-processing-1', 'webrtc-audio-processing', - version : ['>= 0.2'], - required: get_option('echo-cancel-webrtc'), -) -``` - -Unfortunately, this too doesn't work since we could end up detecting 1.1 -(the hole in the middle) which is invalid. - -Instead, we do a bit of checking for tristate values before deciding to -invoke `dependency()`. This lets us guarantee that disabled dependencies -are well and truly disabled. - -Bug: https://bugs.gentoo.org/933218 -Fixes: #3678 ---- - meson.build | 25 +++++++++++++++---------- - 1 file changed, 15 insertions(+), 10 deletions(-) - -diff --git a/meson.build b/meson.build -index cda60112f..72d275086 100644 ---- a/meson.build -+++ b/meson.build -@@ -393,18 +393,23 @@ cdata.set('HAVE_GSTREAMER_DEVICE_PROVIDER', get_option('gstreamer-device-provide - summary({'gstreamer DMA_DRM support': gst_dma_drm_found}, bool_yn: true, section: 'Backend') - cdata.set('HAVE_GSTREAMER_DMA_DRM', gst_dma_drm_found) - --webrtc_dep = dependency('webrtc-audio-processing-1', -- version : ['>= 1.2' ], -- required : false) --cdata.set('HAVE_WEBRTC1', webrtc_dep.found()) --if webrtc_dep.found() -+if get_option('echo-cancel-webrtc').disabled() -+ webrtc_dep = dependency('', required: false) - summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') - else -- webrtc_dep = dependency('webrtc-audio-processing', -- version : ['>= 0.2', '< 1.0'], -- required : get_option('echo-cancel-webrtc')) -- cdata.set('HAVE_WEBRTC', webrtc_dep.found()) -- summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') -+ webrtc_dep = dependency('webrtc-audio-processing-1', -+ version : ['>= 1.2' ], -+ required : false) -+ cdata.set('HAVE_WEBRTC1', webrtc_dep.found()) -+ if webrtc_dep.found() -+ summary({'WebRTC Echo Canceling >= 1.2': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') -+ else -+ webrtc_dep = dependency('webrtc-audio-processing', -+ version : ['>= 0.2', '< 1.0'], -+ required : get_option('echo-cancel-webrtc')) -+ cdata.set('HAVE_WEBRTC', webrtc_dep.found()) -+ summary({'WebRTC Echo Canceling < 1.0': webrtc_dep.found()}, bool_yn: true, section: 'Misc dependencies') -+ endif - endif - - # On FreeBSD and MidnightBSD, epoll-shim library is required for eventfd() and timerfd() --- -GitLab - diff --git a/media-video/pipewire/pipewire-1.0.7-r1.ebuild b/media-video/pipewire/pipewire-1.0.7-r1.ebuild deleted file mode 100644 index fa900f161e78..000000000000 --- a/media-video/pipewire/pipewire-1.0.7-r1.ebuild +++ /dev/null @@ -1,507 +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 - # https://bugs.gentoo.org/933218 - # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2028 - "${FILESDIR}"/${P}-automagic-webrtc-audio-processing.patch - # https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2061 - "${FILESDIR}"/${P}-automagic-gsettings.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.2.3.ebuild b/media-video/pipewire/pipewire-1.2.3.ebuild deleted file mode 100644 index 2f8576568666..000000000000 --- a/media-video/pipewire/pipewire-1.2.3.ebuild +++ /dev/null @@ -1,515 +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.2: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) - - # 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 -} - -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.2.4.ebuild b/media-video/pipewire/pipewire-1.2.4.ebuild deleted file mode 100644 index 408bee308b53..000000000000 --- a/media-video/pipewire/pipewire-1.2.4.ebuild +++ /dev/null @@ -1,515 +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.2: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) - - # 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 -} - -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.2.5.ebuild b/media-video/pipewire/pipewire-1.2.7-r1.ebuild index bad144148611..63b0b609e159 100644 --- a/media-video/pipewire/pipewire-1.2.5.ebuild +++ b/media-video/pipewire/pipewire-1.2.7-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 diff --git a/media-video/pipewire/pipewire-1.2.7.ebuild b/media-video/pipewire/pipewire-1.2.7.ebuild index abb7bfd0f406..bcfeeafff3df 100644 --- a/media-video/pipewire/pipewire-1.2.7.ebuild +++ b/media-video/pipewire/pipewire-1.2.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -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" @@ -188,7 +188,7 @@ src_prepare() { default # Used for upstream backports - [[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} + #[[ -d "${FILESDIR}"/${PV} ]] && eapply "${FILESDIR}"/${PV} } multilib_src_configure() { diff --git a/media-video/qmplay2/Manifest b/media-video/qmplay2/Manifest index 27fafa0b1af6..b1979784ec6d 100644 --- a/media-video/qmplay2/Manifest +++ b/media-video/qmplay2/Manifest @@ -1,6 +1,6 @@ -DIST QMPlay2-src-24.06.16.tar.xz 2042180 BLAKE2B ba076fc7cb6c77f16529d082690c4d994e53c62cdf994c1e35afdb5255b203d0ccc72db1195730be60471d5fff48deca47e1348b0b41f22e898818206f8c53bb SHA512 3a8a7b99c7861318cfe0a6e096a27bb86f64cfafacf4ec52bdc4e955dd320d6e0f369dcb466dfd9bb73f8d173a2fc768848e7356f03590e429ae30270daf176b -DIST QMPlay2-src-24.12.06.tar.xz 2058012 BLAKE2B adc53f14c9614114b6c401a757278faa76d6e9ad467ab12c994e69d078aa181e4c956c07dac545a0aa91cf2258e82f16710b257ddf3f39b64655d44ef4649952 SHA512 fbfbd477ff44e9b74f1892788d0d13edd26df394fd91956a1db1d5355197c8f4662f844a3279a3efc07f38289c7394507e2cbc3c74c162eb7514badcba6ca331 -EBUILD qmplay2-24.06.16.ebuild 3377 BLAKE2B 0a1decfcdf7c00665f4886f5b027649d071341a373b186328b094eba94411a40cabb60ed6a7027636a619486305b1c74a53fcae426a4944a690bcf2a34cc47dd SHA512 cf9a7cc2bc5d1aa92e12d31954ffec60dd70d5c76eb0bfadc8edd83149f90b437f9f5f863b616608239e5302fdb7032bea50b4f4c6d05ccdec9fca2f0d534e29 -EBUILD qmplay2-24.12.06.ebuild 3378 BLAKE2B 6cc5773edb049423e62502ea823991428a07d737d46a90f1a470ab3214cf7d82212f3706eef61a9981c0c8fa9405b7fcf95101f44cd4019d9c285da38da855f6 SHA512 c6d941954a4887457264c06fec0721b4ae152731bc344923fc77443b35bc38b71c8dc0e5852e7031ad5894359b880762abec56c5c1ebeea4e0bc683827c95c5a -EBUILD qmplay2-9999.ebuild 3378 BLAKE2B 6cc5773edb049423e62502ea823991428a07d737d46a90f1a470ab3214cf7d82212f3706eef61a9981c0c8fa9405b7fcf95101f44cd4019d9c285da38da855f6 SHA512 c6d941954a4887457264c06fec0721b4ae152731bc344923fc77443b35bc38b71c8dc0e5852e7031ad5894359b880762abec56c5c1ebeea4e0bc683827c95c5a +DIST QMPlay2-src-24.12.28.tar.xz 2070576 BLAKE2B ce7197617b61807f86707cf1ae9198133b4b65156f79aa8114fa7daf96aa1519ccb6cca6d02152911b1824c68d919621869787e2f71345aeafcf28ab40472447 SHA512 82c8f9df6fe156557ad26f5b932f773fa676b1df44ad1bb20ba618c204566b02791963bf3b52e6e4e43f9cd259a30c775a56dc5f8d1de4fba6e6c114bbe9ea6d +DIST QMPlay2-src-25.01.19.tar.xz 2072396 BLAKE2B 42336e061294f8528f38fcad8850300b2c3e36857914b23ac086c5e15af83b710346463f5319e2b90c3c869659ef268fecbb967a3dcede0b32227d1ac719585c SHA512 a5745da1c53fd59f8bf47596cf1bb77f62c1af4585265695283153ef5b53f9f294a5fa2c8eb8683300ed13b99c52828a1cf3b5abd354c6bd8713087509589d69 +EBUILD qmplay2-24.12.28.ebuild 3084 BLAKE2B 432ee95d1ff99cae367069a3baa626473da799aa4791fe1f2c8e514a51de42ef15ea16373dc72fd60349d17a131c050ea80889be87cc0b7b2da088b82d31be30 SHA512 8f109dcba277c063c8a5350d1654183186e6ef0d998690cc1bd681a1bb0716ada59d7c56e0213de31443cd5e0ff140465b8a159f35a76d92d7a68c0942d809a5 +EBUILD qmplay2-25.01.19.ebuild 3085 BLAKE2B 46cb6a0cbc3590d97cef7a18d269db0a65c35720e6943fb7aa92c72e50516770de79c3b4e1bf84ae75d17f52ff0fc15a5e5deb0e8281a99370f1463ea2db3021 SHA512 be3c621872fce37f8d233c9e8f4af21cea98c72bbc0eea5f02bb08cc8268e89daadad48c343a27d5dce7299b60f40a0a1e92e8847b0f8dd6de221efb0cbe22ad +EBUILD qmplay2-9999.ebuild 3085 BLAKE2B fdd456b35279670bf6dfdbdf634eeefc29be372d6c9c2d2953da2f1de137b8b2008604cae0c7a56794d15bb22cd9722ee67fa4cb1710888283d1a1f682a49d87 SHA512 65d1c0bc289414278d0294397e02200547874316b867430f1381345b3d1eb3a2eff96453281afe721d862e9a33a9b5e2076a591fd88bb665f52c3d3b46f39025 MISC metadata.xml 1225 BLAKE2B 9fc74ea3d0319bc8822e0ff56968efcbe4ab40b758bfeca900883ed4dbbe80608a6954ffe95a1f61d0dd988ae88afd29d2c4485f3d62b2b839b9fea289fe3b72 SHA512 94f8b05578de759be210af0eb26f15d48e15112b07e586b6336737bd9cb3dd768c7dbefc3b667753239c10bdb1fa6ebdd39d5abe234742ead51f189bf63f8173 diff --git a/media-video/qmplay2/qmplay2-24.06.16.ebuild b/media-video/qmplay2/qmplay2-24.12.28.ebuild index c1b7e6491d5d..6c13763ed45a 100644 --- a/media-video/qmplay2/qmplay2-24.06.16.ebuild +++ b/media-video/qmplay2/qmplay2-24.12.28.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -21,7 +21,7 @@ LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio qt6 sid + modplug notifications opengl pipewire portaudio pulseaudio sid shaders +taglib vaapi videofilters visualizations vulkan xv" REQUIRED_USE=" @@ -30,25 +30,13 @@ REQUIRED_USE=" " RDEPEND=" + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 media-video/ffmpeg:=[vaapi?] - !qt6? ( - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5[X(-),vulkan?] - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - extensions? ( dev-qt/qtdeclarative:5 ) - videofilters? ( dev-qt/qtconcurrent:5 ) - ) - qt6? ( - dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] - dev-qt/qt5compat:6 - dev-qt/qtsvg:6 - extensions? ( dev-qt/qtdeclarative:6 ) - ) alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) + extensions? ( dev-qt/qtdeclarative:6 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) @@ -57,15 +45,14 @@ RDEPEND=" pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) - taglib? ( media-libs/taglib ) + taglib? ( media-libs/taglib:= ) vaapi? ( media-libs/libva[X] ) vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" BDEPEND=" - !qt6? ( dev-qt/linguist-tools:5 ) - qt6? ( dev-qt/qttools:6[linguist] ) + dev-qt/qttools:6[linguist] " src_prepare() { @@ -80,7 +67,7 @@ src_prepare() { src_configure() { local mycmakeargs=( - -DBUILD_WITH_QT6=$(usex qt6) + -DBUILD_WITH_QT6=ON # core -DUSE_UPDATES=OFF -DUSE_ALSA=$(usex alsa) diff --git a/media-video/qmplay2/qmplay2-24.12.06.ebuild b/media-video/qmplay2/qmplay2-25.01.19.ebuild index 1bb22871659a..9c2a54ead43c 100644 --- a/media-video/qmplay2/qmplay2-24.12.06.ebuild +++ b/media-video/qmplay2/qmplay2-25.01.19.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -21,7 +21,7 @@ LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio qt6 sid + modplug notifications opengl pipewire portaudio pulseaudio sid shaders +taglib vaapi videofilters visualizations vulkan xv" REQUIRED_USE=" @@ -30,25 +30,13 @@ REQUIRED_USE=" " RDEPEND=" + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 media-video/ffmpeg:=[vaapi?] - !qt6? ( - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5[X(-),vulkan?] - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - extensions? ( dev-qt/qtdeclarative:5 ) - videofilters? ( dev-qt/qtconcurrent:5 ) - ) - qt6? ( - dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] - dev-qt/qt5compat:6 - dev-qt/qtsvg:6 - extensions? ( dev-qt/qtdeclarative:6 ) - ) alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) + extensions? ( dev-qt/qtdeclarative:6 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) @@ -57,15 +45,14 @@ RDEPEND=" pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) - taglib? ( media-libs/taglib ) + taglib? ( media-libs/taglib:= ) vaapi? ( media-libs/libva[X] ) vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" BDEPEND=" - !qt6? ( dev-qt/linguist-tools:5 ) - qt6? ( dev-qt/qttools:6[linguist] ) + dev-qt/qttools:6[linguist] " src_prepare() { @@ -80,7 +67,7 @@ src_prepare() { src_configure() { local mycmakeargs=( - -DBUILD_WITH_QT6=$(usex qt6) + -DBUILD_WITH_QT6=ON # core -DUSE_UPDATES=OFF -DUSE_ALSA=$(usex alsa) diff --git a/media-video/qmplay2/qmplay2-9999.ebuild b/media-video/qmplay2/qmplay2-9999.ebuild index 1bb22871659a..389e940a75d0 100644 --- a/media-video/qmplay2/qmplay2-9999.ebuild +++ b/media-video/qmplay2/qmplay2-9999.ebuild @@ -21,7 +21,7 @@ LICENSE="LGPL-3" SLOT="0" IUSE="avdevice +audiofilters +alsa cdio cuvid extensions gme inputs libass - modplug notifications opengl pipewire portaudio pulseaudio qt6 sid + modplug notifications opengl pipewire portaudio pulseaudio sid shaders +taglib vaapi videofilters visualizations vulkan xv" REQUIRED_USE=" @@ -30,25 +30,13 @@ REQUIRED_USE=" " RDEPEND=" + dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] + dev-qt/qt5compat:6 + dev-qt/qtsvg:6 media-video/ffmpeg:=[vaapi?] - !qt6? ( - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtgui:5[X(-),vulkan?] - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - extensions? ( dev-qt/qtdeclarative:5 ) - videofilters? ( dev-qt/qtconcurrent:5 ) - ) - qt6? ( - dev-qt/qtbase:6[concurrent,dbus,gui,network,opengl?,ssl,vulkan?,widgets] - dev-qt/qt5compat:6 - dev-qt/qtsvg:6 - extensions? ( dev-qt/qtdeclarative:6 ) - ) alsa? ( media-libs/alsa-lib ) cdio? ( dev-libs/libcdio[cddb] ) + extensions? ( dev-qt/qtdeclarative:6 ) gme? ( media-libs/game-music-emu ) libass? ( media-libs/libass ) opengl? ( virtual/opengl ) @@ -57,15 +45,14 @@ RDEPEND=" pulseaudio? ( media-libs/libpulse ) sid? ( media-libs/libsidplayfp ) shaders? ( >=media-libs/shaderc-2020.1 ) - taglib? ( media-libs/taglib ) + taglib? ( media-libs/taglib:= ) vaapi? ( media-libs/libva[X] ) vulkan? ( >=media-libs/vulkan-loader-1.2.133 ) xv? ( x11-libs/libXv ) " DEPEND="${RDEPEND}" BDEPEND=" - !qt6? ( dev-qt/linguist-tools:5 ) - qt6? ( dev-qt/qttools:6[linguist] ) + dev-qt/qttools:6[linguist] " src_prepare() { @@ -80,7 +67,7 @@ src_prepare() { src_configure() { local mycmakeargs=( - -DBUILD_WITH_QT6=$(usex qt6) + -DBUILD_WITH_QT6=ON # core -DUSE_UPDATES=OFF -DUSE_ALSA=$(usex alsa) diff --git a/media-video/simplescreenrecorder/Manifest b/media-video/simplescreenrecorder/Manifest index aa23a8ac3518..48fdd0a485a1 100644 --- a/media-video/simplescreenrecorder/Manifest +++ b/media-video/simplescreenrecorder/Manifest @@ -1,5 +1,5 @@ AUX simplescreenrecorder-0.4.4-ffmpeg5.patch 2540 BLAKE2B 5551255312733fca5641ffbed46e332181d02147dafaa9f6831df967b38cb0d6f05fa2d0d910f78fce1cecb40e1db24e1913b8ec71a7e05a3a7ef0ee761e0427 SHA512 823bfdb35b49bd63a7a2f294695f3adb986d1d018d892db68ada0f08cb9d917ddac86cc258ed7520c44ca53b1194164f58e7e4d4ffdd58a5cfeda4590dff5ec0 DIST simplescreenrecorder-0.4.4.tar.gz 1961269 BLAKE2B 05c7635840f8461ab324f740f0cc554eb544ed91b00cdf39c80f861e6a8631f59afbdcc9fe958830b0f1e31eedb90f11d29c114ce4bbb612f1756264502f069f SHA512 a90549a2709490482d70559073e505e669417a93abf16124b98c021e6d2bf08b91b53eb68e006df4f80fcee9fe4da2624bf8de979618953adb3f37eb1d471525 EBUILD simplescreenrecorder-0.4.4-r3.ebuild 2842 BLAKE2B 2c176abddd8f22b7d7e62c418617cfa02db498275809f10fc13d1a7618b9aa87ad3c86f72977fa3a803fa0925012c36700b00466125c86a1803c337e4874bd02 SHA512 c2b63fef2f92aefbd16cad5796c62c84e2cf0e0fb5e1d805816ef7d4f98f8789b2216312f369b5476c2201276b9745f5e92c3b3f23010fd912bae92aa8b3589d -EBUILD simplescreenrecorder-9999.ebuild 2798 BLAKE2B 3f4ad8dcf5ae878014f06b773293070f3a1119814d7634f76e4ed6e74e08d09723522930e10f2a2ed9109a519b7799770aa89a6c3fd939b6e1c4881ac724cbc1 SHA512 6c7321a3381104e9023fa9d1dfabb7066cc8c2affcca7cacf7afcbf9e480667aac8dca9c031236f6471def9cb3001c8de067ecc34971e8776142698f18711f5b -MISC metadata.xml 420 BLAKE2B 2a645626005a1656fb4365970626c8b936ad6c8bfe501bd16fb2fc0a3450b56691ea69cf67ddeb3a5bc4aef2f544ddd300a5a8ae7801c2e71724f1e4d361d70b SHA512 68b6a0da9153a989618fbb7249d04e9d92cda87be16f8ecbdf3dbfc1af65d48ff7b15472087904e2dce47087eb6dc73cc1ebee6b49fcc63d492a5583c273830f +EBUILD simplescreenrecorder-9999.ebuild 2742 BLAKE2B f2f08c21d1cde05aaca0efa41f95f9efef1d54c8058e868256ca0b061ddd46eff4a894b3fa021abd5b4b351ee75faf7d3f64ef85c1f4aaffe403351ba1a8e8c0 SHA512 096f676a58f730b4b97721acdcd67f4c36735381207e1dc9f69144a52be731bc8e408b86f08a2d029e4f5f89b2b684705bf6c58885c3a394839a38eb631523e8 +MISC metadata.xml 333 BLAKE2B 1c60fe7013eaaef8fbae76b4764b7dff62410a446cc8e620a463a7f5e44792efbd2c7f6bedd38477f0fe080c8c7ab983eed30ef5bfb6aeaf1c5a2eea68ef8a5f SHA512 022e3e9394740eff0e0cccc12a374236d882cbe5dd8cc8b53e390859556cd87acb722e6ebeb5a8d68822e81446ead0fab2b7ebe2792e77567c6ddd73df9d1020 diff --git a/media-video/simplescreenrecorder/metadata.xml b/media-video/simplescreenrecorder/metadata.xml index 633b6c6df0f1..78d76538f2a1 100644 --- a/media-video/simplescreenrecorder/metadata.xml +++ b/media-video/simplescreenrecorder/metadata.xml @@ -4,7 +4,6 @@ <!-- maintainer-needed --> <use> <flag name="asm">Enable x86 assembly optimisation.</flag> - <flag name="vpx">Enable VP8 codec support via <pkg>media-libs/libvpx</pkg>.</flag> </use> <upstream> <remote-id type="github">MaartenBaert/ssr</remote-id> diff --git a/media-video/simplescreenrecorder/simplescreenrecorder-9999.ebuild b/media-video/simplescreenrecorder/simplescreenrecorder-9999.ebuild index 5816cb829b9c..2bc6b064fec8 100644 --- a/media-video/simplescreenrecorder/simplescreenrecorder-9999.ebuild +++ b/media-video/simplescreenrecorder/simplescreenrecorder-9999.ebuild @@ -1,21 +1,21 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PKGNAME="ssr" +MY_PN="ssr" inherit cmake-multilib flag-o-matic xdg -DESCRIPTION="A Simple Screen Recorder" +DESCRIPTION="Simple Screen Recorder" HOMEPAGE="https://www.maartenbaert.be/simplescreenrecorder/" -if [[ ${PV} = 9999 ]] ; then +if [[ ${PV} == *9999* ]]; then inherit git-r3 - EGIT_REPO_URI="https://github.com/MaartenBaert/${PKGNAME}.git" + EGIT_REPO_URI="https://github.com/MaartenBaert/${MY_PN}.git" EGIT_BOOTSTRAP="" else - SRC_URI="https://github.com/MaartenBaert/${PKGNAME}/archive/${PV}.tar.gz -> ${P}.tar.gz" + SRC_URI="https://github.com/MaartenBaert/${MY_PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="~amd64 ~x86" - S="${WORKDIR}/${PKGNAME}-${PV}" + S="${WORKDIR}/${MY_PN}-${PV}" fi LICENSE="GPL-3" @@ -25,10 +25,7 @@ IUSE="+asm jack mp3 opengl pulseaudio theora v4l vorbis vpx x264" REQUIRED_USE="abi_x86_32? ( opengl )" RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 + dev-qt/qtbase:6[gui,widgets] media-libs/alsa-lib:0= media-video/ffmpeg:=[vorbis?,vpx?,x264?,mp3?,theora?] x11-libs/libX11[${MULTILIB_USEDEP}] @@ -43,10 +40,10 @@ RDEPEND=" v4l? ( media-libs/libv4l ) " DEPEND="${RDEPEND}" -BDEPEND="dev-qt/linguist-tools:5" +BDEPEND="dev-qt/qttools:6[linguist]" pkg_pretend() { - if [[ "${ABI}" == amd64 ]] ; then + if [[ ${ABI} == amd64 ]] ; then einfo "You may want to add USE flag 'abi_x86_32' when running a 64bit system" einfo "When added 32bit GLInject libraries are also included. This is" einfo "required if you want to use OpenGL recording on 32bit applications." @@ -84,7 +81,7 @@ multilib_src_configure() { if multilib_is_native_abi ; then mycmakeargs+=( -DENABLE_32BIT_GLINJECT="false" - -DWITH_QT5="true" + -DWITH_QT6=ON ) else mycmakeargs+=( diff --git a/media-video/smplayer/Manifest b/media-video/smplayer/Manifest index c37ace3284da..78f320e5d2f6 100644 --- a/media-video/smplayer/Manifest +++ b/media-video/smplayer/Manifest @@ -3,10 +3,6 @@ AUX smplayer-16.4.0-zero-bidi.patch 489 BLAKE2B 50f535154f771e535c244aff2dbd27b6 AUX smplayer-17.1.0-advertisement_crap.patch 1982 BLAKE2B 22a5027e9d20dca47fed1176e13cd9f8f5c912f51352d07f8fc0dd1f0850dc241483e22524c9fab2b9e20e67d1527f391a791afa2ac96285c4a199801ab96b65 SHA512 7bc1a3e9fb916d3a7e0c4f9bba8bb2adb7a3822e34694f79501e228f700b27633cac2eba237ab4af221c50f07295ecab3093c2a7033578a3e0a91a1e6449570d AUX smplayer-18.2.0-jobserver.patch 423 BLAKE2B 04452fa5992dd2cef5be64dc9a9c78ca775336174dbef69e6054361173886be26d941cabfe2c5b486a05f2b3bee7029b439652d4dfb10e5651a7db68db8b70af SHA512 6bdb6d57be84c1d020c6f2e2f547eda9a0118bfcd0e4d2cdbb940501a0853ec388f359e04a52b8ff9c6c6b38d60f3837ed2c2e127a4df5bf79751486d9ed9ed6 AUX smplayer-18.3.0-disable-werror.patch 367 BLAKE2B 68b0f5b9cb34afb3843de4dd366a0a2e77eea881277d7b8a7928e851d2456f8fe5220ee50ae77296b622187758b7f6f3a4c298c0400becfee0d2fa074e7706e3 SHA512 b330aee54397a3fce5cda3a1244918351831ffe37cc7d45bcfa93384952bdce3166875afd5cd4bae9f1d6e83281b6b6bfc3ad777317a0b2c6c5dcc5593ddcb54 -AUX smplayer-23.6.0-mpv-0.37-resume.patch 524 BLAKE2B 03a63405a339e954b32ff9278cbdb7edbb16ac4c97b828d97e70d3ac1f8bdf6fabdd47e4efbe9b0e73be19550a5331ebac90ce51854e5d859db8dde734fa722d SHA512 17a0d9ac6211cbd9b56c8afd57a5bb22b2c1e8f883f569de5d55d1949b1aa1c486b241af68ac90f80eeb19ffa3706fba0906f415676c3433d61a340a30f3d55e -DIST smplayer-23.6.0.tar.bz2 5164535 BLAKE2B 27200ad658a2acfc3c93c48ed59fca2333b5935d5b7e955cb12dd0c33566aaf0288c68081a68578904076e467bb3b39f9a5bb702d7ad8be0474aa400e40ce6e0 SHA512 097085ffae11b0d065f0822e36466f3e934d4484de29146deba66de14bfd4abcaa8dfd91aa5890921f336a99c3392650e932102812bf401a843d7a86dfc4996d DIST smplayer-24.5.0.tar.bz2 5221961 BLAKE2B 6c088b87508ada09fb8712610da76403fbcc9f0d3f2ce1908d99560400aac8351b08453c77f2cf64f13625b09e4d748a7f0a64458e6429aeb29ce1ae49ebcaad SHA512 0de968babbb99a92ef2721d8b30d336433bb99745212da0d7dadec9ec389da0be6cdc5b461960662b4342f80ee6407a814bc6abc3372c07a75ee6804e705851e -EBUILD smplayer-23.6.0-r1.ebuild 2991 BLAKE2B c1da6177ae5f5783890ddcef9f29f929cc7b343862aff97ba2ed331d54e3f2b3dfea435389f497593ab743a4600edb5a5d7c14d9d69a57fcba7adabff08e119d SHA512 bbfad3d0dbcbf98cc41a02229d3d7fceacbf49923cdcc3ad169a97fe7ff7ceff276d4c18f174d04ab0f55c55613bbdbcd9d5630c11622e42d516b1ebed1d3974 -EBUILD smplayer-23.6.0.ebuild 2949 BLAKE2B 755329f4f39cbb197f0b649117711b993b7e47ac5f5984a15012dda4984f656b08af6c22b9a66faf606d102e1681a8073848189e89f2e13b0d6d00bcf9c33ea1 SHA512 0350083c5965481bfd220303f33ad4a3088e4ae16c510bd16ced76c046fd0d66c391325ec55481b9d9bbee4ed1cf87a5a80271135c1d7212b05a67eaa0184725 EBUILD smplayer-24.5.0-r1.ebuild 2955 BLAKE2B cb0c8335c6cff8cbc32ea3002e243ebf89d7b380ba9297656f3e46d853caef681ffbcca7b0cec2edfd6d3c1e8769bb1947239ad985813ab3c497d0c91922eab4 SHA512 2908ffd17d6bc8167d2d0228b81fa1b67b0c79aaa1f8f5bfcc771b5385c40cc9d309e0da7d74ff7223e1d44cbbd84e88854a3ecbb953458b98a7e8cb29adaf28 MISC metadata.xml 411 BLAKE2B 81e72a005d2f58e43de29d290792014d13c8c79ceffab567898d376cdd9fd36a14a88de9a6d9ca8fe9c323f20a3b74a655430557cb3e2ffc2c07354322dbcc36 SHA512 62f0495b08725281602dd806248170300e75c238a574006c11eaf0ac3171726b0efc88d4791510eb1db1da7d124d47e89914822534833e454f595e5298a341f3 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 deleted file mode 100644 index d2ff738e76d8..000000000000 --- a/media-video/smplayer/files/smplayer-23.6.0-mpv-0.37-resume.patch +++ /dev/null @@ -1,15 +0,0 @@ -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/smplayer-23.6.0-r1.ebuild b/media-video/smplayer/smplayer-23.6.0-r1.ebuild deleted file mode 100644 index b0f6f1eccfd3..000000000000 --- a/media-video/smplayer/smplayer-23.6.0-r1.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# 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-23.6.0.ebuild b/media-video/smplayer/smplayer-23.6.0.ebuild deleted file mode 100644 index 0e610c410625..000000000000 --- a/media-video/smplayer/smplayer-23.6.0.ebuild +++ /dev/null @@ -1,125 +0,0 @@ -# Copyright 2007-2023 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" -) - -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/sonic-snap/Manifest b/media-video/sonic-snap/Manifest index 3eabec3b09af..af8e0b169532 100644 --- a/media-video/sonic-snap/Manifest +++ b/media-video/sonic-snap/Manifest @@ -1,3 +1,4 @@ +AUX sonic-snap-1.7-fltk1.4.patch 177 BLAKE2B fd4db66d63312303ed626a9d6204b1b2c07ed96554b45898be21f5be6923adf8e0f97dec5daa988bef2c5b3b354923eb236b27b969d141d2c740e8b76b8eeaae SHA512 3a1e93caf055fec8c1046792311e7a4dd86f27df21c564a26e8a912fda0d9fa92207cd0c4f2a8e92aacf069a19daa8a4802d77e1fbf93e79fcb7975b12bdc00f DIST sonic-snap-1.7.tar.gz 16760 BLAKE2B d3bc2d55d12aa0e02949a815cb3c1b2402ad7980b7d52c240fef513b3aadd3399d113fc6b8ab7a727fc6cfd8cf6c158887fe0be64f5bdc9ed585f190d7ab39f9 SHA512 0c2fe5a7403ac003aad308d064a4d981a25f52e478943125090cb96d337aebe0a9fef160217b4f37cfd1991c0517f5f869f60f4c93a6abe9a127821f7906a664 -EBUILD sonic-snap-1.7-r1.ebuild 1644 BLAKE2B e9f1e76b1d8545363b6e8d41f849149378d749478860b4b8a8508cf3f0f3f0ebf5af842bb1d1e915434d24a23f45a9ba0cbbf97b8e3656cb5addbe95589d4293 SHA512 c9c2eac6d5acbf348cfe0152999430479acd065687b91871c0264e5e595a551b349a00851bed5be58dd656b07c00b097e617b6432dfc0d029aa737a25b4af720 +EBUILD sonic-snap-1.7-r2.ebuild 1692 BLAKE2B e7cfac2b65e6f782ed748b9f48fc9e308047c4f962a3ea33ed7e762c9afdaddda7ab4d9f731807aaa84c22a83ce12efbf33885c28126a521bff1d17d09716a4a SHA512 59d1401bf748a7ad89beed6c415656231177101df584dd13be2b82e76989c2f850030e9701e1c2ad732e9481f3967e4212dd6ed927e19c2e67e3da83fb0b4679 MISC metadata.xml 256 BLAKE2B ff2b5536809c94dc64867bca73d779a31bd343559cd65520c9b5684091734b3ccf7bf495335890df5533857480794cb3258566e5836e8dce7514b6833ba93f37 SHA512 b7f3d0564d06254ff552beec9594236b84ebc3ad87adab673f68963bcc4dfbf2e29b401e75486ba41b9b526de74b73f65e9d5e901221f810363497aa694c8567 diff --git a/media-video/sonic-snap/files/sonic-snap-1.7-fltk1.4.patch b/media-video/sonic-snap/files/sonic-snap-1.7-fltk1.4.patch new file mode 100644 index 000000000000..f081d51aa426 --- /dev/null +++ b/media-video/sonic-snap/files/sonic-snap-1.7-fltk1.4.patch @@ -0,0 +1,6 @@ +Deprecated compatibility symlinks are removed. +--- a/sonic-snap-gui.cxx ++++ b/sonic-snap-gui.cxx +@@ -22 +22 @@ +-#include <FL/fl_file_chooser.H> ++#include <FL/Fl_File_Chooser.H> diff --git a/media-video/sonic-snap/sonic-snap-1.7-r1.ebuild b/media-video/sonic-snap/sonic-snap-1.7-r2.ebuild index 0d703945f44d..117786115bce 100644 --- a/media-video/sonic-snap/sonic-snap-1.7-r1.ebuild +++ b/media-video/sonic-snap/sonic-snap-1.7-r2.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 @@ -16,7 +16,7 @@ IUSE="mpeg" DEPEND=" sys-libs/zlib - x11-libs/fltk:1 + x11-libs/fltk:1= x11-libs/libX11 x11-libs/libXau x11-libs/libXdmcp @@ -31,6 +31,10 @@ CONFIG_CHECK="~USB_SN9C102" ERROR_USB_SN9C102="Please make sure the SN9C1xx PC Camera Controller driver is \ enabled, under V4L USB devices, as a module in your kernel." +PATCHES=( + "${FILESDIR}"/${P}-fltk1.4.patch +) + src_prepare() { # fix bad assumptions sed -i \ diff --git a/media-video/vlc/Manifest b/media-video/vlc/Manifest index a7efe308a441..b34e410a7a15 100644 --- a/media-video/vlc/Manifest +++ b/media-video/vlc/Manifest @@ -2,15 +2,19 @@ AUX vlc-2.1.0-fix-libtremor-libs.patch 453 BLAKE2B 526934642617384224faee8d26c0a AUX vlc-2.2.8-libupnp-slot-1.8.patch 725 BLAKE2B eb217ef57f0709fa1d0bdf1644610588f373e17d18c2642ee6489ca00311772307d8fc67a07ecc8d29810b80aa8f14c40298285c3319d8ddede2552d28d2837e SHA512 890b91405cbf6105c932566fd7799fdccd1b27f1e0df0c6dae1511aeead2c28eb5fea7642b01af1abbcf546aae0559408c0ddf2ec82c92809f3b02d1d477bb51 AUX vlc-3.0.11.1-configure_lua_version.patch 1598 BLAKE2B 589c90d0c805ff516b7957e9b9fc6931674bc23a8aac15eb27351e9bae00aa55bffb3e62a87813714d8f0d64effa16c06680f10d00ecbe4207d5b26d37c4e5ac SHA512 0f24f54add360164417e01b2899ead07cc9f37cdc872387c7a9c350890f55c6fbec35f99e1e85a96309d7154359ffb99bc2ab7c8151adb080bb1531f88d987e6 AUX vlc-3.0.18-drop-minizip-dep.patch 1024 BLAKE2B f00df51fe46743b760785151fdc4b770347331b80fcb4208860b4cf99555504e634959384c236a3539c9235547d5eb54c0a1b18e0183b0864e0c4fc070359e15 SHA512 5911e0e64d07fd23a67b142adaec684c581125f06295a64dee9aade31e780b6010538007c7477ea9ef69e4e7b4aeb1cc30891dd22bf273c18407f694111a66f8 +AUX vlc-3.0.2.1-vdpau.patch 9068 BLAKE2B 072ab73cde74dc6b6a592218914f5b08f59fff94bebcc9c9ec8e4fcdd6288611e544b8c6ddab65bfa9d01e50800f0fcc814bf598733a29e4c3d94f899d3ae5b2 SHA512 28e10fd80a9888f85cf7b75e3df40c9b9f44d6a1d6bf3ab14a37b79767142fb2d81f40f3f806d86fbc0db1f0a995352ef47b20448dbbcaecc03f764135dba21e AUX vlc-3.0.21-freerdp-2.patch 8386 BLAKE2B ad8abf54cbf62cac4e67a000c40595a2f1ed13d57c8039aa7a9309dbe3d213e3d6838d31faf2f36d031aa25fd1a5f97fc26435b1dc4e7e082a2e517ed629b285 SHA512 7a43186c6f37aa4d4b2b971f91789c4a9c8d5d192cd9c1ed3fa9609b2d713f47420b983865d0906ca0dd6d15bc1ae6b22e84b03909c0c8e0024b779362d26c92 -AUX vlc-3.0.21-vaapi-without-ffmepg4.patch 692 BLAKE2B 6e9194d387e5b4643fb90d06fed809834e3a2c8e8f7e8a43b4d0866b73d5c2bf479181b83ae6e1b0a3b7971494fb478577a4385870c559be44961bed0d5bc9df SHA512 709450c0f51000618a7341cca7e4ffe6eac42a76a4cb7092ed197fbe28a6d6502c6bb234d6b0579ca3eb69bd918d1217a691ad2aa2aa7869c383ca77939ae83f +AUX vlc-3.0.21-vaapi-w-ffmpeg5.patch 5223 BLAKE2B 762df3b6e2857ab985b044fc69b9c328c488faff4ae8d70c43996d01171faaa3fc1dd157a2240f35b8ac0e2ac0205b1236759f8d5b58ba8bca9d07bacc29149f SHA512 3dc0253d5e1c6fa60c6e32f4f8e024f2c953b2ea87fb324550fa12a1f5420a679274927d5922d78097135d422fc7370ff85b28bafddd7cf60070bd8fa3f62bba +AUX vlc-3.0.21-vaapi-without-ffmpeg4.patch 692 BLAKE2B 6e9194d387e5b4643fb90d06fed809834e3a2c8e8f7e8a43b4d0866b73d5c2bf479181b83ae6e1b0a3b7971494fb478577a4385870c559be44961bed0d5bc9df SHA512 709450c0f51000618a7341cca7e4ffe6eac42a76a4cb7092ed197fbe28a6d6502c6bb234d6b0579ca3eb69bd918d1217a691ad2aa2aa7869c383ca77939ae83f AUX vlc-3.0.6-fdk-aac-2.0.0.patch 3436 BLAKE2B 022201ed10fef189feeb36f44ab4194ab7994e4fdd8bad922070b54688d34d051fac28177a0e648d55670e0b9f0c6b45f9a05650476b0ae12ebfe759dd561e28 SHA512 68964adda04cd88e80b586984f1af0cfdccff5dbf8529070d5ab985b23402dfb7380b5d39eacfea433c1ba03434139e4f394c1c25d6b426489883d3a42cb7b5b AUX vlc-9999-configure-lua-version.patch 1840 BLAKE2B 1b9f11c05ed58e12616732c73a8418917870515f9612467b2839e8414f553ba3d0d9ede4c38e15957cc9b271aecae9364961103dafd72b80c6088a826f18777b SHA512 fa6350a02a92b65e5cc1c7b8e65e14045ca279d9d6f3f1ae255ab2a8ac88b3b3ff16102aa7e91e51e65e2500712bd7fccbdc987e760a5753581098afb1259eb9 AUX vlc-9999-fix-libtremor-libs.patch 480 BLAKE2B 86102dc088705f546185023b2f941520b5435f852e0b0e7cdb8763e15df645cdc794087c188fb17ee331be7ba4d953311276583886e3fe0f93d6de32e63e3207 SHA512 93893a0accecc3470f33e505ef2ce86aeb5f2a3a6524adc7de354366bb8e51def2d67957be4ea705ff20c1510e7274691e587e70740d4b3657b35f5c91de7280 AUX vlc-9999-libupnp-slot-1.8.patch 763 BLAKE2B 6bc8cf46f029db27d6d30d96e871d3bcfddee004e4e8469e1526a6a38fb5cc11a24a19888443e5f9062d7145665d594e142c12f3a9693967f195bab3b33ada38 SHA512 dd3375997a1935d3a227231785f35e300e3f992034da6a9c3019e28c68c1f005cbdd67190672264b342abc719e69005f965599f7af975e2bbd4cfccd89e3770d +DIST vlc-3.0.21-taglib2.tar.xz 12620 BLAKE2B e0211789acc6c0381307bd154775ab32c0c403c9e245a965774667f9a83e801436b8609574f3152cde714e416d1826eb2b197349a54dfdf8eb86fc6ee3dd6f4e SHA512 f5b6691c36993b7f8002ff5c244f8e73b8fa8aeb09ef83f38f51ff9fda67c8204551cb2d762e16364229fdca6d7284a47c4d44d0a98b1d3c7759923500d04ffa DIST vlc-3.0.21.tar.xz 25649288 BLAKE2B 0ad05282d624611ba8a2b6ca062c68aabeac8f37410dd427cc9b8c0d107af48ed203b73978e2fe83e8171ea6b78caa51394f3497061b561447dbb41058e1af9f SHA512 cb1af76c8056648c331d7e6e0680d161ed1849eb635987504f45eae02531e9b432651034317fa7e02b0722905dfb9f0f5dad67b5924cc62edcaf0d173ac36aee -EBUILD vlc-3.0.21-r1.ebuild 13629 BLAKE2B aed2c09a3d1705ca0a6d778927e6446510349e2f1e95f412c7af7edc106662f390fd6f1ed8a1a192212570247bd1ead67f8e99f6a3bd402c9742aad508ac0675 SHA512 696a8c81c719597ae9721fa0590b6ef6ab3c587f6e261d602641f49e2cbdf9e66f71155d6257ee52cc29d83aeedcc84afaa40400f2a11a2eefed2c01b33082d9 +EBUILD vlc-3.0.21-r1.ebuild 13683 BLAKE2B 37f55aac807012f5bbafdb2c0fae98340aea5aa4104f284c54973033050542ab5cce4a67da274535cb91d33aa0352c5dfd3732f726b3679f1e79351604bf77f1 SHA512 0dff4e8db522228dc975dcb027bd08581dbcb351da4707eff414f7525b2d7fd0204c2f85e41612ba3ef6448e4a26a6ce66516985fb8d89282bc1901db060b29f +EBUILD vlc-3.0.21-r3.ebuild 13389 BLAKE2B d3835c67c3eb74b405c1f31f14ee8392c8f2fb6956c1c859896b9a166990c3422e9262557761661a6bb7237b5f3b055a7e68faddf25ae519e6e375e6c30e30a0 SHA512 55625237298dd96e2f404f8800c9c3add4ffc37509db45874e33579ff32017561458b72cf4215293b8a8b2d0bdc2a4e58e3e720779de65b060737e37a53c572e EBUILD vlc-3.0.21.ebuild 13632 BLAKE2B cdf1b077440ba3400b7504018eb5d3af65f2cd18232a2c12072331dedd81ee5a0ddf245145cc55915807c297c07681485cf785361e0dc371261652a0467a3a46 SHA512 ef40a8bc248737c874527774e29107d8d89d36d5cc251ada4ea65c12b7194db850c207a06f982eca2df3982c37f7ac2dc3aca5615be335bfe0ef3a18f93de768 -EBUILD vlc-3.0.9999.ebuild 13634 BLAKE2B 802356e9f6fa00b27c7eb154daed99545907f8cea0eac931201380ac3f6cf36b3ad561ed6702b37193f513529f924fc396602f2cb3305bd1e7a32cc3db4c2a02 SHA512 d702509a432f46f15ebac1ad572f285a232075b7a1fa5e0e54b47a44bc8997b41e7d3b5d9f6a93312bb94f8dff99d0809d33c9ece01d72d00f67b90e65674182 -EBUILD vlc-9999.ebuild 13532 BLAKE2B 111e062ea2274e308c3c78cbf41fbfc71137438523ab0eee21d8b6b7e5c42ddfd22dfa71ad91d5df822381c146f6e4028c4deab13a0c7bc81de048bb1c0b67ea SHA512 a7a7c23a4c9ca063009ba2665219dadd2eee58a037e7f56c5ba3e7aae59eb576a7fd91d92df7b6bd7e1aa32e43ce844469a3ce084ec66e7ad9f03eaa32aa40c8 -MISC metadata.xml 4815 BLAKE2B 90ef1af4058b83694f6b233c0b2daf46f45f6d23517103923b324db6ca167bb0e04226cae62162fc86a39bca5666b969b13f9d53d8b967a14af2595943d8c4e6 SHA512 544df4a6e4ed05f055f0aababa8c396932440f21336705818cbbce1397d0810ea5050ec16cdf2e3ebf0d7d63b70e77cd07c35edffeecde182ae2ecc571a1dbf7 +EBUILD vlc-3.0.9999.ebuild 13552 BLAKE2B 6d8444fecd25f4941d4905b43cb8923ed0e5525eeeb3cf165096c4cea4fbbf95b118fcea6ca011657a3b1afc6933f85867d790efdd93bc5055a68eff3224f95c SHA512 8cfc23efe7b0fafb939425d6ee65c31442c161032d7bb0603e33fb5fdcf346c42227e548cf1e74ef4b056f9187c22700c96b46174c37085990ff88981e29a252 +EBUILD vlc-9999.ebuild 13528 BLAKE2B 6f2b1d1b5a708565c66d13b0e519bddfdc51ead8b4f28cb9e62fdbc7d6496c817fa413d488a86f21a84915e1b60bfaf10f0ec22c44744d625b40659dea70a362 SHA512 baa9aaf6056b6b62942804dc10ab9074bc9ad48200b9d6f92d8ace9b23f7791fce5658ca86d9bff61419a1205262449d7f08ed31ab3da7687d13dc8ad2cda61c +MISC metadata.xml 4733 BLAKE2B 820fb938c3ca3079c48596f131adb1298ee98c9820921780ee4acf322c4475bab7c31de16688b5668a715c496857c572778bd7b4b5d3f3dcbb61b08fd0db8574 SHA512 d74d916645ae6a3b0fb8d6c6f0a2a35e24ab9a829b790d33d9f80e2fdd3165db8ffe2747e82e698bce7b9974384704a380dd2f4f50d8647bcaa91a016d1522cd diff --git a/media-video/vlc/files/vlc-3.0.2.1-vdpau.patch b/media-video/vlc/files/vlc-3.0.2.1-vdpau.patch new file mode 100644 index 000000000000..884c1fcd1eb2 --- /dev/null +++ b/media-video/vlc/files/vlc-3.0.2.1-vdpau.patch @@ -0,0 +1,174 @@ +https://bugs.gentoo.org/946178 +https://code.videolan.org/videolan/vlc/-/issues/28374 +https://code.videolan.org/videolan/vlc/-/merge_requests/6454 +https://code.videolan.org/videolan/vlc/-/merge_requests/6496 + +From 056d7349a559cb63b456505bb11c08a4910452aa Mon Sep 17 00:00:00 2001 +From: Alexandre Janniaux <ajanni@videolabs.io> +Date: Sun, 1 Dec 2024 06:25:29 +0100 +Subject: [PATCH] Makefile.am: enforce pkglib dependency order for install + +During installation, no dependencies existed between the targets being +installed and the targets being relinked against the installed version, +which made the following race condition: + + ../doltlibtool --mode=install /usr/bin/install -c libvlc_pipewire.la libvlc_pulse.la libvlc_vdpau.la libvlc_xcb_events.la '/builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc' + libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_build/sub/modules; /bin/bash "/builds/videolan/vlc/vlc-4.0.0-dev/_build/sub/modules/../libtool" --silent --tag CC --mode=relink gcc -g -O2 -pthread -Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros -pipe -Werror=missing-field-initializers -Werror=format -Werror=incompatible-pointer-types -Werror=restrict -Werror=int-conversion -Werror=implicit-int -Werror=return-mismatch -Werror=declaration-missing-parameter-type -fvisibility=hidden -fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range -funroll-loops -fstack-protector-strong -avoid-version -module -export-symbols-regex "^vlc_entry" -shrext .so -no-undefined ../compat/libcompat.la ../src/libvlccore.la -Wl,-z,defs -o libvdpau_instance_plugin.la -rpath /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/plugins/vdpau hw/vdpau/libvdpau_instance_plugin_la-device.lo libvlc_vdpau.la -lSM -lICE -lX11 -lanl ) + libtool: install: /usr/bin/install -c .libs/libvlc_vdpau.so.0.0.0 /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/libvlc_vdpau.so.0.0.0 + /usr/bin/ld: cannot find -lvlc_vdpau: No such file or directory + libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc && { ln -s -f libvlc_vdpau.so.0.0.0 libvlc_vdpau.so.0 || { rm -f libvlc_vdpau.so.0 && ln -s libvlc_vdpau.so.0.0.0 libvlc_vdpau.so.0; }; }) + collect2: error: ld returned 1 exit status + libtool: install: (cd /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc && { ln -s -f libvlc_vdpau.so.0.0.0 libvlc_vdpau.so || { rm -f libvlc_vdpau.so && ln -s libvlc_vdpau.so.0.0.0 libvlc_vdpau.so; }; }) + ---------------------------------------------------------------------- + libtool: error: error: relink 'libvdpau_instance_plugin.la' with the above command before installing it + libtool: install: /usr/bin/install -c .libs/libvlc_vdpau.lai /builds/videolan/vlc/vlc-4.0.0-dev/_inst/lib/vlc/libvlc_vdpau.la + make[6]: *** [Makefile:15527: install-vdpauLTLIBRARIES] Error 1 + +Here, with the thread number, we have: + - (1) doltlibtool installing the pkglibs (install-exec-am). + - (2) in parallel, libtool relinking the vdpau instance plugin. + - (1) libtool starts to be called for "relinking" (which is only + installing there) with version 0.0.0. + - (2) libtool tried to run the linker but it failed because + libvlc_vdpau.so doesn't exist yet on the target prefix. + - (1) libtool .0.0.0 links to the major version shortcut .0 for + libvlc_vdpau. + - (1) libtool .0.0.0 links to the unversioned shortcut for + libvlc_vdpau. + +So the pkglibs were not installed before installing the plugins linking +them and it was racy whether automake succeeded in installing vlc_vdpau +before or not. This could apply to any pkglib being used from plugins. + +This patch ensure the pkglibs are installed before relinking the plugins +for vpdau, same must be done for each other pkglib usage location. + +Note that install-vdpauLTLIBRARIES itself will install each target from +vdpau_LTLIBRARIES serially in the order they are defined, so there would +be no race inside the same LTLIBRARIES variables, but the different +LTLIBRARIES variables are processed in parallel themselves. + +Fixes #28374 +--- + modules/Makefile.am | 1 + + modules/audio_output/Makefile.am | 3 +++ + modules/hw/vdpau/Makefile.am | 4 ++++ + modules/video_output/Makefile.am | 3 +++ + 4 files changed, 11 insertions(+) + +diff --git a/modules/Makefile.am b/modules/Makefile.am +index d9940f95cbc8..3a41a6bbe456 100644 +--- a/modules/Makefile.am ++++ b/modules/Makefile.am +@@ -1,3 +1,4 @@ ++ + noinst_LTLIBRARIES = + check_LTLIBRARIES = + pkglib_LTLIBRARIES = +diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am +index 4c7957cdd153..8d48003e20b5 100644 +--- a/modules/audio_output/Makefile.am ++++ b/modules/audio_output/Makefile.am +@@ -1,5 +1,8 @@ + aoutdir = $(pluginsdir)/audio_output + aout_LTLIBRARIES = ++# Install the pkglib/pkglibexec first before relinking the modules. ++# This ensures libtool re-linking is not racy. ++install-aoutLTLIBRARIES: install-pkglibLTLIBRARIES + + libvlc_android_audioformat_jni_la_SOURCES = \ + audio_output/android/audioformat_jni.c \ +diff --git a/modules/hw/vdpau/Makefile.am b/modules/hw/vdpau/Makefile.am +index ef3601209314..f195f712310b 100644 +--- a/modules/hw/vdpau/Makefile.am ++++ b/modules/hw/vdpau/Makefile.am +@@ -1,4 +1,8 @@ + vdpaudir = $(pluginsdir)/vdpau ++# Install the pkglib/pkglibexec first before relinking the modules. ++# This ensures libtool re-linking is not racy. ++install-vpdauLTLIBRARIES: install-pkglibLTLIBRARIES ++ + + libvlc_vdpau_la_SOURCES = hw/vdpau/vlc_vdpau.c hw/vdpau/vlc_vdpau.h + libvlc_vdpau_la_CFLAGS = $(VDPAU_CFLAGS) +diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am +index ad959bc45ed5..bcbb892c4c93 100644 +--- a/modules/video_output/Makefile.am ++++ b/modules/video_output/Makefile.am +@@ -1,5 +1,8 @@ + voutdir = $(pluginsdir)/video_output + vout_LTLIBRARIES = ++# Install the pkglib/pkglibexec first before relinking the modules. ++# This ensures libtool re-linking is not racy. ++install-voutLTLIBRARIES: install-pkglibLTLIBRARIES + + EXTRA_DIST += video_output/README + +-- +GitLab + +From 0b9f3f836f1c678e6d101f62545a8edaba16dcd0 Mon Sep 17 00:00:00 2001 +From: Alexandre Janniaux <ajanni@videolabs.io> +Date: Sun, 8 Dec 2024 22:43:37 +0100 +Subject: [PATCH] Makefile.am: fix installation regression + +Automake doesn't generate automatic rules when a rule already exist in +the file, except if it cannot detect it. Adding the +`install-fooLTLIBRARIES: install-pkglibLTLIBRARIES` rule for audio +outputs, video outputs and vdpau broke the installation. + +Adding `$(install-fooLTLIBRARIES): install-pkglibLTLIBRARIES` also makes +automake unhappy because of the variable name looking suspiciously close +to the target it generates, so a version without the dash is used for +the variable name in the rule. With this, the install target is +preserved but the dependency also exists in the output. +--- + modules/audio_output/Makefile.am | 3 ++- + modules/hw/vdpau/Makefile.am | 3 ++- + modules/video_output/Makefile.am | 3 ++- + 3 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/modules/audio_output/Makefile.am b/modules/audio_output/Makefile.am +index 8d48003e20b..c045a892c10 100644 +--- a/modules/audio_output/Makefile.am ++++ b/modules/audio_output/Makefile.am +@@ -2,7 +2,8 @@ aoutdir = $(pluginsdir)/audio_output + aout_LTLIBRARIES = + # Install the pkglib/pkglibexec first before relinking the modules. + # This ensures libtool re-linking is not racy. +-install-aoutLTLIBRARIES: install-pkglibLTLIBRARIES ++installaoutLTLIBRARIES = install-aoutLTLIBRARIES ++$(installaoutLTLIBRARIES): install-pkglibLTLIBRARIES + + libvlc_android_audioformat_jni_la_SOURCES = \ + audio_output/android/audioformat_jni.c \ +diff --git a/modules/hw/vdpau/Makefile.am b/modules/hw/vdpau/Makefile.am +index f195f712310..1abdfa21a9b 100644 +--- a/modules/hw/vdpau/Makefile.am ++++ b/modules/hw/vdpau/Makefile.am +@@ -1,7 +1,8 @@ + vdpaudir = $(pluginsdir)/vdpau + # Install the pkglib/pkglibexec first before relinking the modules. + # This ensures libtool re-linking is not racy. +-install-vpdauLTLIBRARIES: install-pkglibLTLIBRARIES ++installvpdauLTLIBRARIES = install-vdpauLTLIBRARIES ++$(installvpdauLTLIBRARIES): install-pkglibLTLIBRARIES + + + libvlc_vdpau_la_SOURCES = hw/vdpau/vlc_vdpau.c hw/vdpau/vlc_vdpau.h +diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am +index bcbb892c4c9..844b0dd01c8 100644 +--- a/modules/video_output/Makefile.am ++++ b/modules/video_output/Makefile.am +@@ -2,7 +2,8 @@ voutdir = $(pluginsdir)/video_output + vout_LTLIBRARIES = + # Install the pkglib/pkglibexec first before relinking the modules. + # This ensures libtool re-linking is not racy. +-install-voutLTLIBRARIES: install-pkglibLTLIBRARIES ++installvoutLTLIBRARIES = install-voutLTLIBRARIES ++$(installvoutLTLIBRARIES): install-pkglibLTLIBRARIES + + EXTRA_DIST += video_output/README + +-- +GitLab diff --git a/media-video/vlc/files/vlc-3.0.21-vaapi-w-ffmpeg5.patch b/media-video/vlc/files/vlc-3.0.21-vaapi-w-ffmpeg5.patch new file mode 100644 index 000000000000..322818b348b7 --- /dev/null +++ b/media-video/vlc/files/vlc-3.0.21-vaapi-w-ffmpeg5.patch @@ -0,0 +1,149 @@ +From ba5dc03aecc1d96f81b76838f845ebde7348cf62 Mon Sep 17 00:00:00 2001 +From: David Rosca <nowrep@gmail.com> +Date: Fri, 20 Dec 2024 20:24:36 +0100 +Subject: [PATCH] avcodec: vaapi: Support VAAPI with latest FFmpeg + +--- + configure.ac | 20 +------------ + modules/codec/Makefile.am | 2 +- + modules/codec/avcodec/avcommon_compat.h | 3 ++ + modules/codec/avcodec/vaapi.c | 38 +++++++++++++++++++++++-- + 4 files changed, 41 insertions(+), 22 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 00afb063c455..089339e10e0b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2550,25 +2550,7 @@ AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"]) + AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"]) + AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"]) + AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"]) +- +-have_avcodec_vaapi="no" +-AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [ +- VLC_SAVE_FLAGS +- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}" +- CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}" +- AC_CHECK_HEADERS([libavcodec/vaapi.h], [ +- AC_MSG_NOTICE([VA API acceleration activated]) +- have_avcodec_vaapi="yes" +- ],[ +- AS_IF([test -n "${enable_libva}"], [ +- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing]) +- ], [ +- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ]) +- ]) +- ]) +- VLC_RESTORE_FLAGS +-]) +-AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"]) ++AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"]) + + dnl + dnl dxva2 needs avcodec +diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am +index 6d9465fdaef9..dd04391c1bf7 100644 +--- a/modules/codec/Makefile.am ++++ b/modules/codec/Makefile.am +@@ -416,7 +416,7 @@ libvaapi_plugin_la_SOURCES = \ + codec/avcodec/vaapi.c hw/vaapi/vlc_vaapi.c hw/vaapi/vlc_vaapi.h + libvaapi_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) + libvaapi_plugin_la_CFLAGS = $(AM_CFLAGS) $(AVCODEC_CFLAGS) +-libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS) ++libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS) $(AVCODEC_LIBS) + if HAVE_AVCODEC_VAAPI + if HAVE_VAAPI_DRM + codec_LTLIBRARIES += libvaapi_drm_plugin.la +diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h +index ac02c06d2339..8ab6910f3250 100644 +--- a/modules/codec/avcodec/avcommon_compat.h ++++ b/modules/codec/avcodec/avcommon_compat.h +@@ -84,6 +84,9 @@ + #ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7 + # define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61) + #endif ++#ifndef FF_API_STRUCT_VAAPI_CONTEXT ++# define FF_API_STRUCT_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59) ++#endif + + #endif /* HAVE_LIBAVCODEC_AVCODEC_H */ + +diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c +index c83269e43f30..e203baaf9ee2 100644 +--- a/modules/codec/avcodec/vaapi.c ++++ b/modules/codec/avcodec/vaapi.c +@@ -42,12 +42,25 @@ + # include <va/va_drm.h> + #endif + #include <libavcodec/avcodec.h> ++#if FF_API_STRUCT_VAAPI_CONTEXT + #include <libavcodec/vaapi.h> ++#else ++#include <libavutil/hwcontext_vaapi.h> ++#endif + + #include "avcodec.h" + #include "va.h" + #include "../../hw/vaapi/vlc_vaapi.h" + ++#if !FF_API_STRUCT_VAAPI_CONTEXT ++struct vaapi_context ++{ ++ VADisplay display; ++ VAConfigID config_id; ++ VAContextID context_id; ++}; ++#endif ++ + struct vlc_va_sys_t + { + struct vlc_vaapi_instance *va_inst; +@@ -145,8 +158,10 @@ static void Delete(vlc_va_t *va, void **hwctx) + + (void) hwctx; + +- vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id); +- vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id); ++ if (sys->hw_ctx.context_id != VA_INVALID_ID) ++ vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id); ++ if (sys->hw_ctx.config_id != VA_INVALID_ID) ++ vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id); + vlc_vaapi_ReleaseInstance(sys->va_inst); + free(sys); + } +@@ -196,6 +211,7 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d + sys->hw_ctx.config_id = VA_INVALID_ID; + sys->hw_ctx.context_id = VA_INVALID_ID; + ++#if FF_API_STRUCT_VAAPI_CONTEXT + sys->hw_ctx.config_id = + vlc_vaapi_CreateConfigChecked(o, sys->hw_ctx.display, i_profile, + VAEntrypointVLD, i_vlc_chroma); +@@ -211,6 +227,24 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d + goto error; + + ctx->hwaccel_context = &sys->hw_ctx; ++#else ++ AVBufferRef *hwdev_ref = av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_VAAPI); ++ if (hwdev_ref == NULL) ++ goto error; ++ ++ AVHWDeviceContext *hwdev_ctx = (void *) hwdev_ref->data; ++ AVVAAPIDeviceContext *vadev_ctx = hwdev_ctx->hwctx; ++ vadev_ctx->display = va_dpy; ++ ++ if (av_hwdevice_ctx_init(hwdev_ref) < 0) ++ { ++ av_buffer_unref(&hwdev_ref); ++ goto error; ++ } ++ ++ ctx->hw_device_ctx = hwdev_ref; ++#endif ++ + va->sys = sys; + va->description = vaQueryVendorString(sys->hw_ctx.display); + va->get = Get; +-- +GitLab + diff --git a/media-video/vlc/files/vlc-3.0.21-vaapi-without-ffmepg4.patch b/media-video/vlc/files/vlc-3.0.21-vaapi-without-ffmpeg4.patch index c71a39910733..c71a39910733 100644 --- a/media-video/vlc/files/vlc-3.0.21-vaapi-without-ffmepg4.patch +++ b/media-video/vlc/files/vlc-3.0.21-vaapi-without-ffmpeg4.patch diff --git a/media-video/vlc/metadata.xml b/media-video/vlc/metadata.xml index 9e6c642f023f..370630f1402c 100644 --- a/media-video/vlc/metadata.xml +++ b/media-video/vlc/metadata.xml @@ -49,7 +49,6 @@ <flag name="tremor">Enable tremor, a fixed-point version of the Ogg Vorbis decoder</flag> <flag name="twolame">Enable twolame support (MPEG Audio Layer 2 encoder)</flag> <flag name="upnp">Enable support for the Intel SDK stack based UPnP discovery module instead of CyberLink</flag> - <flag name="vpx">Enable the decoder(s) from the WebM VP8 / VP9 Codec SDK</flag> <flag name="X">Enable support for e.g. fullscreen mode via X and the X C-language binding. It does not build a graphical interface</flag> <flag name="x265">Support X265 Encoder</flag> <flag name="zeroconf">Enable support for zero-configuration networking via avahi</flag> diff --git a/media-video/vlc/vlc-3.0.21-r1.ebuild b/media-video/vlc/vlc-3.0.21-r1.ebuild index ff9b4255a8f3..d34fc239251f 100644 --- a/media-video/vlc/vlc-3.0.21-r1.ebuild +++ b/media-video/vlc/vlc-3.0.21-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 2000-2024 Gentoo Authors +# Copyright 2000-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -233,7 +233,8 @@ PATCHES=( "${FILESDIR}"/${PN}-3.0.11.1-configure_lua_version.patch "${FILESDIR}"/${PN}-3.0.18-drop-minizip-dep.patch "${FILESDIR}"/${PN}-3.0.21-freerdp-2.patch # bug 919296, 590164 - "${FILESDIR}"/${PN}-3.0.21-vaapi-without-ffmepg4.patch # bug 864721, thx Fedora + "${FILESDIR}"/${PN}-3.0.21-vaapi-without-ffmpeg4.patch # bug 864721, thx Fedora + "${FILESDIR}"/${PN}-3.0.2.1-vdpau.patch # bug 946178 ) DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt ) diff --git a/media-video/vlc/vlc-3.0.21-r3.ebuild b/media-video/vlc/vlc-3.0.21-r3.ebuild new file mode 100644 index 000000000000..727a7f99348d --- /dev/null +++ b/media-video/vlc/vlc-3.0.21-r3.ebuild @@ -0,0 +1,499 @@ +# Copyright 2000-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..2} ) +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/" +SRC_URI="https://download.videolan.org/pub/videolan/${PN}/${PV}/${P}.tar.xz + https://dev.gentoo.org/~asturm/distfiles/${P}-taglib2.tar.xz" + +LICENSE="LGPL-2.1 GPL-2" +SLOT="0/5-9" # vlc - vlccore +KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv -sparc x86" + +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 ) +" +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:= ) + 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-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}-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.21-freerdp-2.patch # bug 919296, 590164 + "${WORKDIR}"/${P}-taglib2 # bug 938946, in 3.0.x branch + "${FILESDIR}"/${PN}-3.0.2.1-vdpau.patch # bug 946178 + "${FILESDIR}"/${P}-vaapi-w-ffmpeg5.patch # bug 864721, in 3.0.x branch +) + +DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt ) + +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.9999.ebuild b/media-video/vlc/vlc-3.0.9999.ebuild index 863da84818a5..c3e406c30347 100644 --- a/media-video/vlc/vlc-3.0.9999.ebuild +++ b/media-video/vlc/vlc-3.0.9999.ebuild @@ -191,7 +191,7 @@ RDEPEND=" gnome-base/librsvg:2 x11-libs/cairo ) - taglib? ( <media-libs/taglib-2 ) + taglib? ( media-libs/taglib:= ) theora? ( media-libs/libtheora ) tremor? ( media-libs/tremor ) truetype? ( @@ -233,7 +233,6 @@ PATCHES=( "${FILESDIR}"/${PN}-3.0.11.1-configure_lua_version.patch "${FILESDIR}"/${PN}-3.0.18-drop-minizip-dep.patch "${FILESDIR}"/${PN}-3.0.21-freerdp-2.patch # bug 919296, 590164 - "${FILESDIR}"/${PN}-3.0.21-vaapi-without-ffmepg4.patch # bug 864721, thx Fedora ) DOCS=( AUTHORS THANKS NEWS README doc/fortunes.txt ) diff --git a/media-video/vlc/vlc-9999.ebuild b/media-video/vlc/vlc-9999.ebuild index 80a34ce1ebdf..105ed766410a 100644 --- a/media-video/vlc/vlc-9999.ebuild +++ b/media-video/vlc/vlc-9999.ebuild @@ -193,7 +193,7 @@ RDEPEND=" gnome-base/librsvg:2 x11-libs/cairo ) - taglib? ( >=media-libs/taglib-1.9 ) + taglib? ( media-libs/taglib:= ) theora? ( media-libs/libtheora ) tremor? ( media-libs/tremor ) truetype? ( diff --git a/media-video/webcamoid/Manifest b/media-video/webcamoid/Manifest index 0de73a37e10d..4887ebe25f94 100644 --- a/media-video/webcamoid/Manifest +++ b/media-video/webcamoid/Manifest @@ -1,6 +1,4 @@ -DIST webcamoid-9.0.0.tar.gz 9257331 BLAKE2B df7044650c92fd1e557043e2a721079dcc2531a59fb9859c19e02f95bd091fb33cec5e69bbc323baf8c11faad404824f875afe643e9d21085d3496a78acc04f4 SHA512 0de39dc6a5bc3fb8d6477728d971bca933c57e354a6d041389b33c3e48ec7c7912007f6f87bc9be5db303f58ddc5143bb28dc1b475c9ca361f579e1532b515a4 DIST webcamoid-9.1.1.tar.gz 9288681 BLAKE2B 2444240c6ed90eac761c26860c2aabf2467578fec7eca1d488dad3adff63b1638525ff677c9f7d8a49971c9158f245b826390c45251697c7310fde32787998b4 SHA512 aebf413a358ee3397712d0a0935da0b4a8ae595019197450e1c2cd4ac33f9afc16e174ab06d0f8ca9c7fba25c6d71de14cbbdf36ad8f7bfb55428a432e06bb90 -EBUILD webcamoid-9.0.0-r1.ebuild 1942 BLAKE2B 88c603e7ae76ac807729c680205698ec7eafb25dfe3b79c52c6d5d5c000b32d5ecedaa0aa4f2473083226b52e3819659ee74807a61420d7c8b5b754cf8216645 SHA512 1dc39423350cf0cbcfefa98fab112715375d53946c2e448c88df900a5ac1849c5df2abde8c6677c2263caabfd90716a7b18a491e82b2903bee925ae730d9c8b7 EBUILD webcamoid-9.1.1.ebuild 2370 BLAKE2B bab09ef659dc8b388bcda1e824767cefeac22a85c605e4b95c4977404a52765cfd64822e97dd3cb949a6c7a9a0a660ee68c58558d7ca4fc94a5fa8afdb64f037 SHA512 3a13460753f3da633b6d2dd9dca4e0ed618578abb9e298b6924175db89e1d9d001c12724002cef9c570551a4b2bf9ed2ed3a75c0a0cd3a85f587e129f251298b EBUILD webcamoid-9999.ebuild 2308 BLAKE2B 75204087fa0ed5370d587cf56400cf5241dc2dac9b348317001c0eda44c7585ffaf3d91069b553d4c7bbd3eb67d111a641bfda2ad56bba82b8149c5f2e203719 SHA512 a0ac94014bf839f2feed51c7a7c8581d36d33809e48751bcc4b5f9c5ebf1c7b0bb2a70b7ac7418734d0c47a26c1c26fb2371c3e4823f7c6e60d1735711610738 MISC metadata.xml 678 BLAKE2B 028401bc59fc788005dc114d893c2331d0ab12c26bc86492ea35285152e101e85ef6f51f500e870af5ffba6c5e35cf7fc31a2a70b5f060f326018e7c66a58e75 SHA512 73020b100d9863e747d9b8666c220768e850bb208ff1b4b258d6604cc3b00257bcb71b216d3276f747de14580bc5cd4515c93a097bffbe057ab26eeece0fae34 diff --git a/media-video/webcamoid/webcamoid-9.0.0-r1.ebuild b/media-video/webcamoid/webcamoid-9.0.0-r1.ebuild deleted file mode 100644 index a836fa4160b7..000000000000 --- a/media-video/webcamoid/webcamoid-9.0.0-r1.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -inherit cmake xdg - -DESCRIPTION="Full featured webcam capture application" -HOMEPAGE="https://webcamoid.github.io" -SRC_URI="https://github.com/webcamoid/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="alsa coreaudio ffmpeg gstreamer jack libuvc oss pulseaudio qtaudio v4lutils videoeffects debug headers v4l" - -REQUIRED_USE="v4lutils? ( v4l )" - -COMMON_DEPEND=" - dev-qt/qtconcurrent:5 - dev-qt/qtcore:5 - dev-qt/qtdbus:5 - dev-qt/qtdeclarative:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtopengl:5 - dev-qt/qtquickcontrols2:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - ffmpeg? ( media-video/ffmpeg:= ) - gstreamer? ( >=media-libs/gstreamer-1.6.0 ) - jack? ( virtual/jack ) - libuvc? ( media-libs/libuvc ) - pulseaudio? ( media-libs/libpulse ) - qtaudio? ( dev-qt/qtmultimedia:5 ) - v4l? ( media-libs/libv4l ) -" -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-3.6 -" -RDEPEND="${COMMON_DEPEND} - virtual/opengl -" - -src_configure() { - #Disable git in package source. If not disabled the cmake configure process will show a lot of "fatal not a git repository" errors - sed -i 's|find_program(GIT_BIN git)|#find_program(GIT_BIN git)|' libAvKys/cmake/ProjectCommons.cmake || die - - local mycmakeargs=( - "-DNOMEDIAFOUNDATION=1" - "-DNOAVFOUNDATION=1" - "-DNODSHOW=1" - "-DNOWASAPI=1" - "-DNOVLC=1" - "-DNOPIPEWIRE=1" - "-DNOALSA=$(usex alsa 0 1)" - "-DNOCOREAUDIO=$(usex coreaudio 0 1)" - "-DNOFFMPEG=$(usex ffmpeg 0 1)" - "-DNOGSTREAMER=$(usex gstreamer 0 1)" - "-DNOJACK=$(usex jack 0 1)" - "-DNOLIBUVC=$(usex libuvc 0 1)" - "-DNOPULSEAUDIO=$(usex pulseaudio 0 1)" - "-DNOV4L2=$(usex v4l 0 1)" - "-DNOV4LUTILS=$(usex v4lutils 0 1)" - "-DNOVIDEOEFFECTS=$(usex videoeffects 0 1)" - ) - cmake_src_configure -} - -src_install() { - docompress -x /usr/share/man/${PN}.1.gz - cmake_src_install -} diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest index 69a8fbd07490..b5b869fd7074 100644 --- a/media-video/wireplumber/Manifest +++ b/media-video/wireplumber/Manifest @@ -1,11 +1,8 @@ -AUX wireplumber-0.4.81-config-disable-sound-server-parts.patch 906 BLAKE2B 9373bb9cd9234d0fd68ccfba41011083aadd2dfcfd19d7cdda235f075b5cbe02562f8719153ea4e0412614401b3c7f6b60083b3578e9d9450b0a0dfc4b6222a4 SHA512 9fb2c5b5baeebde8dac9c6b6cc192cf85a4b70db3ef7a50233a7c064dc407c763d906063958a5dd06746e1730e2110803eb328105802ea5c4d6bb6d685376a93 AUX wireplumber-0.5.6-bluetooth-only-autoswitch.patch 3011 BLAKE2B 95f015a1c9e2b93bece9377a6ba072fe581053a17dc8586bed1cfb5a5d4eaaaef1713ab5e289f903ac6b47c8bbf958bba2dfc675a866b6bdb2ccc2ce9690e5be SHA512 39b0efe430f6ca7922b01e3d161e8a19ae0773687efe37207f389b96e06973e3bae1149c7ade7ded67a452a64158095d013d2fc78c1d22c612d0313d34a9cebb AUX wireplumber-0.5.6-config-disable-sound-server-parts.patch 559 BLAKE2B 8d71fadbfb8b45eeede3c3b322e11205f4b31af098f0798cc9bef2ee92eb74ce5f811233981351097b4da02c70ce42bcd0033fd951a89f8bc8218468d09b235c SHA512 1e6deb4ce2452f22fca6722c22cfa6a61794f8612c9b2baf6ac1a9b4cf6bdae84e3685e1d8957db3121d304fd5842de47a0f319b755dc349f354f55e118d4750 -DIST wireplumber-0.5.3.tar.bz2 411081 BLAKE2B 627cb0adaddd512e2b5f2e706b622972232f76000d690837da5f03a3628669b99c4768de6590ec378684311915626de7ac3316bda1f5d1152c9df448ec41e389 SHA512 1c62f7f919242b2a9586ff6a532f214b564bcf10c838eae4a64078edf6fd461fc65f364c8af79150e33b86594331446516a1a4c926bb245a4b2ba2d9f63f7243 DIST wireplumber-0.5.6.tar.bz2 415566 BLAKE2B 7f5323ddea415bac31bbb5f05b711e52bd631d9e6c4b22b6055055761a19c0a4c16a36a90ecd0f90c3fbfaddad8be57e823ad0b97327569e94074bee21d5e31c SHA512 58b18c1c1f1040e9954de75488a82ff7504fb908f7e5d57dd219f3479612551c94a1384d399a99b983f66859560aaf71c8ab9414318e48abb6f8cd3b88fcecc8 DIST wireplumber-0.5.7.tar.bz2 416878 BLAKE2B 0def07be7c3652ef76d4af9167875a0d26440c33ad8427d9594922e34dd44fb422e63861931dd7d8861d97698d8752c01ff3bedd68445009f55c728dfd4224d1 SHA512 a9f47664359ec8e483a3b16a1ba6b6e6bea3187bd17536f1ee2a756a0b217ebc401d4f21044b4c1caac83f08cead71539cf96705968aac80289cfe7e70857c56 -EBUILD wireplumber-0.5.3.ebuild 3957 BLAKE2B 1ec67fc3d874a7ce13c0e49e13bcddd5d3abcc19d4d419883b5a53d71fbb3b8c7e7c272cee55e5e348540464e4feaba7e99267c813fedf9d6e4a69a5f16b0b99 SHA512 c37f1a8cb7570a766396647bd15368b9b20ba16f81881facc9e6d6ea02abbcf895d9b8cac8d2f46b4944ed7d156d4bfd5cfdcef8e62fd9395834234765ce6e53 EBUILD wireplumber-0.5.6-r1.ebuild 4009 BLAKE2B 656bcbfd86fcb883e233dde228164c7a945659bea4628ce9d4bf3f5496205e16c1b1ecf3feb129836e78cdafff6b26953085e14b09b7ec78601b13bce80eab56 SHA512 7864d7f58f430fe4451d1f752cccc5bcf209bfcceb62983573a30eacfef8f817ef07329c36385a5543b6c1d9bcf1ef065869a0fd403d03b172ac1657f1f14a8c -EBUILD wireplumber-0.5.7.ebuild 3962 BLAKE2B 18dab254c1892c125e4bba512d54b3b060f127793c6618be2d462f626d1123b7c01c3e67a14625344b5ab5cfb567045179cc42467ccbbd85dc614b5f904303a3 SHA512 39047bf258ae5d4c7621993eecceebba1f7fb18719638e762cb78336ba15cbc284b884fae6d86d427eb5ffe824066dd045ec11168f04dcbd923441df7b97e7e8 +EBUILD wireplumber-0.5.7.ebuild 3956 BLAKE2B 8665c2eb28b98fec5b5182854a7d4ee9f555d6b4cfa16995dd2014581eff1a9037001be835cee3a063614edede23bd1a0529fd4873525078310551b0f2580b7d SHA512 52d1416cb274a252135bfa4d5e586a79ae64a87caaca9ce08faf082f60d8026190d2fae9e61ee8cb34681eb62c38ce57675095da945ce4ebc55c941778d28d8c EBUILD wireplumber-9999.ebuild 3962 BLAKE2B 18dab254c1892c125e4bba512d54b3b060f127793c6618be2d462f626d1123b7c01c3e67a14625344b5ab5cfb567045179cc42467ccbbd85dc614b5f904303a3 SHA512 39047bf258ae5d4c7621993eecceebba1f7fb18719638e762cb78336ba15cbc284b884fae6d86d427eb5ffe824066dd045ec11168f04dcbd923441df7b97e7e8 MISC metadata.xml 719 BLAKE2B 7ad70a19cbc55cb0c399cbc1c8c56a3bab16d2dd477a285a3c142793af3704a8dd6648f6cfa0b9aa6fd8338c9cddd93cc565356a8a2e5031a6874b46ac66c2ee SHA512 a4617e6176a4dab7491103858ed5f663b8dda2a6cd97c348cc274ac959df813a811f70963487ccb670999fd51d107726762d872ce42290d02ea6ed24ea021e55 diff --git a/media-video/wireplumber/files/wireplumber-0.4.81-config-disable-sound-server-parts.patch b/media-video/wireplumber/files/wireplumber-0.4.81-config-disable-sound-server-parts.patch deleted file mode 100644 index 3a9e828837b5..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.81-config-disable-sound-server-parts.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 - ---- - src/config/wireplumber.conf | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/config/wireplumber.conf b/src/config/wireplumber.conf -index 822b7967..ca0faa0a 100644 ---- a/src/config/wireplumber.conf -+++ b/src/config/wireplumber.conf -@@ -64,8 +64,8 @@ wireplumber.profiles = { - support.settings = required - support.log-settings = required - metadata.sm-objects = required -- hardware.audio = required -- hardware.bluetooth = required -+ #hardware.audio = required -+ #hardware.bluetooth = required - hardware.video-capture = required - policy.standard = required - #policy.role-priority-system = optional --- -2.43.0 - diff --git a/media-video/wireplumber/wireplumber-0.5.3.ebuild b/media-video/wireplumber/wireplumber-0.5.3.ebuild deleted file mode 100644 index 896cdf6df63b..000000000000 --- a/media-video/wireplumber/wireplumber-0.5.3.ebuild +++ /dev/null @@ -1,130 +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 -} - -src_install() { - meson_src_install - - mv "${ED}"/usr/share/doc/wireplumber/* "${ED}"/usr/share/doc/${PF} || die - rmdir "${ED}"/usr/share/doc/wireplumber || die -} - -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.7.ebuild b/media-video/wireplumber/wireplumber-0.5.7.ebuild index 05daac42ad03..d1f979b31c3a 100644 --- a/media-video/wireplumber/wireplumber-0.5.7.ebuild +++ b/media-video/wireplumber/wireplumber-0.5.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -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" diff --git a/media-video/yle-dl/Manifest b/media-video/yle-dl/Manifest index 0c5c6090db88..4c9dd887afd3 100644 --- a/media-video/yle-dl/Manifest +++ b/media-video/yle-dl/Manifest @@ -1,3 +1,5 @@ DIST yle-dl-20240927.tar.gz 80008 BLAKE2B b6dfd38bae52de4265d904550124bef96f1f9e75c952a63fc3dabe71ccaf99a9a9cbbb6d2dc10e3ffab0bc1f0ff6b7b42d25e9378c1bfbc06229227bf544ed76 SHA512 e063807ec2e4ad80d69cd6ad10c3973bb32b890c3874a1ce4047f925173d66b198f5d1b4f40dd51056040476f499a972237830e71dd15eb18c38799aa16c5552 +DIST yle-dl-20250126.tar.gz 80360 BLAKE2B adbdbd962ffd652c465fdf78e7eb64681435d3b04ace670fd425dd852968150481722ee82dfb5c57931bd35cf1006d887a3d842af6c47a1ff072a6303205150d SHA512 567d634aaf33833e79faaa700eb79f85c9bbd353005c0261012301b07dcdd6a5722a3a220b6acbcf8a28255010058ec34dd4b60b7b30a04d8ffaba663412f474 EBUILD yle-dl-20240927.ebuild 1645 BLAKE2B f732ce43e50e56fb56af83fc870b804a01192b9d8c627859f535e90fe0e48d5d2bda10ef3aa6c9f854462ba4fd3e31035a42f3548847621e1e0c5628f39b5d11 SHA512 0db6bf5e55aaf3b50d58660f6602a65a7eb249b37c4e567bf43e84b87bc8305817d5fafd85481829e63058dadec2f8ea3f56d47e40a3805417196753251b7ca1 +EBUILD yle-dl-20250126.ebuild 1704 BLAKE2B 2185a439fb87f0e429300e41f0ccb125d982529886feffa07eb4dd2e06ff0bf4aaab144ca35337fb171508ca8554a8aee64f3043d2452b841995a595a9c445c4 SHA512 4e9402ff14f0d52cdb74bd30b671b5c3445752b124a9af352a040e994c9e7113a906bf8457bd118fcb42ddcbba7f59d0f12478a4f5e72d2beb30f4930480a53d MISC metadata.xml 363 BLAKE2B b27761ed00c4849b5e9a0c51fdf699ab7e1589acc017be236339e8e5044fbe05ad62ad8c7104f6e9e43de0779ad6f9f3fe4144fc57376d87d0304f7c7c3fe7cf SHA512 1b061009279fcf8271bec4958ddb93d93e1455686e42d623a64ef51a65e4f852d23873c59d5e547bbf66d6c596f542fd29f78de5c7b33f484918b01beb76dc92 diff --git a/media-video/yle-dl/yle-dl-20250126.ebuild b/media-video/yle-dl/yle-dl-20250126.ebuild new file mode 100644 index 000000000000..c1bd56b5cc19 --- /dev/null +++ b/media-video/yle-dl/yle-dl-20250126.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2025 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 to test-download different media formats +# from Yle Areena. +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 +} |