]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - config-scripts/cups-pam.m4
Update all references to OS X to macOS.
[thirdparty/cups.git] / config-scripts / cups-pam.m4
index df445a2b7f3dd7f9d433b87e2f59e9afa11db221..e3c6aa6e8f4d53370ab6ec64995d2d1e6c7b54f4 100644 (file)
@@ -1,44 +1,32 @@
 dnl
-dnl "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl PAM stuff for CUPS.
 dnl
-dnl   PAM stuff for the Common UNIX Printing System (CUPS).
+dnl Copyright 2007-2013 by Apple Inc.
+dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
 dnl
-dnl   Copyright 1997-2005 by Easy Software Products, all rights reserved.
-dnl
-dnl   These coded instructions, statements, and computer programs are the
-dnl   property of Easy Software Products and are protected by Federal
-dnl   copyright law.  Distribution and use rights are outlined in the file
-dnl   "LICENSE.txt" which should have been included with this file.  If this
-dnl   file is missing or damaged please contact Easy Software Products
-dnl   at:
-dnl
-dnl       Attn: CUPS Licensing Information
-dnl       Easy Software Products
-dnl       44141 Airport View Drive, Suite 204
-dnl       Hollywood, Maryland 20636 USA
-dnl
-dnl       Voice: (301) 373-9600
-dnl       EMail: cups-info@cups.org
-dnl         WWW: http://www.cups.org
+dnl These coded instructions, statements, and computer programs are the
+dnl property of Apple Inc. and are protected by Federal copyright
+dnl law.  Distribution and use rights are outlined in the file "LICENSE.txt"
+dnl which should have been included with this file.  If this file is
+dnl file is missing or damaged, see the license at "http://www.cups.org/".
 dnl
 
-AC_ARG_ENABLE(pam, [  --enable-pam            turn on PAM support, default=yes])
-
-dnl Don't use PAM with AIX...
-if test $uname = AIX; then
-       enable_pam=no
-fi
+AC_ARG_ENABLE(pam, [  --disable-pam           disable PAM support])
+AC_ARG_WITH(pam_module, [  --with-pam-module       specify the PAM module to use])
 
 PAMDIR=""
-PAMFILE=""
+PAMFILE="pam.std"
 PAMLIBS=""
 PAMMOD="pam_unknown.so"
+PAMMODAUTH="pam_unknown.so"
 
 if test x$enable_pam != xno; then
        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))
+       AC_CHECK_LIB(pam,pam_setcred,AC_DEFINE(HAVE_PAM_SETCRED))
        AC_CHECK_HEADER(security/pam_appl.h)
        if test x$ac_cv_header_security_pam_appl_h != xyes; then
                AC_CHECK_HEADER(pam/pam_appl.h,
@@ -66,24 +54,32 @@ if test x$enable_pam != xno; then
 
        case "$uname" in
                Darwin*)
-                       # Darwin, MacOS X
-                       PAMFILE="pam.darwin"
-                       ;;
-               IRIX)
-                       # SGI IRIX
-                       PAMFILE="pam.irix"
+                       # Darwin/macOS
+                       if test "x$with_pam_module" != x; then
+                               PAMFILE="pam.$with_pam_module"
+                       elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
+                               PAMFILE="pam.opendirectory"
+                       else
+                               PAMFILE="pam.securityserver"
+                       fi
                        ;;
+
                *)
                        # All others; this test might need to be updated
                        # as Linux distributors move things around...
-                       for mod in pam_unix2.so pam_unix.so pam_pwdb.so; do
-                               if test -f /lib/security/$mod; then
-                                       PAMMOD="$mod"
-                                       break;
-                               fi
-                       done
+                       if test "x$with_pam_module" != x; then
+                               PAMMOD="pam_${with_pam_module}.so"
+                       elif test -f /lib/security/pam_unix2.so; then
+                               PAMMOD="pam_unix2.so"
+                       elif test -f /lib/security/pam_unix.so; then
+                               PAMMOD="pam_unix.so"
+                       fi
 
-                       PAMFILE="pam.std"
+                       if test "x$PAMMOD" = xpam_unix.so; then
+                               PAMMODAUTH="$PAMMOD shadow nodelay"
+                       else
+                               PAMMODAUTH="$PAMMOD nodelay"
+                       fi
                        ;;
        esac
 fi
@@ -92,7 +88,4 @@ AC_SUBST(PAMDIR)
 AC_SUBST(PAMFILE)
 AC_SUBST(PAMLIBS)
 AC_SUBST(PAMMOD)
-
-dnl
-dnl End of "$Id: cups-pam.m4 5466 2006-04-26 19:52:27Z mike $".
-dnl
+AC_SUBST(PAMMODAUTH)