From dd01cfe1c49bcd352fa7a723130a92376802d5c7 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Thu, 27 Nov 2003 19:44:56 +0000
Subject: [PATCH] Remove possibility to specify an installation root after
 --with-krbx and --with-openssl options.  This creates too much risk to pick
 up the wrong directory accidentally (for example when there are lib64
 directories), and does not really help much with contemporary installation
 layouts.

---
 configure                      | 130 +++++++++++----------------------
 configure.in                   |  68 +++--------------
 doc/src/sgml/installation.sgml |  50 +++++--------
 3 files changed, 73 insertions(+), 175 deletions(-)

diff --git a/configure b/configure
index 616b07b1645..2e31934be63 100755
--- a/configure
+++ b/configure
@@ -865,12 +865,12 @@ Optional Packages:
   --with-perl             build Perl modules (PL/Perl)
   --with-python           build Python modules (PL/Python)
   --with-java             build JDBC interface and Java tools
-  --with-krb4[=DIR]       build with Kerberos 4 support [/usr/athena]
-  --with-krb5[=DIR]       build with Kerberos 5 support [/usr/athena]
+  --with-krb4             build with Kerberos 4 support
+  --with-krb5             build with Kerberos 5 support
   --with-krb-srvnam=NAME  name of the service principal in Kerberos [postgres]
   --with-pam              build with PAM support
   --with-rendezvous       build with Rendezvous support
-  --with-openssl[=DIR]    build with OpenSSL support [/usr/local/ssl]
+  --with-openssl          build with OpenSSL support
   --without-readline      do not use Readline
   --without-zlib          do not use Zlib
   --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
@@ -3309,7 +3309,6 @@ fi;
 
 
 
-
 #
 # Kerberos 4
 #
@@ -3324,47 +3323,32 @@ if test "${with_krb4+set}" = set; then
 
   case $withval in
     yes)
-      krb4_prefix=/usr/athena
+
+
+cat >>confdefs.h <<\_ACEOF
+#define KRB4 1
+_ACEOF
+
+  krb_srvtab="/etc/srvtab"
+
       ;;
     no)
       :
       ;;
     *)
-      with_krb4=yes
-krb4_prefix=$withval
+      { { echo "$as_me:$LINENO: error: no argument expected for --with-krb4 option" >&5
+echo "$as_me: error: no argument expected for --with-krb4 option" >&2;}
+   { (exit 1); exit 1; }; }
       ;;
   esac
 
 else
   with_krb4=no
-fi;
-
-
-if test "$with_krb4" = yes; then
-
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define KRB4 1
-_ACEOF
-
-
-  if test -d "$krb4_prefix/include"; then
-    INCLUDES="$INCLUDES -I$krb4_prefix/include"
-  fi
-  if test -d "$krb4_prefix/lib"; then
-    LIBDIRS="$LIBDIRS -L$krb4_prefix/lib"
-  fi
-
-  krb_srvtab="/etc/srvtab"
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
 
+fi;
 
+echo "$as_me:$LINENO: result: $with_krb4" >&5
+echo "${ECHO_T}$with_krb4" >&6
 
 
 
@@ -3382,47 +3366,32 @@ if test "${with_krb5+set}" = set; then
 
   case $withval in
     yes)
-      krb5_prefix=/usr/athena
+
+
+cat >>confdefs.h <<\_ACEOF
+#define KRB5 1
+_ACEOF
+
+  krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
+
       ;;
     no)
       :
       ;;
     *)
-      with_krb5=yes
-krb5_prefix=$withval
+      { { echo "$as_me:$LINENO: error: no argument expected for --with-krb5 option" >&5
+echo "$as_me: error: no argument expected for --with-krb5 option" >&2;}
+   { (exit 1); exit 1; }; }
       ;;
   esac
 
 else
   with_krb5=no
-fi;
-
-
-if test "$with_krb5" = yes; then
-
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define KRB5 1
-_ACEOF
-
-
-  if test -d "$krb5_prefix/include"; then
-    INCLUDES="$INCLUDES -I$krb5_prefix/include"
-  fi
-  if test -d "$krb5_prefix/lib"; then
-    LIBDIRS="$LIBDIRS -L$krb5_prefix/lib"
-  fi
-
-  krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
-
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
 
+fi;
 
+echo "$as_me:$LINENO: result: $with_krb5" >&5
+echo "${ECHO_T}$with_krb5" >&6
 
 
 
@@ -3556,6 +3525,8 @@ echo "${ECHO_T}$with_rendezvous" >&6
 #
 # OpenSSL
 #
+echo "$as_me:$LINENO: checking whether to build with OpenSSL support" >&5
+echo $ECHO_N "checking whether to build with OpenSSL support... $ECHO_C" >&6
 
 
 
