LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 10-30-2014, 01:47 PM   #1
arcctgx
Member
 
Registered: Mar 2006
Location: EU
Distribution: Slackware, Gentoo
Posts: 58

Rep: Reputation: 23
Pidgin: no Gadu-Gadu protocol after upgrading to 2.10.10


I upgraded pidgin-2.10.9 to 2.10.10 on Slackware64-14.1 using slackpkg. Now when I start the application the buddy list is empty. When I open "Manage accounts", my previously configured Gadu-Gadu account is listed as unknown protocol. In the "Modify account" window, Gadu-Gadu is not in the list of available protocols. Pidgin's debug window doesn't show any messages that could be related to the issue. Build information window states:

Quote:
Arguments to ./configure: '--prefix=/usr' '--libdir=/usr/lib64' '--sysconfdir=/etc' '--mandir=/usr/man' '--enable-dot=no' '--disable-schemas-install' '--enable-dbus' '--enable-gnutls=no' '--enable-nss=yes' '--with-nss-includes=/usr/include/nss' '--with-nss-libs=/usr/lib64/' '--with-nspr-includes=/usr/include/nspr' '--with-nspr-libs=/usr/lib64/' '--disable-vv' '--enable-gtkspell' '--enable-cyrus-sasl' '--enable-perl' '--disable-meanwhile' '--disable-avahi' '--disable-nm' '--program-prefix=' '--program-suffix=' '--build=x86_64-slackware-linux' 'build_alias=x86_64-slackware-linux' 'CFLAGS=-O2 -fPIC' 'PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/lib64/pkgconfig'

Print debugging messages: No
Plugins: Enabled
SSL: SSL support is present.

Library Support
Cyrus SASL: Enabled
D-Bus: Enabled
Evolution Addressbook: Disabled
Gadu-Gadu library (libgadu): Internal
GtkSpell: Enabled
GnuTLS: Disabled
GStreamer: Enabled
Mono: Disabled
NetworkManager: Disabled
Network Security Services (NSS): Enabled
Perl: Enabled
Tcl: Enabled
Tk: Enabled
UTF-8 DNS (IDN): Enabled
Voice and Video: Disabled
X Session Management: Enabled
XScreenSaver: Enabled
Zephyr library (libzephyr): Internal
Zephyr uses Kerberos: No
That's a standard Slackware64-14.1 package. After downgrading pidgin to 2.10.7 everything is back to normal (I can't downgrade to exactly 2.10.9 anymore, that package is gone from ftp servers).

Does anyone else have this issue? I'm trying to figure out whether it's a Slackware64 bug, an upstream bug, or somehow my fault.
 
Old 10-30-2014, 04:27 PM   #2
willysr
Senior Member
 
Registered: Jul 2004
Location: Jogja, Indonesia
Distribution: Slackware-Current
Posts: 4,750

Rep: Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856Reputation: 1856
In 2.10.10, the developer bumped libgadu internal to 1.12.0.
I'm not sure why this caused it to break

Anyway, i tried to make a SlackBuild for libgadu
Code:
#!/bin/sh

# Copyright 2014 Willy Sudiarto Raharjo <willysr@slackware-id.org>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

PKGNAM=libgadu
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) export ARCH=i486 ;;
    arm*) export ARCH=arm ;;
    # Unless $ARCH is already set, use uname -m for all other archs:
       *) export ARCH=$( uname -m ) ;;
  esac
fi

NUMJOBS=${NUMJOBS:-" -j6 "}

CWD=$(pwd)
TMP=${TMP:-/tmp}
PKG=$TMP/package-${PKGNAM}
rm -rf $PKG
mkdir -p $TMP $PKG

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
  LIBDIRSUFFIX=""
  ARCHQUADLET=""
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
  ARCHQUADLET=""
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2 -fPIC"
  LIBDIRSUFFIX="64"
  ARCHQUADLET=""
