Package: pidgin
Version: 2.11.0-0+deb8u1
Severity: normal
Tags: patch

Dear Maintainer,

As reported in the upstream mailing list:

https://pidgin.im/pipermail/support/2016-September/029627.html

SASL authentication is currently broken with the Pidgin client with any server
that advertises the EXTERNAL authentication method. This includes
irc.freenode.net since September.

Upstream already fixed it:

https://bitbucket.org/pidgin/main/commits/610656636af6d1d6fdd6723d5ef311c903b6a804?at=default

Attached is the patch backported from that commit. I tested this on Debian
Jessie and I can authenticate again on freenode.

Given freenode is probably the largest IRC network out there, please consider,
if possible, a stable update for Jessie. Thank you!

Kind regards,
Luca Boccassi


-- System Information:
Debian Release: 8.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'proposed-updates'), (500,
'stable'), (104, 'testing'), (103, 'unstable'), (102, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.7.0-0.bpo.1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages pidgin depends on:
ii  gconf2                      3.2.6-3
ii  libatk1.0-0                 2.14.0-1
ii  libc6                       2.19-18+deb8u7
ii  libcairo2                   1.14.0-2.1+deb8u1
ii  libdbus-1-3                 1.8.22-0+deb8u1
ii  libdbus-glib-1-2            0.102-1
ii  libfontconfig1              2.11.0-6.7
ii  libfreetype6                2.5.2-3+deb8u1
ii  libgadu3                    1:1.12.0-5
ii  libgdk-pixbuf2.0-0          2.31.1-2+deb8u5
ii  libglib2.0-0                2.42.1-1+b1
ii  libgstreamer0.10-0          0.10.36-1.5
ii  libgtk2.0-0                 2.24.25-3+deb8u1
ii  libgtkspell0                2.0.16-1.1
ii  libice6                     2:1.0.9-1+b1
ii  libpango-1.0-0              1.36.8-3
ii  libpangocairo-1.0-0         1.36.8-3
ii  libpangoft2-1.0-0           1.36.8-3
ii  libpurple0                  2.11.0-0+deb8u1
ii  libsm6                      2:1.2.2-1+b1
ii  libx11-6                    2:1.6.2-3
ii  libxml2                     2.9.1+dfsg1-5+deb8u3
ii  libxss1                     1:1.2.2-1
ii  perl-base [perlapi-5.20.2]  5.20.2-3+deb8u6
ii  pidgin-data                 2.11.0-0+deb8u1

Versions of packages pidgin recommends:
ii  gstreamer0.10-alsa          0.10.36-2
pn  gstreamer0.10-ffmpeg        <none>
ii  gstreamer0.10-plugins-base  0.10.36-2
ii  gstreamer0.10-plugins-good  0.10.31-3+nmu4+deb8u2

Versions of packages pidgin suggests:
ii  libsqlite3-0  3.8.7.1-1+deb8u2

-- no debconf information



>From 610656636af6d1d6fdd6723d5ef311c903b6a804 Mon Sep 17 00:00:00 2001
From: Kernc <kernc...@gmail.com>
Date: Wed, 21 Sep 2016 23:24:53 +0000
Subject: [PATCH] IRC: Skip EXTERNAL SASL auth mechanism

Makes Freenode and other servers that prefer SASL EXTERNAL
fingerprint authentication work again.

Ref:
  "Cannot connect to IRC (Freenode)"
  https://pidgin.im/pipermail/support/2016-September/029627.html

--- a/libpurple/protocols/irc/msgs.c
+++ b/libpurple/protocols/irc/msgs.c
@@ -1574,6 +1574,8 @@
        int id = 0;
        PurpleConnection *gc = purple_account_get_connection(irc->account);
        const char *mech_list = NULL;
+       char *pos;
+       size_t index;

        if (strncmp(args[2], "sasl ", 6))
                return;
@@ -1637,6 +1639,15 @@
        }

        irc->sasl_mechs = g_string_new(mech_list);
+       /* Drop EXTERNAL mechanism since we don't support it */
+       if ((pos = strstr(irc->sasl_mechs->str, "EXTERNAL"))) {
+               index = pos - irc->sasl_mechs->str;
+               g_string_erase(irc->sasl_mechs, index, strlen("EXTERNAL"));
+               /* Remove space which separated this mech from the next */
+               if ((irc->sasl_mechs->str)[index] == ' ') {
+                       g_string_erase(irc->sasl_mechs, index, 1);
+               }
+       }

Reply via email to