[arch-commits] Commit in gamin/repos (14 files)

Jan Steffens heftig at nymeria.archlinux.org
Sun Oct 27 02:51:46 UTC 2013


    Date: Sunday, October 27, 2013 @ 03:51:46
  Author: heftig
Revision: 197583

archrelease: copy trunk to extra-i686, extra-x86_64

Added:
  gamin/repos/extra-i686/0001-Poll-files-on-nfs4.patch
    (from rev 197582, gamin/trunk/0001-Poll-files-on-nfs4.patch)
  gamin/repos/extra-i686/18_gam_server_deadlocks.patch
    (from rev 197582, gamin/trunk/18_gam_server_deadlocks.patch)
  gamin/repos/extra-i686/PKGBUILD
    (from rev 197582, gamin/trunk/PKGBUILD)
  gamin/repos/extra-i686/fix-deprecated-const.patch
    (from rev 197582, gamin/trunk/fix-deprecated-const.patch)
  gamin/repos/extra-x86_64/0001-Poll-files-on-nfs4.patch
    (from rev 197582, gamin/trunk/0001-Poll-files-on-nfs4.patch)
  gamin/repos/extra-x86_64/18_gam_server_deadlocks.patch
    (from rev 197582, gamin/trunk/18_gam_server_deadlocks.patch)
  gamin/repos/extra-x86_64/PKGBUILD
    (from rev 197582, gamin/trunk/PKGBUILD)
  gamin/repos/extra-x86_64/fix-deprecated-const.patch
    (from rev 197582, gamin/trunk/fix-deprecated-const.patch)
Deleted:
  gamin/repos/extra-i686/18_gam_server_deadlocks.patch
  gamin/repos/extra-i686/PKGBUILD
  gamin/repos/extra-i686/fix-deprecated-const.patch
  gamin/repos/extra-x86_64/18_gam_server_deadlocks.patch
  gamin/repos/extra-x86_64/PKGBUILD
  gamin/repos/extra-x86_64/fix-deprecated-const.patch

--------------------------------------------+
 /18_gam_server_deadlocks.patch             |  140 +++++++++++++++++++++++++++
 /PKGBUILD                                  |  108 ++++++++++++++++++++
 /fix-deprecated-const.patch                |  112 +++++++++++++++++++++
 extra-i686/0001-Poll-files-on-nfs4.patch   |   27 +++++
 extra-i686/18_gam_server_deadlocks.patch   |   70 -------------
 extra-i686/PKGBUILD                        |   46 --------
 extra-i686/fix-deprecated-const.patch      |   56 ----------
 extra-x86_64/0001-Poll-files-on-nfs4.patch |   27 +++++
 extra-x86_64/18_gam_server_deadlocks.patch |   70 -------------
 extra-x86_64/PKGBUILD                      |   46 --------
 extra-x86_64/fix-deprecated-const.patch    |   56 ----------
 11 files changed, 414 insertions(+), 344 deletions(-)

