New package: gamin 0.1.10

This commit is contained in:
yopito 2017-03-29 07:52:20 +02:00 committed by Michael Gehring
parent aeabf278f0
commit 9d6d7111f4
9 changed files with 265 additions and 0 deletions

View file

@ -456,6 +456,8 @@ libvhd.so.1.0 xen-libs-4.2.2_2
libxenstat.so.0 xen-libs-4.2.2_2 libxenstat.so.0 xen-libs-4.2.2_2
libblktapctl.so.1.0 xen-libs-4.2.2_2 libblktapctl.so.1.0 xen-libs-4.2.2_2
libfsimage.so.1.0 xen-libs-4.2.2_2 libfsimage.so.1.0 xen-libs-4.2.2_2
libfam.so.0 gamin-0.1.10_1
libgamin-1.so.0 gamin-0.1.10_1
libKF5SyntaxHighlighting.so.5 syntax-highlighting-5.29.0_1 libKF5SyntaxHighlighting.so.5 syntax-highlighting-5.29.0_1
libbabl-0.1.so.0 babl-0.1.10_1 libbabl-0.1.so.0 babl-0.1.10_1
libbamf3.so.2 bamf-0.5.1_1 libbamf3.so.2 bamf-0.5.1_1

1
srcpkgs/gamin-devel Symbolic link
View file

@ -0,0 +1 @@
gamin

View file

@ -0,0 +1,24 @@
source: https://src.fedoraproject.org/cgit/rpms/gamin.git/plain/0001-Poll-files-on-nfs4.patch
From b92b17ecced6df463da73d6de566740cf5cd00d4 Mon Sep 17 00:00:00 2001
From: Marek Kasik <mkasik@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(+)
--- server/gam_fs.c.orig
+++ 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");

View file

@ -0,0 +1,59 @@
source: https://src.fedoraproject.org/cgit/rpms/gamin.git/plain/0002-Fix-compilation-of-recent-glib-removing-G_CONST_RETU.patch
From 77fe68f43ce75e920b0a94b0bc572cf3a21714f2 Mon Sep 17 00:00:00 2001
From: Maciej Piechotka <uzytkownik2@gmail.com>
Date: Tue, 13 Sep 2011 09:47:05 +0200
Subject: [PATCH 2/2] Fix compilation of recent glib removing G_CONST_RETURN
https://bugzilla.gnome.org/show_bug.cgi?id=658884
---
server/gam_node.c | 2 +-
server/gam_node.h | 2 +-
server/gam_subscription.c | 2 +-
server/gam_subscription.h | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
--- server/gam_node.c.orig
+++ server/gam_node.c
@@ -122,7 +122,7 @@ gam_node_set_is_dir(GamNode * node, gboolean is_dir)
* 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);
--- server/gam_node.h.orig
+++ server/gam_node.h
@@ -58,7 +58,7 @@ gboolean gam_node_is_dir (GamNode *node);
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);
--- server/gam_subscription.c.orig
+++ server/gam_subscription.c
@@ -141,7 +141,7 @@ gam_subscription_pathlen(GamSubscription * sub)
* @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)
--- server/gam_subscription.h.orig
+++ server/gam_subscription.h
@@ -21,7 +21,7 @@ int gam_subscription_pathlen (GamSubscription *sub);
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);

View file

@ -0,0 +1,60 @@
source: https://src.fedoraproject.org/cgit/rpms/gamin.git/plain/0004-fix-possible-server-deadlock-in-ih_sub_cancel.patch
From f9c67a13af33f389429e4e760f2023a23a9ac19f Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi@mageia.org>
Date: Wed, 4 Jan 2012 00:23:55 +0200
Subject: [PATCH 4/4] 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
---
server/inotify-helper.c | 7 ++-----
server/inotify-helper.h | 1 -
2 files changed, 2 insertions(+), 6 deletions(-)
--- server/inotify-helper.c.orig
+++ 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;
}
--- server/inotify-helper.h.orig
+++ 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));

View file

