Bug#1093583: pulseaudio-equalizer: Port to pyqt6

Bastian Germann bage at debian.org
Fri Jan 31 12:27:24 GMT 2025


X-Debbugs-Cc: jbicha at ubuntu.com

On Sat, 25 Jan 2025 22:12:22 +0100 Bastian Germann wrote:
> I am including a debdiff. I might upload this as a NMU in the trixie cycle if nobody insists against it.
Please find an update patch for the latest version.
-------------- next part --------------
diff -Nru pulseaudio-17.0+dfsg1/debian/changelog pulseaudio-17.0+dfsg1/debian/changelog
--- pulseaudio-17.0+dfsg1/debian/changelog	2025-01-29 17:32:02.000000000 +0100
+++ pulseaudio-17.0+dfsg1/debian/changelog	2025-01-31 13:21:53.000000000 +0100
@@ -1,3 +1,10 @@
+pulseaudio (17.0+dfsg1-2.1) unstable; urgency=medium
+
+  * Non-maintainer upload
+  * qpaeq: port to PyQt6 (Closes: #1093583)
+
+ -- Bastian Germann <bage at debian.org>  Fri, 31 Jan 2025 13:21:53 +0100
+
 pulseaudio (17.0+dfsg1-2) unstable; urgency=medium
 
   * Team upload
diff -Nru pulseaudio-17.0+dfsg1/debian/control pulseaudio-17.0+dfsg1/debian/control
--- pulseaudio-17.0+dfsg1/debian/control	2025-01-29 17:32:02.000000000 +0100
+++ pulseaudio-17.0+dfsg1/debian/control	2025-01-31 13:21:53.000000000 +0100
@@ -185,7 +185,7 @@
 Package: pulseaudio-equalizer
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends},
- python3, python3-pyqt5, python3-dbus.mainloop.pyqt5, python3-dbus
+ python3, python3-pyqt6, python3-dbus.mainloop.pyqt6, python3-dbus
 Description: Equalizer sink module for PulseAudio sound server
  PulseAudio, previously known as Polypaudio, is a sound server for POSIX and
  WIN32 systems. It is a drop in replacement for the ESD sound server with