elif [ "$ARCH" = "arm" ]; then
  SLKCFLAGS="-O2 -march=armv4t"
  LIBDIRSUFFIX=""
  ARCHQUADLET="-gnueabi"
else
  SLKCFLAGS="-O2"
  LIBDIRSUFFIX=""
  ARCHQUADLET=""
fi

cd $TMP
rm -rf ${PKGNAM}-${VERSION}
tar xvf $CWD/${PKGNAM}-$VERSION.tar.?z* || exit 1
cd ${PKGNAM}-$VERSION || exit 1

# Make sure ownerships and permissions are sane:
chown -R root:root .
find . \
  \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
  -exec chmod 755 {} \; -o \
  \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
  -exec chmod 644 {} \;

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --mandir=/usr/man \
  --enable-static=no \
  --disable-tests \
  --build=$ARCH-slackware-linux$ARCHQUADLET || exit 1

# Build and install:
make $NUMJOBS || make || exit 1
make install DESTDIR=$PKG || exit 1

# Strip binaries:
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null

# Compress and link manpages, if any:
if [ -d $PKG/usr/man ]; then
  ( cd $PKG/usr/man
    for manpagedir in $(find . -type d -name "man*") ; do
      ( cd $manpagedir
        for eachpage in $( find . -type l -maxdepth 1) ; do
          ln -s $( readlink $eachpage ).gz $eachpage.gz
          rm $eachpage
        done
        gzip -9 *.*
      )
    done
  )
fi

# Compress info files, if any:
if [ -d $PKG/usr/info ]; then
  ( cd $PKG/usr/info
    rm -f dir
    gzip -9 *
  )
fi

# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \
  AUTHORS COPYING ChangeLog NEWS README \
  $PKG/usr/doc/${PKGNAM}-$VERSION

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

cd $PKG
/sbin/makepkg -l y -c n $TMP/${PKGNAM}-$VERSION-$ARCH-$BUILD.txz
Code:
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in.  You must
# make exactly 11 lines for the formatting to be correct.  It's also
# customary to leave one space after the ':'.

       |-----handy-ruler------------------------------------------------------|
libgadu: libgadu (Gadu Client Library)
libgadu:
libgadu: This library implements the client side of the Gadu-Gadu protocol
libgadu:
libgadu:
libgadu:
libgadu:
libgadu:
libgadu: For more info, see:  http://libgadu.net/
libgadu:
libgadu:
after installing libgadu and recompile pidgin, i got
Quote:
Pidgin 2.10.10 (libpurple 2.10.10)
unknown

Build Information
Arguments to ./configure: '--prefix=/usr' '--libdir=/usr/lib' '--sysconfdir=/etc' '--mandir=/usr/man' '--enable-dot=no' '--disable-schemas-install' '--enable-dbus' '--enable-gnutls=no' '--enable-nss=yes' '--with-nss-includes=/usr/include/nss' '--with-nss-libs=/usr/lib/' '--with-nspr-includes=/usr/include/nspr' '--with-nspr-libs=/usr/lib/' '--disable-vv' '--enable-gtkspell' '--enable-cyrus-sasl' '--enable-perl' '--disable-meanwhile' '--disable-avahi' '--disable-nm' '--program-prefix=' '--program-suffix=' '--build=i486-slackware-linux' 'build_alias=i486-slackware-linux' 'CFLAGS=-O2 -march=i486 -mtune=i686' 'LDFLAGS=-lgadu' 'PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'
Print debugging messages: No
Plugins: Enabled
SSL: SSL support is present.

Library Support
Cyrus SASL: Enabled
D-Bus: Enabled
Evolution Addressbook: Disabled
Gadu-Gadu library (libgadu): External
GtkSpell: Enabled
GnuTLS: Disabled
GStreamer: Enabled
Mono: Disabled
NetworkManager: Disabled
Network Security Services (NSS): Enabled
Perl: Enabled
Tcl: Enabled
Tk: Enabled
UTF-8 DNS (IDN): Enabled
Voice and Video: Disabled
X Session Management: Enabled
XScreenSaver: Enabled
Zephyr library (libzephyr): Internal
Zephyr uses Kerberos: No
please check if installing libgadu and recompiling pidgin solves your problem?

