]> arthur.barton.de Git - netatalk.git/commitdiff
Merge remote-tracking branch 'origin/develop' into spotlight
authorRalph Boehme <sloowfranklin@gmail.com>
Mon, 4 Mar 2013 20:50:58 +0000 (21:50 +0100)
committerRalph Boehme <sloowfranklin@gmail.com>
Mon, 4 Mar 2013 20:50:58 +0000 (21:50 +0100)
Conflicts:
include/atalk/globals.h

1  2 
etc/afpd/main.c
include/atalk/globals.h
libatalk/util/netatalk_conf.c
macros/netatalk.m4

diff --combined etc/afpd/main.c
index 76095b8ccd1e6ff43356c4a5284013c8cd849eb3,141d420cdf80fc53752c6fbc680e9029d86f84fc..516adf16c6f19d43941b9bf37071594fe2f219f0
@@@ -320,7 -320,7 +320,7 @@@ int main(int ac, char **av
  
      /* Initialize */
      cnid_init();
 -    
 +
      /* watch atp, dsi sockets and ipc parent/child file descriptor. */
      fd_set_listening_sockets(&obj);
  
  
  #ifdef HAVE_DBUS_GLIB
      /* Run dbus AFP statics thread */
-     (void)afpstats_init(server_children);
+     if (obj.options.flags & OPTION_DBUS_AFPSTATS)
+         (void)afpstats_init(server_children);
  #endif
  
      afp_child_t *child;
diff --combined include/atalk/globals.h
index 455a92b5fc95977b39b1a6eefa682810838a8eba,96f062a06aa1600ea939280532c4eeb525b4463c..6f8ff68f7c79f0b10990120380f5abb4738705f3
@@@ -55,7 -55,8 +55,9 @@@
  #define OPTION_ACL2MACCESS   (1 << 8)
  #define OPTION_NOZEROCONF    (1 << 9)
  #define OPTION_SHARE_RESERV  (1 << 11) /* whether to use Solaris fcntl F_SHARE locks */
- #define OPTION_SPOTLIGHT     (1 << 12) /* whether to enable Spotlight support */
+ #define OPTION_DBUS_AFPSTATS (1 << 12) /* whether to run dbus thread for afpstats */
++#define OPTION_SPOTLIGHT     (1 << 13) /* whether to enable Spotlight support */
  #define PASSWD_NONE     0
  #define PASSWD_SET     (1 << 0)
  #define PASSWD_NOSAVE  (1 << 1)
@@@ -115,8 -116,6 +117,8 @@@ struct afp_options 
      char *logfile;
      char *mimicmodel;
      char *adminauthuser;
 +    char *slmod_path;
 +    int tracker_loglevel;
      struct afp_volume_name volfile;
  };
  
