* m4/ax_python_devel.m4, m4/python.m4: Remove all distutils related code and only check for the stdlib sysconfig module instead. --
Signed-off-by: Lucas Hoffmann <l...@posteo.de> --- m4/ax_python_devel.m4 | 66 ++++++++++++------------------------------- m4/python.m4 | 42 ++++++--------------------- 2 files changed, 26 insertions(+), 82 deletions(-)
diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4 index ca6f4cf..6d2a1f2 100644 --- a/m4/ax_python_devel.m4 +++ b/m4/ax_python_devel.m4 @@ -188,31 +188,22 @@ variable to configure. See ``configure --help'' for reference. if test $ax_python_devel_found = yes; then # - # Check if you have distutils, else fail + # Check if you have sysconfig, else fail # 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_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_WARN([cannot import Python module "distutils". + AC_MSG_WARN([cannot import Python module "sysconfig". Please check your Python installation. The error was: $ac_sysconfig_result]) - if ! $ax_python_devel_optional; then - AC_MSG_ERROR([Giving up]) - fi - ax_python_devel_found=no - PYTHON_VERSION="" + if ! $ax_python_devel_optional; then + AC_MSG_ERROR([Giving up]) fi + ax_python_devel_found=no + PYTHON_VERSION="" fi fi @@ -222,19 +213,10 @@ $ac_sysconfig_result]) # AC_MSG_CHECKING([for Python include path]) if test -z "$PYTHON_CPPFLAGS"; then - 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 + python_path=`$PYTHON -c "import sysconfig; \ + print (sysconfig.get_path ('include'));"` + plat_python_path=`$PYTHON -c "import sysconfig; \ + print (sysconfig.get_path ('platinclude'));"` if test -n "${python_path}"; then if test "${plat_python_path}" != "${python_path}"; then python_path="-I$python_path -I$plat_python_path" @@ -284,7 +266,7 @@ EOD` ac_python_libdir=`cat<<EOD | $PYTHON - # There should be only one -$IMPORT_SYSCONFIG +import sysconfig e = sysconfig.get_config_var('LIBDIR') if e is not None: print (e) @@ -293,7 +275,7 @@ EOD` # Now, for the library: ac_python_library=`cat<<EOD | $PYTHON - -$IMPORT_SYSCONFIG +import sysconfig c = sysconfig.get_config_vars() if 'LDVERSION' in c: print ('python'+c[['LDVERSION']]) @@ -342,9 +324,8 @@ EOD` # AC_MSG_CHECKING([for Python site-packages path]) if test -z "$PYTHON_SITE_PKG"; then - if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then - PYTHON_SITE_PKG=`$PYTHON -c " -$IMPORT_SYSCONFIG; + PYTHON_SITE_PKG=`$PYTHON -c " +import sysconfig; if hasattr(sysconfig, 'get_default_scheme'): scheme = sysconfig.get_default_scheme() else: @@ -357,11 +338,6 @@ if prefix == 'NONE': prefix = '$ac_default_prefix' sitedir = sysconfig.get_path('purelib', scheme, vars={'base': prefix}) print(sitedir)"` - 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]) @@ -371,9 +347,8 @@ print(sitedir)"` # AC_MSG_CHECKING([for Python platform specific site-packages path]) if test -z "$PYTHON_PLATFORM_SITE_PKG"; then - if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then - PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c " -$IMPORT_SYSCONFIG; + PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c " +import sysconfig; if hasattr(sysconfig, 'get_default_scheme'): scheme = sysconfig.get_default_scheme() else: @@ -386,11 +361,6 @@ if prefix == 'NONE': prefix = '$ac_default_prefix' sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase': prefix}) print(sitedir)"` - 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]) @@ -400,7 +370,7 @@ print(sitedir)"` # AC_MSG_CHECKING(python extra libraries) if test -z "$PYTHON_EXTRA_LIBS"; then - PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \ + PYTHON_EXTRA_LIBS=`$PYTHON -c "import sysconfig; \ conf = sysconfig.get_config_var; \ print (conf('LIBS') + ' ' + conf('SYSLIBS'))"` fi @@ -412,7 +382,7 @@ print(sitedir)"` # AC_MSG_CHECKING(python extra linking flags) if test -z "$PYTHON_EXTRA_LDFLAGS"; then - PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \ + PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import sysconfig; \ conf = sysconfig.get_config_var; \ print (conf('LINKFORSHARED'))"` # Hack for macos, it sticks this in here. diff --git a/m4/python.m4 b/m4/python.m4 index cc63831..4f6fd50 100644 --- a/m4/python.m4 +++ b/m4/python.m4 @@ -218,33 +218,13 @@ AC_DEFUN([AM_PATH_PYTHON], # Substituting python_exec_prefix_subst. AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst]) - # Factor out some code duplication into this shell variable. - am_python_setup_sysconfig="\ -import sys -# Prefer sysconfig over distutils.sysconfig, for better compatibility -# with python 3.x. See automake bug#10227. -try: - import sysconfig -except ImportError: - can_use_sysconfig = 0 -else: - can_use_sysconfig = 1 -# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs: -# <https://github.com/pypa/virtualenv/issues/118> -try: - from platform import python_implementation - if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7': - can_use_sysconfig = 0 -except ImportError: - pass" # end of am_python_setup_sysconfig - dnl emacs-page Set up 4 directories: dnl 1. pythondir: where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory as in early automake betas. This behavior dnl is more consistent with lispdir.m4 for example. - dnl Query sysconfig or distutils (per above) for this directory. + dnl Query sysconfig for this directory. dnl AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)], [am_cv_python_pythondir], @@ -254,12 +234,9 @@ except ImportError: am_py_prefix=$am_cv_python_prefix fi am_cv_python_pythondir=`$PYTHON -c " -$am_python_setup_sysconfig -if can_use_sysconfig: - sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) -else: - from distutils import sysconfig - sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix') +import sys +import sysconfig +sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'}) sys.stdout.write(sitedir)"` # case $am_cv_python_pythondir in @@ -286,7 +263,7 @@ sys.stdout.write(sitedir)"` dnl 3. pyexecdir: directory for installing python extension modules dnl (shared libraries). - dnl Query sysconfig or distutils for this directory. + dnl Query sysconfig for this directory. dnl Much of this is the same as for prefix setup above. dnl AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)], @@ -297,12 +274,9 @@ sys.stdout.write(sitedir)"` am_py_exec_prefix=$am_cv_python_exec_prefix fi am_cv_python_pyexecdir=`$PYTHON -c " -$am_python_setup_sysconfig -if can_use_sysconfig: - sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'}) -else: - from distutils import sysconfig - sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix') +import sys +import sysconfig +sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_exec_prefix'}) sys.stdout.write(sitedir)"` # case $am_cv_python_pyexecdir in
_______________________________________________ Gnupg-devel mailing list Gnupg-devel@gnupg.org https://lists.gnupg.org/mailman/listinfo/gnupg-devel