G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
build failures.

Upstream-Status: Pending

Index: gamin-0.1.10/server/gam_node.c
===================================================================
--- gamin-0.1.10.orig/server/gam_node.c	2011-10-12 15:25:45.217178314 +0100
+++ gamin-0.1.10/server/gam_node.c	2011-10-12 15:26:17.807178293 +0100
@@ -122,7 +122,7 @@
  * it has finished with the string.  If it must keep it longer, it
  * should makes its own copy.  The returned string must not be freed.
  */
-G_CONST_RETURN char *
+const char *
 gam_node_get_path(GamNode * node)
 {
     g_assert(node);
Index: gamin-0.1.10/server/gam_node.h
===================================================================
--- gamin-0.1.10.orig/server/gam_node.h	2011-10-12 15:25:46.857178269 +0100
+++ gamin-0.1.10/server/gam_node.h	2011-10-12 15:26:28.637178297 +0100
@@ -58,7 +58,7 @@
 void                  gam_node_set_is_dir          (GamNode         *node,
 						   gboolean        is_dir);
 	
-G_CONST_RETURN char  *gam_node_get_path            (GamNode         *node);
+const char  *gam_node_get_path            (GamNode         *node);
 
 GList                *gam_node_get_subscriptions   (GamNode         *node);
 
Index: gamin-0.1.10/server/gam_subscription.c
===================================================================
--- gamin-0.1.10.orig/server/gam_subscription.c	2011-10-12 15:25:40.497177525 +0100
+++ gamin-0.1.10/server/gam_subscription.c	2011-10-12 15:26:39.867178304 +0100
@@ -141,7 +141,7 @@
  * @param sub the GamSubscription
  * @returns The path being monitored.  It should not be freed.
  */
-G_CONST_RETURN char *
+const char *
 gam_subscription_get_path(GamSubscription * sub)
 {
     if (sub == NULL)
Index: gamin-0.1.10/server/gam_subscription.h
===================================================================
--- gamin-0.1.10.orig/server/gam_subscription.h	2011-10-12 15:25:28.507178266 +0100
+++ gamin-0.1.10/server/gam_subscription.h	2011-10-12 15:25:58.817178285 +0100
@@ -21,7 +21,7 @@
 
 int                  gam_subscription_get_reqno    (GamSubscription *sub);
 
-G_CONST_RETURN char *gam_subscription_get_path     (GamSubscription *sub);
+const char *gam_subscription_get_path     (GamSubscription *sub);
 
 GamListener         *gam_subscription_get_listener (GamSubscription *sub);
 
