mirror of
https://github.com/vim/vim.git
synced 2025-09-25 03:54:15 -04:00
updated for version 7.3.432
Problem: ACLs are not supported for ZFS or NFSv4 on Solaris. Solution: Add configure check and code. (Danek Duvall)
This commit is contained in:
42
src/auto/configure
vendored
42
src/auto/configure
vendored
@@ -11328,6 +11328,46 @@ fi
|
|||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for acl_get in -lsec" >&5
|
||||||
|
$as_echo_n "checking for acl_get in -lsec... " >&6; }
|
||||||
|
if test "${ac_cv_lib_sec_acl_get+set}" = set; then :
|
||||||
|
$as_echo_n "(cached) " >&6
|
||||||
|
else
|
||||||
|
ac_check_lib_save_LIBS=$LIBS
|
||||||
|
LIBS="-lsec $LIBS"
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
/* Override any GCC internal prototype to avoid an error.
|
||||||
|
Use char because int might match the return type of a GCC
|
||||||
|
builtin and then its argument prototype would still apply. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
#endif
|
||||||
|
char acl_get ();
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
return acl_get ();
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
_ACEOF
|
||||||
|
if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
ac_cv_lib_sec_acl_get=yes
|
||||||
|
else
|
||||||
|
ac_cv_lib_sec_acl_get=no
|
||||||
|
fi
|
||||||
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
LIBS=$ac_check_lib_save_LIBS
|
||||||
|
fi
|
||||||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sec_acl_get" >&5
|
||||||
|
$as_echo "$ac_cv_lib_sec_acl_get" >&6; }
|
||||||
|
if test "x$ac_cv_lib_sec_acl_get" = x""yes; then :
|
||||||
|
LIBS="$LIBS -lsec"; $as_echo "#define HAVE_SOLARIS_ZFS_ACL 1" >>confdefs.h
|
||||||
|
|
||||||
|
else
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris ACL support" >&5
|
||||||
$as_echo_n "checking for Solaris ACL support... " >&6; }
|
$as_echo_n "checking for Solaris ACL support... " >&6; }
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
@@ -11355,6 +11395,8 @@ $as_echo "no" >&6; }
|
|||||||
fi
|
fi
|
||||||
rm -f core conftest.err conftest.$ac_objext \
|
rm -f core conftest.err conftest.$ac_objext \
|
||||||
conftest$ac_exeext conftest.$ac_ext
|
conftest$ac_exeext conftest.$ac_ext
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AIX ACL support" >&5
|
||||||
$as_echo_n "checking for AIX ACL support... " >&6; }
|
$as_echo_n "checking for AIX ACL support... " >&6; }
|
||||||
|
@@ -363,6 +363,7 @@
|
|||||||
|
|
||||||
/* Define if you want to add support for ACL */
|
/* Define if you want to add support for ACL */
|
||||||
#undef HAVE_POSIX_ACL
|
#undef HAVE_POSIX_ACL
|
||||||
|
#undef HAVE_SOLARIS_ZFS_ACL
|
||||||
#undef HAVE_SOLARIS_ACL
|
#undef HAVE_SOLARIS_ACL
|
||||||
#undef HAVE_AIX_ACL
|
#undef HAVE_AIX_ACL
|
||||||
|
|
||||||
|
@@ -3106,6 +3106,7 @@ AC_TRY_LINK([
|
|||||||
|
|
||||||
dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
|
dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
|
||||||
dnl when -lacl works, also try to use -lattr (required for Debian).
|
dnl when -lacl works, also try to use -lattr (required for Debian).
|
||||||
|
dnl On Solaris, use the acl_get/set functions in libsec, if present.
|
||||||
AC_MSG_CHECKING(--disable-acl argument)
|
AC_MSG_CHECKING(--disable-acl argument)
|
||||||
AC_ARG_ENABLE(acl,
|
AC_ARG_ENABLE(acl,
|
||||||
[ --disable-acl Don't check for ACL support.],
|
[ --disable-acl Don't check for ACL support.],
|
||||||
@@ -3128,6 +3129,7 @@ acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
|
|||||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
|
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
|
||||||
AC_MSG_RESULT(no))
|
AC_MSG_RESULT(no))
|
||||||
|
|
||||||
|
AC_CHECK_LIB(sec, acl_get, [LIBS="$LIBS -lsec"; AC_DEFINE(HAVE_SOLARIS_ZFS_ACL)],
|
||||||
AC_MSG_CHECKING(for Solaris ACL support)
|
AC_MSG_CHECKING(for Solaris ACL support)
|
||||||
AC_TRY_LINK([
|
AC_TRY_LINK([
|
||||||
#ifdef HAVE_SYS_ACL_H
|
#ifdef HAVE_SYS_ACL_H
|
||||||
@@ -3135,7 +3137,7 @@ AC_TRY_LINK([
|
|||||||
#endif], [acl("foo", GETACLCNT, 0, NULL);
|
#endif], [acl("foo", GETACLCNT, 0, NULL);
|
||||||
],
|
],
|
||||||
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
|
AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
|
||||||
AC_MSG_RESULT(no))
|
AC_MSG_RESULT(no)))
|
||||||
|
|
||||||
AC_MSG_CHECKING(for AIX ACL support)
|
AC_MSG_CHECKING(for AIX ACL support)
|
||||||
AC_TRY_LINK([
|
AC_TRY_LINK([
|
||||||
|
@@ -2746,6 +2746,13 @@ mch_get_acl(fname)
|
|||||||
#ifdef HAVE_POSIX_ACL
|
#ifdef HAVE_POSIX_ACL
|
||||||
ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
|
ret = (vim_acl_T)acl_get_file((char *)fname, ACL_TYPE_ACCESS);
|
||||||
#else
|
#else
|
||||||
|
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||||
|
acl_t *aclent;
|
||||||
|
|
||||||
|
if (acl_get((char *)fname, 0, &aclent) < 0)
|
||||||
|
return NULL;
|
||||||
|
ret = (vim_acl_T)aclent;
|
||||||
|
#else
|
||||||
#ifdef HAVE_SOLARIS_ACL
|
#ifdef HAVE_SOLARIS_ACL
|
||||||
vim_acl_solaris_T *aclent;
|
vim_acl_solaris_T *aclent;
|
||||||
|
|
||||||
@@ -2791,6 +2798,7 @@ mch_get_acl(fname)
|
|||||||
ret = (vim_acl_T)aclent;
|
ret = (vim_acl_T)aclent;
|
||||||
#endif /* HAVE_AIX_ACL */
|
#endif /* HAVE_AIX_ACL */
|
||||||
#endif /* HAVE_SOLARIS_ACL */
|
#endif /* HAVE_SOLARIS_ACL */
|
||||||
|
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||||
#endif /* HAVE_POSIX_ACL */
|
#endif /* HAVE_POSIX_ACL */
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -2808,6 +2816,9 @@ mch_set_acl(fname, aclent)
|
|||||||
#ifdef HAVE_POSIX_ACL
|
#ifdef HAVE_POSIX_ACL
|
||||||
acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
|
acl_set_file((char *)fname, ACL_TYPE_ACCESS, (acl_t)aclent);
|
||||||
#else
|
#else
|
||||||
|
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||||
|
acl_set((char *)fname, (acl_t *)aclent);
|
||||||
|
#else
|
||||||
#ifdef HAVE_SOLARIS_ACL
|
#ifdef HAVE_SOLARIS_ACL
|
||||||
acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
|
acl((char *)fname, SETACL, ((vim_acl_solaris_T *)aclent)->acl_cnt,
|
||||||
((vim_acl_solaris_T *)aclent)->acl_entry);
|
((vim_acl_solaris_T *)aclent)->acl_entry);
|
||||||
@@ -2816,6 +2827,7 @@ mch_set_acl(fname, aclent)
|
|||||||
chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
|
chacl((char *)fname, aclent, ((struct acl *)aclent)->acl_len);
|
||||||
#endif /* HAVE_AIX_ACL */
|
#endif /* HAVE_AIX_ACL */
|
||||||
#endif /* HAVE_SOLARIS_ACL */
|
#endif /* HAVE_SOLARIS_ACL */
|
||||||
|
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||||
#endif /* HAVE_POSIX_ACL */
|
#endif /* HAVE_POSIX_ACL */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2828,6 +2840,9 @@ mch_free_acl(aclent)
|
|||||||
#ifdef HAVE_POSIX_ACL
|
#ifdef HAVE_POSIX_ACL
|
||||||
acl_free((acl_t)aclent);
|
acl_free((acl_t)aclent);
|
||||||
#else
|
#else
|
||||||
|
#ifdef HAVE_SOLARIS_ZFS_ACL
|
||||||
|
acl_free((acl_t *)aclent);
|
||||||
|
#else
|
||||||
#ifdef HAVE_SOLARIS_ACL
|
#ifdef HAVE_SOLARIS_ACL
|
||||||
free(((vim_acl_solaris_T *)aclent)->acl_entry);
|
free(((vim_acl_solaris_T *)aclent)->acl_entry);
|
||||||
free(aclent);
|
free(aclent);
|
||||||
@@ -2836,6 +2851,7 @@ mch_free_acl(aclent)
|
|||||||
free(aclent);
|
free(aclent);
|
||||||
#endif /* HAVE_AIX_ACL */
|
#endif /* HAVE_AIX_ACL */
|
||||||
#endif /* HAVE_SOLARIS_ACL */
|
#endif /* HAVE_SOLARIS_ACL */
|
||||||
|
#endif /* HAVE_SOLARIS_ZFS_ACL */
|
||||||
#endif /* HAVE_POSIX_ACL */
|
#endif /* HAVE_POSIX_ACL */
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -714,6 +714,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
432,
|
||||||
/**/
|
/**/
|
||||||
431,
|
431,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user