Getting pidgin(1) to run (sparc-issue?)...

Christian Baer christian.baer at uni-dortmund.de
Sun Sep 23 08:15:06 PDT 2007


Hi there people!

I have also posted this question (which is rather lengthy, I know) on the
questions mailing list too. Now I have added it to this list as it might
be an issue with this architecture in combination with FreeBSD).
Please don't complain, just answer where you think the answer belongs.

I know that running FreeBSD on a Sun is a rather exotic choice but I like
FreeBSD and didn't want to install SunOS (Solaris). This is an Ultra 60
with 2GB RAM and two 74GB SCA-HDs, running 6.2-RELEASE-p7). Everything
else is NOT an issue as this machine has no monitor, keyboard or mouse but
is accessed only over the Network (yes, X and esd too). Since the result
has to work with both WinXP and another FreeBSD-box, I am currenty
experimenting with Xming. I don't however think that this is relevant,
just giving the info in case I missed something.

This constellation works fine so far. I can run all of KDE or single apps
without KDE (like the konqueror). Even xmms works fine - including sound
and the OpenGL visualisation, although that's a little bumpy over the
network. :-)

Because the binary packages for sparc64 are always out of date, I compiled
Pidgin (2.2.0) myself using the ports. Here are the options I used:

 [X] SILC       Secure Internet Live Conferencing support
 [X] GNUTLS     GNUTLS encryption support
 [X] NSS        Mozilla NSS encryption support
 [X] SASL       Cyrus SASL support (for jabberd)
 [X] DBUS       Enable DBUS bindings
 [X] PERL       Perl scripting
 [X] BONJOUR    Enable mDNS support
 [ ] SAMETIME   Enable Sametime client support
 [ ] TCLTK      Tcl/Tk scripting
 [X] GTKSPELL   Spell checking support
 [X] GSTREAMER  Use GStreamer for playing sounds
 [X] CAP        Enable Contact Availability Prediction plugin

After a while [ a few hours :-) ] the computer was done.

Starting Pidgin from KDE resulted in it being shown in the task bar at the
bottom for about 20 seconds and after that it just disappears. It could
however still be found with "ps ax". Pidgin does *not* minimize itself
into the tray. It just "disappears". So I decided to start it from the
console. It started and kept running, just no window on the server ever
appeared for it. ctrl-c did terminate it. Note that in this case I didn't
start KDE or any other X application for that matter. I just started
Pidgin and had Xming listening on another computer.

Since that didn't get me anywhere, I started Pidgin with the -d option.
The last three lines you get to see are these (I cut out the time):

nat-pmp: found a default gateway
nat-pmp: Attempting to retrieve the public ip address for the
   NAT device at: 192.168.x.x
nat-pmp:     Timeout: 0s 250000us

Pidgin can still be terminated using ctrl-c. Since I didn't want to
bombard the list with the log, I put it here:

http://dresden.icerats.de/specials/pidgin-debug.txt

I inserted the line after the ctrl-c.

My router is an AVM Fritz! Box Fon 5012. I have not opened any ports for
any IM (yet) - at least not for this machine.

Because of the last message I see when starting it with -d, I guess that
it could be a router problem - I consider UPnP to be evil and therefore it
is off. A friend of mine however also uses Pidgin (under Windows) behind a
similar router without any problems.

