Your message dated Mon, 21 Jul 2025 22:12:27 +0000
with message-id <[email protected]>
and subject line unblock kpipewire
has caused the Debian Bug report #1109591,
regarding unblock: kpipewire/6.3.6-1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1109591: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1109591
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: [email protected], Debian Qt/KDE Maintainers 
<[email protected]>
Control: affects -1 + src:kpipewire
User: [email protected]
Usertags: unblock

Dear Release Team,

please unblock package kpipewire.

[ Reason ]
It contains the following changes:
* Fix incorrect backport of commit 0ac4aa41 that broke desktop
  sharing. (Closes: #1109233, thanks Antonio Russo for the detailed
  analysis !)
* New upstream release (6.3.6).
  - Fix build with Qt 6.10.
* Refresh patches.
* Backport upstream commit: [9fe7a568] Adjust timers from the correct
  thread

[ Tests ]
- Original reporter of #1109233 confirmed the fix works.
- No regression spotted running Plasma.

[ Risks ]
- the fix for #1109233 is a 3 liner.
- Other changes one change from the upstream release and one backported
  patch that can easily be backported or the changes reverted.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing


Thanks !


unblock kpipewire/6.3.6-1
diff -Nru kpipewire-6.3.5/CMakeLists.txt kpipewire-6.3.6/CMakeLists.txt
--- kpipewire-6.3.5/CMakeLists.txt      2025-05-06 19:56:52.000000000 +0200
+++ kpipewire-6.3.6/CMakeLists.txt      2025-07-08 13:44:18.000000000 +0200
@@ -1,5 +1,5 @@
 cmake_minimum_required(VERSION 3.16)
-project(KPipewire VERSION "6.3.5")
+project(KPipewire VERSION "6.3.90")
 
 set(KF6_MIN_VERSION "6.10.0")
 find_package(ECM ${KF6_MIN_VERSION} REQUIRED NO_MODULE)
@@ -13,6 +13,11 @@
 include(ECMDeprecationSettings)
 
 find_package(Qt6 REQUIRED COMPONENTS DBus Quick)
+
+if (Qt6Gui_VERSION VERSION_GREATER_EQUAL "6.10.0")
+    find_package(Qt6GuiPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
+endif()
+
 find_package(KF6 REQUIRED COMPONENTS I18n CoreAddons)
 
 find_package(EGL REQUIRED)
diff -Nru kpipewire-6.3.5/debian/changelog kpipewire-6.3.6/debian/changelog
--- kpipewire-6.3.5/debian/changelog    2025-05-19 00:58:37.000000000 +0200
+++ kpipewire-6.3.6/debian/changelog    2025-07-15 16:45:40.000000000 +0200
@@ -1,3 +1,17 @@
+kpipewire (6.3.6-1) unstable; urgency=medium
+
+  [ Aurélien COUDERC ]
+  * Fix incorrect backport of commit 0ac4aa41 that broke desktop
+    sharing. (Closes: #1109233, thanks Antonio Russo for the detailed
+    analysis !)
+  * New upstream release (6.3.6).
+    - Fix build with Qt 6.10.
+  * Refresh patches.
+  * Backport upstream commit: [9fe7a568] Adjust timers from the correct
+    thread
+
+ -- Aurélien COUDERC <[email protected]>  Tue, 15 Jul 2025 16:45:40 +0200
+
 kpipewire (6.3.5-1) unstable; urgency=medium
 
   [ Aurélien COUDERC ]
diff -Nru kpipewire-6.3.5/debian/patches/series 
kpipewire-6.3.6/debian/patches/series
--- kpipewire-6.3.5/debian/patches/series       2025-05-19 00:58:37.000000000 
+0200
+++ kpipewire-6.3.6/debian/patches/series       2025-07-15 13:42:41.000000000 
+0200
@@ -6,3 +6,4 @@
 upstream_123ae0d2_Tweak-encoding-options-for-VP9.patch
 
upstream_0ac4aa41_encodedstream-Deprecate-setActive-and-replace-with-an-explicit-API.patch
 upstream_8793ae86_encodedstream-Don-t-query-VAAPI-in-the-constructor.patch
+upstream_9fe7a568_Adjust-timers-from-the-correct-thread.patch
diff -Nru 
kpipewire-6.3.5/debian/patches/upstream_0ac4aa41_encodedstream-Deprecate-setActive-and-replace-with-an-explicit-API.patch
 
kpipewire-6.3.6/debian/patches/upstream_0ac4aa41_encodedstream-Deprecate-setActive-and-replace-with-an-explicit-API.patch
--- 
kpipewire-6.3.5/debian/patches/upstream_0ac4aa41_encodedstream-Deprecate-setActive-and-replace-with-an-explicit-API.patch
   2025-05-19 00:58:37.000000000 +0200
+++ 
kpipewire-6.3.6/debian/patches/upstream_0ac4aa41_encodedstream-Deprecate-setActive-and-replace-with-an-explicit-API.patch
   2025-07-15 13:22:09.000000000 +0200
@@ -26,8 +26,6 @@
  tests/HeadlessTest.cpp            |  20 ++++--
  6 files changed, 127 insertions(+), 49 deletions(-)
 
-diff --git a/src/pipewirebaseencodedstream.cpp 
b/src/pipewirebaseencodedstream.cpp
-index 67c5445..27ef198 100644
 --- a/src/pipewirebaseencodedstream.cpp
 +++ b/src/pipewirebaseencodedstream.cpp
 @@ -17,6 +17,8 @@ extern "C" {
@@ -62,7 +60,7 @@
  }
  
  PipeWireBaseEncodedStream::PipeWireBaseEncodedStream(QObject *parent)
-@@ -65,10 +62,10 @@ 
PipeWireBaseEncodedStream::PipeWireBaseEncodedStream(QObject *parent)
+@@ -65,10 +62,10 @@ PipeWireBaseEncodedStream::PipeWireBaseE
  
  PipeWireBaseEncodedStream::~PipeWireBaseEncodedStream()
  {
@@ -76,7 +74,7 @@
      }
  }
  
