commit: 70453ed1bec29e0f11de0bd421536b239c727eb8 Author: Eli Schwartz <eschwartz <AT> gentoo <DOT> org> AuthorDate: Mon Dec 29 01:16:03 2025 +0000 Commit: Eli Schwartz <eschwartz <AT> gentoo <DOT> org> CommitDate: Mon Dec 29 01:16:03 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=70453ed1
Revert "kde-plasma/kpipewire: drop 6.4.5" This reverts commit 6c336663f824e1222b65e58bf3853fd50f0a1b9a. Broken depgraph for loong. Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org> kde-plasma/kpipewire/Manifest | 1 + .../kpipewire/files/kpipewire-6.4.5-ffmpeg8.patch | 116 +++++++++++++++++++++ kde-plasma/kpipewire/kpipewire-6.4.5.ebuild | 53 ++++++++++ 3 files changed, 170 insertions(+) diff --git a/kde-plasma/kpipewire/Manifest b/kde-plasma/kpipewire/Manifest index 7df0a8d64764..7534267290ae 100644 --- a/kde-plasma/kpipewire/Manifest +++ b/kde-plasma/kpipewire/Manifest @@ -1 +1,2 @@ +DIST kpipewire-6.4.5.tar.xz 153604 BLAKE2B 70e4346ed351789b1561376d72551195381348d04113ed993c0e43389c02fc72120612bd14be1ad47bbb99362fc7a10cefbdef49e38a63752517c4ddbaa9d14b SHA512 7a0405027e0460c931f8a4b854348e0d1443e201982b5e4cab3aac2facc2002e462ac11fe877373999a84ac1ffb535a98421f4aaece3eff767b8e7d0d24051f7 DIST kpipewire-6.5.4.tar.xz 153032 BLAKE2B aa9c05ec0a9be9a35ef2a53e17e5a48b5f8375def0703267107fa9ba40f744984070c067417d9f3f15a4cdfe351c8771806a85bc9c8665b6ad3577b46d05b3f5 SHA512 1338cd3e1d382d4df1848d55d18df87941cc8c38d38607bb3bfe596caf80e8d2e749f08b805ea7dd116fcc44af9025ff486dab4f5732be9717e43ad1e6c1afe2 diff --git a/kde-plasma/kpipewire/files/kpipewire-6.4.5-ffmpeg8.patch b/kde-plasma/kpipewire/files/kpipewire-6.4.5-ffmpeg8.patch new file mode 100644 index 000000000000..8c721c47ac76 --- /dev/null +++ b/kde-plasma/kpipewire/files/kpipewire-6.4.5-ffmpeg8.patch @@ -0,0 +1,116 @@ +From 6dc69b0674f9946641e88151c209ce58f085d06a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= <[email protected]> +Date: Wed, 27 Aug 2025 16:39:36 +0200 +Subject: [PATCH] Fix build with ffmpeg >= 8.0 + +--- + src/h264vaapiencoder.cpp | 12 +++++++++--- + src/libopenh264encoder.cpp | 12 +++++++++--- + src/libx264encoder.cpp | 12 +++++++++--- + 3 files changed, 27 insertions(+), 9 deletions(-) + +diff --git a/src/h264vaapiencoder.cpp b/src/h264vaapiencoder.cpp +index 0cf251b..eaec8dd 100644 +--- a/src/h264vaapiencoder.cpp ++++ b/src/h264vaapiencoder.cpp +@@ -18,6 +18,12 @@ extern "C" { + + #include "logging_record.h" + ++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0 ++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE ++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN ++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH ++#endif ++ + H264VAAPIEncoder::H264VAAPIEncoder(H264Profile profile, PipeWireProduce *produce) + : HardwareEncoder(produce) + , m_profile(profile) +@@ -130,13 +136,13 @@ bool H264VAAPIEncoder::initialize(const QSize &size) + + switch (m_profile) { + case H264Profile::Baseline: +- m_avCodecContext->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE; ++ m_avCodecContext->profile = AV_PROFILE_H264_CONSTRAINED_BASELINE; + break; + case H264Profile::Main: +- m_avCodecContext->profile = FF_PROFILE_H264_MAIN; ++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN; + break; + case H264Profile::High: +- m_avCodecContext->profile = FF_PROFILE_H264_HIGH; ++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH; + break; + } + +diff --git a/src/libopenh264encoder.cpp b/src/libopenh264encoder.cpp +index db6ed4d..294c0f2 100644 +--- a/src/libopenh264encoder.cpp ++++ b/src/libopenh264encoder.cpp +@@ -21,6 +21,12 @@ extern "C" { + + #include "logging_record.h" + ++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0 ++#define AV_PROFILE_H264_CONSTRAINED_BASELINE FF_PROFILE_H264_CONSTRAINED_BASELINE ++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN ++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH ++#endif ++ + LibOpenH264Encoder::LibOpenH264Encoder(H264Profile profile, PipeWireProduce *produce) + : SoftwareEncoder(produce) + , m_profile(profile) +@@ -64,13 +70,13 @@ bool LibOpenH264Encoder::initialize(const QSize &size) + // passes that through, but libopenh264 only allows BASELINE. + // Until that bug is fixed there'll always be a warning that the + // profile is not supported (https://github.com/cisco/openh264/issues/3613) +- m_avCodecContext->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE; ++ m_avCodecContext->profile = AV_PROFILE_H264_CONSTRAINED_BASELINE; + break; + case H264Profile::Main: +- m_avCodecContext->profile = FF_PROFILE_H264_MAIN; ++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN; + break; + case H264Profile::High: +- m_avCodecContext->profile = FF_PROFILE_H264_HIGH; ++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH; + break; + } + +diff --git a/src/libx264encoder.cpp b/src/libx264encoder.cpp +index d9fe44f..a8f0e21 100644 +--- a/src/libx264encoder.cpp ++++ b/src/libx264encoder.cpp +@@ -20,6 +20,12 @@ extern "C" { + + #include "logging_record.h" + ++#ifndef AV_PROFILE_H264_BASELINE // ffmpeg before 8.0 ++#define AV_PROFILE_H264_BASELINE FF_PROFILE_H264_BASELINE ++#define AV_PROFILE_H264_MAIN FF_PROFILE_H264_MAIN ++#define AV_PROFILE_H264_HIGH FF_PROFILE_H264_HIGH ++#endif ++ + using namespace Qt::StringLiterals; + + LibX264Encoder::LibX264Encoder(H264Profile profile, PipeWireProduce *produce) +@@ -68,13 +74,13 @@ bool LibX264Encoder::initialize(const QSize &size) + + switch (m_profile) { + case H264Profile::Baseline: +- m_avCodecContext->profile = FF_PROFILE_H264_BASELINE; ++ m_avCodecContext->profile = AV_PROFILE_H264_BASELINE; + break; + case H264Profile::Main: +- m_avCodecContext->profile = FF_PROFILE_H264_MAIN; ++ m_avCodecContext->profile = AV_PROFILE_H264_MAIN; + break; + case H264Profile::High: +- m_avCodecContext->profile = FF_PROFILE_H264_HIGH; ++ m_avCodecContext->profile = AV_PROFILE_H264_HIGH; + break; + } + +-- +GitLab + diff --git a/kde-plasma/kpipewire/kpipewire-6.4.5.ebuild b/kde-plasma/kpipewire/kpipewire-6.4.5.ebuild new file mode 100644 index 000000000000..6d858e5bb5e1 --- /dev/null +++ b/kde-plasma/kpipewire/kpipewire-6.4.5.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +ECM_TEST="true" +KFMIN=6.16.0 +QTMIN=6.8.1 +inherit ecm plasma.kde.org xdg + +DESCRIPTION="Components relating to Flatpak pipewire use in Plasma" + +LICENSE="LGPL-2.1+" +SLOT="6" +KEYWORDS="amd64 arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="" + +COMMON_DEPEND=" + >=dev-qt/qtbase-${QTMIN}:6[dbus,gui,opengl] + >=dev-qt/qtdeclarative-${QTMIN}:6 + >=kde-frameworks/kcoreaddons-${KFMIN}:6 + >=kde-frameworks/ki18n-${KFMIN}:6 + media-libs/libepoxy + media-libs/libglvnd + media-libs/libva:= + media-libs/mesa[opengl] + media-video/ffmpeg:= + >=media-video/pipewire-0.3:= + x11-libs/libdrm +" +DEPEND="${COMMON_DEPEND} + test? ( + dev-libs/plasma-wayland-protocols + dev-libs/wayland + >=dev-qt/qtbase-${QTMIN}:6[wayland] + >=kde-plasma/kwayland-${KDE_CATV}:6 + media-video/pipewire[extra] + ) +" +DEPEND+=" test? ( || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 ) )" +RDEPEND="${COMMON_DEPEND} + >=kde-frameworks/kirigami-${KFMIN}:6 +" +BDEPEND="test? ( >=dev-qt/qtbase-${QTMIN}:6[wayland] )" +BDEPEND+=" test? ( || ( >=dev-qt/qtbase-6.10:6[wayland] <dev-qt/qtwayland-6.10:6 ) )" + +src_prepare() { + # https://invent.kde.org/plasma/kpipewire/-/merge_requests/208#note_1310965 + if has_version ">=media-video/ffmpeg-6.1"; then + PATCHES+=( "${FILESDIR}/${P}-ffmpeg8.patch" ) + fi + cmake_src_prepare +}
