diff --git a/desktop/gnome/base/gamin/actions.py b/desktop/gnome/base/gamin/actions.py new file mode 100644 index 0000000000..644b5c601b --- /dev/null +++ b/desktop/gnome/base/gamin/actions.py @@ -0,0 +1,36 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Licensed under the GNU General Public License, version 3. +# See the file http://www.gnu.org/licenses/gpl.txt + +from pisi.actionsapi import autotools +from pisi.actionsapi import pisitools +from pisi.actionsapi import get + +import os + +def setup(): + autotools.autoreconf("-fi") + # suppress compiler warnings + pisitools.cflags.add("-Wno-unused-result -Wno-return-type -Wno-deprecated-declarations -Wno-format-truncation\ + -Wno-nested-externs -Wno-implicit-function-declaration -Wno-missing-prototypes -Wno-address\ + -Wno-unused-but-set-variable -Wno-misleading-indentation -Wno-unused-variable") + autotools.configure("--disable-static \ + --enable-inotify") + + for root, dirs, files in os.walk(get.workDIR()): + for name in files: + if name.endswith(".py"): + pisitools.dosed("%s/%s" % (root, name), "#!/usr/bin/env python", "#!/usr/bin/python") + +def build(): + autotools.make() + +def install(): + autotools.rawInstall("DESTDIR=%s" % get.installDIR()) + + # remove static lib. + pisitools.remove("/usr/lib/libgamin_shared.a") + + pisitools.dodoc("COPYING", "README") \ No newline at end of file diff --git a/desktop/gnome/base/gamin/files/18_gam_server_deadlocks.patch b/desktop/gnome/base/gamin/files/18_gam_server_deadlocks.patch new file mode 100644 index 0000000000..ef77496757 --- /dev/null +++ b/desktop/gnome/base/gamin/files/18_gam_server_deadlocks.patch @@ -0,0 +1,70 @@ +From cc14440eface093548cb3bc7814da11d9a99d283 Mon Sep 17 00:00:00 2001 +From: Anssi Hannula +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 + diff --git a/desktop/gnome/base/gamin/files/explicitly-link-with-python.patch b/desktop/gnome/base/gamin/files/explicitly-link-with-python.patch new file mode 100644 index 0000000000..0b3537a8b6 --- /dev/null +++ b/desktop/gnome/base/gamin/files/explicitly-link-with-python.patch @@ -0,0 +1,13 @@ +Index: gamin-0.1.10/python/Makefile.am +=================================================================== +--- gamin-0.1.10.orig/python/Makefile.am ++++ gamin-0.1.10/python/Makefile.am +@@ -11,7 +11,7 @@ python_LTLIBRARIES = _gamin.la + + _gamin_la_SOURCES = gamin.c + _gamin_la_LIBADD = $(top_builddir)/libgamin/libgamin-1.la +-_gamin_la_LDFLAGS = -module -avoid-version ++_gamin_la_LDFLAGS = -module -avoid-version `python-config --libs` + + python_PYTHON = gamin.py + diff --git a/desktop/gnome/base/gamin/files/fix-deprecated-const-01.patch b/desktop/gnome/base/gamin/files/fix-deprecated-const-01.patch new file mode 100644 index 0000000000..4385ae1fd5 --- /dev/null +++ b/desktop/gnome/base/gamin/files/fix-deprecated-const-01.patch @@ -0,0 +1,11 @@ +--- server/gam_node.c.orig 2011-10-18 16:09:04.873780685 +0200 ++++ 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); \ No newline at end of file diff --git a/desktop/gnome/base/gamin/files/fix-deprecated-const-02.patch b/desktop/gnome/base/gamin/files/fix-deprecated-const-02.patch new file mode 100644 index 0000000000..b9f2b6fd23 --- /dev/null +++ b/desktop/gnome/base/gamin/files/fix-deprecated-const-02.patch @@ -0,0 +1,11 @@ +--- server/gam_node.h.orig 2012-10-02 19:46:52.000000000 +0300 ++++ server/gam_node.h 2012-10-02 19:48:22.978078187 +0300 +@@ -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); + diff --git a/desktop/gnome/base/gamin/files/fix-deprecated-const-03.patch b/desktop/gnome/base/gamin/files/fix-deprecated-const-03.patch new file mode 100644 index 0000000000..aaf0123dc9 --- /dev/null +++ b/desktop/gnome/base/gamin/files/fix-deprecated-const-03.patch @@ -0,0 +1,11 @@ +--- server/gam_subscription.c.orig 2011-10-18 16:09:04.817780682 +0200 ++++ 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) diff --git a/desktop/gnome/base/gamin/files/fix-deprecated-const-04.patch b/desktop/gnome/base/gamin/files/fix-deprecated-const-04.patch new file mode 100644 index 0000000000..cce94723d3 --- /dev/null +++ b/desktop/gnome/base/gamin/files/fix-deprecated-const-04.patch @@ -0,0 +1,10 @@ +--- server/gam_subscription.h.orig 2007-07-04 16:36:49.000000000 +0300 ++++ server/gam_subscription.h 2012-10-02 19:57:55.549094734 +0300 +@@ -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); \ No newline at end of file diff --git a/desktop/gnome/base/gamin/files/gamin-0.1.9-ucred-headers.patch b/desktop/gnome/base/gamin/files/gamin-0.1.9-ucred-headers.patch new file mode 100644 index 0000000000..35b76e4a04 --- /dev/null +++ b/desktop/gnome/base/gamin/files/gamin-0.1.9-ucred-headers.patch @@ -0,0 +1,52 @@ +diff -up gamin-0.1.9/server/gam_channel.c.xxx gamin-0.1.9/server/gam_channel.c +--- gamin-0.1.9/server/gam_channel.c.xxx 2007-07-04 15:36:49.000000000 +0200 ++++ gamin-0.1.9/server/gam_channel.c 2008-02-14 10:00:38.654849392 +0100 +@@ -3,7 +3,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -12,6 +11,14 @@ + #include "gam_channel.h" + #include "gam_protocol.h" + ++#ifdef HAVE_LINUX ++ /* Workaround for undefined struct ucred */ ++ #define __USE_GNU ++#endif ++ ++#include ++ ++ + /* #define CHANNEL_VERBOSE_DEBUGGING */ + /************************************************************************ + * * +diff -up gamin-0.1.9/libgamin/gam_api.c.xxx gamin-0.1.9/libgamin/gam_api.c +--- gamin-0.1.9/libgamin/gam_api.c.xxx 2007-07-04 15:36:48.000000000 +0200 ++++ gamin-0.1.9/libgamin/gam_api.c 2008-02-13 17:41:50.697896914 +0100 +@@ -11,7 +11,6 @@ + #include + #include + #include +-#include + #include + #include + #include "fam.h" +@@ -20,6 +19,14 @@ + #include "gam_fork.h" + #include "gam_error.h" + ++#ifdef HAVE_LINUX ++ /* Workaround for undefined struct ucred */ ++ #define __USE_GNU ++#endif ++ ++#include ++ ++ + #define TEST_DEBUG + + #define MAX_RETRIES 25 diff --git a/desktop/gnome/base/gamin/pspec.xml b/desktop/gnome/base/gamin/pspec.xml new file mode 100644 index 0000000000..8eacb17d4b --- /dev/null +++ b/desktop/gnome/base/gamin/pspec.xml @@ -0,0 +1,93 @@ + + + + + gamin + http://www.gnome.org/~veillard/gamin/ + + PisiLinux Community + admins@pisilinux.org + + desktop.gnome.base + LGPLv2 + library + File alteration monitor library + Gamin is a file and directory monitoring system defined to be a subset of the FAM (File Alteration Monitor) system. This is a serviceprovided by a library which allows to detect when a file or a directory has been modified. + mirrors://gnome/gamin/0.1/gamin-0.1.10.tar.bz2 + + glib2-devel + + + 18_gam_server_deadlocks.patch + + explicitly-link-with-python.patch + fix-deprecated-const-01.patch + fix-deprecated-const-02.patch + fix-deprecated-const-03.patch + fix-deprecated-const-04.patch + + + + + gamin + File alteration monitor library + + glib2 + + + /usr/libexec + /usr/lib + /usr/share/doc + + + + + gamin-devel + Development files for gamin + + gamin + + + /usr/lib/pkgconfig + /usr/include + + + + + + 2020-02-26 + 0.1.10 + Rebuild for new toolchain + Blue Devil + bluedevil@sctzine.com + + + 2016-02-25 + 0.1.10 + Rebuilt with docker + İbrahim KARAGÜZEL + karaguzelibrahim@gmail.com + + + 2014-05-22 + 0.1.10 + Rebuild + Kamil Atlı + suvarice@gmail.com + + + 2014-01-25 + 0.1.10 + Rebuild + Stefan Gronewold(groni) + groni@pisilinux.org + + + 2012-10-02 + 0.1.10 + First release + Osman Erkan + osman.erkan@pisilinux.org + + + \ No newline at end of file diff --git a/desktop/gnome/base/gamin/translations.xml b/desktop/gnome/base/gamin/translations.xml new file mode 100644 index 0000000000..a4ab66f942 --- /dev/null +++ b/desktop/gnome/base/gamin/translations.xml @@ -0,0 +1,14 @@ + + + + gamin + Dosya değişim izleme kitaplığı + Gamin bir dosya ve klasör izleme kitaplığıdır. FAM (Dosya değişim izleyicisi) sisteminin bir alt kolu olarak tanımlanmaktadır. Bir dosyanın veya bir klasörün değiştiğini anlamamıza yarayan bir kitaplığıdır. + + + + gamin-devel + gamin için geliştirme dosyaları + gamin-devel, gamin için geliştirme dosyalarını içerir. + + \ No newline at end of file