Last edited by willysr; 10-30-2014 at 04:38 PM.
 
2 members found this post helpful.
Old 11-01-2014, 07:29 AM   #3
elesmod
Member
 
Registered: Sep 2012
Distribution: Slackware
Posts: 88

Rep: Reputation: Disabled
I also have this problem. I've checked on my laptop, which is running Debian, and there gadu protocol on Pidgin 2.10.10 works fine. I'm going to check the slackbuild willysr wrote.

Last edited by elesmod; 11-01-2014 at 07:40 AM.
 
Old 11-01-2014, 08:21 AM   #4
elesmod
Member
 
Registered: Sep 2012
Distribution: Slackware
Posts: 88

Rep: Reputation: Disabled
It worked! Thanks willysr!
 
Old 11-01-2014, 11:24 AM   #5
arcctgx
Member
 
Registered: Mar 2006
Location: EU
Distribution: Slackware, Gentoo
Posts: 58

Original Poster
Rep: Reputation: 23
Thanks for your replies.

This problem is not Slackware specific, I'm also having the same issue on Gentoo. It seems that since version 2.10.10 there's no Gadu-Gadu protocol support when Pidgin's internal libgadu is used. As willysr and elesmod proved, using external libgadu fixes this. I guess this problem should be reported upstream.
 
Old 11-04-2014, 04:18 AM   #6
mancha
Member
 
Registered: Aug 2012
Posts: 484

Rep: Reputation: Disabled
Quote:
Originally Posted by arcctgx View Post
I upgraded pidgin-2.10.9 to 2.10.10 on Slackware64-14.1 using slackpkg. Now when I start the application the buddy list is empty. When I open "Manage accounts", my previously configured Gadu-Gadu account is listed as unknown protocol. In the "Modify account" window, Gadu-Gadu is not in the list of available protocols...I'm trying to figure out whether it's a Slackware64 bug, an upstream bug, or somehow my fault.
I looked into this and found Pidgin's GnuTLS checking logic is a bit broken now because of this commit. Basically, the problem manifests when
you build Pidgin without GnuTLS (Slackware uses NSS for SSL support) and the internal libgadu (as Slackware does).

You can fix with pidgin-2.10.10_internal-libgadu.diff. Download the patch and add line 82 to pidgin.SlackBuild:

Code:
80    -exec chmod 644 {} \;
81
82  patch -p1 --verbose < $CWD/pidgin-2.10.10_internal-libgadu.diff || exit 1
83
84  CFLAGS="$SLKCFLAGS" \
85  CXXFLAGS="$SLKCFLAGS" \
86  ./configure \
However, there's a catch. The patch does fix Slackware's Pidgin package but note that Gadu-Gadu communications won't be encrypted. I
am not familiar with Gadu-Gadu but wikipedia says SSL support in G-G is new and experimental. If you know Polish you can look through
official docs and confirm.

Why? Because libgadu only supports GnuTLS & OpenSSL while Pidgin/libpurple only supports GnuTLS & NSS (they intentionally don't support
OpenSSL). Seems the only way to have SSL for everything when using the internal libgadu is by building Pidgin against GnuTLS (not NSS).

Note: Slackware's Pidgin has not had SSL-capable Gadu-Gadu since at least Slackware 14.0 because that is when it started building Pidgin
against NSS. Earlier Slackware versions might have had SSL-ized Gadu-Gadu depending on when SSL was introduced to Gadu-Gadu and
when it was adopted by Pidgin.

