commit:     f5d15d8e9a88ae315fb2eef855d1d6461f74d01b
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 12 19:44:22 2017 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Oct 12 21:17:00 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f5d15d8e

net-irc/konversation: Fix crash on extended joins

Package release cycle is slow.

Package-Manager: Portage-2.3.11, Repoman-2.3.3

 .../files/konversation-1.7.2-extjoin-crash.patch   | 47 +++++++++++++
 .../files/konversation-1.7.2-focus.patch           | 25 +++++++
 .../files/konversation-1.7.2-memleak.patch         | 33 ++++++++++
 net-irc/konversation/konversation-1.7.2-r1.ebuild  | 77 ++++++++++++++++++++++
 4 files changed, 182 insertions(+)

diff --git a/net-irc/konversation/files/konversation-1.7.2-extjoin-crash.patch 
b/net-irc/konversation/files/konversation-1.7.2-extjoin-crash.patch
new file mode 100644
index 00000000000..97fc4c1494c
--- /dev/null
+++ b/net-irc/konversation/files/konversation-1.7.2-extjoin-crash.patch
@@ -0,0 +1,47 @@
+From 783dc0f595ecf90e37225a57da0ffa2c030a470d Mon Sep 17 00:00:00 2001
+From: Peter Simonsson <peter.simons...@gmail.com>
+Date: Sat, 10 Jun 2017 20:41:50 +0200
+Subject: Fix crash in join handling in inputfilter
+
+Make sure to check size of parameter list for extended join.
+
+BUG:378854
+---
+ src/irc/inputfilter.cpp | 19 ++++++-------------
+ 1 file changed, 6 insertions(+), 13 deletions(-)
+
+diff --git a/src/irc/inputfilter.cpp b/src/irc/inputfilter.cpp
+index 53f3b2c..f273d30 100644
+--- a/src/irc/inputfilter.cpp
++++ b/src/irc/inputfilter.cpp
+@@ -575,21 +575,14 @@ void InputFilter::parseClientCommand(const QString 
&prefix, const QString &comma
+         QString account;
+         QString realName;
+ 
+-        if (!m_server->hasExtendedJoin())
+-        {
+-            channelName = trailing;
+-            // Sometimes JOIN comes without ":" in front of the channel name
+-        }
+-        else
++        channelName = parameterList[0];
++
++        if (m_server->hasExtendedJoin() && plHas(3))
+         {
+-            channelName = parameterList[0];
+-            account = parameterList[1];
+-            realName = parameterList[2];
++            if (parameterList[1] != "*")
++                account = parameterList[1];
+ 
+-            if (account == "*")
+-            {
+-                account = QString();
+-            }
++            realName = parameterList[2];
+         }
+ 
+         // Did we join the channel, or was it someone else?
+-- 
+cgit v0.11.2
+

diff --git a/net-irc/konversation/files/konversation-1.7.2-focus.patch 
b/net-irc/konversation/files/konversation-1.7.2-focus.patch
new file mode 100644
index 00000000000..b42bed488f3
--- /dev/null
+++ b/net-irc/konversation/files/konversation-1.7.2-focus.patch
@@ -0,0 +1,25 @@
+From 3263b47db2d0aab78d6a6fbc99682ac9b5ef2f2e Mon Sep 17 00:00:00 2001
+From: Eike Hein <h...@kde.org>
+Date: Wed, 21 Jun 2017 06:36:26 +0900
+Subject: Don't commit on focus loss.
+
+---
+ src/irc/channel.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/irc/channel.cpp b/src/irc/channel.cpp
+index a431c80..a5c313e 100644
+--- a/src/irc/channel.cpp
++++ b/src/irc/channel.cpp
+@@ -292,7 +292,7 @@ Channel::Channel(QWidget* parent, const QString& _name) : 
ChatWindow(parent)
+     connect(nicknameCombobox,SIGNAL 
(activated(int)),this,SLOT(nicknameComboboxChanged()));
+ 
+     if(nicknameCombobox->lineEdit())
+-        connect(nicknameCombobox->lineEdit(), SIGNAL 
(editingFinished()),this,SLOT(nicknameComboboxChanged()));
++        connect(nicknameCombobox->lineEdit(), SIGNAL 
(returnPressed()),this,SLOT(nicknameComboboxChanged()));
+ 
+ 
+     connect(&userhostTimer,SIGNAL (timeout()),this,SLOT (autoUserhost()));
+-- 
+cgit v0.11.2
+

diff --git a/net-irc/konversation/files/konversation-1.7.2-memleak.patch 
b/net-irc/konversation/files/konversation-1.7.2-memleak.patch
new file mode 100644
index 00000000000..c079809f0c6
--- /dev/null
+++ b/net-irc/konversation/files/konversation-1.7.2-memleak.patch
@@ -0,0 +1,33 @@
+From cb2c91f06bc9247520474372d163bd0520f4db42 Mon Sep 17 00:00:00 2001
+From: Gun Park <mujjin...@gmail.com>
+Date: Mon, 10 Jul 2017 16:59:28 +0900
+Subject: Fix memory leak
+
+Reviewers: hein
+
+Reviewed By: hein
+
+Differential Revision: https://phabricator.kde.org/D6580
+---
+ src/viewer/viewcontainer.cpp | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/viewer/viewcontainer.cpp b/src/viewer/viewcontainer.cpp
+index 31ff633..94d498e 100644
+--- a/src/viewer/viewcontainer.cpp
++++ b/src/viewer/viewcontainer.cpp
+@@ -2786,9 +2786,8 @@ void ViewContainer::showJoinChannelDialog()
+     if (dlg->exec() == QDialog::Accepted)
+     {
+         Server *server = 
Application::instance()->getConnectionManager()->getServerByConnectionId(dlg->connectionId());
+-        if (!server)
+-          return;
+-        server->sendJoinCommand(dlg->channel(), dlg->password());
++        if (server)
++            server->sendJoinCommand(dlg->channel(), dlg->password());
+     }
+     delete dlg;
+ }
+-- 
+cgit v0.11.2
+

