summaryrefslogtreecommitdiff
path: root/app-admin/gam-server
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/gam-server')
-rw-r--r--app-admin/gam-server/Manifest3
-rw-r--r--app-admin/gam-server/files/gam-server-0.1.10-G_CONST_RETURN-removal.patch67
-rw-r--r--app-admin/gam-server/files/gam-server-0.1.10-armel-features.patch47
-rw-r--r--app-admin/gam-server/files/gam-server-0.1.10-crosscompile-fix.patch38
-rw-r--r--app-admin/gam-server/files/gam-server-0.1.10-ih_sub_cancel-deadlock.patch65
-rw-r--r--app-admin/gam-server/files/gam-server-0.1.10-noinst-lib.patch76
-rw-r--r--app-admin/gam-server/gam-server-0.1.10-r2.ebuild85
-rw-r--r--app-admin/gam-server/metadata.xml8
8 files changed, 389 insertions, 0 deletions
diff --git a/app-admin/gam-server/Manifest b/app-admin/gam-server/Manifest
new file mode 100644
index 00000000000..0951f17a012
--- /dev/null
+++ b/app-admin/gam-server/Manifest
@@ -0,0 +1,3 @@
+DIST gamin-0.1.10.tar.bz2 452194 SHA256 a59948b20ce2f14136c013f155abb8c8d51db2ea167c063ff33461e453fec10a SHA512 ccdbc06eeb958ed2d888aee3fcadbadf00e9e6566802adee82035e0762ac3351ed2a2983eabe07503ddde2ddf035185c6cd98cbece2feadaaa36e8f656a38306 WHIRLPOOL 49ca0e192d8f5e28d6ffbb201b98b0f2c736554447b37c50eaa6e76e499ab77d696cf585c96c6a38f94c2589c634e694daf2e4969ffddbbb245b07b8a6e7b2d8
+DIST gamin-0.1.9-freebsd.patch.bz2 4635 SHA256 fcd1a6655d1c7cd86db6102931a4da1c22bc85f1c4692959c1a966fec5231723 SHA512 a9d9a8e4d85b289df6f87bf2b966ff262281db0d7e6094deb4f2c179f12c6cc3e387c1e1c28306a9fb54f2eb2837f9bdd3a34b2bb68db8abfdbecc7492e9730b WHIRLPOOL 462173a33e8f804b71c6991aa5925a5c9a6ee83f80b13967369c5c45721069e629c052e5daebfc3fb03bbad4d3054b523afb6e430db997581f3ff942f7da3180
+DIST pkg-config-0.26.tar.gz 396399 SHA256 94c1936a797c930fb3e4e5a154165b6268caba22b32d24083dd4c492a533c8af SHA512 9390d5918dd4ac520b914d2330aa7cae2587ca7b21b03bc88372fd5dbbd78e33eeb3fca39fcdb6dd10113658f03118a1c8829149c7029eb0dd80348d100170a4 WHIRLPOOL f535946a02192a9bffc7be0fae454e25aa86af8bac7f47622d52ed13f77f1ba05ff9b5693b2a501981e3991e4e1595eced22dee4ab748b310baa7d57267a62a7
diff --git a/app-admin/gam-server/files/gam-server-0.1.10-G_CONST_RETURN-removal.patch b/app-admin/gam-server/files/gam-server-0.1.10-G_CONST_RETURN-removal.patch
new file mode 100644
index 00000000000..087312f5baa
--- /dev/null
+++ b/app-admin/gam-server/files/gam-server-0.1.10-G_CONST_RETURN-removal.patch
@@ -0,0 +1,67 @@
+From 2a9d32734a2e5125ae77de6c75789e1c6ee24dbe Mon Sep 17 00:00:00 2001
+From: Maciej Piechotka <uzytkownik2@gmail.com>
+Date: Tue, 13 Sep 2011 09:47:05 +0200
+Subject: [PATCH] Fix compilation of recent glib removing G_CONST_RETURN
+
+---
+ 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(-)
+
+diff --git a/server/gam_node.c b/server/gam_node.c
+index 02358ba..d0302d2 100644
+--- a/server/gam_node.c
++++ b/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);
+diff --git a/server/gam_node.h b/server/gam_node.h
+index 02c8692..83349a8 100644
+--- a/server/gam_node.h
++++ b/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);
+
+diff --git a/server/gam_subscription.c b/server/gam_subscription.c
+index dfa3273..4675b34 100644
+--- a/server/gam_subscription.c
++++ b/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)
+diff --git a/server/gam_subscription.h b/server/gam_subscription.h
+index d894fbe..e6b4e15 100644
+--- a/server/gam_subscription.h
++++ b/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);
+
+--
+1.7.6.1
+
diff --git a/app-admin/gam-server/files/gam-server-0.1.10-armel-features.patch b/app-admin/gam-server/files/gam-server-0.1.10-armel-features.patch
new file mode 100644
index 00000000000..fdfcbd7e6db
--- /dev/null
+++ b/app-admin/gam-server/files/gam-server-0.1.10-armel-features.patch
@@ -0,0 +1,47 @@
+From 05dcfcd69848e119c6a30d363bc41e896029f8af Mon Sep 17 00:00:00 2001
+From: Sebastian Dröge <slomo@debian.org>
+Date: Tue, 15 Dec 2009 12:24:25 +0000
+Subject: Bug 588338 - Enable linux specific features on armel
+
+---
+diff --git a/configure.in b/configure.in
+index b0bbaec..e4b684e 100644
+--- a/configure.in
++++ b/configure.in
+@@ -176,7 +176,7 @@ fi
+
+ dnl check what OS we're on
+ #AM_CONDITIONAL(HAVE_LINUX, test x$target_os = xlinux-gnu)
+-if test x$target_os = xlinux-gnu; then
++if test x$target_os = xlinux-gnu -o x$target_os = xlinux-gnueabi; then
+ AC_DEFINE([HAVE_LINUX],[],[Whether we are using linux or not])
+ fi
+
+@@ -223,7 +223,7 @@ fi
+ dnl check if inotify backend is enabled
+ AM_CONDITIONAL(ENABLE_INOTIFY, test x$inotify = xtrue)
+
+-if test x$os = xlinux-gnu; then
++if test x$os = xlinux-gnu -o x$os = xlinux-gnueabi; then
+ AC_ARG_ENABLE(dnotify,
+ AC_HELP_STRING([--disable-dnotify], [Disable the DNotify backend]),
+ [dnotify="${enableval}"], [dnotify=true])
+@@ -297,10 +297,12 @@ else
+ fi
+
+ dnl Use weak symbols on linux/gcc to avoid imposing libpthreads to apps
+-if test x$os = xlinux-gnu -a x$WITH_THREADS = x1 ; then
+- if test "${CC}" = "gcc" ; then
+- echo Use weak symbols !
+- THREAD_LIBS=
++if test x$os = xlinux-gnu -o x$os = xlinux-gnueabi ; then
++ if test x$WITH_THREADS = x1 ; then
++ if test "${CC}" = "gcc" ; then
++ echo Use weak symbols !
++ THREAD_LIBS=
++ fi
+ fi
+ fi
+ AC_SUBST(THREAD_LIBS)
+--
+cgit v0.9.0.2
diff --git a/app-admin/gam-server/files/gam-server-0.1.10-crosscompile-fix.patch b/app-admin/gam-server/files/gam-server-0.1.10-crosscompile-fix.patch
new file mode 100644
index 00000000000..ce3a15b5e16
--- /dev/null
+++ b/app-admin/gam-server/files/gam-server-0.1.10-crosscompile-fix.patch
@@ -0,0 +1,38 @@
+--- configure.in.orig 2009-04-26 23:00:43.445135823 +0300
++++ configure.in 2009-04-26 23:25:04.042489243 +0300
+@@ -389,8 +389,7 @@
+
+ AC_MSG_CHECKING(abstract socket namespace)
+ AC_LANG_PUSH(C)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+-[[
++AC_TRY_RUN([
+ #include <sys/types.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -398,8 +397,8 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <errno.h>
+-]],
+-[[
++
++int main() {
+ int listen_fd;
+ struct sockaddr_un addr;
+
+@@ -424,9 +423,11 @@
+ }
+ else
+ exit (0);
+-]])],
+- [have_abstract_sockets=yes],
+- [have_abstract_sockets=no])
++}
++],
++have_abstract_sockets=yes,
++have_abstract_sockets=no,
++have_abstract_sockets=no)
+ AC_LANG_POP(C)
+ AC_MSG_RESULT($have_abstract_sockets)
+
diff --git a/app-admin/gam-server/files/gam-server-0.1.10-ih_sub_cancel-deadlock.patch b/app-admin/gam-server/files/gam-server-0.1.10-ih_sub_cancel-deadlock.patch
new file mode 100644
index 00000000000..9f2b2a5150b
--- /dev/null
+++ b/app-admin/gam-server/files/gam-server-0.1.10-ih_sub_cancel-deadlock.patch
@@ -0,0 +1,65 @@
+From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001
+From: Anssi Hannula <anssi@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
+---
+ 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
+
diff --git a/app-admin/gam-server/files/gam-server-0.1.10-noinst-lib.patch b/app-admin/gam-server/files/gam-server-0.1.10-noinst-lib.patch
new file mode 100644
index 00000000000..1f2fcff6f5b
--- /dev/null
+++ b/app-admin/gam-server/files/gam-server-0.1.10-noinst-lib.patch
@@ -0,0 +1,76 @@
+From e68aacc084d65fd0780991265444061b24422bd0 Mon Sep 17 00:00:00 2001
+From: Remi Cardona <remi@gentoo.org>
+Date: Mon, 20 Oct 2008 19:17:36 +0200
+Subject: [PATCH] make libgamin_shared a "noinst" libtool helper lib
+
+---
+ lib/Makefile.am | 4 ++--
+ libgamin/Makefile.am | 15 ++-------------
+ server/Makefile.am | 2 +-
+ 3 files changed, 5 insertions(+), 16 deletions(-)
+
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 3e2289c..af2152a 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -7,9 +7,9 @@ if GAMIN_DEBUG
+ INCLUDES += -DGAM_DEBUG_ENABLED
+ endif
+
+-lib_LIBRARIES = libgamin_shared.a
++noinst_LTLIBRARIES = libgamin_shared.la
+
+-libgamin_shared_a_SOURCES = \
++libgamin_shared_la_SOURCES = \
+ gam_event.c \
+ gam_event.h \
+ gam_error.c \
+diff --git a/libgamin/Makefile.am b/libgamin/Makefile.am
+index 35aa740..14fc06b 100644
+--- a/libgamin/Makefile.am
++++ b/libgamin/Makefile.am
+@@ -25,19 +25,9 @@ libgamin_1_la_SOURCES = \
+ gam_data.h \
+ gam_fork.c \
+ gam_fork.h \
+- gam_protocol.h \
+- gam_error.c \
+- gam_event.c
++ gam_protocol.h
+
+-gam_error.c: $(top_srcdir)/lib/gam_error.c
+- @(cp $(top_srcdir)/lib/gam_error.c gam_error.c)
+-
+-gam_event.c: $(top_srcdir)/lib/gam_event.c
+- @(cp $(top_srcdir)/lib/gam_event.c gam_event.c)
+-
+-CLEANFILES=gam_error.c gam_event.c
+-
+-libgamin_1_la_LIBADD =
++libgamin_1_la_LIBADD = $(top_builddir)/lib/libgamin_shared.la
+
+ libgamin_1_la_LDFLAGS = -Wl,--version-script=$(srcdir)/gamin_sym.version \
+ -version-info @GAMIN_VERSION_INFO@ @THREAD_LIBS@
+@@ -54,6 +44,5 @@ noinst_PROGRAMS= gamin
+
+ gamin_SOURCES = gamin.c
+ gamin_LDFLAGS =
+-gamin_DEPENDENCIES = $(DEPS) libgamin-1.la
+ gamin_LDADD= $(LDADDS) libgamin-1.la
+
+diff --git a/server/Makefile.am b/server/Makefile.am
+index 37aed8b..6aa5e02 100644
+--- a/server/Makefile.am
++++ b/server/Makefile.am
+@@ -80,7 +80,7 @@ endif
+
+ gam_server_LDFLAGS =
+ gam_server_DEPENDENCIES = $(DEPS)
+-gam_server_LDADD= $(top_builddir)/lib/libgamin_shared.a $(LDADDS) $(DAEMON_LIBS)
++gam_server_LDADD= $(top_builddir)/lib/libgamin_shared.la $(LDADDS) $(DAEMON_LIBS)
+
+ if ENABLE_HURD_MACH_NOTIFY
+ gam_server_LDADD += -lports -lthreads
+--
+1.6.0.2
+
diff --git a/app-admin/gam-server/gam-server-0.1.10-r2.ebuild b/app-admin/gam-server/gam-server-0.1.10-r2.ebuild
new file mode 100644
index 00000000000..5ca1a58f9b6
--- /dev/null
+++ b/app-admin/gam-server/gam-server-0.1.10-r2.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="5"
+GNOME_ORG_MODULE="gamin"
+GNOME_TARBALL_SUFFIX="bz2"
+
+inherit autotools eutils flag-o-matic libtool multilib gnome.org
+
+DESCRIPTION="Library providing the FAM File Alteration Monitor API"
+HOMEPAGE="http://www.gnome.org/~veillard/gamin/"
+SRC_URI="${SRC_URI}
+ mirror://gentoo/gamin-0.1.9-freebsd.patch.bz2
+ http://pkgconfig.freedesktop.org/releases/pkg-config-0.26.tar.gz" # pkg.m4 for eautoreconf
+
+LICENSE="LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd"
+IUSE="debug kernel_linux"
+
+RDEPEND=">=dev-libs/glib-2:2
+ >=dev-libs/libgamin-0.1.10
+ !app-admin/fam
+ !<app-admin/gamin-0.1.10"
+
+DEPEND="${RDEPEND}"
+
+#S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ mv -vf "${WORKDIR}"/pkg-config-*/pkg.m4 "${WORKDIR}"/ || die
+
+ # Fix compile warnings; bug #188923
+ epatch "${DISTDIR}/gamin-0.1.9-freebsd.patch.bz2"
+
+ # Fix file-collision due to shared library, upstream bug #530635
+ epatch "${FILESDIR}/${PN}-0.1.10-noinst-lib.patch"
+
+ # Fix compilation with latest glib, bug #382783
+ epatch "${FILESDIR}/${PN}-0.1.10-G_CONST_RETURN-removal.patch"
+
+ # Fix crosscompilation issues, bug #267604
+ epatch "${FILESDIR}/${PN}-0.1.10-crosscompile-fix.patch"
+
+ # Enable linux specific features on armel, upstream bug #588338
+ epatch "${FILESDIR}/${P}-armel-features.patch"
+
+ # Fix deadlocks with glib-2.32, bug #413331, upstream #667230
+ epatch "${FILESDIR}/${P}-ih_sub_cancel-deadlock.patch"
+
+ # Drop DEPRECATED flags
+ sed -i -e 's:-DG_DISABLE_DEPRECATED:$(NULL):g' server/Makefile.am || die
+
+ sed -i \
+ -e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \
+ -e 's:AM_PROG_CC_STDC:AC_PROG_CC:' \
+ configure.in || die #466948
+
+ # autoconf is required as the user-cflags patch modifies configure.in
+ # however, elibtoolize is also required, so when the above patch is
+ # removed, replace the following call with a call to elibtoolize
+ AT_M4DIR="${WORKDIR}" eautoreconf
+}
+
+src_configure() {
+ # fixes bug 225403
+ #append-flags "-D_GNU_SOURCE"
+
+ if ! has_version virtual/pkgconfig; then
+ export DAEMON_CFLAGS="-I/usr/include/glib-2.0 -I/usr/$(get_libdir)/glib-2.0/include"
+ export DAEMON_LIBS="-lglib-2.0"
+ fi
+
+ econf \
+ --disable-debug \
+ --disable-libgamin \
+ --without-python \
+ $(use_enable kernel_linux inotify) \
+ $(use_enable debug debug-api)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die
+}
diff --git a/app-admin/gam-server/metadata.xml b/app-admin/gam-server/metadata.xml
new file mode 100644
index 00000000000..9879e83b822
--- /dev/null
+++ b/app-admin/gam-server/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>freedesktop</herd>
+ <maintainer>
+ <email>freedesktop-bugs@gentoo.org</email>
+ </maintainer>
+</pkgmetadata>