dnl Check for Extended Attributes support
AC_NETATALK_EXTENDED_ATTRIBUTES
+dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
+AC_NETATALK_SMB_SHAREMODES
+
dnl --------------------------------------------------------------------------
dnl FHS stuff has to be done last because it overrides other defaults
dnl --------------------------------------------------------------------------
AC_DEFINE_UNQUOTED(EA_MODULES,["$neta_cv_eas"],[Available Extended Attributes modules])
])
-AC_DEFUN([AC_NETATALK_], [
-])
+dnl Check for libsmbsharemodes from Samba for Samba/Netatalk access/deny/share modes interop
+dnl Defines "neta_cv_have_smbshmd" to "yes" or "no"
+dnl AC_SUBST's "SMB_SHAREMODES_CFLAGS" and "SMB_SHAREMODES_LDFLAGS"
+dnl AM_CONDITIONAL's "USE_SMB_SHAREMODES"
+AC_DEFUN([AC_NETATALK_SMB_SHAREMODES], [
+ neta_cv_have_smbshmd=no
+ AC_ARG_WITH(smbsharemodes-lib,
+ [ --with-smbsharemodes-lib=PATH PATH to libsmbsharemodes lib from Samba],
+ [SMB_SHAREMODES_LDFLAGS="-L$withval -lsmbsharemodes"]
+ )
+ AC_ARG_WITH(smbsharemodes-include,
+ [ --with-smbsharemodes-include=PATH PATH to libsmbsharemodes header from Samba],
+ [SMB_SHAREMODES_CFLAGS="-I$withval"]
+ )
+ AC_ARG_WITH(smbsharemodes,
+ [AS_HELP_STRING([--with-smbsharemodes],[Samba interop (default is yes)])],
+ [use_smbsharemodes=$withval],
+ [use_smbsharemodes=yes]
+ )
+
+ if test x"$use_smbsharemodes" = x"yes" ; then
+ AC_MSG_CHECKING([whether to enable Samba/Netatalk access/deny/share-modes interop])
+
+ saved_CFLAGS="$CFLAGS"
+ saved_LDFLAGS="$LDFLAGS"
+ CFLAGS="$SMB_SHAREMODES_CFLAGS $CFLAGS"
+ LDFLAGS="$SMB_SHAREMODES_LDFLAGS $LDFLAGS"
+
+ AC_LINK_IFELSE(
+ [#include <unistd.h>
+ #include <stdio.h>
+ #include <sys/time.h>
+ #include <time.h>
+ #include <stdint.h>
+ /* From messages.h */
+ struct server_id {
+ pid_t pid;
+ };
+ #include "smb_share_modes.h"
+ int main(void) { (void)smb_share_mode_db_open(""); return 0;}],
+ [neta_cv_have_smbshmd=yes]
+ )
+
+ AC_MSG_RESULT($neta_cv_have_smbshmd)
+ AC_SUBST(SMB_SHAREMODES_CFLAGS, [$SMB_SHAREMODES_CFLAGS])
+ AC_SUBST(SMB_SHAREMODES_LDFLAGS, [$SMB_SHAREMODES_LDFLAGS])
+ CFLAGS="$saved_CFLAGS"
+ LDFLAGS="$saved_LDFLAGS"
+ fi
-AC_DEFUN([AC_NETATALK_], [
+ AM_CONDITIONAL(USE_SMB_SHAREMODES, test x"$neta_cv_have_smbshmd" = x"yes")
])
AC_MSG_RESULT([ admin group support: $netatalk_cv_admin_group])
AC_MSG_RESULT([ valid shell check: $netatalk_cv_use_shellcheck])
AC_MSG_RESULT([ cracklib support: $netatalk_cv_with_cracklib])
+ AC_MSG_RESULT([ Samba sharemode interop: $neta_cv_have_smbshmd])
if test x"$use_pam_so" = x"yes" -a x"$netatalk_cv_install_pam" = x"no"; then
AC_MSG_RESULT([])
AC_MSG_WARN([ PAM support was configured for your system, but the netatalk PAM configuration file])