|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] autoconf: fix handling absolute $PYTHON path
Marek Marczykowski-Górecki writes ("[PATCH] autoconf: fix handling absolute
$PYTHON path"):
> Don't strip full path from $PYTHON variable. This is especially
> relevant, if it points outside of $PATH. This is the case
> for RPM build on CentOS 8 (%{python3} macro points at
> /usr/libexec/platform-python).
>
> For this reason, adjust also python-config handling - AC_PATH_PROG
> doesn't work on already absolute path, so make it conditional.
Sorry for the delay replying and thanks for trying to improve this
area.
> -AC_PATH_PROG([pyconfig], [$PYTHON-config], [no])
> +AS_IF([echo "$PYTHON" | grep -q "^/"], [
> + pyconfig="$PYTHON-config"
> +], [
> + AC_PATH_PROG([pyconfig], [$PYTHON-config], [no])
> +])
I'm not sure this logic is right. I haven't looked at this area in
detail but it seems confusing to me. I don't quite understand why the
preexisting code calls AC_CHECK_PROG followed by AC_PATH_PROG.
I also don't understand why we ever need an absolute path for
$PYTHON-config. Why don't we just rely on PATH lookups when in invoke
it ?
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -368,7 +368,6 @@ AS_IF([test -z "$PYTHON"], [AC_CHECK_PROGS([PYTHON],
> [python3 python python2], e
> AS_IF([test "$PYTHON" = "err"], [AC_MSG_ERROR([No python interpreter
> found])])
> AS_IF([echo "$PYTHON" | grep -q "^/"], [], [AC_PATH_PROG([PYTHON],
> [$PYTHON])])
> PYTHONPATH=$PYTHON
> -PYTHON=`basename $PYTHONPATH`
I'm not sure this is right. I think we sometimes try to look at
PTYHON to see if we should be doing python-3-like things or
python-2-like things, and maybe that logic depends on PYTHON just
being the basename.
Contrary to what I said about leaving $PYTHON-config unresolved and
expecting it to be looked up at the time of use, maybe the right fix
is simply to change python_devel.m4 to use $PYTHONPATH-config instead.
Also using echo | grep -q ^/ seems poor style when case is available.
I think we can rely on case. But I see that's in the old code
already.
As you can tell, trying to write down what I think doesn't seem to
have unconfused me. Maybe you can explain ? Or maybe I need more
coffee.
Thanks,
Ian.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |