diff options
author | 2008-07-22 14:23:54 +0000 | |
---|---|---|
committer | 2008-07-22 14:23:54 +0000 | |
commit | 0caf93780c68be483f9d195e76dd849128524860 (patch) | |
tree | 50505d4c3088d84d489993d680ccb35a56dbfa02 /sys-apps/shadow/files | |
parent | Revision bump. Add USE-flag for scrobbler plugin, closes bug #214588. Patch f... (diff) | |
download | gentoo-2-0caf93780c68be483f9d195e76dd849128524860.tar.gz gentoo-2-0caf93780c68be483f9d195e76dd849128524860.tar.bz2 gentoo-2-0caf93780c68be483f9d195e76dd849128524860.zip |
Add patch to build against OpenPAM, thanks to Seraphim Mellos in bug #232586.
(Portage version: 2.2_rc1/cvs/Linux 2.6.26-gentoo x86_64)
Diffstat (limited to 'sys-apps/shadow/files')
-rw-r--r-- | sys-apps/shadow/files/shadow-4.1.2.1+openpam.patch | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sys-apps/shadow/files/shadow-4.1.2.1+openpam.patch b/sys-apps/shadow/files/shadow-4.1.2.1+openpam.patch new file mode 100644 index 000000000000..f10e02d03682 --- /dev/null +++ b/sys-apps/shadow/files/shadow-4.1.2.1+openpam.patch @@ -0,0 +1,121 @@ +Index: shadow-4.1.2.1/configure.in +=================================================================== +--- shadow-4.1.2.1.orig/configure.in ++++ shadow-4.1.2.1/configure.in +@@ -339,13 +339,29 @@ if test "$with_libpam" != "no"; then + AC_MSG_ERROR(libpam not found) + fi + +- AC_CHECK_LIB(pam_misc, main, +- [pam_misc_lib="yes"], [pam_misc_lib="no"]) +- if test "$pam_misc_lib$with_libpam" = "noyes" ; then +- AC_MSG_ERROR(libpam_misc not found) ++ LIBPAM="-lpam" ++ pam_conv_function="no" ++ ++ AC_CHECK_LIB(pam, openpam_ttyconv, ++ [pam_conv_function="openpam_ttyconv"], ++ AC_CHECK_LIB(pam_misc, misc_conv, ++ [pam_conv_function="misc_conv"; LIBPAM="$LIBPAM -lpam_misc"]) ++ ) ++ ++ if test "$pam_conv_function$with_libpam" = "noyes" ; then ++ AC_MSG_ERROR(PAM conversation function not found) + fi + +- if test "$pam_lib$pam_misc_lib" = "yesyes" ; then ++ pam_headers_found=no ++ AC_CHECK_HEADERS( [security/openpam.h security/pam_misc.h], ++ [ pam_headers_found=yes ; break ], [], ++ [ #include <security/pam_appl.h> ] ) ++ if test "$pam_headers_found$with_libpam" = "noyes" ; then ++ AC_MSG_ERROR(PAM headers not found) ++ fi ++ ++ ++ if test "$pam_lib$pam_headers_found" = "yesyes" -a "$pam_conv_function" != "no" ; then + with_libpam="yes" + else + with_libpam="no" +@@ -353,9 +369,22 @@ if test "$with_libpam" != "no"; then + fi + dnl Now with_libpam is either yes or no + if test "$with_libpam" = "yes"; then ++ AC_CHECK_DECLS([PAM_ESTABLISH_CRED, ++ PAM_DELETE_CRED, ++ PAM_NEW_AUTHTOK_REQD, ++ PAM_DATA_SILENT], ++ [], [], [#include <security/pam_appl.h>]) ++ ++ ++ save_libs=$LIBS ++ LIBS="$LIBS $LIBPAM" ++ AC_CHECK_FUNCS([pam_fail_delay]) ++ LIBS=$save_libs ++ + AC_DEFINE(USE_PAM, 1, [Define to support Pluggable Authentication Modules]) ++ AC_DEFINE_UNQUOTED(SHADOW_PAM_CONVERSATION, [$pam_conv_function],[PAM converstation to use]) + AM_CONDITIONAL(USE_PAM, [true]) +- LIBPAM="-lpam -lpam_misc" ++ + AC_MSG_CHECKING(use login and su access checking if PAM not used) + AC_MSG_RESULT(no) + else +Index: shadow-4.1.2.1/lib/pam_defs.h +=================================================================== +--- shadow-4.1.2.1.orig/lib/pam_defs.h ++++ shadow-4.1.2.1/lib/pam_defs.h +@@ -28,24 +28,31 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include <config.h> + #include <security/pam_appl.h> +-#include <security/pam_misc.h> ++#ifdef HAVE_SECURITY_PAM_MISC_H ++# include <security/pam_misc.h> ++#endif ++#ifdef HAVE_SECURITY_OPENPAM_H ++# include <security/openpam.h> ++#endif ++ + + static struct pam_conv conv = { +- misc_conv, ++ SHADOW_PAM_CONVERSATION, + NULL + }; + + /* compatibility with different versions of Linux-PAM */ +-#ifndef PAM_ESTABLISH_CRED ++#if !HAVE_DECL_PAM_ESTABLISH_CRED + #define PAM_ESTABLISH_CRED PAM_CRED_ESTABLISH + #endif +-#ifndef PAM_DELETE_CRED ++#if !HAVE_DECL_PAM_DELETE_CRED + #define PAM_DELETE_CRED PAM_CRED_DELETE + #endif +-#ifndef PAM_NEW_AUTHTOK_REQD ++#if !HAVE_DECL_PAM_NEW_AUTHTOK_REQD + #define PAM_NEW_AUTHTOK_REQD PAM_AUTHTOKEN_REQD + #endif +-#ifndef PAM_DATA_SILENT ++#if !HAVE_DECL_PAM_DATA_SILENT + #define PAM_DATA_SILENT 0 + #endif +Index: shadow-4.1.2.1/src/login.c +=================================================================== +--- shadow-4.1.2.1.orig/src/login.c ++++ shadow-4.1.2.1/src/login.c +@@ -644,9 +644,10 @@ int main (int argc, char **argv) + failed = 0; + + failcount++; ++#ifdef HAVE_PAM_FAIL_DELAY + if (delay > 0) + retcode = pam_fail_delay(pamh, 1000000*delay); +- ++#endif + retcode = pam_authenticate (pamh, 0); + + pam_get_item (pamh, PAM_USER, |