configure: Update python search order
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 11 Jan 2019 14:45:15 +0000 (15:45 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Sun, 13 Jan 2019 09:23:48 +0000 (10:23 +0100)
Some systems don't ship with "python" by default anymore, only
"python3" or "python2" or some combination, so include those in the
configure search.

Discussion: https://www.postgresql.org/message-id/flat/1457.1543184081%40sss.pgh.pa.us#c9cc1199338fd6a257589c6dcea6cf8d

config/python.m4
configure
doc/src/sgml/installation.sgml

index 587bca99d520f1e04b742559be4232f987610a09..9a4d12112e16d3cc79c2fcf0a23447ea9182f1fb 100644 (file)
@@ -8,8 +8,15 @@
 # ----------------
 # Look for Python and set the output variable 'PYTHON' if found,
 # fail otherwise.
+#
+# As the Python 3 transition happens and PEP 394 isn't updated, we
+# need to cater to systems that don't have unversioned "python" by
+# default.  Some systems ship with "python3" by default and perhaps
+# have "python" in an optional package.  Some systems only have
+# "python2" and "python3", in which case it's reasonable to prefer the
+# newer version.
 AC_DEFUN([PGAC_PATH_PYTHON],
-[PGAC_PATH_PROGS(PYTHON, python)
+[PGAC_PATH_PROGS(PYTHON, [python python3 python2])
 if test x"$PYTHON" = x""; then
   AC_MSG_ERROR([Python not found])
 fi
index d5ace6262327b6082b810191f462ee39d6504bf9..06fc3c68353020203bd380066c6ebd54679cd7be 100755 (executable)
--- a/configure
+++ b/configure
@@ -9699,7 +9699,7 @@ fi
 
 if test "$with_python" = yes; then
   if test -z "$PYTHON"; then
-  for ac_prog in python
+  for ac_prog in python python3 python2
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
index 3b521e73bd4b7d76abcdba68d7b477a2e19c9874..9f5d3cfdb6142e6208c5c9c13f8afdc7f1e98b3d 100644 (file)
@@ -1501,7 +1501,8 @@ su - postgres
          implicitly chosen) determines which variant of the PL/Python
          language becomes available.  See
          <xref linkend="plpython-python23"/>
-         for more information.  The default is <command>python</command>.
+         for more information.  If this is not set, the following are probed
+         in this order: <literal>python python3 python2</literal>.
         </para>
        </listitem>
       </varlistentry>