You might want to let Pat know Slackware's Pidgin package is broken as is. He has a few options:
  • fix with the above patch (but then Gadu-Gadu will continue to lack SSL support)
  • build Pidgin against GnuTLS instead of NSS (then everything will link GnuTLS)
  • ship a system libgadu library and build Pidgin against that (libgadu can link GnuTLS and Pidgin can link NSS)
Also, you can let Pidgin upstream know its GnuTLS checking logic needs fixing.

--mancha

Last edited by mancha; 11-04-2014 at 04:52 AM.
 
2 members found this post helpful.
Old 11-04-2014, 11:19 AM   #7
arcctgx
Member
 
Registered: Mar 2006
Location: EU
Distribution: Slackware, Gentoo
Posts: 58

Original Poster
Rep: Reputation: 23
mancha, that's very informative, thank you!

I already opened a ticket at Pidgin's Trac, I just forgot to mention this in this thread. In case anyone wants to take a look, it's here: https://developer.pidgin.im/ticket/16431. One of the devs indeed suspects that the issue has something to do with GnuTLS. I'm going to try to help as much as I can, but I believe it would be great if others could contribute as well.

Regarding encryption in Gadu-Gadu, I must confess that I don't know much about it. I just remember that it has been "considered" for a very long time, but I didn't follow the development of the official client closely. Right now I found this blog post. Abbreviating and paraphrasing, it says that since GG10 build 784 the official client supports SSL encryption with key size of 256 bits. I have no idea if Pidgin ever supported this.
 
Old 11-04-2014, 01:53 PM   #8
mancha
Member
 
Registered: Aug 2012
Posts: 484

Rep: Reputation: Disabled
Quote:
Originally Posted by arcctgx View Post
mancha, that's very informative, thank you!
You're welcome.

Quote:
Originally Posted by arcctgx View Post
I already opened a ticket at Pidgin's Trac, I just forgot to mention this in this thread. In case anyone wants to take a look, it's here: https://developer.pidgin.im/ticket/16431. One of the devs indeed suspects that the issue has something to do with GnuTLS. I'm going to try to help as much as I can, but I believe it would be great if others could contribute as well.
I just posted my analysis to the ticket you linked.

--mancha

EDIT: upstream fixed with this commit.

Last edited by mancha; 11-05-2014 at 12:19 AM. Reason: Add link to upstream fix / tidy
 
1 members found this post helpful.
Old 11-06-2014, 11:06 PM   #9
mancha
Member
 
Registered: Aug 2012
Posts: 484

Rep: Reputation: Disabled
[deleted]

Last edited by mancha; 11-07-2014 at 02:27 AM. Reason: HCF
 
Old 11-18-2014, 05:43 PM   #10
mancha
Member
 
Registered: Aug 2012
Posts: 484

Rep: Reputation: Disabled
This thread should be marked solved. Pat pushed upgrades on 20141113 for Slackware 14.0, 14.1, and -current that address the issue.

--mancha
 
Old 11-26-2014, 11:49 AM   #11
aaazen
Member
 
Registered: Dec 2009
Posts: 358

Rep: Reputation: Disabled
Quote:
Originally Posted by mancha View Post
This thread should be marked solved. Pat pushed upgrades on 20141113 for Slackware 14.0, 14.1, and -current that address the issue.

--mancha
I just built Pidgin 2.10.11 and the pidgin.gadugadu.diff.gz patch is no longer needed.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Pidgin Tencent QQ Chinese protocol help needed to code due to bug aquatooth Linux - Software 2 02-13-2011 10:57 PM
How to configure Gadu gadu with SIM-QT (IM chat) ? Xeratul Linux - General 2 01-10-2011 12:02 PM
pidgin: no way to create a yahoo protocol account browny_amiga Linux - General 6 06-22-2010 05:25 AM
Connecting, MSN protocol, Pidgin, Kopete. (Fedora 8) Kryptos Linux - Newbie 7 12-23-2007 05:04 PM
Pidgin no longer works with AIM protocol. Crobat Linux - Software 2 07-22-2007 01:55 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 07:10 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration