diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1f5f78f..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -xchat-2.8.8.tar.xz diff --git a/0001-Don-t-force-the-use-of-SSLv3.patch b/0001-Don-t-force-the-use-of-SSLv3.patch deleted file mode 100644 index e0f0472..0000000 --- a/0001-Don-t-force-the-use-of-SSLv3.patch +++ /dev/null @@ -1,37 +0,0 @@ -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/dead.package b/dead.package new file mode 100644 index 0000000..6541609 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +XChat is dead. The recommended replacement is HexChat. diff --git a/hicolor_apps_16x16_xchat.png b/hicolor_apps_16x16_xchat.png deleted file mode 100644 index b29fc17..0000000 Binary files a/hicolor_apps_16x16_xchat.png and /dev/null differ diff --git a/hicolor_apps_22x22_xchat.png b/hicolor_apps_22x22_xchat.png deleted file mode 100644 index 5f4a083..0000000 Binary files a/hicolor_apps_22x22_xchat.png and /dev/null differ diff --git a/hicolor_apps_24x24_xchat.png b/hicolor_apps_24x24_xchat.png deleted file mode 100644 index 51589bd..0000000 Binary files a/hicolor_apps_24x24_xchat.png and /dev/null differ diff --git a/hicolor_apps_256x256_xchat.png b/hicolor_apps_256x256_xchat.png deleted file mode 100644 index f5dd9ca..0000000 Binary files a/hicolor_apps_256x256_xchat.png and /dev/null differ diff --git a/hicolor_apps_32x32_xchat.png b/hicolor_apps_32x32_xchat.png deleted file mode 100644 index 59b1850..0000000 Binary files a/hicolor_apps_32x32_xchat.png and /dev/null differ diff --git a/hicolor_apps_48x48_xchat.png b/hicolor_apps_48x48_xchat.png deleted file mode 100644 index 47db53e..0000000 Binary files a/hicolor_apps_48x48_xchat.png and /dev/null differ diff --git a/sources b/sources deleted file mode 100644 index 6ce9832..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -9a11f13121ff0af787bba3b014378e58 xchat-2.8.8.tar.xz diff --git a/xchat-1.8.7-use-sysconf-to-detect-cpus.patch b/xchat-1.8.7-use-sysconf-to-detect-cpus.patch deleted file mode 100644 index 417690d..0000000 --- a/xchat-1.8.7-use-sysconf-to-detect-cpus.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- src/common/util.c.use-sysconf-to-detect-cpus Tue Feb 5 07:44:27 2002 -+++ src/common/util.c Tue Feb 5 07:45:59 2002 -@@ -399,14 +399,11 @@ - int fh; - - *mhz = 0; -- *cpus = 0; -+ *cpus = (int) sysconf(_SC_NPROCESSORS_ONLN); - - fh = open ("/proc/cpuinfo", O_RDONLY); /* linux 2.2+ only */ - if (fh == -1) -- { -- *cpus = 1; - return; -- } - - while (1) - { -@@ -421,15 +418,9 @@ - } else if (!strncmp (buf, "clock\t\t:", 8)) /* PPC */ - { - *mhz = atoi (buf + 9); -- } else if (!strncmp (buf, "processor\t", 10)) -- { -- (*cpus)++; - } - } - close (fh); -- if (!*cpus) -- *cpus = 1; -- - #endif - #ifdef USING_FREEBSD - diff --git a/xchat-2.8.6-change-page-activity.patch b/xchat-2.8.6-change-page-activity.patch deleted file mode 100644 index 970158d..0000000 --- a/xchat-2.8.6-change-page-activity.patch +++ /dev/null @@ -1,339 +0,0 @@ -diff -paur xchat2.orig/src/common/inbound.c xchat2/src/common/inbound.c ---- xchat2.orig/src/common/inbound.c 2008-07-20 17:31:44.898468115 +0200 -+++ xchat2/src/common/inbound.c 2008-07-19 19:57:09.799906780 +0200 -@@ -297,7 +297,10 @@ is_hilight (char *from, char *text, sess - { - g_free (text); - if (sess != current_tab) -+ { - sess->nick_said = TRUE; -+ lastact_update(sess); -+ } - fe_set_hilight (sess); - return 1; - } -@@ -344,6 +347,7 @@ inbound_action (session *sess, char *cha - sess->msg_said = TRUE; - sess->new_data = FALSE; - } -+ lastact_update(sess); - } - - user = userlist_find (sess, from); -@@ -395,6 +399,7 @@ inbound_chanmsg (server *serv, session * - { - sess->msg_said = TRUE; - sess->new_data = FALSE; -+ lastact_update(sess); - } - - user = userlist_find (sess, from); -diff -paur xchat2.orig/src/common/xchat.c xchat2/src/common/xchat.c ---- xchat2.orig/src/common/xchat.c 2008-07-20 17:31:44.900468825 +0200 -+++ xchat2/src/common/xchat.c 2008-07-20 17:33:57.089468218 +0200 -@@ -71,6 +71,23 @@ GSList *usermenu_list = 0; - GSList *urlhandler_list = 0; - GSList *tabmenu_list = 0; - -+/* -+ * This array contains 5 double linked lists, one for each priority in the -+ * "interesting session" queue ("channel" stands for everything but -+ * SESS_DIALOG): -+ * -+ * [0] queries with hilight -+ * [1] queries -+ * [2] channels with hilight -+ * [3] channels with dialogue -+ * [4] channels with other data -+ * -+ * Each time activity happens the corresponding session is put at the -+ * beginning of one of the lists. The aim is to be able to switch to the -+ * session with the most important/recent activity. -+ */ -+GList *sess_list_by_lastact[5] = {NULL, NULL, NULL, NULL, NULL}; -+ - static int in_xchat_exit = FALSE; - int xchat_is_quitting = FALSE; - /* command-line args */ -@@ -93,6 +110,105 @@ struct xchatprefs prefs; - SSL_CTX *ctx = NULL; - #endif - -+/* -+ * Update the priority queue of the "interesting sessions" -+ * (sess_list_by_lastact). -+ */ -+void -+lastact_update(session *sess) -+{ -+ int newidx; -+ -+ /* Find the priority (for the order see before) */ -+ if (sess->type == SESS_DIALOG) -+ { -+ if (sess->nick_said) -+ newidx = LACT_QUERY_HI; -+ else if (sess->msg_said) -+ newidx = LACT_QUERY; -+ else if (sess->new_data) -+ newidx = LACT_QUERY; -+ else -+ newidx = LACT_NONE; -+ } -+ else -+ { -+ if (sess->nick_said) -+ newidx = LACT_CHAN_HI; -+ else if (sess->msg_said) -+ newidx = LACT_CHAN; -+ else if (sess->new_data) -+ newidx = LACT_CHAN_DATA; -+ else -+ newidx = LACT_NONE; -+ } -+ -+ /* Check if this update is a no-op */ -+ if (sess->lastact_idx == newidx && -+ ((newidx != LACT_NONE && sess->lastact_elem == sess_list_by_lastact[newidx]) || -+ (newidx == LACT_NONE))) -+ return; -+ -+ /* Remove from the old position (and, if no new position, return */ -+ else if (sess->lastact_idx != LACT_NONE && sess->lastact_elem) -+ { -+ sess_list_by_lastact[sess->lastact_idx] = g_list_remove_link( -+ sess_list_by_lastact[sess->lastact_idx], -+ sess->lastact_elem); -+ if (newidx == LACT_NONE) -+ { -+ sess->lastact_idx = newidx; -+ return; -+ } -+ } -+ -+ /* No previous position, allocate new */ -+ else if (!sess->lastact_elem) -+ sess->lastact_elem = g_list_prepend(sess->lastact_elem, sess); -+ -+ sess->lastact_idx = newidx; -+ sess_list_by_lastact[newidx] = g_list_concat( -+ sess->lastact_elem, sess_list_by_lastact[newidx]); -+} -+ -+/* -+ * Extract the first session from the priority queue of sessions with recent -+ * activity. Return NULL if no such session can be found. -+ * -+ * If filter is specified, skip a session if filter(session) returns 0. This -+ * can be used for UI-specific needs, e.g. in fe-gtk we want to filter out -+ * detached sessions. -+ */ -+session * -+lastact_getfirst(int (*filter) (session *sess)) -+{ -+ int i; -+ session *sess = NULL; -+ GList *curitem; -+ -+ /* 5 is the number of priority classes LACT_ */ -+ for (i = 0; i < 5 && !sess; i++) -+ { -+ curitem = sess_list_by_lastact[i]; -+ while (curitem && !sess) -+ { -+ sess = g_list_nth_data(curitem, 0); -+ if (!sess || (filter && !filter(sess))) -+ { -+ sess = NULL; -+ curitem = g_list_next(curitem); -+ } -+ } -+ -+ if (sess) -+ { -+ sess_list_by_lastact[i] = g_list_remove_link(sess_list_by_lastact[i], curitem); -+ sess->lastact_idx = LACT_NONE; -+ } -+ } -+ -+ return sess; -+} - - int - is_session (session * sess) -@@ -362,6 +478,9 @@ session_new (server *serv, char *from, i - - sess_list = g_slist_prepend (sess_list, sess); - -+ sess->lastact_elem = NULL; -+ sess->lastact_idx = LACT_NONE; -+ - fe_new_window (sess, focus); - - return sess; -@@ -533,6 +652,16 @@ session_free (session *killsess) - current_sess = sess_list->data; - } - -+ if (killsess->lastact_elem) -+ { -+ if (killsess->lastact_idx != LACT_NONE) -+ sess_list_by_lastact[killsess->lastact_idx] = g_list_delete_link( -+ sess_list_by_lastact[killsess->lastact_idx], -+ killsess->lastact_elem); -+ else -+ g_list_free_1(killsess->lastact_elem); -+ } -+ - free (killsess); - - if (!sess_list && !in_xchat_exit) -diff -paur xchat2.orig/src/common/xchat.h xchat2/src/common/xchat.h ---- xchat2.orig/src/common/xchat.h 2008-07-20 17:31:44.901467675 +0200 -+++ xchat2/src/common/xchat.h 2008-07-20 17:33:28.240467970 +0200 -@@ -320,6 +320,15 @@ struct xchatprefs - #define SET_ON 1 - #define SET_DEFAULT 2 /* use global setting */ - -+/* Priorities in the "interesting sessions" priority queue -+ * (see xchat.c:sess_list_by_lastact) */ -+#define LACT_NONE -1 /* no queues */ -+#define LACT_QUERY_HI 0 /* query with hilight */ -+#define LACT_QUERY 1 /* query with messages */ -+#define LACT_CHAN_HI 2 /* channel with hilight */ -+#define LACT_CHAN 3 /* channel with messages */ -+#define LACT_CHAN_DATA 4 /* channel with other data */ -+ - typedef struct session - { - /* Per-Channel Alerts */ -@@ -369,6 +378,10 @@ typedef struct session - - int type; /* SESS_* */ - -+ GList *lastact_elem; /* our GList element in sess_list_by_lastact */ -+ int lastact_idx; /* the sess_list_by_lastact[] index of the list we're in. -+ * For valid values, see defines of LACT_*. */ -+ - int new_data:1; /* new data avail? (purple tab) */ - int nick_said:1; /* your nick mentioned? (blue tab) */ - int msg_said:1; /* new msg available? (red tab) */ -diff -paur xchat2.orig/src/common/xchatc.h xchat2/src/common/xchatc.h ---- xchat2.orig/src/common/xchatc.h 2008-07-20 17:31:44.901467675 +0200 -+++ xchat2/src/common/xchatc.h 2008-07-20 11:43:36.673967630 +0200 -@@ -25,10 +25,13 @@ extern GSList *ignore_list; - extern GSList *usermenu_list; - extern GSList *urlhandler_list; - extern GSList *tabmenu_list; -+extern GList *sess_list_by_lastact[]; - - session * find_channel (server *serv, char *chan); - session * find_dialog (server *serv, char *nick); - session * new_ircwindow (server *serv, char *name, int type, int focus); -+void lastact_update (session * sess); -+session * lastact_getfirst (int (*filter) (session *sess)); - int is_session (session * sess); - void session_free (session *killsess); - void lag_check (void); -diff -paur xchat2.orig/src/fe-gtk/fe-gtk.c xchat2/src/fe-gtk/fe-gtk.c ---- xchat2.orig/src/fe-gtk/fe-gtk.c 2008-07-20 17:31:44.958466232 +0200 -+++ xchat2/src/fe-gtk/fe-gtk.c 2008-07-19 19:58:57.431961788 +0200 -@@ -603,6 +603,7 @@ fe_print_text (struct session *sess, cha - sess->gui->is_tab && !sess->nick_said && stamp == 0) - { - sess->new_data = TRUE; -+ lastact_update(sess); - if (sess->msg_said) - fe_set_tab_color (sess, 2); - else -diff -paur xchat2.orig/src/fe-gtk/fkeys.c xchat2/src/fe-gtk/fkeys.c ---- xchat2.orig/src/fe-gtk/fkeys.c 2008-07-20 17:31:44.960465847 +0200 -+++ xchat2/src/fe-gtk/fkeys.c 2008-07-20 12:20:50.186930065 +0200 -@@ -158,7 +158,7 @@ static const struct key_action key_actio - {key_action_handle_command, "Run Command", - N_("The \002Run Command\002 action runs the data in Data 1 as if it has been typed into the entry box where you pressed the key sequence. Thus it can contain text (which will be sent to the channel/person), commands or user commands. When run all \002\\n\002 characters in Data 1 are used to deliminate seperate commands so it is possible to run more than one command. If you want a \002\\\002 in the actual text run then enter \002\\\\\002")}, - {key_action_page_switch, "Change Page", -- N_("The \002Change Page\002 command switches between pages in the notebook. Set Data 1 to the page you want to switch to. If Data 2 is set to anything then the switch will be relative to the current position")}, -+ N_("The \002Change Page\002 command switches between pages in the notebook. Set Data 1 to the page you want to switch to. If Data 2 is set to anything then the switch will be relative to the current position. Set Data 1 to auto to switch to the page with the most recent and important activity (queries first, then channels with hilight, channels with dialogue, channels with other data)")}, - {key_action_insert, "Insert in Buffer", - N_("The \002Insert in Buffer\002 command will insert the contents of Data 1 into the entry where the key sequence was pressed at the current cursor position")}, - {key_action_scroll_page, "Scroll Page", -@@ -402,6 +402,7 @@ key_load_defaults () - "A\n3\nChange Page\nD1:3\nD2!\n\n"\ - "A\n2\nChange Page\nD1:2\nD2!\n\n"\ - "A\n1\nChange Page\nD1:1\nD2!\n\n"\ -+ "A\ngrave\nChange Page\nD1:auto\nD2!\n\n"\ - "C\no\nInsert in Buffer\nD1:\nD2!\n\n"\ - "C\nb\nInsert in Buffer\nD1:\nD2!\n\n"\ - "C\nk\nInsert in Buffer\nD1:\nD2!\n\n"\ -@@ -1196,6 +1197,20 @@ key_action_handle_command (GtkWidget * w - return 0; - } - -+/* -+ * Check if the given session is inside the main window. This predicate -+ * is passed to lastact_pop as a way to filter out detached sessions. -+ * XXX: Consider moving this in a different file? -+ */ -+static int -+session_check_is_tab(session *sess) -+{ -+ if (!sess || !sess->gui) -+ return FALSE; -+ -+ return (sess->gui->is_tab); -+} -+ - static int - key_action_page_switch (GtkWidget * wid, GdkEventKey * evt, char *d1, - char *d2, struct session *sess) -@@ -1209,6 +1224,30 @@ key_action_page_switch (GtkWidget * wid, - if (!len) - return 1; - -+ if (strcasecmp(d1, "auto") == 0) -+ { -+ /* Auto switch makes no sense in detached sessions */ -+ if (!sess->gui->is_tab) -+ return 1; -+ -+ /* Obtain a session with recent activity */ -+ session *newsess = lastact_getfirst(session_check_is_tab); -+ -+ if (newsess) -+ { -+ /* -+ * Only sessions in the current window should be considered (i.e. -+ * we don't want to move the focus on a different window). This -+ * call could, in theory, do this, but we checked before that -+ * newsess->gui->is_tab and sess->gui->is_tab. -+ */ -+ mg_bring_tofront_sess(newsess); -+ return 0; -+ } -+ else -+ return 1; -+ } -+ - for (i = 0; i < len; i++) - { - if (d1[i] < '0' || d1[i] > '9') -diff -paur xchat2.orig/src/fe-gtk/maingui.c xchat2/src/fe-gtk/maingui.c ---- xchat2.orig/src/fe-gtk/maingui.c 2008-07-20 17:31:44.964469466 +0200 -+++ xchat2/src/fe-gtk/maingui.c 2008-07-19 19:58:58.255909127 +0200 -@@ -359,6 +359,7 @@ fe_set_tab_color (struct session *sess, - - break; - } -+ lastact_update(sess); - } - } - -@@ -643,6 +644,7 @@ mg_focus (session *sess) - sess->nick_said = FALSE; - sess->msg_said = FALSE; - sess->new_data = FALSE; -+ lastact_update(sess); - /* when called via mg_changui_new, is_tab might be true, but - sess->res->tab is still NULL. */ - if (sess->res->tab) diff --git a/xchat-2.8.6-default-utf8.patch b/xchat-2.8.6-default-utf8.patch deleted file mode 100644 index 358a438..0000000 --- a/xchat-2.8.6-default-utf8.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -ur xchat-2.8.6/src/common/servlist.c xchat-2.8.6-default-utf8/src/common/servlist.c ---- xchat-2.8.6/src/common/servlist.c 2008-04-01 10:22:34.000000000 +0200 -+++ xchat-2.8.6-default-utf8/src/common/servlist.c 2008-06-15 14:43:35.000000000 +0200 -@@ -892,7 +892,7 @@ - if (def[i].network) - { - net = servlist_net_add (def[i].network, def[i].host, FALSE); -- net->encoding = strdup ("IRC (Latin/Unicode Hybrid)"); -+ net->encoding = strdup ("UTF-8 (Unicode)"); - if (def[i].channel) - net->autojoin = strdup (def[i].channel); - if (def[i].charset) -diff -ur xchat-2.8.6/src/fe-gtk/servlistgui.c xchat-2.8.6-default-utf8/src/fe-gtk/servlistgui.c ---- xchat-2.8.6/src/fe-gtk/servlistgui.c 2008-06-08 10:04:48.000000000 +0200 -+++ xchat-2.8.6-default-utf8/src/fe-gtk/servlistgui.c 2008-06-15 14:36:03.000000000 +0200 -@@ -267,7 +267,7 @@ - ircnet *net; - - net = servlist_net_add (_("New Network"), "", TRUE); -- net->encoding = strdup ("IRC (Latin/Unicode Hybrid)"); -+ net->encoding = strdup ("UTF-8 (Unicode)"); - servlist_server_add (net, "newserver/6667"); - - store = (GtkListStore *)gtk_tree_view_get_model (treeview); diff --git a/xchat-2.8.6-freenode-ports.patch b/xchat-2.8.6-freenode-ports.patch deleted file mode 100644 index 3e336fd..0000000 --- a/xchat-2.8.6-freenode-ports.patch +++ /dev/null @@ -1,35 +0,0 @@ -From bc98c28e891408145bed2b18d3c02adbadadde31 Mon Sep 17 00:00:00 2001 -From: Debarshi Ray -Date: Sat, 30 Jan 2010 13:05:21 +0200 -Subject: [PATCH] Added port numbers for Freenode - -http://freenode.net/irc_servers.shtml ---- - src/common/servlist.c | 11 ++++++++++- - 1 files changed, 10 insertions(+), 1 deletions(-) - -diff --git a/src/common/servlist.c b/src/common/servlist.c -index c6839e0..3082966 100644 ---- a/src/common/servlist.c -+++ b/src/common/servlist.c -@@ -207,7 +207,16 @@ static const struct defaultserver def[] = - {0, "irc.vendetta.com"}, - - {"FreeNode", 0}, -- {0, "irc.freenode.net"}, -+ {0, "irc.freenode.net/6665"}, -+ {0, "irc.freenode.net/6666"}, -+ {0, "irc.freenode.net/6667"}, -+ {0, "irc.freenode.net/8000"}, -+ {0, "irc.freenode.net/8001"}, -+ {0, "irc.freenode.net/8002"}, -+#ifdef USE_OPENSSL -+ {0, "irc.freenode.net/+7000"}, -+ {0, "irc.freenode.net/+7070"}, -+#endif - - /* {"Freeworld", 0}, - {0, "kabel.freeworld.nu"}, --- -1.6.6 - diff --git a/xchat-2.8.8-desktop-file-name.patch b/xchat-2.8.8-desktop-file-name.patch deleted file mode 100644 index 2d6044a..0000000 --- a/xchat-2.8.8-desktop-file-name.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -urNp xchat-2.8.8.orig/xchat.desktop xchat-2.8.8/xchat.desktop ---- xchat-2.8.8.orig/xchat.desktop 2013-06-10 14:01:07.408432973 +0200 -+++ xchat-2.8.8/xchat.desktop 2013-06-10 14:12:56.044209785 +0200 -@@ -1,7 +1,8 @@ - [Desktop Entry] - Encoding=UTF-8 --Name=XChat IRC -+Name=XChat - Name[zh_TW]=網路清談 -+GenericName=IRC Client - Comment[de]=IRC-Client - Comment[es]=Aplicación de IRC - Comment[fi]=IRC-sovellus diff --git a/xchat-2.8.8-glib.patch b/xchat-2.8.8-glib.patch deleted file mode 100644 index 0012ce5..0000000 --- a/xchat-2.8.8-glib.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- src/common/text.c.orig 2012-02-25 11:05:23.890274334 -0600 -+++ src/common/text.c 2012-02-25 11:05:39.006195489 -0600 -@@ -28,7 +28,7 @@ - #include - - #include "xchat.h" --#include -+#include - #include "cfgfiles.h" - #include "chanopt.h" - #include "plugin.h" ---- src/common/servlist.c.orig 2012-02-25 11:04:30.601501605 -0600 -+++ src/common/servlist.c 2012-02-25 11:04:42.964072823 -0600 -@@ -24,7 +24,7 @@ - #include - - #include "xchat.h" --#include -+#include - - #include "cfgfiles.h" - #include "fe.h" ---- src/common/dbus/dbus-client.c.orig 2012-02-25 10:59:23.948527589 -0600 -+++ src/common/dbus/dbus-client.c 2012-02-25 11:00:40.082203787 -0600 -@@ -53,11 +53,6 @@ - GError *error = NULL; - char *command = NULL; - -- /* GnomeVFS >=2.15 uses D-Bus and threads, so threads should be -- * initialised before opening for the first time a D-Bus connection */ -- if (!g_thread_supported ()) { -- g_thread_init (NULL); -- } - dbus_g_thread_init (); - - /* if there is nothing to do, return now. */ ---- src/common/xchat.h.orig 2012-02-25 11:29:33.400499630 -0600 -+++ src/common/xchat.h 2012-02-25 11:29:51.774834912 -0600 -@@ -1,10 +1,6 @@ - #include "../../config.h" - --#include --#include --#include --#include --#include -+#include - #include /* need time_t */ - - #ifndef XCHAT_H ---- src/common/util.c.orig 2012-02-25 11:38:29.404622998 -0600 -+++ src/common/util.c 2012-02-25 11:38:51.904482615 -0600 -@@ -39,7 +39,7 @@ - #include - #include "xchat.h" - #include "xchatc.h" --#include -+#include - #include - #include "util.h" - #include "../../config.h" diff --git a/xchat-2.8.8-hires-icons.patch b/xchat-2.8.8-hires-icons.patch deleted file mode 100644 index 2baba84..0000000 --- a/xchat-2.8.8-hires-icons.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -urNp xchat-2.8.8.orig/configure.in xchat-2.8.8/configure.in ---- xchat-2.8.8.orig/configure.in 2013-06-07 17:33:41.600172433 +0200 -+++ xchat-2.8.8/configure.in 2013-06-07 17:39:02.672190284 +0200 -@@ -792,6 +792,7 @@ plugins/python/Makefile - plugins/perl/Makefile - plugins/tcl/Makefile - intl/Makefile -+icons/Makefile - po/Makefile.in - ]) - -diff -urNp xchat-2.8.8.orig/icons/Makefile.am xchat-2.8.8/icons/Makefile.am ---- xchat-2.8.8.orig/icons/Makefile.am 1970-01-01 01:00:00.000000000 +0100 -+++ xchat-2.8.8/icons/Makefile.am 2013-06-07 17:35:09.053456817 +0200 -@@ -0,0 +1,59 @@ -+public_icon_themes = \ -+ hicolor \ -+ $(NULL) -+ -+public_icons = \ -+ hicolor_apps_16x16_xchat.png \ -+ hicolor_apps_22x22_xchat.png \ -+ hicolor_apps_24x24_xchat.png \ -+ hicolor_apps_32x32_xchat.png \ -+ hicolor_apps_48x48_xchat.png \ -+ hicolor_apps_256x256_xchat.png \ -+ $(NULL) -+ -+noinst_DATA = \ -+ xchat.svg \ -+ $(NULL) -+ -+EXTRA_DIST = \ -+ $(public_icons) \ -+ $(noinst_DATA) \ -+ $(NULL) -+ -+gtk_update_icon_cache = gtk-update-icon-cache -f -t -+ -+update-icon-cache: -+ @-if test -z "$(DESTDIR)"; then \ -+ echo "Updating Gtk icon cache."; \ -+ for theme in $(public_icon_themes); do \ -+ $(gtk_update_icon_cache) $(datadir)/icons/$$theme; \ -+ done; \ -+ else \ -+ echo "*** Icon cache not updated. After (un)install, run this:"; \ -+ for theme in $(public_icon_themes); do \ -+ echo "*** $(gtk_update_icon_cache) $(datadir)/icons/$$theme"; \ -+ done; \ -+ fi -+ -+install-icons: -+ for icon in $(public_icons); do \ -+ THEME=`echo $$icon | cut -d_ -f1`; \ -+ CONTEXT=`echo $$icon | cut -d_ -f2`; \ -+ SIZE=`echo $$icon | cut -d_ -f3`; \ -+ ICONFILE=`echo $$icon | cut -d_ -f4`; \ -+ mkdir -p $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT; \ -+ $(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ -+ done -+ -+uninstall-icons: -+ -for icon in $(public_icons); do \ -+ THEME=`echo $$icon | cut -d_ -f1`; \ -+ CONTEXT=`echo $$icon | cut -d_ -f2`; \ -+ SIZE=`echo $$icon | cut -d_ -f3`; \ -+ ICONFILE=`echo $$icon | cut -d_ -f4`; \ -+ rm -f $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \ -+ done -+ -+install-data-local: install-icons update-icon-cache -+ -+uninstall-local: uninstall-icons update-icon-cache -diff -urNp xchat-2.8.8.orig/Makefile.am xchat-2.8.8/Makefile.am ---- xchat-2.8.8.orig/Makefile.am 2013-06-07 17:33:41.600172433 +0200 -+++ xchat-2.8.8/Makefile.am 2013-06-10 13:25:06.316773350 +0200 -@@ -1,6 +1,6 @@ - ## Process this file with automake to produce Makefile.in - --SUBDIRS = po intl src plugins -+SUBDIRS = po icons intl src plugins - - EXTRA_DIST = autogen.sh HACKING INSTALL.w32 faq.html xchat.png \ - xchat.desktop xchat.spec config.h.w32 xchat.ico diff --git a/xchat-2.8.8-libnotify07.patch b/xchat-2.8.8-libnotify07.patch deleted file mode 100644 index 2a6dce9..0000000 --- a/xchat-2.8.8-libnotify07.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -up xchat-2.8.8/src/fe-gtk/plugin-tray.c.libnotify07 xchat-2.8.8/src/fe-gtk/plugin-tray.c ---- xchat-2.8.8/src/fe-gtk/plugin-tray.c.libnotify07 2010-11-15 17:32:15.708325783 -0500 -+++ xchat-2.8.8/src/fe-gtk/plugin-tray.c 2010-11-15 18:05:17.322141789 -0500 -@@ -125,8 +125,9 @@ static void *nn_mod = NULL; - /* prototypes */ - static gboolean (*nn_init) (char *); - static void (*nn_uninit) (void); --static void *(*nn_new_with_status_icon) (const gchar *summary, const gchar *message, const gchar *icon, GtkStatusIcon *status_icon); --static void *(*nn_new) (const gchar *summary, const gchar *message, const gchar *icon, GtkWidget *attach); -+/* recent versions of libnotify don't take the fourth GtkWidget argument, but passing an -+ * extra NULL argument will be fine */ -+static void *(*nn_new) (const gchar *summary, const gchar *message, const gchar *icon, gpointer dummy); - static gboolean (*nn_show) (void *noti, GError **error); - static void (*nn_set_timeout) (void *noti, gint timeout); - -@@ -160,8 +161,6 @@ libnotify_notify_new (const char *title, - goto bad; - if (!g_module_symbol (nn_mod, "notify_uninit", (gpointer)&nn_uninit)) - goto bad; -- if (!g_module_symbol (nn_mod, "notify_notification_new_with_status_icon", (gpointer)&nn_new_with_status_icon)) -- goto bad; - if (!g_module_symbol (nn_mod, "notify_notification_new", (gpointer)&nn_new)) - goto bad; - if (!g_module_symbol (nn_mod, "notify_notification_show", (gpointer)&nn_show)) diff --git a/xchat-2.8.8-link-against-libnotify.patch b/xchat-2.8.8-link-against-libnotify.patch deleted file mode 100644 index 31e6c08..0000000 --- a/xchat-2.8.8-link-against-libnotify.patch +++ /dev/null @@ -1,343 +0,0 @@ -From: Christopher Aillon -Date: Thu, 7 Apr 2011 19:34:14 -0700 -Subject: [PATCH] Link directly against libnotify - -Dynamically loading the library isn't ideal since the soname -can change silently on us. Additionally, notify-send is -shipped as part of libnotify, so we aren't actually bringing -in a new dependency. Since we'd need to patch the source and -rebuild for new sonames anyway, there's little benefit to -dynamically loading libnotify. - -Plus, this has the benefit of cleaning up the code, as well as -ensuring we'll catch any future soname changes sooner. - -https://bugzilla.redhat.com/show_bug.cgi?id=693362 -https://sourceforge.net/tracker/?func=detail&aid=3280223&group_id=239&atid=100239 ---- - configure.in | 23 +++++++ - src/fe-gtk/plugin-tray.c | 144 ++++++++++------------------------------------- - 2 files changed, 55 insertions(+), 112 deletions(-) - -diff -p -U8 xchat-2.8.8/configure.in.libnotifyso4 xchat-2.8.8/configure.in ---- xchat-2.8.8/configure.in.libnotifyso4 2010-05-29 23:01:16.000000000 -0700 -+++ xchat-2.8.8/configure.in 2011-04-07 19:27:00.448137113 -0700 -@@ -34,16 +34,17 @@ AH_VERBATIM([PREFIX],[#undef PREFIX]) - AH_VERBATIM([XCHATLIBDIR],[#undef XCHATLIBDIR]) - AH_VERBATIM([XCHATSHAREDIR],[#undef XCHATSHAREDIR]) - AH_VERBATIM([SOCKS],[#undef SOCKS]) - AH_VERBATIM([USE_MSPROXY],[#undef USE_MSPROXY]) - dnl AH_VERBATIM([USE_GNOME],[#undef USE_GNOME]) - AH_VERBATIM([USE_SHM],[#undef USE_SHM]) - AH_VERBATIM([USE_GTKSPELL],[#undef USE_GTKSPELL]) - AH_VERBATIM([USE_LIBSEXY],[#undef USE_LIBSEXY]) -+AH_VERBATIM([USE_LIBNOTIFY],[#undef USE_LIBNOTIFY]) - AH_VERBATIM([USE_IPV6],[#undef USE_IPV6]) - AH_VERBATIM([USE_MMX],[#undef USE_MMX]) - AH_VERBATIM([USE_OPENSSL],[#undef USE_OPENSSL]) - AH_VERBATIM([USE_PLUGIN],[#undef USE_PLUGIN]) - AH_VERBATIM([USE_XFT],[#undef USE_XFT]) - AH_VERBATIM([USE_XLIB],[#undef USE_XLIB]) - AH_VERBATIM([USE_SIGACTION],[#undef USE_SIGACTION]) - AH_VERBATIM([USING_FREEBSD],[#undef USING_FREEBSD]) -@@ -126,16 +127,20 @@ AC_ARG_ENABLE(tcl, - AC_ARG_ENABLE(plugin, - [ --disable-plugin disable plugin support], - plugin=$enableval, plugin=yes) - - AC_ARG_ENABLE(dbus, - [ --disable-dbus disable DBUS support], - dbus=$enableval, dbus=yes) - -+AC_ARG_ENABLE(libnotify, -+[ --disable-libnotify disable libnotify support], -+ libnotify=$enableval, libnotify=yes) -+ - AC_ARG_ENABLE(mmx, - [ --disable-mmx disable MMX assembly routines], - mmx=$enableval, mmx=yes) - - AC_ARG_ENABLE(shm, - [ --enable-shm enable use of XShm for fast tinting (default: no)], - shm=$enableval, shm=no) - -@@ -482,16 +487,32 @@ if test "x$dbus" = "xyes" ; then - - DBUS_SERVICES_DIR="$DATADIR/dbus-1/services" - AC_SUBST(DBUS_SERVICES_DIR) - AC_DEFINE_UNQUOTED(DBUS_SERVICES_DIR, "$DBUS_SERVICES_DIR", [Where services dir for DBUS is]) - fi - fi - - dnl ********************************************************************* -+dnl ** LIBNOTIFY ******************************************************** -+dnl ********************************************************************* -+ -+if test "x$libnotify" = "xyes" ; then -+ PKG_CHECK_MODULES(LIBNOTIFY, libnotify >= 0.4, [], [ -+ AC_MSG_RESULT(no) -+ libnotify=no -+ ]) -+ if test "$libnotify" != "no" ; then -+ GUI_LIBS="$GUI_LIBS $LIBNOTIFY_LIBS" -+ GUI_CFLAGS="$GUI_CFLAGS $LIBNOTIFY_CFLAGS" -+ AC_DEFINE(USE_LIBNOTIFY) -+ fi -+fi -+ -+dnl ********************************************************************* - dnl ** SPELL ************************************************************ - dnl ********************************************************************* - - if test "$spell" = "gtkspell" ; then - PKG_CHECK_MODULES(GTKSPELL, gtkspell-2.0 >= 2.0.2, [], [ - AC_MSG_RESULT(no) - spell=no - ]) -@@ -519,16 +540,17 @@ if test "$spell" = "static" ; then - fi - - dnl ********************************************************************* - dnl ** CONDITIONALS ***************************************************** - dnl ********************************************************************* - - AM_CONDITIONAL(USE_OPENSSL, test "x$openssl" = "xyes") - AM_CONDITIONAL(USE_LIBSEXY, test "x$spell" = "xstatic") -+AM_CONDITIONAL(USE_LIBNOTIFY, test "x$libnotify" = "xyes") - AM_CONDITIONAL(DO_TEXT, test "x$textfe" = "xyes") - AM_CONDITIONAL(DO_GTK, test "x$gtkfe" = "xyes") - AM_CONDITIONAL(DO_PERL, test "x$perl" = "xyes") - AM_CONDITIONAL(DO_PYTHON, test "x$python" = "xyes") - AM_CONDITIONAL(DO_TCL, test "x$tcl" = "xyes") - AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes") - AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes") - AM_CONDITIONAL(DO_GCONF, test "x$GCONFTOOL" != "xno") -@@ -807,16 +829,17 @@ echo mmx tinting ......... : $mmx\ spell - echo XShm tinting ........ : $shm\ plugin interface ...... : $plugin - if test "$xft" = no; then - echo text backend ........ : pango\ nls/gettext ........... : $USE_NLS - else - echo text backend ........ : xft\ nls/gettext ........... : $USE_NLS - fi - echo openssl support ..... : $openssl\ ipv6 support .......... : $ipv6 - echo dbus support ........ : $dbus\ msproxy ntlm \(ISA\) .... : $have_ntlm -+echo libnotify support ... : $libnotify - echo - echo The binary will be installed in $prefix/bin - echo - - if test "$gtkfe" = no; then - echo Warning: The GTK \(GUI\) frontend will not be built. - echo - fi -diff -p -U8 xchat-2.8.8/src/fe-gtk/plugin-tray.c.libnotifyso4 xchat-2.8.8/src/fe-gtk/plugin-tray.c ---- xchat-2.8.8/src/fe-gtk/plugin-tray.c.libnotifyso4 2011-04-07 17:57:27.524307905 -0700 -+++ xchat-2.8.8/src/fe-gtk/plugin-tray.c 2011-04-07 19:18:33.429475719 -0700 -@@ -10,17 +10,27 @@ - #include "../common/fe.h" - #include "../common/util.h" - #include "fe-gtk.h" - #include "pixmaps.h" - #include "maingui.h" - #include "menu.h" - #include - --#define LIBNOTIFY -+#ifdef USE_LIBNOTIFY -+#include -+#ifndef NOTIFY_CHECK_VERSION -+#define NOTIFY_CHECK_VERSION(x,y,z) 0 -+#endif -+#if NOTIFY_CHECK_VERSION(0,7,0) -+#define XC_NOTIFY_NEW(a,b,c,d) notify_notification_new(a,b,c) -+#else -+#define XC_NOTIFY_NEW(a,b,c,d) notify_notification_new(a,b,c,d) -+#endif -+#endif - - typedef enum /* current icon status */ - { - TS_NONE, - TS_MESSAGE, - TS_HIGHLIGHT, - TS_FILEOFFER, - TS_CUSTOM /* plugin */ -@@ -112,90 +122,16 @@ tray_count_networks (void) - - void - fe_tray_set_tooltip (const char *text) - { - if (sticon) - gtk_status_icon_set_tooltip (sticon, text); - } - --#ifdef LIBNOTIFY -- --/* dynamic access to libnotify.so */ -- --static void *nn_mod = NULL; --/* prototypes */ --static gboolean (*nn_init) (char *); --static void (*nn_uninit) (void); --/* recent versions of libnotify don't take the fourth GtkWidget argument, but passing an -- * extra NULL argument will be fine */ --static void *(*nn_new) (const gchar *summary, const gchar *message, const gchar *icon, gpointer dummy); --static gboolean (*nn_show) (void *noti, GError **error); --static void (*nn_set_timeout) (void *noti, gint timeout); -- --static void --libnotify_cleanup (void) --{ -- if (nn_mod) -- { -- nn_uninit (); -- g_module_close (nn_mod); -- nn_mod = NULL; -- } --} -- --static gboolean --libnotify_notify_new (const char *title, const char *text, GtkStatusIcon *icon) --{ -- void *noti; -- -- if (!nn_mod) -- { -- nn_mod = g_module_open ("libnotify", G_MODULE_BIND_LAZY); -- if (!nn_mod) -- { -- nn_mod = g_module_open ("libnotify.so.1", G_MODULE_BIND_LAZY); -- if (!nn_mod) -- return FALSE; -- } -- -- if (!g_module_symbol (nn_mod, "notify_init", (gpointer)&nn_init)) -- goto bad; -- if (!g_module_symbol (nn_mod, "notify_uninit", (gpointer)&nn_uninit)) -- goto bad; -- if (!g_module_symbol (nn_mod, "notify_notification_new", (gpointer)&nn_new)) -- goto bad; -- if (!g_module_symbol (nn_mod, "notify_notification_show", (gpointer)&nn_show)) -- goto bad; -- if (!g_module_symbol (nn_mod, "notify_notification_set_timeout", (gpointer)&nn_set_timeout)) -- goto bad; -- if (!nn_init (PACKAGE_NAME)) -- goto bad; -- } -- -- text = strip_color (text, -1, STRIP_ALL|STRIP_ESCMARKUP); -- title = strip_color (title, -1, STRIP_ALL); -- noti = nn_new (title, text, XCHATSHAREDIR"/pixmaps/xchat.png", NULL); -- g_free ((char *)title); -- g_free ((char *)text); -- -- nn_set_timeout (noti, prefs.input_balloon_time*1000); -- nn_show (noti, NULL); -- g_object_unref (G_OBJECT (noti)); -- -- return TRUE; -- --bad: -- g_module_close (nn_mod); -- nn_mod = NULL; -- return FALSE; --} -- --#endif -- - void - fe_tray_set_balloon (const char *title, const char *text) - { - #ifndef WIN32 - const char *argv[8]; - const char *path; - char time[16]; - WinStatus ws; -@@ -208,52 +144,36 @@ fe_tray_set_balloon (const char *title, - /* bit 1 of flags means "no balloons unless hidden/iconified" */ - if (ws != WS_HIDDEN && (prefs.gui_tray_flags & 2)) - return; - - /* FIXME: this should close the current balloon */ - if (!text) - return; - --#ifdef LIBNOTIFY -- /* try it via libnotify.so */ -- if (libnotify_notify_new (title, text, sticon)) -- return; /* success */ --#endif -+#ifdef USE_LIBNOTIFY -+ NotifyNotification *notification; -+ char *notify_text, *notify_title; - -- /* try it the crude way */ -- path = g_find_program_in_path ("notify-send"); -- if (path) -- { -- sprintf(time, "%d000",prefs.input_balloon_time); -- argv[0] = path; -- argv[1] = "-i"; -- argv[2] = "gtk-dialog-info"; -- if (access (XCHATSHAREDIR"/pixmaps/xchat.png", R_OK) == 0) -- argv[2] = XCHATSHAREDIR"/pixmaps/xchat.png"; -- argv[3] = "-t"; -- argv[4] = time; -- argv[5] = title; -- text = strip_color (text, -1, STRIP_ALL|STRIP_ESCMARKUP); -- argv[6] = text; -- argv[7] = NULL; -- xchat_execv (argv); -- g_free ((char *)path); -- g_free ((char *)text); -- } -- else -- { -- /* show this error only once */ -- static unsigned char said_it = FALSE; -- if (!said_it) -- { -- said_it = TRUE; -- fe_message (_("Cannot find 'notify-send' to open balloon alerts.\nPlease install libnotify."), FE_MSG_ERROR); -- } -- } -+ if (!notify_is_initted()) -+ notify_init(PACKAGE_NAME); -+ -+ notify_text = strip_color (text, -1, STRIP_ALL|STRIP_ESCMARKUP); -+ notify_title = strip_color (title, -1, STRIP_ALL); -+ -+ notification = XC_NOTIFY_NEW (notify_title, notify_text, XCHATSHAREDIR"/pixmaps/xchat.png", NULL); -+ -+ g_free ((char *)notify_title); -+ g_free ((char *)notify_text); -+ -+ notify_notification_set_timeout (notification, prefs.input_balloon_time*1000); -+ notify_notification_show (notification, NULL); -+ -+ g_object_unref (notification); -+#endif - #endif - } - - static void - tray_set_balloonf (const char *text, const char *format, ...) - { - va_list args; - char *buf; -@@ -840,13 +760,13 @@ tray_plugin_init (xchat_plugin *plugin_h - return 1; /* return 1 for success */ - } - - int - tray_plugin_deinit (xchat_plugin *plugin_handle) - { - #ifdef WIN32 - tray_cleanup (); --#elif defined(LIBNOTIFY) -- libnotify_cleanup (); -+#elif defined(USE_LIBNOTIFY) -+ notify_uninit (); - #endif - return 1; - } diff --git a/xchat-2.8.8-notifications-and-tray.patch b/xchat-2.8.8-notifications-and-tray.patch deleted file mode 100644 index 0803ce2..0000000 --- a/xchat-2.8.8-notifications-and-tray.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -urNp xchat-2.8.8/src/common/cfgfiles.c xchat-2.8.8-notifications-and-tray/src/common/cfgfiles.c ---- xchat-2.8.8/src/common/cfgfiles.c 2009-08-16 11:40:16.000000000 +0200 -+++ xchat-2.8.8-notifications-and-tray/src/common/cfgfiles.c 2012-11-27 15:34:13.080403744 +0100 -@@ -670,11 +670,13 @@ load_config (void) - prefs.autoopendccchatwindow = 1; - prefs.userhost = 1; - prefs.gui_url_mod = 4; /* ctrl */ -- prefs.gui_tray = 1; -+ prefs.gui_tray = 0; - prefs.gui_pane_left_size = 100; - prefs.gui_pane_right_size = 100; - prefs.mainwindow_save = 1; - prefs.bantype = 2; -+ prefs.input_balloon_hilight = 1; -+ prefs.input_balloon_priv = 1; - prefs.input_balloon_time = 20; - prefs.input_flash_priv = prefs.input_flash_hilight = 1; - prefs.input_tray_priv = prefs.input_tray_hilight = 1; -diff -urNp xchat-2.8.8/src/fe-gtk/maingui.c xchat-2.8.8-notifications-and-tray/src/fe-gtk/maingui.c ---- xchat-2.8.8/src/fe-gtk/maingui.c 2010-05-16 05:15:55.000000000 +0200 -+++ xchat-2.8.8-notifications-and-tray/src/fe-gtk/maingui.c 2012-11-27 16:05:27.609518192 +0100 -@@ -3107,7 +3107,7 @@ mg_tabwindow_de_cb (GtkWidget *widget, G - list = list->next; - } - -- mg_open_quit_dialog (TRUE); -+ mg_open_quit_dialog (FALSE); - return TRUE; - } - diff --git a/xchat-2.8.8-openssl-1.1.0.patch b/xchat-2.8.8-openssl-1.1.0.patch deleted file mode 100644 index 5fd2c0f..0000000 --- a/xchat-2.8.8-openssl-1.1.0.patch +++ /dev/null @@ -1,89 +0,0 @@ -diff -urNp xchat-2.8.8.orig/src/common/server.c xchat-2.8.8/src/common/server.c ---- xchat-2.8.8.orig/src/common/server.c 2010-05-30 04:14:41.000000000 +0200 -+++ xchat-2.8.8/src/common/server.c 2017-06-26 15:40:02.989120175 +0200 -@@ -593,14 +593,16 @@ ssl_cb_info (SSL * s, int where, int ret - static int - ssl_cb_verify (int ok, X509_STORE_CTX * ctx) - { -+ X509 *current_cert; - char subject[256]; - char issuer[256]; - char buf[512]; - - -- X509_NAME_oneline (X509_get_subject_name (ctx->current_cert), subject, -+ current_cert = X509_STORE_CTX_get_current_cert (ctx); -+ X509_NAME_oneline (X509_get_subject_name (current_cert), subject, - sizeof (subject)); -- X509_NAME_oneline (X509_get_issuer_name (ctx->current_cert), issuer, -+ X509_NAME_oneline (X509_get_issuer_name (current_cert), issuer, - sizeof (issuer)); - - snprintf (buf, sizeof (buf), "* Subject: %s", subject); -@@ -751,7 +753,12 @@ ssl_do_connect (server * serv) - return (0); /* remove it (0) */ - } else - { -- if (serv->ssl->session && serv->ssl->session->time + SSLTMOUT < time (NULL)) -+ SSL_SESSION *session; -+ long session_time; -+ -+ session = SSL_get_session (serv->ssl); -+ session_time = SSL_SESSION_get_time (session); -+ if (session && session_time + SSLTMOUT < time (NULL)) - { - snprintf (buf, sizeof (buf), "SSL handshake timed out"); - EMIT_SIGNAL (XP_TE_CONNFAIL, serv->server_session, buf, NULL, -diff -urNp xchat-2.8.8.orig/src/common/ssl.c xchat-2.8.8/src/common/ssl.c ---- xchat-2.8.8.orig/src/common/ssl.c 2017-06-26 15:43:41.924066669 +0200 -+++ xchat-2.8.8/src/common/ssl.c 2017-06-26 15:54:09.769849268 +0200 -@@ -136,6 +136,8 @@ int - _SSL_get_cert_info (struct cert_info *cert_info, SSL * ssl) - { - X509 *peer_cert; -+ X509_PUBKEY *peer_pub_key; -+ ASN1_OBJECT *algorithm; - EVP_PKEY *peer_pkey; - /* EVP_PKEY *ca_pkey; */ - /* EVP_PKEY *tmp_pkey; */ -@@ -155,8 +157,10 @@ _SSL_get_cert_info (struct cert_info *ce - broke_oneline (cert_info->subject, cert_info->subject_word); - broke_oneline (cert_info->issuer, cert_info->issuer_word); - -- alg = OBJ_obj2nid (peer_cert->cert_info->key->algor->algorithm); -- sign_alg = OBJ_obj2nid (peer_cert->sig_alg->algorithm); -+ peer_pub_key = X509_get_X509_PUBKEY (peer_cert); -+ X509_PUBKEY_get0_param (&algorithm, NULL, NULL, NULL, peer_pub_key); -+ alg = OBJ_obj2nid (algorithm); -+ sign_alg = X509_get_signature_type (peer_cert); - ASN1_TIME_snprintf (notBefore, sizeof (notBefore), - X509_get_notBefore (peer_cert)); - ASN1_TIME_snprintf (notAfter, sizeof (notAfter), -@@ -199,7 +203,7 @@ _SSL_get_cert_info (struct cert_info *ce - struct chiper_info * - _SSL_get_cipher_info (SSL * ssl) - { -- SSL_CIPHER *c; -+ const SSL_CIPHER *c; - - - c = SSL_get_current_cipher (ssl); -@@ -274,6 +278,7 @@ SSL * - _SSL_socket (SSL_CTX *ctx, int sd) - { - SSL *ssl; -+ SSL_METHOD *method; - - - if (!(ssl = SSL_new (ctx))) -@@ -281,7 +286,9 @@ _SSL_socket (SSL_CTX *ctx, int sd) - __SSL_critical_error ("SSL_new"); - - SSL_set_fd (ssl, sd); -- if (ctx->method == SSLv23_client_method()) -+ -+ method = SSL_CTX_get_ssl_method (ctx); -+ if (method == SSLv23_client_method()) - SSL_set_connect_state (ssl); - else - SSL_set_accept_state(ssl); diff --git a/xchat-2.8.8-xdg-dirs.patch b/xchat-2.8.8-xdg-dirs.patch deleted file mode 100644 index 5530085..0000000 --- a/xchat-2.8.8-xdg-dirs.patch +++ /dev/null @@ -1,1224 +0,0 @@ -diff -urNp xchat-2.8.8.orig/src/common/cfgfiles.c xchat-2.8.8/src/common/cfgfiles.c ---- xchat-2.8.8.orig/src/common/cfgfiles.c 2013-06-10 14:01:07.402432963 +0200 -+++ xchat-2.8.8/src/common/cfgfiles.c 2013-06-10 14:27:09.668464169 +0200 -@@ -1,3 +1,4 @@ -+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - /* X-Chat - * Copyright (C) 1998 Peter Zelezny. - * -@@ -34,7 +35,8 @@ - #ifdef WIN32 - #define XCHAT_DIR "X-Chat 2" - #else --#define XCHAT_DIR ".xchat2" -+#define XCHAT_DIR "xchat2" -+#define OLD_XCHAT_DIR ".xchat2" - #endif - #define DEF_FONT "Monospace 9" - -@@ -318,17 +320,68 @@ get_xdir_fs (void) - return xdir_fs; - } - -+void -+maybe_migrate_xdg_config (void) -+{ -+} -+ - #else - - char * - get_xdir_fs (void) - { - if (!xdir_fs) -- xdir_fs = g_strdup_printf ("%s/" XCHAT_DIR, g_get_home_dir ()); -+ xdir_fs = g_strdup_printf ("%s/" XCHAT_DIR, g_get_user_config_dir ()); - - return xdir_fs; - } - -+void -+maybe_migrate_xdg_config (void) -+{ -+ char *old_dir; -+ char *new_dir; -+ GFile *source; -+ GFile *dest; -+ GError *error; -+ gboolean res; -+ -+ new_dir = g_strdup_printf ("%s/" XCHAT_DIR, g_get_user_config_dir ()); -+ -+ /* already migrated */ -+ if (g_file_test (new_dir, G_FILE_TEST_IS_DIR)) -+ { -+ g_free (new_dir); -+ return; -+ } -+ -+ /* nothing to migrate */ -+ old_dir = g_strdup_printf ("%s/" OLD_XCHAT_DIR, g_get_home_dir ()); -+ if (!g_file_test (old_dir, G_FILE_TEST_IS_DIR)) -+ { -+ g_free (old_dir); -+ g_free (new_dir); -+ return; -+ } -+ -+ source = g_file_new_for_path (old_dir); -+ dest = g_file_new_for_path (new_dir); -+ -+ g_message (_("Migrating data from %s to %s"), old_dir, new_dir); -+ error = NULL; -+ res = g_file_move (source, dest, G_FILE_COPY_NONE, NULL, NULL, NULL, &error); -+ if (error != NULL) -+ { -+ g_warning (_("Error migrating data: %s"), error->message); -+ g_error_free (error); -+ } -+ -+ g_free (old_dir); -+ g_free (new_dir); -+ g_object_unref (source); -+ g_object_unref (dest); -+} -+ - #endif /* !WIN32 */ - - char * -@@ -351,7 +404,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 configuration directory"), FE_MSG_ERROR); - } - } - -@@ -593,6 +646,7 @@ load_config (void) - const char *username, *realname; - int res, val, i, fh; - -+ maybe_migrate_xdg_config (); - check_prefs_dir (); - username = g_get_user_name (); - if (!username) -diff -urNp xchat-2.8.8.orig/src/common/cfgfiles.c.orig xchat-2.8.8/src/common/cfgfiles.c.orig ---- xchat-2.8.8.orig/src/common/cfgfiles.c.orig 1970-01-01 01:00:00.000000000 +0100 -+++ xchat-2.8.8/src/common/cfgfiles.c.orig 2013-06-10 14:26:18.219319628 +0200 -@@ -0,0 +1,1104 @@ -+/* X-Chat -+ * Copyright (C) 1998 Peter Zelezny. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "xchat.h" -+#include "cfgfiles.h" -+#include "util.h" -+#include "fe.h" -+#include "text.h" -+#include "xchatc.h" -+ -+#ifdef WIN32 -+#define XCHAT_DIR "X-Chat 2" -+#else -+#define XCHAT_DIR ".xchat2" -+#endif -+#define DEF_FONT "Monospace 9" -+ -+void -+list_addentry (GSList ** list, char *cmd, char *name) -+{ -+ struct popup *pop; -+ int cmd_len = 1, name_len; -+ -+ /* remove <2.8.0 stuff */ -+ if (!strcmp (cmd, "away") && !strcmp (name, "BACK")) -+ return; -+ -+ if (cmd) -+ cmd_len = strlen (cmd) + 1; -+ name_len = strlen (name) + 1; -+ -+ pop = malloc (sizeof (struct popup) + cmd_len + name_len); -+ pop->name = (char *) pop + sizeof (struct popup); -+ pop->cmd = pop->name + name_len; -+ -+ memcpy (pop->name, name, name_len); -+ if (cmd) -+ memcpy (pop->cmd, cmd, cmd_len); -+ else -+ pop->cmd[0] = 0; -+ -+ *list = g_slist_append (*list, pop); -+} -+ -+/* read it in from a buffer to our linked list */ -+ -+static void -+list_load_from_data (GSList ** list, char *ibuf, int size) -+{ -+ char cmd[384]; -+ char name[128]; -+ char *buf; -+ int pnt = 0; -+ -+ cmd[0] = 0; -+ name[0] = 0; -+ -+ while (buf_get_line (ibuf, &buf, &pnt, size)) -+ { -+ if (*buf != '#') -+ { -+ if (!strncasecmp (buf, "NAME ", 5)) -+ { -+ safe_strcpy (name, buf + 5, sizeof (name)); -+ } -+ else if (!strncasecmp (buf, "CMD ", 4)) -+ { -+ safe_strcpy (cmd, buf + 4, sizeof (cmd)); -+ if (*name) -+ { -+ list_addentry (list, cmd, name); -+ cmd[0] = 0; -+ name[0] = 0; -+ } -+ } -+ } -+ } -+} -+ -+void -+list_loadconf (char *file, GSList ** list, char *defaultconf) -+{ -+ char filebuf[256]; -+ char *ibuf; -+ int fh; -+ struct stat st; -+ -+ snprintf (filebuf, sizeof (filebuf), "%s/%s", get_xdir_fs (), file); -+ fh = open (filebuf, O_RDONLY | OFLAGS); -+ if (fh == -1) -+ { -+ if (defaultconf) -+ list_load_from_data (list, defaultconf, strlen (defaultconf)); -+ return; -+ } -+ if (fstat (fh, &st) != 0) -+ { -+ perror ("fstat"); -+ abort (); -+ } -+ -+ ibuf = malloc (st.st_size); -+ read (fh, ibuf, st.st_size); -+ close (fh); -+ -+ list_load_from_data (list, ibuf, st.st_size); -+ -+ free (ibuf); -+} -+ -+void -+list_free (GSList ** list) -+{ -+ void *data; -+ while (*list) -+ { -+ data = (void *) (*list)->data; -+ free (data); -+ *list = g_slist_remove (*list, data); -+ } -+} -+ -+int -+list_delentry (GSList ** list, char *name) -+{ -+ struct popup *pop; -+ GSList *alist = *list; -+ -+ while (alist) -+ { -+ pop = (struct popup *) alist->data; -+ if (!strcasecmp (name, pop->name)) -+ { -+ *list = g_slist_remove (*list, pop); -+ free (pop); -+ return 1; -+ } -+ alist = alist->next; -+ } -+ return 0; -+} -+ -+char * -+cfg_get_str (char *cfg, char *var, char *dest, int dest_len) -+{ -+ while (1) -+ { -+ if (!strncasecmp (var, cfg, strlen (var))) -+ { -+ char *value, t; -+ cfg += strlen (var); -+ while (*cfg == ' ') -+ cfg++; -+ if (*cfg == '=') -+ cfg++; -+ while (*cfg == ' ') -+ cfg++; -+ /*while (*cfg == ' ' || *cfg == '=') -+ cfg++; */ -+ value = cfg; -+ while (*cfg != 0 && *cfg != '\n') -+ cfg++; -+ t = *cfg; -+ *cfg = 0; -+ safe_strcpy (dest, value, dest_len); -+ *cfg = t; -+ return cfg; -+ } -+ while (*cfg != 0 && *cfg != '\n') -+ cfg++; -+ if (*cfg == 0) -+ return 0; -+ cfg++; -+ if (*cfg == 0) -+ return 0; -+ } -+} -+ -+static int -+cfg_put_str (int fh, char *var, char *value) -+{ -+ char buf[512]; -+ int len; -+ -+ snprintf (buf, sizeof buf, "%s = %s\n", var, value); -+ len = strlen (buf); -+ return (write (fh, buf, len) == len); -+} -+ -+int -+cfg_put_color (int fh, int r, int g, int b, char *var) -+{ -+ char buf[400]; -+ int len; -+ -+ snprintf (buf, sizeof buf, "%s = %04x %04x %04x\n", var, r, g, b); -+ len = strlen (buf); -+ return (write (fh, buf, len) == len); -+} -+ -+int -+cfg_put_int (int fh, int value, char *var) -+{ -+ char buf[400]; -+ int len; -+ -+ if (value == -1) -+ value = 1; -+ -+ snprintf (buf, sizeof buf, "%s = %d\n", var, value); -+ len = strlen (buf); -+ return (write (fh, buf, len) == len); -+} -+ -+int -+cfg_get_color (char *cfg, char *var, int *r, int *g, int *b) -+{ -+ char str[128]; -+ -+ if (!cfg_get_str (cfg, var, str, sizeof (str))) -+ return 0; -+ -+ sscanf (str, "%04x %04x %04x", r, g, b); -+ return 1; -+} -+ -+int -+cfg_get_int_with_result (char *cfg, char *var, int *result) -+{ -+ char str[128]; -+ -+ if (!cfg_get_str (cfg, var, str, sizeof (str))) -+ { -+ *result = 0; -+ return 0; -+ } -+ -+ *result = 1; -+ return atoi (str); -+} -+ -+int -+cfg_get_int (char *cfg, char *var) -+{ -+ char str[128]; -+ -+ if (!cfg_get_str (cfg, var, str, sizeof (str))) -+ return 0; -+ -+ return atoi (str); -+} -+ -+char *xdir_fs = NULL; /* file system encoding */ -+char *xdir_utf = NULL; /* utf-8 encoding */ -+ -+#ifdef WIN32 -+ -+#include -+ -+static gboolean -+get_reg_str (const char *sub, const char *name, char *out, DWORD len) -+{ -+ HKEY hKey; -+ DWORD t; -+ -+ if (RegOpenKeyEx (HKEY_CURRENT_USER, sub, 0, KEY_READ, &hKey) == -+ ERROR_SUCCESS) -+ { -+ if (RegQueryValueEx (hKey, name, NULL, &t, out, &len) != ERROR_SUCCESS || -+ t != REG_SZ) -+ { -+ RegCloseKey (hKey); -+ return FALSE; -+ } -+ out[len-1] = 0; -+ RegCloseKey (hKey); -+ return TRUE; -+ } -+ -+ return FALSE; -+} -+ -+char * -+get_xdir_fs (void) -+{ -+ if (!xdir_fs) -+ { -+ char out[256]; -+ -+ if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" -+ "Explorer\\Shell Folders", "AppData", out, sizeof (out))) -+ return "./config"; -+ xdir_fs = g_strdup_printf ("%s\\" XCHAT_DIR, out); -+ } -+ return xdir_fs; -+} -+ -+#else -+ -+char * -+get_xdir_fs (void) -+{ -+ if (!xdir_fs) -+ xdir_fs = g_strdup_printf ("%s/" XCHAT_DIR, g_get_home_dir ()); -+ -+ return xdir_fs; -+} -+ -+#endif /* !WIN32 */ -+ -+char * -+get_xdir_utf8 (void) -+{ -+ if (!xdir_utf) /* never free this, keep it for program life time */ -+ xdir_utf = xchat_filename_to_utf8 (get_xdir_fs (), -1, 0, 0, 0); -+ -+ return xdir_utf; -+} -+ -+static void -+check_prefs_dir (void) -+{ -+ char *dir = get_xdir_fs (); -+ if (access (dir, F_OK) != 0) -+ { -+#ifdef WIN32 -+ if (mkdir (dir) != 0) -+#else -+ if (mkdir (dir, S_IRUSR | S_IWUSR | S_IXUSR) != 0) -+#endif -+ fe_message (_("Cannot create ~/.xchat2"), FE_MSG_ERROR); -+ } -+} -+ -+static char * -+default_file (void) -+{ -+ static char *dfile = 0; -+ -+ if (!dfile) -+ { -+ dfile = malloc (strlen (get_xdir_fs ()) + 12); -+ sprintf (dfile, "%s/xchat.conf", get_xdir_fs ()); -+ } -+ return dfile; -+} -+ -+/* Keep these sorted!! */ -+ -+const struct prefs vars[] = { -+ {"auto_save", P_OFFINT (autosave), TYPE_BOOL}, -+ {"auto_save_url", P_OFFINT (autosave_url), TYPE_BOOL}, -+ -+ {"away_auto_unmark", P_OFFINT (auto_unmark_away), TYPE_BOOL}, -+ {"away_reason", P_OFFSET (awayreason), TYPE_STR}, -+ {"away_show_message", P_OFFINT (show_away_message), TYPE_BOOL}, -+ {"away_show_once", P_OFFINT (show_away_once), TYPE_BOOL}, -+ {"away_size_max", P_OFFINT (away_size_max), TYPE_INT}, -+ {"away_timeout", P_OFFINT (away_timeout), TYPE_INT}, -+ {"away_track", P_OFFINT (away_track), TYPE_BOOL}, -+ -+ {"completion_amount", P_OFFINT (completion_amount), TYPE_INT}, -+ {"completion_auto", P_OFFINT (nickcompletion), TYPE_BOOL}, -+ {"completion_sort", P_OFFINT (completion_sort), TYPE_INT}, -+ {"completion_suffix", P_OFFSET (nick_suffix), TYPE_STR}, -+ -+ {"dcc_auto_chat", P_OFFINT (autodccchat), TYPE_INT}, -+ {"dcc_auto_resume", P_OFFINT (autoresume), TYPE_BOOL}, -+ {"dcc_auto_send", P_OFFINT (autodccsend), TYPE_INT}, -+ {"dcc_blocksize", P_OFFINT (dcc_blocksize), TYPE_INT}, -+ {"dcc_completed_dir", P_OFFSET (dcc_completed_dir), TYPE_STR}, -+ {"dcc_dir", P_OFFSET (dccdir), TYPE_STR}, -+ {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL}, -+ {"dcc_global_max_get_cps", P_OFFINT (dcc_global_max_get_cps), TYPE_INT}, -+ {"dcc_global_max_send_cps", P_OFFINT (dcc_global_max_send_cps), TYPE_INT}, -+ {"dcc_ip", P_OFFSET (dcc_ip_str), TYPE_STR}, -+ {"dcc_ip_from_server", P_OFFINT (ip_from_server), TYPE_BOOL}, -+ {"dcc_max_get_cps", P_OFFINT (dcc_max_get_cps), TYPE_INT}, -+ {"dcc_max_send_cps", P_OFFINT (dcc_max_send_cps), TYPE_INT}, -+ {"dcc_permissions", P_OFFINT (dccpermissions), TYPE_INT}, -+ {"dcc_port_first", P_OFFINT (first_dcc_send_port), TYPE_INT}, -+ {"dcc_port_last", P_OFFINT (last_dcc_send_port), TYPE_INT}, -+ {"dcc_remove", P_OFFINT (dcc_remove), TYPE_BOOL}, -+ {"dcc_save_nick", P_OFFINT (dccwithnick), TYPE_BOOL}, -+ {"dcc_send_fillspaces", P_OFFINT (dcc_send_fillspaces), TYPE_BOOL}, -+ {"dcc_stall_timeout", P_OFFINT (dccstalltimeout), TYPE_INT}, -+ {"dcc_timeout", P_OFFINT (dcctimeout), TYPE_INT}, -+ -+ {"dnsprogram", P_OFFSET (dnsprogram), TYPE_STR}, -+ -+ {"flood_ctcp_num", P_OFFINT (ctcp_number_limit), TYPE_INT}, -+ {"flood_ctcp_time", P_OFFINT (ctcp_time_limit), TYPE_INT}, -+ {"flood_msg_num", P_OFFINT (msg_number_limit), TYPE_INT}, -+ {"flood_msg_time", P_OFFINT (msg_time_limit), TYPE_INT}, -+ -+ {"gui_auto_open_chat", P_OFFINT (autoopendccchatwindow), TYPE_BOOL}, -+ {"gui_auto_open_dialog", P_OFFINT (autodialog), TYPE_BOOL}, -+ {"gui_auto_open_recv", P_OFFINT (autoopendccrecvwindow), TYPE_BOOL}, -+ {"gui_auto_open_send", P_OFFINT (autoopendccsendwindow), TYPE_BOOL}, -+ {"gui_dialog_height", P_OFFINT (dialog_height), TYPE_INT}, -+ {"gui_dialog_left", P_OFFINT (dialog_left), TYPE_INT}, -+ {"gui_dialog_top", P_OFFINT (dialog_top), TYPE_INT}, -+ {"gui_dialog_width", P_OFFINT (dialog_width), TYPE_INT}, -+ {"gui_hide_menu", P_OFFINT (hidemenu), TYPE_BOOL}, -+ {"gui_input_spell", P_OFFINT (gui_input_spell), TYPE_BOOL}, -+ {"gui_input_style", P_OFFINT (style_inputbox), TYPE_BOOL}, -+ {"gui_join_dialog", P_OFFINT (gui_join_dialog), TYPE_BOOL}, -+ {"gui_lagometer", P_OFFINT (lagometer), TYPE_INT}, -+ {"gui_mode_buttons", P_OFFINT (chanmodebuttons), TYPE_BOOL}, -+ {"gui_pane_left_size", P_OFFINT (gui_pane_left_size), TYPE_INT}, -+ {"gui_pane_right_size", P_OFFINT (gui_pane_right_size), TYPE_INT}, -+ {"gui_quit_dialog", P_OFFINT (gui_quit_dialog), TYPE_BOOL}, -+ {"gui_slist_select", P_OFFINT (slist_select), TYPE_INT}, -+ {"gui_slist_skip", P_OFFINT (slist_skip), TYPE_BOOL}, -+ {"gui_throttlemeter", P_OFFINT (throttlemeter), TYPE_INT}, -+ {"gui_topicbar", P_OFFINT (topicbar), TYPE_BOOL}, -+ {"gui_tray", P_OFFINT (gui_tray), TYPE_BOOL}, -+ {"gui_tray_flags", P_OFFINT (gui_tray_flags), TYPE_INT}, -+ {"gui_tweaks", P_OFFINT (gui_tweaks), TYPE_INT}, -+ {"gui_ulist_buttons", P_OFFINT (userlistbuttons), TYPE_BOOL}, -+ {"gui_ulist_doubleclick", P_OFFSET (doubleclickuser), TYPE_STR}, -+ {"gui_ulist_hide", P_OFFINT (hideuserlist), TYPE_BOOL}, -+ {"gui_ulist_left", P_OFFINT (_gui_ulist_left), TYPE_BOOL}, /* obsolete */ -+ {"gui_ulist_pos", P_OFFINT (gui_ulist_pos), TYPE_INT}, -+ {"gui_ulist_resizable", P_OFFINT (paned_userlist), TYPE_BOOL}, -+ {"gui_ulist_show_hosts", P_OFFINT(showhostname_in_userlist), TYPE_BOOL}, -+ {"gui_ulist_sort", P_OFFINT (userlist_sort), TYPE_INT}, -+ {"gui_ulist_style", P_OFFINT (style_namelistgad), TYPE_BOOL}, -+ {"gui_url_mod", P_OFFINT (gui_url_mod), TYPE_INT}, -+ {"gui_usermenu", P_OFFINT (gui_usermenu), TYPE_BOOL}, -+ {"gui_win_height", P_OFFINT (mainwindow_height), TYPE_INT}, -+ {"gui_win_left", P_OFFINT (mainwindow_left), TYPE_INT}, -+ {"gui_win_save", P_OFFINT (mainwindow_save), TYPE_BOOL}, -+ {"gui_win_state", P_OFFINT (gui_win_state), TYPE_INT}, -+ {"gui_win_top", P_OFFINT (mainwindow_top), TYPE_INT}, -+ {"gui_win_width", P_OFFINT (mainwindow_width), TYPE_INT}, -+ -+#ifdef WIN32 -+ {"identd", P_OFFINT (identd), TYPE_BOOL}, -+#endif -+ {"input_balloon_chans", P_OFFINT (input_balloon_chans), TYPE_BOOL}, -+ {"input_balloon_hilight", P_OFFINT (input_balloon_hilight), TYPE_BOOL}, -+ {"input_balloon_priv", P_OFFINT (input_balloon_priv), TYPE_BOOL}, -+ {"input_balloon_time", P_OFFINT (input_balloon_time), TYPE_INT}, -+ {"input_beep_chans", P_OFFINT (input_beep_chans), TYPE_BOOL}, -+ {"input_beep_hilight", P_OFFINT (input_beep_hilight), TYPE_BOOL}, -+ {"input_beep_msg", P_OFFINT (input_beep_priv), TYPE_BOOL}, -+ {"input_command_char", P_OFFSET (cmdchar), TYPE_STR}, -+ {"input_filter_beep", P_OFFINT (filterbeep), TYPE_BOOL}, -+ {"input_flash_chans", P_OFFINT (input_flash_chans), TYPE_BOOL}, -+ {"input_flash_hilight", P_OFFINT (input_flash_hilight), TYPE_BOOL}, -+ {"input_flash_priv", P_OFFINT (input_flash_priv), TYPE_BOOL}, -+ {"input_perc_ascii", P_OFFINT (perc_ascii), TYPE_BOOL}, -+ {"input_perc_color", P_OFFINT (perc_color), TYPE_BOOL}, -+ {"input_tray_chans", P_OFFINT (input_tray_chans), TYPE_BOOL}, -+ {"input_tray_hilight", P_OFFINT (input_tray_hilight), TYPE_BOOL}, -+ {"input_tray_priv", P_OFFINT (input_tray_priv), TYPE_BOOL}, -+ -+ {"irc_auto_rejoin", P_OFFINT (autorejoin), TYPE_BOOL}, -+ {"irc_ban_type", P_OFFINT (bantype), TYPE_INT}, -+ {"irc_conf_mode", P_OFFINT (confmode), TYPE_BOOL}, -+ {"irc_extra_hilight", P_OFFSET (irc_extra_hilight), TYPE_STR}, -+ {"irc_hide_version", P_OFFINT (hidever), TYPE_BOOL}, -+ {"irc_id_ntext", P_OFFSET (irc_id_ntext), TYPE_STR}, -+ {"irc_id_ytext", P_OFFSET (irc_id_ytext), TYPE_STR}, -+ {"irc_invisible", P_OFFINT (invisible), TYPE_BOOL}, -+ {"irc_join_delay", P_OFFINT (irc_join_delay), TYPE_INT}, -+ {"irc_logging", P_OFFINT (logging), TYPE_BOOL}, -+ {"irc_logmask", P_OFFSET (logmask), TYPE_STR}, -+ {"irc_nick1", P_OFFSET (nick1), TYPE_STR}, -+ {"irc_nick2", P_OFFSET (nick2), TYPE_STR}, -+ {"irc_nick3", P_OFFSET (nick3), TYPE_STR}, -+ {"irc_nick_hilight", P_OFFSET (irc_nick_hilight), TYPE_STR}, -+ {"irc_no_hilight", P_OFFSET (irc_no_hilight), TYPE_STR}, -+ {"irc_part_reason", P_OFFSET (partreason), TYPE_STR}, -+ {"irc_quit_reason", P_OFFSET (quitreason), TYPE_STR}, -+ {"irc_raw_modes", P_OFFINT (raw_modes), TYPE_BOOL}, -+ {"irc_real_name", P_OFFSET (realname), TYPE_STR}, -+ {"irc_servernotice", P_OFFINT (servernotice), TYPE_BOOL}, -+ {"irc_skip_motd", P_OFFINT (skipmotd), TYPE_BOOL}, -+ {"irc_user_name", P_OFFSET (username), TYPE_STR}, -+ {"irc_wallops", P_OFFINT (wallops), TYPE_BOOL}, -+ {"irc_who_join", P_OFFINT (userhost), TYPE_BOOL}, -+ {"irc_whois_front", P_OFFINT (irc_whois_front), TYPE_BOOL}, -+ -+ {"net_auto_reconnect", P_OFFINT (autoreconnect), TYPE_BOOL}, -+ {"net_auto_reconnectonfail", P_OFFINT (autoreconnectonfail), TYPE_BOOL}, -+ {"net_bind_host", P_OFFSET (hostname), TYPE_STR}, -+ {"net_ping_timeout", P_OFFINT (pingtimeout), TYPE_INT}, -+ {"net_proxy_auth", P_OFFINT (proxy_auth), TYPE_BOOL}, -+ {"net_proxy_host", P_OFFSET (proxy_host), TYPE_STR}, -+ {"net_proxy_pass", P_OFFSET (proxy_pass), TYPE_STR}, -+ {"net_proxy_port", P_OFFINT (proxy_port), TYPE_INT}, -+ {"net_proxy_type", P_OFFINT (proxy_type), TYPE_INT}, -+ {"net_proxy_use", P_OFFINT (proxy_use), TYPE_INT}, -+ {"net_proxy_user", P_OFFSET (proxy_user), TYPE_STR}, -+ -+ {"net_reconnect_delay", P_OFFINT (recon_delay), TYPE_INT}, -+ {"net_throttle", P_OFFINT (throttle), TYPE_BOOL}, -+ -+ {"notify_timeout", P_OFFINT (notify_timeout), TYPE_INT}, -+ {"notify_whois_online", P_OFFINT (whois_on_notifyonline), TYPE_BOOL}, -+ -+ {"perl_warnings", P_OFFINT (perlwarnings), TYPE_BOOL}, -+ -+ {"sound_command", P_OFFSET (soundcmd), TYPE_STR}, -+ {"sound_dir", P_OFFSET (sounddir), TYPE_STR}, -+ {"stamp_log", P_OFFINT (timestamp_logs), TYPE_BOOL}, -+ {"stamp_log_format", P_OFFSET (timestamp_log_format), TYPE_STR}, -+ {"stamp_text", P_OFFINT (timestamp), TYPE_BOOL}, -+ {"stamp_text_format", P_OFFSET (stamp_format), TYPE_STR}, -+ -+ {"tab_chans", P_OFFINT (tabchannels), TYPE_BOOL}, -+ {"tab_dialogs", P_OFFINT (privmsgtab), TYPE_BOOL}, -+ {"tab_layout", P_OFFINT (tab_layout), TYPE_INT}, -+ {"tab_new_to_front", P_OFFINT (newtabstofront), TYPE_INT}, -+ {"tab_notices", P_OFFINT (notices_tabs), TYPE_BOOL}, -+ {"tab_pos", P_OFFINT (tab_pos), TYPE_INT}, -+ {"tab_position", P_OFFINT (_tabs_position), TYPE_INT}, /* obsolete */ -+ {"tab_server", P_OFFINT (use_server_tab), TYPE_BOOL}, -+ {"tab_small", P_OFFINT (tab_small), TYPE_INT}, -+ {"tab_sort", P_OFFINT (tab_sort), TYPE_BOOL}, -+ {"tab_trunc", P_OFFINT (truncchans), TYPE_INT}, -+ {"tab_utils", P_OFFINT (windows_as_tabs), TYPE_BOOL}, -+ -+ {"text_background", P_OFFSET (background), TYPE_STR}, -+ {"text_color_nicks", P_OFFINT (colorednicks), TYPE_BOOL}, -+ {"text_font", P_OFFSET (font_normal), TYPE_STR}, -+ {"text_indent", P_OFFINT (indent_nicks), TYPE_BOOL}, -+ {"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT}, -+ {"text_max_lines", P_OFFINT (max_lines), TYPE_INT}, -+ {"text_replay", P_OFFINT (text_replay), TYPE_BOOL}, -+ {"text_show_marker", P_OFFINT (show_marker), TYPE_BOOL}, -+ {"text_show_sep", P_OFFINT (show_separator), TYPE_BOOL}, -+ {"text_stripcolor", P_OFFINT (stripcolor), TYPE_BOOL}, -+ {"text_thin_sep", P_OFFINT (thin_separator), TYPE_BOOL}, -+ {"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT}, -+ {"text_tint_green", P_OFFINT (tint_green), TYPE_INT}, -+ {"text_tint_red", P_OFFINT (tint_red), TYPE_INT}, -+ {"text_transparent", P_OFFINT (transparent), TYPE_BOOL}, -+ {"text_wordwrap", P_OFFINT (wordwrap), TYPE_BOOL}, -+ -+ {0, 0, 0}, -+}; -+ -+static char * -+convert_with_fallback (const char *str, const char *fallback) -+{ -+ char *utf; -+ -+ utf = g_locale_to_utf8 (str, -1, 0, 0, 0); -+ if (!utf) -+ { -+ /* this can happen if CHARSET envvar is set wrong */ -+ /* maybe it's already utf8 (breakage!) */ -+ if (!g_utf8_validate (str, -1, NULL)) -+ utf = g_strdup (fallback); -+ else -+ utf = g_strdup (str); -+ } -+ -+ return utf; -+} -+ -+void -+load_config (void) -+{ -+ struct stat st; -+ char *cfg, *sp; -+ const char *username, *realname; -+ int res, val, i, fh; -+ -+ check_prefs_dir (); -+ username = g_get_user_name (); -+ if (!username) -+ username = "root"; -+ -+ realname = g_get_real_name (); -+ if ((realname && realname[0] == 0) || !realname) -+ realname = username; -+ -+ username = convert_with_fallback (username, "username"); -+ realname = convert_with_fallback (realname, "realname"); -+ -+ memset (&prefs, 0, sizeof (struct xchatprefs)); -+ -+ /* put in default values, anything left out is automatically zero */ -+ prefs.local_ip = 0xffffffff; -+ prefs.irc_join_delay = 3; -+ prefs.show_marker = 1; -+ prefs.newtabstofront = 2; -+ prefs.completion_amount = 5; -+ prefs.away_timeout = 60; -+ prefs.away_size_max = 300; -+ prefs.away_track = 1; -+ prefs.timestamp_logs = 1; -+ prefs.truncchans = 20; -+ prefs.autoresume = 1; -+ prefs.show_away_once = 1; -+ prefs.indent_nicks = 1; -+ prefs.thin_separator = 1; -+ prefs._tabs_position = 2; /* 2 = left */ -+ prefs.fastdccsend = 1; -+ prefs.wordwrap = 1; -+ prefs.autosave = 1; -+ prefs.autodialog = 1; -+ prefs.gui_input_spell = 1; -+ prefs.autoreconnect = 1; -+ prefs.recon_delay = 10; -+ prefs.text_replay = 1; -+ prefs.tabchannels = 1; -+ prefs.tab_layout = 2; /* 0=Tabs 1=Reserved 2=Tree */ -+ prefs.tab_sort = 1; -+ prefs.paned_userlist = 1; -+ prefs.newtabstofront = 2; -+ prefs.use_server_tab = 1; -+ prefs.privmsgtab = 1; -+ /*prefs.style_inputbox = 1;*/ -+ prefs.dccpermissions = 0600; -+ prefs.max_lines = 500; -+ prefs.mainwindow_width = 640; -+ prefs.mainwindow_height = 400; -+ prefs.dialog_width = 500; -+ prefs.dialog_height = 256; -+ prefs.gui_join_dialog = 1; -+ prefs.gui_quit_dialog = 1; -+ prefs.dcctimeout = 180; -+ prefs.dccstalltimeout = 60; -+ prefs.notify_timeout = 15; -+ prefs.tint_red = -+ prefs.tint_green = -+ prefs.tint_blue = 195; -+ prefs.auto_indent = 1; -+ prefs.max_auto_indent = 256; -+ prefs.show_separator = 1; -+ prefs.dcc_blocksize = 1024; -+ prefs.throttle = 1; -+ /*FIXME*/ prefs.msg_time_limit = 30; -+ prefs.msg_number_limit = 5; -+ prefs.ctcp_time_limit = 30; -+ prefs.ctcp_number_limit = 5; -+ prefs.topicbar = 1; -+ prefs.lagometer = 1; -+ prefs.throttlemeter = 1; -+ prefs.autoopendccrecvwindow = 1; -+ prefs.autoopendccsendwindow = 1; -+ prefs.autoopendccchatwindow = 1; -+ prefs.userhost = 1; -+ prefs.gui_url_mod = 4; /* ctrl */ -+ prefs.gui_tray = 1; -+ prefs.gui_pane_left_size = 100; -+ prefs.gui_pane_right_size = 100; -+ prefs.mainwindow_save = 1; -+ prefs.bantype = 2; -+ prefs.input_balloon_time = 20; -+ prefs.input_flash_priv = prefs.input_flash_hilight = 1; -+ prefs.input_tray_priv = prefs.input_tray_hilight = 1; -+ prefs.autodccsend = 2; /* browse mode */ -+#ifdef WIN32 -+ prefs.identd = 1; -+#endif -+ strcpy (prefs.stamp_format, "[%H:%M] "); -+ strcpy (prefs.timestamp_log_format, "%b %d %H:%M:%S "); -+ strcpy (prefs.logmask, "%n-%c.log"); -+ strcpy (prefs.nick_suffix, ","); -+ strcpy (prefs.cmdchar, "/"); -+ strcpy (prefs.nick1, username); -+ strcpy (prefs.nick2, username); -+ strcat (prefs.nick2, "_"); -+ strcpy (prefs.nick3, username); -+ strcat (prefs.nick3, "__"); -+ strcpy (prefs.realname, realname); -+ strcpy (prefs.username, username); -+#ifdef WIN32 -+ strcpy (prefs.sounddir, "./sounds"); -+ { -+ char out[256]; -+ -+ if (get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\" -+ "Explorer\\Shell Folders", "Personal", out, sizeof (out))) -+ snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s\\Downloads", out); -+ else -+ snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s\\Downloads", get_xdir_utf8 ()); -+ } -+#else -+ snprintf (prefs.sounddir, sizeof (prefs.sounddir), "%s/sounds", get_xdir_utf8 ()); -+ snprintf (prefs.dccdir, sizeof (prefs.dccdir), "%s/downloads", get_xdir_utf8 ()); -+#endif -+ strcpy (prefs.doubleclickuser, "QUOTE WHOIS %s %s"); -+ strcpy (prefs.awayreason, _("I'm busy")); -+ strcpy (prefs.quitreason, _("Leaving")); -+ strcpy (prefs.partreason, prefs.quitreason); -+ strcpy (prefs.font_normal, DEF_FONT); -+ strcpy (prefs.dnsprogram, "host"); -+ strcpy (prefs.irc_no_hilight, "NickServ,ChanServ"); -+ -+ g_free ((char *)username); -+ g_free ((char *)realname); -+ -+ fh = open (default_file (), OFLAGS | O_RDONLY); -+ if (fh != -1) -+ { -+ fstat (fh, &st); -+ cfg = malloc (st.st_size + 1); -+ cfg[0] = '\0'; -+ i = read (fh, cfg, st.st_size); -+ if (i >= 0) -+ cfg[i] = '\0'; /* make sure cfg is NULL terminated */ -+ close (fh); -+ i = 0; -+ do -+ { -+ switch (vars[i].type) -+ { -+ case TYPE_STR: -+ cfg_get_str (cfg, vars[i].name, (char *) &prefs + vars[i].offset, -+ vars[i].len); -+ break; -+ case TYPE_BOOL: -+ case TYPE_INT: -+ val = cfg_get_int_with_result (cfg, vars[i].name, &res); -+ if (res) -+ *((int *) &prefs + vars[i].offset) = val; -+ break; -+ } -+ i++; -+ } -+ while (vars[i].name); -+ -+ free (cfg); -+ -+ } else -+ { -+#ifndef WIN32 -+#ifndef __EMX__ -+ /* OS/2 uses UID 0 all the time */ -+ if (getuid () == 0) -+ fe_message (_("* Running IRC as root is stupid! You should\n" -+ " create a User Account and use that to login.\n"), FE_MSG_WARN|FE_MSG_WAIT); -+#endif -+#endif /* !WIN32 */ -+ -+ mkdir_utf8 (prefs.dccdir); -+ mkdir_utf8 (prefs.dcc_completed_dir); -+ } -+ if (prefs.mainwindow_height < 138) -+ prefs.mainwindow_height = 138; -+ if (prefs.mainwindow_width < 106) -+ prefs.mainwindow_width = 106; -+ -+ sp = strchr (prefs.username, ' '); -+ if (sp) -+ sp[0] = 0; /* spaces in username would break the login */ -+ -+ /* try to make sense of old ulist/tree position settings */ -+ if (prefs.gui_ulist_pos == 0) -+ { -+ prefs.gui_ulist_pos = 3; /* top right */ -+ if (prefs._gui_ulist_left) -+ prefs.gui_ulist_pos = 2; /* bottom left */ -+ -+ switch (prefs._tabs_position) -+ { -+ case 0: -+ prefs.tab_pos = 6; /* bottom */ -+ break; -+ case 1: -+ prefs.tab_pos = 5; /* top */ -+ break; -+ case 2: -+ prefs.tab_pos = 1; /* left */ -+ break; -+ case 3: -+ prefs.tab_pos = 4; /* right */ -+ break; -+ case 4: -+ prefs.tab_pos = 1; /* (hidden)left */ -+ break; -+ case 5: -+ if (prefs._gui_ulist_left) -+ { -+ prefs.tab_pos = 1; /* above ulist left */ -+ prefs.gui_ulist_pos = 2; -+ } -+ else -+ { -+ prefs.tab_pos = 3; /* above ulist right */ -+ prefs.gui_ulist_pos = 4; -+ } -+ break; -+ } -+ } -+} -+ -+int -+save_config (void) -+{ -+ int fh, i; -+ char *new_config, *config; -+ -+ check_prefs_dir (); -+ -+ config = default_file (); -+ new_config = malloc (strlen (config) + 5); -+ strcpy (new_config, config); -+ strcat (new_config, ".new"); -+ -+ fh = open (new_config, OFLAGS | O_TRUNC | O_WRONLY | O_CREAT, 0600); -+ if (fh == -1) -+ { -+ free (new_config); -+ return 0; -+ } -+ -+ if (!cfg_put_str (fh, "version", PACKAGE_VERSION)) -+ { -+ free (new_config); -+ return 0; -+ } -+ -+ i = 0; -+ do -+ { -+ switch (vars[i].type) -+ { -+ case TYPE_STR: -+ if (!cfg_put_str (fh, vars[i].name, (char *) &prefs + vars[i].offset)) -+ { -+ free (new_config); -+ return 0; -+ } -+ break; -+ case TYPE_INT: -+ case TYPE_BOOL: -+ if (!cfg_put_int (fh, *((int *) &prefs + vars[i].offset), vars[i].name)) -+ { -+ free (new_config); -+ return 0; -+ } -+ } -+ i++; -+ } -+ while (vars[i].name); -+ -+ if (close (fh) == -1) -+ { -+ free (new_config); -+ return 0; -+ } -+ -+#ifdef WIN32 -+ unlink (config); /* win32 can't rename to an existing file */ -+#endif -+ if (rename (new_config, config) == -1) -+ { -+ free (new_config); -+ return 0; -+ } -+ free (new_config); -+ -+ return 1; -+} -+ -+static void -+set_showval (session *sess, const struct prefs *var, char *tbuf) -+{ -+ int len, dots, j; -+ -+ len = strlen (var->name); -+ memcpy (tbuf, var->name, len); -+ dots = 29 - len; -+ if (dots < 0) -+ dots = 0; -+ tbuf[len++] = '\003'; -+ tbuf[len++] = '2'; -+ for (j=0;jtype) -+ { -+ case TYPE_STR: -+ sprintf (tbuf + len, "\0033:\017 %s\n", -+ (char *) &prefs + var->offset); -+ break; -+ case TYPE_INT: -+ sprintf (tbuf + len, "\0033:\017 %d\n", -+ *((int *) &prefs + var->offset)); -+ break; -+ case TYPE_BOOL: -+ if (*((int *) &prefs + var->offset)) -+ sprintf (tbuf + len, "\0033:\017 %s\n", "ON"); -+ else -+ sprintf (tbuf + len, "\0033:\017 %s\n", "OFF"); -+ break; -+ } -+ PrintText (sess, tbuf); -+} -+ -+static void -+set_list (session * sess, char *tbuf) -+{ -+ int i; -+ -+ i = 0; -+ do -+ { -+ set_showval (sess, &vars[i], tbuf); -+ i++; -+ } -+ while (vars[i].name); -+} -+ -+int -+cfg_get_bool (char *var) -+{ -+ int i = 0; -+ -+ do -+ { -+ if (!strcasecmp (var, vars[i].name)) -+ { -+ return *((int *) &prefs + vars[i].offset); -+ } -+ i++; -+ } -+ while (vars[i].name); -+ -+ return -1; -+} -+ -+int -+cmd_set (struct session *sess, char *tbuf, char *word[], char *word_eol[]) -+{ -+ int wild = FALSE; -+ int or = FALSE; -+ int off = FALSE; -+ int quiet = FALSE; -+ int erase = FALSE; -+ int i = 0, finds = 0, found; -+ int idx = 2; -+ char *var, *val; -+ -+ if (strcasecmp (word[2], "-e") == 0) -+ { -+ idx++; -+ erase = TRUE; -+ } -+ -+ /* turn a bit OFF */ -+ if (strcasecmp (word[idx], "-off") == 0) -+ { -+ idx++; -+ off = TRUE; -+ } -+ -+ /* turn a bit ON */ -+ if (strcasecmp (word[idx], "-or") == 0 || strcasecmp (word[idx], "-on") == 0) -+ { -+ idx++; -+ or = TRUE; -+ } -+ -+ if (strcasecmp (word[idx], "-quiet") == 0) -+ { -+ idx++; -+ quiet = TRUE; -+ } -+ -+ var = word[idx]; -+ val = word_eol[idx+1]; -+ -+ if (!*var) -+ { -+ set_list (sess, tbuf); -+ return TRUE; -+ } -+ -+ if ((strchr (var, '*') || strchr (var, '?')) && !*val) -+ wild = TRUE; -+ -+ if (*val == '=') -+ val++; -+ -+ do -+ { -+ if (wild) -+ found = !match (var, vars[i].name); -+ else -+ found = strcasecmp (var, vars[i].name); -+ -+ if (found == 0) -+ { -+ finds++; -+ switch (vars[i].type) -+ { -+ case TYPE_STR: -+ if (erase || *val) -+ { -+ strncpy ((char *) &prefs + vars[i].offset, val, vars[i].len); -+ ((char *) &prefs)[vars[i].offset + vars[i].len - 1] = 0; -+ if (!quiet) -+ PrintTextf (sess, "%s set to: %s\n", var, (char *) &prefs + vars[i].offset); -+ } else -+ { -+ set_showval (sess, &vars[i], tbuf); -+ } -+ break; -+ case TYPE_INT: -+ case TYPE_BOOL: -+ if (*val) -+ { -+ if (vars[i].type == TYPE_BOOL) -+ { -+ if (atoi (val)) -+ *((int *) &prefs + vars[i].offset) = 1; -+ else -+ *((int *) &prefs + vars[i].offset) = 0; -+ if (!strcasecmp (val, "YES") || !strcasecmp (val, "ON")) -+ *((int *) &prefs + vars[i].offset) = 1; -+ if (!strcasecmp (val, "NO") || !strcasecmp (val, "OFF")) -+ *((int *) &prefs + vars[i].offset) = 0; -+ } else -+ { -+ if (or) -+ *((int *) &prefs + vars[i].offset) |= atoi (val); -+ else if (off) -+ *((int *) &prefs + vars[i].offset) &= ~(atoi (val)); -+ else -+ *((int *) &prefs + vars[i].offset) = atoi (val); -+ } -+ if (!quiet) -+ PrintTextf (sess, "%s set to: %d\n", var, -+ *((int *) &prefs + vars[i].offset)); -+ } else -+ { -+ set_showval (sess, &vars[i], tbuf); -+ } -+ break; -+ } -+ } -+ i++; -+ } -+ while (vars[i].name); -+ -+ if (!finds && !quiet) -+ PrintText (sess, "No such variable.\n"); -+ -+ return TRUE; -+} -+ -+int -+xchat_open_file (char *file, int flags, int mode, int xof_flags) -+{ -+ char buf[1024]; -+ -+ if (xof_flags & XOF_FULLPATH) -+ { -+ if (xof_flags & XOF_DOMODE) -+ return open (file, flags | OFLAGS, mode); -+ else -+ return open (file, flags | OFLAGS); -+ } -+ -+ snprintf (buf, sizeof (buf), "%s/%s", get_xdir_fs (), file); -+ if (xof_flags & XOF_DOMODE) -+ return open (buf, flags | OFLAGS, mode); -+ else -+ return open (buf, flags | OFLAGS); -+} -+ -+FILE * -+xchat_fopen_file (const char *file, const char *mode, int xof_flags) -+{ -+ char buf[1024]; -+ -+ if (xof_flags & XOF_FULLPATH) -+ return fopen (file, mode); -+ -+ snprintf (buf, sizeof (buf), "%s/%s", get_xdir_fs (), file); -+ return fopen (buf, mode); -+} -diff -urNp xchat-2.8.8.orig/src/common/xchat.h xchat-2.8.8/src/common/xchat.h ---- xchat-2.8.8.orig/src/common/xchat.h 2013-06-10 14:26:55.885425482 +0200 -+++ xchat-2.8.8/src/common/xchat.h 2013-06-10 14:27:23.748503597 +0200 -@@ -1,6 +1,7 @@ - #include "../../config.h" - - #include -+#include - #include /* need time_t */ - - #ifndef XCHAT_H diff --git a/xchat.spec b/xchat.spec deleted file mode 100644 index c81eb60..0000000 --- a/xchat.spec +++ /dev/null @@ -1,1022 +0,0 @@ -%define _default_patch_fuzz 2 -%define gconf_version 2.14 - -Summary: A popular and easy to use graphical IRC (chat) client -Name: xchat -Version: 2.8.8 -Release: 37%{?dist} -Epoch: 1 -Group: Applications/Internet -License: GPLv2+ -URL: http://www.xchat.org -Source0: http://www.xchat.org/files/source/2.8/xchat-%{version}.tar.xz - -# http://sourceforge.net/p/xchat/bugs/1504/ -Source1: hicolor_apps_16x16_%{name}.png -Source2: hicolor_apps_22x22_%{name}.png -Source3: hicolor_apps_24x24_%{name}.png -Source4: hicolor_apps_32x32_%{name}.png -Source5: hicolor_apps_48x48_%{name}.png -Source6: hicolor_apps_256x256_%{name}.png -Source7: %{name}.svg - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - -# Patches 0-9 reserved for official xchat.org patches - -Patch12: xchat-1.8.7-use-sysconf-to-detect-cpus.patch -# see #241923 & #880672 -Patch35: xchat-2.8.8-notifications-and-tray.patch -# Upstream XChat 2.8.6 defaults to Latin1 (what upstream calls the "IRC" -# encoding). Default to UTF-8 instead (as previous versions did, at least when -# running under a UTF-8 locale). -# Both the "IRC" and "UTF-8" settings will try to accept both Latin1 and UTF-8 -# when it comes in, however "IRC" sends Latin1, "UTF-8" sends UTF-8. -Patch41: xchat-2.8.6-default-utf8.patch -# patch to add ability to change to tab with most recent activity -# See http://sourceforge.net/tracker/?func=detail&aid=2022871&group_id=239&atid=350239 -Patch50: xchat-2.8.6-change-page-activity.patch -# add port numbers for Freenode (Debarshi Ray) -Patch51: xchat-2.8.6-freenode-ports.patch -# work with libnotify 0.7 -# https://sourceforge.net/tracker/?func=detail&aid=3109838&group_id=239&atid=100239 -Patch52: xchat-2.8.8-libnotify07.patch -# link against libnotify -# https://sourceforge.net/tracker/?func=detail&aid=3280223&group_id=239&atid=100239 -Patch53: xchat-2.8.8-link-against-libnotify.patch -# Only glib.h can be included and g_thread_init should no longer be used -Patch54: xchat-2.8.8-glib.patch -# http://sourceforge.net/p/xchat/bugs/1504/ -Patch55: xchat-2.8.8-hires-icons.patch -# http://sourceforge.net/p/xchat/bugs/1506/ -Patch56: xchat-2.8.8-xdg-dirs.patch -# http://sourceforge.net/p/xchat/bugs/1397/ -Patch57: xchat-2.8.8-desktop-file-name.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1091544 -Patch58: 0001-Don-t-force-the-use-of-SSLv3.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1387521 -Patch59: xchat-2.8.8-openssl-1.1.0.patch - -BuildRequires: perl-interpreter perl-devel perl-generators perl(ExtUtils::Embed) python-devel openssl-devel pkgconfig, tcl-devel -BuildRequires: GConf2-devel -BuildRequires: dbus-devel >= 0.60, dbus-glib-devel >= 0.60 -BuildRequires: glib2-devel >= 2.10.0, gtk2-devel >= 2.10.0, bison >= 1.35 -BuildRequires: gettext-devel /bin/sed -BuildRequires: libtool -BuildRequires: libntlm-devel -BuildRequires: libsexy-devel -BuildRequires: desktop-file-utils >= 0.10 -BuildRequires: libnotify-devel -# For xchat-2.8.8-link-against-libnotify.patch -BuildRequires: autoconf -BuildRequires: automake - -# For gconftool-2: -Requires(post): GConf2 >= %{gconf_version} -Requires(preun): GConf2 >= %{gconf_version} - -# For aplay: -Requires: alsa-utils - -# Ensure that a compatible libperl is installed -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) - -Provides: xchat-perl = %{epoch}:%{version}-%{release} -Obsoletes: xchat-perl < %{epoch}:%{version}-%{release} -Provides: xchat-python = %{epoch}:%{version}-%{release} -Obsoletes: xchat-python < %{epoch}:%{version}-%{release} - -%description -X-Chat is an easy to use graphical IRC chat client for the X Window System. -It allows you to join multiple IRC channels (chat rooms) at the same time, -talk publicly, private one-on-one conversations etc. Even file transfers -are possible. - -This includes the plugins to run the Perl and Python scripts. - -%package tcl -Summary: Tcl script plugin for X-Chat -Group: Applications/Internet -Requires: %{name} = %{epoch}:%{version}-%{release} -%description tcl -This package contains the X-Chat plugin providing the Tcl scripting interface. - -%prep -%setup -q -# Various small fixes from CVS that are considered safe to apply to 2.8.6. -# (currently none) - -%patch12 -p0 -b .use-sysconf-to-detect-cpus -%patch35 -p1 -b .tray-icon -%patch41 -p1 -b .default-utf8 -%patch50 -p1 -b .active-channel-switch -%patch51 -p1 -b .freenode-ports -%patch52 -p1 -b .libnotify07 -%patch53 -p1 -b .link-against-libnotify -%patch54 -p0 -b .glib -%patch55 -p1 -b .hires-icons -%patch56 -p1 -b .xdg-dirs -%patch57 -p1 -b .desktop-file-name -%patch58 -p1 -b .allow-tls -%patch59 -p1 -b .openssl-1.1.0 - -sed -i -e 's/#define GTK_DISABLE_DEPRECATED//g' src/fe-gtk/*.c - -cp -p %{SOURCE1} icons/ -cp -p %{SOURCE2} icons/ -cp -p %{SOURCE3} icons/ -cp -p %{SOURCE4} icons/ -cp -p %{SOURCE5} icons/ -cp -p %{SOURCE6} icons/ -cp -p %{SOURCE7} icons/ - -%build -# Remove CVS files from source dirs so they're not installed into doc dirs. -find . -name CVS -type d | xargs rm -rf - -export CFLAGS="$RPM_OPT_FLAGS $(perl -MExtUtils::Embed -e ccopts)" -export LDFLAGS=$(perl -MExtUtils::Embed -e ldopts) - -# For xchat-2.8.8-link-against-libnotify.patch -./autogen.sh - -%configure --disable-textfe \ - --enable-gtkfe \ - --enable-openssl \ - --enable-python \ - --enable-tcl=%{_libdir} \ - --enable-ipv6 \ - --enable-spell=libsexy \ - --enable-shm \ - --enable-ntlm - -# gtkspell breaks Input Method commit with ENTER - -make %{?_smp_mflags} - - -%install -%{__rm} -rf $RPM_BUILD_ROOT -%{__make} install DESTDIR=$RPM_BUILD_ROOT GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 - -# Get rid of libtool archives -%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/xchat/plugins/*.la - -# Install the .desktop file properly -%{__rm} -f $RPM_BUILD_ROOT%{_datadir}/applications/xchat.desktop -desktop-file-install --vendor="" \ - --dir $RPM_BUILD_ROOT%{_datadir}/applications \ - --add-category=IRCClient \ - --add-category=GTK xchat.desktop - -# Register as an application to be visible in the software center -# -# NOTE: It would be *awesome* if this file was maintained by the upstream -# project, translated and installed into the right place during `make install`. -# -# See http://www.freedesktop.org/software/appstream/docs/ for more details. -# -mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata -cat > $RPM_BUILD_ROOT%{_datadir}/appdata/%{name}.appdata.xml < - - - - xchat.desktop - CC0-1.0 - -