nat-pmp could be the problem, as I am not aware of anyone other than Apple
having a working implementation of this. So I used kdump(1) to find out
what is going on. I don't want to post the whole file here (it is rather
long). But a few things I did notice...

 90378 dbus-daemon RET   read 144/0x90
 90378 dbus-daemon CALL  read(0xb,0x2a1000,0x800)
 90378 dbus-daemon RET   read -1 errno 35 Resource temporarily unavailable
 90378 dbus-daemon CALL  gettimeofday(0x7fdffffe240,0)
 90378 dbus-daemon RET   gettimeofday 0
 90378 dbus-daemon CALL  poll(0x7fdffffe540,0x3,0)
 90378 dbus-daemon RET   poll 0
 90378 dbus-daemon CALL  poll(0x282000,0x3,0)
 90378 dbus-daemon RET   poll 0
 90378 dbus-daemon CALL  poll(0x282000,0x4,0xffffffffffffffff)
 90373 pidgin   CALL  setitimer(0x2,0x7fdffffd0d0,0)
 90373 pidgin   RET   setitimer 0
 90373 pidgin   CALL  close(0x3)
 90373 pidgin   RET   close 0
 90373 pidgin   CALL  close(0x4)
 90373 pidgin   RET   close 0
 90373 pidgin   CALL  fcntl(0,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0x1,0x3,0)
 90373 pidgin   RET   fcntl 2
 90373 pidgin   CALL  fcntl(0x1,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0x2,0x3,0)
 90373 pidgin   RET   fcntl 2
 90373 pidgin   CALL  fcntl(0x2,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0x6,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0x6,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0x7,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0x7,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0x8,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0x8,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0xa,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0xa,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0xb,0x3,0)
 90373 pidgin   RET   fcntl 4
 90373 pidgin   CALL  fcntl(0xb,0x4,0)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  fcntl(0xc,0x3,0)
 90373 pidgin   RET   fcntl 6
 90373 pidgin   CALL  fcntl(0xc,0x4,0x2)
 90373 pidgin   RET   fcntl 0
 90373 pidgin   CALL  exit(0)
 90378 dbus-daemon RET   poll 1
 90378 dbus-daemon CALL  gettimeofday(0x405d73a8,0)
 90378 dbus-daemon RET   gettimeofday 0
 90378 dbus-daemon CALL  gettimeofday(0x7fdffffe240,0)
 90378 dbus-daemon RET   gettimeofday 0
 90378 dbus-daemon CALL  read(0xb,0x2a1000,0x800)
 90378 dbus-daemon GIO   fd 11 read 0 bytes
       ""
 90378 dbus-daemon RET   read 0
 90378 dbus-daemon CALL  fstat(0xb,0x7fdffffda30)
 90378 dbus-daemon RET   fstat 0
 90378 dbus-daemon CALL  close(0xb)
 90378 dbus-daemon RET   close 0
 90378 dbus-daemon CALL  gettimeofday(0x7fdffffe240,0)
 90378 dbus-daemon RET   gettimeofday 0
 90378 dbus-daemon CALL  poll(0x7fdffffe540,0x2,0)
 90378 dbus-daemon RET   poll 0
 90378 dbus-daemon CALL  poll(0x282000,0x2,0)
 90378 dbus-daemon RET   poll 0
 90378 dbus-daemon CALL  poll(0x282000,0x3,0xffffffffffffffff)

Maybe that helps. If you need it, I can supply the whole file, but not on
the list as it is about 280K big.

Just to get into the depths a bit more, I tried to gather some info with
gdb(1). Without really working through the source code, I have no idea if
this information is usefull. Unfortunately I don't have the time to go
through all that either and apart from that, there are other people out
there who are much more involved in Pidgin's code than I am. Maybe this
will help too...

christian at sunny$ gdb pidgin 91150
GNU gdb 6.1.1 [FreeBSD]
[...]
This GDB was configured as "sparc64-marcel-freebsd"...(no debugging symbols found)...
Attaching to program: /usr/local/bin/pidgin, process 91150
Reading symbols from /usr/local/lib/libgstreamer-0.10.so.0...done.
Loaded symbols for /usr/local/lib/libgstreamer-0.10.so.0
Reading symbols from /usr/local/lib/libXss.so.1...done.
Loaded symbols for /usr/local/lib/libXss.so.1
[...]
Reading symbols from /usr/local/lib/libavahi-glib.so.1...done.
Loaded symbols for /usr/local/lib/libavahi-glib.so.1
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
0x0000000043f7f468 in poll () from /lib/libc.so.6
(gdb) bt
#0  0x0000000043f7f468 in poll () from /lib/libc.so.6
#1  0x0000000043dcdf78 in _set_curthread () from /lib/libc_r.so.6
#2  0x0000000043dcef50 in _thread_kern_scheduler () from /lib/libc_r.so.6
#3  0x0000000043dcea20 in _thread_kern_set_timeout () from
/lib/libc_r.so.6

The "whole story" can be viewed hier (~12KB):
http://dresden.icerats.de/specials/pidgin-debug-gdb.txt

However, apart from the list of libs, there isn't much more to see.

Can someone give me a nudge in the right direction?

Regards,
Chris



More information about the freebsd-sparc64 mailing list