mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 10:01:01 +03:00
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
41 lines
1.3 KiB
Makefile
41 lines
1.3 KiB
Makefile
EXTRA_DIST = libzfs_core setup.py README LICENSE docs
|
|
|
|
if PYZFS_ENABLED
|
|
all:
|
|
|
|
all-local:
|
|
$(PYTHON) setup.py build
|
|
|
|
#
|
|
# On Debian (Ubuntu, and other downstream distros) the install location of
|
|
# Python packages is "../dist-packages" instead of "../site-packages" [1].
|
|
# The install location used by "$(PYTHON) setup.py install" must match the
|
|
# location specified in the ZFS specfile (RPM macro "%{python_sitelib}") to
|
|
# avoid errors during the rpmbuild process.
|
|
# However we cannot pass "--install-layout=deb" to the setup script here because
|
|
# it is not supported on RPM-based distros; we use the combination of
|
|
# "--prefix", "--root" and "--install-lib" parameters instead which should work
|
|
# on every supported system.
|
|
#
|
|
# [1] https://wiki.debian.org/Python#Deviations_from_upstream
|
|
#
|
|
# Using "--no-compile" will not generate .pyc files which, in turn, will not be
|
|
# packaged: this could result in failures during the uninstall phase if these
|
|
# files are later created by manually loading the Python modules.
|
|
#
|
|
install-exec-local:
|
|
$(PYTHON) $(srcdir)/setup.py install \
|
|
--prefix $(prefix) \
|
|
--root $(DESTDIR)/ \
|
|
--install-lib $(pythonsitedir) \
|
|
--single-version-externally-managed \
|
|
--verbose
|
|
|
|
clean: clean-local
|
|
rm -rf build/ pyzfs.egg-info/
|
|
|
|
clean-local:
|
|
|
|
check-local: all
|
|
endif
|