Copied: gamin/repos/extra-i686/0001-Poll-files-on-nfs4.patch (from rev 197582, gamin/trunk/0001-Poll-files-on-nfs4.patch)
===================================================================
--- extra-i686/0001-Poll-files-on-nfs4.patch	                        (rev 0)
+++ extra-i686/0001-Poll-files-on-nfs4.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,27 @@
+From b92b17ecced6df463da73d6de566740cf5cd00d4 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Fri, 1 Feb 2013 15:19:58 +0100
+Subject: [PATCH 1/2] Poll files on nfs4
+
+Add nfs4 among polled filesystems.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=693006
+---
+ server/gam_fs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/server/gam_fs.c b/server/gam_fs.c
+index c8ca704..143a603 100644
+--- a/server/gam_fs.c
++++ b/server/gam_fs.c
+@@ -178,6 +178,7 @@ gam_fs_init (void)
+ 		gam_fs_set ("reiserfs", GFS_MT_DEFAULT, 0);
+ 		gam_fs_set ("novfs", GFS_MT_POLL, 30);
+ 		gam_fs_set ("nfs", GFS_MT_POLL, 5);
++		gam_fs_set ("nfs4", GFS_MT_POLL, 5);
+ 		if (stat("/etc/mtab", &mtab_sbuf) != 0)
+ 		{
+ 			GAM_DEBUG(DEBUG_INFO, "Could not stat /etc/mtab\n");
+-- 
+1.8.1.2
+

Deleted: extra-i686/18_gam_server_deadlocks.patch
===================================================================
--- extra-i686/18_gam_server_deadlocks.patch	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-i686/18_gam_server_deadlocks.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,70 +0,0 @@
-From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
-From: Anssi Hannula <anssi at mageia.org>
-Date: Wed, 4 Jan 2012 00:23:55 +0200
-Subject: [PATCH] fix possible server deadlock in ih_sub_cancel
-
-ih_sub_foreach() calls ih_sub_cancel() while inotify_lock is locked.
-However, ih_sub_cancel() locks it again, and locking GMutex recursively
-causes undefined behaviour.
-
-Fix that by removing locking from ih_sub_cancel() as ih_sub_foreach()
-is its only user. Also make the function static so that it won't
-accidentally get used by other files without locking (inotify-helper.h
-is an internal server header).
-
-This should fix the intermittent deadlocks I've been experiencing
-causing KDE applications to no longer start, and probably also
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
-
-Origin: http://bugzilla-attachments.gnome.org/attachment.cgi?id=204537
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gamin/+bug/926862
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
-
----
- server/inotify-helper.c |    7 ++-----
- server/inotify-helper.h |    1 -
- 2 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/server/inotify-helper.c b/server/inotify-helper.c
-index d77203e..0789fa4 100644
---- a/server/inotify-helper.c
-+++ b/server/inotify-helper.c
-@@ -123,13 +123,11 @@ ih_sub_add (ih_sub_t * sub)
- 
- /**
-  * Cancels a subscription which was being monitored.
-+ * inotify_lock must be held when calling.
-  */
--gboolean
-+static gboolean
- ih_sub_cancel (ih_sub_t * sub)
- {
--	G_LOCK(inotify_lock);
--
--
- 	if (!sub->cancelled)
- 	{
- 		IH_W("cancelling %s\n", sub->pathname);
-@@ -140,7 +138,6 @@ ih_sub_cancel (ih_sub_t * sub)
- 		sub_list = g_list_remove (sub_list, sub);
- 	}
- 
--	G_UNLOCK(inotify_lock);
- 	return TRUE;
- }
- 
-diff --git a/server/inotify-helper.h b/server/inotify-helper.h
-index 5d3b6d0..d36b5fd 100644
---- a/server/inotify-helper.h
-+++ b/server/inotify-helper.h
-@@ -34,7 +34,6 @@ gboolean	 ih_startup		(event_callback_t ecb,
- 					 found_callback_t fcb);
- gboolean	 ih_running		(void);
- gboolean	 ih_sub_add		(ih_sub_t *sub);
--gboolean	 ih_sub_cancel		(ih_sub_t *sub);
- 
- /* Return FALSE from 'f' if the subscription should be cancelled */
- void		 ih_sub_foreach		(void *callerdata, gboolean (*f)(ih_sub_t *sub, void *callerdata));
--- 
-1.7.7.2
-

Copied: gamin/repos/extra-i686/18_gam_server_deadlocks.patch (from rev 197582, gamin/trunk/18_gam_server_deadlocks.patch)
===================================================================
--- extra-i686/18_gam_server_deadlocks.patch	                        (rev 0)
+++ extra-i686/18_gam_server_deadlocks.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,70 @@
+From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
+From: Anssi Hannula <anssi at mageia.org>
+Date: Wed, 4 Jan 2012 00:23:55 +0200
+Subject: [PATCH] fix possible server deadlock in ih_sub_cancel
+
+ih_sub_foreach() calls ih_sub_cancel() while inotify_lock is locked.
+However, ih_sub_cancel() locks it again, and locking GMutex recursively
+causes undefined behaviour.
+
+Fix that by removing locking from ih_sub_cancel() as ih_sub_foreach()
+is its only user. Also make the function static so that it won't
+accidentally get used by other files without locking (inotify-helper.h
+is an internal server header).
+
+This should fix the intermittent deadlocks I've been experiencing
+causing KDE applications to no longer start, and probably also
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+Origin: http://bugzilla-attachments.gnome.org/attachment.cgi?id=204537
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gamin/+bug/926862
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+---
+ server/inotify-helper.c |    7 ++-----
+ server/inotify-helper.h |    1 -
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/server/inotify-helper.c b/server/inotify-helper.c
+index d77203e..0789fa4 100644
+--- a/server/inotify-helper.c
++++ b/server/inotify-helper.c
+@@ -123,13 +123,11 @@ ih_sub_add (ih_sub_t * sub)
+ 
+ /**
+  * Cancels a subscription which was being monitored.
++ * inotify_lock must be held when calling.
+  */
+-gboolean
++static gboolean
+ ih_sub_cancel (ih_sub_t * sub)
+ {
+-	G_LOCK(inotify_lock);
+-
+-
+ 	if (!sub->cancelled)
+ 	{
+ 		IH_W("cancelling %s\n", sub->pathname);
+@@ -140,7 +138,6 @@ ih_sub_cancel (ih_sub_t * sub)
+ 		sub_list = g_list_remove (sub_list, sub);
+ 	}
+ 
+-	G_UNLOCK(inotify_lock);
+ 	return TRUE;
+ }
+ 
+diff --git a/server/inotify-helper.h b/server/inotify-helper.h
+index 5d3b6d0..d36b5fd 100644
+--- a/server/inotify-helper.h
++++ b/server/inotify-helper.h
+@@ -34,7 +34,6 @@ gboolean	 ih_startup		(event_callback_t ecb,
+ 					 found_callback_t fcb);
+ gboolean	 ih_running		(void);
+ gboolean	 ih_sub_add		(ih_sub_t *sub);
+-gboolean	 ih_sub_cancel		(ih_sub_t *sub);
+ 
+ /* Return FALSE from 'f' if the subscription should be cancelled */
+ void		 ih_sub_foreach		(void *callerdata, gboolean (*f)(ih_sub_t *sub, void *callerdata));
+-- 
+1.7.7.2
+

Deleted: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-i686/PKGBUILD	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,46 +0,0 @@
-# $Id: PKGBUILD 30749 2010-10-20 11:18:33Z schuay $
-# Maintainer:
-# Contributor: Abhishek Dasgupta <abhidg at gmail.com>
-# Contributor: Pulphix <crimea.v at libero.it>
-
-pkgname=gamin
-pkgver=0.1.10
-pkgrel=7
-pkgdesc='File and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor)'
-url='http://www.gnome.org/~veillard/gamin'
-license=('GPL')
-arch=('i686' 'x86_64')
-depends=('glib2')
-makedepends=('python2')
-options=('libtool')
-optdepends=('python2: for the python module.')
-provides=('fam')
-conflicts=('fam')
-source=("http://www.gnome.org/~veillard/${pkgname}/sources/${pkgname}-${pkgver}.tar.gz"
-        'fix-deprecated-const.patch'
-        '18_gam_server_deadlocks.patch')
-md5sums=('b4ec549e57da470c04edd5ec2876a028'
-         'f679aeb48fe9dd376c8828cc9b6941ab'
-         '4784359a3206bfa3c0dce1c23468f87f')
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # https://bugs.archlinux.org/task/33642
-  patch -p1 -i "${srcdir}"/18_gam_server_deadlocks.patch
-
-  patch -p1 -i "${srcdir}"/fix-deprecated-const.patch
-
-  # python 2
-  sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' python/gamin.py
-
-  ./configure --prefix=/usr --disable-static --with-threads \
-    --disable-debug-api --disable-debug --libexecdir=/usr/lib/gamin \
-    --with-python=/usr/bin/python2
-  make
-}
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
-# vim:set ts=2 sw=2 et:

