[neon/backports-jammy/gpgme/Neon/unstable] debian/patches: patch to drop distutils
Carlos De Maine
null at kde.org
Sun May 14 15:10:42 BST 2023
Git commit 32fc53cccd7f076561713bcf56c5c5dc1783dc3b by Carlos De Maine.
Committed on 14/05/2023 at 14:10.
Pushed by carlosdem into branch 'Neon/unstable'.
patch to drop distutils
A +294 -0 debian/patches/0008-drop-distutils.patch
M +1 -0 debian/patches/series
https://invent.kde.org/neon/backports-jammy/gpgme/commit/32fc53cccd7f076561713bcf56c5c5dc1783dc3b
diff --git a/debian/patches/0008-drop-distutils.patch b/debian/patches/0008-drop-distutils.patch
new file mode 100644
index 00000000..45bc5489
--- /dev/null
+++ b/debian/patches/0008-drop-distutils.patch
@@ -0,0 +1,294 @@
+From 4b1395de56816eb982f5811ae8736b6aeb2fc46e Mon Sep 17 00:00:00 2001
+From: Ben Greiner <code at bnavigator.de>
+Date: Sat, 18 Dec 2021 14:10:54 +0100
+Subject: [PATCH gpgme 1/2] build: Support Python 3.10 version detection
+ without distutils
+
+* m4/ax_python_devel.m4: update to serial 23, remove distutils usage
+
+--
+This version removes the usage of Python distutils where possible.
+Python 3.10 deprecated distutils and prints warnings that it will
+be removed in Python 3.12
+
+Keep GPGME overrides for finding multiple versions
+---
+ m4/ax_python_devel.m4 | 123 ++++++++++++++++++++++++++++--------------
+ 1 file changed, 84 insertions(+), 39 deletions(-)
+
+diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
+index 55f0cfff..f4d20b33 100644
+--- a/m4/ax_python_devel.m4
++++ b/m4/ax_python_devel.m4
+@@ -1,5 +1,5 @@
+ # ===========================================================================
+-# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
++# https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+ # ===========================================================================
+ #
+ # SYNOPSIS
+@@ -12,8 +12,8 @@
+ # in your configure.ac.
+ #
+ # This macro checks for Python and tries to get the include path to
+-# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
+-# output variables. It also exports $(PYTHON_EXTRA_LIBS) and
++# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
++# variables. It also exports $(PYTHON_EXTRA_LIBS) and
+ # $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
+ #
+ # You can search for some particular version of Python by passing a
+@@ -67,7 +67,7 @@
+ # modified version of the Autoconf Macro, you may extend this special
+ # exception to the GPL to apply to your modified version as well.
+
+-#serial 17
++#serial 23
+
+ AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
+ AC_DEFUN([AX_PYTHON_DEVEL],[
+@@ -99,7 +99,7 @@ AC_DEFUN([AX_PYTHON_DEVEL],[
+ This version of the AC@&t at _PYTHON_DEVEL macro
+ doesn't work properly with versions of Python before
+ 2.1.0. You may need to re-run configure, setting the
+-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
++variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
+ PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
+ Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
+ to something else than an empty string.
+@@ -135,16 +135,25 @@ variable to configure. See ``configure --help'' for reference.
+ #
+ # Check if you have distutils, else fail
+ #
+- AC_MSG_CHECKING([for the distutils Python package])
+- ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+- if test -z "$ac_distutils_result"; then
++ AC_MSG_CHECKING([for the sysconfig Python package])
++ ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
++ if test $? -eq 0; then
+ AC_MSG_RESULT([yes])
++ IMPORT_SYSCONFIG="import sysconfig"
+ else
+ AC_MSG_RESULT([no])
+- AC_MSG_ERROR([cannot import Python module "distutils".
++
++ AC_MSG_CHECKING([for the distutils Python package])
++ ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1`
++ if test $? -eq 0; then
++ AC_MSG_RESULT([yes])
++ IMPORT_SYSCONFIG="from distutils import sysconfig"
++ else
++ AC_MSG_ERROR([cannot import Python module "distutils".
+ Please check your Python installation. The error was:
+-$ac_distutils_result])
+- PYTHON_VERSION=""
++$ac_sysconfig_result])
++ PYTHON_VERSION=""
++ fi
+ fi
+
+ #
+@@ -152,10 +161,19 @@ $ac_distutils_result])
+ #
+ AC_MSG_CHECKING([for Python include path])
+ if test -z "$PYTHON_CPPFLAGS"; then
+- python_path=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_inc ());"`
+- plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++ # sysconfig module has different functions
++ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_path ('include'));"`
++ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_path ('platinclude'));"`
++ else
++ # old distutils way
++ python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_python_inc ());"`
++ plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_python_inc (plat_specific=1));"`
++ fi
+ if test -n "${python_path}"; then
+ if test "${plat_python_path}" != "${python_path}"; then
+ python_path="-I$python_path -I$plat_python_path"
+@@ -172,14 +190,14 @@ $ac_distutils_result])
+ # Check for Python library path
+ #
+ AC_MSG_CHECKING([for Python library path])
+- if test -z "$PYTHON_LDFLAGS"; then
++ if test -z "$PYTHON_LIBS"; then
+ # (makes two attempts to ensure we've got a version number
+ # from the interpreter)
+ ac_python_version=`cat<<EOD | $PYTHON -
+
+ # join all versioning strings, on some systems
+ # major/minor numbers could be in different list elements
+-from distutils.sysconfig import *
++from sysconfig import *
+ e = get_config_var('VERSION')
+ if e is not None:
+ print(e)
+@@ -197,7 +215,7 @@ EOD`
+ # Make the versioning information available to the compiler
+
+ # JW: We don't need it and it interferes with the hack
+- # to detect multiple Pyhton versions
++ # to detect multiple Python versions
+ #AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
+ # [If available, contains the Python version number currently in use.])
+
+@@ -205,8 +223,8 @@ EOD`
+ ac_python_libdir=`cat<<EOD | $PYTHON -
+
+ # There should be only one
+-import distutils.sysconfig
+-e = distutils.sysconfig.get_config_var('LIBDIR')
++$IMPORT_SYSCONFIG
++e = sysconfig.get_config_var('LIBDIR')
+ if e is not None:
+ print (e)
+ EOD`
+@@ -214,8 +232,8 @@ EOD`
+ # Now, for the library:
+ ac_python_library=`cat<<EOD | $PYTHON -
+
+-import distutils.sysconfig
+-c = distutils.sysconfig.get_config_vars()
++$IMPORT_SYSCONFIG
++c = sysconfig.get_config_vars()
+ if 'LDVERSION' in c:
+ print ('python'+c[['LDVERSION']])
+ else:
+@@ -230,44 +248,67 @@ EOD`
+ then
+ # use the official shared library
+ ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
+- PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
++ PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
+ else
+ # old way: use libpython from python_configdir
+ ac_python_libdir=`$PYTHON -c \
+- "from distutils.sysconfig import get_python_lib as f; \
++ "from sysconfig import get_python_lib as f; \
+ import os; \
+ print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
+- PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
++ PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
+ fi
+
+- if test -z "PYTHON_LDFLAGS"; then
++ if test -z "PYTHON_LIBS"; then
+ AC_MSG_ERROR([
+ Cannot determine location of your Python DSO. Please check it was installed with
+- dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
++ dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
+ ])
+ fi
+ fi
+- AC_MSG_RESULT([$PYTHON_LDFLAGS])
+- AC_SUBST([PYTHON_LDFLAGS])
++ AC_MSG_RESULT([$PYTHON_LIBS])
++ AC_SUBST([PYTHON_LIBS])
+
+ #
+ # Check for site packages
+ #
+ AC_MSG_CHECKING([for Python site-packages path])
+ if test -z "$PYTHON_SITE_PKG"; then
+- PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
+- print (distutils.sysconfig.get_python_lib(0,0));"`
++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_path('purelib'));"`
++ else
++ # distutils.sysconfig way
++ PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_python_lib(0,0));"`
++ fi
+ fi
+ AC_MSG_RESULT([$PYTHON_SITE_PKG])
+ AC_SUBST([PYTHON_SITE_PKG])
+
++ #
++ # Check for platform-specific site packages
++ #
++ AC_MSG_CHECKING([for Python platform specific site-packages path])
++ if test -z "$PYTHON_SITE_PKG"; then
++ if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_path('platlib'));"`
++ else
++ # distutils.sysconfig way
++ PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ print (sysconfig.get_python_lib(1,0));"`
++ fi
++ fi
++ AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG])
++ AC_SUBST([PYTHON_PLATFORM_SITE_PKG])
++
+ #
+ # libraries which must be linked in when embedding
+ #
+ AC_MSG_CHECKING(python extra libraries)
+ if test -z "$PYTHON_EXTRA_LIBS"; then
+- PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+- conf = distutils.sysconfig.get_config_var; \
++ PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ conf = sysconfig.get_config_var; \
+ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
+@@ -278,8 +319,8 @@ EOD`
+ #
+ AC_MSG_CHECKING(python extra linking flags)
+ if test -z "$PYTHON_EXTRA_LDFLAGS"; then
+- PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
+- conf = distutils.sysconfig.get_config_var; \
++ PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++ conf = sysconfig.get_config_var; \
+ print (conf('LINKFORSHARED'))"`
+ fi
+ AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
+@@ -291,8 +332,10 @@ EOD`
+ AC_MSG_CHECKING([consistency of all components of python development environment])
+ # save current global flags
+ ac_save_LIBS="$LIBS"
++ ac_save_LDFLAGS="$LDFLAGS"
+ ac_save_CPPFLAGS="$CPPFLAGS"
+- LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
++ LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
++ LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
+ CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
+ AC_LANG_PUSH([C])
+ AC_LINK_IFELSE([
+@@ -303,15 +346,17 @@ EOD`
+ # turn back to default flags
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIBS="$ac_save_LIBS"
++ LDFLAGS="$ac_save_LDFLAGS"
+
+ AC_MSG_RESULT([$pythonexists])
+
+ if test ! "x$pythonexists" = "xyes"; then
++ # gpgme: only warn here, no error, as we are looking for multiple versions
+ AC_MSG_WARN([
+ Could not link test program to Python. Maybe the main Python library has been
+ installed in some non-standard library path. If so, pass it to configure,
+- via the LDFLAGS environment variable.
+- Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
++ via the LIBS environment variable.
++ Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
+ ============================================================================
+ You probably have to install the development version of the Python package
+ for your distribution. The exact name of this package varies among them.
+@@ -323,4 +368,4 @@ EOD`
+ #
+ # all done!
+ #
+-])
++])
+\ No newline at end of file
+--
+2.34.1
+
diff --git a/debian/patches/series b/debian/patches/series
index a56c34e0..6311e762 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
0003-Ship-python-examples-with-python3-in-shebang-line.patch
0004-Avoid-the-hardcoded-list-of-Python-versions.patch
0007-lang-python-tests-Fix-FTBFS-caused-by-missing-PYTHON.patch
+0008-drop-distutils.patch
\ No newline at end of file
More information about the Neon-commits
mailing list