summaryrefslogtreecommitdiffstats
path: root/abs/extra/xchat
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2013-02-19 21:10:18 (GMT)
committerJames Meyer <james.meyer@operamail.com>2013-02-19 21:10:18 (GMT)
commit2648e999d277eac5c3d331a3609bcc73fafbea71 (patch)
tree40951fb8e7fdbe28a0baa324ae615055203f1e2e /abs/extra/xchat
parentc759b5e0c4aa6fc37412b4dee2cf9ad993fd376d (diff)
parent7e6f7ca174e1af67178dc5293a312a4a733eb095 (diff)
downloadlinhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.zip
linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.gz
linhes_pkgbuild-2648e999d277eac5c3d331a3609bcc73fafbea71.tar.bz2
Merge branch 'testing'
# By James Meyer (1091) and others # Via James Meyer (5) and others * testing: (1148 commits) LinHES-config: during install don't kill off lirc. This keeps the remote active all the way to the finish Change version numbers to 8.0 to match the release number. LinHES-conifg LinHES-system mythdb-initial runit-scripts supplemental-web LinHES-conifig: mv_install.py for the last partition don't go all the way to the end. Gotta leave room for gpt tables. xf86-video-ati: xorg ati driver. LinHES-config: timezip.py add syncing up of parental lvl passwords and starting level with MBE. LinHES-system: correct the logic for breaking out of the wmctrl loop. As written it would break out of the inner loop..but not the 60 iteration loop. e16_theme_settings: remove slide-in prop for new windows. For whatever reason this was preventing mplayer from being positioned correctly for appletrailers. LinHES-config, mythinstall: change case of hd_pvr and serial to all lower refs #902 zilog-firmware: firmware for TX support of the hdpvr and pvr-150 In general I can't recommend anybody using these transmitters but including the firmware just in case someone really wants to linhes-udev-rules: added hdprv_lirc rule. All of these lirc rules are limited to exactly one device. If more then one device is present then only the last device in init will get the symlink runit-scripts: fix logging for igdeamon, add support to remote init script so that the blaster is always the first device in the chain. added support specificly for hd_pvr LinHES-system: add lh_system_restore and lh_system_backup. These scripts are called from the mythmenu. refs #900 iguanair: rebuild with python 2.7 LinHES-system: msg_daemon.py fix init and nasty bug related to timeout. In a nutshell timeout wouldn't work unless a msg without a timeout was called first. linhes-udev-rules: add rules for mce,streamzap,serial lirc devices. mythinstall: recompile for matching libs mythtv: latest .25-fixes and change mythbackup/restore call lh_system_$op to replace mythbackup/mythrestore. mythbackup no longer works correctly with the new windowmanager linhes-scripts: myth2mp3, myth2x264, myth2xvid: use mythutil to get cutlist LinHES-config, supplimental-web: Fix proxy numbering for Ceton infiniTV linhes-system: add additional stuff to the system backup and also introduced an exclude file. The exclude/include files are locate in /home/mythtv/backup_config/ ...
Diffstat (limited to 'abs/extra/xchat')
-rw-r--r--abs/extra/xchat/PKGBUILD51
-rw-r--r--abs/extra/xchat/xchat-2.8.8-glib-2.31.patch62
-rw-r--r--abs/extra/xchat/xchat-2.8.8-libnotify07.patch24
-rw-r--r--abs/extra/xchat/xchat-2.8.8-link-against-libnotify.patch343
-rw-r--r--abs/extra/xchat/xchat.install11
5 files changed, 491 insertions, 0 deletions
diff --git a/abs/extra/xchat/PKGBUILD b/abs/extra/xchat/PKGBUILD
new file mode 100644
index 0000000..b642e6a
--- /dev/null
+++ b/abs/extra/xchat/PKGBUILD
@@ -0,0 +1,51 @@
+# $Id: PKGBUILD 160583 2012-06-02 10:29:13Z bluewind $
+# Maintainer: Eric BĂ©langer <eric@archlinux.org>
+
+pkgname=xchat
+pkgver=2.8.8
+pkgrel=10
+pkgdesc="A GTK+ based IRC client"
+arch=('i686' 'x86_64')
+url="http://www.xchat.org/"
+license=('GPL')
+depends=('gtk2' 'openssl' 'dbus-glib' 'libnotify' 'hicolor-icon-theme')
+makedepends=('tcl' 'perl' 'python2' 'librsvg')
+optdepends=('enchant: for spell checking support' 'tcl: for tcl plugin'
+ 'python2: for python plugin')
+options=('!libtool')
+install=xchat.install
+source=(http://www.xchat.org/files/source/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz
+ http://xchat.org/files/icons/xchat-svg.tar.bz2
+ xchat-2.8.8-libnotify07.patch
+ xchat-2.8.8-link-against-libnotify.patch
+ xchat-2.8.8-glib-2.31.patch)
+sha1sums=('e12305da42d1aacc26c2ca25e239f393d4dd3532'
+ '0d366346cc11e0efb57fc2648fe423c94a3469bd'
+ 'a053fba4e1911d1ee6a8248fe19e344797920fe3'
+ '70c3cc29fc55ff35f701ef8ac23078b6e3761ce1'
+ 'aecaf6176a7cfd62555207b02f2793b360aa39da')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -p1 -i "${srcdir}/xchat-2.8.8-libnotify07.patch"
+ patch -p1 -i "${srcdir}/xchat-2.8.8-link-against-libnotify.patch"
+ patch -p1 -i "${srcdir}/xchat-2.8.8-glib-2.31.patch"
+ autoconf
+ autoheader
+
+ LIBS+="-lgmodule-2.0" ./configure --prefix=/usr --sysconfdir=/etc --datadir=/usr/share \
+ --enable-openssl --enable-dbus --disable-textfe --enable-ipv6 --enable-shm --enable-spell=static
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ for i in 24 32 48 64 128 256 ; do
+ install -d "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps"
+ rsvg-convert -w $i -h $i -o "${pkgdir}/usr/share/icons/hicolor/${i}x${i}/apps/xchat.png" ../xchat-cloned.svg
+ done
+ install -D -m644 ../xchat-cloned.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/xchat.svg"
+ install -D -m644 ../xchat-used.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/xchat2.svg"
+}
diff --git a/abs/extra/xchat/xchat-2.8.8-glib-2.31.patch b/abs/extra/xchat/xchat-2.8.8-glib-2.31.patch
new file mode 100644
index 0000000..63f562f
--- /dev/null
+++ b/abs/extra/xchat/xchat-2.8.8-glib-2.31.patch
@@ -0,0 +1,62 @@
+Author: Dominique Leuenberger <dimstar@opensuse.org>
+
+http://sourceforge.net/tracker/?func=detail&aid=3446968&group_id=239&atid=100239
+
+glib got stricter in checking includes. Only glib.h (and a few exceptions)
+are to be included directly.
+
+Index: xchat-2.8.8/src/common/servlist.c
+===================================================================
+--- xchat-2.8.8.orig/src/common/servlist.c
++++ xchat-2.8.8/src/common/servlist.c
+@@ -24,7 +24,7 @@
+ #include <unistd.h>
+
+ #include "xchat.h"
+-#include <glib/ghash.h>
++#include <glib.h>
+
+ #include "cfgfiles.h"
+ #include "fe.h"
+Index: xchat-2.8.8/src/common/text.c
+===================================================================
+--- xchat-2.8.8.orig/src/common/text.c
++++ xchat-2.8.8/src/common/text.c
+@@ -28,7 +28,7 @@
+ #include <sys/mman.h>
+
+ #include "xchat.h"
+-#include <glib/ghash.h>
++#include <glib.h>
+ #include "cfgfiles.h"
+ #include "chanopt.h"
+ #include "plugin.h"
+Index: xchat-2.8.8/src/common/util.c
+===================================================================
+--- xchat-2.8.8.orig/src/common/util.c
++++ xchat-2.8.8/src/common/util.c
+@@ -39,7 +39,7 @@
+ #include <errno.h>
+ #include "xchat.h"
+ #include "xchatc.h"
+-#include <glib/gmarkup.h>
++#include <glib.h>
+ #include <ctype.h>
+ #include "util.h"
+ #include "../../config.h"
+Index: xchat-2.8.8/src/common/xchat.h
+===================================================================
+--- xchat-2.8.8.orig/src/common/xchat.h
++++ xchat-2.8.8/src/common/xchat.h
+@@ -1,10 +1,6 @@
+ #include "../../config.h"
+
+-#include <glib/gslist.h>
+-#include <glib/glist.h>
+-#include <glib/gutils.h>
+-#include <glib/giochannel.h>
+-#include <glib/gstrfuncs.h>
++#include <glib.h>
+ #include <time.h> /* need time_t */
+
+ #ifndef XCHAT_H
diff --git a/abs/extra/xchat/xchat-2.8.8-libnotify07.patch b/abs/extra/xchat/xchat-2.8.8-libnotify07.patch
new file mode 100644
index 0000000..2a6dce9
--- /dev/null
+++ b/abs/extra/xchat/xchat-2.8.8-libnotify07.patch
@@ -0,0 +1,24 @@
+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/abs/extra/xchat/xchat-2.8.8-link-against-libnotify.patch b/abs/extra/xchat/xchat-2.8.8-link-against-libnotify.patch
new file mode 100644
index 0000000..31e6c08
--- /dev/null
+++ b/abs/extra/xchat/xchat-2.8.8-link-against-libnotify.patch
@@ -0,0 +1,343 @@
+From: Christopher Aillon <caillon@redhat.com>
+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 <gtk/gtk.h>
+
+-#define LIBNOTIFY
++#ifdef USE_LIBNOTIFY
++#include <libnotify/notify.h>
++#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/abs/extra/xchat/xchat.install b/abs/extra/xchat/xchat.install
new file mode 100644
index 0000000..eab82d1
--- /dev/null
+++ b/abs/extra/xchat/xchat.install
@@ -0,0 +1,11 @@
+post_install() {
+ gtk-update-icon-cache -q -t -f usr/share/icons/hicolor
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+post_remove() {
+ post_install $1
+}