--- ./source3/configure.in.orig 2013-01-18 10:41:08.000000000 +0000 +++ ./source3/configure.in 2013-01-30 01:24:19.349878982 +0000 @@ -864,9 +864,13 @@ AC_PATH_PROG(CUPS_CONFIG, cups-config) if test "x$CUPS_CONFIG" != x; then + ac_save_PRINT_CPPFLAGS=$CPPFLAGS + ac_save_PRINT_LDFLAGS=$LDFLAGS - ac_save_LDFLAGS=$LDFLAGS ac_save_PRINT_LIBS=$PRINT_LIBS + CPPFLAGS="$CPPFLAGS `$CUPS_CONFIG --cflags`" + LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`" + AC_CHECK_HEADERS(cups/cups.h cups/language.h) if test x"$ac_cv_header_cups_cups_h" = xyes -a \ @@ -875,7 +879,7 @@ # underlinked. With cups-config --libs we pull in unwanted and unneeded # dendencies including thread libraries - use cups-config only if really # required. - AC_CHECK_LIB_EXT(cups, ac_save_PRINT_LIBS , httpConnect, + AC_CHECK_LIB_EXT(cups, ac_save_PRINT_LIBS, httpConnect, [PRINT_LIBS="$ac_save_PRINT_LIBS -lcups"], [AC_MSG_WARN([your cups library doesn't link with -lcups alone, it might be underlinked.]) ; PRINT_LIBS="$ac_save_PRINT_LIBS `$CUPS_CONFIG --libs`"]) @@ -885,10 +889,10 @@ AC_CHECK_LIB_EXT(cups, PRINT_LIBS, httpConnectEncrypt) else AC_MSG_WARN([cups-config around but cups-devel not installed]) - CFLAGS=$ac_save_CFLAGS - LDFLAGS=$ac_save_LDFLAGS PRINT_LIBS=$ac_save_PRINT_LIBS fi + CPPFLAGS=$ac_save_PRINT_CPPFLAGS + LDFLAGS=$ac_save_PRINT_LDFLAGS elif test x"$enable_cups" = x"yes"; then AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.) @@ -1845,7 +1849,7 @@ fi if test x"$BLDSHARED" = x"true" ; then - LDFLAGS="$LDFLAGS -L./bin" + LDFLAGS="-L./bin $LDFLAGS" fi AC_MSG_RESULT($BLDSHARED) @@ -1976,9 +1980,6 @@ AC_MSG_CHECKING([PICFLAG]) AC_MSG_RESULT([$PICFLAG]) -AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX]) -AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX]) - AC_CACHE_CHECK([whether building shared libraries actually works], [ac_cv_shlib_works],[ # try building a trivial shared library @@ -4656,15 +4657,51 @@ x"$ac_cv_header_pam_pam_modules_h" = x"no" ; then if test x"${try_pam}" = x"yes";then AC_MSG_ERROR([--with-pam=yes but pam_modules.h not found]) - fi + fi create_pam_modules=no - fi + fi if test x"$use_pam" = x"yes"; then - AC_DEFINE(WITH_PAM,1,[Whether to include PAM support]) + AC_DEFINE(WITH_PAM,1,[Whether to include PAM support]) AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available]) AUTH_LIBS="$AUTH_LIBS $PAM_LIBS" - with_pam_for_crypt=yes + with_pam_for_crypt=yes + + AC_VERIFY_C_PROTOTYPE( + [int pam_get_data(const pam_handle_t *pamh, const char *module_data_name, const void **data)], + [return 0;], + [AC_DEFINE(PAM_GET_DATA_ARG3_CONST_VOID_PP, 1, [Whether pam_get_data 3 argument is a const pointer to pointer])], + [ + dnl Old OpenPAM declaration + AC_VERIFY_C_PROTOTYPE( + [int pam_get_data(pam_handle_t *pamh, const char *module_data_name, void **data)], + [return 0;], + [AC_DEFINE(PAM_GET_DATA_ARG3_VOID_PP, 1, [Whether pam_get_data 3 argument is a void pointer to pointer])], + [], [ + #include + #if HAVE_SECURITY_PAM_APPL_H + #include + #endif + #if HAVE_PAM_PAM_APPL_H + #include + #endif + #if HAVE_SECURITY_PAM_MODULES_H + #include + #endif + ] + )],[ + #include + #if HAVE_SECURITY_PAM_APPL_H + #include + #endif + #if HAVE_PAM_PAM_APPL_H + #include + #endif + #if HAVE_SECURITY_PAM_MODULES_H + #include + #endif + ] + ) if test x"$create_pam_modules" = x"yes"; then AC_DEFINE(WITH_PAM_MODULES,1,[Whether to include PAM MODULES support]) @@ -4674,7 +4711,7 @@ AC_CHECK_HEADERS(pam/pam_ext.h pam/_pam_macros.h) AC_CHECK_FUNC_EXT(pam_vsyslog,$PAM_LIBS) else - AC_MSG_WARN([PAM support detected but PAM MODULES support is missing]) + AC_MSG_WARN([PAM support detected but PAM MODULES support is missing]) fi fi AC_MSG_CHECKING(whether to use PAM support) @@ -5877,7 +5914,7 @@ AC_MSG_CHECKING(for aio_suspend) AC_LINK_IFELSE([#include -int main() { struct aiocb a; struct timespec t; return aio_suspend(&a, 1, &t); }], +int main() { struct aiocb *a[[1]]; struct timespec t; return aio_suspend((const struct aiocb**)&a, 1, &t); }], [AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)]) fi @@ -6336,12 +6373,13 @@ NSSSONAMEVERSIONSUFFIX=".2" WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_linux.o" ;; - *freebsd[[5-9]]*) + *freebsd*) # FreeBSD winbind client is implemented as a wrapper around # the Linux version. NSSSONAMEVERSIONSUFFIX=".1" WINBIND_NSS_EXTRA_OBJS="../nsswitch/winbind_nss_freebsd.o \ ../nsswitch/winbind_nss_linux.o" + WINBIND_WINS_NSS_EXTRA_OBJS="../nsswitch/wins_freebsd.o" WINBIND_NSS="../nsswitch/nss_winbind.$SHLIBEXT" WINBIND_WINS_NSS="../nsswitch/nss_wins.$SHLIBEXT" ;; @@ -6488,10 +6526,14 @@ AC_MSG_RESULT(no$winbind_no_reason) fi +AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX]) +AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX]) + AC_SUBST(WINBIND_NSS) AC_SUBST(WINBIND_WINS_NSS) AC_SUBST(WINBIND_NSS_LDSHFLAGS) AC_SUBST(WINBIND_NSS_EXTRA_OBJS) +AC_SUBST(WINBIND_WINS_NSS_EXTRA_OBJS) AC_SUBST(NSSSONAMEVERSIONSUFFIX) AC_SUBST(WINBIND_KRB5_LOCATOR) @@ -6810,13 +6852,21 @@ # Start AC_CHECK_FUNC(getmntent) -AC_CHECK_HEADERS(sys/statfs.h) +AC_CHECK_HEADERS(sys/statfs.h sys/mount.h) AC_MSG_CHECKING([vfs_fileid: checking for statfs() and struct statfs.f_fsid)]) AC_CACHE_VAL(vfsfileid_cv_statfs,[ AC_TRY_RUN([ #include + #ifdef HAVE_SYS_PARAM_H + #include + #endif + #ifdef HAVE_SYS_MOUNT_H + #include + #endif + #ifdef HAVE_SYS_STATFS_H #include + #endif int main(void) { struct statfs fsd; @@ -7116,6 +7166,16 @@ LIBS="$LIBS -ldmalloc" fi +AC_ARG_ENABLE(dmalloc, [AS_HELP_STRING([--enable-dmalloc], [Enable heap debugging [default=no]])]) + +if test "x$enable_dmalloc" = xyes +then + AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging]) + AC_DEFINE(DMALLOC_FUNC_CHECK, 1, + [Define to check invariants around some common functions]) + LIBS="$LIBS -ldmalloc" +fi + dnl Remove -L/usr/lib/? from LDFLAGS and LIBS LIB_REMOVE_USR_LIB(LDFLAGS) LIB_REMOVE_USR_LIB(LIBS) @@ -7164,6 +7224,7 @@ AC_SUBST(SMBD_LIBS) CFLAGS="${CFLAGS} \$(FLAGS)" +CFLAGS="${CFLAGS} -I%%LOCALBASE%%/include" CFLAGS="${CFLAGS} -D_SAMBA_BUILD_=3" # If we had to expand the includes, make tsure the output file is moved back