diff options
Diffstat (limited to 'net-im/gaim')
-rw-r--r-- | net-im/gaim/ChangeLog | 12 | ||||
-rw-r--r-- | net-im/gaim/Manifest | 7 | ||||
-rw-r--r-- | net-im/gaim/files/digest-gaim-0.78-r2 | 1 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.77-newtrayicon.patch | 493 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.78-jabber_disconnect.patch | 18 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.78-log_find_click.patch | 26 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.78-msn_disconnect_fix.patch | 39 | ||||
-rw-r--r-- | net-im/gaim/files/gaim-0.78-paste_html_img_crash.patch | 17 | ||||
-rw-r--r-- | net-im/gaim/gaim-0.78-r2.ebuild | 138 |
9 files changed, 750 insertions, 1 deletions
diff --git a/net-im/gaim/ChangeLog b/net-im/gaim/ChangeLog index dfcecc1ffeff..21f0ee313557 100644 --- a/net-im/gaim/ChangeLog +++ b/net-im/gaim/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for net-im/gaim # Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/ChangeLog,v 1.186 2004/06/09 18:19:20 rizzo Exp $ +# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/ChangeLog,v 1.187 2004/06/09 18:53:55 rizzo Exp $ + +*gaim-0.78-r2 (09 Jun 2004) + + 09 Jun 2004; Don Seiler <rizzo@gentoo.org> + +files/gaim-0.77-newtrayicon.patch, + +files/gaim-0.78-jabber_disconnect.patch, + +files/gaim-0.78-log_find_click.patch, + +files/gaim-0.78-msn_disconnect_fix.patch, + +files/gaim-0.78-paste_html_img_crash.patch, +gaim-0.78-r2.ebuild: + Working in patches from Warren Togami's SRPMs. Also closes Bug #52890 09 Jun 2004; Don Seiler <rizzo@gentoo.org> -gaim-0.78.ebuild: Obsolete diff --git a/net-im/gaim/Manifest b/net-im/gaim/Manifest index 0b0e9391aac5..574e2a0e1bc3 100644 --- a/net-im/gaim/Manifest +++ b/net-im/gaim/Manifest @@ -1,10 +1,12 @@ MD5 1d71939219c2a6f59a2ef1ef4ef16d86 ChangeLog 30033 MD5 bce07b7547c62d6265e31c5ab2deffa2 gaim-0.75-r10.ebuild 3677 +MD5 e320d2bf435a754f5c3f02aa7607a766 gaim-0.78-r2.ebuild 4482 MD5 965d2993a30aeb3ce3e38c843658f3d3 gaim-0.77.ebuild 4040 MD5 70296094d5e7719da4ae76b25e0483bb gaim-0.78-r1.ebuild 4218 MD5 19b3cafbbe380403d46cccc45a984b80 metadata.xml 481 MD5 8b152d59a54ab95627c4c0cd52758d75 files/digest-gaim-0.75-r10 63 MD5 4bc83ad48d260db208fcae372c2bb291 files/digest-gaim-0.77 63 +MD5 98cdf8cb3df34f23f2098df68bd5d06e files/gaim-0.77-newtrayicon.patch 13633 MD5 f07855631a1ef3f986568b772f335865 files/digest-gaim-0.78-r1 63 MD5 68525b8389e356a5d05d531b84fb1ada files/gaim-0.74-gnome-url-handler.patch 1854 MD5 53302cc68bb7bef9803723e977010339 files/gaim-0.74_cjk_gtkconv.patch 1128 @@ -14,3 +16,8 @@ MD5 afc682711efed5d09a9229bd06a7a13b files/gaim-0.76-xinput.patch 644 MD5 a4f3b00a7aa80e7fbc1e315b8c9306c8 files/gaim-0.76cvs-signals-varargs.diff 1753 MD5 e58ee6f06747da85a60cb9c13b91f805 files/gaim-0.76cvs-yahoo-login-fix.diff 4618 MD5 a714a5babbb4387f5a5516f75548528a files/gaim-0.76cvs-yahoo-misc-fixes-1.diff 3105 +MD5 926417f5b93b2716eb31f0ceb0d8ce74 files/gaim-0.78-jabber_disconnect.patch 745 +MD5 fa4c02c17e5d4096a6353342bed870ec files/gaim-0.78-log_find_click.patch 1049 +MD5 6c718f1614f3c6c352062b1d775e9242 files/gaim-0.78-msn_disconnect_fix.patch 1241 +MD5 29409b66a70d19d4ceca094de43978a2 files/gaim-0.78-paste_html_img_crash.patch 510 +MD5 f07855631a1ef3f986568b772f335865 files/digest-gaim-0.78-r2 63 diff --git a/net-im/gaim/files/digest-gaim-0.78-r2 b/net-im/gaim/files/digest-gaim-0.78-r2 new file mode 100644 index 000000000000..fb5c8eabe831 --- /dev/null +++ b/net-im/gaim/files/digest-gaim-0.78-r2 @@ -0,0 +1 @@ +MD5 079f3286333ed51cc72c65b5efe1b989 gaim-0.78.tar.bz2 4219726 diff --git a/net-im/gaim/files/gaim-0.77-newtrayicon.patch b/net-im/gaim/files/gaim-0.77-newtrayicon.patch new file mode 100644 index 000000000000..f6772d9969f3 --- /dev/null +++ b/net-im/gaim/files/gaim-0.77-newtrayicon.patch @@ -0,0 +1,493 @@ +--- gaim-0.71/plugins/docklet/eggtrayicon.h.foo 2002-09-14 19:27:26.000000000 -0400 ++++ gaim-0.71/plugins/docklet/eggtrayicon.h 2003-10-17 11:55:33.000000000 -0400 +@@ -45,7 +45,10 @@ + Atom selection_atom; + Atom manager_atom; + Atom system_tray_opcode_atom; ++ Atom orientation_atom; + Window manager_window; ++ ++ GtkOrientation orientation; + }; + + struct _EggTrayIconClass +@@ -55,10 +58,8 @@ + + GType egg_tray_icon_get_type (void); + +-#if EGG_TRAY_ENABLE_MULTIHEAD + EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen, + const gchar *name); +-#endif + + EggTrayIcon *egg_tray_icon_new (const gchar *name); + +@@ -69,7 +70,7 @@ + void egg_tray_icon_cancel_message (EggTrayIcon *icon, + guint id); + +- ++GtkOrientation egg_tray_icon_get_orientation (EggTrayIcon *icon); + + G_END_DECLS + +--- gaim-0.71/plugins/docklet/eggtrayicon.c.foo 2003-01-08 20:48:04.000000000 -0500 ++++ gaim-0.71/plugins/docklet/eggtrayicon.c 2003-10-17 11:54:16.000000000 -0400 +@@ -18,30 +18,64 @@ + * Boston, MA 02111-1307, USA. + */ + ++#ifdef DV_CHANGE ++#include <config.h> ++#else ++#include <libintl.h> ++#define GETTEXT_PACKAGE "rhn-applet" ++#endif + #include <string.h> +-#include <gdk/gdkx.h> ++#include <libintl.h> ++ + #include "eggtrayicon.h" + ++#include <gdk/gdkx.h> ++#include <X11/Xatom.h> ++ ++#ifndef EGG_COMPILATION ++#ifndef _ ++#define _(x) dgettext (GETTEXT_PACKAGE, x) ++#define N_(x) x ++#endif ++#else ++#define _(x) x ++#define N_(x) x ++#endif ++ + #define SYSTEM_TRAY_REQUEST_DOCK 0 + #define SYSTEM_TRAY_BEGIN_MESSAGE 1 + #define SYSTEM_TRAY_CANCEL_MESSAGE 2 ++ ++#define SYSTEM_TRAY_ORIENTATION_HORZ 0 ++#define SYSTEM_TRAY_ORIENTATION_VERT 1 ++ ++enum { ++ PROP_0, ++ PROP_ORIENTATION ++}; + + static GtkPlugClass *parent_class = NULL; + + static void egg_tray_icon_init (EggTrayIcon *icon); + static void egg_tray_icon_class_init (EggTrayIconClass *klass); + ++static void egg_tray_icon_get_property (GObject *object, ++ guint prop_id, ++ GValue *value, ++ GParamSpec *pspec); ++ ++static void egg_tray_icon_realize (GtkWidget *widget); + static void egg_tray_icon_unrealize (GtkWidget *widget); + +-static void egg_tray_icon_update_manager_window (EggTrayIcon *icon); ++static void egg_tray_icon_update_manager_window (EggTrayIcon *icon, ++ gboolean dock_if_realized); ++static void egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon); + + GType + egg_tray_icon_get_type (void) + { + static GType our_type = 0; + +- our_type = g_type_from_name("EggTrayIcon"); +- + if (our_type == 0) + { + static const GTypeInfo our_info = +@@ -59,10 +93,6 @@ + + our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0); + } +- else if (parent_class == NULL) { +- /* we're reheating the old class from a previous instance - engage ugly hack =( */ +- egg_tray_icon_class_init((EggTrayIconClass *)g_type_class_peek(our_type)); +- } + + return our_type; + } +@@ -71,6 +101,7 @@ + egg_tray_icon_init (EggTrayIcon *icon) + { + icon->stamp = 1; ++ icon->orientation = GTK_ORIENTATION_HORIZONTAL; + + gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK); + } +@@ -78,11 +109,95 @@ + static void + egg_tray_icon_class_init (EggTrayIconClass *klass) + { ++ GObjectClass *gobject_class = (GObjectClass *)klass; + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + + parent_class = g_type_class_peek_parent (klass); + ++ gobject_class->get_property = egg_tray_icon_get_property; ++ ++ widget_class->realize = egg_tray_icon_realize; + widget_class->unrealize = egg_tray_icon_unrealize; ++ ++ g_object_class_install_property (gobject_class, ++ PROP_ORIENTATION, ++ g_param_spec_enum ("orientation", ++ _("Orientation"), ++ _("The orientation of the tray."), ++ GTK_TYPE_ORIENTATION, ++ GTK_ORIENTATION_HORIZONTAL, ++ G_PARAM_READABLE)); ++} ++ ++static void ++egg_tray_icon_get_property (GObject *object, ++ guint prop_id, ++ GValue *value, ++ GParamSpec *pspec) ++{ ++ EggTrayIcon *icon = EGG_TRAY_ICON (object); ++ ++ switch (prop_id) ++ { ++ case PROP_ORIENTATION: ++ g_value_set_enum (value, icon->orientation); ++ break; ++ default: ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); ++ break; ++ } ++} ++ ++static void ++egg_tray_icon_get_orientation_property (EggTrayIcon *icon) ++{ ++ Display *xdisplay; ++ Atom type; ++ int format; ++ union { ++ gulong *prop; ++ guchar *prop_ch; ++ } prop = { NULL }; ++ gulong nitems; ++ gulong bytes_after; ++ int error, result; ++ ++ g_assert (icon->manager_window != None); ++ ++ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); ++ ++ gdk_error_trap_push (); ++ type = None; ++ result = XGetWindowProperty (xdisplay, ++ icon->manager_window, ++ icon->orientation_atom, ++ 0, G_MAXLONG, FALSE, ++ XA_CARDINAL, ++ &type, &format, &nitems, ++ &bytes_after, &(prop.prop_ch)); ++ error = gdk_error_trap_pop (); ++ ++ if (error || result != Success) ++ return; ++ ++ if (type == XA_CARDINAL) ++ { ++ GtkOrientation orientation; ++ ++ orientation = (prop.prop [0] == SYSTEM_TRAY_ORIENTATION_HORZ) ? ++ GTK_ORIENTATION_HORIZONTAL : ++ GTK_ORIENTATION_VERTICAL; ++ ++ if (icon->orientation != orientation) ++ { ++ icon->orientation = orientation; ++ ++ g_object_notify (G_OBJECT (icon), "orientation"); ++ } ++ } ++ ++ if (prop.prop) ++ XFree (prop.prop); + } + + static GdkFilterReturn +@@ -95,13 +210,18 @@ + xev->xclient.message_type == icon->manager_atom && + xev->xclient.data.l[1] == icon->selection_atom) + { +- egg_tray_icon_update_manager_window (icon); ++ egg_tray_icon_update_manager_window (icon, TRUE); + } + else if (xev->xany.window == icon->manager_window) + { ++ if (xev->xany.type == PropertyNotify && ++ xev->xproperty.atom == icon->orientation_atom) ++ { ++ egg_tray_icon_get_orientation_property (icon); ++ } + if (xev->xany.type == DestroyNotify) + { +- egg_tray_icon_update_manager_window (icon); ++ egg_tray_icon_manager_window_destroyed (icon); + } + } + +@@ -118,21 +238,13 @@ + { + GdkWindow *gdkwin; + +-#if HAVE_GTK_MULTIHEAD + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget), + icon->manager_window); +-#else +- gdkwin = gdk_window_lookup (icon->manager_window); +-#endif + + gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); + } + +-#if HAVE_GTK_MULTIHEAD + root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget)); +-#else +- root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +-#endif + + gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon); + +@@ -161,11 +273,7 @@ + ev.data.l[3] = data2; + ev.data.l[4] = data3; + +-#if HAVE_GTK_MULTIHEAD + display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +-#else +- display = gdk_display; +-#endif + + gdk_error_trap_push (); + XSendEvent (display, +@@ -185,29 +293,15 @@ + } + + static void +-egg_tray_icon_update_manager_window (EggTrayIcon *icon) ++egg_tray_icon_update_manager_window (EggTrayIcon *icon, ++ gboolean dock_if_realized) + { + Display *xdisplay; + +-#if HAVE_GTK_MULTIHEAD +- xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +-#else +- xdisplay = gdk_display; +-#endif +- + if (icon->manager_window != None) +- { +- GdkWindow *gdkwin; ++ return; + +-#if HAVE_GTK_MULTIHEAD +- gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), +- icon->manager_window); +-#else +- gdkwin = gdk_window_lookup (icon->manager_window); +-#endif +- +- gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); +- } ++ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); + + XGrabServer (xdisplay); + +@@ -216,7 +310,7 @@ + + if (icon->manager_window != None) + XSelectInput (xdisplay, +- icon->manager_window, StructureNotifyMask); ++ icon->manager_window, StructureNotifyMask|PropertyChangeMask); + + XUngrabServer (xdisplay); + XFlush (xdisplay); +@@ -225,91 +319,103 @@ + { + GdkWindow *gdkwin; + +-#if HAVE_GTK_MULTIHEAD + gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), + icon->manager_window); +-#else +- gdkwin = gdk_window_lookup (icon->manager_window); +-#endif + + gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon); + +- /* Send a request that we'd like to dock */ +- egg_tray_icon_send_dock_request (icon); ++ if (dock_if_realized && GTK_WIDGET_REALIZED (icon)) ++ egg_tray_icon_send_dock_request (icon); ++ ++ egg_tray_icon_get_orientation_property (icon); + } + } + +-EggTrayIcon * +-egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name) ++static void ++egg_tray_icon_manager_window_destroyed (EggTrayIcon *icon) + { +- EggTrayIcon *icon; ++ GdkWindow *gdkwin; ++ ++ g_return_if_fail (icon->manager_window != None); ++ ++ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), ++ icon->manager_window); ++ ++ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); ++ ++ icon->manager_window = None; ++ ++ egg_tray_icon_update_manager_window (icon, TRUE); ++} ++ ++static void ++egg_tray_icon_realize (GtkWidget *widget) ++{ ++ EggTrayIcon *icon = EGG_TRAY_ICON (widget); ++ GdkScreen *screen; ++ GdkDisplay *display; ++ Display *xdisplay; + char buffer[256]; + GdkWindow *root_window; + +- g_return_val_if_fail (xscreen != NULL, NULL); +- +- icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL); +- gtk_window_set_title (GTK_WINDOW (icon), name); ++ if (GTK_WIDGET_CLASS (parent_class)->realize) ++ GTK_WIDGET_CLASS (parent_class)->realize (widget); + +-#if HAVE_GTK_MULTIHEAD +- /* FIXME: this code does not compile, screen is undefined. Now try +- * getting the GdkScreen from xscreen (:. Dunno how to solve this +- * (there is probably some easy way I cant think of right now) +- */ +- gtk_plug_construct_for_display (GTK_PLUG (icon), +- gdk_screen_get_display (screen), 0); +-#else +- gtk_plug_construct (GTK_PLUG (icon), 0); +-#endif +- +- gtk_widget_realize (GTK_WIDGET (icon)); ++ screen = gtk_widget_get_screen (widget); ++ display = gdk_screen_get_display (screen); ++ xdisplay = gdk_x11_display_get_xdisplay (display); + + /* Now see if there's a manager window around */ + g_snprintf (buffer, sizeof (buffer), + "_NET_SYSTEM_TRAY_S%d", +- XScreenNumberOfScreen (xscreen)); +- +- icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen), +- buffer, False); ++ gdk_screen_get_number (screen)); ++ ++ icon->selection_atom = XInternAtom (xdisplay, buffer, False); + +- icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen), +- "MANAGER", False); ++ icon->manager_atom = XInternAtom (xdisplay, "MANAGER", False); + +- icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen), +- "_NET_SYSTEM_TRAY_OPCODE", False); ++ icon->system_tray_opcode_atom = XInternAtom (xdisplay, ++ "_NET_SYSTEM_TRAY_OPCODE", ++ False); + +- egg_tray_icon_update_manager_window (icon); ++ icon->orientation_atom = XInternAtom (xdisplay, ++ "_NET_SYSTEM_TRAY_ORIENTATION", ++ False); + +-#if HAVE_GTK_MULTIHEAD +- root_window = gdk_screen_get_root_window (gtk_widget_get_screen (screen)); +-#else +- root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); +-#endif ++ egg_tray_icon_update_manager_window (icon, FALSE); ++ egg_tray_icon_send_dock_request (icon); ++ ++ root_window = gdk_screen_get_root_window (screen); + + /* Add a root window filter so that we get changes on MANAGER */ + gdk_window_add_filter (root_window, + egg_tray_icon_manager_filter, icon); +- +- return icon; + } + +-#if HAVE_GTK_MULTIHEAD + EggTrayIcon * +-egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name) ++egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name) + { +- EggTrayIcon *icon; +- char buffer[256]; ++ GdkDisplay *display; ++ GdkScreen *screen; + ++ display = gdk_x11_lookup_xdisplay (DisplayOfScreen (xscreen)); ++ screen = gdk_display_get_screen (display, XScreenNumberOfScreen (xscreen)); ++ ++ return egg_tray_icon_new_for_screen (screen, name); ++} ++ ++EggTrayIcon * ++egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name) ++{ + g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); + +- return egg_tray_icon_new_for_xscreen (GDK_SCREEN_XSCREEN (screen), name); ++ return g_object_new (EGG_TYPE_TRAY_ICON, "screen", screen, "title", name, NULL); + } +-#endif + + EggTrayIcon* + egg_tray_icon_new (const gchar *name) + { +- return egg_tray_icon_new_for_xscreen (DefaultScreenOfDisplay (gdk_display), name); ++ return g_object_new (EGG_TYPE_TRAY_ICON, "title", name, NULL); + } + + guint +@@ -344,11 +450,7 @@ + XClientMessageEvent ev; + Display *xdisplay; + +-#if HAVE_GTK_MULTIHEAD + xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); +-#else +- xdisplay = gdk_display; +-#endif + + ev.type = ClientMessage; + ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon)); +@@ -387,3 +489,11 @@ + (Window)gtk_plug_get_id (GTK_PLUG (icon)), + id, 0, 0); + } ++ ++GtkOrientation ++egg_tray_icon_get_orientation (EggTrayIcon *icon) ++{ ++ g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), GTK_ORIENTATION_HORIZONTAL); ++ ++ return icon->orientation; ++} diff --git a/net-im/gaim/files/gaim-0.78-jabber_disconnect.patch b/net-im/gaim/files/gaim-0.78-jabber_disconnect.patch new file mode 100644 index 000000000000..6d6ccac35667 --- /dev/null +++ b/net-im/gaim/files/gaim-0.78-jabber_disconnect.patch @@ -0,0 +1,18 @@ +http://cvs.sourceforge.net/viewcvs.py/gaim/gaim/src/protocols/jabber/jabber.c?r1=1.260&r2=1.261&sortby=date&diff_format=u +https://sourceforge.net/tracker/index.php?func=detail&aid=966125&group_id=235&atid=100235 + +=================================================================== +RCS file: /cvsroot/gaim/gaim/src/protocols/jabber/jabber.c,v +retrieving revision 1.260 +retrieving revision 1.261 +diff -u -r1.260 -r1.261 +--- gaim/gaim/src/protocols/jabber/jabber.c 2004/05/31 07:23:49 1.260 ++++ gaim/gaim/src/protocols/jabber/jabber.c 2004/06/04 00:02:25 1.261 +@@ -740,6 +740,7 @@ + { + JabberStream *js = gc->proto_data; + ++ jabber_presence_send(gc, "unavailable", _("Logged out")); + jabber_send_raw(js, "</stream:stream>", -1); + + if(js->gsc) { diff --git a/net-im/gaim/files/gaim-0.78-log_find_click.patch b/net-im/gaim/files/gaim-0.78-log_find_click.patch new file mode 100644 index 000000000000..faa7f1b052be --- /dev/null +++ b/net-im/gaim/files/gaim-0.78-log_find_click.patch @@ -0,0 +1,26 @@ +Index: src/gtklog.c +=================================================================== +RCS file: /cvsroot/gaim/gaim/src/gtklog.c,v +retrieving revision 1.17 +diff -u -p -r1.17 gtklog.c +--- src/gtklog.c 22 May 2004 16:38:54 -0000 1.17 ++++ src/gtklog.c 5 Jun 2004 14:18:32 -0000 +@@ -331,6 +331,8 @@ void gaim_gtk_log_show(const char *scree + button = gtk_button_new_from_stock(GTK_STOCK_FIND); + g_signal_connect (GTK_BUTTON (button), "activate", + G_CALLBACK (search_cb), lv); ++ g_signal_connect (GTK_BUTTON (button), "clicked", ++ G_CALLBACK (search_cb), lv); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + gaim_set_accessible_label (lv->treeview, label); + +@@ -440,6 +442,9 @@ void gaim_gtk_syslog_show() + g_signal_connect (GTK_BUTTON (button), "activate", + G_CALLBACK (search_cb), + syslog_viewer); ++ g_signal_connect (GTK_BUTTON (button), "clicked", ++ G_CALLBACK (search_cb), ++ syslog_viewer); + gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); + + gtk_widget_show_all(syslog_viewer->window); diff --git a/net-im/gaim/files/gaim-0.78-msn_disconnect_fix.patch b/net-im/gaim/files/gaim-0.78-msn_disconnect_fix.patch new file mode 100644 index 000000000000..1a89034d4cf9 --- /dev/null +++ b/net-im/gaim/files/gaim-0.78-msn_disconnect_fix.patch @@ -0,0 +1,39 @@ +-------- Original Message -------- +Subject: Gaim 0.78 MSN switchboard disconnect fix +Date: Sat, 5 Jun 2004 22:45:26 -0700 +From: Christian Hammond <chipx86@gnupdate.org> + +This should have gotten into gaim 0.78, but another patch accidentally +reverted it. Basically, sometimes there are harmless errors on MSN +"switchboards," which is where conversations take place. We should +just display the error but keep on going, because unlike errors on +Notification or Nexus servers, these are not fatal. These are usually +things like "The user is offline" and such. However, we were treating +them as fatal, which this patch prevents. + +Christian + +diff -u -d -p -r1.37 -r1.38 +--- gaim/gaim/src/protocols/msn/servconn.c.orig 1 Jun 2004 06:42:20 -0000 1.37 ++++ gaim/gaim/src/protocols/msn/servconn.c 2 Jun 2004 04:50:31 -0000 1.38 +@@ -58,7 +58,19 @@ + break; + } + +- gaim_connection_error(gc, tmp); ++ if (servconn->type != MSN_SERVER_SB) ++ gaim_connection_error(gc, tmp); ++ else ++ { ++ GaimAccount *account = gaim_connection_get_account(gc); ++ char *primary = g_strdup_printf(_("MSN error for account %s"), ++ gaim_account_get_username(account)); ++ ++ gaim_notify_error(gc, NULL, primary, tmp); ++ ++ g_free(primary); ++ } ++ + + g_free(tmp); + } diff --git a/net-im/gaim/files/gaim-0.78-paste_html_img_crash.patch b/net-im/gaim/files/gaim-0.78-paste_html_img_crash.patch new file mode 100644 index 000000000000..65e8e06dfaad --- /dev/null +++ b/net-im/gaim/files/gaim-0.78-paste_html_img_crash.patch @@ -0,0 +1,17 @@ +=================================================================== +RCS file: /cvsroot/gaim/gaim/src/gtkimhtml.c,v +retrieving revision 1.340 +retrieving revision 1.341 +diff -u -r1.340 -r1.341 +--- gaim/gaim/src/gtkimhtml.c 2004/05/27 02:02:47 1.340 ++++ gaim/gaim/src/gtkimhtml.c 2004/06/06 01:20:25 1.341 +@@ -2197,7 +2197,8 @@ + break; + + id = gtk_imhtml_get_html_opt(tag, "ID="); +- ++ if (!id) ++ break; + gtk_imhtml_insert_image_at_iter(imhtml, atoi(id), iter); + break; + } diff --git a/net-im/gaim/gaim-0.78-r2.ebuild b/net-im/gaim/gaim-0.78-r2.ebuild new file mode 100644 index 000000000000..c95e98fc71ae --- /dev/null +++ b/net-im/gaim/gaim-0.78-r2.ebuild @@ -0,0 +1,138 @@ +# Copyright 1999-2004 Gentoo Technologies, Inc. +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-im/gaim/gaim-0.78-r2.ebuild,v 1.1 2004/06/09 18:53:55 rizzo Exp $ + +inherit flag-o-matic eutils gcc +use debug && inherit debug + +IUSE="nls perl spell nas debug crypt cjk gnutls silc" + +DESCRIPTION="GTK Instant Messenger client" +HOMEPAGE="http://gaim.sourceforge.net/" +SRC_URI="mirror://sourceforge/gaim/${P}.tar.bz2" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~x86 ~sparc ~amd64 ~ppc ~alpha ~ia64 ~mips ~hppa" + +DEPEND=">=x11-libs/gtk+-2.0 + >=dev-libs/glib-2.0 + nas? ( >=media-libs/nas-1.4.1-r1 ) + sys-devel/gettext + media-libs/libao + >=media-libs/audiofile-0.2.0 + perl? ( >=dev-lang/perl-5.8.2-r1 + !<dev-perl/ExtUtils-MakeMaker-6.17 ) + spell? ( >=app-text/gtkspell-2.0.2 ) + dev-libs/nss + gnutls? ( net-libs/gnutls ) + !mips? ( silc? ( >=net-im/silc-toolkit-0.9.12 ) )" +PDEPEND="crypt? ( >=net-im/gaim-encryption-2.26 )" + +pkg_setup() { + ewarn + ewarn "If you are merging ${P} from an earlier version, you will need" + ewarn "to re-merge any plugins like gaim-encryption or gaim-snpp." + ewarn + ewarn "If you experience problems with gaim, file them as bugs with" + ewarn "Gentoo's bugzilla, http://bugs.gentoo.org. DO NOT report them" + ewarn "as bugs with gaim's sourceforge tracker, and by all means DO NOT" + ewarn "seek help in #gaim." + ewarn + ewarn "Be sure to USE=\"debug\" and include a backtrace for any seg" + ewarn "faults, see http://gaim.sourceforge.net/gdb.php for details on" + ewarn "backtraces." + ewarn + ewarn "Please read the gaim FAQ at http://gaim.sourceforge.net/faq.php" + ewarn + for TICKER in 1 2 3 4 5; do + # Double beep here. + echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null + echo -ne "\a" ; sleep 1 + done + sleep 8 +} + +src_unpack() { + unpack ${A} + cd ${S} + use cjk && epatch ${FILESDIR}/gaim-0.76-xinput.patch + epatch ${FILESDIR}/gaim-0.77-newtrayicon.patch + epatch ${FILESDIR}/gaim-0.78-jabber_disconnect.patch + epatch ${FILESDIR}/gaim-0.78-log_find_click.patch + epatch ${FILESDIR}/gaim-0.78-msn_disconnect_fix.patch + epatch ${FILESDIR}/gaim-0.78-paste_html_img_crash.patch +} + +src_compile() { + einfo "Replacing -Os CFLAG with -O2" + replace-flags -Os -O2 + + # -msse2 doesn't play nice on gcc 3.2 + [ "`gcc-version`" == "3.2" ] && filter-flags -msse2 + + local myconf + use perl || myconf="${myconf} --disable-perl" + use spell || myconf="${myconf} --disable-gtkspell" + use nls || myconf="${myconf} --disable-nls" + use nas && myconf="${myconf} --enable-nas" || myconf="${myconf} --disable-nas" + + if use gnutls ; then + myconf="${myconf} --with-gnutls-includes=/usr/include/gnutls" + myconf="${myconf} --with-gnutls-libs=/usr/lib" + else + myconf="${myconf} --enable-gnutls=no" + fi + + if ! use mips ; then + if use silc ; then + myconf="${myconf} --with-silc-includes=/usr/include/silc-toolkit" + myconf="${myconf} --with-silc-libs=/usr/lib" + fi + fi + + myconf="${myconf} --with-nspr-includes=/usr/include/nspr" + myconf="${myconf} --with-nss-includes=/usr/include/nss" + myconf="${myconf} --with-nspr-libs=/usr/lib" + myconf="${myconf} --with-nss-libs=/usr/lib" + + econf ${myconf} || die "Configuration failed" + + emake || MAKEOPTS="${MAKEOPTS} -j1" emake || die "Make failed" +} + +src_install() { + make install DESTDIR=${D} || die "Install failed" + dodoc ABOUT-NLS AUTHORS COPYING HACKING INSTALL NEWS PROGRAMMING_NOTES README ChangeLog VERSION + + # Copy header files for gaim plugin use + dodir /usr/include/gaim/src + cp config.h ${D}/usr/include/gaim/ + cd ${S}/src + tar cf - *.h | (cd ${D}/usr/include/gaim/src ; tar xvf -) + assert "Failed to install header files to /usr/include/gaim" +} + +pkg_postinst() { + ewarn + ewarn "If you are merging ${P} from an earlier version, you will need" + ewarn "to re-merge any plugins like gaim-encryption or gaim-snpp." + ewarn + ewarn "If you experience problems with gaim, file them as bugs with" + ewarn "Gentoo's bugzilla, http://bugs.gentoo.org. DO NOT report them" + ewarn "as bugs with gaim's sourceforge tracker, and by all means DO NOT" + ewarn "seek help in #gaim." + ewarn + ewarn "Be sure to USE=\"debug\" and include a backtrace for any seg" + ewarn "faults, see http://gaim.sourceforge.net/gdb.php for details on" + ewarn "backtraces." + ewarn + ewarn "Please read the gaim FAQ at http://gaim.sourceforge.net/faq.php" + ewarn + for TICKER in 1 2 3 4 5; do + # Double beep here. + echo -ne "\a" ; sleep 0.1 &>/dev/null ; sleep 0,1 &>/dev/null + echo -ne "\a" ; sleep 1 + done + sleep 8 +} |