SGI: Development

Pidgin 2.4.1 on IRIX....all systems go!

After several versions of pidgin on IRIX coredumping on me, I was now using AdiumX on a Mac for IM purposes.

Today, I downloaded pidgin 2.4.1 and compiled it....no more nat-pmp error during compilation, that was a good sign!
Upon startup, no crash....and...it seems to work just fine (tried MSN account and google talk account)!!

Must also add that this time I compiled with gcc 4.3.0 (previous compiles were made with gcc 4.2.x series).
GCC 4.3.0 seems to have picked up on speed compared to previous 4.x compilers...a quick run of the good old dhrystone test seems to indicate that 4.3.0 binaries are now as speedy as 3.4.x ones.

I've already recompiled GIMP 2.4.5 with GCC 4.3.0 and speed improvements are also noticeable.

:mrgreen:
Sitting in a room.....thinkin' shit up. :evil:

:O2: 400MHz R12k - :320: Dual 550MHz PIII - Apple G4 Cube dual 500MHz/GF6200 - Newton Messagepad 2100 - Apple PowerBook 2400c/G3@240 - DECstation5000/133 - Apple Workgroup Server 9150/120 G3@280 - Apple Macintosh IIfx - Apple Macintosh Color Classic (Mystic upgrade) - Sun Cobalt Cube 3 - Tadpole RDI UltraBook IIi - Digital HiNote Ultra II - HP 200LX
Hurrah!

Now all we need is a native MIPSpro build ;)

(P.S. Did a previously broken codebase work simply by changing to GCC 4.x, or had 2.4.1 not been tried before? There may be hope for a native build if they've fixed the problems... )
Last version of Pidgin I had previously compiled was 2.3.1, and that was with GCC 4.2.2. Had been trying several versions of Pidgin with GCC 4.2.x before that too. All of them would coredump when trying to sign on to any account (it would work if --nologin option was passed on, then crash if any acount was enabled).

Upgraded GCC to 4.3.0 and later downloaded and compiled Pidgin 2.4.1 with good results. As I mentioned, binaries produced with GCC 4.3.0 are a lot faster than previous 4.2.x builds.

Don't have MIPSpro so I can't confirm if a native build would compile and execute correctly.
Sitting in a room.....thinkin' shit up. :evil:

:O2: 400MHz R12k - :320: Dual 550MHz PIII - Apple G4 Cube dual 500MHz/GF6200 - Newton Messagepad 2100 - Apple PowerBook 2400c/G3@240 - DECstation5000/133 - Apple Workgroup Server 9150/120 G3@280 - Apple Macintosh IIfx - Apple Macintosh Color Classic (Mystic upgrade) - Sun Cobalt Cube 3 - Tadpole RDI UltraBook IIi - Digital HiNote Ultra II - HP 200LX
I will try it with MIPSPro sometime this week and let you know
:Indigo: 33mhz R3k/48mb/XS24 :Indy: 150mhz R4400/256mb/XL24 :Fuel: 600mhz R14kA/2gb/V10 Image 8x1.4ghz Itanium 2/8GB :O3x08R: 32x600mhz R14kA/24GB :Tezro: 4x700mhz R16k/8GB/V12/DCD/SAS/FC/DM5 (2x) :O3x0: 4x700mhz R16k/4GB :PrismDT: 2x1.6ghz 8mb/12gb/SAS/2xFGL
Yes! It works and it seems to be very stable!

(Especially compared with the last version of gaim I used, which crashed out all the time)

I built with MIPSpro from pkgsrc, but with only a few minor patches to libpurple the whole thing builds without issues - I'm impressed.

Since Adobe has released the specs for Flash, all we need is for gnash to catch up and then for the new no-assembly Java to be ported, and we're laughing :D
Having run pidgin 2.4.1 for 24 hours now, the only problem I can see is that the client-supplied icon isn't displayed correctly when Pidgin is iconified/minimised.

Does anyone have a decent pidgin/gaim icon that I can override this with?
stuart wrote: Having run pidgin 2.4.1 for 24 hours now, the only problem I can see is that the client-supplied icon isn't displayed correctly when Pidgin is iconified/minimised.

Does anyone have a decent pidgin/gaim icon that I can override this with?

Can you package together Pidgin into a tardist?
:Indigo: 33mhz R3k/48mb/XS24 :Indy: 150mhz R4400/256mb/XL24 :Fuel: 600mhz R14kA/2gb/V10 Image 8x1.4ghz Itanium 2/8GB :O3x08R: 32x600mhz R14kA/24GB :Tezro: 4x700mhz R16k/8GB/V12/DCD/SAS/FC/DM5 (2x) :O3x0: 4x700mhz R16k/4GB :PrismDT: 2x1.6ghz 8mb/12gb/SAS/2xFGL
Not easily, I'm afraid - I built Pidgin via NetBSD's pkgsrc system and it's got a ton of dependencies.

(For those using pkgsrc, the pidgin build has a surprisingly large degree of just-worksness!)

When I have time later in the week I'll try to work out the minimum versions of the different dependencies, and confirm that they exist in nekoware. If all's good, I'll try a nekoware build and see how I get on.
stuart wrote: Not easily, I'm afraid - I built Pidgin via NetBSD's pkgsrc system and it's got a ton of dependencies.

(For those using pkgsrc, the pidgin build has a surprisingly large degree of just-worksness!)

When I have time later in the week I'll try to work out the minimum versions of the different dependencies, and confirm that they exist in nekoware. If all's good, I'll try a nekoware build and see how I get on.


Yes, Pidgin relies on lots of other bits of code. Updated to version 2.4.2, and everything works (the nasty popups about MSN contacts not on the server 's list are gone).
Sound seems to use GStreamer wich I don't have on my irix box (on the options tab you can also use a command line sound player, but I havent tried it yet...)

BTW, what's the location/name of the iconfile you mention? It does display very small in the iconbox.

UPDATE: using mplayer as the command option for sound....everything working fine now... ;)
Sitting in a room.....thinkin' shit up. :evil:

:O2: 400MHz R12k - :320: Dual 550MHz PIII - Apple G4 Cube dual 500MHz/GF6200 - Newton Messagepad 2100 - Apple PowerBook 2400c/G3@240 - DECstation5000/133 - Apple Workgroup Server 9150/120 G3@280 - Apple Macintosh IIfx - Apple Macintosh Color Classic (Mystic upgrade) - Sun Cobalt Cube 3 - Tadpole RDI UltraBook IIi - Digital HiNote Ultra II - HP 200LX
I can probably package this up for Nekoware - are there any required patches I need to be aware of first?
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
For a pkgsrc build, I added the following two patches:

Code: Select all

--- pidgin-2.4.2/libpurple/plugins/perl/perl.c.dist
+++ pidgin-2.4.2/libpurple/plugins/perl/perl.c
@@ -627,6 +627,11 @@ init_plugin(PurplePlugin *plugin)
loader_info.exts = g_list_append(loader_info.exts, "pl");
}

