On Tue, 2004-09-21 at 08:40 -0400, Daniel Veillard wrote: Hi > I just pushed an update which fixed a few bugs and added support for > a per user configuration: > Downloads at the usual places: > http://www.gnome.org/~veillard/gamin/downloads.html > News log: > http://www.gnome.org/~veillard/gamin/news.html > Doc for the configuration file: > http://www.gnome.org/~veillard/gamin/config.html > > I don't know if people are using both dnotify and inotify at the same time. > In that case code and configuration might need to be extended for a finer > grain selection. > Hmm, I do not think (certainly do not look that way) you can use both dnotify and inotify at the same time (or at least in the same instance of a gam_server) ? Also, this will currently just work for dnotify, as the inotify backend do not make use of poll currently? Or more specific, adding 'poll /foo' to .gaminrc will not do anything currently if inotify is in use. Further, it looks like for both inotify and dnotify 'notify /foo' will have no use, as they do not use gam_exclude_check yet ... ? --- Then, attached is a patch that does the following: - Use ENABLE_DNOTIFY (instead of #ifdef linux) in gam_server.c to include gam_dnotify.h and init the dnotify backend, else we get link errors if we build with inotify support, as gam_dnotify.o was not build (./configure --enable-inotify --disable-kernel). - Use '#ifdef HAVE_LINUX' instead of '#ifdef linux', as this is what is defined in config.h if we are building for linux. I might be wrong here, but I think 'linux' gets defined by gcc ... - Actually build dnotify backend again if --enable-inotify was passed, but not --disable-kernel. Comments appreciated. Regards, -- Martin Schlemmer Gentoo Linux Developer, Desktop/System Team Developer Cape Town, South Africa
--- gamin-0.0.10/configure.in 2004-09-21 21:16:53.608085112 +0200 +++ gamin-0.0.10.az/configure.in 2004-09-21 21:49:59.739147296 +0200 @@ -169,11 +169,19 @@ AM_CONDITIONAL(HAVE_LINUX, test x$os = x if test x$os = xlinux-gnu; then AC_DEFINE([HAVE_LINUX],[],[Whether we are using linux or not]) + + # We enable dnotify no matter what. If the user enables + # inotify, he will still have dnotify to fall back on ... + AC_DEFINE(ENABLE_DNOTIFY,1,[Use dnotify as backend]) backend="dnotify" else backend="polling" fi +# We do not care about inotify for now - if the user enables +# it, we still want to build dnotify support ... +AM_CONDITIONAL(ENABLE_DNOTIFY, test x$backend = xdnotify) + AC_ARG_ENABLE(inotify, [ --enable-inotify Uses inotify as backend], [case "${enableval}" in @@ -184,17 +192,14 @@ esac]) if test x$backend = xinotify; then AC_DEFINE(ENABLE_INOTIFY,1,[Use inotify as backend]) -else - if test x$backend = xdnotify; then - AC_DEFINE(ENABLE_DNOTIFY,1,[Use dnotify as backend]) - else if test x$backend = xpolling; then - AC_DEFINE(ENABLE_POLLING,1,[Use polling as backend]) - fi +else + # If all else fails, use polling + if test x$backend = xpolling; then + AC_DEFINE(ENABLE_POLLING,1,[Use polling as backend]) fi fi AM_CONDITIONAL(ENABLE_INOTIFY, test x$backend = xinotify) -AM_CONDITIONAL(ENABLE_DNOTIFY, test x$backend = xdnotify) dnl check for flavours of varargs macros (test from GLib) AC_MSG_CHECKING(for ISO C99 varargs macros in C) --- gamin-0.0.10/server/gam_excludes.c 2004-09-21 21:44:04.466157000 +0200 +++ gamin-0.0.10.az/server/gam_excludes.c 2004-09-21 21:48:36.589787920 +0200 @@ -19,7 +19,7 @@ struct _gam_exclude { static int initialized = 0; static GList *excludes = NULL; static char *static_excludes[] = { -#ifdef linux +#ifdef HAVE_LINUX "/media/*", "/mnt/*", #endif --- gamin-0.0.10/server/gam_server.c 2004-09-21 21:19:34.375644728 +0200 +++ gamin-0.0.10.az/server/gam_server.c 2004-09-21 21:31:33.929255952 +0200 @@ -36,7 +36,7 @@ #ifdef ENABLE_INOTIFY #include "gam_inotify.h" #endif -#ifdef linux +#ifdef ENABLE_DNOTIFY #include "gam_dnotify.h" #endif #include "gam_excludes.h" @@ -72,7 +72,7 @@ gam_init_subscriptions(void) return(TRUE); } #endif -#ifdef linux +#ifdef ENABLE_DNOTIFY if (gam_dnotify_init()) { gam_debug(DEBUG_INFO, "Using DNotify as backend\n"); return(TRUE);
Attachment:
signature.asc
Description: This is a digitally signed message part