diff --git a/INSTALL b/INSTALL index 3270743b7..5e152b71f 100644 --- a/INSTALL +++ b/INSTALL @@ -42,7 +42,7 @@ To build GRUB's graphical terminal (gfxterm), you need: If you use a development snapshot or want to hack on GRUB you may need the following. -* Python 2.6 or later +* Python 3 (NOTE: python 2.6 should still work, but it's not tested) * Autoconf 2.63 or later * Automake 1.11 or later @@ -87,9 +87,8 @@ The simplest way to compile this package is: 3. Type `./bootstrap'. - * autogen.sh (called by bootstrap) uses python. By default the - invocation is "python", but it can be overridden by setting the - variable $PYTHON. + The autogen.sh (called by bootstrap) uses python. By default autodetect + it, but it can be overridden by setting the PYTHON variable. 4. Type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might diff --git a/autogen.sh b/autogen.sh index 31b0ced7e..5a5c356fd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -7,8 +7,21 @@ if [ ! -e grub-core/lib/gnulib/stdlib.in.h ]; then exit 1 fi -# Set ${PYTHON} to plain 'python' if not set already -: ${PYTHON:=python} +# Detect python +if [ -z "$PYTHON" ]; then + for i in python3 python; do + if command -v "$i" > /dev/null 2>&1; then + PYTHON="$i" + echo "Using $PYTHON..." + break + fi + done + + if [ -z "$PYTHON" ]; then + echo "python not found." >&2 + exit 1 + fi +fi export LC_COLLATE=C unset LC_ALL