From ed2e95dc636a4fc603f9d3ef7b274fa1e5c8ba52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandra=20H=C3=A1jkov=C3=A1?= Date: Thu, 19 Jan 2023 19:33:30 +0100 Subject: [PATCH] Backport replace deprecated distutils.sysconfig in python-config. (Lancelot SIX) --- _gdb.spec.Patch.include | 4 + _gdb.spec.patch.include | 1 + _patch_order | 1 + ...-config-replace-deprecated-distutils.patch | 88 +++++++++++++++++++ gdb.spec | 6 +- 5 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 gdb-backport-python-config-replace-deprecated-distutils.patch diff --git a/_gdb.spec.Patch.include b/_gdb.spec.Patch.include index 3907c89..b11dae5 100644 --- a/_gdb.spec.Patch.include +++ b/_gdb.spec.Patch.include @@ -280,3 +280,7 @@ Patch066: gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch Patch067: gdb-rhbz2152431-label-symbol-value.patch +#Backport replace deprecated distutils.sysconfig in +#python-config (Lancelot SIX) +Patch068: gdb-backport-python-config-replace-deprecated-distutils.patch + diff --git a/_gdb.spec.patch.include b/_gdb.spec.patch.include index 9dbbe98..f004491 100644 --- a/_gdb.spec.patch.include +++ b/_gdb.spec.patch.include @@ -65,3 +65,4 @@ %patch065 -p1 %patch066 -p1 %patch067 -p1 +%patch068 -p1 diff --git a/_patch_order b/_patch_order index 2cebc89..e00785a 100644 --- a/_patch_order +++ b/_patch_order @@ -65,3 +65,4 @@ gdb-backport-fix-break-main-file-remove-fail.patch gdb-sw22395-constify-target_desc.patch gdb-rhbz2143992-libiberty-fix-c89isms-in-configure.patch gdb-rhbz2152431-label-symbol-value.patch +gdb-backport-python-config-replace-deprecated-distutils.patch diff --git a/gdb-backport-python-config-replace-deprecated-distutils.patch b/gdb-backport-python-config-replace-deprecated-distutils.patch new file mode 100644 index 0000000..8fc8f4f --- /dev/null +++ b/gdb-backport-python-config-replace-deprecated-distutils.patch @@ -0,0 +1,88 @@ +From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alexandra=20H=C3=A1jkov=C3=A1?= +Date: Thu, 19 Jan 2023 19:18:58 +0100 +Subject: gdb-backport-python-config-replace-deprecated-distutils.patch + +;;Backport replace deprecated distutils.sysconfig in +;;python-config (Lancelot SIX) + +gdb/python-config: replace deprecated distutils.sysconfig + +When running the gdb/configure script on ubuntu 22.04 with +python-3.10.4, I see: + + checking for python... no + checking for python3... /usr/bin/python3 + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives + from distutils import sysconfig + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead + from distutils import sysconfig + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives + from distutils import sysconfig + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead + from distutils import sysconfig + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives + from distutils import sysconfig + [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead + from distutils import sysconfig + checking for python... yes + +The distutils module is deprecated as per the PEP 632[1] and will be +removed in python-3.12. + +This patch migrates gdb/python/python-config.py from distutils.sysconfig +to the sysconfig module[2]. + +The sysconfig module has has been introduced in the standard library in +python 3.2. Given that support for python < 3.2 has been removed by +edae3fd6600f: "gdb/python: remove Python 2 support", this patch does not +need to support both implementations for backward compatibility. + +Tested on ubuntu-22.04 and ubuntu 20.04. + +[1] https://peps.python.org/pep-0632/ +[2] https://docs.python.org/3/library/sysconfig.html + +Change-Id: Id0df2baf3ee6ce68bd01c236b829ab4c0a4526f6 + +diff --git a/gdb/python/python-config.py b/gdb/python/python-config.py +--- a/gdb/python/python-config.py ++++ b/gdb/python/python-config.py +@@ -4,7 +4,7 @@ + import sys + import os + import getopt +-from distutils import sysconfig ++import sysconfig + + valid_opts = ["prefix", "exec-prefix", "includes", "libs", "cflags", "ldflags", "help"] + +@@ -49,15 +49,15 @@ def to_unix_path(path): + + for opt in opt_flags: + if opt == "--prefix": +- print(to_unix_path(sysconfig.PREFIX)) ++ print(to_unix_path(os.path.normpath(sys.prefix))) + + elif opt == "--exec-prefix": +- print(to_unix_path(sysconfig.EXEC_PREFIX)) ++ print(to_unix_path(os.path.normpath(sys.exec_prefix))) + + elif opt in ("--includes", "--cflags"): + flags = [ +- "-I" + sysconfig.get_python_inc(), +- "-I" + sysconfig.get_python_inc(plat_specific=True), ++ "-I" + sysconfig.get_path("include"), ++ "-I" + sysconfig.get_path("platinclude"), + ] + if opt == "--cflags": + flags.extend(getvar("CFLAGS").split()) +@@ -76,7 +76,7 @@ for opt in opt_flags: + if getvar("LIBPL") is not None: + libs.insert(0, "-L" + getvar("LIBPL")) + elif os.name == "nt": +- libs.insert(0, "-L" + sysconfig.PREFIX + "/libs") ++ libs.insert(0, "-L" + os.path.normpath(sys.prefix) + "/libs") + if getvar("LINKFORSHARED") is not None: + libs.extend(getvar("LINKFORSHARED").split()) + print(to_unix_path(" ".join(libs))) diff --git a/gdb.spec b/gdb.spec index 1af6fb3..277d60a 100644 --- a/gdb.spec +++ b/gdb.spec @@ -54,7 +54,7 @@ Version: 12.1 # The release always contains a leading reserved number, start it at 1. # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing. -Release: 11%{?dist} +Release: 12%{?dist} License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and LGPLv3+ and BSD and Public Domain and GFDL # Do not provide URL for snapshots as the file lasts there only for 2 days. @@ -1190,6 +1190,10 @@ fi %endif %changelog +* Thu Jan 19 2023 Alexandra Hájková - 12.1-12 +- Backport replace deprecated distutils.sysconfig in python-confiag. + (Lancelot SIX) + * Thu Jan 19 2023 Fedora Release Engineering - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild