summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Heidelberg <david@ixit.cz>2019-10-08 22:05:54 +0200
committerMatt Turner <mattst88@gentoo.org>2019-12-04 15:51:17 -0500
commitbfc9cd845aca68b641435f7758426aecc273c63a (patch)
tree052d20f3fe5621d1bfd12c78babbfd4acc6a801a
parentmail-client/geary: bump 3.34.2 (diff)
downloadgentoo-bfc9cd845aca68b641435f7758426aecc273c63a.tar.gz
gentoo-bfc9cd845aca68b641435f7758426aecc273c63a.tar.bz2
gentoo-bfc9cd845aca68b641435f7758426aecc273c63a.zip
net-irc/telepathy-idle: fix 100% cpu usage and tests
Added latest fixes from 0.2.0 branch. - fixes tests - fixes extreme CPU usage. It's unlikely that new version (0.2.1 nor 1.x) will be released soon, so let's merge these patches. Closes: https://bugs.gentoo.org/636576 Closes: https://bugs.gentoo.org/684832 Closes: https://github.com/gentoo/gentoo/pull/13221 Signed-off-by: David Heidelberg <david@ixit.cz> Signed-off-by: Matt Turner <mattst88@gentoo.org>
-rw-r--r--net-irc/telepathy-idle/files/telepathy-idle-0.2.0-fixes.patch223
-rw-r--r--net-irc/telepathy-idle/telepathy-idle-0.2.0-r2.ebuild45
2 files changed, 268 insertions, 0 deletions
diff --git a/net-irc/telepathy-idle/files/telepathy-idle-0.2.0-fixes.patch b/net-irc/telepathy-idle/files/telepathy-idle-0.2.0-fixes.patch
new file mode 100644
index 000000000000..07f14f9f4dde
--- /dev/null
+++ b/net-irc/telepathy-idle/files/telepathy-idle-0.2.0-fixes.patch
@@ -0,0 +1,223 @@
+From bf6d596e40e5b9426a68dcd22aa62a697457c4f7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Sat, 13 Feb 2016 10:08:42 +0100
+Subject: [PATCH 1/6] ctcp: Don't bling the non-bling
+
+When stripping color codes, we currently remove any sequence of digits
+following ^C. As color codes use at most two digits, this means that we
+also remove any numbers at the start of the colored text - make sure we
+stop doing that and only remove digits that are actually part of a color
+code.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=94189
+---
+ src/idle-ctcp.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/idle-ctcp.c b/src/idle-ctcp.c
+index f282360..f28bf4b 100644
+--- a/src/idle-ctcp.c
++++ b/src/idle-ctcp.c
+@@ -98,13 +98,18 @@ gchar *idle_ctcp_kill_blingbling(const gchar *msg) {
+ case '\x03': /* ^C */
+ iter++;
+
+- while (isdigit(*iter))
++ /* Color codes are 1-2 digits */
++ if (isdigit(*iter))
++ iter++;
++ if (isdigit(*iter))
+ iter++;
+
+ if (*iter == ',') {
+ iter++;
+
+- while (isdigit(*iter))
++ if (isdigit(*iter))
++ iter++;
++ if (isdigit(*iter))
+ iter++;
+ }
+ break;
+--
+2.23.0
+
+From 5a2510ddea8f165f0808a8841e1dca311c003e20 Mon Sep 17 00:00:00 2001
+From: Diane Trout <diane@ghic.org>
+Date: Sat, 4 Nov 2017 23:03:26 -0700
+Subject: [PATCH 2/6] Update self-signed certificate to 2048 bytes with SHA-256
+ signature
+
+Valid for 10 years
+---
+ tests/twisted/tools/idletest.cert | 26 +++++++++++++++++--------
+ tests/twisted/tools/idletest.key | 32 ++++++++++++++++++++++++-------
+ 2 files changed, 43 insertions(+), 15 deletions(-)
+
+diff --git a/tests/twisted/tools/idletest.cert b/tests/twisted/tools/idletest.cert
+index 655abc2..7ea6bcc 100644
+--- a/tests/twisted/tools/idletest.cert
++++ b/tests/twisted/tools/idletest.cert
+@@ -1,10 +1,20 @@
+ -----BEGIN CERTIFICATE-----
+-MIIBTzCB+gIBATANBgkqhkiG9w0BAQQFADAzMRIwEAYDVQQKEwl0ZWxlcGF0aHkx
+-HTAbBgNVBAsTFHRlbGVwYXRoeSBkZXZlbG9wZXJzMB4XDTA5MDExNDE3NDc0N1oX
+-DTA5MDExNDE3NDg0N1owMzESMBAGA1UEChMJdGVsZXBhdGh5MR0wGwYDVQQLExR0
+-ZWxlcGF0aHkgZGV2ZWxvcGVyczBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQC9z/pi
+-zEMeL+bO3giJVGHGrOHLE7AfDorArwmA0u8Cgu06+J+SW+NJnkj8At4bioxREge6
+-yeD6+cHCC9kzXrmXAgMBAAEwDQYJKoZIhvcNAQEEBQADQQBf1qg0gzSztx5pqqM8
+-3wI5cEc7k13EzU6X2SkSCSxlMc4pF0hPdr0LuZJpeKBohIgKQ59+3Ny0LuUMEKYW
+-ikGr
++MIIDUDCCAjigAwIBAgIBATANBgkqhkiG9w0BAQsFADAzMRIwEAYDVQQKEwl0ZWxl
++cGF0aHkxHTAbBgNVBAsTFHRlbGVwYXRoeSBkZXZlbG9wZXJzMB4XDTE3MTEwNTAw
++NTEwMFoXDTE4MTEwNTAwNTEwMFowMzESMBAGA1UEChMJdGVsZXBhdGh5MR0wGwYD
++VQQLExR0ZWxlcGF0aHkgZGV2ZWxvcGVyczCCASIwDQYJKoZIhvcNAQEBBQADggEP
++ADCCAQoCggEBAL3wfZoTzmJqQyjw0tToAflpdmQMTNpzgXvH+uiuu4rWk7oGJsBN
++HZfe4gkoYNLL8PwOGEQcIUN4Y0JU/mc9mSe44Vi0G0t/uJ/gI+CNtHzHjwtwCnYP
++XsbCE69CsarvDVbsQHS6kWfgCYxMA0l+cydUfxuyIoFWjeM4hZs0JwdBGBTAtZkj
++3xo+7Ee3xNBaaOtmoJO/QduAVA0UgiWU69m7Q+5aIuIl9PGOSL4MHqNXq/nwX5Ky
++aFBpXdzmrVn8BophkBgOawp0e+Rhk5fCelyy54lIfpUxeOTP6EtAgsZYbZBPjsuz
++8ewJbdnzcOCwTJpKQv9aHhkTKcK2PkN6tJMCAwEAAaNvMG0wDAYDVR0TAQH/BAIw
++ADAdBgNVHQ4EFgQUuG8blqmQ1SEj/x5OhBc58XFv6vcwCwYDVR0PBAQDAgXgMBEG
++CWCGSAGG+EIBAQQEAwIGQDAeBglghkgBhvhCAQ0EERYPeGNhIGNlcnRpZmljYXRl
++MA0GCSqGSIb3DQEBCwUAA4IBAQBJCT/EPWqv/wUDn7jK4nRXXXwtIL7eYYTAvcJh
++gxtrkkNB1LAp6mnb1WOw+Wbdpf2IgTqfAvpzCRL+kCM80Pqh365JlA5JflzhWxsJ
++xtJQfNfiZhgXKN1rm5lT+U/WgGR6A1serbxUiRN2O6wB8nxtoc7sBJh18pcrwpam
++vOGAolbePV8HPfyBRkCnSw1X6BdifEtxlRCfVWELSI6xQHX8OPTU+uGcvte5uAEi
++7CRRJHlUoojyLOxlJ6IeXh7MjrDIi6tHDqVR9MlRRN3oXhvsN/TtsZUuuC7s280W
++oapk/x7WNDSQsdsi0bmTLrJoZgHzaPRJPCwBFzbj/T1kCC0B
+ -----END CERTIFICATE-----
+diff --git a/tests/twisted/tools/idletest.key b/tests/twisted/tools/idletest.key
+index 3a80dab..d579266 100644
+--- a/tests/twisted/tools/idletest.key
++++ b/tests/twisted/tools/idletest.key
+@@ -1,9 +1,27 @@
+ -----BEGIN RSA PRIVATE KEY-----
+-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
+ -----END RSA PRIVATE KEY-----
+--
+2.23.0
+
+From 0ce3a8fa2bd3f4e72358bb53ecd0acf8fe448483 Mon Sep 17 00:00:00 2001
+From: Diane Trout <diane@ghic.org>
+Date: Sat, 4 Nov 2017 23:32:32 -0700
+Subject: [PATCH 3/6] Avoid errors from Python caused by the deliberatly
+ invalid Unicode
+
+Because stream.nick is Unicode when sendMessage combines the command,
+nick, and invalid utf8 python 2.7 ends up converting everything to
+Unicode. Since this test deliberately includes invalid Unicode, Python
+notices and throws an exception.
+
+In Python 3, network traffic is usually encoded as bytes. So I thought
+coercing the nick to bytes would be appropriate, and as bytes can contain
+anything including invalid Unicode, Python doesn't throw an exception.
+---
+ tests/twisted/messages/invalid-utf8.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/twisted/messages/invalid-utf8.py b/tests/twisted/messages/invalid-utf8.py
+index a48c2f4..725e3bd 100644
+--- a/tests/twisted/messages/invalid-utf8.py
++++ b/tests/twisted/messages/invalid-utf8.py
+@@ -33,7 +33,7 @@ def test_with_message(q, stream, parts):
+
+ # Idle's default character set is UTF-8. We send it a message which is
+ # basically UTF-8, except that one of its code points is invalid.
+- stream.sendMessage('PRIVMSG', stream.nick, ':%s' % invalid_utf8,
++ stream.sendMessage('PRIVMSG', bytes(stream.nick), ':%s' % invalid_utf8,
+ prefix='remoteuser')
+
+ # Idle should signal that *something* was received. If it hasn't validated
+--
+2.23.0
+
+From acf5fcf4d830ae0b5953d8ded8eba4c17726c6f3 Mon Sep 17 00:00:00 2001
+From: Diane Trout <diane@ghic.org>
+Date: Mon, 6 Nov 2017 21:46:00 -0800
+Subject: [PATCH 4/6] Returning FALSE from the timer function causes the
+ timeout to be destroyed
+
+I asked one of the polari devs and was told that yes it is ok to set
+the timer id to zero in the timer function.
+
+With this patch make check works without changing any of the expected
+test results and without any coredumps
+---
+ src/idle-connection.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/idle-connection.c b/src/idle-connection.c
+index 6ab5fea..71c020f 100644
+--- a/src/idle-connection.c
++++ b/src/idle-connection.c
+@@ -600,6 +600,7 @@ _force_disconnect (gpointer data)
+
+ IDLE_DEBUG("gave up waiting, forcibly disconnecting");
+ idle_server_connection_force_disconnect(priv->conn);
++ priv->force_disconnect_id = 0;
+ return FALSE;
+ }
+
+--
+2.23.0
+
+From 5e5b677173ef64055b4a7073cb5a15066fc03f70 Mon Sep 17 00:00:00 2001
+From: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+Date: Fri, 14 Feb 2014 12:12:54 +0100
+Subject: [PATCH 5/6] idle-connection: make sure to always reset
+ force_disconnect_id
+
+Recent GLib raises a critical when trying to remove an invalid source.
+
+(cherry picked from commit 12211654baa75db13a05b5c2b3293d1378fcf7a2)
+---
+ src/idle-connection.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/idle-connection.c b/src/idle-connection.c
+index 71c020f..8614d52 100644
+--- a/src/idle-connection.c
++++ b/src/idle-connection.c
+@@ -585,6 +585,7 @@ static gboolean _finish_shutdown_idle_func(gpointer data) {
+ IdleConnectionPrivate *priv = self->priv;
+ if (priv->force_disconnect_id != 0) {
+ g_source_remove(priv->force_disconnect_id);
++ priv->force_disconnect_id = 0;
+ }
+
+ tp_base_connection_finish_shutdown(conn);
+--
+2.23.0
+
diff --git a/net-irc/telepathy-idle/telepathy-idle-0.2.0-r2.ebuild b/net-irc/telepathy-idle/telepathy-idle-0.2.0-r2.ebuild
new file mode 100644
index 000000000000..7a2b194475db
--- /dev/null
+++ b/net-irc/telepathy-idle/telepathy-idle-0.2.0-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+inherit python-single-r1
+
+DESCRIPTION="Full-featured IRC connection manager for Telepathy"
+HOMEPAGE="https://cgit.freedesktop.org/telepathy/telepathy-idle"
+SRC_URI="https://telepathy.freedesktop.org/releases/${PN}/${P}.tar.gz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86 ~x86-linux"
+IUSE="test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+BDEPEND="
+ virtual/pkgconfig
+ test? ( dev-python/twisted-words )
+"
+RDEPEND="
+ >=dev-libs/dbus-glib-0.51
+ >=dev-libs/glib-2.32:2
+ >=net-libs/telepathy-glib-0.21
+ sys-apps/dbus
+ ${PYTHON_DEPS}
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fixes.patch"
+)
+
+src_prepare() {
+ default
+
+ # Failed in 0.1.16 and code has not moved since october
+ # Upstream is working on 1.0
+ sed -e 's:connect/server-quit-ignore.py::' \
+ -e 's:connect/server-quit-noclose.py::' \
+ -i tests/twisted/Makefile.{am,in} || die
+}