Copied: gamin/repos/extra-i686/PKGBUILD (from rev 197582, gamin/trunk/PKGBUILD)
===================================================================
--- extra-i686/PKGBUILD	                        (rev 0)
+++ extra-i686/PKGBUILD	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,54 @@
+# $Id$
+# Maintainer:
+# Contributor: Abhishek Dasgupta <abhidg at gmail.com>
+# Contributor: Pulphix <crimea.v at libero.it>
+
+pkgname=gamin
+pkgver=0.1.10
+pkgrel=8
+pkgdesc='File and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor)'
+url='http://www.gnome.org/~veillard/gamin'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glib2')
+makedepends=('python2')
+optdepends=('python2: for the python module')
+provides=('fam')
+conflicts=('fam')
+options=('!libtool')
+source=("$url/sources/${pkgname}-${pkgver}.tar.gz"
+        'fix-deprecated-const.patch'
+        '18_gam_server_deadlocks.patch'
+        '0001-Poll-files-on-nfs4.patch')
+md5sums=('b4ec549e57da470c04edd5ec2876a028'
+         'f679aeb48fe9dd376c8828cc9b6941ab'
+         '4784359a3206bfa3c0dce1c23468f87f'
+         '6711cd0b1e8d2ad038c5761715d084a5')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://bugs.archlinux.org/task/33642
+  patch -Np1 -i ../18_gam_server_deadlocks.patch
+
+  patch -Np1 -i ../fix-deprecated-const.patch
+  patch -Np1 -i ../0001-Poll-files-on-nfs4.patch
+
+  # python 2
+  sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' python/gamin.py
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --disable-static --with-threads \
+    --disable-debug-api --disable-debug --libexecdir=/usr/lib/gamin \
+    --with-python=/usr/bin/python2
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: extra-i686/fix-deprecated-const.patch
===================================================================
--- extra-i686/fix-deprecated-const.patch	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-i686/fix-deprecated-const.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,56 +0,0 @@
-Description: Don't use deprecated G_CONST_RETURN. Fixes building with newer glib versions.
-Author: Matthias Klose <doko at ubuntu.com>
-Bug-Ubuntu: https://launchpad.net/bugs/829504
-
-Index: gamin/server/gam_node.c
-===================================================================
---- gamin.orig/server/gam_node.c	2011-10-18 16:09:04.873780685 +0200
-+++ gamin/server/gam_node.c	2011-10-18 16:09:01.965780543 +0200
-@@ -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/server/gam_node.h
-===================================================================
---- gamin.orig/server/gam_node.h	2011-10-18 16:09:04.729780677 +0200
-+++ gamin/server/gam_node.h	2011-10-18 16:09:01.961780544 +0200
-@@ -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/server/gam_subscription.c
-===================================================================
---- gamin.orig/server/gam_subscription.c	2011-10-18 16:09:04.817780682 +0200
-+++ gamin/server/gam_subscription.c	2011-10-18 16:09:01.965780543 +0200
-@@ -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/server/gam_subscription.h
-===================================================================
---- gamin.orig/server/gam_subscription.h	2011-10-18 16:09:04.929780687 +0200
-+++ gamin/server/gam_subscription.h	2011-10-18 16:09:01.965780543 +0200
-@@ -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);
- 

