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>