diff -Nru pulseaudio-17.0+dfsg1/debian/patches/qpaeq-port-to-PyQt6.patch pulseaudio-17.0+dfsg1/debian/patches/qpaeq-port-to-PyQt6.patch
--- pulseaudio-17.0+dfsg1/debian/patches/qpaeq-port-to-PyQt6.patch	1970-01-01 01:00:00.000000000 +0100
+++ pulseaudio-17.0+dfsg1/debian/patches/qpaeq-port-to-PyQt6.patch	2025-01-31 13:20:37.000000000 +0100
@@ -0,0 +1,105 @@
+Origin: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3842
+From: Bastian Germann <bage at debian.org>
+Date: Fri, 17 Jan 2025 22:01:57 +0100
+Subject: qpaeq: port to PyQt6
+
+Signed-off-by: Bastian Germann <bage at debian.org>
+---
+ src/utils/qpaeq | 32 ++++++++++++++++----------------
+ 1 file changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/src/utils/qpaeq b/src/utils/qpaeq
+index 7e01d873f..0fc7506fc 100755
+--- a/src/utils/qpaeq
++++ b/src/utils/qpaeq
+@@ -18,12 +18,12 @@
+ 
+ import os,math,sys
+ try:
+-    from PyQt5 import QtWidgets,QtCore
+-    import dbus.mainloop.pyqt5
++    from PyQt6 import QtWidgets,QtCore
++    import dbus.mainloop.pyqt6
+     import dbus
+ except ImportError as e:
+     sys.stderr.write('There was an error importing needed libraries\n'
+-                     'Make sure you have qt5 and dbus-python installed\n'
++                     'Make sure you have qt6 and dbus-python installed\n'
+                      'The error that occurred was:\n'
+                      '\t%s\n' % (str(e)))
+     sys.exit(-1)
+@@ -86,7 +86,7 @@ class QPaeq(QtWidgets.QWidget):
+         self.main_layout=QtWidgets.QVBoxLayout()
+         self.setLayout(self.main_layout)
+         toprow_layout=QtWidgets.QHBoxLayout()
+-        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
++        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Policy.Preferred, QtWidgets.QSizePolicy.Policy.Fixed)
+         sizePolicy.setHorizontalStretch(0)
+         sizePolicy.setVerticalStretch(0)
+         #sizePolicy.setHeightForWidth(self.profile_box.sizePolicy().hasHeightForWidth())
+@@ -95,7 +95,7 @@ class QPaeq(QtWidgets.QWidget):
+         self.sink_box = QtWidgets.QComboBox()
+         self.sink_box.setSizePolicy(sizePolicy)
+         self.sink_box.setDuplicatesEnabled(False)
+-        self.sink_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
++        self.sink_box.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically)
+         #self.sink_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
+         toprow_layout.addWidget(self.sink_box)
+ 
+@@ -107,21 +107,21 @@ class QPaeq(QtWidgets.QWidget):
+         toprow_layout.addWidget(QtWidgets.QLabel('Preset'))
+         self.profile_box = QtWidgets.QComboBox()
+         self.profile_box.setSizePolicy(sizePolicy)
+-        self.profile_box.setInsertPolicy(QtWidgets.QComboBox.InsertAlphabetically)
++        self.profile_box.setInsertPolicy(QtWidgets.QComboBox.InsertPolicy.InsertAlphabetically)
+         #self.profile_box.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
+         toprow_layout.addWidget(self.profile_box)
+ 
+-        large_icon_size=self.style().pixelMetric(QtWidgets.QStyle.PM_LargeIconSize)
++        large_icon_size=self.style().pixelMetric(QtWidgets.QStyle.PixelMetric.PM_LargeIconSize)
+         large_icon_size=QtCore.QSize(large_icon_size,large_icon_size)
+         save_profile=QtWidgets.QToolButton()
+-        save_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_DriveFDIcon))
++        save_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_DriveFDIcon))
+         save_profile.setIconSize(large_icon_size)
+-        save_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
++        save_profile.setToolButtonStyle(QtCore.Qt.ToolButtonStyle.ToolButtonIconOnly)
+         save_profile.clicked.connect(self.save_profile)
+         remove_profile=QtWidgets.QToolButton()
+-        remove_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.SP_TrashIcon))
++        remove_profile.setIcon(self.style().standardIcon(QtWidgets.QStyle.StandardPixmap.SP_TrashIcon))
+         remove_profile.setIconSize(large_icon_size)
+-        remove_profile.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
++        remove_profile.setToolButtonStyle(QtCore.Qt.ToolButtonStyle.ToolButtonIconOnly)
+         remove_profile.clicked.connect(self.remove_profile)
+         toprow_layout.addWidget(save_profile)
+         toprow_layout.addWidget(remove_profile)
+@@ -370,11 +370,11 @@ class SliderArraySub(QtWidgets.QWidget):
+         qt=QtCore.Qt
+         #self.layout().setHorizontalSpacing(1)
+         def add_slider(slider,label, c):
+-            self.layout().addWidget(slider,0,c,qt.AlignHCenter)
+-            self.layout().addWidget(label,1,c,qt.AlignHCenter)
++            self.layout().addWidget(slider,0,c,qt.AlignmentFlag.AlignHCenter)
++            self.layout().addWidget(label,1,c,qt.AlignmentFlag.AlignHCenter)
+             self.layout().setColumnMinimumWidth(c,max(label.sizeHint().width(),slider.sizeHint().width()))
+         def create_slider(slider_label):
+-            slider=QtWidgets.QSlider(QtCore.Qt.Vertical,self)
++            slider=QtWidgets.QSlider(QtCore.Qt.Orientation.Vertical,self)
+             label=SliderLabel(slider_label,filter_state,self)
+             slider.setRange(-1000,2000)
+             slider.setSingleStep(1)
+@@ -564,11 +564,11 @@ def subdivide(xs, t_points):
+     return left+right
+ 
+ def main():
+-    dbus.mainloop.pyqt5.DBusQtMainLoop(set_as_default=True)
++    dbus.mainloop.pyqt6.DBusQtMainLoop(set_as_default=True)
+     app=QtWidgets.QApplication(sys.argv)
+     qpaeq_main=QPaeq()
+     qpaeq_main.show()
+-    sys.exit(app.exec_())
++    sys.exit(app.exec())
+ 
+ if __name__=='__main__':
+     main()
diff -Nru pulseaudio-17.0+dfsg1/debian/patches/series pulseaudio-17.0+dfsg1/debian/patches/series
--- pulseaudio-17.0+dfsg1/debian/patches/series	2025-01-29 17:32:02.000000000 +0100
+++ pulseaudio-17.0+dfsg1/debian/patches/series	2025-01-31 13:21:29.000000000 +0100
@@ -4,3 +4,4 @@
 ucm-check-verb-for-device-status.patch
 ucm-replace-context-assertion-with-error.patch
 ucm-fix-infinite-recursion.patch
+qpaeq-port-to-PyQt6.patch


More information about the pkg-pulseaudio-devel mailing list