From 160e55575e2183464dbf5aa733d6c2df3c674c4c Mon Sep 17 00:00:00 2001 From: Dan Yeaw Date: Sat, 9 Nov 2024 17:05:17 -0500 Subject: [PATCH] Windows: fix Python path cannot contain spaces Move the shebang line from the full Python path of the build machine to the first Python on the path during runtime. Set the shebang in the main meson.build file so that it can be overridden in one place if needed. Fixes: #3331 --- gio/gdbus-2.0/codegen/meson.build | 2 +- glib/meson.build | 2 +- gobject/meson.build | 2 +- meson.build | 6 ++++++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build index 67ea9f2ee..246ad4f3f 100644 --- a/gio/gdbus-2.0/codegen/meson.build +++ b/gio/gdbus-2.0/codegen/meson.build @@ -31,7 +31,7 @@ gdbus_codegen_conf = configuration_data() gdbus_codegen_conf.set('VERSION', glib_version) gdbus_codegen_conf.set('MAJOR_VERSION', major_version) gdbus_codegen_conf.set('MINOR_VERSION', minor_version) -gdbus_codegen_conf.set('PYTHON', python.full_path()) +gdbus_codegen_conf.set('PYTHON', python_shebang) gdbus_codegen_conf.set('DATADIR', glib_datadir) # Install gdbus-codegen executable diff --git a/glib/meson.build b/glib/meson.build index 2522356ee..837960d62 100644 --- a/glib/meson.build +++ b/glib/meson.build @@ -507,7 +507,7 @@ endif report_conf = configuration_data() report_conf.set('GLIB_VERSION', glib_version) -report_conf.set('PYTHON', python.full_path()) +report_conf.set('PYTHON', python_shebang) configure_file( input: 'gtester-report.in', output: 'gtester-report', diff --git a/gobject/meson.build b/gobject/meson.build index 748f72bc1..4bba94c96 100644 --- a/gobject/meson.build +++ b/gobject/meson.build @@ -85,7 +85,7 @@ python_tools = [ python_tools_conf = configuration_data() python_tools_conf.set('VERSION', glib_version) -python_tools_conf.set('PYTHON', python.full_path()) +python_tools_conf.set('PYTHON', python_shebang) foreach tool: python_tools tool_bin = configure_file( diff --git a/meson.build b/meson.build index f0820909b..484e7e8ed 100644 --- a/meson.build +++ b/meson.build @@ -2487,6 +2487,12 @@ glib_conf.set('HAVE_PROC_SELF_CMDLINE', have_proc_self_cmdline) python = import('python').find_installation() +# Sets the shebang on script files. This has been changed many times including +# using env, the absolute path to the Python executable, and using both python +# and python3 names. Please review the history here, prior to suggesting +# further changes: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/439 +python_shebang = '/usr/bin/env python3' + python_version = python.language_version() python_version_req = '>=3.7' if not python_version.version_compare(python_version_req)