@@ -3565,42 +3536,29 @@ if test "${with_openssl+set}" = set; then
 
   case $withval in
     yes)
-      openssl_prefix=/usr/local/ssl
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_SSL 1
+_ACEOF
+
       ;;
     no)
       :
       ;;
     *)
-      with_openssl=yes
-openssl_prefix=$withval
+      { { echo "$as_me:$LINENO: error: no argument expected for --with-openssl option" >&5
+echo "$as_me: error: no argument expected for --with-openssl option" >&2;}
+   { (exit 1); exit 1; }; }
       ;;
   esac
 
 else
   with_openssl=no
-fi;
-
-
-if test "$with_openssl" = yes; then
-
-  echo "$as_me:$LINENO: result: building with OpenSSL support" >&5
-echo "${ECHO_T}building with OpenSSL support" >&6
-
-cat >>confdefs.h <<\_ACEOF
-#define USE_SSL 1
-_ACEOF
-
-
-  if test -d "${openssl_prefix}/include" ; then
-    INCLUDES="$INCLUDES -I${openssl_prefix}/include"
-  fi
-  if test -d "${openssl_prefix}/lib" ; then
-    LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib"
-  fi
-
-fi
 
+fi;
 
+echo "$as_me:$LINENO: result: $with_openssl" >&5
+echo "${ECHO_T}$with_openssl" >&6
 
 
 
diff --git a/configure.in b/configure.in
index 50cd8ebcbe2..143fdc4fc20 100644
--- a/configure.in
+++ b/configure.in
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-dnl $Header: /cvsroot/pgsql/configure.in,v 1.306 2003/11/27 18:14:02 petere Exp $
+dnl $Header: /cvsroot/pgsql/configure.in,v 1.307 2003/11/27 19:44:55 petere Exp $
 dnl
 dnl Developers, please strive to achieve this order:
 dnl
@@ -422,38 +422,16 @@ fi],
 [AC_MSG_RESULT(no)])
 AC_SUBST(with_java)
 
-dnl A note on the Kerberos and OpenSSL options:
-dnl
-dnl The user can give an argument to the option in order the specify
-dnl the base path of the respective installation (what he specified
-dnl perhaps as --prefix). If no argument is given ($withval is "yes")
-dnl then we take the path where the package installs by default. This
-dnl way the user doesn't have to use redundant --with-includes and
-dnl --with-libraries options, but he can still use them if the layout
-dnl is non-standard.
-
 #
 # Kerberos 4
 #
 AC_MSG_CHECKING([whether to build with Kerberos 4 support])
-PGAC_ARG_OPTARG(with, krb4, [[  --with-krb4[=DIR]       build with Kerberos 4 support [/usr/athena]]],
-                [krb4_prefix=/usr/athena],
-                [krb4_prefix=$withval],
+PGAC_ARG_BOOL(with, krb4, no, [  --with-krb4             build with Kerberos 4 support],
 [
-  AC_MSG_RESULT(yes)
   AC_DEFINE(KRB4, 1, [Define to build with Kerberos 4 support. (--with-krb4)])
-
-  if test -d "$krb4_prefix/include"; then
-    INCLUDES="$INCLUDES -I$krb4_prefix/include"
-  fi
-  if test -d "$krb4_prefix/lib"; then
-    LIBDIRS="$LIBDIRS -L$krb4_prefix/lib"
-  fi
-
   krb_srvtab="/etc/srvtab"
-],
-[AC_MSG_RESULT(no)])
-
+])
+AC_MSG_RESULT([$with_krb4])
 AC_SUBST(with_krb4)
 
 
@@ -461,24 +439,12 @@ AC_SUBST(with_krb4)
 # Kerberos 5
 #
 AC_MSG_CHECKING([whether to build with Kerberos 5 support])
-PGAC_ARG_OPTARG(with, krb5, [[  --with-krb5[=DIR]       build with Kerberos 5 support [/usr/athena]]],
-              [krb5_prefix=/usr/athena],
-              [krb5_prefix=$withval],
+PGAC_ARG_BOOL(with, krb5, no, [  --with-krb5             build with Kerberos 5 support],
 [
-  AC_MSG_RESULT([yes])
   AC_DEFINE(KRB5, 1, [Define to build with Kerberos 5 support. (--with-krb5)])
-
-  if test -d "$krb5_prefix/include"; then
-    INCLUDES="$INCLUDES -I$krb5_prefix/include"
-  fi
-  if test -d "$krb5_prefix/lib"; then
-    LIBDIRS="$LIBDIRS -L$krb5_prefix/lib"
-  fi
-
   krb_srvtab="FILE:\$(sysconfdir)/krb5.keytab"
-],
-[AC_MSG_RESULT(no)])
-
+])
+AC_MSG_RESULT([$with_krb5])
 AC_SUBST(with_krb5)
 
 