index e56701ad18c3eed122c87e7aacdb15ffd3721756,fdc7e556b2a646b95b1e51908b3465a0c2618646..53c29e2814fc7113572d9ff8ca5aecd73a5f2439
@@@ -916,16 -916,16 +916,16 @@@ static struct vol *creatvol(AFPObj *obj
      initvol_vfs(volume);
  
      /* get/store uuid from file in afpd master*/
 -    if (!(pwd) && (volume->v_flags & AFPVOL_TM)) {
 -        char *uuid = get_vol_uuid(obj, volume->v_localname);
 -        if (!uuid) {
 -            LOG(log_error, logtype_afpd, "Volume '%s': couldn't get UUID",
 -                volume->v_localname);
 -        } else {
 -            volume->v_uuid = uuid;
 -            LOG(log_debug, logtype_afpd, "Volume '%s': UUID '%s'",
 -                volume->v_localname, volume->v_uuid);
 -        }
 +    become_root();
 +    char *uuid = get_vol_uuid(obj, volume->v_localname);
 +    unbecome_root();
 +    if (!uuid) {
 +        LOG(log_error, logtype_afpd, "Volume '%s': couldn't get UUID",
 +            volume->v_localname);
 +    } else {
 +        volume->v_uuid = uuid;
 +        LOG(log_debug, logtype_afpd, "Volume '%s': UUID '%s'",
 +            volume->v_localname, volume->v_uuid);
      }
  
      /* no errors shall happen beyond this point because the cleanup would mess the volume chain up */
@@@ -1692,12 -1692,6 +1692,12 @@@ int afp_config_parse(AFPObj *AFPObj, ch
      options->configfile  = AFPObj->cmdlineconfigfile ? strdup(AFPObj->cmdlineconfigfile) : strdup(_PATH_CONFDIR "afp.conf");
      options->sigconffile = strdup(_PATH_STATEDIR "afp_signature.conf");
      options->uuidconf    = strdup(_PATH_STATEDIR "afp_voluuid.conf");
 +#ifdef HAVE_TRACKER_SPARQL
 +    options->slmod_path  = strdup(_PATH_AFPDUAMPATH "slmod_sparql.so");
 +#endif
 +#ifdef HAVE_TRACKER_RDF
 +    options->slmod_path  = strdup(_PATH_AFPDUAMPATH "slmod_rdf.so");
 +#endif
      options->flags       = OPTION_UUID | AFPObj->cmdlineflags;
      
      if ((config = iniparser_load(AFPObj->options.configfile)) == NULL)
          options->flags |= OPTION_NOSENDFILE;
      if (iniparser_getboolean(config, INISEC_GLOBAL, "solaris share reservations", 1))
          options->flags |= OPTION_SHARE_RESERV;
+     if (iniparser_getboolean(config, INISEC_GLOBAL, "afpstats", 0))
+         options->flags |= OPTION_DBUS_AFPSTATS;
      if (iniparser_getboolean(config, INISEC_GLOBAL, "afp read locks", 0))
          options->flags |= OPTION_AFP_READ_LOCK;
 +    if (iniparser_getboolean(config, INISEC_GLOBAL, "spotlight", 0))
 +        options->flags |= OPTION_SPOTLIGHT;
      if (!iniparser_getboolean(config, INISEC_GLOBAL, "save password", 1))
          options->passwdbits |= PASSWD_NOSAVE;
      if (iniparser_getboolean(config, INISEC_GLOBAL, "set password", 0))
      options->fce_fmodwait   = iniparser_getint   (config, INISEC_GLOBAL, "fce holdfmod",   60);
      options->sleep          = iniparser_getint   (config, INISEC_GLOBAL, "sleep time",     10);
      options->disconnected   = iniparser_getint   (config, INISEC_GLOBAL, "disconnect time",24);
 +    options->tracker_loglevel = iniparser_getint (config, INISEC_GLOBAL, "tracker loglevel", 1);
  
      if ((p = iniparser_getstring(config, INISEC_GLOBAL, "hostname", NULL))) {
          EC_NULL_LOG( options->hostname = strdup(p) );
@@@ -1956,8 -1949,6 +1958,8 @@@ void afp_config_free(AFPObj *obj
          CONFIG_ARG_FREE(obj->options.Cnid_port);
      if (obj->options.fqdn)
          CONFIG_ARG_FREE(obj->options.fqdn);
 +    if (obj->options.slmod_path)
 +        CONFIG_ARG_FREE(obj->options.slmod_path);
  
      if (obj->options.unixcodepage)
          CONFIG_ARG_FREE(obj->options.unixcodepage);
diff --combined macros/netatalk.m4
index 212251731552ebdb422b3a3223d0eba7499db55f,c190405fae301f1b6e717f55c4c5d2d4a5591bd3..b5096e37677f8bc10e7bdc80e4b495d277ea7b0b
@@@ -37,7 -37,7 +37,7 @@@ dnl Check for dbus-glib, for AFP stat
  AC_DEFUN([AC_NETATALK_DBUS_GLIB], [
      atalk_cv_with_dbus=no
      PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.1, have_dbus=yes, have_dbus=no)
-     PKG_CHECK_MODULES(DBUS_GLIB, gobject-2.0 >= 2.6, have_dbus_glib=yes, have_dbus_glib=no)
+     PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1, have_dbus_glib=yes, have_dbus_glib=no)
      PKG_CHECK_MODULES(DBUS_GTHREAD, gthread-2.0, have_dbus_gthread=yes, have_dbus_gthread=no)
      AC_SUBST(DBUS_CFLAGS)
      AC_SUBST(DBUS_LIBS)
@@@ -77,63 -77,6 +77,63 @@@ AC_DEFUN([AC_DEVELOPER], 
      AM_CONDITIONAL(DEVELOPER, test x"$enable_dev" = x"yes")
  ])
  
 +dnl Tracker, for Spotlight
 +AC_DEFUN([AC_NETATALK_SPOTLIGHT], [
 +    ac_cv_have_tracker=no
 +    dnl Tracker SPARQL
 +    ac_cv_tracker_pkg_default=tracker-sparql-0.12
 +    AC_ARG_WITH([tracker-pkg-config],
 +      [AS_HELP_STRING([--with-tracker-pkg-config],[name of the Tracker SPARQL pkg in pkg-config])],
 +      [ac_cv_tracker_pkg=$withval],
 +      [ac_cv_tracker_pkg=$ac_cv_tracker_pkg_default])
 +
 +    PKG_CHECK_MODULES([TRACKER], [$ac_cv_tracker_pkg >= 0.12], [ac_cv_have_tracker_sparql=yes], [ac_cv_have_tracker_sparql=no])
 +
 +    if test x"$ac_cv_have_tracker_sparql" = x"no" ; then
 +        if test x"$need_tracker" = x"yes" ; then
 +            AC_MSG_ERROR([$ac_cv_tracker_pkg not found])
 +        fi
 +    else
 +        AC_DEFINE(HAVE_TRACKER, 1, [Define if Tracker is available])
 +        AC_DEFINE(HAVE_TRACKER_SPARQL, 1, [Define if Tracker SPARQL is available])
 +        ac_cv_tracker_prefix=`pkg-config --variable=prefix $ac_cv_tracker_pkg`
 +        AC_DEFINE_UNQUOTED(TRACKER_PREFIX, ["$ac_cv_tracker_prefix"], [Path to Tracker])
 +      fi
 +
 +    ac_cv_tracker_miner_pkg_default=tracker-miner-0.12
 +    AC_ARG_WITH([tracker-miner-pkg-config],
 +      [AS_HELP_STRING([--with-tracker-miner-pkg-config],[name of the Tracker miner pkg in pkg-config])],
 +      [ac_cv_tracker_miner_pkg=$withval],
 +      [ac_cv_tracker_miner_pkg=$ac_cv_tracker_miner_pkg_default])
 +
 +    PKG_CHECK_MODULES([TRACKER_MINER], [$ac_cv_tracker_miner_pkg >= 0.12], [ac_cv_have_tracker_miner=yes], [ac_cv_have_tracker_miner=no])
 +
 +    if test x"$ac_cv_have_tracker_miner" = x"yes" ; then
 +        AC_DEFINE(HAVE_TRACKER_MINER, 1, [Define if Tracker miner library is available])
 +        AC_SUBST(TRACKER_MINER_CFLAGS)
 +        AC_SUBST(TRACKER_MINER_LIBS)
 +      fi
 +
 +    dnl Test for Tracker 0.6 on Solaris and derived platforms
 +    if test x"$this_os" = x"solaris" ; then
 +        PKG_CHECK_MODULES([TRACKER], [tracker >= 0.6], [ac_cv_have_tracker_rdf=yes], [ac_cv_have_tracker_rdf=no])
 +        if test x"$ac_cv_have_tracker_rdf" = x"yes" ; then
 +            AC_DEFINE(HAVE_TRACKER, 1, [Define if Tracker is available])
 +            AC_DEFINE(HAVE_TRACKER_RDF, 1, [Define if Tracker 0.6 with support for RDF queries is available])
 +            ac_cv_tracker_prefix=`pkg-config --variable=prefix tracker`
 +            AC_DEFINE_UNQUOTED(TRACKER_RDF_PREFIX, ["$ac_cv_tracker_prefix"], [Path to Tracker])
 +          fi
 +    fi
 +
 +    if test x"$ac_cv_have_tracker_sparql" = x"yes" -o x"$ac_cv_have_tracker_rdf" = x"yes" ; then
 +       ac_cv_have_tracker=yes
 +    fi
 +    AC_SUBST(TRACKER_CFLAGS)
 +    AC_SUBST(TRACKER_LIBS)
 +    AM_CONDITIONAL(HAVE_TRACKER_SPARQL, [test x"$ac_cv_have_tracker_sparql" = x"yes"])
 +    AM_CONDITIONAL(HAVE_TRACKER_RDF, [test x"$ac_cv_have_tracker_rdf" = x"yes"])
 +])
 +
  dnl Whether to disable bundled libevent
  AC_DEFUN([AC_NETATALK_LIBEVENT], [
      AC_MSG_CHECKING([whether to use bundled libevent])