From: Amos Jeffries Date: Wed, 24 Dec 2025 00:12:40 +0000 (+0000) Subject: basic_pam_auth: auto-detect PAM library (#2321) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1aae8e2b58cd6690f296cee4348944bef875f78;p=thirdparty%2Fsquid.git basic_pam_auth: auto-detect PAM library (#2321) --- diff --git a/acinclude/pam.m4 b/acinclude/pam.m4 index 87ece09635..97aba2c3af 100644 --- a/acinclude/pam.m4 +++ b/acinclude/pam.m4 @@ -8,18 +8,17 @@ dnl check whether PAM's struct pam_conv takes a const (linux-style) or dnl non-const (solaris-style) parametrs to the conv function. dnl -dnl sets the shell variable squid_cv_pam_conv_signature to either -dnl "linux", "solaris" or "unknown". dnl defines the C preprocessor macro PAM_CONV_FUNC_CONST_PARM to either -dnl "static" (linux-style) or the empty string (solaris-style or default) - +dnl "const" (linux-style) or the empty string (solaris-style or default) AC_DEFUN([CHECK_STRUCT_PAM_CONV], [ AH_TEMPLATE([PAM_CONV_FUNC_CONST_PARM], [Defined to const or empty depending on the style used by the OS to refer to the PAM message dialog func]) AC_CACHE_CHECK([for PAM conversation struct signature type], squid_cv_pam_conv_signature, [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#if HAVE_SECURITY_PAM_APPL_H #include +#endif static int password_conversation(int, const struct pam_message **, struct pam_response **, void *) { return 0; } static struct pam_conv conv = { &password_conversation, 0 }; @@ -27,7 +26,9 @@ static struct pam_conv conv = { &password_conversation, 0 }; squid_cv_pam_conv_signature=linux ],[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#if HAVE_SECURITY_PAM_APPL_H #include +#endif static int password_conversation(int, struct pam_message **, struct pam_response **, void *) { return 0; } static struct pam_conv conv = { &password_conversation, 0 }; @@ -44,4 +45,13 @@ static struct pam_conv conv = { &password_conversation, 0 }; ) ]) dnl CHECK_STRUCT_PAM_CONV - +dnl check for --with-pam option +AC_DEFUN_ONCE([SQUID_CHECK_LIBPAM],[ +SQUID_AUTO_LIB(pam,[Pluggable Authentication Modules],[LIBPAM]) +SQUID_CHECK_LIB_WORKS(pam,[ + LIBS="$LIBS $LIBPAM_PATH" + PKG_CHECK_MODULES([LIBPAM],[pam],[:],[:]) + CPPFLAGS="$CPPFLAGS $LIBPAM_CFLAGS" + AC_CHECK_HEADERS([security/pam_appl.h],[CHECK_STRUCT_PAM_CONV],[LIBPAM_LIBS=""]) +]) +]) dnl SQUID_CHECK_LIBPAM diff --git a/doc/release-notes/release-8.sgml.in b/doc/release-notes/release-8.sgml.in index 8ddb88821e..5bf3d4736e 100644 --- a/doc/release-notes/release-8.sgml.in +++ b/doc/release-notes/release-8.sgml.in @@ -144,7 +144,9 @@ This section gives an account of those changes in three categories: New options