diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2017-10-12 21:44:22 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2017-10-12 23:17:00 +0200 |
commit | f5d15d8e9a88ae315fb2eef855d1d6461f74d01b (patch) | |
tree | de4bb100354ef0418dc271cc886aa3e792c04ab2 /net-irc | |
parent | kde-misc/yakuake: Fixes for Qt-5.9 and Wayland sessions (diff) | |
download | gentoo-f5d15d8e9a88ae315fb2eef855d1d6461f74d01b.tar.gz gentoo-f5d15d8e9a88ae315fb2eef855d1d6461f74d01b.tar.bz2 gentoo-f5d15d8e9a88ae315fb2eef855d1d6461f74d01b.zip |
net-irc/konversation: Fix crash on extended joins
Package release cycle is slow.
Package-Manager: Portage-2.3.11, Repoman-2.3.3
Diffstat (limited to 'net-irc')
4 files changed, 182 insertions, 0 deletions
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 000000000000..97fc4c1494c2 --- /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.simonsson@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 000000000000..b42bed488f33 --- /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 <hein@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 000000000000..c079809f0c60 --- /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 <mujjingun@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 000000000000..91f420e6b1da --- /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 +} |