-@@ -78,7 +75,6 @@ void PipeWireBaseEncodedStream::setNodeId(uint nodeId)
+@@ -78,7 +75,6 @@ void PipeWireBaseEncodedStream::setNodeI
          return;
  
      d->m_nodeId = nodeId;
@@ -84,7 +82,7 @@
      Q_EMIT nodeIdChanged(nodeId);
  }
  
-@@ -91,7 +87,6 @@ void PipeWireBaseEncodedStream::setFd(uint fd)
+@@ -91,7 +87,6 @@ void PipeWireBaseEncodedStream::setFd(ui
          close(*d->m_fd);
      }
      d->m_fd = fd;
@@ -92,7 +90,7 @@
      Q_EMIT fdChanged(fd);
  }
  
-@@ -141,50 +136,84 @@ int PipeWireBaseEncodedStream::maxBufferSize() const
+@@ -141,50 +136,84 @@ int PipeWireBaseEncodedStream::maxBuffer
  
  void PipeWireBaseEncodedStream::setActive(bool active)
  {
@@ -206,11 +204,9 @@
  }
  
  void PipeWireBaseEncodedStream::setEncoder(Encoder encoder)
-diff --git a/src/pipewirebaseencodedstream.h b/src/pipewirebaseencodedstream.h
-index 9f4c0fd..8728252 100644
 --- a/src/pipewirebaseencodedstream.h
 +++ b/src/pipewirebaseencodedstream.h
-@@ -25,7 +25,7 @@ class KPIPEWIRE_EXPORT PipeWireBaseEncodedStream : public 
QObject
+@@ -25,7 +25,7 @@ class KPIPEWIRE_EXPORT PipeWireBaseEncod
       * Transfers the ownership of the fd, will close it when it's done with 
it.
       */
      Q_PROPERTY(uint fd READ fd WRITE setFd NOTIFY fdChanged)
@@ -270,19 +266,17 @@
 -    void refresh();
      QScopedPointer<PipeWireEncodedStreamPrivate> d;
  };
-diff --git a/src/pipewireproduce.cpp b/src/pipewireproduce.cpp
-index aa6acbb..e5b05cc 100644
 --- a/src/pipewireproduce.cpp
 +++ b/src/pipewireproduce.cpp
-@@ -201,6 +201,7 @@ void PipeWireProduce::setupStream()
-     if (!m_encoder || streamState != PW_STREAM_STATE_STREAMING) {
-         QMetaObject::invokeMethod(this, &PipeWireProduce::destroy, 
Qt::QueuedConnection);
-     }
+@@ -183,6 +183,7 @@ void PipeWireProduce::setupStream()
+         }
+     });
+     pthread_setname_np(m_outputThread.native_handle(), 
"PipeWireProduce::output");
 +    Q_EMIT started();
  }
  
- void PipeWireProduce::destroy()
-@@ -251,6 +252,7 @@ void PipeWireProduce::destroy()
+ void PipeWireProduce::deactivate()
+@@ -231,6 +232,7 @@ void PipeWireProduce::destroy()
  
      qCDebug(PIPEWIRERECORD_LOGGING) << "finished";
      cleanup();
@@ -290,11 +284,9 @@
      QThread::currentThread()->quit();
  }
  
-diff --git a/src/pipewireproduce_p.h b/src/pipewireproduce_p.h
-index 71ca34b..7cc49df 100644
 --- a/src/pipewireproduce_p.h
 +++ b/src/pipewireproduce_p.h
-@@ -154,6 +154,8 @@ public:
+@@ -151,6 +151,8 @@ public:
  
  Q_SIGNALS:
      void producedFrames();
