Author: dj Date: 2005-11-19 11:09:13 -0700 (Sat, 19 Nov 2005) New Revision: 1267
Added: trunk/OOo/OOo_2.0.0-no_pam-1.patch Log: Added OpenOffice 2.0 no pam patch. Added: trunk/OOo/OOo_2.0.0-no_pam-1.patch =================================================================== --- trunk/OOo/OOo_2.0.0-no_pam-1.patch 2005-11-18 15:12:42 UTC (rev 1266) +++ trunk/OOo/OOo_2.0.0-no_pam-1.patch 2005-11-19 18:09:13 UTC (rev 1267) @@ -0,0 +1,459 @@ +Submitted By: DJ Lucas <dj_AT_linuxfromscratch_DOT_org> +Date: 2005-11-19 +Initial Package Version: 1.1rc4 +Origin: Thorsten Happel + See http://archive.linuxfromscratch.org/mail-archives/blfs-dev/2005-November/012106.html +Description: This patch removes the need for PAM headers by removing the + functions that use PAM. Updated for 2.0.0. +Upstream Status: Not Required + +--- OOo_2.0.0rc3_src/config_office/configure.orig 2005-11-19 15:59:12.000000000 +0100 ++++ OOo_2.0.0rc3_src/config_office/configure 2005-11-19 16:03:03.000000000 +0100 +@@ -5398,245 +5398,6 @@ + + fi + +-if test "$_os" = "Linux" -o "$_os" = "FreeBSD" -o "$_os" = "GNU"; then +- if test "${ac_cv_header_security_pam_appl_h+set}" = set; then +- echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5 +-echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6 +-if test "${ac_cv_header_security_pam_appl_h+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-fi +-echo "$as_me:$LINENO: result: $ac_cv_header_security_pam_appl_h" >&5 +-echo "${ECHO_T}$ac_cv_header_security_pam_appl_h" >&6 +-else +- # Is the header compilable? +-echo "$as_me:$LINENO: checking security/pam_appl.h usability" >&5 +-echo $ECHO_N "checking security/pam_appl.h usability... $ECHO_C" >&6 +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-$ac_includes_default +-#include <security/pam_appl.h> +-_ACEOF +-rm -f conftest.$ac_objext +-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 +- (eval $ac_compile) 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -z "$ac_c_werror_flag" +- || test ! -s conftest.err' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; } && +- { ac_try='test -s conftest.$ac_objext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_header_compiler=yes +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-ac_header_compiler=no +-fi +-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +-echo "${ECHO_T}$ac_header_compiler" >&6 +- +-# Is the header present? +-echo "$as_me:$LINENO: checking security/pam_appl.h presence" >&5 +-echo $ECHO_N "checking security/pam_appl.h presence... $ECHO_C" >&6 +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +-#include <security/pam_appl.h> +-_ACEOF +-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 +- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } >/dev/null; then +- if test -s conftest.err; then +- ac_cpp_err=$ac_c_preproc_warn_flag +- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag +- else +- ac_cpp_err= +- fi +-else +- ac_cpp_err=yes +-fi +-if test -z "$ac_cpp_err"; then +- ac_header_preproc=yes +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +- ac_header_preproc=no +-fi +-rm -f conftest.err conftest.$ac_ext +-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +-echo "${ECHO_T}$ac_header_preproc" >&6 +- +-# So? What about this header? +-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in +- yes:no: ) +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: accepted by the compiler, rejected by the preprocessor!" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the compiler's result" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: proceeding with the compiler's result" >&2;} +- ac_header_preproc=yes +- ;; +- no:yes:* ) +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: present but cannot be compiled" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: present but cannot be compiled" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: check for missing prerequisite headers?" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: see the Autoconf documentation" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: see the Autoconf documentation" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: section \"Present But Cannot Be Compiled\"" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: section \"Present But Cannot Be Compiled\"" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: proceeding with the preprocessor's result" >&2;} +- { echo "$as_me:$LINENO: WARNING: security/pam_appl.h: in the future, the compiler will take precedence" >&5 +-echo "$as_me: WARNING: security/pam_appl.h: in the future, the compiler will take precedence" >&2;} +- ( +- cat <<\_ASBOX +-## ------------------------------------------ ## +-## Report this to the AC_PACKAGE_NAME lists. ## +-## ------------------------------------------ ## +-_ASBOX +- ) | +- sed "s/^/$as_me: WARNING: /" >&2 +- ;; +-esac +-echo "$as_me:$LINENO: checking for security/pam_appl.h" >&5 +-echo $ECHO_N "checking for security/pam_appl.h... $ECHO_C" >&6 +-if test "${ac_cv_header_security_pam_appl_h+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_cv_header_security_pam_appl_h=$ac_header_preproc +-fi +-echo "$as_me:$LINENO: result: $ac_cv_header_security_pam_appl_h" >&5 +-echo "${ECHO_T}$ac_cv_header_security_pam_appl_h" >&6 +- +-fi +-if test $ac_cv_header_security_pam_appl_h = yes; then +- : +-else +- { { echo "$as_me:$LINENO: error: pam_appl.h could not be found. libpam-dev or pam-devel missing?" >&5 +-echo "$as_me: error: pam_appl.h could not be found. libpam-dev or pam-devel missing?" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +- +- echo "$as_me:$LINENO: checking whether to link to libpam" >&5 +-echo $ECHO_N "checking whether to link to libpam... $ECHO_C" >&6 +- if test -n "$enable_pam_link"; then +- echo "$as_me:$LINENO: result: yes" >&5 +-echo "${ECHO_T}yes" >&6 +- PAM_LINK=YES +- +-echo "$as_me:$LINENO: checking for pam_start in -lpam" >&5 +-echo $ECHO_N "checking for pam_start in -lpam... $ECHO_C" >&6 +-if test "${ac_cv_lib_pam_pam_start+set}" = set; then +- echo $ECHO_N "(cached) $ECHO_C" >&6 +-else +- ac_check_lib_save_LIBS=$LIBS +-LIBS="-lpam $LIBS" +-cat >conftest.$ac_ext <<_ACEOF +-/* confdefs.h. */ +-_ACEOF +-cat confdefs.h >>conftest.$ac_ext +-cat >>conftest.$ac_ext <<_ACEOF +-/* end confdefs.h. */ +- +-/* Override any gcc2 internal prototype to avoid an error. */ +-#ifdef __cplusplus +-extern "C" +-#endif +-/* We use char because int might match the return type of a gcc2 +- builtin and then its argument prototype would still apply. */ +-char pam_start (); +-int +-main () +-{ +-pam_start (); +- ; +- return 0; +-} +-_ACEOF +-rm -f conftest.$ac_objext conftest$ac_exeext +-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 +- (eval $ac_link) 2>conftest.er1 +- ac_status=$? +- grep -v '^ *+' conftest.er1 >conftest.err +- rm -f conftest.er1 +- cat conftest.err >&5 +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); } && +- { ac_try='test -z "$ac_c_werror_flag" +- || test ! -s conftest.err' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; } && +- { ac_try='test -s conftest$ac_exeext' +- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 +- (eval $ac_try) 2>&5 +- ac_status=$? +- echo "$as_me:$LINENO: \$? = $ac_status" >&5 +- (exit $ac_status); }; }; then +- ac_cv_lib_pam_pam_start=yes +-else +- echo "$as_me: failed program was:" >&5 +-sed 's/^/| /' conftest.$ac_ext >&5 +- +-ac_cv_lib_pam_pam_start=no +-fi +-rm -f conftest.err conftest.$ac_objext \ +- conftest$ac_exeext conftest.$ac_ext +-LIBS=$ac_check_lib_save_LIBS +-fi +-echo "$as_me:$LINENO: result: $ac_cv_lib_pam_pam_start" >&5 +-echo "${ECHO_T}$ac_cv_lib_pam_pam_start" >&6 +-if test $ac_cv_lib_pam_pam_start = yes; then +- cat >>confdefs.h <<_ACEOF +-#define HAVE_LIBPAM 1 +-_ACEOF +- +- LIBS="-lpam $LIBS" +- +-else +- { { echo "$as_me:$LINENO: error: libpam not found or functional" >&5 +-echo "$as_me: error: libpam not found or functional" >&2;} +- { (exit 1); exit 1; }; } +-fi +- +- else +- echo "$as_me:$LINENO: result: no, dynamically open it" >&5 +-echo "${ECHO_T}no, dynamically open it" >&6 +- PAM_LINK=NO +- fi +-fi +- +- + if test "$_os" = "Linux"; then + echo "$as_me:$LINENO: checking whether to link to libcrypt" >&5 + echo $ECHO_N "checking whether to link to libcrypt... $ECHO_C" >&6 + + +--- OOo_2.0.0rc2_src_orig/sal/osl/unx/security.c 2005-09-08 17:00:23.000000000 +0200 ++++ OOo_2.0.0rc2_src/sal/osl/unx/security.c 2005-10-16 22:34:49.000000000 +0200 +@@ -111,8 +111,6 @@ + * + */ + +-#include <security/pam_appl.h> +- + typedef struct { + char* name; + char* password; +@@ -121,10 +119,10 @@ + typedef struct { + int (*pam_start)(const char *service_name, const char *user, + const struct pam_conv *pam_conversation, +- pam_handle_t **pamh); +- int (*pam_end) (pam_handle_t *pamh, int pam_status); +- int (*pam_authenticate) (pam_handle_t *pamh, int flags); +- int (*pam_acct_mgmt) (pam_handle_t *pamh, int flags); ++ void **pamh); ++ int (*pam_end) (void *pamh, int pam_status); ++ int (*pam_authenticate) (void *pamh, int flags); ++ int (*pam_acct_mgmt) (void *pamh, int flags); + } sal_PamModule; + + /* +@@ -142,69 +140,7 @@ + osl_PamConversation (int num_msg, const struct pam_message **msgm, + struct pam_response **response, void *appdata_ptr) + { +- int i; +- sal_Bool error; +- sal_PamData *pam_data; +- struct pam_response *p_reply; +- +- /* resource initialization */ +- pam_data = (sal_PamData*) appdata_ptr; +- p_reply = (struct pam_response *) calloc( num_msg, +- sizeof(struct pam_response)); +- if ( p_reply == NULL || pam_data == NULL ) +- { +- if ( p_reply != NULL ) +- free ( p_reply ); +- *response = NULL; +- return PAM_CONV_ERR; +- } +- +- /* pseudo dialog */ +- error = sal_False; +- for ( i = 0; i < num_msg ; i++ ) +- { +- switch ( msgm[ i ]->msg_style ) +- { +- case PAM_PROMPT_ECHO_OFF: +- p_reply[ i ].resp_retcode = 0; +- p_reply[ i ].resp = strdup( pam_data->password ); +- break; +- case PAM_PROMPT_ECHO_ON: +- p_reply[ i ].resp_retcode = 0; +- p_reply[ i ].resp = strdup( pam_data->name ); +- break; +- case PAM_ERROR_MSG: +- case PAM_TEXT_INFO: +- case PAM_BINARY_PROMPT: +- case PAM_BINARY_MSG: +- p_reply[ i ].resp_retcode = 0; +- p_reply[ i ].resp = NULL; +- break; +- default: +- error = sal_True; +- break; +- } +- } +- +- /* free resources on error */ +- if ( error ) +- { +- for ( i = 0; i < num_msg ; i++ ) +- if ( p_reply[ i ].resp ) +- { +- memset ( p_reply[ i ].resp, 0, +- strlen( p_reply[ i ].resp ) ); +- free ( p_reply[ i ].resp ); +- } +- free ( p_reply ); +- +- *response = NULL; +- return PAM_CONV_ERR; +- } +- +- /* well done */ +- *response = p_reply; +- return PAM_SUCCESS; ++ return -1; + } + + #ifndef PAM_LINK +@@ -218,45 +154,6 @@ + static sal_PamModule* osl_getPAM() + { + static sal_PamModule *pam_module = NULL; +- static sal_Bool load_once = sal_False; +- +- if ( !load_once ) +- { +- /* get library-handle. cannot use osl-module, since +- RTLD_GLOBAL is required for PAM-0.64 RH 5.2 +- (but not for PAM-0.66 RH 6.0) */ +- void *pam_hdl; +- +- pam_hdl = dlopen( "libpam.so.0", RTLD_GLOBAL | RTLD_LAZY ); +- +- if ( pam_hdl != NULL ) +- pam_module = (sal_PamModule*)calloc( 1, sizeof(sal_PamModule) ); +- +- /* load functions */ +- if ( pam_module != NULL ) +- { +- pam_module->pam_acct_mgmt = (int (*)(pam_handle_t *, int)) dlsym ( pam_hdl, "pam_acct_mgmt" ); +- pam_module->pam_authenticate +- = (int (*)(pam_handle_t *, int)) dlsym ( pam_hdl, "pam_authenticate" ); +- pam_module->pam_end = (int (*)(pam_handle_t *, int)) dlsym ( pam_hdl, "pam_end" ); +- pam_module->pam_start = (int (*)(const char *, const char *, const struct pam_conv *, pam_handle_t **)) dlsym ( pam_hdl, "pam_start" ); +- +- /* free resources, if not completely successful */ +- if ( (pam_module->pam_start == NULL) +- || (pam_module->pam_end == NULL) +- || (pam_module->pam_authenticate == NULL) +- || (pam_module->pam_acct_mgmt == NULL) ) +- { +- free( pam_module ); +- pam_module = NULL; +- dlclose( pam_hdl ); +- } +- } +- +- /* never try again */ +- load_once = sal_True; +- } +- + return pam_module; + } + #endif +@@ -269,53 +166,6 @@ + osl_PamAuthentification( const sal_Char* name, const sal_Char* password ) + { + sal_Bool success = sal_False; +- +-#ifndef PAM_LINK +- sal_PamModule* pam_module; +- +- pam_module = osl_getPAM(); +- if ( pam_module != NULL ) +- { +-#endif +- pam_handle_t *pam_handle = NULL; +- struct pam_conv pam_conversation; +- sal_PamData pam_data; +- +- int return_value; +- +- pam_data.name = (char*) name; +- pam_data.password = (char*) password; +- +- pam_conversation.conv = osl_PamConversation; +- pam_conversation.appdata_ptr = (void*)(&pam_data); +- +-#ifndef PAM_LINK +- return_value = pam_module->pam_start( "su", name, +- &pam_conversation, &pam_handle); +-#else +- return_value = pam_start( "su", name, +- &pam_conversation, &pam_handle); +-#endif +- if (return_value == PAM_SUCCESS ) +-#ifndef PAM_LINK +- return_value = pam_module->pam_authenticate(pam_handle, 0); +-#else +- return_value = pam_authenticate(pam_handle, 0); +-#endif +- if (return_value == PAM_SUCCESS ) +-#ifndef PAM_LINK +- return_value = pam_module->pam_acct_mgmt(pam_handle, 0); +- pam_module->pam_end( pam_handle, return_value ); +-#else +- return_value = pam_acct_mgmt(pam_handle, 0); +- pam_end( pam_handle, return_value ); +-#endif +- +- success = (sal_Bool)(return_value == PAM_SUCCESS); +-#ifndef PAM_LINK +- } +-#endif +- + return success; + } + + + + -- http://linuxfromscratch.org/mailman/listinfo/patches FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