Copied: gamin/repos/extra-i686/fix-deprecated-const.patch (from rev 197582, gamin/trunk/fix-deprecated-const.patch)
===================================================================
--- extra-i686/fix-deprecated-const.patch	                        (rev 0)
+++ extra-i686/fix-deprecated-const.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,56 @@
+Description: Don't use deprecated G_CONST_RETURN. Fixes building with newer glib versions.
+Author: Matthias Klose <doko at ubuntu.com>
+Bug-Ubuntu: https://launchpad.net/bugs/829504
+
+Index: gamin/server/gam_node.c
+===================================================================
+--- gamin.orig/server/gam_node.c	2011-10-18 16:09:04.873780685 +0200
++++ gamin/server/gam_node.c	2011-10-18 16:09:01.965780543 +0200
+@@ -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/server/gam_node.h
+===================================================================
+--- gamin.orig/server/gam_node.h	2011-10-18 16:09:04.729780677 +0200
++++ gamin/server/gam_node.h	2011-10-18 16:09:01.961780544 +0200
+@@ -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/server/gam_subscription.c
+===================================================================
+--- gamin.orig/server/gam_subscription.c	2011-10-18 16:09:04.817780682 +0200
++++ gamin/server/gam_subscription.c	2011-10-18 16:09:01.965780543 +0200
+@@ -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/server/gam_subscription.h
+===================================================================
+--- gamin.orig/server/gam_subscription.h	2011-10-18 16:09:04.929780687 +0200
++++ gamin/server/gam_subscription.h	2011-10-18 16:09:01.965780543 +0200
+@@ -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);
+ 

