--- misc/build/postgresql-9.1.1/configure	2011-09-22 23:57:57.000000000 +0200
+++ misc/build/postgresql-9.1.1.patched/configure	2012-02-03 11:50:07.000000000 +0100
@@ -830,6 +830,7 @@
 with_krb_srvnam
 with_pam
 with_ldap
+with_mozldap
 with_bonjour
 with_openssl
 with_selinux
@@ -1527,6 +1528,7 @@
                           [postgres]
   --with-pam              build with PAM support
   --with-ldap             build with LDAP support
+  --with-mozldap          build with Mozilla LDAP support
   --with-bonjour          build with Bonjour support
   --with-openssl          build with OpenSSL support
   --with-selinux          build with SELinux support
@@ -5412,6 +5414,42 @@
 
 
 
+{ $as_echo "$as_me:$LINENO: checking whether to use Mozilla C SDK for LDAP support" >&5
+$as_echo_n "checking whether to use Mozilla C SDK for LDAP support... " >&6; }
+
+
+
+# Check whether --with-mozldap was given.
+if test "${with_mozldap+set}" = set; then
+  withval=$with_mozldap;
+  case $withval in
+    yes)
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_MOZLDAP 1
+_ACEOF
+
+      ;;
+    no)
+      :
+      ;;
+    *)
+      { { $as_echo "$as_me:$LINENO: error: no argument expected for --with-mozldap option" >&5
+$as_echo "$as_me: error: no argument expected for --with-mozldap option" >&2;}
+   { (exit 1); exit 1; }; }
+      ;;
+  esac
+
+else
+  with_mozldap=no
+
+fi
+
+
+{ $as_echo "$as_me:$LINENO: result: $with_mozldap" >&5
+$as_echo "$with_mozldap" >&6; }
+
+
 
 #
 # Kerberos configuration parameters
@@ -8627,11 +8665,11 @@
 *** Not using spinlocks will cause poor performance." >&2;}
 fi
 
-if test "$with_gssapi" = yes ; then
+if test "$with_krb5" = yes ; then
   if test "$PORTNAME" != "win32"; then
