mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +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
73 lines
2.9 KiB
Plaintext
73 lines
2.9 KiB
Plaintext
deb-local:
|
|
@(if test "${HAVE_DPKGBUILD}" = "no"; then \
|
|
echo -e "\n" \
|
|
"*** Required util ${DPKGBUILD} missing. Please install the\n" \
|
|
"*** package for your distribution which provides ${DPKGBUILD},\n" \
|
|
"*** re-run configure, and try again.\n"; \
|
|
exit 1; \
|
|
fi; \
|
|
if test "${HAVE_ALIEN}" = "no"; then \
|
|
echo -e "\n" \
|
|
"*** Required util ${ALIEN} missing. Please install the\n" \
|
|
"*** package for your distribution which provides ${ALIEN},\n" \
|
|
"*** re-run configure, and try again.\n"; \
|
|
exit 1; \
|
|
fi)
|
|
|
|
deb-kmod: deb-local rpm-kmod
|
|
name=${PACKAGE}; \
|
|
version=${VERSION}-${RELEASE}; \
|
|
arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
|
|
debarch=`$(DPKG) --print-architecture`; \
|
|
pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
|
|
fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
|
|
$(RM) $$pkg1
|
|
|
|
|
|
deb-dkms: deb-local rpm-dkms
|
|
name=${PACKAGE}; \
|
|
version=${VERSION}-${RELEASE}; \
|
|
arch=`$(RPM) -qp $${name}-dkms-$${version}.src.rpm --qf %{arch} | tail -1`; \
|
|
debarch=`$(DPKG) --print-architecture`; \
|
|
pkg1=$${name}-dkms-$${version}.$${arch}.rpm; \
|
|
fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch $$pkg1; \
|
|
$(RM) $$pkg1
|
|
|
|
deb-utils: deb-local rpm-utils
|
|
name=${PACKAGE}; \
|
|
version=${VERSION}-${RELEASE}; \
|
|
arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
|
|
debarch=`$(DPKG) --print-architecture`; \
|
|
pkg1=$${name}-$${version}.$${arch}.rpm; \
|
|
pkg2=libnvpair1-$${version}.$${arch}.rpm; \
|
|
pkg3=libuutil1-$${version}.$${arch}.rpm; \
|
|
pkg4=libzfs2-$${version}.$${arch}.rpm; \
|
|
pkg5=libzpool2-$${version}.$${arch}.rpm; \
|
|
pkg6=libzfs2-devel-$${version}.$${arch}.rpm; \
|
|
pkg7=$${name}-test-$${version}.$${arch}.rpm; \
|
|
pkg8=$${name}-dracut-$${version}.$${arch}.rpm; \
|
|
pkg9=$${name}-initramfs-$${version}.$${arch}.rpm; \
|
|
pkg10=`ls python*-pyzfs-$${version}* | tail -1`; \
|
|
## Arguments need to be passed to dh_shlibdeps. Alien provides no mechanism
|
|
## to do this, so we install a shim onto the path which calls the real
|
|
## dh_shlibdeps with the required arguments.
|
|
path_prepend=`mktemp -d /tmp/intercept.XXX`; \
|
|
echo "#$(SHELL)" > $${path_prepend}/dh_shlibdeps; \
|
|
echo "`which dh_shlibdeps` -- \
|
|
-xlibuutil1linux -xlibnvpair1linux -xlibzfs2linux -xlibzpool2linux" \
|
|
>> $${path_prepend}/dh_shlibdeps; \
|
|
## These -x arguments are passed to dpkg-shlibdeps, which exclude the
|
|
## Debianized packages from the auto-generated dependencies of the new debs,
|
|
## which should NOT be mixed with the alien-generated debs created here
|
|
chmod +x $${path_prepend}/dh_shlibdeps; \
|
|
env PATH=$${path_prepend}:$${PATH} \
|
|
fakeroot $(ALIEN) --bump=0 --scripts --to-deb --target=$$debarch \
|
|
$$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
|
|
$$pkg8 $$pkg9 $$pkg10; \
|
|
$(RM) $${path_prepend}/dh_shlibdeps; \
|
|
rmdir $${path_prepend}; \
|
|
$(RM) $$pkg1 $$pkg2 $$pkg3 $$pkg4 $$pkg5 $$pkg6 $$pkg7 \
|
|
$$pkg8 $$pkg9 $$pkg10;
|
|
|
|
deb: deb-kmod deb-dkms deb-utils
|