version 1.13, 2003/03/10 03:53:32 |
version 1.14, 2003/03/15 21:23:54 |
|
|
dnl |
dnl |
dnl Process this file with GNU autoconf to produce a configure script. |
dnl Process this file with GNU autoconf to produce a configure script. |
dnl $Sudo: configure.in,v 1.349 2002/04/18 15:41:30 millert Exp $ |
dnl $Sudo: configure.in,v 1.367 2003/03/15 20:31:01 millert Exp $ |
dnl |
dnl |
dnl Copyright (c) 1994-1996,1998-2002 Todd C. Miller <Todd.Miller@courtesan.com> |
dnl Copyright (c) 1994-1996,1998-2003 Todd C. Miller <Todd.Miller@courtesan.com> |
dnl |
dnl |
AC_INIT(sudo, 1.6.6) |
AC_INIT(sudo, 1.6.7) |
AC_CONFIG_HEADER(config.h pathnames.h) |
AC_CONFIG_HEADER(config.h pathnames.h) |
dnl |
dnl |
dnl This won't work before AC_INIT() |
dnl This won't work before AC_INIT() |
dnl |
dnl |
echo "Configuring Sudo version 1.6.6" |
echo "Configuring Sudo version 1.6.7" |
dnl |
dnl |
dnl Variables that get substituted in the Makefile and man pages |
dnl Variables that get substituted in the Makefile and man pages |
dnl |
dnl |
|
|
AC_SUBST(AFS_LIBS)dnl |
AC_SUBST(AFS_LIBS)dnl |
AC_SUBST(OSDEFS)dnl |
AC_SUBST(OSDEFS)dnl |
AC_SUBST(AUTH_OBJS)dnl |
AC_SUBST(AUTH_OBJS)dnl |
AC_SUBST(LIBOBJS)dnl |
|
AC_SUBST(MANTYPE)dnl |
AC_SUBST(MANTYPE)dnl |
AC_SUBST(MAN_POSTINSTALL)dnl |
AC_SUBST(MAN_POSTINSTALL)dnl |
AC_SUBST(SUDOERS_MODE)dnl |
AC_SUBST(SUDOERS_MODE)dnl |
|
|
test "$mandir" = '${prefix}/man' && mandir='$(prefix)/man' |
test "$mandir" = '${prefix}/man' && mandir='$(prefix)/man' |
test "$bindir" = '${exec_prefix}/bin' && bindir='$(exec_prefix)/bin' |
test "$bindir" = '${exec_prefix}/bin' && bindir='$(exec_prefix)/bin' |
test "$sbindir" = '${exec_prefix}/sbin' && sbindir='$(exec_prefix)/sbin' |
test "$sbindir" = '${exec_prefix}/sbin' && sbindir='$(exec_prefix)/sbin' |
test "$sysconfdir" = '${prefix}/etc' && sysconfdir='/etc' |
test "$sysconfdir" = '${prefix}/etc' -a X"$with_stow" != X"yes" && sysconfdir='/etc' |
|
|
dnl |
dnl |
dnl Deprecated --with options (these all warn or generate an error) |
dnl Deprecated --with options (these all warn or generate an error) |
|
|
AC_MSG_CHECKING(whether to use SecurID for authentication) |
AC_MSG_CHECKING(whether to use SecurID for authentication) |
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
with_passwd=no |
with_passwd=no |
AUTH_OBJS="securid.o" |
|
;; |
;; |
esac]) |
esac]) |
|
|
|
|
;; |
;; |
esac]) |
esac]) |
AC_DEFINE_UNQUOTED(PRI_FAILURE, "$badpri", [The syslog priority sudo will use for unsuccessful attempts/errors.]) |
AC_DEFINE_UNQUOTED(PRI_FAILURE, "$badpri", [The syslog priority sudo will use for unsuccessful attempts/errors.]) |
AC_MSG_RESULT(badpri) |
AC_MSG_RESULT($badpri) |
|
|
AC_ARG_WITH(logpath, [ --with-logpath path to the sudo log file], |
AC_ARG_WITH(logpath, [ --with-logpath path to the sudo log file], |
[case $with_logpath in |
[case $with_logpath in |
|
|
;; |
;; |
esac]) |
esac]) |
if test "$mail_no_host" = "on"; then |
if test "$mail_no_host" = "on"; then |
AC_DEFINE(SEND_MAIL_WHEN_NO_HOST, 1, [Define to send mail when the user is not not allowed to run sudo on this host.]) |
AC_DEFINE(SEND_MAIL_WHEN_NO_HOST, 1, [Define to send mail when the user is not allowed to run sudo on this host.]) |
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
else |
else |
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
|
|
;; |
;; |
esac]) |
esac]) |
if test "$mail_noperms" = "on"; then |
if test "$mail_noperms" = "on"; then |
AC_DEFINE(SEND_MAIL_WHEN_NOT_OK, 1, [Define to send mail when the user is not not allowed to run a command.]) |
AC_DEFINE(SEND_MAIL_WHEN_NOT_OK, 1, [Define to send mail when the user is not allowed to run a command.]) |
AC_MSG_RESULT(yes) |
AC_MSG_RESULT(yes) |
else |
else |
AC_MSG_RESULT(no) |
AC_MSG_RESULT(no) |
|
|
;; |
;; |
0*) SUDOERS_MODE=$with_sudoers_mode |
0*) SUDOERS_MODE=$with_sudoers_mode |
;; |
;; |
*) AC_MSG_ERROR(["you must use a numeric uid, not a name."]) |
*) AC_MSG_ERROR(["you must use an octal mode, not a name."]) |
;; |
;; |
esac]) |
esac]) |
|
|
|
|
;; |
;; |
[[0-9]]*) SUDOERS_UID=$with_sudoers_uid |
[[0-9]]*) SUDOERS_UID=$with_sudoers_uid |
;; |
;; |
*) AC_MSG_ERROR(["you must use a numeric uid, not a name."]) |
*) AC_MSG_ERROR(["you must use an unsigned numeric uid, not a name."]) |
;; |
;; |
esac]) |
esac]) |
|
|
|
|
;; |
;; |
[[0-9]]*) SUDOERS_GID=$with_sudoers_gid |
[[0-9]]*) SUDOERS_GID=$with_sudoers_gid |
;; |
;; |
*) AC_MSG_ERROR(["you must use a numeric gid, not a name."]) |
*) AC_MSG_ERROR(["you must use an unsigned numeric gid, not a name."]) |
;; |
;; |
esac]) |
esac]) |
|
|
|
|
|
|
AC_MSG_CHECKING(time in minutes after which sudo will ask for a password again) |
AC_MSG_CHECKING(time in minutes after which sudo will ask for a password again) |
AC_ARG_WITH(timeout, [ --with-timeout minutes before sudo asks for passwd again (def is 5 minutes)], |
AC_ARG_WITH(timeout, [ --with-timeout minutes before sudo asks for passwd again (def is 5 minutes)], |
[echo $with_timeout; case $with_timeout in |
[case $with_timeout in |
yes) ;; |
yes) ;; |
no) timeout=0 |
no) timeout=0 |
;; |
;; |
|
|
;; |
;; |
esac], AC_MSG_RESULT(yes)) |
esac], AC_MSG_RESULT(yes)) |
|
|
|
AC_MSG_CHECKING(whether stow should be used) |
|
AC_ARG_WITH(stow, [ --with-stow properly handle GNU stow packaging], |
|
[case $with_stow in |
|
yes) AC_MSG_RESULT(yes) |
|
AC_DEFINE(USE_STOW, 1, [Define if you use stow packaging.]) |
|
;; |
|
no) AC_MSG_RESULT(no) |
|
;; |
|
*) AC_MSG_ERROR(["--with-stow does not take an argument."]) |
|
;; |
|
esac], AC_MSG_RESULT(no)) |
|
|
dnl |
dnl |
dnl Options for --enable |
dnl Options for --enable |
dnl |
dnl |
|
|
AC_ARG_ENABLE(setreuid, |
AC_ARG_ENABLE(setreuid, |
[ --disable-setreuid Don't try to use the setreuid() function], |
[ --disable-setreuid Don't try to use the setreuid() function], |
[ case "$enableval" in |
[ case "$enableval" in |
no) BROKEN_SETREUID=1 |
no) SKIP_SETREUID=yes |
;; |
;; |
*) ;; |
*) ;; |
esac |
esac |
]) |
]) |
|
|
|
AC_ARG_ENABLE(setresuid, |
|
[ --disable-setresuid Don't try to use the setresuid() function], |
|
[ case "$enableval" in |
|
no) SKIP_SETRESUID=yes |
|
;; |
|
*) ;; |
|
esac |
|
]) |
|
|
AC_MSG_CHECKING(whether to disable use of POSIX saved ids) |
AC_MSG_CHECKING(whether to disable use of POSIX saved ids) |
AC_ARG_ENABLE(saved-ids, |
AC_ARG_ENABLE(saved-ids, |
[ --disable-saved-ids Don't try to use POSIX saved ids], |
[ --disable-saved-ids Don't try to use POSIX saved ids], |
|
|
# use SIA by default, if we have it, else SecureWare |
# use SIA by default, if we have it, else SecureWare |
# unless overridden on the command line |
# unless overridden on the command line |
if test "$CHECKSIA" = "true"; then |
if test "$CHECKSIA" = "true"; then |
AC_CHECK_FUNC(sia_ses_init, AC_DEFINE(HAVE_SIA, 1, [Define if you use SIA.]) [ |
AC_CHECK_FUNC(sia_ses_init, [AC_DEFINE(HAVE_SIA, 1, [Define if you use SIA.])] [ |
if test -n "$with_skey" -o -n "$with_opie" -o -n "$with_otp_only" -o -n "$with_long_otp_prompt" -o -n "$with_SecurID" -o -n "$with_fwtk" -o -n "$with_kerb4" -o -n "$with_kerb5" -o -n "$with_pam" -o -n "$with_AFS" -o -n "$with_DCE"; then |
if test -n "$with_skey" -o -n "$with_opie" -o -n "$with_otp_only" -o -n "$with_long_otp_prompt" -o -n "$with_SecurID" -o -n "$with_fwtk" -o -n "$with_kerb4" -o -n "$with_kerb5" -o -n "$with_pam" -o -n "$with_AFS" -o -n "$with_DCE"; then |
AC_MSG_ERROR(["you cannot mix SIA and other authentication schemes. You can turn off SIA support via the --disable-sia option"]) |
AC_MSG_ERROR(["you cannot mix SIA and other authentication schemes. You can turn off SIA support via the --disable-sia option"]) |
fi]; CHECKSHADOW=false) |
fi]; CHECKSHADOW=false) |
|
|
*-*-irix*) |
*-*-irix*) |
CPPFLAGS="${CPPFLAGS} -D_BSD_TYPES" |
CPPFLAGS="${CPPFLAGS} -D_BSD_TYPES" |
if test -z "$NROFFPROG"; then |
if test -z "$NROFFPROG"; then |
MAN_POSTINSTALL=' /bin/rm -f $(mandir8)/sudo.$(mansect8).z $(mandir8)/visudo.$(mansect8).z $(mandir5)/sudoers.$(mansect5).z ; /usr/bin/pack $(mandir8)/sudo.$(mansect8) $(mandir8)/visudo.$(mansect8) $(mandir5)/sudoers.$(mansect5)' |
MAN_POSTINSTALL=' /bin/rm -f $(mandirsu)/sudo.$(mansectsu).z $(mandirsu)/visudo.$(mansectsu).z $(mandirform)/sudoers.$(mansectform).z ; /usr/bin/pack $(mandirsu)/sudo.$(mansectsu) $(mandirsu)/visudo.$(mansectsu) $(mandirform)/sudoers.$(mansectform)' |
if test "$prefix" = "/usr/local" -a "$mandir" = '$(prefix)/man'; then |
if test "$prefix" = "/usr/local" -a "$mandir" = '$(prefix)/man'; then |
if test -d /usr/share/catman/local; then |
if test -d /usr/share/catman/local; then |
mandir="/usr/share/catman/local" |
mandir="/usr/share/catman/local" |
|
|
test -n "$mansectform" || mansectform=4 |
test -n "$mansectform" || mansectform=4 |
;; |
;; |
*-*-bsdi*) |
*-*-bsdi*) |
BROKEN_SETREUID=yes |
SKIP_SETREUID=yes |
# Use shlicc for BSD/OS [23].x unless asked to do otherwise |
# Use shlicc for BSD/OS [23].x unless asked to do otherwise |
if test "${with_CC+set}" != set -a "$ac_cv_prog_CC" = gcc; then |
if test "${with_CC+set}" != set -a "$ac_cv_prog_CC" = gcc; then |
case "$OSREV" in |
case "$OSREV" in |
|
|
# backported to 2.0.5. We just take 2.1 and above... |
# backported to 2.0.5. We just take 2.1 and above... |
case "`echo $host_os | sed 's/^freebsd\([[0-9\.]]*\).*$/\1/'`" in |
case "`echo $host_os | sed 's/^freebsd\([[0-9\.]]*\).*$/\1/'`" in |
0.*|1.*|2.0*) |
0.*|1.*|2.0*) |
BROKEN_SETREUID=yes |
SKIP_SETREUID=yes |
;; |
;; |
esac |
esac |
if test "$with_logincap" = "yes"; then |
if test "$with_logincap" = "yes"; then |
|
|
fi |
fi |
;; |
;; |
*-*-*openbsd*) |
*-*-*openbsd*) |
BROKEN_SETREUID=yes |
SKIP_SETREUID=yes |
if test "$CHECKSHADOW" = "true"; then |
if test "$CHECKSHADOW" = "true"; then |
CHECKSHADOW="false" |
CHECKSHADOW="false" |
fi |
fi |
|
|
# NetBSD has a real setreuid(2) starting with 1.3.2 |
# NetBSD has a real setreuid(2) starting with 1.3.2 |
case "`echo $host_os | sed 's/^netbsd\([[0-9\.]]*\).*$/\1/'`" in |
case "`echo $host_os | sed 's/^netbsd\([[0-9\.]]*\).*$/\1/'`" in |
0.9*|1.[012]*|1.3|1.3.1) |
0.9*|1.[012]*|1.3|1.3.1) |
BROKEN_SETREUID=yes |
SKIP_SETREUID=yes |
;; |
;; |
esac |
esac |
if test "$CHECKSHADOW" = "true"; then |
if test "$CHECKSHADOW" = "true"; then |
|
|
AC_CHECK_HEADERS(login_cap.h) |
AC_CHECK_HEADERS(login_cap.h) |
fi |
fi |
if test "$with_bsdauth" = "yes"; then |
if test "$with_bsdauth" = "yes"; then |
AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H, 1, [Define if you use BSD authentication.]) [with_passwd=no; AUTH_OBJS=bsdauth.o]) |
AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H, 1, [Define if you use BSD authentication.]) [with_passwd=no; AUTH_OBJS=bsdauth.o], -) |
fi |
fi |
dnl |
dnl |
dnl typedef checks |
dnl typedef checks |
|
|
dnl Function checks |
dnl Function checks |
dnl |
dnl |
AC_CHECK_FUNCS(strchr strrchr memchr memcpy memset sysconf tzset \ |
AC_CHECK_FUNCS(strchr strrchr memchr memcpy memset sysconf tzset \ |
seteuid setegid strftime setrlimit initgroups fstat) |
strftime setrlimit initgroups fstat) |
if test -z "$BROKEN_SETREUID"; then |
if test -z "$SKIP_SETRESUID"; then |
|
AC_CHECK_FUNCS(setresuid, [SKIP_SETREUID=yes]) |
|
fi |
|
if test -z "$SKIP_SETREUID"; then |
AC_CHECK_FUNCS(setreuid) |
AC_CHECK_FUNCS(setreuid) |
fi |
fi |
if test X"$with_interfaces" != X"no"; then |
if test X"$with_interfaces" != X"no"; then |
AC_CHECK_FUNCS(getifaddrs, AC_CHECK_FUNCS(freeifaddrs)) |
AC_CHECK_FUNCS(getifaddrs, [AC_CHECK_FUNCS(freeifaddrs)]) |
fi |
fi |
if test -n "$SECUREWARE"; then |
if test -n "$SECUREWARE"; then |
AC_CHECK_FUNCS(bigcrypt set_auth_parameters initprivs) |
AC_CHECK_FUNCS(bigcrypt set_auth_parameters initprivs) |
|
|
fi |
fi |
AC_CHECK_FUNCS(lockf flock, [break]) |
AC_CHECK_FUNCS(lockf flock, [break]) |
AC_CHECK_FUNCS(waitpid wait3, [break]) |
AC_CHECK_FUNCS(waitpid wait3, [break]) |
AC_CHECK_FUNCS(innetgr _innetgr, AC_CHECK_FUNCS(getdomainname) [break]) |
AC_CHECK_FUNCS(innetgr _innetgr, [AC_CHECK_FUNCS(getdomainname) [break]]) |
AC_CHECK_FUNCS(lsearch, , [AC_CHECK_LIB(compat, lsearch, AC_CHECK_HEADER(search.h, AC_DEFINE(HAVE_LSEARCH) [LIBS="${LIBS} -lcompat"], AC_LIBOBJ(lsearch)), AC_LIBOBJ(lsearch))]) |
AC_CHECK_FUNCS(lsearch, , [AC_CHECK_LIB(compat, lsearch, AC_CHECK_HEADER(search.h, AC_DEFINE(HAVE_LSEARCH) [LIBS="${LIBS} -lcompat"], AC_LIBOBJ(lsearch), -), AC_LIBOBJ(lsearch))]) |
AC_CHECK_FUNCS(utime, SUDO_FUNC_UTIME_POSIX, AC_LIBOBJ(utime)) |
AC_CHECK_FUNCS(utime, [SUDO_FUNC_UTIME_POSIX], [AC_LIBOBJ(utime)]) |
SUDO_FUNC_FNMATCH(AC_DEFINE(HAVE_FNMATCH, 1, [Define if you have the `fnmatch' function.]), AC_LIBOBJ(fnmatch)) |
SUDO_FUNC_FNMATCH(AC_DEFINE(HAVE_FNMATCH, 1, [Define if you have the `fnmatch' function.]), AC_LIBOBJ(fnmatch)) |
SUDO_FUNC_ISBLANK |
SUDO_FUNC_ISBLANK |
AC_REPLACE_FUNCS(strerror strcasecmp sigaction) |
AC_REPLACE_FUNCS(strerror strcasecmp sigaction strlcpy strlcat) |
AC_CHECK_FUNCS(snprintf vsnprintf asprintf vasprintf, , [NEED_SNPRINTF=1]) |
AC_CHECK_FUNCS(snprintf vsnprintf asprintf vasprintf, , [NEED_SNPRINTF=1]) |
dnl |
dnl |
dnl If NEED_SNPRINTF is set, add snprintf.c to LIBOBJS |
dnl If NEED_SNPRINTF is set, add snprintf.c to LIBOBJS |
|
|
dnl PAM libs |
dnl PAM libs |
dnl |
dnl |
if test "$with_pam" = "yes"; then |
if test "$with_pam" = "yes"; then |
AC_HAVE_LIBRARY(dl, SUDO_LIBS="${SUDO_LIBS} -ldl -lpam", SUDO_LIBS="${SUDO_LIBS} -lpam") |
AC_HAVE_LIBRARY(dl, SUDO_LIBS="${SUDO_LIBS} -lpam -ldl", SUDO_LIBS="${SUDO_LIBS} -lpam") |
fi |
fi |
|
|
dnl |
dnl |
|
|
dnl |
dnl |
if test -n "$with_SecurID" -a "$with_SecurID" != "no"; then |
if test -n "$with_SecurID" -a "$with_SecurID" != "no"; then |
if test "$with_SecurID" != "yes"; then |
if test "$with_SecurID" != "yes"; then |
SUDO_LIBS="${SUDO_LIBS} ${with_SecurID}/sdiclient.a" |
: |
CPPFLAGS="${CPPFLAGS} -I${with_SecurID}" |
elif test -d /usr/ace/examples; then |
elif test -f /usr/ace/examples/sdiclient.a; then |
with_SecurID=/usr/ace/examples |
SUDO_LIBS="${SUDO_LIBS} /usr/ace/examples/sdiclient.a" |
|
CPPFLAGS="${CPPFLAGS} -I/usr/ace/examples" |
|
else |
else |
SUDO_LIBS="${SUDO_LIBS} /usr/ace/sdiclient.a" |
with_SecurID=/usr/ace |
CPPFLAGS="${CPPFLAGS} -I/usr/ace" |
|
fi |
fi |
|
CPPFLAGS="${CPPFLAGS} -I${with_SecurID}" |
|
_LDFLAGS="${LDFLAGS}" |
|
LDFLAGS="${LDFLAGS} -L${with_SecurID}" |
|
# |
|
# Determine whether to use the new or old SecurID API |
|
# |
|
AC_CHECK_LIB(aceclnt, SD_Init, [AUTH_OBJS="securid5.o"; SUDO_LIBS="${SUDO_LIBS} -laceclnt -lpthread"; SUDO_LDFLAGS="${SUDO_LDFLAGS} -L${with_SecurID}"], [AUTH_OBJS="securid.o"; SUDO_LIBS="${SUDO_LIBS} ${with_SecurID}/sdiclient.a"], [-lpthread]) |
|
LDFLAGS="${_LDFLAGS}" |
fi |
fi |
|
|
dnl |
dnl |
|
|
# ifdef HAVE_WAIT3 |
# ifdef HAVE_WAIT3 |
# define sudo_waitpid(p, s, o) wait3(s, o, NULL) |
# define sudo_waitpid(p, s, o) wait3(s, o, NULL) |
# endif |
# endif |
|
#endif |
|
|
|
/* GNU stow needs /etc/sudoers to be a symlink. */ |
|
#ifdef HAVE_STOW |
|
# define stat_sudoers stat |
|
#else |
|
# define stat_sudoers lstat |
#endif |
#endif |
|
|
/* Solaris doesn't use const qualifiers in PAM. */ |
/* Solaris doesn't use const qualifiers in PAM. */ |