The current code in src/notify_desktop.c is not compatible with the new
libnotify 0.7 API
This:
notification = notify_notification_new (summary, n->message, NULL, NULL);
Should now be:
notification = notify_notification_new (summary, n->message, NULL;
As in, one argument less for notify_notification_new.
But we can't just remove it or it'll break compability with libnotify
0.4.x and 0.5.x.
This piece of code sets dummy NOTIFY_CHECK_VERSION for libnotify-0.4.x,
because NOTIFY_CHECK_VERSION was added only in 0.5.x:
#ifndef NOTIFY_CHECK_VERSION
#define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
Then we can freely use NOTIFY_CHECK_VERSION, and it will work with all
of 0.4, 0.5 and 0.7 series:
#if NOTIFY_CHECK_VERSION (0, 7, 0)
do something cool
#endif
I'm attaching the working patch. It's been tested with all of the
mentioned versions, as well as it's in active use at Gentoo Linux.
Thanks, Samuli
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
#include <glib.h>
#include <libnotify/notify.h>
+#ifndef NOTIFY_CHECK_VERSION
+# define NOTIFY_CHECK_VERSION(x,y,z) 0
+#endif
+
#define log_info(...) INFO ("notify_desktop: " __VA_ARGS__)
#define log_warn(...) WARNING ("notify_desktop: " __VA_ARGS__)
#define log_err(...) ERROR ("notify_desktop: " __VA_ARGS__)
: (NOTIF_WARNING == n->severity) ? "WARNING"
: (NOTIF_OKAY == n->severity) ? "OKAY" : "UNKNOWN");
- notification = notify_notification_new (summary, n->message, NULL, NULL);
+ notification = notify_notification_new (summary, n->message, NULL
+#if NOTIFY_CHECK_VERSION (0, 7, 0)
+ );
+#else
+ , NULL);
+#endif
if (NULL == notification) {
log_err ("Failed to create a new notification.");
return -1;