On Fri, Feb 10, 2023 at 2:45 PM Eric Blake <ebl...@redhat.com> wrote: > > On Thu, Feb 09, 2023 at 10:40:30AM -0500, John Snow wrote: > > At the moment, we look for just "python3" and "python", which is good > > enough almost all of the time. But ... if you are on a platform that > > uses an older Python by default and only offers a newer Python as an > > option, you'll have to specify --python=/usr/bin/foo every time. > > > > We can be kind and instead make a cursory attempt to locate a suitable > > Python binary ourselves, looking for the remaining well-known binaries. > > > > This configure loop will prefer, in order: > > > > 1. Whatever is specified in $PYTHON > > 2. python3 > > 3. python > > 4. python3.11 down through python3.6 > > Makes sense. > > > > python= > > +first_python= > > explicit_python=no > > -for binary in "${PYTHON-python3}" python > > +# A bare 'python' is traditionally python 2.x, but some distros > > +# have it as python 3.x, so check in both places. > > +for binary in "${PYTHON-python3}" python python3.{11..6} > > This does not match your commit message. If $PYTHON is set but fails, > you never check python3. Pre-existing, but now that you're calling it > out as intended, it may be better to write the list prefix as: > > for binary in $PYTHON python3 python ... > > except that it mishandles $PYTHON containing space, so you want the > quotes, but you don't want to test an empty binary or waste time > testing python3 twice, so more precise could be: > > for binary in "${PYTHON-python3}" ${PYTHON:+python3} python ...
Yep. I wonder if it's worth helping people work around broken environment variables at all, but, eh, you already solved the more difficult case, so I can include it. (Well, pending other discussions, I s'pose.) > > Meanwhioe, your use of {11.6} is a bashism, but configure is /bin/sh. > It would be nice if you could use $(seq -f python3.%g 11 -1 6), but > that's probably too specific to GNU Coreutils and won't work on other > platforms; and open-coding it in a shell loop isn't going to be any > prettier. So you'll be safest if you just manually spell it out: > > python3.11 python3.10 ... Oh, icky. Well, OK. Thanks for pointing it out before it became a problem somewhere. > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 > Virtualization: qemu.org | libvirt.org >