summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-base/ark')
-rw-r--r--kde-base/ark/ChangeLog8
-rw-r--r--kde-base/ark/ark-4.14.3-r1.ebuild43
-rw-r--r--kde-base/ark/files/ark-4.14.3-crash.patch81
3 files changed, 131 insertions, 1 deletions
diff --git a/kde-base/ark/ChangeLog b/kde-base/ark/ChangeLog
index 2185200dff35..1c72968e0d3d 100644
--- a/kde-base/ark/ChangeLog
+++ b/kde-base/ark/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for kde-base/ark
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/ark/ChangeLog,v 1.344 2014/12/11 15:44:58 mrueg Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/ark/ChangeLog,v 1.345 2014/12/26 15:19:04 kensington Exp $
+
+*ark-4.14.3-r1 (26 Dec 2014)
+
+ 26 Dec 2014; Michael Palimaka <kensington@gentoo.org> +ark-4.14.3-r1.ebuild,
+ +files/ark-4.14.3-crash.patch:
+ Backport patch from upstream solving a crash wrt bug #533612.
11 Dec 2014; Manuel Rüger <mrueg@gentoo.org> -ark-4.14.2.ebuild:
Remove KDE SC 4.14.2
diff --git a/kde-base/ark/ark-4.14.3-r1.ebuild b/kde-base/ark/ark-4.14.3-r1.ebuild
new file mode 100644
index 000000000000..f850a52e396c
--- /dev/null
+++ b/kde-base/ark/ark-4.14.3-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/kde-base/ark/ark-4.14.3-r1.ebuild,v 1.1 2014/12/26 15:19:04 kensington Exp $
+
+EAPI=5
+
+KDE_HANDBOOK="optional"
+inherit kde4-base
+
+DESCRIPTION="KDE Archiving tool"
+HOMEPAGE="http://www.kde.org/applications/utilities/ark
+http://utils.kde.org/projects/ark"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+archive +bzip2 debug lzma"
+
+DEPEND="
+ $(add_kdebase_dep libkonq)
+ sys-libs/zlib
+ archive? ( >=app-arch/libarchive-2.6.1:=[bzip2?,lzma?,zlib] )
+"
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+# dbus problem
+
+PATCHES=( "${FILESDIR}/${P}-crash.patch" )
+
+src_configure() {
+ local mycmakeargs=(
+ $(cmake-utils_use_with archive LibArchive)
+ $(cmake-utils_use_with bzip2 BZip2)
+ $(cmake-utils_use_with lzma LibLZMA)
+ )
+ kde4-base_src_configure
+}
+
+pkg_postinst() {
+ kde4-base_pkg_postinst
+
+ if ! has_version app-arch/rar ; then
+ elog "For creating rar archives, install app-arch/rar"
+ fi
+}
diff --git a/kde-base/ark/files/ark-4.14.3-crash.patch b/kde-base/ark/files/ark-4.14.3-crash.patch
new file mode 100644
index 000000000000..5eccf82062fd
--- /dev/null
+++ b/kde-base/ark/files/ark-4.14.3-crash.patch
@@ -0,0 +1,81 @@
+From cd8ad2761d41d1ec0a18cff7f4d166b53c899fc2 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <rakuco@FreeBSD.org>
+Date: Mon, 24 Nov 2014 01:37:06 +0200
+Subject: [PATCH] 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();
+--
+2.0.5
+