@ -0,0 +1,53 @@
Disable abstract socket namespace test since can't be achieved while cross-building.
--- configure.in.ORIG
+++ configure.in
@@ -388,47 +388,9 @@
#### Abstract sockets
AC_MSG_CHECKING(abstract socket namespace)
-AC_LANG_PUSH(C)
-AC_RUN_IFELSE([AC_LANG_PROGRAM(
-[[
-#include <sys/types.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <errno.h>
-]],
-[[
- int listen_fd;
- struct sockaddr_un addr;
-
- listen_fd = socket (PF_UNIX, SOCK_STREAM, 0);
-
- if (listen_fd < 0)
- {
- fprintf (stderr, "socket() failed: %s\n", strerror (errno));
- exit (1);
- }
-
- memset (&addr, '\0', sizeof (addr));
- addr.sun_family = AF_UNIX;
- strcpy (addr.sun_path, "X/tmp/dbus-fake-socket-path-used-in-configure-test");
- addr.sun_path[0] = '\0'; /* this is what makes it abstract */
-
- if (bind (listen_fd, (struct sockaddr*) &addr, SUN_LEN (&addr)) < 0)
- {
- fprintf (stderr, "Abstract socket namespace bind() failed: %s\n",
- strerror (errno));
- exit (1);
- }
- else
- exit (0);
-]])],
- [have_abstract_sockets=yes],
- [have_abstract_sockets=no])
-AC_LANG_POP(C)
+have_abstract_sockets=yes
AC_MSG_RESULT($have_abstract_sockets)
+AC_MSG_WARN([Emptied abstract socket namespace test for cross-building])
if test x$enable_abstract_sockets = xyes; then
if test x$have_abstract_sockets = xno; then

View file

@ -0,0 +1,16 @@
Don't try to build with -DG_DISABLE_DEPRECATED - glib has moved on
source: https://src.fedoraproject.org/cgit/rpms/gamin.git/plain/gamin-manape.patch
--- server/Makefile.am.manape 2008-11-12 15:45:28.000000000 -0500
+++ server/Makefile.am 2011-07-20 21:06:37.465307638 -0400
@@ -6,8 +6,7 @@ INCLUDES = \
-I$(top_srcdir)/lib \
-I$(top_srcdir)/libgamin \
$(DAEMON_CFLAGS) \
- -DBINDIR=\""$(libexecdir)"\" \
- -DG_DISABLE_DEPRECATED
+ -DBINDIR=\""$(libexecdir)"\"
if GAMIN_DEBUG
INCLUDES += -DGAM_DEBUG_ENABLED

View file

@ -0,0 +1,16 @@
source: https://mail.gnome.org/archives/gamin-list/2016-April/msg00000.html
The musl C library does not provide the non portable
PTHREAD_MUTEX_RECURSIVE_NP. Test for PTHREAD_MUTEX_RECURSIVE_NP only.
--- libgamin/gam_data.c.orig
+++ libgamin/gam_data.c
@@ -470,7 +470,7 @@ gamin_data_new(void)
}
if (is_threaded > 0) {
pthread_mutexattr_init(&attr);
-#if defined(linux) || defined(PTHREAD_MUTEX_RECURSIVE_NP)
+#if defined(PTHREAD_MUTEX_RECURSIVE_NP)
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);
#else
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);

34
srcpkgs/gamin/template Normal file
View file

@ -0,0 +1,34 @@
# Template file for 'gamin'
pkgname=gamin
version=0.1.10
revision=1
build_style=gnu-configure
configure_args="--disable-static"
# no -python subpackage: failed to cross build for armv7hf
hostmakedepends="automake libtool pkg-config"
makedepends="glib-devel"
short_desc="Library providing the FAM File Alteration Monitor API"
maintainer="yopito <pierre.bourgin@free.fr>"
license="GPL-2"
homepage="http://www.gnome.org/~veillard/gamin/"
distfiles="$GNOME_SITE/gamin/0.1/gamin-${version}.tar.bz2"
checksum=a59948b20ce2f14136c013f155abb8c8d51db2ea167c063ff33461e453fec10a
pre_configure() {
autoreconf -fi
}
post_install() {
# "--disable-static" configure arg has no effect
rm ${DESTDIR}/usr/lib/libgamin_shared.a
}
gamin-devel_package() {
short_desc+=" - development"
depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
pkg_install() {
vmove usr/include
vmove usr/lib/*.so
vmove usr/lib/pkgconfig/gamin.pc
}
}