Hello community, here is the log from the commit of package xchat for openSUSE:12.1 checked in at 2011-10-27 11:37:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:12.1/xchat (Old) and /work/SRC/openSUSE:12.1/.xchat.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xchat", Maintainer is "gnome-maintain...@suse.de" Changes: -------- --- /work/SRC/openSUSE:12.1/xchat/xchat.changes 2011-10-24 13:33:35.000000000 +0200 +++ /work/SRC/openSUSE:12.1/.xchat.new/xchat.changes 2011-10-28 19:11:45.000000000 +0200 @@ -1,0 +2,21 @@ +Mon Oct 24 20:22:04 UTC 2011 - badshah...@gmail.com + +- Added application icon in various sizes for better appearance on + the gnome-shell (bnc#713902, sf#3428147). +- Added hicolor-icon-theme BuildRequires since new icons are + installed in the hicolor-icon-theme directory. +- Use icon_theme_cache macros in post and postun for newly + installed icons. + +------------------------------------------------------------------- +Sun Oct 23 08:26:43 UTC 2011 - zai...@opensuse.org + +- Fixed broken notifications with libnotify: + + Add xchat-2.8.8-libnotify07.patch: update for libnotify 0.7.x + API. + + Add xchat-link-against-libnotify.patch: link to libnotify + instead of dlopen'ing it. + + Add libnotify-devel BuildRequires since xchat now links to + libnotify. + +------------------------------------------------------------------- New: ---- xchat-128.png xchat-2.8.8-libnotify07.patch xchat-24.png xchat-256.png xchat-32.png xchat-48.png xchat-64.png xchat-link-against-libnotify.patch xchat-scalable.svg ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xchat.spec ++++++ --- /var/tmp/diff_new_pack.V0AWEa/_old 2011-10-28 19:11:45.000000000 +0200 +++ /var/tmp/diff_new_pack.V0AWEa/_new 2011-10-28 19:11:45.000000000 +0200 @@ -15,33 +15,57 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild Name: xchat -BuildRequires: dbus-1-glib-devel fdupes gconf2-devel gnome-patch-translation gtk2-devel libsexy-devel libxml2-devel openssl-devel python-devel tcl-devel update-desktop-files -License: GPLv2+ -Group: Productivity/Networking/IRC -Summary: An IRC Client Version: 2.8.8 Release: 3 -Source: http://xchat.org/files/source/2.8/%name-%version.tar.bz2 -Patch: %name-gettext.diff -Patch1: %name-tabs_outgoing_msg.patch -Patch2: %name-automake-foreign.diff -Patch3: %name-susefont.diff -Patch4: %name-ssl.patch +License: GPLv2+ +Summary: An IRC Client +Url: http://xchat.org +Group: Productivity/Networking/IRC +Source0: http://xchat.org/files/source/2.8/%{name}-%{version}.tar.bz2 +# Sources for hicolor icons of required sizes (upstream bug sf#3428147) +Source1: xchat-24.png +Source2: xchat-32.png +Source3: xchat-48.png +Source4: xchat-64.png +Source5: xchat-128.png +Source6: xchat-256.png +Source7: xchat-scalable.svg +Patch0: %{name}-gettext.diff +Patch1: %{name}-tabs_outgoing_msg.patch +Patch2: %{name}-automake-foreign.diff +Patch3: %{name}-susefont.diff +Patch4: %{name}-ssl.patch Patch5: browser.patch Patch6: xchat-no-versionscript.patch Patch7: xchat-desktop-launch.patch Patch8: fixme.diff Patch9: xchat-2.8.6-not-stupid-149670.patch Patch10: %{name}-2.8.6-string-literal.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-build -Url: http://xchat.org -AutoReqProv: on +# PATCH-FIX-UPSTREAM xchat-2.8.8-libnotify07.patch zai...@opensuse.org -- Fix to work with libnotify 0.7, http://sourceforge.net/tracker/index.php?func=detail&aid=3109838&group_id=239&atid=100239 +Patch11: xchat-2.8.8-libnotify07.patch +# PATCH-FIX-UPSTREAM xchat-link-against-libnotify.patch zai...@opensuse.org -- Directly link to libnotify, http://sourceforge.net/tracker/?func=detail&aid=3280223&group_id=239&atid=100239 +Patch12: xchat-link-against-libnotify.patch +BuildRequires: fdupes +BuildRequires: gnome-patch-translation +# BuildRequires for installing hicolor icons +BuildRequires: hicolor-icon-theme +BuildRequires: libsexy-devel +BuildRequires: openssl-devel +BuildRequires: python-devel +BuildRequires: tcl-devel +BuildRequires: update-desktop-files +BuildRequires: pkgconfig(dbus-glib-1) +BuildRequires: pkgconfig(gconf-2.0) +BuildRequires: pkgconfig(gtk+-2.0) +# BuildRequires because of patch12 -- xchat-link-against-libnotify.patch +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libxml-2.0) Requires: /usr/bin/notify-send Recommends: %{name}-lang +BuildRoot: %{_tmppath}/%{name}-%{version}-build %gconf_schemas_prereq %description @@ -54,8 +78,8 @@ Summary: An IRC Client - Support for perl plugins Group: Productivity/Networking/IRC Requires: %{name} = %{version} -Supplements: packageand(%{name}:perl) Requires: perl = %{perl_version} +Supplements: packageand(%{name}:perl) %description perl X-Chat is yet another IRC client for the X Window System. It uses the @@ -96,7 +120,7 @@ %prep %setup -q gnome-patch-translation-prepare -%patch -p1 +%patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -107,6 +131,8 @@ %patch8 -p1 %patch9 -p1 %patch10 +%patch11 -p1 +%patch12 -p1 gnome-patch-translation-update %build @@ -124,18 +150,30 @@ --enable-ipv6\ --enable-zvt\ --enable-gnome -%__make %{?jobs:-j%jobs} +make %{?_smp_mflags} %install -%makeinstall -%suse_update_desktop_file -N "XChat" -G "IRC Client" -C "" %name IRCClient +%make_install + +# Install hi-res icons in the hicolor icons directory +install -D -m 644 %{SOURCE1} %{buildroot}%{_datadir}/icons/hicolor/24x24/apps/xchat.png +install -D -m 644 %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/xchat.png +install -D -m 644 %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/xchat.png +install -D -m 644 %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/xchat.png +install -D -m 644 %{SOURCE5} %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/xchat.png +install -D -m 644 %{SOURCE6} %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/xchat.png +install -D -m 644 %{SOURCE7} %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/xchat.svg +# Remove the old single-size icon from /usr/share/pixmaps +rm %{buildroot}%{_datadir}/pixmaps/xchat.png + +%suse_update_desktop_file -N "XChat" -G "IRC Client" -C "" %{name} IRCClient %find_lang %{name} %{?no_lang_C} %find_gconf_schemas -rm $RPM_BUILD_ROOT%{_libdir}/*/*/*.*a -%fdupes $RPM_BUILD_ROOT +rm %{buildroot}%{_libdir}/*/*/*.*a +%fdupes %{buildroot} %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} %pre -f %{name}.schemas_pre @@ -143,16 +181,20 @@ %preun -f %{name}.schemas_preun -%if 0%{?suse_version} > 1130 - %post +%if 0%{?suse_version} > 1130 %desktop_database_post +%icon_theme_cache_post +%else +gtk-update-icon-cache %{_datadir}/icons/hicolor || true %endif -%if 0%{?suse_version} > 1130 - %postun +%if 0%{?suse_version} > 1130 %desktop_database_postun +%icon_theme_cache_postun +%else +gtk-update-icon-cache %{_datadir}/icons/hicolor || true %endif %files -f %{name}.schemas_list @@ -162,7 +204,7 @@ %dir %{_libdir}/xchat %dir %{_libdir}/xchat/plugins %{_datadir}/applications/xchat.desktop -%{_datadir}/pixmaps/xchat.png +%{_datadir}/icons/hicolor/*/apps/xchat.* %{_datadir}/dbus-1/services/org.xchat.service.service %files perl ++++++ xchat-2.8.8-libnotify07.patch ++++++ 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)) ++++++ xchat-link-against-libnotify.patch ++++++ From: Christopher Aillon <cail...@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 --- 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; } -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org