@@ -303,11 +295,9 @@
  
  private:
      void initFiltersVaapi();
-diff --git a/src/pipewirerecord.cpp b/src/pipewirerecord.cpp
-index 7293b57..cff7ade 100644
 --- a/src/pipewirerecord.cpp
 +++ b/src/pipewirerecord.cpp
-@@ -69,7 +69,6 @@ void PipeWireRecord::setOutput(const QString &_output)
+@@ -69,7 +69,6 @@ void PipeWireRecord::setOutput(const QSt
          return;
  
      d->m_output = output;
@@ -315,11 +305,9 @@
      Q_EMIT outputChanged(output);
  }
  
-diff --git a/tests/HeadlessTest.cpp b/tests/HeadlessTest.cpp
-index 33db742..6d31f77 100644
 --- a/tests/HeadlessTest.cpp
 +++ b/tests/HeadlessTest.cpp
-@@ -55,16 +55,29 @@ void createStream(int nodeId, std::optional<int> fd = {})
+@@ -55,16 +55,29 @@ void createStream(int nodeId, std::optio
              }
              encoded->setEncoder(enc);
          }
@@ -352,7 +340,7 @@
          });
          return;
      }
-@@ -96,7 +109,6 @@ void createStream(int nodeId, std::optional<int> fd = {})
+@@ -96,7 +109,6 @@ void createStream(int nodeId, std::optio
      });
      QObject::connect(KSignalHandler::self(), &KSignalHandler::signalReceived, 
pwStream, [pwStream] {
          pwStream->setActive(false);
@@ -360,6 +348,3 @@
      });
  }
  
--- 
-GitLab
-
diff -Nru 
kpipewire-6.3.5/debian/patches/upstream_686df1e3_Tweak-compiler-warning-flags-to-reduce-unneeded-output.patch
 
kpipewire-6.3.6/debian/patches/upstream_686df1e3_Tweak-compiler-warning-flags-to-reduce-unneeded-output.patch
--- 
kpipewire-6.3.5/debian/patches/upstream_686df1e3_Tweak-compiler-warning-flags-to-reduce-unneeded-output.patch
       2025-05-19 00:58:37.000000000 +0200
+++ 
kpipewire-6.3.6/debian/patches/upstream_686df1e3_Tweak-compiler-warning-flags-to-reduce-unneeded-output.patch
       2025-07-15 13:19:38.000000000 +0200
@@ -14,11 +14,9 @@
  src/libwebpencoder.cpp | 7 -------
  2 files changed, 1 insertion(+), 8 deletions(-)
 
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index bf53693..05c06f0 100644
 --- a/src/CMakeLists.txt
 +++ b/src/CMakeLists.txt
