Python 3.12 deprecated python3-distutils
As for python-3.12 the distutils package has been deprecated. The latest ax_python_devel.m4 macro from the autoconf archive has been updated accordingly so let's pull in the new version. We can also drop the changes made to our customized version to continue if the development version is not installed since this functionality has been included upstream. Reviewed-by: Rich Ercolani <rincebrain@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #16126 Closes #16129
This commit is contained in:
parent
5044c4e3ff
commit
317b31eedb
|
@ -80,10 +80,11 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_PYZFS], [
|
||||||
[AC_MSG_ERROR("Python $PYTHON_VERSION unknown")]
|
[AC_MSG_ERROR("Python $PYTHON_VERSION unknown")]
|
||||||
)
|
)
|
||||||
|
|
||||||
AX_PYTHON_DEVEL([$PYTHON_REQUIRED_VERSION], [
|
AS_IF([test "x$enable_pyzfs" = xyes], [
|
||||||
AS_IF([test "x$enable_pyzfs" = xyes], [
|
AX_PYTHON_DEVEL([$PYTHON_REQUIRED_VERSION])
|
||||||
AC_MSG_ERROR("Python $PYTHON_REQUIRED_VERSION development library is not installed")
|
], [
|
||||||
], [test "x$enable_pyzfs" != xno], [
|
AX_PYTHON_DEVEL([$PYTHON_REQUIRED_VERSION], [true])
|
||||||
|
AS_IF([test "x$ax_python_devel_found" = xno], [
|
||||||
enable_pyzfs=no
|
enable_pyzfs=no
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
|
@ -4,18 +4,13 @@
|
||||||
#
|
#
|
||||||
# SYNOPSIS
|
# SYNOPSIS
|
||||||
#
|
#
|
||||||
# AX_PYTHON_DEVEL([version], [action-if-not-found])
|
# AX_PYTHON_DEVEL([version[,optional]])
|
||||||
#
|
#
|
||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
#
|
#
|
||||||
# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
|
# Note: Defines as a precious variable "PYTHON_VERSION". Don't override it
|
||||||
# in your configure.ac.
|
# in your configure.ac.
|
||||||
#
|
#
|
||||||
# Note: this is a slightly modified version of the original AX_PYTHON_DEVEL
|
|
||||||
# macro which accepts an additional [action-if-not-found] argument. This
|
|
||||||
# allow to detect if Python development is available without aborting the
|
|
||||||
# configure phase with an hard error in case it is not.
|
|
||||||
#
|
|
||||||
# This macro checks for Python and tries to get the include path to
|
# This macro checks for Python and tries to get the include path to
|
||||||
# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
|
# 'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
|
||||||
# variables. It also exports $(PYTHON_EXTRA_LIBS) and
|
# variables. It also exports $(PYTHON_EXTRA_LIBS) and
|
||||||
|
@ -28,6 +23,11 @@
|
||||||
# version number. Don't use "PYTHON_VERSION" for this: that environment
|
# version number. Don't use "PYTHON_VERSION" for this: that environment
|
||||||
# variable is declared as precious and thus reserved for the end-user.
|
# variable is declared as precious and thus reserved for the end-user.
|
||||||
#
|
#
|
||||||
|
# By default this will fail if it does not detect a development version of
|
||||||
|
# python. If you want it to continue, set optional to true, like
|
||||||
|
# AX_PYTHON_DEVEL([], [true]). The ax_python_devel_found variable will be
|
||||||
|
# "no" if it fails.
|
||||||
|
#
|
||||||
# This macro should work for all versions of Python >= 2.1.0. As an end
|
# This macro should work for all versions of Python >= 2.1.0. As an end
|
||||||
# user, you can disable the check for the python version by setting the
|
# user, you can disable the check for the python version by setting the
|
||||||
# PYTHON_NOVERSIONCHECK environment variable to something else than the
|
# PYTHON_NOVERSIONCHECK environment variable to something else than the
|
||||||
|
@ -45,7 +45,6 @@
|
||||||
# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org>
|
# Copyright (c) 2009 Matteo Settenvini <matteo@member.fsf.org>
|
||||||
# Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org>
|
# Copyright (c) 2009 Horst Knorr <hk_classes@knoda.org>
|
||||||
# Copyright (c) 2013 Daniel Mullner <muellner@math.stanford.edu>
|
# Copyright (c) 2013 Daniel Mullner <muellner@math.stanford.edu>
|
||||||
# Copyright (c) 2018 loli10K <ezomori.nozomu@gmail.com>
|
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify it
|
# This program is free software: you can redistribute it and/or modify it
|
||||||
# under the terms of the GNU General Public License as published by the
|
# under the terms of the GNU General Public License as published by the
|
||||||
|
@ -73,10 +72,18 @@
|
||||||
# modified version of the Autoconf Macro, you may extend this special
|
# modified version of the Autoconf Macro, you may extend this special
|
||||||
# exception to the GPL to apply to your modified version as well.
|
# exception to the GPL to apply to your modified version as well.
|
||||||
|
|
||||||
#serial 21
|
#serial 36
|
||||||
|
|
||||||
AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
|
AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
|
||||||
AC_DEFUN([AX_PYTHON_DEVEL],[
|
AC_DEFUN([AX_PYTHON_DEVEL],[
|
||||||
|
# Get whether it's optional
|
||||||
|
if test -z "$2"; then
|
||||||
|
ax_python_devel_optional=false
|
||||||
|
else
|
||||||
|
ax_python_devel_optional=$2
|
||||||
|
fi
|
||||||
|
ax_python_devel_found=yes
|
||||||
|
|
||||||
#
|
#
|
||||||
# Allow the use of a (user set) custom python version
|
# Allow the use of a (user set) custom python version
|
||||||
#
|
#
|
||||||
|
@ -87,23 +94,26 @@ AC_DEFUN([AX_PYTHON_DEVEL],[
|
||||||
|
|
||||||
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
|
AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
|
||||||
if test -z "$PYTHON"; then
|
if test -z "$PYTHON"; then
|
||||||
m4_ifvaln([$2],[$2],[
|
AC_MSG_WARN([Cannot find python$PYTHON_VERSION in your system path])
|
||||||
AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
|
if ! $ax_python_devel_optional; then
|
||||||
PYTHON_VERSION=""
|
AC_MSG_ERROR([Giving up, python development not available])
|
||||||
])
|
fi
|
||||||
|
ax_python_devel_found=no
|
||||||
|
PYTHON_VERSION=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
if test $ax_python_devel_found = yes; then
|
||||||
# Check for a version of Python >= 2.1.0
|
#
|
||||||
#
|
# Check for a version of Python >= 2.1.0
|
||||||
AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
|
#
|
||||||
ac_supports_python_ver=`$PYTHON -c "import sys; \
|
AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
|
||||||
|
ac_supports_python_ver=`$PYTHON -c "import sys; \
|
||||||
ver = sys.version.split ()[[0]]; \
|
ver = sys.version.split ()[[0]]; \
|
||||||
print (ver >= '2.1.0')"`
|
print (ver >= '2.1.0')"`
|
||||||
if test "$ac_supports_python_ver" != "True"; then
|
if test "$ac_supports_python_ver" != "True"; then
|
||||||
if test -z "$PYTHON_NOVERSIONCHECK"; then
|
if test -z "$PYTHON_NOVERSIONCHECK"; then
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
AC_MSG_FAILURE([
|
AC_MSG_WARN([
|
||||||
This version of the AC@&t@_PYTHON_DEVEL macro
|
This version of the AC@&t@_PYTHON_DEVEL macro
|
||||||
doesn't work properly with versions of Python before
|
doesn't work properly with versions of Python before
|
||||||
2.1.0. You may need to re-run configure, setting the
|
2.1.0. You may need to re-run configure, setting the
|
||||||
|
@ -112,20 +122,27 @@ PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
|
||||||
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
|
Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
|
||||||
to something else than an empty string.
|
to something else than an empty string.
|
||||||
])
|
])
|
||||||
|
if ! $ax_python_devel_optional; then
|
||||||
|
AC_MSG_FAILURE([Giving up])
|
||||||
|
fi
|
||||||
|
ax_python_devel_found=no
|
||||||
|
PYTHON_VERSION=""
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([skip at user request])
|
AC_MSG_RESULT([skip at user request])
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
if test $ax_python_devel_found = yes; then
|
||||||
# If the macro parameter ``version'' is set, honour it.
|
#
|
||||||
# A Python shim class, VPy, is used to implement correct version comparisons via
|
# If the macro parameter ``version'' is set, honour it.
|
||||||
# string expressions, since e.g. a naive textual ">= 2.7.3" won't work for
|
# A Python shim class, VPy, is used to implement correct version comparisons via
|
||||||
# Python 2.7.10 (the ".1" being evaluated as less than ".3").
|
# string expressions, since e.g. a naive textual ">= 2.7.3" won't work for
|
||||||
#
|
# Python 2.7.10 (the ".1" being evaluated as less than ".3").
|
||||||
if test -n "$1"; then
|
#
|
||||||
|
if test -n "$1"; then
|
||||||
AC_MSG_CHECKING([for a version of Python $1])
|
AC_MSG_CHECKING([for a version of Python $1])
|
||||||
cat << EOF > ax_python_devel_vpy.py
|
cat << EOF > ax_python_devel_vpy.py
|
||||||
class VPy:
|
class VPy:
|
||||||
|
@ -133,7 +150,7 @@ class VPy:
|
||||||
return tuple(map(int, s.strip().replace("rc", ".").split(".")))
|
return tuple(map(int, s.strip().replace("rc", ".").split(".")))
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
import sys
|
import sys
|
||||||
self.vpy = tuple(sys.version_info)
|
self.vpy = tuple(sys.version_info)[[:3]]
|
||||||
def __eq__(self, s):
|
def __eq__(self, s):
|
||||||
return self.vpy == self.vtup(s)
|
return self.vpy == self.vtup(s)
|
||||||
def __ne__(self, s):
|
def __ne__(self, s):
|
||||||
|
@ -155,25 +172,69 @@ EOF
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
AC_MSG_ERROR([this package requires Python $1.
|
AC_MSG_WARN([this package requires Python $1.
|
||||||
If you have it installed, but it isn't the default Python
|
If you have it installed, but it isn't the default Python
|
||||||
interpreter in your system path, please pass the PYTHON_VERSION
|
interpreter in your system path, please pass the PYTHON_VERSION
|
||||||
variable to configure. See ``configure --help'' for reference.
|
variable to configure. See ``configure --help'' for reference.
|
||||||
])
|
])
|
||||||
|
if ! $ax_python_devel_optional; then
|
||||||
|
AC_MSG_ERROR([Giving up])
|
||||||
|
fi
|
||||||
|
ax_python_devel_found=no
|
||||||
PYTHON_VERSION=""
|
PYTHON_VERSION=""
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
if test $ax_python_devel_found = yes; then
|
||||||
# Check for Python include path
|
#
|
||||||
#
|
# Check if you have distutils, else fail
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING([for Python include path])
|
AC_MSG_CHECKING([for the sysconfig Python package])
|
||||||
if test -z "$PYTHON_CPPFLAGS"; then
|
ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
|
||||||
python_path=`$PYTHON -c "import sysconfig; \
|
if test $? -eq 0; then
|
||||||
print (sysconfig.get_path('include'));"`
|
AC_MSG_RESULT([yes])
|
||||||
plat_python_path=`$PYTHON -c "import sysconfig; \
|
IMPORT_SYSCONFIG="import sysconfig"
|
||||||
print (sysconfig.get_path('platinclude'));"`
|
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".
|
||||||
|
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=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $ax_python_devel_found = yes; then
|
||||||
|
#
|
||||||
|
# Check for Python include path
|
||||||
|
#
|
||||||
|
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
|
||||||
if test -n "${python_path}"; then
|
if test -n "${python_path}"; then
|
||||||
if test "${plat_python_path}" != "${python_path}"; then
|
if test "${plat_python_path}" != "${python_path}"; then
|
||||||
python_path="-I$python_path -I$plat_python_path"
|
python_path="-I$python_path -I$plat_python_path"
|
||||||
|
@ -182,15 +243,15 @@ variable to configure. See ``configure --help'' for reference.
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
PYTHON_CPPFLAGS=$python_path
|
PYTHON_CPPFLAGS=$python_path
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$PYTHON_CPPFLAGS])
|
AC_MSG_RESULT([$PYTHON_CPPFLAGS])
|
||||||
AC_SUBST([PYTHON_CPPFLAGS])
|
AC_SUBST([PYTHON_CPPFLAGS])
|
||||||
|
|
||||||
#
|
#
|
||||||
# Check for Python library path
|
# Check for Python library path
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING([for Python library path])
|
AC_MSG_CHECKING([for Python library path])
|
||||||
if test -z "$PYTHON_LIBS"; then
|
if test -z "$PYTHON_LIBS"; then
|
||||||
# (makes two attempts to ensure we've got a version number
|
# (makes two attempts to ensure we've got a version number
|
||||||
# from the interpreter)
|
# from the interpreter)
|
||||||
ac_python_version=`cat<<EOD | $PYTHON -
|
ac_python_version=`cat<<EOD | $PYTHON -
|
||||||
|
@ -208,7 +269,7 @@ EOD`
|
||||||
ac_python_version=$PYTHON_VERSION
|
ac_python_version=$PYTHON_VERSION
|
||||||
else
|
else
|
||||||
ac_python_version=`$PYTHON -c "import sys; \
|
ac_python_version=`$PYTHON -c "import sys; \
|
||||||
print ('.'.join(sys.version.split('.')[[:2]]))"`
|
print ("%d.%d" % sys.version_info[[:2]])"`
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -220,7 +281,7 @@ EOD`
|
||||||
ac_python_libdir=`cat<<EOD | $PYTHON -
|
ac_python_libdir=`cat<<EOD | $PYTHON -
|
||||||
|
|
||||||
# There should be only one
|
# There should be only one
|
||||||
import sysconfig
|
$IMPORT_SYSCONFIG
|
||||||
e = sysconfig.get_config_var('LIBDIR')
|
e = sysconfig.get_config_var('LIBDIR')
|
||||||
if e is not None:
|
if e is not None:
|
||||||
print (e)
|
print (e)
|
||||||
|
@ -229,7 +290,7 @@ EOD`
|
||||||
# Now, for the library:
|
# Now, for the library:
|
||||||
ac_python_library=`cat<<EOD | $PYTHON -
|
ac_python_library=`cat<<EOD | $PYTHON -
|
||||||
|
|
||||||
import sysconfig
|
$IMPORT_SYSCONFIG
|
||||||
c = sysconfig.get_config_vars()
|
c = sysconfig.get_config_vars()
|
||||||
if 'LDVERSION' in c:
|
if 'LDVERSION' in c:
|
||||||
print ('python'+c[['LDVERSION']])
|
print ('python'+c[['LDVERSION']])
|
||||||
|
@ -249,88 +310,140 @@ EOD`
|
||||||
else
|
else
|
||||||
# old way: use libpython from python_configdir
|
# old way: use libpython from python_configdir
|
||||||
ac_python_libdir=`$PYTHON -c \
|
ac_python_libdir=`$PYTHON -c \
|
||||||
"import sysconfig; \
|
"from sysconfig import get_python_lib as f; \
|
||||||
import os; \
|
import os; \
|
||||||
print (os.path.join(sysconfig.get_path('platstdlib'), 'config'));"`
|
print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
|
||||||
PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
|
PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -z "PYTHON_LIBS"; then
|
if test -z "PYTHON_LIBS"; then
|
||||||
m4_ifvaln([$2],[$2],[
|
AC_MSG_WARN([
|
||||||
AC_MSG_ERROR([
|
|
||||||
Cannot determine location of your Python DSO. Please check it was installed with
|
Cannot determine location of your Python DSO. Please check it was installed with
|
||||||
dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
|
dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
|
||||||
])
|
|
||||||
])
|
])
|
||||||
|
if ! $ax_python_devel_optional; then
|
||||||
|
AC_MSG_ERROR([Giving up])
|
||||||
|
fi
|
||||||
|
ax_python_devel_found=no
|
||||||
|
PYTHON_VERSION=""
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$PYTHON_LIBS])
|
|
||||||
AC_SUBST([PYTHON_LIBS])
|
|
||||||
|
|
||||||
#
|
if test $ax_python_devel_found = yes; then
|
||||||
# Check for site packages
|
AC_MSG_RESULT([$PYTHON_LIBS])
|
||||||
#
|
AC_SUBST([PYTHON_LIBS])
|
||||||
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));" 2>/dev/null || \
|
|
||||||
$PYTHON -c "import sysconfig; \
|
|
||||||
print (sysconfig.get_path('purelib'));"`
|
|
||||||
fi
|
|
||||||
AC_MSG_RESULT([$PYTHON_SITE_PKG])
|
|
||||||
AC_SUBST([PYTHON_SITE_PKG])
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# libraries which must be linked in when embedding
|
# Check for site packages
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING(python extra libraries)
|
AC_MSG_CHECKING([for Python site-packages path])
|
||||||
if test -z "$PYTHON_EXTRA_LIBS"; then
|
if test -z "$PYTHON_SITE_PKG"; then
|
||||||
PYTHON_EXTRA_LIBS=`$PYTHON -c "import sysconfig; \
|
if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
|
||||||
|
PYTHON_SITE_PKG=`$PYTHON -c "
|
||||||
|
$IMPORT_SYSCONFIG;
|
||||||
|
if hasattr(sysconfig, 'get_default_scheme'):
|
||||||
|
scheme = sysconfig.get_default_scheme()
|
||||||
|
else:
|
||||||
|
scheme = sysconfig._get_default_scheme()
|
||||||
|
if scheme == 'posix_local':
|
||||||
|
# Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
|
||||||
|
scheme = 'posix_prefix'
|
||||||
|
prefix = '$prefix'
|
||||||
|
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])
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check for platform-specific site packages
|
||||||
|
#
|
||||||
|
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;
|
||||||
|
if hasattr(sysconfig, 'get_default_scheme'):
|
||||||
|
scheme = sysconfig.get_default_scheme()
|
||||||
|
else:
|
||||||
|
scheme = sysconfig._get_default_scheme()
|
||||||
|
if scheme == 'posix_local':
|
||||||
|
# Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
|
||||||
|
scheme = 'posix_prefix'
|
||||||
|
prefix = '$prefix'
|
||||||
|
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])
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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_SYSCONFIG; \
|
||||||
conf = sysconfig.get_config_var; \
|
conf = sysconfig.get_config_var; \
|
||||||
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
|
print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
|
||||||
AC_SUBST(PYTHON_EXTRA_LIBS)
|
AC_SUBST(PYTHON_EXTRA_LIBS)
|
||||||
|
|
||||||
#
|
#
|
||||||
# linking flags needed when embedding
|
# linking flags needed when embedding
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING(python extra linking flags)
|
AC_MSG_CHECKING(python extra linking flags)
|
||||||
if test -z "$PYTHON_EXTRA_LDFLAGS"; then
|
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; \
|
conf = sysconfig.get_config_var; \
|
||||||
print (conf('LINKFORSHARED'))"`
|
print (conf('LINKFORSHARED'))"`
|
||||||
fi
|
# Hack for macos, it sticks this in here.
|
||||||
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
PYTHON_EXTRA_LDFLAGS=`echo $PYTHON_EXTRA_LDFLAGS | sed 's/CoreFoundation.*$/CoreFoundation/'`
|
||||||
AC_SUBST(PYTHON_EXTRA_LDFLAGS)
|
fi
|
||||||
|
AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
|
||||||
|
AC_SUBST(PYTHON_EXTRA_LDFLAGS)
|
||||||
|
|
||||||
#
|
#
|
||||||
# final check to see if everything compiles alright
|
# final check to see if everything compiles alright
|
||||||
#
|
#
|
||||||
AC_MSG_CHECKING([consistency of all components of python development environment])
|
AC_MSG_CHECKING([consistency of all components of python development environment])
|
||||||
# save current global flags
|
# save current global flags
|
||||||
ac_save_LIBS="$LIBS"
|
ac_save_LIBS="$LIBS"
|
||||||
ac_save_LDFLAGS="$LDFLAGS"
|
ac_save_LDFLAGS="$LDFLAGS"
|
||||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||||
LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
|
LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS"
|
||||||
LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
|
LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
|
||||||
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
|
CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
|
||||||
AC_LANG_PUSH([C])
|
AC_LANG_PUSH([C])
|
||||||
AC_LINK_IFELSE([
|
AC_LINK_IFELSE([
|
||||||
AC_LANG_PROGRAM([[#include <Python.h>]],
|
AC_LANG_PROGRAM([[#include <Python.h>]],
|
||||||
[[Py_Initialize();]])
|
[[Py_Initialize();]])
|
||||||
],[pythonexists=yes],[pythonexists=no])
|
],[pythonexists=yes],[pythonexists=no])
|
||||||
AC_LANG_POP([C])
|
AC_LANG_POP([C])
|
||||||
# turn back to default flags
|
# turn back to default flags
|
||||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||||
LIBS="$ac_save_LIBS"
|
LIBS="$ac_save_LIBS"
|
||||||
LDFLAGS="$ac_save_LDFLAGS"
|
LDFLAGS="$ac_save_LDFLAGS"
|
||||||
|
|
||||||
AC_MSG_RESULT([$pythonexists])
|
AC_MSG_RESULT([$pythonexists])
|
||||||
|
|
||||||
if test ! "x$pythonexists" = "xyes"; then
|
if test ! "x$pythonexists" = "xyes"; then
|
||||||
m4_ifvaln([$2],[$2],[
|
AC_MSG_WARN([
|
||||||
AC_MSG_FAILURE([
|
|
||||||
Could not link test program to Python. Maybe the main Python library has been
|
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,
|
installed in some non-standard library path. If so, pass it to configure,
|
||||||
via the LIBS environment variable.
|
via the LIBS environment variable.
|
||||||
|
@ -340,9 +453,13 @@ EOD`
|
||||||
You probably have to install the development version of the Python package
|
You probably have to install the development version of the Python package
|
||||||
for your distribution. The exact name of this package varies among them.
|
for your distribution. The exact name of this package varies among them.
|
||||||
============================================================================
|
============================================================================
|
||||||
])
|
])
|
||||||
PYTHON_VERSION=""
|
if ! $ax_python_devel_optional; then
|
||||||
])
|
AC_MSG_ERROR([Giving up])
|
||||||
|
fi
|
||||||
|
ax_python_devel_found=no
|
||||||
|
PYTHON_VERSION=""
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -189,7 +189,7 @@ Depends: dkms (>> 2.1.1.2-5),
|
||||||
file,
|
file,
|
||||||
libc6-dev | libc-dev,
|
libc6-dev | libc-dev,
|
||||||
lsb-release,
|
lsb-release,
|
||||||
python3-distutils | libpython3-stdlib (<< 3.6.4),
|
python3 (>> 3.12) | python3-distutils | libpython3-stdlib (<< 3.6.4),
|
||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
${perl:Depends}
|
${perl:Depends}
|
||||||
Recommends: openzfs-zfs-zed, openzfs-zfsutils (>= ${source:Version}), ${linux:Recommends}
|
Recommends: openzfs-zfs-zed, openzfs-zfsutils (>= ${source:Version}), ${linux:Recommends}
|
||||||
|
|
Loading…
Reference in New Issue