summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-build/meson/files/1.2.2/0002-python-module-stop-using-distutils-schemes-on-suffic.patch')
-rw-r--r--dev-build/meson/files/1.2.2/0002-python-module-stop-using-distutils-schemes-on-suffic.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/dev-build/meson/files/1.2.2/0002-python-module-stop-using-distutils-schemes-on-suffic.patch b/dev-build/meson/files/1.2.2/0002-python-module-stop-using-distutils-schemes-on-suffic.patch
new file mode 100644
index 000000000000..51c13d6926ff
--- /dev/null
+++ b/dev-build/meson/files/1.2.2/0002-python-module-stop-using-distutils-schemes-on-suffic.patch
@@ -0,0 +1,72 @@
+From cb4e62a8c55118988babac8b8254e0af1dc9698b Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Mon, 21 Nov 2022 20:47:14 -0500
+Subject: [PATCH 2/7] python module: stop using distutils schemes on
+ sufficiently new Debian
+
+Since 3.10.3, Debian finally started patching sysconfig with custom
+paths, instead of just distutils. This means we can now go use that
+instead. It reduces our reliance on the deprecated distutils module.
+
+Partial fix for #7702
+
+(cherry picked from commit 40f897fa92f7d3cc43788d3000733310ce77cf0c)
+---
+ mesonbuild/scripts/python_info.py | 32 +++++++++++++++++++++++--------
+ 1 file changed, 24 insertions(+), 8 deletions(-)
+
+diff --git a/mesonbuild/scripts/python_info.py b/mesonbuild/scripts/python_info.py
+index 9c3a0791a..65597b121 100755
+--- a/mesonbuild/scripts/python_info.py
++++ b/mesonbuild/scripts/python_info.py
+@@ -13,7 +13,6 @@ if sys.path[0].endswith('scripts'):
+ del sys.path[0]
+
+ import json, os, sysconfig
+-import distutils.command.install
+
+ def get_distutils_paths(scheme=None, prefix=None):
+ import distutils.dist
+@@ -37,15 +36,32 @@ def get_distutils_paths(scheme=None, prefix=None):
+ # default scheme to a custom one pointing to /usr/local and replacing
+ # site-packages with dist-packages.
+ # See https://github.com/mesonbuild/meson/issues/8739.
+-# XXX: We should be using sysconfig, but Debian only patches distutils.
++#
++# We should be using sysconfig, but before 3.10.3, Debian only patches distutils.
++# So we may end up falling back.
+
+-if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
+- paths = get_distutils_paths(scheme='deb_system')
+- install_paths = get_distutils_paths(scheme='deb_system', prefix='')
+-else:
+- paths = sysconfig.get_paths()
++def get_install_paths():
++ if sys.version_info >= (3, 10):
++ scheme = sysconfig.get_default_scheme()
++ else:
++ scheme = sysconfig._get_default_scheme()
++
++ if sys.version_info >= (3, 10, 3):
++ if 'deb_system' in sysconfig.get_scheme_names():
++ scheme = 'deb_system'
++ else:
++ import distutils.command.install
++ if 'deb_system' in distutils.command.install.INSTALL_SCHEMES:
++ paths = get_distutils_paths(scheme='deb_system')
++ install_paths = get_distutils_paths(scheme='deb_system', prefix='')
++ return paths, install_paths
++
++ paths = sysconfig.get_paths(scheme=scheme)
+ empty_vars = {'base': '', 'platbase': '', 'installed_base': ''}
+- install_paths = sysconfig.get_paths(vars=empty_vars)
++ install_paths = sysconfig.get_paths(scheme=scheme, vars=empty_vars)
++ return paths, install_paths
++
++paths, install_paths = get_install_paths()
+
+ def links_against_libpython():
+ from distutils.core import Distribution, Extension
+--
+2.42.0
+