+/* If we're not using GNU C, elide __attribute__ */
+#ifndef __GNUC__
+#define  __attribute__(x)  /*NOTHING*/
+#endif
+
#ifdef __SUNPRO_C
#pragma init (my_init)
#else

Code: Select all

--- pidgin-2.4.2/libpurple/dbus-bindings.c.dist
+++ pidgin-2.4.2/libpurple/dbus-bindings.c
@@ -3695,7 +3695,7 @@ purple_conversation_set_data_DBUS(DBusMe
CHECK_ERROR(error_DBUS);
PURPLE_DBUS_ID_TO_POINTER(conv, conv_ID, PurpleConversation, error_DBUS);
key = (key && key[0]) ? key : NULL;
-       purple_conversation_set_data(conv, key, data);
+       purple_conversation_set_data(conv, key, (gpointer)data);
reply_DBUS = dbus_message_new_method_return (message_DBUS);
dbus_message_append_args(reply_DBUS, DBUS_TYPE_INVALID);
return reply_DBUS;
@@ -3712,7 +3712,7 @@ purple_conversation_get_data_DBUS(DBusMe
CHECK_ERROR(error_DBUS);
PURPLE_DBUS_ID_TO_POINTER(conv, conv_ID, PurpleConversation, error_DBUS);
key = (key && key[0]) ? key : NULL;
-       RESULT = purple_conversation_get_data(conv, key);
+       RESULT = (dbus_int32_t)purple_conversation_get_data(conv, key);
reply_DBUS = dbus_message_new_method_return (message_DBUS);
dbus_message_append_args(reply_DBUS, DBUS_TYPE_INT32, &RESULT, DBUS_TYPE_INVALID);
return reply_DBUS;
@@ -4955,7 +4955,7 @@ purple_core_quit_cb_DBUS(DBusMessage *me
dbus_int32_t RESULT;
dbus_message_get_args(message_DBUS, error_DBUS, DBUS_TYPE_UINT32, &unused, DBUS_TYPE_INVALID);
CHECK_ERROR(error_DBUS);
-       RESULT = purple_core_quit_cb(unused);
+       RESULT = purple_core_quit_cb((gpointer)unused);
reply_DBUS = dbus_message_new_method_return (message_DBUS);
dbus_message_append_args(reply_DBUS, DBUS_TYPE_INT32, &RESULT, DBUS_TYPE_INVALID);
return reply_DBUS;
@@ -6723,7 +6723,7 @@ purple_prefs_set_generic_DBUS(DBusMessag
dbus_message_get_args(message_DBUS, error_DBUS, DBUS_TYPE_STRING, &name, DBUS_TYPE_UINT32, &value, DBUS_TYPE_INVALID);
CHECK_ERROR(error_DBUS);
name = (name && name[0]) ? name : NULL;
-       purple_prefs_set_generic(name, value);
+       purple_prefs_set_generic(name, (gpointer)value);
reply_DBUS = dbus_message_new_method_return (message_DBUS);
dbus_message_append_args(reply_DBUS, DBUS_TYPE_INVALID);
return reply_DBUS;
@@ -9602,7 +9602,7 @@ purple_util_format_song_info_DBUS(DBusMe
title = (title && title[0]) ? title : NULL;
artist = (artist && artist[0]) ? artist : NULL;
album = (album && album[0]) ? album : NULL;
-       if ((RESULT = purple_util_format_song_info(title, artist, album, unused)) == NULL)
+       if ((RESULT = purple_util_format_song_info(title, artist, album, (gpointer)unused)) == NULL)
RESULT = "";
reply_DBUS = dbus_message_new_method_return (message_DBUS);
dbus_message_append_args(reply_DBUS, DBUS_TYPE_STRING, &RESULT, DBUS_TYPE_INVALID);


Note that dbus-bindings.c is automatically generated during the build process.

There are also a small number of distribution patches, but these mostly seem pkgsrc-specific. There is a patch to link libpurple against ncurses, but I suspect that this isn't needed if libpurple is only used with Pidgin.
Is dbus required? I've had problems with dbus 1.2.1 - it was a prerequisite for building Firefox 3, but no matter what I built it with (MIPSpro/GCC) it always dumps core when the daemon is called.

I ask because it can be disabled with a configure switch; I don't know what it brings to the table though and if it will be missed.
Twitter: @neko_no_ko
IRIX Release 4.0.5 IP12 Version 06151813 System V
Copyright 1987-1992 Silicon Graphics, Inc.
All Rights Reserved.
From FreeBSD dbus port (It seems to be tightly coupled with Xorg...):
Description:
D-BUS supplies both a system daemon (for events such as "new hardware device
added" or "printer queue changed") and a per-user-login-session daemon (for
general IPC needs among user applications). Also, the message bus is built on
top of a general one-to-one message passing framework, which can be used by
any two apps to communicate directly (without going through the message bus
daemon).

WWW: http://www.freedesktop.org/Software/dbus


It looks like dbus would need an X-server with appropriate bindings anyway, which I reckon the one running in vanilla Irix doesn't qualify ;) I'd say it's safe to ditch it if there is a compiler option.
:Fuel: , Some Usparcs running FreeBSD, Amiga3k towered and numerous Intel clones
Just a quick note that dbus-1.2.1 from pkgsrc compiles and runs correctly, although a quick look at the package directory shows that they have developed several patches, some of which are IRIX-specific.

The website does say " D-Bus is very portable to any Linux or UNIX flavor, and a port to Windows is in progress. " so I suspect that it isn't in fact tightly bound to the X server... and it does work for me on 6.5.30 without dumping core.
Can you make it as a .tardist?


Sorry I see that this has already been asked!
:Indy: R4600PC 133 MHz

Mac Mini 2.5GHz 8GB RAM
Raspberry Pi