-    { $as_echo "$as_me:$LINENO: checking for library containing gss_init_sec_context" >&5
-$as_echo_n "checking for library containing gss_init_sec_context... " >&6; }
-if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
+     { $as_echo "$as_me:$LINENO: checking for library containing com_err" >&5
+$as_echo_n "checking for library containing com_err... " >&6; }
+if test "${ac_cv_search_com_err+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8648,16 +8686,16 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char gss_init_sec_context ();
+char com_err ();
 int
 main ()
 {
-return gss_init_sec_context ();
+return com_err ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'; do
+for ac_lib in '' com_err 'com_err -lssl -lcrypto' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8685,7 +8723,7 @@
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_search_gss_init_sec_context=$ac_res
+  ac_cv_search_com_err=$ac_res
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -8696,40 +8734,33 @@
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
-  if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
+  if test "${ac_cv_search_com_err+set}" = set; then
   break
 fi
 done
-if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
+if test "${ac_cv_search_com_err+set}" = set; then
   :
 else
-  ac_cv_search_gss_init_sec_context=no
+  ac_cv_search_com_err=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gss_init_sec_context" >&5
-$as_echo "$ac_cv_search_gss_init_sec_context" >&6; }
-ac_res=$ac_cv_search_gss_init_sec_context
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_com_err" >&5
+$as_echo "$ac_cv_search_com_err" >&6; }
+ac_res=$ac_cv_search_com_err
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  { { $as_echo "$as_me:$LINENO: error: could not find function 'gss_init_sec_context' required for GSSAPI" >&5
-$as_echo "$as_me: error: could not find function 'gss_init_sec_context' required for GSSAPI" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: could not find function 'com_err' required for Kerberos 5" >&5
+$as_echo "$as_me: error: could not find function 'com_err' required for Kerberos 5" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-  else
-    LIBS="$LIBS -lgssapi32"
-  fi
-fi
-
-if test "$with_krb5" = yes ; then
-  if test "$PORTNAME" != "win32"; then
-     { $as_echo "$as_me:$LINENO: checking for library containing com_err" >&5
-$as_echo_n "checking for library containing com_err... " >&6; }
-if test "${ac_cv_search_com_err+set}" = set; then
+     { $as_echo "$as_me:$LINENO: checking for library containing krb5_sendauth" >&5
+$as_echo_n "checking for library containing krb5_sendauth... " >&6; }
+if test "${ac_cv_search_krb5_sendauth+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8746,16 +8777,16 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char com_err ();
+char krb5_sendauth ();
 int
 main ()
 {
-return com_err ();
+return krb5_sendauth ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken' com_err 'com_err -lssl -lcrypto'; do
+for ac_lib in '' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8783,7 +8814,7 @@
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_search_com_err=$ac_res
+  ac_cv_search_krb5_sendauth=$ac_res
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -8794,33 +8825,34 @@
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
-  if test "${ac_cv_search_com_err+set}" = set; then
+  if test "${ac_cv_search_krb5_sendauth+set}" = set; then
   break
 fi
 done
-if test "${ac_cv_search_com_err+set}" = set; then
+if test "${ac_cv_search_krb5_sendauth+set}" = set; then
   :
 else
-  ac_cv_search_com_err=no
+  ac_cv_search_krb5_sendauth=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_com_err" >&5
-$as_echo "$ac_cv_search_com_err" >&6; }
-ac_res=$ac_cv_search_com_err
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_krb5_sendauth" >&5
+$as_echo "$ac_cv_search_krb5_sendauth" >&6; }
+ac_res=$ac_cv_search_krb5_sendauth
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  { { $as_echo "$as_me:$LINENO: error: could not find function 'com_err' required for Kerberos 5" >&5
-$as_echo "$as_me: error: could not find function 'com_err' required for Kerberos 5" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: could not find function 'krb5_sendauth' required for Kerberos 5" >&5
+$as_echo "$as_me: error: could not find function 'krb5_sendauth' required for Kerberos 5" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-     { $as_echo "$as_me:$LINENO: checking for library containing krb5_sendauth" >&5
-$as_echo_n "checking for library containing krb5_sendauth... " >&6; }
-if test "${ac_cv_search_krb5_sendauth+set}" = set; then
+  else
+     { $as_echo "$as_me:$LINENO: checking for library containing com_err" >&5
+$as_echo_n "checking for library containing com_err... " >&6; }
+if test "${ac_cv_search_com_err+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8837,16 +8869,16 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char krb5_sendauth ();
+char com_err ();
 int
 main ()
 {
-return krb5_sendauth ();
+return com_err ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' krb5 'krb5 -lcrypto -ldes -lasn1 -lroken'; do
+for ac_lib in '' 'comerr32 -lkrb5_32'; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8874,7 +8906,7 @@
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_search_krb5_sendauth=$ac_res
+  ac_cv_search_com_err=$ac_res
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -8885,34 +8917,38 @@
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
-  if test "${ac_cv_search_krb5_sendauth+set}" = set; then
+  if test "${ac_cv_search_com_err+set}" = set; then
   break
 fi
 done
-if test "${ac_cv_search_krb5_sendauth+set}" = set; then
+if test "${ac_cv_search_com_err+set}" = set; then
   :
 else
-  ac_cv_search_krb5_sendauth=no
+  ac_cv_search_com_err=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_krb5_sendauth" >&5
-$as_echo "$ac_cv_search_krb5_sendauth" >&6; }
-ac_res=$ac_cv_search_krb5_sendauth
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_com_err" >&5
+$as_echo "$ac_cv_search_com_err" >&6; }
+ac_res=$ac_cv_search_com_err
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  { { $as_echo "$as_me:$LINENO: error: could not find function 'krb5_sendauth' required for Kerberos 5" >&5
-$as_echo "$as_me: error: could not find function 'krb5_sendauth' required for Kerberos 5" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: could not find function 'com_err' required for Kerberos 5" >&5
+$as_echo "$as_me: error: could not find function 'com_err' required for Kerberos 5" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-  else
-     { $as_echo "$as_me:$LINENO: checking for library containing com_err" >&5
-$as_echo_n "checking for library containing com_err... " >&6; }
-if test "${ac_cv_search_com_err+set}" = set; then
+  fi
+fi
+
+if test "$with_gssapi" = yes ; then
+  if test "$PORTNAME" != "win32"; then
+    { $as_echo "$as_me:$LINENO: checking for library containing gss_init_sec_context" >&5
+$as_echo_n "checking for library containing gss_init_sec_context... " >&6; }
+if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -8929,16 +8965,16 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char com_err ();
+char gss_init_sec_context ();
 int
 main ()
 {
-return com_err ();
+return gss_init_sec_context ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' 'comerr32 -lkrb5_32'; do
+for ac_lib in '' gssapi_krb5 gss 'gssapi -lkrb5 -lcrypto'; do
   if test -z "$ac_lib"; then
     ac_res="none required"
   else
@@ -8966,7 +9002,7 @@
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_search_com_err=$ac_res
+  ac_cv_search_gss_init_sec_context=$ac_res
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
@@ -8977,30 +9013,32 @@
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
-  if test "${ac_cv_search_com_err+set}" = set; then
+  if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
   break
 fi
 done
-if test "${ac_cv_search_com_err+set}" = set; then
+if test "${ac_cv_search_gss_init_sec_context+set}" = set; then
   :
 else
-  ac_cv_search_com_err=no
+  ac_cv_search_gss_init_sec_context=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_com_err" >&5
-$as_echo "$ac_cv_search_com_err" >&6; }
-ac_res=$ac_cv_search_com_err
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gss_init_sec_context" >&5
+$as_echo "$ac_cv_search_gss_init_sec_context" >&6; }
+ac_res=$ac_cv_search_gss_init_sec_context
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 else
-  { { $as_echo "$as_me:$LINENO: error: could not find function 'com_err' required for Kerberos 5" >&5
-$as_echo "$as_me: error: could not find function 'com_err' required for Kerberos 5" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: could not find function 'gss_init_sec_context' required for GSSAPI" >&5
+$as_echo "$as_me: error: could not find function 'gss_init_sec_context' required for GSSAPI" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
+  else
+    LIBS="$LIBS -lgssapi32"
   fi
 fi
 
@@ -13598,7 +13636,7 @@
 fi
 
 if test "$with_ldap" = yes ; then
-  if test "$PORTNAME" != "win32"; then
+  if test "$PORTNAME" != "win32" || test "$with_mozldap" = "yes"; then
 
 for ac_header in ldap.h
 do
@@ -13823,6 +13861,11 @@
 
 done
 
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_MICROSOFT_LDAP 1
+_ACEOF
+
   fi
 fi
 
@@ -23483,7 +23526,99 @@
 # We can test for libldap_r only after we know PTHREAD_LIBS
 if test "$with_ldap" = yes ; then
   _LIBS="$LIBS"
+  if test "$with_mozldap" = "yes"; then
   if test "$PORTNAME" != "win32"; then
+      mozlibname=ldap50
+    else
+      mozlibname=nsldap32v50
+    fi
+
+as_ac_Lib=`$as_echo "ac_cv_lib_$mozlibname''_ldap_bind" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for ldap_bind in -l$mozlibname" >&5
+$as_echo_n "checking for ldap_bind in -l$mozlibname... " >&6; }
+if { as_var=$as_ac_Lib; eval "test \"\${$as_var+set}\" = set"; }; then
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$mozlibname $PTHREAD_CFLAGS $PTHREAD_LIBS $EXTRA_LDAP_LIBS $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 GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ldap_bind ();
+int
+main ()
+{
+return ldap_bind ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  eval "$as_ac_Lib=yes"
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	eval "$as_ac_Lib=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+ac_res=`eval 'as_val=${'$as_ac_Lib'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Lib'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_LIB$mozlibname" | $as_tr_cpp` 1
+_ACEOF
+
+  LIBS="-l$mozlibname $LIBS"
+
+else
+  { { $as_echo "$as_me:$LINENO: error: library \"$mozlibname\" is required for Mozilla LDAP" >&5
+$as_echo "$as_me: error: library \"$mozlibname\" is required for Mozilla LDAP" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+    LDAP_LIBS_FE="-l$mozlibname $EXTRA_LDAP_LIBS"
+    LDAP_LIBS_BE="-l$mozlibname $EXTRA_LDAP_LIBS"
+  elif test "$PORTNAME" != "win32"; then
 
 { $as_echo "$as_me:$LINENO: checking for ldap_bind in -lldap" >&5
 $as_echo_n "checking for ldap_bind in -lldap... " >&6; }
--- misc/build/postgresql-9.1.1/src/include/pg_config.h.in	2011-09-22 23:57:57.000000000 +0200
+++ misc/build/postgresql-9.1.1.patched/src/include/pg_config.h.in	2012-02-03 11:50:07.000000000 +0100
@@ -758,6 +758,13 @@
    (--with-libxslt) */
 #undef USE_LIBXSLT
 
+/* Defined when using Microsof LDAP */
+#undef USE_MICROSOFT_LDAP
+
+/* Define to 1 to use the Mozilla LDAP C SDK instead of platform default
+   (OpenLDAP or Microsoft LDAP). (--with-mozldap) */
+#undef USE_MOZLDAP
+
 /* Define to select named POSIX semaphores. */
 #undef USE_NAMED_POSIX_SEMAPHORES