version 1.1.1.4, 2013/07/22 10:46:11
|
version 1.1.1.5, 2013/10/14 07:56:33
|
Line 3 dnl Process this file with GNU autoconf to produce a c
|
Line 3 dnl Process this file with GNU autoconf to produce a c
|
dnl |
dnl |
dnl Copyright (c) 1994-1996,1998-2013 Todd C. Miller <Todd.Miller@courtesan.com> |
dnl Copyright (c) 1994-1996,1998-2013 Todd C. Miller <Todd.Miller@courtesan.com> |
dnl |
dnl |
AC_INIT([sudo], [1.8.7], [http://www.sudo.ws/bugs/], [sudo]) | AC_INIT([sudo], [1.8.8], [http://www.sudo.ws/bugs/], [sudo]) |
AC_CONFIG_HEADER([config.h pathnames.h]) |
AC_CONFIG_HEADER([config.h pathnames.h]) |
dnl |
dnl |
dnl Note: this must come after AC_INIT |
dnl Note: this must come after AC_INIT |
Line 42 AC_SUBST([MANDIRTYPE])
|
Line 42 AC_SUBST([MANDIRTYPE])
|
AC_SUBST([MANCOMPRESS]) |
AC_SUBST([MANCOMPRESS]) |
AC_SUBST([MANCOMPRESSEXT]) |
AC_SUBST([MANCOMPRESSEXT]) |
AC_SUBST([SHLIB_MODE]) |
AC_SUBST([SHLIB_MODE]) |
|
AC_SUBST([SHLIB_EXT]) |
AC_SUBST([SUDOERS_MODE]) |
AC_SUBST([SUDOERS_MODE]) |
AC_SUBST([SUDOERS_UID]) |
AC_SUBST([SUDOERS_UID]) |
AC_SUBST([SUDOERS_GID]) |
AC_SUBST([SUDOERS_GID]) |
Line 122 AC_SUBST([netsvc_conf])
|
Line 123 AC_SUBST([netsvc_conf])
|
AC_SUBST([secure_path]) |
AC_SUBST([secure_path]) |
AC_SUBST([editor]) |
AC_SUBST([editor]) |
AC_SUBST([pam_session]) |
AC_SUBST([pam_session]) |
|
AC_SUBST([pam_login_service]) |
AC_SUBST([PLUGINDIR]) |
AC_SUBST([PLUGINDIR]) |
# |
# |
# Begin initial values for man page substitution |
# Begin initial values for man page substitution |
Line 164 sesh_file=/usr/local/libexec/sudo/sesh
|
Line 166 sesh_file=/usr/local/libexec/sudo/sesh
|
nsswitch_conf=/etc/nsswitch.conf |
nsswitch_conf=/etc/nsswitch.conf |
secure_path="not set" |
secure_path="not set" |
pam_session=on |
pam_session=on |
|
pam_login_service=sudo |
PLUGINDIR=/usr/local/libexec/sudo |
PLUGINDIR=/usr/local/libexec/sudo |
# |
# |
# End initial values for man page substitution |
# End initial values for man page substitution |
Line 1489 else
|
Line 1492 else
|
# Darwin uses .dylib for libraries but .so for modules |
# Darwin uses .dylib for libraries but .so for modules |
if test X"$_shrext" = X".dylib"; then |
if test X"$_shrext" = X".dylib"; then |
SOEXT=".so" |
SOEXT=".so" |
|
SHLIB_EXT=".dylib" |
else |
else |
SOEXT="$_shrext" |
SOEXT="$_shrext" |
|
SHLIB_EXT="$_shrext" |
fi |
fi |
fi |
fi |
AC_MSG_CHECKING(path to sudo_noexec.so) |
AC_MSG_CHECKING(path to sudo_noexec.so) |
Line 1958 case "$host" in
|
Line 1963 case "$host" in
|
CHECKSHADOW="false" |
CHECKSHADOW="false" |
test -z "$with_pam" && AUTH_EXCL_DEF="PAM" |
test -z "$with_pam" && AUTH_EXCL_DEF="PAM" |
: ${with_logincap='yes'} |
: ${with_logincap='yes'} |
|
# Darwin 8 and above can interpose library symbols cleanly |
|
if test $OSMAJOR -ge 8; then |
|
AC_DEFINE(HAVE___INTERPOSE) |
|
dlyld_interpose=yes |
|
else |
|
RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE" |
|
fi |
RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES" |
RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES" |
RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE" |
|
;; |
;; |
*-*-nextstep*) |
*-*-nextstep*) |
# lockf() on is broken on the NeXT -- use flock instead |
# lockf() on is broken on the NeXT -- use flock instead |
Line 2124 if test "$ac_cv_sys_posix_termios" != "yes"; then
|
Line 2135 if test "$ac_cv_sys_posix_termios" != "yes"; then
|
fi |
fi |
SUDO_MAILDIR |
SUDO_MAILDIR |
if test ${with_logincap-'no'} != "no"; then |
if test ${with_logincap-'no'} != "no"; then |
AC_CHECK_HEADERS(login_cap.h, [LOGINCAP_USAGE='[[-c class|-]] '; LCMAN=1 | AC_CHECK_HEADERS(login_cap.h, [LOGINCAP_USAGE='[[-c class]] '; LCMAN=1 |
case "$OS" in |
case "$OS" in |
freebsd|netbsd) |
freebsd|netbsd) |
SUDO_LIBS="${SUDO_LIBS} -lutil" |
SUDO_LIBS="${SUDO_LIBS} -lutil" |
Line 2143 if test ${with_project-'no'} != "no"; then
|
Line 2154 if test ${with_project-'no'} != "no"; then
|
fi |
fi |
dnl |
dnl |
dnl typedef checks |
dnl typedef checks |
|
dnl We need to define __STDC_WANT_LIB_EXT1__ for errno_t and rsize_t |
dnl |
dnl |
|
SUDO_APPEND_CPPFLAGS(-D__STDC_WANT_LIB_EXT1__=1) |
AC_TYPE_MODE_T |
AC_TYPE_MODE_T |
AC_TYPE_UID_T |
AC_TYPE_UID_T |
AC_CHECK_TYPE([__signed char], [], [AC_CHECK_TYPE([signed char], [AC_DEFINE(__signed, signed)], [AC_DEFINE(__signed, [])])]) |
AC_CHECK_TYPE([__signed char], [], [AC_CHECK_TYPE([signed char], [AC_DEFINE(__signed, signed)], [AC_DEFINE(__signed, [])])]) |
Line 2163 if test X"$ac_cv_type_long_long_int" != X"yes"; then
|
Line 2176 if test X"$ac_cv_type_long_long_int" != X"yes"; then
|
AC_MSG_ERROR(["C compiler does not appear have required long long support"]) |
AC_MSG_ERROR(["C compiler does not appear have required long long support"]) |
fi |
fi |
AC_CHECK_SIZEOF([long int]) |
AC_CHECK_SIZEOF([long int]) |
|
AC_CHECK_TYPE(id_t, unsigned int) |
AC_CHECK_TYPE(size_t, unsigned int) |
AC_CHECK_TYPE(size_t, unsigned int) |
AC_CHECK_TYPE(ssize_t, int) |
AC_CHECK_TYPE(ssize_t, int) |
AC_CHECK_TYPE(dev_t, int) |
AC_CHECK_TYPE(dev_t, int) |
Line 2173 AC_CHECK_TYPE(uint64_t, unsigned long long)
|
Line 2187 AC_CHECK_TYPE(uint64_t, unsigned long long)
|
AC_CHECK_TYPE(socklen_t, [], [AC_DEFINE(socklen_t, unsigned int)], [ |
AC_CHECK_TYPE(socklen_t, [], [AC_DEFINE(socklen_t, unsigned int)], [ |
AC_INCLUDES_DEFAULT |
AC_INCLUDES_DEFAULT |
#include <sys/socket.h>]) |
#include <sys/socket.h>]) |
|
AC_CHECK_TYPE(rsize_t, size_t) |
|
AC_CHECK_TYPE(errno_t, int) |
SUDO_UID_T_LEN |
SUDO_UID_T_LEN |
SUDO_SOCK_SA_LEN |
SUDO_SOCK_SA_LEN |
dnl |
dnl |
Line 2348 SUDO_FUNC_FNMATCH([AC_DEFINE(HAVE_FNMATCH)], [AC_LIBOB
|
Line 2364 SUDO_FUNC_FNMATCH([AC_DEFINE(HAVE_FNMATCH)], [AC_LIBOB
|
COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }fnm_test" |
COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }fnm_test" |
]) |
]) |
SUDO_FUNC_ISBLANK |
SUDO_FUNC_ISBLANK |
AC_REPLACE_FUNCS(memrchr pw_dup strlcpy strlcat) | AC_REPLACE_FUNCS(memrchr memset_s pw_dup strlcpy strlcat) |
AC_CHECK_FUNCS(nanosleep, [], [ |
AC_CHECK_FUNCS(nanosleep, [], [ |
# On Solaris, nanosleep is in librt |
# On Solaris, nanosleep is in librt |
AC_CHECK_LIB(rt, nanosleep, [REPLAY_LIBS="${REPLAY_LIBS} -lrt"], [AC_LIBOBJ(nanosleep)]) |
AC_CHECK_LIB(rt, nanosleep, [REPLAY_LIBS="${REPLAY_LIBS} -lrt"], [AC_LIBOBJ(nanosleep)]) |
]) |
]) |
|
AC_CHECK_FUNCS(getopt_long, [], [AC_LIBOBJ(getopt_long) |
|
AC_MSG_CHECKING([for optreset]) |
|
AC_CACHE_VAL(sudo_cv_optreset, [ |
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern int optreset; optreset = 1; return optreset;]])], [sudo_cv_optreset=yes], [sudo_cv_optreset=no])]) |
|
if test "$sudo_cv_optreset" = "yes"; then |
|
AC_DEFINE(HAVE_OPTRESET) |
|
fi |
|
AC_MSG_RESULT($sudo_cv_optreset) |
|
]) |
AC_CHECK_FUNCS(closefrom, [], [AC_LIBOBJ(closefrom) |
AC_CHECK_FUNCS(closefrom, [], [AC_LIBOBJ(closefrom) |
AC_CHECK_DECL(F_CLOSEM, AC_DEFINE(HAVE_FCNTL_CLOSEM), [], |
AC_CHECK_DECL(F_CLOSEM, AC_DEFINE(HAVE_FCNTL_CLOSEM), [], |
[ #include <limits.h> |
[ #include <limits.h> |
Line 2369 if test X"$ac_cv_type_struct_timespec" != X"no"; then
|
Line 2394 if test X"$ac_cv_type_struct_timespec" != X"no"; then
|
[AC_CHECK_MEMBER([struct stat.st_mtimespec], AC_DEFINE([HAVE_ST_MTIMESPEC]))]) |
[AC_CHECK_MEMBER([struct stat.st_mtimespec], AC_DEFINE([HAVE_ST_MTIMESPEC]))]) |
fi |
fi |
dnl |
dnl |
|
dnl Function checks for sudo_noexec |
|
dnl |
|
if test X"$with_noexec" != X"no"; then |
|
# Check for underscore versions of standard exec functions |
|
# unless we are using dyld symbole interposition |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_execl __execl) |
|
AC_CHECK_FUNCS(_execle __execle) |
|
AC_CHECK_FUNCS(_execlp __execlp) |
|
AC_CHECK_FUNCS(_execv __execv) |
|
AC_CHECK_FUNCS(_execve __execve) |
|
AC_CHECK_FUNCS(_execvp __execvp) |
|
fi |
|
# Check for non-standard exec functions including underscore versions |
|
AC_CHECK_FUNCS(exect, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_exect __exect) |
|
fi |
|
]) |
|
AC_CHECK_FUNCS(execvP, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_execvP __execvP) |
|
fi |
|
]) |
|
AC_CHECK_FUNCS(execvpe, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_execvpe __execvpe) |
|
fi |
|
]) |
|
AC_CHECK_FUNCS(fexecve, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_fexecve __fexecve) |
|
fi |
|
]) |
|
# Check for posix_spawn, posix_spawnp and any underscore versions |
|
AC_CHECK_FUNCS(posix_spawn, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_posix_spawn __posix_spawn) |
|
fi |
|
]) |
|
AC_CHECK_FUNCS(posix_spawnp, [ |
|
if test X"$dlyld_interpose" != X"yes"; then |
|
AC_CHECK_FUNCS(_posix_spawnp __posix_spawnp) |
|
fi |
|
]) |
|
fi |
|
|
|
dnl |
dnl Check for the dirfd function/macro. If not found, look for dd_fd in DIR. |
dnl Check for the dirfd function/macro. If not found, look for dd_fd in DIR. |
dnl |
dnl |
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
Line 2749 if test ${with_pam-"no"} != "no"; then
|
Line 2822 if test ${with_pam-"no"} != "no"; then
|
yes) AC_DEFINE([HAVE_PAM_LOGIN]) |
yes) AC_DEFINE([HAVE_PAM_LOGIN]) |
AC_MSG_CHECKING(whether to use PAM login) |
AC_MSG_CHECKING(whether to use PAM login) |
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
|
pam_login_service="sudo-i" |
;; |
;; |
no) ;; |
no) ;; |
*) AC_MSG_ERROR(["--with-pam-login does not take an argument."]) |
*) AC_MSG_ERROR(["--with-pam-login does not take an argument."]) |
Line 2793 dnl
|
Line 2867 dnl
|
if test ${with_bsdauth-'no'} != "no"; then |
if test ${with_bsdauth-'no'} != "no"; then |
AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H) |
AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H) |
[AUTH_OBJS="$AUTH_OBJS bsdauth.lo"] |
[AUTH_OBJS="$AUTH_OBJS bsdauth.lo"] |
[BSDAUTH_USAGE='[[-a auth_type]] '] | [BSDAUTH_USAGE='[[-a type]] '] |
[AUTH_EXCL=BSD_AUTH; BAMAN=1], |
[AUTH_EXCL=BSD_AUTH; BAMAN=1], |
[AC_MSG_ERROR([BSD authentication was specified but bsd_auth.h could not be found])]) |
[AC_MSG_ERROR([BSD authentication was specified but bsd_auth.h could not be found])]) |
fi |
fi |
Line 3706 AH_TEMPLATE(HAVE_LIBINTL_H, [Define to 1 if you have t
|
Line 3780 AH_TEMPLATE(HAVE_LIBINTL_H, [Define to 1 if you have t
|
AH_TEMPLATE(HAVE_LINUX_AUDIT, [Define to 1 to enable Linux audit support.]) |
AH_TEMPLATE(HAVE_LINUX_AUDIT, [Define to 1 to enable Linux audit support.]) |
AH_TEMPLATE(HAVE_SSSD, [Define to 1 to enable SSSD support.]) |
AH_TEMPLATE(HAVE_SSSD, [Define to 1 to enable SSSD support.]) |
AH_TEMPLATE(HAVE_OPIE, [Define to 1 if you use NRL OPIE.]) |
AH_TEMPLATE(HAVE_OPIE, [Define to 1 if you use NRL OPIE.]) |
|
AH_TEMPLATE(HAVE_OPTRESET, [Define to 1 if you have the `optreset' symbol.]) |
AH_TEMPLATE(HAVE_PAM, [Define to 1 if you use PAM authentication.]) |
AH_TEMPLATE(HAVE_PAM, [Define to 1 if you use PAM authentication.]) |
AH_TEMPLATE(HAVE_PAM_LOGIN, [Define to 1 if you use a specific PAM session for sudo -i.]) |
AH_TEMPLATE(HAVE_PAM_LOGIN, [Define to 1 if you use a specific PAM session for sudo -i.]) |
AH_TEMPLATE(HAVE_PROJECT_H, [Define to 1 if you have the <project.h> header file.]) |
AH_TEMPLATE(HAVE_PROJECT_H, [Define to 1 if you have the <project.h> header file.]) |
Line 3749 AH_TEMPLATE(socklen_t, [Define to `unsigned int' if <s
|
Line 3824 AH_TEMPLATE(socklen_t, [Define to `unsigned int' if <s
|
AH_TEMPLATE(HAVE_STRUCT_UTMP_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmp'.]) |
AH_TEMPLATE(HAVE_STRUCT_UTMP_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmp'.]) |
AH_TEMPLATE(HAVE_STRUCT_UTMPX_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmpx'.]) |
AH_TEMPLATE(HAVE_STRUCT_UTMPX_UT_EXIT, [Define to 1 if `ut_exit' is a member of `struct utmpx'.]) |
AH_TEMPLATE(HAVE___FUNC__, [Define to 1 if the compiler supports the C99 __func__ variable.]) |
AH_TEMPLATE(HAVE___FUNC__, [Define to 1 if the compiler supports the C99 __func__ variable.]) |
|
AH_TEMPLATE(HAVE___INTERPOSE, [Define to 1 if you have dyld with __interpose attribute support.]) |
AH_TEMPLATE(SUDO_KRB5_INSTANCE, [An instance string to append to the username (separated by a slash) for Kerberos V authentication.]) |
AH_TEMPLATE(SUDO_KRB5_INSTANCE, [An instance string to append to the username (separated by a slash) for Kerberos V authentication.]) |
AH_TEMPLATE(RTLD_PRELOAD_VAR, [The environment variable that controls preloading of dynamic objects.]) |
AH_TEMPLATE(RTLD_PRELOAD_VAR, [The environment variable that controls preloading of dynamic objects.]) |
AH_TEMPLATE(RTLD_PRELOAD_ENABLE_VAR, [An extra environment variable that is required to enable preloading (if any).]) |
AH_TEMPLATE(RTLD_PRELOAD_ENABLE_VAR, [An extra environment variable that is required to enable preloading (if any).]) |