Package: release.debian.org Severity: normal Tags: jessie User: release.debian....@packages.debian.org Usertags: pu
Hi, I would like to fix the bugs #800021 and #770840 of the ark package in stable. The current behaviour is that the version of ark in stable crashes when working on nested files, and it also crashes on exit when there is an open file. The patch for fixing this was provided by upstream, backporting the fix to the 4.14 branch. I'm attaching the diff file for the proposed 4:4.14.2-2+deb8u1 upload. Happy hacking, -- System Information: Debian Release: stretch/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'buildd-unstable'), (500, 'testing'), (500, 'stable'), (50, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386, armhf Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Init: systemd (via /run/systemd/system)
diff --git a/debian/changelog b/debian/changelog index 331b38f..f43137e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +ark (4:4.14.2-2+deb8u1) jessie; urgency=medium + + * Add new upstream patch: + Stop-crashing-on-exit-when-being-used-solely-as-a-KPart.patch. + Thanks to Nick Leverton for reporting (Closes: 800021, 770840) + + -- Maximiliano Curia <m...@debian.org> Fri, 21 Oct 2016 20:52:52 +0200 + ark (4:4.14.2-2) unstable; urgency=medium * New upstream patch: upstream_remove_part_from_KXMLGUIFactory_on_exit diff --git a/debian/patches/Stop-crashing-on-exit-when-being-used-solely-as-a-KPart.patch b/debian/patches/Stop-crashing-on-exit-when-being-used-solely-as-a-KPart.patch new file mode 100644 index 0000000..5afa004 --- /dev/null +++ b/debian/patches/Stop-crashing-on-exit-when-being-used-solely-as-a-KPart.patch @@ -0,0 +1,77 @@ +From: Raphael Kubo da Costa <rak...@freebsd.org> +Date: Mon, 24 Nov 2014 01:37:06 +0200 +Subject: Stop crashing on exit when being used solely as a KPart. + +This change fixes a crash introduced by commit 3b981ca ("Remove Part +from KXMLGUIFactory on exit"). + +Part::~Part() is the wrong place to call KXMLGUIFactory::removeClient(), +as it assumes addClient() had been called in the first place. + +This is only true if Ark is called as a standalone program, since that +is done in MainWindow::loadPart()'s call to KXMLGuiWindow::createGUI(). + +Conversely, if the Ark KPart is being used as an embedded viewer in, +say, Konqueror or to preview an archive inside an archive (ie. Ark +inside Ark) that does not hold true and we try to access a +KXMLGUIFactory that does not exist. + +Instead, call KXMLGuiWindow::removeClient() in MainWindow's destructor, +since in this case we are certain that addClient() was been called +before. + +CCBUG: 341187 + +(cherry picked from commit 9c30f30b38c36a31e6fcb3aa047a0247ac5a22fb) +This was committed for completeness, as there will be no additional +releases from the KDE/4.14 branch. + +Conflicts: + part/part.cpp +--- + app/mainwindow.cpp | 3 +++ + part/part.cpp | 3 --- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp +index aee8231..181fe76 100644 +--- a/app/mainwindow.cpp ++++ b/app/mainwindow.cpp +@@ -38,6 +38,7 @@ + #include <KDebug> + #include <KEditToolBar> + #include <KShortcutsDialog> ++#include <KXMLGUIFactory> + + #include <QDragEnterEvent> + #include <QDragMoveEvent> +@@ -69,6 +70,8 @@ MainWindow::~MainWindow() + if (m_recentFilesAction) { + m_recentFilesAction->saveEntries(KGlobal::config()->group("Recent Files")); + } ++ ++ guiFactory()->removeClient(m_part); + delete m_part; + m_part = 0; + } +diff --git a/part/part.cpp b/part/part.cpp +index bae4882..09fe1cb 100644 +--- a/part/part.cpp ++++ b/part/part.cpp +@@ -53,7 +53,6 @@ + #include <KStandardGuiItem> + #include <KTempDir> + #include <KToggleAction> +-#include <KXMLGUIFactory> + + #include <QAction> + #include <QCursor> +@@ -138,8 +137,6 @@ Part::Part(QWidget *parentWidget, QObject *parent, const QVariantList& args) + + Part::~Part() + { +- factory()->removeClient(this); +- + saveSplitterSizes(); + + m_extractFilesAction->menu()->deleteLater(); diff --git a/debian/patches/series b/debian/patches/series index f3d27d5..cc77aa5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ use_libarchive_for_zip_files upstream_remove_part_from_KXMLGUIFactory_on_exit +Stop-crashing-on-exit-when-being-used-solely-as-a-KPart.patch