diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..98dbaf8 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/xchat-gnome-0.26.2-40c5bf988.tar.bz2 diff --git a/0001-Don-t-force-the-use-of-SSLv3.patch b/0001-Don-t-force-the-use-of-SSLv3.patch new file mode 100644 index 0000000..e0f0472 --- /dev/null +++ b/0001-Don-t-force-the-use-of-SSLv3.patch @@ -0,0 +1,37 @@ +From 527eb322a5bfa97d5716e7f8178e319c515065a2 Mon Sep 17 00:00:00 2001 +From: Marc Deslauriers +Date: Mon, 20 Oct 2014 10:08:26 -0400 +Subject: [PATCH] Don't force the use of SSLv3. + +SSLv3 should no longer be used for security reasons. Let the best +connection method be automatically determined by using SSLv23_client_method() +and SSLv23_server_method(). +--- + src/common/ssl.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/common/ssl.c b/src/common/ssl.c +index a18ad47..35eb237 100644 +--- a/src/common/ssl.c ++++ b/src/common/ssl.c +@@ -70,7 +70,7 @@ _SSL_context_init (void (*info_cb_func), int server) + + SSLeay_add_ssl_algorithms (); + SSL_load_error_strings (); +- ctx = SSL_CTX_new (server ? SSLv3_server_method() : SSLv3_client_method ()); ++ ctx = SSL_CTX_new (server ? SSLv23_server_method() : SSLv23_client_method ()); + + SSL_CTX_set_session_cache_mode (ctx, SSL_SESS_CACHE_BOTH); + SSL_CTX_set_timeout (ctx, 300); +@@ -281,7 +281,7 @@ _SSL_socket (SSL_CTX *ctx, int sd) + __SSL_critical_error ("SSL_new"); + + SSL_set_fd (ssl, sd); +- if (ctx->method == SSLv3_client_method()) ++ if (ctx->method == SSLv23_client_method()) + SSL_set_connect_state (ssl); + else + SSL_set_accept_state(ssl); +-- +2.1.0 + diff --git a/0001-Dont-attempt-to-render-a-nonexistent-string.patch b/0001-Dont-attempt-to-render-a-nonexistent-string.patch new file mode 100644 index 0000000..fc22dd9 --- /dev/null +++ b/0001-Dont-attempt-to-render-a-nonexistent-string.patch @@ -0,0 +1,26 @@ +From 658b8d21e2ad4d158db6e189cc622e6a8e6b756b Mon Sep 17 00:00:00 2001 +From: Bill Nottingham +Date: Wed, 13 Apr 2011 22:40:17 -0400 +Subject: [PATCH 1/3] Dont' attempt to render a nonexistent string. + +https://bugzilla.gnome.org/show_bug.cgi?id=652867 +--- + src/fe-gnome/xtext.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/fe-gnome/xtext.c b/src/fe-gnome/xtext.c +index 06b00c5..6cba1d5 100644 +--- a/src/fe-gnome/xtext.c ++++ b/src/fe-gnome/xtext.c +@@ -2645,7 +2645,7 @@ gtk_xtext_render_flush (GtkXText * xtext, int x, int y, unsigned char *str, + + str_width = backend_get_text_width (xtext, str, len, is_mb); + +- if (xtext->dont_render2) ++ if (xtext->dont_render2 || str_width < 1) + return str_width; + + /* roll-your-own clipping (avoiding XftDrawString is always good!) */ +-- +1.7.5.2 + diff --git a/0001-Fix-ME-messages-in-czech-translation.patch b/0001-Fix-ME-messages-in-czech-translation.patch new file mode 100644 index 0000000..0b05c62 --- /dev/null +++ b/0001-Fix-ME-messages-in-czech-translation.patch @@ -0,0 +1,25 @@ +From ce1ef68680aca8cc4e3760fc200d9b71bffed3f6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?V=C3=ADt=20Ondruch?= +Date: Fri, 21 Sep 2012 14:27:12 +0200 +Subject: [PATCH] Fix /ME messages in czech translation. + +--- + po/cs.po | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/po/cs.po b/po/cs.po +index f91a5b0..15f1060 100644 +--- a/po/cs.po ++++ b/po/cs.po +@@ -1865,7 +1865,7 @@ msgstr "%C22*%O$t$1 byl přejmenován na $2" + + #: ../src/common/textevents.h:21 + msgid "%C13*%O$t$1 $2%O" +-msgstr "%C16*%O$t$1%O" ++msgstr "%C16*%O$t$1 $2%O" + + #: ../src/common/textevents.h:24 + msgid "%C13*%O$t%C8%B$1%B%O $2%O" +-- +1.7.11.4 + diff --git a/0001-Fix-crash-on-NULL-networks-hash-table.patch b/0001-Fix-crash-on-NULL-networks-hash-table.patch new file mode 100644 index 0000000..6ea4af6 --- /dev/null +++ b/0001-Fix-crash-on-NULL-networks-hash-table.patch @@ -0,0 +1,31 @@ +From 5b79d29146a72f1db0eff3bce4fd8e155d396c2d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= +Date: Mon, 3 Oct 2011 13:47:27 +0200 +Subject: [PATCH] Fix crash on NULL 'networks' hash table +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + + +Signed-off-by: Jiří Klimeš +--- + plugins/net-monitor/net-monitor.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/plugins/net-monitor/net-monitor.c b/plugins/net-monitor/net-monitor.c +index fada61c..6ac981c 100644 +--- a/plugins/net-monitor/net-monitor.c ++++ b/plugins/net-monitor/net-monitor.c +@@ -176,7 +176,8 @@ set_network_mode (NetworkStatus status) + */ + res_init(); + +- g_hash_table_foreach (networks, (GHFunc) connect_to_network, NULL); ++ if (networks) ++ g_hash_table_foreach (networks, (GHFunc) connect_to_network, NULL); + } + } + +-- +1.7.6.4 + diff --git a/0002-Plugin_GetCurrent-can-return-NULL.patch b/0002-Plugin_GetCurrent-can-return-NULL.patch new file mode 100644 index 0000000..35a4fca --- /dev/null +++ b/0002-Plugin_GetCurrent-can-return-NULL.patch @@ -0,0 +1,41 @@ +From 7604517bd9c400ae60ab64b82aea1b9665e4122c Mon Sep 17 00:00:00 2001 +From: Bill Nottingham +Date: Tue, 19 Apr 2011 17:09:44 -0400 +Subject: [PATCH 2/3] Plugin_GetCurrent() can return NULL. + +Check its return before dereferencing it. + +https://bugzilla.gnome.org/show_bug.cgi?id=652866 +--- + plugins/python/python.c | 7 ++++++- + 1 files changed, 6 insertions(+), 1 deletions(-) + +diff --git a/plugins/python/python.c b/plugins/python/python.c +index 53267a3..bcceed1 100644 +--- a/plugins/python/python.c ++++ b/plugins/python/python.c +@@ -791,6 +791,8 @@ static PyObject * + Context_set(ContextObject *self, PyObject *args) + { + PyObject *plugin = Plugin_GetCurrent(); ++ if (plugin == NULL) ++ return NULL; + Plugin_SetContext(plugin, self->context); + Py_INCREF(Py_None); + return Py_None; +@@ -867,8 +869,11 @@ static PyObject * + Context_get_list(ContextObject *self, PyObject *args) + { + PyObject *plugin = Plugin_GetCurrent(); +- xchat_context *saved_context = Plugin_GetContext(plugin); ++ xchat_context *saved_context; + PyObject *ret; ++ if (plugin == NULL) ++ return NULL; ++ saved_context = Plugin_GetContext(plugin); + Plugin_SetContext(plugin, self->context); + ret = Module_xchat_get_list((PyObject*)self, args); + Plugin_SetContext(plugin, saved_context); +-- +1.7.5.2 + diff --git a/0003-Ensure-pixmap-depth-matches-screen-window-depth.patch b/0003-Ensure-pixmap-depth-matches-screen-window-depth.patch new file mode 100644 index 0000000..3be4915 --- /dev/null +++ b/0003-Ensure-pixmap-depth-matches-screen-window-depth.patch @@ -0,0 +1,26 @@ +From 9464eeb4bd0b3f09901d18357dee06d084989162 Mon Sep 17 00:00:00 2001 +From: Bill Nottingham +Date: Fri, 17 Jun 2011 15:49:09 -0400 +Subject: [PATCH 3/3] Ensure pixmap depth matches screen/window depth. + +https://bugzilla.gnome.org/show_bug.cgi?id=652865 +--- + src/fe-gnome/conversation-panel.c | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/src/fe-gnome/conversation-panel.c b/src/fe-gnome/conversation-panel.c +index 59e1bcd..b230fd5 100644 +--- a/src/fe-gnome/conversation-panel.c ++++ b/src/fe-gnome/conversation-panel.c +@@ -592,7 +592,7 @@ conversation_panel_set_background (ConversationPanel *panel) + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + +- image = gdk_pixmap_new (NULL, width, height, 24); ++ image = gdk_pixmap_new (GDK_DRAWABLE (panel->priv->xtext->window), width, height, -1); + #if GTK_CHECK_VERSION (2, 23, 0) + context = gdk_cairo_create (GDK_DRAWABLE (image)); + gdk_cairo_set_source_pixbuf (context, pixbuf, 0, 0); +-- +1.7.5.2 + diff --git a/0004-Call-g_slist_remove-on-items-before-free-not-after.patch b/0004-Call-g_slist_remove-on-items-before-free-not-after.patch new file mode 100644 index 0000000..2d0489f --- /dev/null +++ b/0004-Call-g_slist_remove-on-items-before-free-not-after.patch @@ -0,0 +1,92 @@ +From 8dfd9e91bbf3de9084980ea19e4353ad88aa9399 Mon Sep 17 00:00:00 2001 +From: Bill Nottingham +Date: Fri, 17 Jun 2011 16:38:23 -0400 +Subject: [PATCH 4/4] Call g_slist_remove on items before free(), not after. + +--- + src/common/cfgfiles.c | 2 +- + src/common/plugin.c | 2 +- + src/common/servlist.c | 22 +++++++++++----------- + 3 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c +index 6c70727..330967a 100644 +--- a/src/common/cfgfiles.c ++++ b/src/common/cfgfiles.c +@@ -140,8 +140,8 @@ list_free (GSList ** list) + while (*list) + { + data = (void *) (*list)->data; +- free (data); + *list = g_slist_remove (*list, data); ++ free (data); + } + } + +diff --git a/src/common/plugin.c b/src/common/plugin.c +index 0889dca..c6a67ac 100644 +--- a/src/common/plugin.c ++++ b/src/common/plugin.c +@@ -160,9 +160,9 @@ xit: + } + if (pl->filename) + free ((char *)pl->filename); +- free (pl); + + plugin_list = g_slist_remove (plugin_list, pl); ++ free (pl); + + #ifdef USE_PLUGIN + fe_pluginlist_update (); +diff --git a/src/common/servlist.c b/src/common/servlist.c +index 3082966..b38ac4f 100644 +--- a/src/common/servlist.c ++++ b/src/common/servlist.c +@@ -792,9 +792,9 @@ servlist_server_add (ircnet *net, char *name) + void + servlist_server_remove (ircnet *net, ircserver *serv) + { ++ net->servlist = g_slist_remove (net->servlist, serv); + free (serv->hostname); + free (serv); +- net->servlist = g_slist_remove (net->servlist, serv); + } + + static void +@@ -818,6 +818,16 @@ servlist_net_remove (ircnet *net) + servlist_server_remove_all (net); + network_list = g_slist_remove (network_list, net); + ++ /* for safety */ ++ list = serv_list; ++ while (list) ++ { ++ serv = list->data; ++ if (serv->network == net) ++ serv->network = NULL; ++ list = list->next; ++ } ++ + if (net->nick) + free (net->nick); + if (net->nick2) +@@ -840,16 +850,6 @@ servlist_net_remove (ircnet *net) + free (net->encoding); + free (net->name); + free (net); +- +- /* for safety */ +- list = serv_list; +- while (list) +- { +- serv = list->data; +- if (serv->network == net) +- serv->network = NULL; +- list = list->next; +- } + } + + ircnet * +-- +1.7.5.2 + diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..87368f2 --- /dev/null +++ b/build.patch @@ -0,0 +1,19 @@ +diff -up xchat-gnome-0.26.2/configure.ac.ice xchat-gnome-0.26.2/configure.ac +--- xchat-gnome-0.26.2/configure.ac.ice 2010-09-16 02:44:35.000000000 -0400 ++++ xchat-gnome-0.26.2/configure.ac 2012-07-12 12:05:32.287466474 -0400 +@@ -63,6 +63,7 @@ PKG_CHECK_MODULES([DEPENDENCIES], [\ + gio-2.0 >= $GLIB_REQUIRED \ + gtk+-2.0 >= $GTK_REQUIRED \ + libglade-2.0 >= $LIBGLADE_REQUIRED \ ++ gmodule-2.0 >= $GLIB_REQUIRED \ + gconf-2.0 >= $GCONF_REQUIRED \ + libsexy >= $LIBSEXY_REQUIRED \ + ]) +@@ -72,6 +72,7 @@ PKG_CHECK_MODULES([DEPENDENCIES], [\ + PKG_CHECK_MODULES([EGG_SMCLIENT], [\ + gtk+-2.0 >= $GTK_REQUIRED \ + sm >= $SM_REQUIRED \ ++ ice \ + ]) + AC_SUBST(EGG_SMCLIENT_CFLAGS) + AC_SUBST(EGG_SMCLIENT_LIBS) diff --git a/dead.package b/dead.package deleted file mode 100644 index c8e92df..0000000 --- a/dead.package +++ /dev/null @@ -1,3 +0,0 @@ -2016-11-20: Retired orphaned package, because it was orphaned for -more than six weeks. - diff --git a/sources b/sources new file mode 100644 index 0000000..2a15fb8 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +b65f089b921499b1c65172a618999248 xchat-gnome-0.26.2-40c5bf988.tar.bz2 diff --git a/xchat-gnome-0.23.92-config.patch b/xchat-gnome-0.23.92-config.patch new file mode 100644 index 0000000..1cb0439 --- /dev/null +++ b/xchat-gnome-0.23.92-config.patch @@ -0,0 +1,78 @@ +diff -urp xchat-gnome-0.23.92.OLD/plugins/perl/perl.c xchat-gnome-0.23.92/plugins/perl/perl.c +--- xchat-gnome-0.23.92.OLD/plugins/perl/perl.c 2007-03-09 10:42:50.000000000 -0500 ++++ xchat-gnome-0.23.92/plugins/perl/perl.c 2008-09-09 19:07:08.000000000 -0400 +@@ -92,7 +92,7 @@ perl_auto_load (void) + if (!xdir) /* xchatdirfs is new for 2.0.9, will fail on older */ + xdir = xchat_get_info (ph, "xchatdir"); + +- /* autoload from ~/.xchat2/ or ${APPDATA}\X-Chat 2\ on win32 */ ++ /* autoload from ~/.xchat-gnome/ or ${APPDATA}\X-Chat 2\ on win32 */ + perl_auto_load_from_path (xdir); + + #ifdef WIN32 +diff -urp xchat-gnome-0.23.92.OLD/plugins/python/python.c xchat-gnome-0.23.92/plugins/python/python.c +--- xchat-gnome-0.23.92.OLD/plugins/python/python.c 2008-09-07 09:18:27.000000000 -0400 ++++ xchat-gnome-0.23.92/plugins/python/python.c 2008-09-09 19:06:47.000000000 -0400 +@@ -421,7 +421,7 @@ Util_Expand(char *filename) + return expanded; + g_free(expanded); + +- /* Check if ~/.xchat2/ exists. */ ++ /* Check if ~/.xchat-gnome/ exists. */ + expanded = g_build_filename(xchat_get_info(ph, "xchatdir"), + filename, NULL); + if (g_file_test(expanded, G_FILE_TEST_EXISTS)) +diff -urp xchat-gnome-0.23.92.OLD/src/common/cfgfiles.c xchat-gnome-0.23.92/src/common/cfgfiles.c +--- xchat-gnome-0.23.92.OLD/src/common/cfgfiles.c 2007-09-12 10:12:26.000000000 -0400 ++++ xchat-gnome-0.23.92/src/common/cfgfiles.c 2008-09-09 19:05:01.000000000 -0400 +@@ -34,7 +34,7 @@ + #ifdef WIN32 + #define XCHAT_DIR "X-Chat 2" + #else +-#define XCHAT_DIR ".xchat2" ++#define XCHAT_DIR ".xchat-gnome" + #endif + #define DEF_FONT "Monospace 9" + +@@ -351,7 +351,7 @@ check_prefs_dir (void) + #else + if (mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR) != 0) + #endif +- fe_message (_("Cannot create ~/.xchat2"), FE_MSG_ERROR); ++ fe_message (_("Cannot create ~/.xchat-gnome"), FE_MSG_ERROR); + } + } + +diff -urp xchat-gnome-0.23.92.OLD/src/common/fe.h xchat-gnome-0.23.92/src/common/fe.h +--- xchat-gnome-0.23.92.OLD/src/common/fe.h 2007-07-09 05:30:58.000000000 -0400 ++++ xchat-gnome-0.23.92/src/common/fe.h 2008-09-09 19:05:21.000000000 -0400 +@@ -106,7 +106,7 @@ void fe_get_str (char *prompt, char *def + void fe_get_int (char *prompt, int def, void *callback, void *ud); + #define FRF_WRITE 1 /* save file */ + #define FRF_MULTIPLE 2 /* multi-select */ +-#define FRF_ADDFOLDER 4 /* add ~/.xchat2 to favourites */ ++#define FRF_ADDFOLDER 4 /* add ~/.xchat-gnome to favourites */ + #define FRF_CHOOSEFOLDER 8 /* choosing a folder only */ + #define FRF_FILTERISINITIAL 16 /* unused */ + #define FRF_NOASKOVERWRITE 32 /* don't ask to overwrite existing files */ +diff -urp xchat-gnome-0.23.92.OLD/src/fe-gnome/preferences-page-plugins.c xchat-gnome-0.23.92/src/fe-gnome/preferences-page-plugins.c +--- xchat-gnome-0.23.92.OLD/src/fe-gnome/preferences-page-plugins.c 2007-07-24 05:24:39.000000000 -0400 ++++ xchat-gnome-0.23.92/src/fe-gnome/preferences-page-plugins.c 2008-09-09 19:06:27.000000000 -0400 +@@ -242,7 +242,7 @@ open_plugin_clicked (GtkButton *button, + file_selector = gtk_file_chooser_dialog_new (_("Open Plugin"), NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); + + homedir = g_get_home_dir(); +- plugindir = g_strdup_printf ("%s/.xchat2/plugins", homedir); ++ plugindir = g_strdup_printf ("%s/.xchat-gnome/plugins", homedir); + gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (file_selector), plugindir); + g_free (plugindir); + +@@ -417,7 +417,7 @@ preferences_page_plugins_check_plugins ( + xchat_plugin *plugin; + + homedir = g_get_home_dir (); +- xchatdir = g_strdup_printf ("%s/.xchat2/plugins", homedir); ++ xchatdir = g_strdup_printf ("%s/.xchat-gnome/plugins", homedir); + for_files (XCHATLIBDIR "/plugins", "*.so", fe_plugin_add); + for_files (XCHATLIBDIR "/plugins", "*.sl", fe_plugin_add); + for_files (XCHATLIBDIR "/plugins", "*.py", fe_plugin_add); diff --git a/xchat-gnome-0.26.1-libnotify.patch b/xchat-gnome-0.26.1-libnotify.patch new file mode 100644 index 0000000..40c29a4 --- /dev/null +++ b/xchat-gnome-0.26.1-libnotify.patch @@ -0,0 +1,11 @@ +--- xchat-gnome-0.26.1/plugins/notify-osd/notify-osd.c 2008-09-07 06:18:27.000000000 -0700 ++++ xchat-gnome-0.26.1/plugins/notify-osd/notify-osd.c.new 2010-11-08 13:42:40.856127590 -0800 +@@ -67,7 +67,7 @@ + gchar *escaped; + + escaped = g_markup_escape_text (message, strlen(message)); +- notify = notify_notification_new (summary, escaped, NULL, NULL); ++ notify = notify_notification_new (summary, escaped, NULL); + notify_notification_set_urgency (notify, NOTIFY_URGENCY_NORMAL); + notify_notification_set_icon_from_pixbuf (notify, notify_icon); + if (!notify_notification_show (notify, &error)) { diff --git a/xchat-gnome-0.26.1-recent-network-manager.patch b/xchat-gnome-0.26.1-recent-network-manager.patch new file mode 100644 index 0000000..2d0f225 --- /dev/null +++ b/xchat-gnome-0.26.1-recent-network-manager.patch @@ -0,0 +1,149 @@ +diff -up xchat-gnome-0.26.1/plugins/net-monitor/net-monitor.c.recent-nm xchat-gnome-0.26.1/plugins/net-monitor/net-monitor.c +--- xchat-gnome-0.26.1/plugins/net-monitor/net-monitor.c.recent-nm 2009-03-15 09:08:06.000000000 -0500 ++++ xchat-gnome-0.26.1/plugins/net-monitor/net-monitor.c 2011-03-25 18:10:33.621834647 -0500 +@@ -23,7 +23,6 @@ + */ + + #include +-#define DBUS_API_SUBJECT_TO_CHANGE + #include + #include + #include +@@ -54,13 +53,18 @@ typedef enum + + typedef enum + { +- NM_STATE_UNKNOWN = 0, +- NM_STATE_ASLEEP, +- NM_STATE_CONFIGURE_AP, +- NM_STATE_CONFIGURE_DEV, +- NM_STATE_CONFIGURE_IP, +- NM_STATE_CONNECTED, +- NM_STATE_DISCONNECTED, ++ NM_STATE_UNKNOWN = 0, ++ NM_OLD_STATE_ASLEEP = 1, ++ NM_OLD_STATE_CONNECTING = 4, ++ NM_OLD_STATE_CONNECTED = 5, ++ NM_OLD_STATE_DISCONNECTED = 6, ++ NM_STATE_ASLEEP = 10, ++ NM_STATE_DISCONNECTED = 20, ++ NM_STATE_DISCONNECTING = 30, ++ NM_STATE_CONNECTING = 40, ++ NM_STATE_CONNECTED_LOCAL = 50, ++ NM_STATE_CONNECTED_SITE = 60, ++ NM_STATE_CONNECTED_GLOBAL = 70 + } NetworkManagerState; + + enum { +@@ -180,50 +184,6 @@ set_network_mode (NetworkStatus status) + } + } + +-static NetworkStatus +-check_device_state (const char *path) +-{ +- DBusMessage *message, *reply; +- DBusMessageIter iter; +- DBusError error; +- NetworkStatus network_mode; +- +- message = dbus_message_new_method_call (NM_SERVICE, path, NM_INTERFACE, "getLinkActive"); +- if (message == NULL) { +- g_warning ("Net Monitor: Couldn't allocate dbus message : %s: %s\n", error.name, error.message); +- /* just guess that we're up */ +- return NETWORK_UP; +- } +- +- dbus_error_init (&error); +- reply = dbus_connection_send_with_reply_and_block (bus, message, -1, &error); +- +- if (dbus_error_is_set (&error)) { +- g_warning ("Net Monitor: Error retrieving device state: %s: %s\n", error.name, error.message); +- network_mode = NETWORK_UP; +- } else { +- dbus_message_iter_init (reply, &iter); +- +- if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_BOOLEAN) { +- dbus_bool_t active; +- +- dbus_message_iter_get_basic (&iter, &active); +- network_mode = active ? NETWORK_UP : NETWORK_DOWN; +- } else { +- g_warning ("Net Monitor: got bad reply from NetworkManager\n"); +- network_mode = NETWORK_UP; +- } +- } +- +- if (reply) +- dbus_message_unref (reply); +- +- if (message) +- dbus_message_unref (message); +- +- return network_mode; +-} +- + static void + determine_network_status () + { +@@ -232,7 +192,7 @@ determine_network_status () + DBusError error; + NetworkStatus network_mode = NETWORK_DOWN; + +- message = dbus_message_new_method_call (NM_SERVICE, NM_OBJECT_PATH, NM_INTERFACE, "getDevices"); ++ message = dbus_message_new_method_call (NM_SERVICE, NM_OBJECT_PATH, NM_INTERFACE, "state"); + if (message == NULL) { + g_warning ("Net Monitor: Couldn't allocate dbus message : %s: %s\n", error.name, error.message); + /* just guess that we're up */ +@@ -248,24 +208,15 @@ determine_network_status () + network_mode = NETWORK_UP; + } else { + dbus_message_iter_init (reply, &iter); +- if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_ARRAY) { +- DBusMessageIter child; +- +- dbus_message_iter_recurse (&iter, &child); +- +- while (dbus_message_iter_get_arg_type (&child) != DBUS_TYPE_INVALID) { +- const char *path; +- gboolean state; +- +- /* Check the state of this individual device. If any one +- * device is active, the network is up */ +- dbus_message_iter_get_basic (&child, &path); +- state = check_device_state (path); +- if (state == NETWORK_UP) +- network_mode = NETWORK_UP; ++ if (dbus_message_iter_get_arg_type (&iter) == DBUS_TYPE_UINT32) { ++ dbus_uint32_t state; + +- dbus_message_iter_next (&child); +- } ++ dbus_message_iter_get_basic (&iter, &state); ++ if (state == NM_OLD_STATE_CONNECTED || ++ state == NM_STATE_CONNECTED_LOCAL || ++ state == NM_STATE_CONNECTED_SITE || ++ state == NM_STATE_CONNECTED_GLOBAL) ++ network_mode = NETWORK_UP; + } else { + g_warning ("Net Monitor: got bad reply from NetworkManager\n"); + network_mode = NETWORK_UP; +@@ -284,16 +235,12 @@ determine_network_status () + static DBusHandlerResult + filter_func (DBusConnection *connection, DBusMessage *message, void *data) + { +- if (dbus_message_is_signal (message, NM_INTERFACE, "DeviceNoLongerActive")) { ++ if (dbus_message_is_signal (message, NM_INTERFACE, "StateChanged") || ++ dbus_message_is_signal (message, NM_INTERFACE, "StateChange")) { + determine_network_status (); + return DBUS_HANDLER_RESULT_HANDLED; + } + +- if (dbus_message_is_signal (message, NM_INTERFACE, "DeviceNowActive")) { +- set_network_mode (NETWORK_UP); +- return DBUS_HANDLER_RESULT_HANDLED; +- } +- + return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + } + diff --git a/xchat-gnome-0.26.1-remove-deprecated-api.patch b/xchat-gnome-0.26.1-remove-deprecated-api.patch new file mode 100644 index 0000000..1f4bc87 --- /dev/null +++ b/xchat-gnome-0.26.1-remove-deprecated-api.patch @@ -0,0 +1,400 @@ +From 23aa5dd1a3033c0badd750bedea8ba1b7a677a74 Mon Sep 17 00:00:00 2001 +From: Robert Ancell +Date: Mon, 17 Jan 2011 12:10:30 +0000 +Subject: Bug 637427 - [PATCH] Stop using deprecated GDK/GTK API + +removed a bit of deprecated apis, and minor indentation fixes +--- +diff --git a/src/fe-gnome/channel-list-window.c b/src/fe-gnome/channel-list-window.c +index e7e7c31..652f549 100644 +--- a/src/fe-gnome/channel-list-window.c ++++ b/src/fe-gnome/channel-list-window.c +@@ -497,7 +497,7 @@ channel_list_window_finalize (GObject *object) + g_source_remove (win->refresh_timeout); + } + chanlists = g_slist_remove (chanlists, (gpointer) win); +- gtk_widget_hide_all (win->window); ++ gtk_widget_hide (win->window); + + g_object_unref (win->xml); + G_OBJECT_CLASS (channel_list_window_parent_class)->finalize (object); +diff --git a/src/fe-gnome/connect-dialog.c b/src/fe-gnome/connect-dialog.c +index 35b90a6..22895e8 100644 +--- a/src/fe-gnome/connect-dialog.c ++++ b/src/fe-gnome/connect-dialog.c +@@ -159,7 +159,9 @@ connect_dialog_init (ConnectDialog *dialog) + gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_OK); + gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog->toplevel); ++#if !GTK_CHECK_VERSION (2, 23, 0) + gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); ++#endif + + g_signal_connect (G_OBJECT (dialog->server_list), "row-activated", G_CALLBACK (row_activated), dialog); + +diff --git a/src/fe-gnome/conversation-panel.c b/src/fe-gnome/conversation-panel.c +index fb013c7..59e1bcd 100644 +--- a/src/fe-gnome/conversation-panel.c ++++ b/src/fe-gnome/conversation-panel.c +@@ -584,13 +584,23 @@ conversation_panel_set_background (ConversationPanel *panel) + pixbuf = gdk_pixbuf_new_from_file (filename, NULL); + if (pixbuf) { + gint width, height; ++#if GTK_CHECK_VERSION (2, 23, 0) ++ cairo_t *context; ++#endif + GdkPixmap *image; + + width = gdk_pixbuf_get_width (pixbuf); + height = gdk_pixbuf_get_height (pixbuf); + + image = gdk_pixmap_new (NULL, width, height, 24); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ context = gdk_cairo_create (GDK_DRAWABLE (image)); ++ gdk_cairo_set_source_pixbuf (context, pixbuf, 0, 0); ++ cairo_paint (context); ++ cairo_destroy (context); ++#else + gdk_draw_pixbuf (image, NULL, pixbuf, 0, 0, 0, 0, width, height, GDK_RGB_DITHER_NONE, 0, 0); ++#endif + + gtk_xtext_set_background (GTK_XTEXT (panel->priv->xtext), image, FALSE); + g_object_unref (pixbuf); +diff --git a/src/fe-gnome/irc-network-editor.c b/src/fe-gnome/irc-network-editor.c +index 0f424d0..4fa132b 100644 +--- a/src/fe-gnome/irc-network-editor.c ++++ b/src/fe-gnome/irc-network-editor.c +@@ -322,13 +322,22 @@ irc_network_editor_init (IrcNetworkEditor *dialog) + gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (dialog->autojoin_channels), 1, _("Key"), dialog->autojoin_key_renderer, "text", 1, NULL); + g_object_set (G_OBJECT (dialog->autojoin_key_renderer), "editable", TRUE, NULL); + ++#if GTK_CHECK_VERSION (2, 23, 0) ++ dialog->encoding = gtk_combo_box_text_new (); ++#else + dialog->encoding = gtk_combo_box_new_text (); ++#endif ++ + gtk_widget_show (dialog->encoding); + gtk_table_attach_defaults (GTK_TABLE (dialog->network_settings_table), dialog->encoding, 1, 2, 5, 6); + + enc = (gchar **) encodings; + do { ++#if GTK_CHECK_VERSION (2, 23, 0) ++ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (dialog->encoding), _(*enc)); ++#else + gtk_combo_box_append_text (GTK_COMBO_BOX (dialog->encoding), _(*enc)); ++#endif + enc++; + } while (*enc); + +diff --git a/src/fe-gnome/preferences-page-colors.c b/src/fe-gnome/preferences-page-colors.c +index 51afb4f..33186c9 100644 +--- a/src/fe-gnome/preferences-page-colors.c ++++ b/src/fe-gnome/preferences-page-colors.c +@@ -255,10 +255,18 @@ preferences_page_colors_new (gpointer prefs_dialog, GtkBuilder *xml) + gtk_list_store_set (p->page_store, &iter, 0, PREFERENCES_PAGE (page)->icon, 1, _("Colors"), 2, 1, -1); + + page->combo = gtk_combo_box_new_text (); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ page->combo = gtk_combo_box_text_new (); ++ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (page->combo), _("Black on White")); ++ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (page->combo), _("White on Black")); ++ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (page->combo), _("Custom")); ++ gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (page->combo), _("System Theme Colors")); ++#else + gtk_combo_box_append_text (GTK_COMBO_BOX (page->combo), _("Black on White")); + gtk_combo_box_append_text (GTK_COMBO_BOX (page->combo), _("White on Black")); + gtk_combo_box_append_text (GTK_COMBO_BOX (page->combo), _("Custom")); + gtk_combo_box_append_text (GTK_COMBO_BOX (page->combo), _("System Theme Colors")); ++#endif + gtk_widget_show (page->combo); + gtk_label_set_mnemonic_widget (GTK_LABEL (page->color_label_1), page->combo); + gtk_box_pack_start (GTK_BOX (page->foreground_background_hbox), page->combo, FALSE, TRUE, 0); +diff --git a/src/fe-gnome/text-entry.c b/src/fe-gnome/text-entry.c +index 24c192b..ad24c6c 100644 +--- a/src/fe-gnome/text-entry.c ++++ b/src/fe-gnome/text-entry.c +@@ -624,19 +624,35 @@ get_color_icon (int c, GtkStyle *style) + { + GtkWidget *image; + GdkPixmap *pixmap; ++#if GTK_CHECK_VERSION (2, 23, 0) ++ cairo_t *context; ++#else + GdkGC *color; ++#endif + + pixmap = gdk_pixmap_new (NULL, 16, 16, 24); + ++#if GTK_CHECK_VERSION (2, 23, 0) ++ context = gdk_cairo_create (GDK_DRAWABLE (pixmap)); ++ gdk_cairo_set_source_color (context, &style->dark[GTK_STATE_NORMAL]); ++ cairo_rectangle (context, 0, 0, 16, 16); ++ cairo_fill (context); ++ gdk_cairo_set_source_color (context, &colors[c]); ++ cairo_rectangle (context, 1, 1, 14, 14); ++ cairo_fill (context); ++ cairo_destroy (context); ++#else + color = gdk_gc_new (GDK_DRAWABLE (pixmap)); + gdk_gc_set_foreground (color, &style->dark[GTK_STATE_NORMAL]); + gdk_draw_rectangle (GDK_DRAWABLE (pixmap), color, TRUE, 0, 0, 16, 16); + gdk_gc_set_foreground (color, &colors[c]); + gdk_draw_rectangle (GDK_DRAWABLE (pixmap), color, TRUE, 1, 1, 14, 14); + g_object_unref (color); ++#endif + + image = gtk_image_new_from_pixmap (pixmap, NULL); + g_object_unref (pixmap); ++ + return image; + } + +diff --git a/src/fe-gnome/userlist-gui.c b/src/fe-gnome/userlist-gui.c +index c6671df..3e1dd66 100644 +--- a/src/fe-gnome/userlist-gui.c ++++ b/src/fe-gnome/userlist-gui.c +@@ -402,7 +402,12 @@ userlist_button_release (GtkWidget *widget, GdkEventButton *button, gpointer dat + gint x, y, width, height; + + gdk_window_get_root_origin (gui.userlist_window->window, &x, &y); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ width = gdk_window_get_width (gui.userlist_window->window); ++ height = gdk_window_get_height (gui.userlist_window->window); ++#else + gdk_drawable_get_size (gui.userlist_window->window, &width, &height); ++#endif + + /* If the event happened on top of the userlist window, we don't want to + * close it */ +diff --git a/src/fe-gnome/xtext.c b/src/fe-gnome/xtext.c +index a7e2caf..06b00c5 100644 +--- a/src/fe-gnome/xtext.c ++++ b/src/fe-gnome/xtext.c +@@ -978,28 +978,28 @@ gtk_xtext_realize (GtkWidget * widget) + attributes.visual = gtk_widget_get_visual (widget); + + widget->window = gdk_window_new (widget->parent->window, &attributes, +- GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | +- GDK_WA_COLORMAP); ++ GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | ++ GDK_WA_COLORMAP); + + gdk_window_set_user_data (widget->window, widget); + +- xtext->depth = gdk_drawable_get_visual (widget->window)->depth; ++ xtext->depth = gdk_drawable_get_depth (widget->window); + + val.subwindow_mode = GDK_INCLUDE_INFERIORS; + val.graphics_exposures = 0; + + xtext->bgc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + xtext->fgc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + xtext->light_gc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + xtext->dark_gc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + xtext->thin_gc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + xtext->marker_gc = gdk_gc_new_with_values (widget->window, &val, +- GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); ++ GDK_GC_EXPOSURES | GDK_GC_SUBWINDOW); + + /* for the separator bar (light) */ + col.red = 0xffff; col.green = 0xffff; col.blue = 0xffff; +@@ -1041,9 +1041,9 @@ gtk_xtext_realize (GtkWidget * widget) + gdk_gc_set_fill (xtext->bgc, GDK_TILED); + } + +-#if (GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION == 0) +- xtext->hand_cursor = gdk_cursor_new (GDK_HAND1); +- xtext->resize_cursor = gdk_cursor_new (GDK_LEFT_SIDE); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ xtext->hand_cursor = gdk_cursor_new_for_display (gdk_window_get_display (widget->window), GDK_HAND1); ++ xtext->resize_cursor = gdk_cursor_new_for_display (gdk_window_get_display (widget->window), GDK_LEFT_SIDE); + #else + xtext->hand_cursor = gdk_cursor_new_for_display (gdk_drawable_get_display (widget->window), GDK_HAND1); + xtext->resize_cursor = gdk_cursor_new_for_display (gdk_drawable_get_display (widget->window), GDK_LEFT_SIDE); +@@ -1718,7 +1718,11 @@ gtk_xtext_scrolldown_timeout (GtkXText * xtext) + int p_y, win_height; + + gdk_window_get_pointer (GTK_WIDGET (xtext)->window, 0, &p_y, 0); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ win_height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, 0, &win_height); ++#endif + + if (p_y > win_height && + xtext->adj->value < (xtext->adj->upper - xtext->adj->page_size)) +@@ -1758,7 +1762,11 @@ gtk_xtext_selection_update (GtkXText * xtext, GdkEventMotion * event, int p_y, g + int win_height; + int moved; + ++#if GTK_CHECK_VERSION (2, 16, 0) ++ win_height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, 0, &win_height); ++#endif + + /* selecting past top of window, scroll up! */ + if (p_y < 0 && xtext->adj->value >= 0) +@@ -2372,8 +2380,8 @@ gtk_xtext_selection_get_text (GtkXText *xtext, int *len_ret) + + static void + gtk_xtext_selection_get (GtkWidget * widget, +- GtkSelectionData * selection_data_ptr, +- guint info, guint time) ++ GtkSelectionData * selection_data_ptr, ++ guint info, guint time) + { + GtkXText *xtext = GTK_XTEXT (widget); + char *stripped; +@@ -2398,16 +2406,16 @@ gtk_xtext_selection_get (GtkWidget * widget, + gint format; + gint new_length; + +-#if (GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION == 0) +- gdk_string_to_compound_text ( ++ gdk_string_to_compound_text_for_display ( ++#if GTK_CHECK_VERSION (2, 23, 0) ++ gdk_window_get_display (widget->window), + #else +- gdk_string_to_compound_text_for_display ( +- gdk_drawable_get_display (widget->window), ++ gdk_drawable_get_display (widget->window), + #endif +- stripped, &encoding, &format, &new_text, +- &new_length); ++ stripped, &encoding, &format, &new_text, ++ &new_length); + gtk_selection_data_set (selection_data_ptr, encoding, format, +- new_text, new_length); ++ new_text, new_length); + gdk_free_compound_text (new_text); + } + break; +@@ -3750,7 +3758,13 @@ gtk_xtext_load_trans (GtkXText * xtext) + if (xtext->shaded) + { + int width, height; ++#if GTK_CHECK_VERSION (2, 23, 0) ++ width = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++ height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); ++#endif ++ + xtext->pixmap = shade_pixmap (xtext, rootpix, x, y, width+105, height); + if (xtext->pixmap == NULL) + { +@@ -3763,8 +3777,8 @@ gtk_xtext_load_trans (GtkXText * xtext) + } else + { + noshade: +-#if (GTK_MAJOR_VERSION == 2) && (GTK_MINOR_VERSION == 0) +- xtext->pixmap = gdk_pixmap_foreign_new (rootpix); ++#if GTK_CHECK_VERSION (2, 23, 0) ++ xtext->pixmap = gdk_pixmap_foreign_new_for_display (gdk_window_get_display (GTK_WIDGET (xtext)->window), rootpix); + #else + xtext->pixmap = gdk_pixmap_foreign_new_for_display (gdk_drawable_get_display (GTK_WIDGET (xtext)->window), rootpix); + #endif +@@ -3910,7 +3924,11 @@ gtk_xtext_find_subline (GtkXText *xtext, textentry *ent, int line) + if (line <= RECORD_WRAPS) + return ent->wrap_offset[line - 1]; + ++#if GTK_CHECK_VERSION (2, 16, 0) ++ win_width = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &win_width, 0); ++#endif + win_width -= MARGIN; + + /* indent = ent->indent; +@@ -4329,7 +4347,12 @@ gtk_xtext_calc_lines (xtext_buffer *buf, int fire_signal) + int height; + int lines; + ++#if GTK_CHECK_VERSION (2, 23, 0) ++ width = gdk_window_get_width (GTK_WIDGET (buf->xtext)->window); ++ height = gdk_window_get_height (GTK_WIDGET (buf->xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (buf->xtext)->window, &width, &height); ++#endif + width -= MARGIN; + + if (width < 30 || height < buf->xtext->fontsize || width < buf->indent + 30) +@@ -4424,7 +4447,12 @@ gtk_xtext_render_ents (GtkXText * xtext, textentry * enta, textentry * entb) + if (xtext->buffer->indent < MARGIN) + xtext->buffer->indent = MARGIN; /* 2 pixels is our left margin */ + ++#if GTK_CHECK_VERSION (2, 23, 0) ++ width = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++ height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); ++#endif + width -= MARGIN; + + if (width < 32 || height < xtext->fontsize || width < xtext->buffer->indent + 30) +@@ -4511,7 +4539,12 @@ gtk_xtext_render_page (GtkXText * xtext) + if (xtext->buffer->indent < MARGIN) + xtext->buffer->indent = MARGIN; /* 2 pixels is our left margin */ + ++#if GTK_CHECK_VERSION (2, 23, 0) ++ width = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++ height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); ++#endif + + if (width < 34 || height < xtext->fontsize || width < xtext->buffer->indent + 32) + return; +@@ -4563,8 +4596,11 @@ gtk_xtext_render_page (GtkXText * xtext) + #endif + #endif + { ++ ++#if !GTK_CHECK_VERSION (2, 13, 0) + /* so the obscured regions are exposed */ + gdk_gc_set_exposures (xtext->fgc, TRUE); ++#endif + if (overlap < 1) /* DOWN */ + { + int remainder; +@@ -4719,7 +4755,12 @@ gtk_xtext_check_ent_visibility (GtkXText * xtext, textentry *find_ent, int add) + int width; + int height; + ++#if GTK_CHECK_VERSION (2, 16, 0) ++ width = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++ height = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height); ++#endif + + lines_max = ((height + xtext->pixel_offset) / xtext->fontsize) + add; + ent = xtext->buffer->pagetop_ent; +@@ -5191,8 +5232,12 @@ gtk_xtext_buffer_show (GtkXText *xtext, xtext_buffer *buf, int render) + + if (!gtk_widget_get_realized (GTK_WIDGET (xtext))) + gtk_widget_realize (GTK_WIDGET (xtext)); +- ++#if GTK_CHECK_VERSION (2, 23, 0) ++ w = gdk_window_get_width (GTK_WIDGET (xtext)->window); ++ h = gdk_window_get_height (GTK_WIDGET (xtext)->window); ++#else + gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &w, &h); ++#endif + + /* after a font change */ + if (buf->needs_recalc) +-- +cgit v0.9 diff --git a/xchat-gnome-0.26.2-perl-plugin-function-prototype.patch b/xchat-gnome-0.26.2-perl-plugin-function-prototype.patch new file mode 100644 index 0000000..4cb9b72 --- /dev/null +++ b/xchat-gnome-0.26.2-perl-plugin-function-prototype.patch @@ -0,0 +1,15 @@ +diff -urN xchat-gnome-0.26.2.orig/plugins/perl/perl.c xchat-gnome-0.26.2/plugins/perl/perl.c +--- xchat-gnome-0.26.2.orig/plugins/perl/perl.c 2013-02-11 10:36:18.801119247 +0530 ++++ xchat-gnome-0.26.2/plugins/perl/perl.c 2013-02-11 12:45:49.369058799 +0530 +@@ -38,6 +38,11 @@ + + static int perl_load_file (char *script_name); + ++void xchat_plugin_get_info (char **name, char **desc, char **version, void **reserved); ++int xchat_plugin_init (xchat_plugin * plugin_handle, char **plugin_name, ++ char **plugin_desc, char **plugin_version, char *arg); ++int xchat_plugin_deinit (xchat_plugin * plugin_handle); ++ + #ifdef WIN32 + + static DWORD diff --git a/xchat-gnome.spec b/xchat-gnome.spec new file mode 100644 index 0000000..504d463 --- /dev/null +++ b/xchat-gnome.spec @@ -0,0 +1,500 @@ +%global gitrev 40c5bf988 + +Name: xchat-gnome +Version: 0.26.2 +Release: 18.git%{gitrev}%{?dist} +Summary: GNOME front-end to xchat + +Group: Applications/Internet +License: GPLv2+ +URL: http://live.gnome.org/Xchat-Gnome +# Generated from git, tarball wasn't released. +# To generate: +# git clone git://git.gnome.org/xchat-gnome +# git archive --format=tar --prefix=xchat-gnome-0.26.2/ XCHAT_GNOME_0_26_2 > xchat-gnome-0.26.2-%{gitrev}.ta +# bzip2 xchat-gnome-0.26.2-%{gitrev}.tar +Source0: %{name}-%{version}-%{gitrev}.tar.bz2 +# Patch specific to Fedora to use .xchat-gnome, instead of .xchat2 +Patch0: xchat-gnome-0.23.92-config.patch +# Patch for libnotify 0.70 (just drop one parameter from one function) +Patch1: xchat-gnome-0.26.1-libnotify.patch +# Fix build (#839623) +Patch3: build.patch +# Patch to work with recent NetworkManager (0.7+) +Patch10: xchat-gnome-0.26.1-recent-network-manager.patch +# Convert deprecated GDK functions to cairo +Patch13: xchat-gnome-0.26.1-remove-deprecated-api.patch +# xchat-gnome-0.26.2-perl-plugin-function-prototype.patch +Patch14: xchat-gnome-0.26.2-perl-plugin-function-prototype.patch +# Clean up warnings +Patch100: 0001-Dont-attempt-to-render-a-nonexistent-string.patch +# Fix potential plugin crashers +Patch101: 0002-Plugin_GetCurrent-can-return-NULL.patch +# Don't crash on 32bpp depth +Patch102: 0003-Ensure-pixmap-depth-matches-screen-window-depth.patch +# free(foo); g_slist_remove(list, foo); is bad practice, mmmkay? +Patch103: 0004-Call-g_slist_remove-on-items-before-free-not-after.patch +# Don't iterate over an empty hash +Patch104: 0001-Fix-crash-on-NULL-networks-hash-table.patch +# Fix czech translation that breaks /me messages () +Patch105: 0001-Fix-ME-messages-in-czech-translation.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1091544 +Patch106: 0001-Don-t-force-the-use-of-SSLv3.patch + +BuildRequires: openssl-devel +Buildrequires: libsexy-devel >= 0.1.11 +BuildRequires: libnotify-devel +BuildRequires: glib2-devel >= 2.18.0 +BuildRequires: gtk2-devel >= 2.14.0 +BuildRequires: libcanberra-devel +BuildRequires: python-devel +BuildRequires: desktop-file-utils +BuildRequires: intltool +BuildRequires: gettext +BuildRequires: perl-devel +BuildRequires: perl(XML::Parser) +BuildRequires: perl(ExtUtils::Embed) +BuildRequires: gnome-doc-utils +BuildRequires: GConf2-devel +BuildRequires: libglade2-devel +BuildRequires: libSM-devel +BuildRequires: libtool autoconf automake gnome-common + +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + +Requires(pre): GConf2 +Requires(post): GConf2 +Requires(preun): GConf2 + + +%description +xchat-gnome is a new frontend for the popular X-Chat IRC client. GNOME's +philosophy in terms of user interfaces has been progressing towards +presenting the user with few options, yet sane defaults. While many of the +normal X-Chat options will be preserved inside GConf, only the most +common settings will be included in the main user interface. . + + +%prep +%setup -q -n %{name}-%{version} +%patch0 -p1 -b .config +%patch1 -p1 -b .notify +%patch3 -p1 -b .build +%patch10 -p1 -b .recent-nm +%patch13 -p1 -b .gdk-deprecations +%patch14 -p1 -b .xchat-plugin +%patch100 -p1 -b .empty +%patch101 -p1 -b .nullplugin +%patch102 -p1 -b .depth +%patch103 -p1 -b .free +%patch104 -p1 -b .hash +%patch105 -p1 +%patch106 -p1 -b .allow-tls + +%build +./autogen.sh +%configure --disable-tcl \ + --disable-scrollkeeper \ + --disable-schemas-install \ + --disable-maintainer-mode \ + --disable-static +make %{?_smp_mflags} + + +%install +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +%find_lang %{name} +find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' + +desktop-file-install --delete-original \ + --dir $RPM_BUILD_ROOT%{_datadir}/applications \ + $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop + + +%pre +%gconf_schema_prepare apps_xchat notification urlscraper url_handler + + +%post +%gconf_schema_upgrade apps_xchat notification urlscraper url_handler +touch --no-create %{_datadir}/icons/hicolor || : +if [ -x %{_bindir}/gtk-update-icon-cache ]; then + %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : +fi + + +%preun +%gconf_schema_remove apps_xchat notification urlscraper url_handler + + +%postun +touch --no-create %{_datadir}/icons/hicolor || : +if [ -x %{_bindir}/gtk-update-icon-cache ]; then + %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor || : +fi + + +%files -f %{name}.lang +%doc COPYING AUTHORS +%doc plugins/perl/xchat2-perldocs.html +%{_bindir}/%{name} +%{_sysconfdir}/gconf/schemas/*.schemas +%{_datadir}/%{name}/ +%{_datadir}/icons/hicolor/128x128/apps/%{name}.png +%{_datadir}/icons/hicolor/48x48/apps/%{name}.png +%{_datadir}/applications/%{name}.desktop +%{_datadir}/omf/%{name}/ +%{_datadir}/gnome/help/%{name}/ +%{_datadir}/dbus-1/services/org.gnome.Xchat.service +%{_mandir}/man1/%{name}.1.gz +%dir %{_libdir}/%{name} +%{_libdir}/%{name}/plugins/ + + +%changelog +* Wed Oct 29 2014 Debarshi Ray - 0.26.2-18.git40c5bf988 +- Do not force SSLv3, also allow TLSv1_X (#1091544) + +* Thu Aug 28 2014 Jitka Plesnikova - 0.26.2-17.git40c5bf988 +- Perl 5.20 rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 0.26.2-16.git40c5bf988 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 0.26.2-15.git40c5bf988 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 0.26.2-14.git40c5bf988 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Wed Jul 24 2013 Petr Pisar - 0.26.2-13.git40c5bf988 +- Perl 5.18 rebuild + +* Wed Apr 03 2013 Kalev Lember - 0.26.2-12.git40c5bf988 +- Drop the desktop file name patch now that the vendor prefix is gone +- Remove the scrollkeeper runtime dep + +* Mon Feb 11 2013 Parag Nemade - 0.26.2-11.git40c5bf988 +- Fix missing function prototype compilation error for perl.c + +* Mon Feb 11 2013 Parag Nemade - 0.26.2-10.git40c5bf988 +- Remove vendor tag from desktop file as per https://fedorahosted.org/fesco/ticket/1077 +- Cleanup spec as per recently changed packaging guidelines + +* Thu Sep 27 2012 Bill Nottingham - 0.26.2-9.git40c5bf988 +- fix czech translation that broke /me messages (#789365, ) + +* Sun Jul 22 2012 Fedora Release Engineering - 0.26.2-8.git40c5bf988 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jun 15 2012 Petr Pisar - 0.26.2-7.git40c5bf988 +- Perl 5.16 rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 0.26.2-6.git40c5bf988 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 06 2011 Adam Jackson - 0.26.2-5.git40c5bf988 +- Rebuild for new libpng + +* Tue Oct 04 2011 Bill Nottingham 0.26.2-4.git40c5bf988 +- don't iterate over an empty hash table (#742868, ) + +* Wed Jul 20 2011 Petr Sabata - 0.26.2-3.git40c5bf988 +- Perl mass rebuild + +* Fri Jun 17 2011 Bill Nottingham - 0.26.2-2 +- fix crash on 32bpp depths with background images (#712626) +- clean up some Gdk-CRITICAL messages +- fix crash on exit in plugin code and elsewhere (#693122) + +* Thu Apr 07 2011 Bill Nottingham - 0.26.2-1 +- update to 0.26.2 (fixes #660840) + +* Fri Mar 25 2011 Dan Williams - 0.26.1-17 +- Update for NetworkManager 0.9 (#437645) +- Update for recent GTK/GNOME API changes + +* Mon Feb 07 2011 Fedora Release Engineering - 0.26.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Nov 08 2010 Adam Williamson - 0.26.1-15 +- add libnotify.patch for new libnotify + +* Sat Jul 31 2010 Adam Williamson - 0.26.1-14 +- Add deprecated-symbol.patch - upstream commit + 8d35b36baa8204b68c9520ec92327e34c1d7c580 - to fix FTBFS + +* Tue Jul 27 2010 David Malcolm - 0.26.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Wed Jun 02 2010 Marcela Maslanova - 0.26.1-12 +- Mass rebuild with perl-5.12.0 + +* Sun Apr 25 2010 Brian Pepple - 0.26.1-11 +- Remove clean section. No longer needed. +- Update scriptlets for gconf macros. + +* Sun Mar 28 2010 Brian Pepple - 0.26.1-10 +- Add patch for depreciated gtk macros. +- Add patch to fix auto-accept dcc transfers. +- Add patch for FreeNode port numbers. + +* Sun Mar 7 2010 Brian Pepple - 0.26.1-9 +- Add patch to fix DSOLinking. (#564820) + +* Mon Jan 18 2010 Brian Pepple - 0.26.1-8 +- Add patch to fix regression with bing unable to set status 'back'. + +* Wed Jan 13 2010 Brian Pepple - 0.26.1-7 +- Add patch to fix crash. (#550662) + +* Mon Dec 7 2009 Stepan Kasal - 0.26.1-6 +- rebuild against perl 5.10.1 + +* Fri Aug 21 2009 Tomas Mraz - 0.26.1-5 +- rebuilt with new openssl + +* Mon Jul 27 2009 Fedora Release Engineering - 0.26.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 19 2009 Brian Pepple - 0.26.1-3 +- Fix topic patch. + +* Sun May 10 2009 Brian Pepple - 0.26.1-2 +- Add patch to fix topic entry bug. (#483839) + +* Sat Apr 18 2009 Brian Pepple - 0.26.1-1 +- Update to 0.26.1. + +* Tue Mar 31 2009 Brian Pepple - 0.26.0-1 +- Update to 0.26.0. + +* Thu Feb 26 2009 Fedora Release Engineering - 0.24.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Jan 29 2009 Brian Pepple - 0.24.3.1-1 +- Update to 0.24.3.1. + +* Sun Jan 18 2009 Tomas Mraz - 0.24.1-3 +- rebuild with new openssl + +* Sun Nov 30 2008 Ignacio Vazquez-Abrams - 0.24.1-2 +- Rebuild for Python 2.6 + +* Fri Nov 14 2008 Brian Pepple - 0.24.1-1 +- Update to 0.24.1. +- Update Source URL. + +* Tue Sep 23 2008 Brian Pepple - 0.24.0-1 +- Update to 0.24.0. +- Drop deps patch. Fixed upstream. + +* Tue Sep 9 2008 Brian Pepple - 0.23.92-1 +- Update to 0.23.92. +- Add deps patch to correctly set libnotify & libcanberra options. +- Update BR. +- Drop reconnect patch. Fixed upstream. +- Drop away-command patch. Fixed upstream. +- Drop spell-checking patch. Fixed upstream. +- Drop it-translation patch. Fixed upstream. + +* Thu Mar 27 2008 Brian Pepple - 0.18-12 +- Add patch to fix italian translation bug. (#431133) + +* Tue Mar 25 2008 Brian Pepple - 0.18-11 +- Add patch to fix spell-checking language selection. (#427067) +- Add BR on perl-devel & perl(ExtUtils::Embed)to actually build the perl plugin. + +* Thu Mar 06 2008 Tom "spot" Callaway - 0.18-10 +- Rebuild for new perl + +* Tue Feb 12 2008 Brian Pepple - 0.18-9 +- Updated away/back patch. (#430883) + +* Wed Jan 30 2008 Brian Pepple - 0.18-8 +- Rebuild. + +* Wed Dec 5 2007 Brian Pepple - 0.18-7 +- rebuild for new libssl.so.6/libcrypto.so.6 + +* Sat Nov 17 2007 Brian Pepple - 0.18-6 +- Add patch to fix away/back command. + +* Thu Sep 13 2007 Brian Pepple - 0.18-5 +- Add patch to fix reconnect bug. (#225408) + +* Tue Aug 21 2007 Brian Pepple - 0.18-4 +- Rebuild. + +* Thu Aug 2 2007 Brian Pepple - 0.18-3 +- Update license tag. + +* Mon Jul 9 2007 Brian Pepple - 0.18-2 +- Drop requires on python, since dep on python-libs will be pulled in. + +* Mon Jul 9 2007 Brian Pepple - 0.18-1 +- Update to 0.18. +- Drop static patch, fixed upstream. +- Drop setup-dialog patch, fixed upstream. +- Drop gettext patch. +- Update config patch. + +* Sun Jun 10 2007 Brian Pepple - 0.17-7 +- Drop requires on yelp. + +* Sat Jun 9 2007 Brian Pepple - 0.17-6 +- Add requires on yelp. (#243417) + +* Mon May 28 2007 Brian Pepple - 0.17-5 +- Add gettext patch so we don't print translation information when open a query window. + +* Mon Apr 16 2007 Brian Pepple - 0.17-4 +- Add patch to fix setup-dialog. (#236636) + +* Tue Apr 3 2007 Brian Pepple - 0.17-3 +- Add patch to fix crasher. (#235144). + +* Mon Apr 2 2007 Brian Pepple - 0.17-2 +- D'Oh! Forgot to add the new config patch. + +* Mon Apr 2 2007 Brian Pepple - 0.17-1 +- Update to 0.17 (bugfix release). +- Update the config patch. +- libsexy-devel to be at least 0.1.11. + +* Tue Jan 16 2007 Brian Pepple - 0.16-2 +- Drop conditional statement for libnotify. +- Remove BR on dbus-devel, since libnotify-devel will pull this in. + +* Wed Jan 10 2007 Brian Pepple - 0.16-1 +- Update to 0.16. +- Move themeable app icon to correct directory. + +* Fri Dec 8 2006 Brian Pepple - 0.15-2 +- Rebuild for new python. + +* Sun Oct 29 2006 Brian Pepple - 0.15-1 +- Update to 0.15. +- Add new icons. + +* Thu Oct 26 2006 Brian Pepple - 0.14-1 +- Update to 0.14. +- Remove xchat-gnome-remote. +- Drop X-Fedora desktop category. +- Use disable-schemas-install & disable-static with configure. + +* Thu Aug 31 2006 Brian Pepple - 0.13-4 +- Add BR for perl(XML::Parser). + +* Thu Aug 31 2006 Brian Pepple - 0.13-3 +- Update for FC6. + +* Wed Jul 26 2006 Brian Pepple - 0.13-2 +- Update to 0.13. + +* Tue Jun 20 2006 Brian Pepple - 0.12-2 +- Update to 0.12. + +* Sat May 20 2006 Brian Pepple - 0.11-3 +- Drop patch for libnotify. + +* Tue Apr 4 2006 Brian Pepple - 0.11-2 +- Update to 0.11 +- Drop screensaver patch. +- Add scriptlet for gtk+ icon cache. + +* Sun Mar 19 2006 Brian Pepple - 0.10-5 +- Rebuild for libsexy-0.1.8. + +* Thu Mar 16 2006 Brian Pepple - 0.10-4 +- Rebuild for new libsexy. + +* Sat Feb 25 2006 Brian Pepple - 0.10-3 +- Add libnotify patch to work with 0.3.0 api. + +* Fri Feb 24 2006 Brian Pepple - 0.10-2 +- Add patch to use correct gnome-screensaver dbus object. +- Drop killall gconfd-2 calls in scriptlets. + +* Fri Feb 24 2006 Brian Pepple - 0.10-1 +- Update to 0.10. +- Add -disable-scrollkeeprer to config. +- Add BR for gnome-doc-utils. +- Disable libnotify plugin, until libnotify is updated in Rawhide. + +* Wed Feb 15 2006 Brian Pepple - 0.9-6 +- Drop unnecessary BR (libSM-devel & libglade2-devel). + +* Mon Feb 13 2006 Brian Pepple - 0.9-5 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Tue Feb 7 2006 Brian Pepple - 0.9-4 +- Rebuild due to new libsexy. + +* Mon Jan 23 2006 Brian Pepple - 0.9-3 +- Bump. + +* Sat Jan 21 2006 Brian Pepple - 0.9-2 +- Add xchat_gnome_url_handler.schemas to scriptlet. + +* Fri Jan 20 2006 Brian Pepple - 0.9-1 +- Update to 0.9. +- Add BR for libnotify-devel. +- Drop certificates patch. + +* Fri Dec 30 2005 Brian Pepple - 0.8-2 +- add patch for self-signed certificate acceptance. (#174591) + +* Tue Dec 20 2005 Brian Pepple - 0.8-1 +- Udate to 0.8. + +* Sun Dec 18 2005 Brian Pepple - 0.8-01.rc2 +- Update to 0.8rc2. + +* Thu Dec 15 2005 Brian Pepple - 0.8-01.rc1 +- Update to 0.8rc1. +- Drop documentation removed from upstream tarball. +- Drop depreciated config options. +- Enable dbus support. +- Drop 323944 patch, since it's been applied upstream. +- Drop datadir patch, since it's been applied upstream. + +* Wed Dec 14 2005 Brian Pepple - 0.7-4 +- Add patch to fix #175751. + +* Wed Nov 30 2005 Brian Pepple - 0.7-3 +- Disable dbus support, until FE Bug #174592 is fixed. + +* Mon Nov 21 2005 Brian Pepple - 0.7-2 +- Update to 0.7. +- Add BR for libSM-devel. +- Disable libnotify support, until it's available in Rawhide. +- Add help files & scrollkeeper scriptlets. +- Add BR & requires for scrollkeeper. + +* Sat Nov 12 2005 Brian Pepple - 0.6-7 +- Bump + +* Sat Nov 12 2005 Brian Pepple - 0.6-6 +- Bump release for upgrade path from FC-4. + +* Sat Nov 12 2005 Brian Pepple - 0.6-5 +- Add test for release version to determine if dbus is enabled. +- Add dist tag. + +* Sat Nov 12 2005 Brian Pepple - 0.6-4 +- Remove obsoletes xchat. +- Add patch to change datadir location. +- Add patch to change config dir. + +* Thu Nov 10 2005 Brian Pepple - 0.6-3 +- Add xchat-remote to files, and re-add dbus config flag. + +* Thu Nov 10 2005 Brian Pepple - 0.6-2 +- Merge some items from Bastien Nocera's spec file (#172873). +- Add configure option to enable ipv6 & shm tinting support. +- Simplify schemas installation. + +* Tue Oct 25 2005 Brian Pepple - 0.6-1 +- Initial Fedora Extras spec file. +