mirror of https://gitee.com/openkylin/cups.git
103 lines
2.6 KiB
Plaintext
103 lines
2.6 KiB
Plaintext
dnl
|
||
dnl PAM stuff for CUPS.
|
||
dnl
|
||
dnl Copyright © 2021 by OpenPrinting.
|
||
dnl Copyright © 2007-2017 by Apple Inc.
|
||
dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved.
|
||
dnl
|
||
dnl Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||
dnl information.
|
||
dnl
|
||
|
||
AC_ARG_ENABLE([pam], AS_HELP_STRING([--disable-pam], [disable PAM support]))
|
||
AC_ARG_WITH([pam_module], AS_HELP_STRING([--with-pam-module], [set the PAM module to use]))
|
||
|
||
PAMDIR=""
|
||
PAMFILE="pam.std"
|
||
PAMLIBS=""
|
||
PAMMOD="pam_unknown.so"
|
||
PAMMODAUTH="pam_unknown.so"
|
||
|
||
AS_IF([test x$enable_pam != xno], [
|
||
SAVELIBS="$LIBS"
|
||
|
||
AC_CHECK_LIB([dl], [dlopen])
|
||
AC_CHECK_LIB([pam], [pam_start])
|
||
AC_CHECK_LIB([pam], [pam_set_item], [
|
||
AC_DEFINE([HAVE_PAM_SET_ITEM], [1], [Have pam_set_item function?])
|
||
])
|
||
AC_CHECK_LIB([pam], [pam_setcred], [
|
||
AC_DEFINE([HAVE_PAM_SETCRED], [1], [Have pam_setcred function?])
|
||
])
|
||
AC_CHECK_HEADER([security/pam_appl.h])
|
||
AS_IF([test x$ac_cv_header_security_pam_appl_h != xyes], [
|
||
AC_CHECK_HEADER([pam/pam_appl.h], [
|
||
AC_DEFINE([HAVE_PAM_PAM_APPL_H], [1], [Have <pam/pam_appl.h> header?])
|
||
])
|
||
])
|
||
|
||
AS_IF([test x$ac_cv_lib_pam_pam_start != xno], [
|
||
# Set the necessary libraries for PAM...
|
||
AS_IF([test x$ac_cv_lib_dl_dlopen != xno], [
|
||
PAMLIBS="-lpam -ldl"
|
||
], [
|
||
PAMLIBS="-lpam"
|
||
])
|
||
|
||
# Find the PAM configuration directory, if any...
|
||
for dir in /private/etc/pam.d /etc/pam.d; do
|
||
AS_IF([test -d $dir], [
|
||
PAMDIR="$dir"
|
||
break;
|
||
])
|
||
done
|
||
])
|
||
|
||
LIBS="$SAVELIBS"
|
||
|
||
AS_CASE(["$host_os_name"], [darwin*], [
|
||
# Darwin/macOS
|
||
AS_IF([test "x$with_pam_module" != x], [
|
||
PAMFILE="pam.$with_pam_module"
|
||
], [test -f /usr/lib/pam/pam_opendirectory.so.2], [
|
||
PAMFILE="pam.opendirectory"
|
||
], [
|
||
PAMFILE="pam.securityserver"
|
||
])
|
||
], [*], [
|
||
# All others; this test might need to be updated
|
||
# as Linux distributors move things around...
|
||
AS_IF([test "x$with_pam_module" != x], [
|
||
PAMMOD="pam_${with_pam_module}.so"
|
||
], [test -f /etc/pam.d/common-auth], [
|
||
PAMFILE="pam.common"
|
||
], [
|
||
moddir=""
|
||
for dir in /lib/security /lib64/security /lib/x86_64-linux-gnu/security /var/lib/pam; do
|
||
AS_IF([test -d $dir], [
|
||
moddir="$dir"
|
||
break;
|
||
])
|
||
done
|
||
|
||
AS_IF([test -f $moddir/pam_unix2.so], [
|
||
PAMMOD="pam_unix2.so"
|
||
], [test -f $moddir/pam_unix.so], [
|
||
PAMMOD="pam_unix.so"
|
||
])
|
||
])
|
||
|
||
AS_IF([test "x$PAMMOD" = xpam_unix.so], [
|
||
PAMMODAUTH="$PAMMOD shadow nodelay"
|
||
], [
|
||
PAMMODAUTH="$PAMMOD nodelay"
|
||
])
|
||
])
|
||
])
|
||
|
||
AC_SUBST([PAMDIR])
|
||
AC_SUBST([PAMFILE])
|
||
AC_SUBST([PAMLIBS])
|
||
AC_SUBST([PAMMOD])
|
||
AC_SUBST([PAMMODAUTH])
|