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
+}

Reply via email to