diff --git a/net-irc/konversation/konversation-1.7.2-r1.ebuild 
b/net-irc/konversation/konversation-1.7.2-r1.ebuild
new file mode 100644
index 00000000000..91f420e6b1d
--- /dev/null
+++ b/net-irc/konversation/konversation-1.7.2-r1.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+KDE_HANDBOOK="forceoptional"
+inherit kde5
+
+DESCRIPTION="A user friendly IRC Client"
+HOMEPAGE="https://www.kde.org/applications/internet/konversation/ 
https://konversation.kde.org";
+SRC_URI="mirror://kde/stable/${PN}/${PV/_/-}/src/${P/_/-}.tar.xz"
+
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~x86"
+IUSE="+crypt"
+
+DEPEND="
+       $(add_frameworks_dep karchive)
+       $(add_frameworks_dep kbookmarks)
+       $(add_frameworks_dep kcodecs)
+       $(add_frameworks_dep kcompletion)
+       $(add_frameworks_dep kconfig)
+       $(add_frameworks_dep kconfigwidgets)
+       $(add_frameworks_dep kcoreaddons)
+       $(add_frameworks_dep kcrash)
+       $(add_frameworks_dep kdbusaddons)
+       $(add_frameworks_dep kemoticons)
+       $(add_frameworks_dep kglobalaccel)
+       $(add_frameworks_dep ki18n)
+       $(add_frameworks_dep kiconthemes)
+       $(add_frameworks_dep kidletime)
+       $(add_frameworks_dep kio)
+       $(add_frameworks_dep kitemviews)
+       $(add_frameworks_dep knotifications)
+       $(add_frameworks_dep knotifyconfig)
+       $(add_frameworks_dep kparts)
+       $(add_frameworks_dep kservice)
+       $(add_frameworks_dep ktextwidgets)
+       $(add_frameworks_dep kwallet)
+       $(add_frameworks_dep kwidgetsaddons)
+       $(add_frameworks_dep kwindowsystem)
+       $(add_frameworks_dep kxmlgui)
+       $(add_qt_dep qtdbus)
+       $(add_qt_dep qtgui)
+       $(add_qt_dep qtnetwork)
+       $(add_qt_dep qtwidgets)
+       $(add_qt_dep qtxml)
+       media-libs/phonon[qt5(+)]
+       sys-devel/gettext
+       crypt? ( app-crypt/qca:2[qt5] )
+"
+RDEPEND="${DEPEND}
+       !net-irc/konversation:4
+       crypt? ( app-crypt/qca:2[ssl] )
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-extjoin-crash.patch"
+       "${FILESDIR}/${P}-memleak.patch"
+       "${FILESDIR}/${P}-focus.patch"
+)
+
+src_configure() {
+       local mycmakeargs=(
+               $(cmake-utils_use_find_package crypt Qca-qt5)
+       )
+
+       kde5_src_configure
+}
+
+src_install() {
+       kde5_src_install
+
+       # Bug 616162
+       insinto /etc/xdg
+       doins "${FILESDIR}"/konversationrc
+}

Reply via email to