Copied: gamin/repos/extra-x86_64/0001-Poll-files-on-nfs4.patch (from rev 197582, gamin/trunk/0001-Poll-files-on-nfs4.patch)
===================================================================
--- extra-x86_64/0001-Poll-files-on-nfs4.patch	                        (rev 0)
+++ extra-x86_64/0001-Poll-files-on-nfs4.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,27 @@
+From b92b17ecced6df463da73d6de566740cf5cd00d4 Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Fri, 1 Feb 2013 15:19:58 +0100
+Subject: [PATCH 1/2] Poll files on nfs4
+
+Add nfs4 among polled filesystems.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=693006
+---
+ server/gam_fs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/server/gam_fs.c b/server/gam_fs.c
+index c8ca704..143a603 100644
+--- a/server/gam_fs.c
++++ b/server/gam_fs.c
+@@ -178,6 +178,7 @@ gam_fs_init (void)
+ 		gam_fs_set ("reiserfs", GFS_MT_DEFAULT, 0);
+ 		gam_fs_set ("novfs", GFS_MT_POLL, 30);
+ 		gam_fs_set ("nfs", GFS_MT_POLL, 5);
++		gam_fs_set ("nfs4", GFS_MT_POLL, 5);
+ 		if (stat("/etc/mtab", &mtab_sbuf) != 0)
+ 		{
+ 			GAM_DEBUG(DEBUG_INFO, "Could not stat /etc/mtab\n");
+-- 
+1.8.1.2
+

Deleted: extra-x86_64/18_gam_server_deadlocks.patch
===================================================================
--- extra-x86_64/18_gam_server_deadlocks.patch	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-x86_64/18_gam_server_deadlocks.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,70 +0,0 @@
-From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
-From: Anssi Hannula <anssi at mageia.org>
-Date: Wed, 4 Jan 2012 00:23:55 +0200
-Subject: [PATCH] fix possible server deadlock in ih_sub_cancel
-
-ih_sub_foreach() calls ih_sub_cancel() while inotify_lock is locked.
-However, ih_sub_cancel() locks it again, and locking GMutex recursively
-causes undefined behaviour.
-
-Fix that by removing locking from ih_sub_cancel() as ih_sub_foreach()
-is its only user. Also make the function static so that it won't
-accidentally get used by other files without locking (inotify-helper.h
-is an internal server header).
-
-This should fix the intermittent deadlocks I've been experiencing
-causing KDE applications to no longer start, and probably also
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
-
-Origin: http://bugzilla-attachments.gnome.org/attachment.cgi?id=204537
-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gamin/+bug/926862
-Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
-
----
- server/inotify-helper.c |    7 ++-----
- server/inotify-helper.h |    1 -
- 2 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/server/inotify-helper.c b/server/inotify-helper.c
-index d77203e..0789fa4 100644
---- a/server/inotify-helper.c
-+++ b/server/inotify-helper.c
-@@ -123,13 +123,11 @@ ih_sub_add (ih_sub_t * sub)
- 
- /**
-  * Cancels a subscription which was being monitored.
-+ * inotify_lock must be held when calling.
-  */
--gboolean
-+static gboolean
- ih_sub_cancel (ih_sub_t * sub)
- {
--	G_LOCK(inotify_lock);
--
--
- 	if (!sub->cancelled)
- 	{
- 		IH_W("cancelling %s\n", sub->pathname);
-@@ -140,7 +138,6 @@ ih_sub_cancel (ih_sub_t * sub)
- 		sub_list = g_list_remove (sub_list, sub);
- 	}
- 
--	G_UNLOCK(inotify_lock);
- 	return TRUE;
- }
- 
-diff --git a/server/inotify-helper.h b/server/inotify-helper.h
-index 5d3b6d0..d36b5fd 100644
---- a/server/inotify-helper.h
-+++ b/server/inotify-helper.h
-@@ -34,7 +34,6 @@ gboolean	 ih_startup		(event_callback_t ecb,
- 					 found_callback_t fcb);
- gboolean	 ih_running		(void);
- gboolean	 ih_sub_add		(ih_sub_t *sub);
--gboolean	 ih_sub_cancel		(ih_sub_t *sub);
- 
- /* Return FALSE from 'f' if the subscription should be cancelled */
- void		 ih_sub_foreach		(void *callerdata, gboolean (*f)(ih_sub_t *sub, void *callerdata));
--- 
-1.7.7.2
-

Copied: gamin/repos/extra-x86_64/18_gam_server_deadlocks.patch (from rev 197582, gamin/trunk/18_gam_server_deadlocks.patch)
===================================================================
--- extra-x86_64/18_gam_server_deadlocks.patch	                        (rev 0)
+++ extra-x86_64/18_gam_server_deadlocks.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,70 @@
+From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
+From: Anssi Hannula <anssi at mageia.org>
+Date: Wed, 4 Jan 2012 00:23:55 +0200
+Subject: [PATCH] fix possible server deadlock in ih_sub_cancel
+
+ih_sub_foreach() calls ih_sub_cancel() while inotify_lock is locked.
+However, ih_sub_cancel() locks it again, and locking GMutex recursively
+causes undefined behaviour.
+
+Fix that by removing locking from ih_sub_cancel() as ih_sub_foreach()
+is its only user. Also make the function static so that it won't
+accidentally get used by other files without locking (inotify-helper.h
+is an internal server header).
+
+This should fix the intermittent deadlocks I've been experiencing
+causing KDE applications to no longer start, and probably also
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+Origin: http://bugzilla-attachments.gnome.org/attachment.cgi?id=204537
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gamin/+bug/926862
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542361
+
+---
+ server/inotify-helper.c |    7 ++-----
+ server/inotify-helper.h |    1 -
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/server/inotify-helper.c b/server/inotify-helper.c
+index d77203e..0789fa4 100644
+--- a/server/inotify-helper.c
++++ b/server/inotify-helper.c
+@@ -123,13 +123,11 @@ ih_sub_add (ih_sub_t * sub)
+ 
+ /**
+  * Cancels a subscription which was being monitored.
++ * inotify_lock must be held when calling.
+  */
+-gboolean
++static gboolean
+ ih_sub_cancel (ih_sub_t * sub)
+ {
+-	G_LOCK(inotify_lock);
+-
+-
+ 	if (!sub->cancelled)
+ 	{
+ 		IH_W("cancelling %s\n", sub->pathname);
+@@ -140,7 +138,6 @@ ih_sub_cancel (ih_sub_t * sub)
+ 		sub_list = g_list_remove (sub_list, sub);
+ 	}
+ 
+-	G_UNLOCK(inotify_lock);
+ 	return TRUE;
+ }
+ 
+diff --git a/server/inotify-helper.h b/server/inotify-helper.h
+index 5d3b6d0..d36b5fd 100644
+--- a/server/inotify-helper.h
++++ b/server/inotify-helper.h
+@@ -34,7 +34,6 @@ gboolean	 ih_startup		(event_callback_t ecb,
+ 					 found_callback_t fcb);
+ gboolean	 ih_running		(void);
+ gboolean	 ih_sub_add		(ih_sub_t *sub);
+-gboolean	 ih_sub_cancel		(ih_sub_t *sub);
+ 
+ /* Return FALSE from 'f' if the subscription should be cancelled */
+ void		 ih_sub_foreach		(void *callerdata, gboolean (*f)(ih_sub_t *sub, void *callerdata));
+-- 
+1.7.7.2
+

Deleted: extra-x86_64/PKGBUILD
===================================================================
--- extra-x86_64/PKGBUILD	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-x86_64/PKGBUILD	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,46 +0,0 @@
-# $Id: PKGBUILD 30749 2010-10-20 11:18:33Z schuay $
-# Maintainer:
-# Contributor: Abhishek Dasgupta <abhidg at gmail.com>
-# Contributor: Pulphix <crimea.v at libero.it>
-
-pkgname=gamin
-pkgver=0.1.10
-pkgrel=7
-pkgdesc='File and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor)'
-url='http://www.gnome.org/~veillard/gamin'
-license=('GPL')
-arch=('i686' 'x86_64')
-depends=('glib2')
-makedepends=('python2')
-options=('libtool')
-optdepends=('python2: for the python module.')
-provides=('fam')
-conflicts=('fam')
-source=("http://www.gnome.org/~veillard/${pkgname}/sources/${pkgname}-${pkgver}.tar.gz"
-        'fix-deprecated-const.patch'
-        '18_gam_server_deadlocks.patch')
-md5sums=('b4ec549e57da470c04edd5ec2876a028'
-         'f679aeb48fe9dd376c8828cc9b6941ab'
-         '4784359a3206bfa3c0dce1c23468f87f')
-
-build() {
-  cd "$srcdir/$pkgname-$pkgver"
-
-  # https://bugs.archlinux.org/task/33642
-  patch -p1 -i "${srcdir}"/18_gam_server_deadlocks.patch
-
-  patch -p1 -i "${srcdir}"/fix-deprecated-const.patch
-
-  # python 2
-  sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' python/gamin.py
-
-  ./configure --prefix=/usr --disable-static --with-threads \
-    --disable-debug-api --disable-debug --libexecdir=/usr/lib/gamin \
-    --with-python=/usr/bin/python2
-  make
-}
-package() {
-  cd "$srcdir/$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}
-# vim:set ts=2 sw=2 et:

Copied: gamin/repos/extra-x86_64/PKGBUILD (from rev 197582, gamin/trunk/PKGBUILD)
===================================================================
--- extra-x86_64/PKGBUILD	                        (rev 0)
+++ extra-x86_64/PKGBUILD	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,54 @@
+# $Id$
+# Maintainer:
+# Contributor: Abhishek Dasgupta <abhidg at gmail.com>
+# Contributor: Pulphix <crimea.v at libero.it>
+
+pkgname=gamin
+pkgver=0.1.10
+pkgrel=8
+pkgdesc='File and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor)'
+url='http://www.gnome.org/~veillard/gamin'
+license=('GPL')
+arch=('i686' 'x86_64')
+depends=('glib2')
+makedepends=('python2')
+optdepends=('python2: for the python module')
+provides=('fam')
+conflicts=('fam')
+options=('!libtool')
+source=("$url/sources/${pkgname}-${pkgver}.tar.gz"
+        'fix-deprecated-const.patch'
+        '18_gam_server_deadlocks.patch'
+        '0001-Poll-files-on-nfs4.patch')
+md5sums=('b4ec549e57da470c04edd5ec2876a028'
+         'f679aeb48fe9dd376c8828cc9b6941ab'
+         '4784359a3206bfa3c0dce1c23468f87f'
+         '6711cd0b1e8d2ad038c5761715d084a5')
+
+prepare() {
+  cd $pkgname-$pkgver
+
+  # https://bugs.archlinux.org/task/33642
+  patch -Np1 -i ../18_gam_server_deadlocks.patch
+
+  patch -Np1 -i ../fix-deprecated-const.patch
+  patch -Np1 -i ../0001-Poll-files-on-nfs4.patch
+
+  # python 2
+  sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' python/gamin.py
+}
+
+build() {
+  cd $pkgname-$pkgver
+  ./configure --prefix=/usr --disable-static --with-threads \
+    --disable-debug-api --disable-debug --libexecdir=/usr/lib/gamin \
+    --with-python=/usr/bin/python2
+  make
+}
+
+package() {
+  cd $pkgname-$pkgver
+  make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:

Deleted: extra-x86_64/fix-deprecated-const.patch
===================================================================
--- extra-x86_64/fix-deprecated-const.patch	2013-10-27 02:49:40 UTC (rev 197582)
+++ extra-x86_64/fix-deprecated-const.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -1,56 +0,0 @@
-Description: Don't use deprecated G_CONST_RETURN. Fixes building with newer glib versions.
-Author: Matthias Klose <doko at ubuntu.com>
-Bug-Ubuntu: https://launchpad.net/bugs/829504
-
-Index: gamin/server/gam_node.c
-===================================================================
---- gamin.orig/server/gam_node.c	2011-10-18 16:09:04.873780685 +0200
-+++ gamin/server/gam_node.c	2011-10-18 16:09:01.965780543 +0200
-@@ -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/server/gam_node.h
-===================================================================
---- gamin.orig/server/gam_node.h	2011-10-18 16:09:04.729780677 +0200
-+++ gamin/server/gam_node.h	2011-10-18 16:09:01.961780544 +0200
-@@ -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/server/gam_subscription.c
-===================================================================
---- gamin.orig/server/gam_subscription.c	2011-10-18 16:09:04.817780682 +0200
-+++ gamin/server/gam_subscription.c	2011-10-18 16:09:01.965780543 +0200
-@@ -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/server/gam_subscription.h
-===================================================================
---- gamin.orig/server/gam_subscription.h	2011-10-18 16:09:04.929780687 +0200
-+++ gamin/server/gam_subscription.h	2011-10-18 16:09:01.965780543 +0200
-@@ -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);
- 

Copied: gamin/repos/extra-x86_64/fix-deprecated-const.patch (from rev 197582, gamin/trunk/fix-deprecated-const.patch)
===================================================================
--- extra-x86_64/fix-deprecated-const.patch	                        (rev 0)
+++ extra-x86_64/fix-deprecated-const.patch	2013-10-27 02:51:46 UTC (rev 197583)
@@ -0,0 +1,56 @@
+Description: Don't use deprecated G_CONST_RETURN. Fixes building with newer glib versions.
+Author: Matthias Klose <doko at ubuntu.com>
+Bug-Ubuntu: https://launchpad.net/bugs/829504
+
+Index: gamin/server/gam_node.c
+===================================================================
+--- gamin.orig/server/gam_node.c	2011-10-18 16:09:04.873780685 +0200
++++ gamin/server/gam_node.c	2011-10-18 16:09:01.965780543 +0200
+@@ -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/server/gam_node.h
+===================================================================
+--- gamin.orig/server/gam_node.h	2011-10-18 16:09:04.729780677 +0200
++++ gamin/server/gam_node.h	2011-10-18 16:09:01.961780544 +0200
+@@ -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/server/gam_subscription.c
+===================================================================
+--- gamin.orig/server/gam_subscription.c	2011-10-18 16:09:04.817780682 +0200
++++ gamin/server/gam_subscription.c	2011-10-18 16:09:01.965780543 +0200
+@@ -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/server/gam_subscription.h
+===================================================================
+--- gamin.orig/server/gam_subscription.h	2011-10-18 16:09:04.929780687 +0200
++++ gamin/server/gam_subscription.h	2011-10-18 16:09:01.965780543 +0200
+@@ -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);
+ 




More information about the arch-commits mailing list