On Solaris, pam_appl.h must be included to use pam_modules.h. Additionally, for platforms that have the pam header files in a different location, the include paths need to be based on the result of configure. Need to file upstream bug --- gnome-keyring-42.1/configure.ac.orig +++ gnome-keyring-42.1/configure.ac @@ -246,7 +246,15 @@ pam_status="no" if test "$enable_pam" != "no"; then - AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h, [have_pam=yes; break], have_pam=no) + AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h) + AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h, [have_pam=yes; break], have_pam=no, +[#ifdef HAVE_SECURITY_PAM_APPL_H +#include <security/pam_appl.h> +#endif +#ifdef HAVE_PAM_PAM_APPL_H +#include <pam/pam_appl.h> +#endif +]) if test "$enable_pam" = "yes" -a "$have_pam" = "no"; then AC_MSG_ERROR(The PAM headers are missing) elif test "$have_pam" = "yes"; then --- gnome-keyring-42.1/pam/gkr-pam-module.c.orig +++ gnome-keyring-42.1/pam/gkr-pam-module.c @@ -32,8 +32,13 @@ #include "daemon/control/gkd-control-codes.h" +#ifdef HAVE_PAM_PAM_APPL_H +#include <pam/pam_appl.h> +#include <pam/pam_modules.h> +#else #include <security/pam_appl.h> #include <security/pam_modules.h> +#endif #include <sys/types.h> #include <sys/stat.h> --- gnome-keyring-42.1/pam/mock-pam.c.orig +++ gnome-keyring-42.1/pam/mock-pam.c @@ -20,8 +20,13 @@ #include "config.h" +#ifdef HAVE_PAM_PAM_APPL_H +#include <pam/pam_appl.h> +#include <pam/pam_modules.h> +#else #include <security/pam_appl.h> #include <security/pam_modules.h> +#endif #include <stdlib.h> #include <string.h> --- gnome-keyring-42.1/pam/test-pam.c.orig +++ gnome-keyring-42.1/pam/test-pam.c @@ -26,7 +26,11 @@ #include "egg/egg-testing.h" #include "egg/egg-secure-memory.h" +#ifdef HAVE_PAM_PAM_APPL_H +#include <pam/pam_appl.h> +#else #include <security/pam_appl.h> +#endif #include <glib.h> #include <glib/gstdio.h>