6e72a5b9b6
Almost all of the Python code in the respository has been updated to be compatibile with Python 2.6, Python 3.4, or newer. The only exceptions are arc_summery3.py which requires Python 3, and pyzfs which requires at least Python 2.7. This allows us to maintain a single version of the code and support most default versions of python. This change does the following: * Sets the default shebang for all Python scripts to python3. If only Python 2 is available, then at install time scripts which are compatible with Python 2 will have their shebangs replaced with /usr/bin/python. This is done for compatibility until Python 2 goes end of life. Since only the installed versions are changed this means Python 3 must be installed on the system for test-runner when testing in-tree. * Added --with-python=<2|3|3.4,etc> configure option which sets the PYTHON environment variable to target a specific python version. By default the newest installed version of Python will be used or the preferred distribution version when creating pacakges. * Fixed --enable-pyzfs configure checks so they are run when --enable-pyzfs=check and --enable-pyzfs=yes. * Enabled pyzfs for Python 3.4 and newer, which is now supported. * Renamed pyzfs package to python<VERSION>-pyzfs and updated to install in the appropriate site location. For example, when building with --with-python=3.4 a python34-pyzfs will be created which installs in /usr/lib/python3.4/site-packages/. * Renamed the following python scripts according to the Fedora guidance for packaging utilities in /bin - dbufstat.py -> dbufstat - arcstat.py -> arcstat - arc_summary.py -> arc_summary - arc_summary3.py -> arc_summary3 * Updated python-cffi package name. On CentOS 6, CentOS 7, and Amazon Linux it's called python-cffi, not python2-cffi. For Python3 it's called python3-cffi or python3x-cffi. * Install one version of arc_summary. Depending on the version of Python available install either arc_summary2 or arc_summary3 as arc_summary. The user output is only slightly different. Reviewed-by: John Ramsden <johnramsden@riseup.net> Reviewed-by: Neal Gompa <ngompa@datto.com> Reviewed-by: loli10K <ezomori.nozomu@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #8096
86 lines
2.3 KiB
Plaintext
86 lines
2.3 KiB
Plaintext
dnl #
|
|
dnl # Determines if pyzfs can be built, requires Python 2.7 or latter.
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_PYZFS], [
|
|
AC_ARG_ENABLE([pyzfs],
|
|
AC_HELP_STRING([--enable-pyzfs],
|
|
[install libzfs_core python bindings @<:@default=check@:>@]),
|
|
[enable_pyzfs=$enableval],
|
|
[enable_pyzfs=check])
|
|
|
|
dnl #
|
|
dnl # Packages for pyzfs specifically enabled/disabled.
|
|
dnl #
|
|
AS_IF([test "x$enable_pyzfs" != xcheck], [
|
|
AS_IF([test "x$enable_pyzfs" = xyes], [
|
|
DEFINE_PYZFS='--with pyzfs'
|
|
], [
|
|
DEFINE_PYZFS='--without pyzfs'
|
|
])
|
|
], [
|
|
DEFINE_PYZFS=''
|
|
])
|
|
AC_SUBST(DEFINE_PYZFS)
|
|
|
|
dnl #
|
|
dnl # Require python-devel libraries
|
|
dnl #
|
|
AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
|
|
AS_IF([test "${PYTHON_VERSION:0:2}" = "2."], [
|
|
PYTHON_REQUIRED_VERSION=">= '2.7.0'"
|
|
], [
|
|
AS_IF([test "${PYTHON_VERSION:0:2}" = "3."], [
|
|
PYTHON_REQUIRED_VERSION=">= '3.4.0'"
|
|
], [
|
|
AC_MSG_ERROR("Python $PYTHON_VERSION unknown")
|
|
])
|
|
])
|
|
|
|
AX_PYTHON_DEVEL([$PYTHON_REQUIRED_VERSION], [
|
|
AS_IF([test "x$enable_pyzfs" = xyes], [
|
|
AC_MSG_ERROR("Python $PYTHON_REQUIRED_VERSION development library is not installed")
|
|
], [test ! "x$enable_pyzfs" = xno], [
|
|
enable_pyzfs=no
|
|
])
|
|
])
|
|
])
|
|
|
|
dnl #
|
|
dnl # Python "setuptools" module is required to build and install pyzfs
|
|
dnl #
|
|
AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
|
|
ZFS_AC_PYTHON_MODULE([setuptools], [], [
|
|
AS_IF([test "x$enable_pyzfs" = xyes], [
|
|
AC_MSG_ERROR("Python $PYTHON_VERSION setuptools is not installed")
|
|
], [test ! "x$enable_pyzfs" = xno], [
|
|
enable_pyzfs=no
|
|
])
|
|
])
|
|
])
|
|
|
|
dnl #
|
|
dnl # Python "cffi" module is required to run pyzfs
|
|
dnl #
|
|
AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
|
|
ZFS_AC_PYTHON_MODULE([cffi], [], [
|
|
AS_IF([test "x$enable_pyzfs" = xyes], [
|
|
AC_MSG_ERROR("Python $PYTHON_VERSION cffi is not installed")
|
|
], [test ! "x$enable_pyzfs" = xno], [
|
|
enable_pyzfs=no
|
|
])
|
|
])
|
|
])
|
|
|
|
dnl #
|
|
dnl # Set enable_pyzfs to 'yes' if every check passed
|
|
dnl #
|
|
AS_IF([test "x$enable_pyzfs" = xcheck], [enable_pyzfs=yes])
|
|
|
|
AM_CONDITIONAL([PYZFS_ENABLED], [test x$enable_pyzfs = xyes])
|
|
AC_SUBST([PYZFS_ENABLED], [$enable_pyzfs])
|
|
AC_SUBST(pythonsitedir, [$PYTHON_SITE_PKG])
|
|
|
|
AC_MSG_CHECKING([whether to enable pyzfs: ])
|
|
AC_MSG_RESULT($enable_pyzfs)
|
|
])
|