@@ -526,22 +492,10 @@ AC_SUBST(with_rendezvous)
 #
 # OpenSSL
 #
-PGAC_ARG_OPTARG(with, openssl,
-                [[  --with-openssl[=DIR]    build with OpenSSL support [/usr/local/ssl]]],
-                [openssl_prefix=/usr/local/ssl],
-                [openssl_prefix=$withval],
-[
-  AC_MSG_RESULT([building with OpenSSL support])
-  AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])
-
-  if test -d "${openssl_prefix}/include" ; then
-    INCLUDES="$INCLUDES -I${openssl_prefix}/include"
-  fi
-  if test -d "${openssl_prefix}/lib" ; then
-    LIBDIRS="$LIBDIRS -L${openssl_prefix}/lib"
-  fi
-])
-
+AC_MSG_CHECKING([whether to build with OpenSSL support])
+PGAC_ARG_BOOL(with, openssl, no, [  --with-openssl          build with OpenSSL support],
+              [AC_DEFINE([USE_SSL], 1, [Define to build with (Open)SSL support. (--with-openssl)])])
+AC_MSG_RESULT([$with_openssl])
 AC_SUBST(with_openssl)
 
 
diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml
index f4af3a75f8b..92c61683f7d 100644
--- a/doc/src/sgml/installation.sgml
+++ b/doc/src/sgml/installation.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.185 2003/11/26 15:56:48 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.186 2003/11/27 19:44:56 petere Exp $ -->
 
 <chapter id="installation">
  <title><![%standalone-include[<productname>PostgreSQL</>]]>
@@ -812,28 +812,19 @@ JAVACMD=$JAVA_HOME/bin/java
       </varlistentry>
 
       <varlistentry>
-       <term><option>--with-krb4<optional>=<replaceable>DIRECTORY</></></option></term>
-       <term><option>--with-krb5<optional>=<replaceable>DIRECTORY</></></option></term>
+       <term><option>--with-krb4</option></term>
+       <term><option>--with-krb5</option></term>
        <listitem>
         <para>
          Build with support for Kerberos authentication. You can use
-         either Kerberos version 4 or 5, but not both. The
-         <replaceable>DIRECTORY</> argument specifies the root
-         directory of the Kerberos installation;
-         <filename>/usr/athena</> is assumed as default. If the
-         relevant header files and libraries are not under a common
-         parent directory, then you must use the
-         <option>--with-includes</> and <option>--with-libraries</>
-         options in addition to this option. If, on the other hand,
-         the required files are in a location that is searched by
-         default (e.g., <filename>/usr/lib</>), then you can leave off
-         the argument.
-        </para>
-
-        <para>
-         <filename>configure</> will check for the required header
-         files and libraries to make sure that your Kerberos
-         installation is sufficient before proceeding.
+         either Kerberos version 4 or 5, but not both.  On many
+         systems, the Kerberos system is not installed in a location
+         that is searched by default (e.g., <filename>/usr/include</>,
+         <filename>/usr/lib</>), so you must use the options
+         <option>--with-includes</> and <option>--with-libraries</> in
+         addition to this option.  <filename>configure</> will check
+         for the required header files and libraries to make sure that
+         your Kerberos installation is sufficient before proceeding.
         </para>
        </listitem>
       </varlistentry>
@@ -855,20 +846,15 @@ JAVACMD=$JAVA_HOME/bin/java
         <seealso>SSL</seealso>
        </indexterm>
 
-       <term><option>--with-openssl<optional>=<replaceable>DIRECTORY</></></option></term>
+       <term><option>--with-openssl</option></term>
        <listitem>
         <para>
-         Build with support for <acronym>SSL</> (encrypted) connections. 
-         This requires the <productname>OpenSSL</> package to be installed.
-         The <replaceable>DIRECTORY</> argument specifies the
-         root directory of the <productname>OpenSSL</> installation; the
-         default is <filename>/usr/local/ssl</>.
-        </para>
-
-        <para>
-         <filename>configure</> will check for the required header
-         files and libraries to make sure that your <productname>OpenSSL</>
-         installation is sufficient before proceeding.
+         Build with support for <acronym>SSL</> (encrypted)
+         connections. This requires the <productname>OpenSSL</>
+         package to be installed.  <filename>configure</> will check
+         for the required header files and libraries to make sure that
+         your <productname>OpenSSL</> installation is sufficient
+         before proceeding.
         </para>
        </listitem>
       </varlistentry>
-- 
GitLab