- XChat is an Internet Relay Chat (IRC) client. - It allows you to join multiple IRC channels at the same time, which you can view - and browse using tabs or a tree-like interface. - You can use XChat to publicly chat with people in a channel, and to have private - one-on-one conversations. - You can even transfer files with XChat! -

-

- The client includes nick completion, alerts for mentions, logging functionality, - and several customization options for fonts, sounds and colors. -

-
- http://xchat.org/ - - https://raw.githubusercontent.com/hughsie/fedora-appstream/master/screenshots-extra/xchat/a.png - - -
-EOF - -%find_lang %{name} - -# do not Provide plugins .so -%define _use_internal_dependency_generator 0 -%{__cat} << \EOF > %{name}.prov -#!%{_buildshell} -%{__grep} -v %{_docdir} - | %{__find_provides} $* \ - | %{__sed} '/\.so\(()(64bit)\)\?$/d' -EOF -%define __find_provides %{_builddir}/%{name}-%{version}/%{name}.prov -%{__chmod} +x %{__find_provides} - - -%post -# Install schema -export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -gconftool-2 --makefile-install-rule /etc/gconf/schemas/apps_xchat_url_handler.schemas >& /dev/null || : - -%postun -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans -/usr/bin/gtk-update-icon-cache -f %{_datadir}/icons/hicolor &>/dev/null || : - -%clean -%{__rm} -rf $RPM_BUILD_ROOT - -%files -f %{name}.lang -%defattr(-,root,root) -%doc README ChangeLog -%doc plugins/plugin20.html plugins/perl/xchat2-perl.html -%{_bindir}/xchat -%dir %{_libdir}/xchat -%dir %{_libdir}/xchat/plugins -%{_libdir}/xchat/plugins/perl.so -%{_libdir}/xchat/plugins/python.so -%{_datadir}/appdata/%{name}.appdata.xml -%{_datadir}/applications/xchat.desktop -%{_datadir}/icons/hicolor/*/apps/xchat.png -%{_datadir}/pixmaps/* -%{_sysconfdir}/gconf/schemas/apps_xchat_url_handler.schemas -%{_datadir}/dbus-1/services/org.xchat.service.service - -%files tcl -%defattr(-,root,root) -%{_libdir}/xchat/plugins/tcl.so - -%changelog -* Thu Aug 03 2017 Fedora Release Engineering - 1:2.8.8-37 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Thu Jul 27 2017 Fedora Release Engineering - 1:2.8.8-36 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Mon Jun 26 2017 Debarshi Ray - 1:2.8.8-35 -- Port to OpenSSL 1.1.0 (#1387521) - -* Sun Jun 04 2017 Jitka Plesnikova - 1:2.8.8-34 -- Perl 5.26 rebuild - -* Sat Feb 11 2017 Fedora Release Engineering - 1:2.8.8-33 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Tue May 17 2016 Jitka Plesnikova - 1:2.8.8-32 -- Perl 5.24 rebuild - -* Fri Feb 05 2016 Fedora Release Engineering - 1:2.8.8-31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jun 19 2015 Fedora Release Engineering - 1:2.8.8-30 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Jun 05 2015 Jitka Plesnikova - 1:2.8.8-29 -- Perl 5.22 rebuild - -* Thu Mar 26 2015 Richard Hughes - 1:2.8.8-28 -- Add an AppData file for the software center - -* Wed Oct 29 2014 Debarshi Ray - 1:2.8.8-27 -- Do not force SSLv3, also allow TLSv1_X (#1091544) - -* Wed Aug 27 2014 Jitka Plesnikova - 1:2.8.8-26 -- Perl 5.20 rebuild - -* Wed Aug 20 2014 Kevin Fenzi - 1:2.8.8-25 -- Rebuild for rpm bug 1131892 - -* Mon Aug 18 2014 Fedora Release Engineering - 1:2.8.8-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sun Jun 08 2014 Fedora Release Engineering - 1:2.8.8-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Wed May 21 2014 Jaroslav Škarvada - 1:2.8.8-22 -- Rebuilt for https://fedoraproject.org/wiki/Changes/f21tcl86 - -* Sun Aug 04 2013 Fedora Release Engineering - 1:2.8.8-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Jul 17 2013 Petr Pisar - 1:2.8.8-20 -- Perl 5.18 rebuild - -* Mon Jun 10 2013 Debarshi Ray - 1:2.8.8-19 -- Use XDG_CONFIG_HOME instead of home for config files - (http://sourceforge.net/p/xchat/bugs/1506/) -- Use name and generic name correctly in desktop file - (http://sourceforge.net/p/xchat/bugs/1397/) - -* Fri Jun 07 2013 Debarshi Ray - 1:2.8.8-18 -- Add hi-res icons (http://sourceforge.net/p/xchat/bugs/1504/) - -* Fri Feb 15 2013 Fedora Release Engineering - 1:2.8.8-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Tue Nov 27 2012 Debarshi Ray - 1:2.8.8-16 -- Make sure default settings work with gnome-shell (#880672) - -* Sun Jul 22 2012 Fedora Release Engineering - 1:2.8.8-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Mon Jun 11 2012 Petr Pisar - 1:2.8.8-14 -- Perl 5.16 rebuild - -* Sat Feb 25 2012 Bruno Wolff III - 1:2.8.8-13 -- Adjust to glib changes so that xchat will build again - -* Sat Jan 14 2012 Fedora Release Engineering - 1:2.8.8-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Dec 06 2011 Adam Jackson - 1:2.8.8-11 -- Rebuild for new libpng - -* Fri Jun 17 2011 Marcela Mašláňová - 1:2.8.8-10 -- Perl mass rebuild - -* Thu Apr 07 2011 Christopher Aillon - 1:2.8.8-9 -- Link against libnotify (#693362) - -* Thu Apr 07 2011 Christopher Aillon - 1:2.8.8-8 -- Update the dynamic libnotify check for the newer soname (#693362) - -* Mon Feb 07 2011 Fedora Release Engineering - 1:2.8.8-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Fri Dec 10 2010 Kevin Kofler - 1:2.8.8-6 -- Requires: alsa-utils for aplay (#661957) - -* Mon Nov 15 2010 Owen Taylor - 1:2.8.8-5 -- Add patch to work with libnotify-0.7 - -* Tue Jul 27 2010 Mamoru Tasaka - 1:2.8.8-4 -- Rebuild against python 2.7 - -* Thu Jun 03 2010 Kevin Kofler - 1:2.8.8-3 -- Rebuild again for perl-5.12.0 - -* Thu Jun 03 2010 Kevin Kofler - 1:2.8.8-2 -- --enable-ntlm (no longer enabled by default) - -* Thu Jun 03 2010 Kevin Kofler - 1:2.8.8-1 -- Update to 2.8.8 (#597735) -- Use xz tarball (new in 2.8.8) -- Drop smallfixes, redhat-desktop (remaining part), shm-pixmaps and - connect-mnemonic patches (all fixed upstream) - -* Wed Jun 02 2010 Marcela Maslanova - 1:2.8.6-18 -- Mass rebuild with perl-5.12.0 - -* Wed Apr 21 2010 Kevin Kofler - 1:2.8.6-17 -- Add port numbers for Freenode (Debarshi Ray) - -* Fri Apr 09 2010 Rudolf Kastl - 1:2.8.6-16 -- Added IRCClient .desktop file subcategory (#485306) -- Added GTK .desktop file subcategory -- Added curly brackets to the name macro for consistency. - -* Wed Dec 16 2009 Kevin Fenzi - 1:2.8.6-15 -- Add patch to allow switching to next channel with activity. - -* Mon Dec 7 2009 Stepan Kasal - 1:2.8.6-14 -- rebuild against perl 5.10.1 - -* Thu Sep 10 2009 Christopher Aillon - 1:2.8.6-13 -- Drop the antiquated OPN reference - -* Fri Aug 21 2009 Tomas Mraz - 1:2.8.6-12 -- rebuilt with new openssl - -* Mon Jul 27 2009 Fedora Release Engineering - 1:2.8.6-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Sat Jul 18 2009 Kevin Kofler - 1:2.8.6-10 -- Fixed patch for the "C_onnect" issue (#512034, Edward Sheldrake) - -* Thu Jul 16 2009 Kevin Kofler - 1:2.8.6-9 -- Fix literal underscore in "C_onnect" button (#512034, Matthias Clasen) - -* Mon Jun 29 2009 Kevin Kofler - 1:2.8.6-8 -- Change Name in xchat.desktop to XChat IRC (#293841) - -* Thu Feb 26 2009 Fedora Release Engineering - 1:2.8.6-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Tue Feb 10 2009 Kevin Kofler - 1:2.8.6-6 -- fix filtering of Provides on lib64 architectures - -* Fri Jan 16 2009 Kevin Kofler - 1:2.8.6-5 -- rebuild for new OpenSSL - -* Sun Nov 30 2008 Ignacio Vazquez-Abrams - 1:2.8.6-4 -- Rebuild for Python 2.6 - -* Mon Aug 11 2008 Kevin Kofler - 1:2.8.6-3 -- rebuild for fixed redhat-rpm-config (#450271) - -* Mon Jul 14 2008 Kevin Kofler - 1:2.8.6-2 -- apply xc286-smallfixes.diff from upstream -- don't #define GTK_DISABLE_DEPRECATED (fixes build against current GTK+) - -* Sun Jun 15 2008 Kevin Kofler - 1:2.8.6-1 -- update to 2.8.6 -- drop upstream patches (already applied in 2.8.6) -- set default charset to UTF-8 (2.8.6 changed it to Latin1) - -* Thu May 22 2008 Kevin Kofler - 1:2.8.4-16 -- fix more bugs in xchat-2.8.4-shm-pixmaps.patch (#282691) - -* Tue Apr 1 2008 Kevin Kofler - 1:2.8.4-15 -- remove --disable-panel which has been ignored since 2.0.0 -- add missing BR libntlm-devel (thanks to Karsten Hopp) - -* Mon Mar 3 2008 Tom "spot" Callaway - 1:2.8.4-14 -- rebuild for new perl - -* Mon Feb 18 2008 Christopher Aillon - 1:2.8.4-13 -- Rebuild to celebrate my birthday (and GCC 4.3) - -* Tue Feb 5 2008 Tom "spot" Callaway - 1:2.8.4-12 -- rebuild for new perl - -* Sat Jan 19 2008 Kevin Kofler - 1:2.8.4-11 -- fix bug in xchat-2.8.4-shm-pixmaps.patch (Adam Jackson, #429218) - -* Thu Jan 3 2008 Christopher Aillon 1:2.8.4-10 -- Rebuild - -* Thu Dec 20 2007 Adam Jackson 1:2.8.4-9 -- xchat-2.8.4-shm-pixmaps.patch: MIT-SHM pixmaps are optional, and when - using EXA they are not available. Check that the server supports them - before trying to create them so we don't crash. - -* Wed Dec 19 2007 Kevin Kofler - 1:2.8.4-8 -- apply xc284-fix-scrollbfdleak.diff from upstream - -* Wed Dec 5 2007 Christopher Aillon - 1:2.8.4-7 -- Fix the icon key in the .desktop file to validate - -* Sat Oct 13 2007 Kevin Kofler - 1:2.8.4-6 -- drop obsolete xchat-2.4.4-unrealize.patch (fixed upstream for a while) -- drop broken xchat-2.4.3-im_context_filter_keypress.patch (#295331) - -* Wed Sep 26 2007 Kevin Kofler - 1:2.8.4-5 -- apply xc284-improvescrollback.diff from upstream - -* Thu Aug 23 2007 Remi Collet - 1:2.8.4-4.fc8.1 -- F-8 rebuild (BuildID) - -* Sat Aug 11 2007 Kevin Kofler - 1:2.8.4-4 -- add missing BR perl(ExtUtils::Embed) - -* Fri Aug 3 2007 Kevin Kofler - 1:2.8.4-3 -- specify GPL version in License tag - -* Tue Jul 10 2007 Kevin Kofler - 1:2.8.4-2 -- apply xc284-scrollbmkdir.diff from upstream - -* Wed Jul 4 2007 Kevin Kofler - 1:2.8.4-1 -- update to 2.8.4 -- drop xc282-fixtrayzombies.diff (already in 2.8.4) -- rebase redhat-desktop and tray-icon patches - -* Fri Jun 22 2007 Kevin Kofler - 1:2.8.2-12 -- install the .desktop file with --vendor="" to keep the old name - -* Thu Jun 21 2007 Kevin Kofler - 1:2.8.2-11 -- add missing BR desktop-file-utils - -* Thu Jun 21 2007 Kevin Kofler - 1:2.8.2-10 -- remove Application; and X-Red-Hat-Extras; categories from .desktop file - (merge review #226551) -- install the .desktop file properly (merge review #226551) - -* Tue Jun 12 2007 Kevin Kofler - 1:2.8.2-9 -- build against system libsexy instead of static sexy-spell-entry now that this - is possible (Core-Extras merge) - -* Sat Jun 2 2007 Kevin Kofler - 1:2.8.2-8 -- disable tray icon by default (#241923) - -* Thu May 31 2007 Kevin Kofler - 1:2.8.2-7 -- revert to redhat-desktop patch pending further discussion - -* Thu May 31 2007 Kevin Kofler - 1:2.8.2-6 -- apply xc282-fixtrayzombies.diff from upstream - -* Wed May 30 2007 Kevin Kofler - 1:2.8.2-5 -- remove Requires: gtkspell as gtkspell is not currently being used - -* Mon May 28 2007 Kevin Kofler - 1:2.8.2-4 -- set explicit libdir for Tcl so it's found on lib64 arches (Remi Collet) -- move Tcl plugin into subpackage - (not an incompatible change as this was not built in f7-final at all) - -* Mon May 28 2007 Kevin Kofler - 1:2.8.2-3 -- use versioned Provides/Obsoletes to allow future package split - -* Mon May 28 2007 Kevin Kofler - 1:2.8.2-2 -- merge updates by Remi Collet and Marius Feraru (#224180) -- mention Tcl in description -- add release and user name to buildroot -- follow desktop-entry-spec on Name and GenericName as required by the Packaging - Guidelines -- drop BR gtkspell-devel as it's not currently used - -* Thu Apr 5 2007 Remi Collet - 1:2.8.2-1.fc6.remi -- update to 2.8.2 - -* Sat Mar 24 2007 Matthias Clasen - 1:2.6.6-9 -- Own /usr/lib/xchat (#166731) - -* Thu Jan 25 2007 Marius Feraru - 1:2.8.0-1.n0i.1 -- version 2.8.0 -- disabled some patches: nonblock, locale (fi, es) -- enabled fast tinting -- fixed "exchant" typo -- switched to using the "make install" (DESTDIR works) -- simplified gconf schema disabling method -- dropped plugins mover -- updated "Get rid of static libs" -- dropped xchat-remote -- updated build requirements -- dropped "default-webbrowser" patches (xchat tries to do it better now) -- do not provide "perl.so", "python.so", etc -- own everything under %%{_libdir}/xchat -- converted spec file to UTF8 -- fixed desktop entry category (dropping "Application") -- keep plugins documentation - -* Tue Jan 16 2007 Remi Collet - 1:2.8.0-2.fc6.remi -- add Provides/Osboletes for extensions (split RPM available on xchat.org). -- longer description -- enable tcl extension -- Requires gtk >= 2.10.0 - -* Mon Jan 15 2007 Remi Collet - 1:2.8.0-1.fc6.remi -- update to 2.8.0 -- add upstream patches (xc280-fix-back.diff, xc280-fix-ja.diff) - -* Fri Nov 3 2006 Matthias Clasen - 1:2.6.6-8 -- Silence %%pre (#213838) - -* Wed Oct 18 2006 Matthias Clasen - 1:2.6.6-7 -- Fix scripts according to packaging guidelines - -* Tue Oct 17 2006 Matthias Clasen - 1:2.6.6-6 -- Tighten up Requires (#203813) - -* Sat Oct 7 2006 David Woodhouse - 1:2.6.6-5 -- Fix nonblocking SSL socket behaviour - -* Mon Aug 28 2006 Warren Togami - 1:2.6.6-4 -- add upstream 2.6.6 es patch - -* Wed Aug 23 2006 Warren Togami - 1:2.6.6-3 -- enable optional spell checking if you install enchant - because gtkspell is currently unusable (#201116) - -* Thu Aug 17 2006 Warren Togami - 1:2.6.6-2 -- disable gtkspell because it breaks Input Method commit -- apply upstream fi patch - -* Wed Aug 2 2006 Marc Deslauriers - 1:2.6.6-1 -- Update to 2.6.6 -- Removed upstreamed dbus patch -- Enabled gtkspell support - -* Wed Jul 19 2006 Matthias Clasen - 1:2.6.0-6 -- Rebuild against dbus - -* Mon May 22 2006 Jesse Keating - 1:2.6.0-5 -- Adding missing buildreq (bz:191577, thanks Paul F.) - -* Sun Feb 12 2006 Christopher Aillon - 1:2.6.0-4 -- Rebuild - -* Tue Feb 07 2006 Jesse Keating - 1:2.6.0-3.2 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Fri Dec 09 2005 Jesse Keating - 1:2.6.0-3.1 -- rebuilt - -* Thu Dec 01 2005 John (J5) Palmieri - 1:2.6.0-3 -- rebuild for new dbus - -* Tue Nov 15 2005 Florian La Roche 1:2.6.0-2 -- Require(post): GConf2 - -* Thu Nov 10 2005 Christopher Aillon 1:2.6.0-1 -- Update to 2.6.0 - -* Wed Nov 9 2005 Christopher Aillon 1:2.4.5-2 -- Rebuild against newer openssl - -* Mon Sep 19 2005 Christopher Aillon 1:2.4.5-1 -- X-Chat 2.4.5 - -* Wed Aug 17 2005 Matthias Clasen 1:2.4.4-3 -- Fix a bug that could lead to occasional crashes - -* Mon Aug 15 2005 Christopher Aillon 1:2.4.4-2 -- Rebuild - -* Sun Jun 26 2005 Christopher Aillon 1:2.4.4-1 -- Update to xchat-2.4.4 - -* Sun May 15 2005 Warren Togami 1:2.4.3-3 -- Prevent interception of down arrow during Input Method (#144588 tagoh) - -* Thu Apr 14 2005 Warren Togami 1:2.4.3-2 -- fix plugins on lib64 (#113188 Ville Skytta) - -* Sun Apr 03 2005 Warren Togami 1:2.4.3-1 -- 2.4.3, use perl MODULE_COMPAT - -* Mon Mar 28 2005 Christopher Aillon 1:2.4.2-3 -- Fix crash when right clicking users whose away msg is unknown. - -* Fri Mar 25 2005 Christopher Aillon 1:2.4.2-2 -- Add user's away message to right click menu, if known - -* Thu Mar 17 2005 Christopher Aillon 1:2.4.2-1 -- Update to 2.4.2 - -* Sat Mar 5 2005 Christopher Aillon 1:2.4.1-4 -- Rebuild against GCC 4.0 - -* Tue Jan 18 2005 Chip Turner 1:2.4.1-3 -- rebuild for new perl - -* Tue Jan 4 2005 Christopher Aillon 1:2.4.1-2 -- Add Dan Reed's CTCP patch to support multiline messages (#136545) - -* Tue Nov 23 2004 Christopher Aillon 1:2.4.1-1 -- Update to 2.4.1 - -* Mon Sep 20 2004 Daniel Reed 1:2.4.0-3 -- #132967 Remove GenericName - -* Tue Aug 17 2004 Daniel Reed 1:2.4.0-2 -- #125846 Change xchat.desktop names to "IRC" - -* Sun Aug 15 2004 Christopher Aillon 1:2.4.0-1 -- Update to 2.4.0 -- Fix simplify-to-use-gnome-open and simplify-to-use-htmlview patches - to not conflict every time upstream modifies the urlhandler list. -- Remove focus and tab completion patches (no longer needed) - -* Mon Jul 26 2004 Christopher Aillon 1:2.0.10-3 -- Update upstream patch to fix tab completion crash -- Add upstream patch to fix focus crash on some window managers. - -* Fri Jul 9 2004 Mike A. Harris 1:2.0.10-2 -- Added upstream xc2010-fixtabcomp.diff patch to fix SEGV in tab completion - -* Sat Jul 03 2004 Christopher Aillon 1:2.0.10-1 -- Update to 2.0.10 - -* Wed Jun 23 2004 Christopher Aillon 1:2.0.9-1 -- Update to 2.0.9 -- Fixed the URL handler menu patches to apply. - -* Tue Jun 15 2004 Elliot Lee -- rebuilt - -* Tue Mar 9 2004 Mike A. Harris 1:2.0.7-5 -- Bump and rebuild for Fedora devel, to sync up with new perl -- Remove require_autoconf conditional, and conditionalized autoconf BuildRequires - -* Fri Mar 5 2004 Mike A. Harris 1:2.0.7-4 -- Added xchat-2.0.7-simplify-to-use-gnome-open-for-default-webbrowser.patch - and xchat-2.0.7-simplify-to-use-htmlview-for-default-webbrowser.patch to - simplify the default URL handler menu to point only to the default system - web browser by using gnome-open on Fedora Core 2 and later, or htmlview - on earlier OS releases. This is added to improve user friendliness (#82331) - -* Tue Mar 02 2004 Elliot Lee -- rebuilt - -* Tue Feb 17 2004 Mike A. Harris 1:2.0.7-1.FC1.0 -- Rebuild xchat 2.0.7-3 as 2.0.7-1.FC1.0 for release as an enhancement erratum - for Fedora Core 1. Also fixes AMD64 64bit issues reported in bug (#114237) - -* Fri Feb 13 2004 Elliot Lee 1:2.0.7-3 -- rebuilt - -* Mon Jan 26 2004 Jeremy Katz 1:2.0.7-2 -- rebuild for new perl version - -* Sat Jan 10 2004 Mike A. Harris 1:2.0.7-1 -- Updated to xchat 2.0.7 -- Removed already integrated patches, including: xc204-fixperlui.diff, - xchat-2.0.4-screen-position-fix.patch, xchat-2.0.4-exec-shield-GNU-stack.patch -- Added a new rpm macro require_autoconf, which is disabled (0) by default, as - it seems no longer necessary to run autoconf prior to ./configure, so we no - longer need to BuildRequire autoconf 2.54 either. - -* Fri Oct 24 2003 Mike A. Harris 2.0.4-4 -- Added xchat-2.0.4-exec-shield-GNU-stack.patch from Arjan, to allow xchat to - be be protected by exec shield if the system has exec-shield enabled. - -* Fri Sep 19 2003 Mike A. Harris 2.0.4-3.EL -- Rebuilt 2.0.4-3 for Taroon as 2.0.4-3.EL - -* Fri Sep 19 2003 Mike A. Harris 2.0.4-3 -- Added xchat-2.0.4-screen-position-fix.patch to fix problem where xchat - doesn't remember it's screen location between invocations (#103896) - -* Sat Aug 30 2003 Mike A. Harris 2.0.4-2 -- Updated xchat-2.0.4-redhat-desktop-file.patch - -* Thu Aug 28 2003 Mike A. Harris 2.0.4-1 -- Updated to xchat 2.0.4 -- Removed unneeded patches xc203-fixtint.diff, xc203-fix-cps.diff -- Added upstream patch xc204-fixperlui.diff -- Updated autoconf dependancy to version 2.54 and greater as xchat wont - compile otherwise. Meaning Red Hat Linux 9 or higher is needed. - -* Tue Jul 22 2003 Nalin Dahyabhai 2.0.3-4 -- rebuild - -* Mon Jul 14 2003 Chip Turner -- rebuild for new perl 5.8.1 - -* Thu Jul 10 2003 Mike A. Harris 2.0.3-2 -- Added xc203-fix-cps.diff patch from upstream to fix cps calculation -- TCL plugin was getting built even though we don't want it, so now we pass - --enable-tcl or --disable-tcl explicitly, depending on with_tclplugin macro - -* Mon Jun 30 2003 Mike A. Harris 2.0.3-1.EL -- Rebuilt 2.0.3-1 as 2.0.3-1.EL for Red Hat Enterprise Linux development - -* Mon Jun 30 2003 Mike A. Harris 2.0.3-1 -- Updated to xchat 2.0.3 -- Dropped old patches: xc202-fixdetach.diff, xc202-fixurlg.diff, - xchat-2.0.2-lib64-cleanup-for-python.patch -- Added upstream patch: xc203-fixtint.diff - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Thu May 29 2003 Mike A. Harris 2.0.2-7 -- Added back BuildRequires autoconf, and call autoconf prior to ./configure - as it seems to make xchat build successfully. Have not bothered to figure - out why calling autoconf is needed. Something for a rainy day. - -* Thu May 29 2003 Mike A. Harris 2.0.2-6 -- Removed gnome-libs BuildRequires as it is bogus now -- Removed autoconf BuildRequires and usage, as it should be unneeded -- Added new BuildRequires on gettext, bison >= 1.35, glib2-devel >= 2.0.3, - gtk2-devel >= 2.0.3, /bin/sed (#91676 - Warren Togami) -- Removed dead patches: xchat-1.8.9-perlcrypt.patch, xchat-1.8.9-korean-fontset.patch - -* Wed May 21 2003 Mike A. Harris 2.0.2-5 -- Removed xchat.desktop file, as it was earlier replacedwith a patch -- Converted xchat-2.0.2-redhat-desktop-file.patch to be UTF-8 clean now, - instead of the various random legacy mix of encodings it was, updating - the following: es, ko, uk, zh_TW - -* Tue May 20 2003 Mike A. Harris 2.0.2-4 -- Replace explicit perl package name-epoch-version Requires added in 2.0.2-3 - with a more robust and generic solution of querying perl for the archlibexp - dir during building, and requiring it instead - -* Tue May 20 2003 Bill Nottingham 2.0.2-3 -- rebuild against new (old?) perl, add epoch to dependency - -* Sat May 17 2003 Mike A. Harris 2.0.2-1 -- Updated to new xchat 2.0.2 based on GTK2 -- Dropped unneeded patches xchat-1.8.1-konqueror.patch, - xchat-1.8.4-fix-USE_GNOME.patch -- Updated xchat-2.0.2-freenode.patch to refer to Openprojects.net -- Removed doc/xchat.sgml doc/*.html scripts-python scripts-perl from %%doc -- Added xchat-2.0.2-redhat-desktop-file.patch to patch the supplied xchat - desktop file, instead of replacing it and trying to stay in sync -- Added xchat-2.0.2-lib64-cleanup-for-python.patch which fixes build problems - on lib64 archs, and replaces xchat-multilib.patch -- Added with_tclplugin macro and default it to disabled - -* Mon Mar 17 2003 Mike A. Harris 1.8.11-8 -- Added xchat-1.8.11-nickall.patch which was written by Fabio Olive Leite, - sent to me by Rik van Riel - -* Wed Feb 19 2003 Bill Nottingham 1.8.11-7 -- ship single desktop in %{_datadir}/applications, not /etc/X11/applnk - -* Fri Jan 31 2003 Mike A. Harris 1.8.11-6 -- Added xchat-1.8.11-freenode.patch to rename all openprojects.net entries - to freenode.net in the default server list. Patch courtesy of Dan Burcaw - from bug (#81704) - -* Wed Jan 22 2003 Mike A. Harris 1.8.11-5 -- Removed double .desktop file (#81874,82315) - -* Wed Jan 22 2003 Tim Powers 1.8.11-4 -- rebuilt - -* Tue Jan 7 2003 Mike A. Harris 1.8.11-3 -- Add bugfix from xchat.org xc1811fixststint.diff - -* Tue Jan 7 2003 Mike A. Harris 1.8.11-2 -- Remove CVS files from source dirs so they're not installed into doc dirs. - -* Tue Jan 7 2003 Mike A. Harris 1.8.11-1 -- Update to xchat 1.8.11 bugfix release, fixes various runtime crashes -- Remove now included patches: xchat-1.8.10-urlhandler-open-in-new-tab.patch, - xchat-1.8.10-beep-beep-beep.patch - -* Tue Jan 7 2003 Nalin Dahyabhai 1.8.10-13 -- Pick up OpenSSL configuration from pkgconfig, if available -- Add openssl-devel and pkgconfig as buildreqs - -* Wed Dec 11 2002 Elliot Lee 1.8.10-12 -- Fix broken libpython path on multilibbed systems (patch13) -- _smp_mflags - -* Tue Nov 26 2002 Mike A. Harris 1.8.10-11 -- Added xchat-1.8.10-urlhandler-open-in-new-tab.patch to offer the option of - opening a URL in a new tab of an existing browser window rather than a new - window - -* Sat Nov 23 2002 Mike A. Harris 1.8.10-10 -- Added BuildRequires: python-devel to hopefully pick up a missing dep - causing package build failure in timp's nightly builds. -- Removed dead patches -- Updated package summary and description to be more user friendly by - rewording, and removing scary words like GNOME, GTK and other irrelevance - -* Wed Nov 13 2002 Mike A. Harris 1.8.10-9 -- Made sure {_sysconfdir}/X11/applnk/Internet/xchat.desktop gets packaged -- Removed some conditional weirdness in %%files list. This may break xchat - erratum releases on Red Hat Linux 7.x. May need to be fixed in future. - -* Fri Aug 23 2002 Mike A. Harris 1.8.10-7 -- Added Requires line so that xchat requires the exact version of perl - be installed, that was used to compile it, since the embedded perl - interpreter will break, if you upgrade perl - -* Thu Aug 15 2002 Mike A. Harris 1.8.10-6 -- Fix Bill's beep beep beep bug (#71651) - -* Wed Aug 14 2002 Jonathan Blandford 1.8.10-5 -- actually install the desktop file. - -* Fri Aug 9 2002 Mike A. Harris 1.8.10-3 -- Added http://xchat.org/files/source/1.8/patches/xc1810fixme.diff to fix - bug with using /ME in a /QUERY window. (#71179) - -* Wed Aug 7 2002 Mike A. Harris 1.8.10-2 -- Updated to xchat 1.8.10 to fix a few bugs where a remote ircd could cause - the xchat client to crash. This is a bugfix only release. - -* Tue Aug 6 2002 Mike A. Harris 1.8.9-10 -- Added Korean fontset support to fix bug (#69771) - -* Mon Aug 5 2002 Mike A. Harris 1.8.9-9 -- Enabled python scripting which was somehow disabled somewhere along the - line by default in upstream sources, and we missed catching it. (#70816) - -* Sun Aug 4 2002 Mike A. Harris 1.8.9-8 -- Created new-style net-xchat.desktop file (#69541) - -* Fri Jun 21 2002 Tim Powers 1.8.9-7 -- automated rebuild - -* Tue Jun 18 2002 Mike A. Harris 1.8.9-6 -- updated the package description -- Added CFLAGS and LDFLAGS export vars before configure to fix rpath problem - -* Sun May 26 2002 Tim Powers -- automated rebuild - -* Mon May 20 2002 Mike A. Harris 1.8.9-2 -- Updated to xchat 1.8.9 - -* Mon Apr 8 2002 Mike A. Harris 1.8.8-5 -- Re-enabled GNOME support due to user complaints of pixmaps missing, key - bindings, and other fairly important features no longer working. - -* Tue Mar 27 2002 Mike A. Harris 1.8.8-4 -- Disabled GNOME support since it doesn't seem too useful anyways, and forces - all xchat users to install GNOME libs even if they use KDE. (#59626) -- Updated URL and source lines in spec. - -* Wed Mar 6 2002 Mike A. Harris 1.8.8-1 -- Updated to xchat 1.8.8 - -* Tue Feb 26 2002 Mike A. Harris 1.8.7-6 -- Built in new buildroot - -* Tue Feb 5 2002 Mike A. Harris 1.8.7-5 -- Added xchat-1.8.7-use-sysconf-to-detect-cpus.patch to use glibc's sysconf() - to detect the number of processors available. - -* Mon Feb 4 2002 Mike A. Harris 1.8.7-4 -- Enabled IPv6 support as per the request for enhancement (#52124) - -* Thu Jan 24 2002 Mike A. Harris 1.8.7-3 -- Rebuilt in new build environment - -* Thu Jan 10 2002 Mike A. Harris 1.8.7-2 -- Updated to xchat 1.8.7 -- New release fixes security vulnerability in CTCP reply -- Built erratum for all supported releases (1.8.7-1.62.0, 1.8.7-1.70.0, - 1.8.7-1.71.0, 1.8.7-1.72.0) -- Removed konqueror patch as it is integrated now. - -* Sat Jan 5 2002 Mike A. Harris 1.8.6-2 -- Enabled ssl support with --enable-openssl -- Also built releases 1.72.0, 1.71.0, 1.70.0, 1.62.0 for erratum release - -* Mon Dec 10 2001 Mike A. Harris 1.8.6-1 -- Updated to xchat 1.8.6 - -* Tue Nov 13 2001 Mike A. Harris 1.8.5-1 -- Updated to xchat 1.8.5 -- Added f to rm -r in install and clean sections - -* Sun Oct 7 2001 Mike A. Harris 1.8.4-1 -- Updated to 1.8.4, now using tar.bz2 -- Removed kanjiconv-fix patch as it is integrated now -- Added xchat-1.8.4-fix-USE_GNOME.patch to fix simple ifdef USE_GNOME typo - -* Fri Jul 13 2001 Akira TAGOH 1.8.1-2 -- fixed check locale. -- don't save kanji_conv. - always check locale. however anyone can change the option from - the settings menu. - -* Thu Jul 12 2001 Havoc Pennington -- upgrade to 1.8.1 -- remove autoconnect patch since it's upstream -- remove japanese patch, upstream seems to have applied - parts of it and changelog says there's upstream support. - (this patch was pretty huge to maintain in an SRPM anyway...) -- put scripts-python scripts-perl in docs bug #28521 -- remove patch to include locale.h, gone upstream -- upgrade konqueror patch - -* Thu Jul 12 2001 Havoc Pennington -- nevermind, BuildRequires gnome-libs, that should - close #48923 - -* Thu Jul 12 2001 Havoc Pennington -- fix file list to not include absolute path "/usr/share/..." - no idea how that ever worked at all. closes #48923 - -* Mon Jun 25 2001 Karsten Hopp -- use konqueror, not kfmclient on URLs - -* Fri Feb 23 2001 Trond Eivind Glomsrød -- langify -- use %%{_tmppath} -- make it compile - -* Tue Feb 13 2001 Akira TAGOH -- Added Japanese patch. - -* Tue Feb 13 2001 Havoc Pennington -- patch that may fix autoconnections (bug 27093) - -* Mon Jan 22 2001 Havoc Pennington -- 1.6.3 -- remove patch to desktop file (Internet->Application), seems to - have gone upstream - -* Sat Dec 9 2000 Havoc Pennington -- Remove security fix which has been merged upstream -- upgrade to 1.6.1 - -* Sat Aug 19 2000 Havoc Pennington -- Don't use /bin/sh to interpret URLs from the net - -* Fri Aug 11 2000 Jonathan Blandford -- Updated Epoch - -* Thu Jul 13 2000 Prospector -- automatic rebuild - -* Mon Jun 19 2000 Havoc Pennington -- Install HTML docs - -* Fri Jun 16 2000 Preston Brown -- fix desktop entry - -* Fri May 19 2000 Havoc Pennington -- rebuild for the Winston tree, update to 1.4.2 diff --git a/xchat.svg b/xchat.svg deleted file mode 100644 index c7055d8..0000000 --- a/xchat.svg +++ /dev/null @@ -1,1802 +0,0 @@ - - - - - Pidgin - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - Jakub Steiner - - - http://jimmac.musichall.cz - - Pidgin - - - pidgin - im - instant - messaging - - - - - - - - - - - - - - - - - - - - - Hylke Bons, Lapo Calamandrei - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -