finch/libpurple on Syllable OS

Kelly Wilson wilsonkk at shaw.ca
Thu Aug 30 13:30:03 EDT 2007


Hello all,

I have managed to compile finch and libpurple on Syllable OS with a very
minimal configuration (ie. I disable most things):

export
PKG_CONFIG_PATH='/usr/glib/lib/pkgconfig:/usr/libxml2/lib/pkgconfig:/usr/openssl/lib/pkgconfig'

./configure
--with-dynamic-prpls=gg,irc,jabber,msn,novell,oscar,qq,simple,yahoo,zephyr --disable-gtkui --disable-screensaver --disable-sm --disable-gtkspell --disable-gevolution --disable-gstreamer --disable-fortify --disable-tcl --disable-plugins --with-ncurses-headers=/usr/local/include/ncurses --disable-nss --with-glib-lib=/usr/glib/lib --with-screen=ncurses --enable debug


Once this is done I can do a 'make install' and everything appears to be
placed into /usr/local... as appropriate. Now the problem is when I try
to run finch I get a segfault almost immediately. At the top left of the
terminal window I can quickly see "GntWM: file or directory not found".
And if I start finch with --help, then I can avoid the segfault and I
get the ncurses "Quit" "Cancel" options to display if I use Ctrl-C (no
other keys or output seem to work, though). So it appears like something
almost works.

I tried to look for some debug output to see what I could see.
The debug output showed a couple missing files like accounts.xml and
status.xml (no big deal, I just added some blank dummy files). But then
I see:

...glib-2.12.10/glib/giounix.c: line 428 (g_io_unix_get_flags): should
not be reached

Unfortunately I can't debug this in gdb as gdb is segfaulting internally
with finch?!!? I did a little digging, using printf() to try to isolate
the last function called before the segfault in finch. It appears that
in libpurple/eventloop.c:

purple_input_add() {
.
.
.
return ops->input_add(..., PurpleInputFunction function, ...);
}

the return statement is where the crash comes from. I think this call to
input_add goes to glib....->eventually to g_io_unix_get_flags with an
improper pointer to function? The unix_get_flags seems to indicate that
a file is missing, since it checks for O_READ, O_WRITE, O_RWR on a named
file and then dies.

I tried to change WM's to use irssi.o in my .gntrc but it made no
difference (is it supposed to be a .so file?? or .la or .lo)??

I also get a critical error of "purple_core_quit: assertion 'core!=NULL
failed'" when I use Ctrl-C and choose Quit from in finch to exit the
program.

Any ideas? Maybe the install should be putting the WM somewhere but it
can't on Syllable? Purple_core_init can't find something?

Thanks,
K.Wilson

P.S. The nullclient segfaults the same way.







More information about the Devel mailing list