-@@ -73,7 +73,7 @@ target_sources(KPipeWire PRIVATE
+@@ -66,7 +66,7 @@ target_sources(KPipeWire PRIVATE
  )
  
  # these are features pipewire use extensively and make it hard to look at 
compile logs
@@ -27,11 +25,9 @@
  
  target_link_libraries(KPipeWire PRIVATE Qt::Quick Qt::GuiPrivate KF6::I18n
      KF6::CoreAddons PkgConfig::PipeWire epoxy::epoxy PkgConfig::GBM 
Libdrm::Libdrm PkgConfig::LIBVA PkgConfig::LIBVA-drm)
-diff --git a/src/libwebpencoder.cpp b/src/libwebpencoder.cpp
-index 0006441..c62cecb 100644
 --- a/src/libwebpencoder.cpp
 +++ b/src/libwebpencoder.cpp
-@@ -51,9 +51,6 @@ bool LibWebPEncoder::initialize(const QSize &size)
+@@ -51,9 +51,6 @@ bool LibWebPEncoder::initialize(const QS
      m_avCodecContext->time_base = AVRational{1, 1000};
  
      AVDictionary *options = nullptr;
@@ -41,7 +37,7 @@
      if (int result = avcodec_open2(m_avCodecContext, codec, &options); result 
< 0) {
          qCWarning(PIPEWIRERECORD_LOGGING) << "Could not open codec" << 
av_err2str(result);
          return false;
-@@ -66,7 +63,3 @@ int LibWebPEncoder::percentageToAbsoluteQuality(const 
std::optional<quint8> &qua
+@@ -66,7 +63,3 @@ int LibWebPEncoder::percentageToAbsolute
  {
      return quality.value_or(-1); // Already 0-100. -1 resets to default.
  }
@@ -49,6 +45,3 @@
 -void LibWebPEncoder::applyEncodingPreference([[maybe_unused]] AVDictionary 
*options)
 -{
 -}
--- 
-GitLab
-
diff -Nru 
kpipewire-6.3.5/debian/patches/upstream_9fe7a568_Adjust-timers-from-the-correct-thread.patch
 
kpipewire-6.3.6/debian/patches/upstream_9fe7a568_Adjust-timers-from-the-correct-thread.patch
--- 
kpipewire-6.3.5/debian/patches/upstream_9fe7a568_Adjust-timers-from-the-correct-thread.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
kpipewire-6.3.6/debian/patches/upstream_9fe7a568_Adjust-timers-from-the-correct-thread.patch
        2025-07-15 13:42:41.000000000 +0200
@@ -0,0 +1,38 @@
+From 9fe7a568d1e20bb2d402d49922ae41c0cce8dde7 Mon Sep 17 00:00:00 2001
+From: David Edmundson <[email protected]>
+Date: Thu, 26 Jun 2025 14:50:27 +0100
+Subject: [PATCH] Adjust timers from the correct thread
+
+PipeWireBaseEncodedStream moves the PipeWireProduce into another thread. It is
+therefore it's responsiblity to ensure that any calls into PipeWireProduce are
+run in the correct thread.
+
+This addresses a warning about timers.
+---
+ src/pipewirebaseencodedstream.cpp | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/pipewirebaseencodedstream.cpp 
b/src/pipewirebaseencodedstream.cpp
+index de51a90..b17ee1b 100644
+--- a/src/pipewirebaseencodedstream.cpp
++++ b/src/pipewirebaseencodedstream.cpp
+@@ -103,9 +103,13 @@ void PipeWireBaseEncodedStream::setMaxFramerate(const 
Fraction &framerate)
+     }
+     d->m_maxFramerate = framerate;
+ 
+-    if (d->m_produce) {
+-        d->m_produce->setMaxFramerate(d->m_maxFramerate);
+-    }
++    // produce runs in another thread
++    QMetaObject::invokeMethod(
++        d->m_produce.get(),
++        [produce = d->m_produce.get(), framerate]() {
++            produce->setMaxFramerate(framerate);
++        },
++        Qt::QueuedConnection);
+ 
+     Q_EMIT maxFramerateChanged();
+ }
+-- 
+GitLab
+
diff -Nru kpipewire-6.3.5/src/CMakeLists.txt kpipewire-6.3.6/src/CMakeLists.txt
--- kpipewire-6.3.5/src/CMakeLists.txt  2025-05-06 19:56:52.000000000 +0200
+++ kpipewire-6.3.6/src/CMakeLists.txt  2025-07-08 13:44:18.000000000 +0200
@@ -144,7 +144,7 @@
 target_link_libraries(KPipeWireRecord PUBLIC KPipeWire
     PRIVATE Qt::Core Qt::Gui KF6::CoreAddons KPipeWireDmaBuf
     PkgConfig::AVCodec PkgConfig::AVUtil PkgConfig::AVFormat 
PkgConfig::AVFilter PkgConfig::GBM PkgConfig::SWScale
-    epoxy::epoxy Libdrm::Libdrm Qt::GuiPrivate
+    epoxy::epoxy Libdrm::Libdrm
 )
 
 ecm_generate_headers(KPipeWireRecord_HEADERS
diff -Nru kpipewire-6.3.5/src/pipewirerecord.cpp 
kpipewire-6.3.6/src/pipewirerecord.cpp
--- kpipewire-6.3.5/src/pipewirerecord.cpp      2025-05-06 19:56:52.000000000 
+0200
+++ kpipewire-6.3.6/src/pipewirerecord.cpp      2025-07-08 13:44:18.000000000 
+0200
@@ -13,7 +13,6 @@
 #include <QGuiApplication>
 #include <QImage>
 #include <QPainter>
-#include <qpa/qplatformnativeinterface.h>
 
 #include <KShell>
 
diff -Nru kpipewire-6.3.5/tests/CMakeLists.txt 
kpipewire-6.3.6/tests/CMakeLists.txt
--- kpipewire-6.3.5/tests/CMakeLists.txt        2025-05-06 19:56:52.000000000 
+0200
+++ kpipewire-6.3.6/tests/CMakeLists.txt        2025-07-08 13:44:18.000000000 
+0200
@@ -40,7 +40,7 @@
 )
 
 add_executable(xdp-recordme xdp-main.cpp recordme.qrc ${XDP_SRCS} RecordMe.cpp)
-target_link_libraries(xdp-recordme Qt::DBus Qt::Quick KPipeWire Qt::GuiPrivate 
Wayland::Client Qt::WaylandClient )
+target_link_libraries(xdp-recordme Qt::DBus Qt::Quick KPipeWire 
Wayland::Client Qt::WaylandClient )
 
 option(INSTALL_TESTS "The recordme test needs installing, disabled by default 
for convenience" OFF)
 if(INSTALL_TESTS)

--- End Message ---
--- Begin Message ---
Unblocked kpipewire.

--- End Message ---

Reply via email to