commit:     30d15ff32cf584538ba455d0492c24657f94bd7a
Author:     Brandon Little <blittle <AT> inco <DOT> cc>
AuthorDate: Mon Jun 17 16:28:46 2024 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Mon Jun 24 07:10:19 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30d15ff3

media-sound/lmms: Fix segfault related to kwidgetsaddons

Closes: https://bugs.gentoo.org/907285
Signed-off-by: Brandon Little <blittle <AT> inco.cc>
Closes: https://github.com/gentoo/gentoo/pull/37197
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 .../lmms/files/lmms-1.2.2-kwidgetsaddons.patch     | 75 ++++++++++++++++++++++
 .../{lmms-1.2.2-r1.ebuild => lmms-1.2.2-r2.ebuild} |  1 +
 2 files changed, 76 insertions(+)

diff --git a/media-sound/lmms/files/lmms-1.2.2-kwidgetsaddons.patch 
b/media-sound/lmms/files/lmms-1.2.2-kwidgetsaddons.patch
new file mode 100644
index 000000000000..723e76adfa73
--- /dev/null
+++ b/media-sound/lmms/files/lmms-1.2.2-kwidgetsaddons.patch
@@ -0,0 +1,75 @@
+This patch removes an outdated workaround that causes a segfault when a recent
+version of kwidgetsaddon is installed. It has been merged upstream, so there is
+no need to use this beyond version 1.2.2.
+
+https://github.com/LMMS/lmms/issues/6587#issuecomment-1399220056
+https://github.com/LMMS/lmms/pull/6612
+
+diff --git a/src/gui/MainApplication.cpp b/src/gui/MainApplication.cpp
+index 994ae2771..9afa20a71 100644
+--- a/src/gui/MainApplication.cpp
++++ b/src/gui/MainApplication.cpp
+@@ -35,6 +35,19 @@ MainApplication::MainApplication(int& argc, char** argv) :
+       QApplication(argc, argv),
+       m_queuedFile()
+ {
++#if !defined(LMMS_BUILD_WIN32) && !defined(LMMS_BUILD_APPLE) && 
!defined(LMMS_BUILD_HAIKU) && QT_VERSION >= 0x050000
++      // Work around a bug of KXmlGui < 5.55
++      // which breaks the recent files menu
++      // https://bugs.kde.org/show_bug.cgi?id=337491
++      for (auto child : children())
++      {
++              if (child->inherits("KCheckAcceleratorsInitializer"))
++              {
++                      delete child;
++              }
++      }
++#endif
++
+ #if defined(LMMS_BUILD_WIN32) && QT_VERSION >= 0x050000
+       installNativeEventFilter(this);
+ #endif
+diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp
+index e6971f96d..26532eb5b 100644
+--- a/src/gui/MainWindow.cpp
++++ b/src/gui/MainWindow.cpp
+@@ -33,7 +33,6 @@
+ #include <QMenuBar>
+ #include <QMessageBox>
+ #include <QShortcut>
+-#include <QLibrary>
+ #include <QSplitter>
+ #include <QUrl>
+ #include <QWhatsThis>
+@@ -65,21 +64,6 @@
+ 
+ #include "lmmsversion.h"
+ 
+-#if !defined(LMMS_BUILD_WIN32) && !defined(LMMS_BUILD_APPLE) && 
!defined(LMMS_BUILD_HAIKU) && QT_VERSION >= 0x050000
+-//Work around an issue on KDE5 as per 
https://bugs.kde.org/show_bug.cgi?id=337491#c21
+-void disableAutoKeyAccelerators(QWidget* mainWindow)
+-{
+-      using DisablerFunc = void(*)(QWidget*);
+-      QLibrary kf5WidgetsAddon("KF5WidgetsAddons", 5);
+-      DisablerFunc setNoAccelerators = 
+-                      
reinterpret_cast<DisablerFunc>(kf5WidgetsAddon.resolve("_ZN19KAcceleratorManager10setNoAccelEP7QWidget"));
+-      if(setNoAccelerators)
+-      {
+-              setNoAccelerators(mainWindow);
+-      }
+-      kf5WidgetsAddon.unload();
+-}
+-#endif
+ 
+ 
+ MainWindow::MainWindow() :
+@@ -92,9 +76,6 @@ MainWindow::MainWindow() :
+       m_metronomeToggle( 0 ),
+       m_session( Normal )
+ {
+-#if !defined(LMMS_BUILD_WIN32) && !defined(LMMS_BUILD_APPLE) && 
!defined(LMMS_BUILD_HAIKU) && QT_VERSION >= 0x050000
+-      disableAutoKeyAccelerators(this);
+-#endif
+       setAttribute( Qt::WA_DeleteOnClose );
+ 
+       QWidget * main_widget = new QWidget( this );

diff --git a/media-sound/lmms/lmms-1.2.2-r1.ebuild 
b/media-sound/lmms/lmms-1.2.2-r2.ebuild
similarity index 97%
rename from media-sound/lmms/lmms-1.2.2-r1.ebuild
rename to media-sound/lmms/lmms-1.2.2-r2.ebuild
index 2f8132cd28a8..06b9e57473c3 100644
--- a/media-sound/lmms/lmms-1.2.2-r1.ebuild
+++ b/media-sound/lmms/lmms-1.2.2-r2.ebuild
@@ -71,6 +71,7 @@ S="${WORKDIR}/${PN}"
 PATCHES=(
        "${FILESDIR}/${PN}-1.2.2-no_compress_man.patch" #733284
        "${FILESDIR}/${PN}-1.2.2-plugin-path.patch" #907285
+       "${FILESDIR}/${PN}-1.2.2-kwidgetsaddons.patch"
 )
 
 src_configure() {

Reply via email to