Patrick Steinhardt <ps@xxxxxx> writes: > When Python features are enabled we search both for a native and > non-native version of Python. This is wrong though: we don't use Python > in our build process, so there is no need to search for it in the first > place. > > There is one location where we use the native version of Python, namely > when deciding whether or not we want to wire up git-p4(1). This check is > invalid though, as we shouldn't check for the build host to have Python, > but for the target host. > > Fix this invalid check to use the non-native version of Python and stop > searching for a native version of Python altogether. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > meson.build | 12 +++++++----- > 1 file changed, 7 insertions(+), 5 deletions(-) The above explains the reasoning very nicely. > -python = import('python').find_installation('python3', required: get_option('python')) > -target_python = find_program('python3', native: false, required: python.found()) > -if python.found() > +# Python is not used for our build system, but exclusively for git-p4. > +# Consequently we only need to determine whether Python is available for the > +# build target. > +target_python = find_program('python3', native: false, required: get_option('python')) > +if target_python.found() > build_options_config.set('NO_PYTHON', '') > else > libgit_c_args += '-DNO_PYTHON' We ask explicitly for Python 3 here. Does find_program() have some magic to deal with installations where Python3 is simply called /usr/bin/python (and worse yet, not as a symbolic link to /usr/bin/python3)? I found "Since 0.50.0 if the "python3" program is requested and it is not found in the system, Meson will return its current interpreter", which I suspect refers to the path to python3 used during the build and is not what we want, at https://mesonbuild.com/Reference-manual_functions.html#find_program which got me a bit worried. Perhaps everybody with Python3 has it at /usr/bin/python3 these days, and my worries are unfounded? ;-) Thanks. > @@ -1979,7 +1981,7 @@ if perl_features_enabled > subdir('perl') > endif > > -if python.found() > +if target_python.found() > scripts_python = [ > 'git-p4.py' > ] > @@ -2202,7 +2204,7 @@ summary({ > 'iconv': iconv.found(), > 'pcre2': pcre2.found(), > 'perl': perl_features_enabled, > - 'python': python.found(), > + 'python': target_python.found(), > }, section: 'Auto-detected features') > > summary({