zfs: update to 2.1.2.

This commit is contained in:
Zach Dykstra 2021-12-15 20:12:52 -06:00 committed by Toyam Cox
parent b7d51ca7a2
commit e1211a2e02
3 changed files with 61 additions and 95 deletions

View File

@ -0,0 +1,58 @@
From 123c87b3c2d75636da79f57a4b0ed60d2a3133a8 Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <gyakovlev@gentoo.org>
Date: Mon, 20 Dec 2021 12:25:11 -0800
Subject: [PATCH] zfs-test/mmap_seek: fix build on musl
it needs linux/fs.h for SEEK_DATA and friends
without linux/fs.h:
```
mmap_seek.c
mmap_seek.c: In function 'seek_data':
mmap_seek.c:37:40: error: 'SEEK_DATA' undeclared (first use in this function);
did you mean 'SEEK_SET'?
37 | off_t data_offset = lseek(fd, offset, SEEK_DATA);
```
also it needs sys/sysmacros.h for P2ROUNDUP
without it:
```
mmap_seek.c: In function 'main':
mmap_seek.c:122:19: warning:
implicit declaration of function 'P2ROUNDUP' [-Wimplicit-function-declaration]
122 | seek_hole(fd, 0, P2ROUNDUP(file_size / 2, block_size));
| ^~~~~~~~~
powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.o: in function `main':
mmap_seek.c:(.text.startup+0x1b8): undefined reference to `P2ROUNDUP'
powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.c:(.text.startup+0x1d8):
undefined reference to `P2ROUNDUP'
powerpc64-gentoo-linux-musl/bin/ld: mmap_seek.c:(.text.startup+0x21c):
undefined reference to `P2ROUNDUP'
collect2: error: ld returned 1 exit status
make[5]: *** [Makefile:754: mmap_seek] Error 1
```
Closes: https://github.com/openzfs/zfs/pull/12891
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
---
tests/zfs-tests/cmd/mmap_seek/mmap_seek.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c b/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c
index f476e1dba9a..bb36527aafe 100644
--- a/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c
+++ b/tests/zfs-tests/cmd/mmap_seek/mmap_seek.c
@@ -29,7 +29,11 @@
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
+#include <sys/sysmacros.h>
#include <errno.h>
+#ifdef __linux__
+#include <linux/fs.h>
+#endif
static void
seek_data(int fd, off_t offset, off_t expected)

View File

@ -1,92 +0,0 @@
Most fo the patch taken from
https://github.com/openzfs/zfs/commit/08cd0717359b1a18693e3c8e6d6e5a2819b35a48
but this fix still missed the `print (sys.version[[:3]])"` part of the test,
which extracts "3.1" on Python 3.10. The right fix is to properly split
sys.version on '.' and rejoin the first two components.
diff -ur a/config/always-pyzfs.m4 b/config/always-pyzfs.m4
--- a/config/always-pyzfs.m4 2021-09-15 16:30:47.164862738 -0400
+++ b/config/always-pyzfs.m4 2021-09-29 14:34:51.288636042 -0400
@@ -47,6 +47,21 @@
AC_SUBST(DEFINE_PYZFS)
dnl #
+ dnl # Python "packaging" (or, failing that, "distlib") 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([packaging], [], [
+ ZFS_AC_PYTHON_MODULE([distlib], [], [
+ AS_IF([test "x$enable_pyzfs" = xyes], [
+ AC_MSG_ERROR("Python $PYTHON_VERSION packaging and distlib modules are not installed")
+ ], [test "x$enable_pyzfs" != xno], [
+ enable_pyzfs=no
+ ])
+ ])
+ ])
+ ])
+
+ dnl #
dnl # Require python-devel libraries
dnl #
AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
diff -ur a/config/ax_python_devel.m4 b/config/ax_python_devel.m4
--- a/config/ax_python_devel.m4 2021-09-15 16:30:47.164862738 -0400
+++ b/config/ax_python_devel.m4 2021-09-29 14:40:23.293455112 -0400
@@ -97,9 +97,18 @@
# 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; \
- ver = sys.version.split ()[[0]]; \
- print (ver >= '2.1.0')"`
+ ac_supports_python_ver=`cat<<EOD | $PYTHON -
+from __future__ import print_function;
+import sys;
+try:
+ from packaging import version;
+except ImportError:
+ from distlib import version;
+ver = sys.version.split ()[[0]];
+(tst_cmp, tst_ver) = ">= '2.1.0'".split ();
+tst_ver = tst_ver.strip ("'");
+eval ("print (version.LegacyVersion (ver)"+ tst_cmp +"version.LegacyVersion (tst_ver))")
+EOD`
if test "$ac_supports_python_ver" != "True"; then
if test -z "$PYTHON_NOVERSIONCHECK"; then
AC_MSG_RESULT([no])
@@ -126,9 +135,21 @@
#
if test -n "$1"; then
AC_MSG_CHECKING([for a version of Python $1])
- ac_supports_python_ver=`$PYTHON -c "import sys; \
- ver = sys.version.split ()[[0]]; \
- print (ver $1)"`
+ # Why the strip ()? Because if we don't, version.parse
+ # will, for example, report 3.10.0 >= '3.11.0'
+ ac_supports_python_ver=`cat<<EOD | $PYTHON -
+
+from __future__ import print_function;
+import sys;
+try:
+ from packaging import version;
+except ImportError:
+ from distlib import version;
+ver = sys.version.split ()[[0]];
+(tst_cmp, tst_ver) = "$1".split ();
+tst_ver = tst_ver.strip ("'");
+eval ("print (version.LegacyVersion (ver)"+ tst_cmp +"version.LegacyVersion (tst_ver))")
+EOD`
if test "$ac_supports_python_ver" = "True"; then
AC_MSG_RESULT([yes])
else
@@ -203,7 +224,7 @@
ac_python_version=$PYTHON_VERSION
else
ac_python_version=`$PYTHON -c "import sys; \
- print (sys.version[[:3]])"`
+ print ('.'.join(sys.version.split('.')[[:2]]))"`
fi
fi

View File

@ -1,7 +1,7 @@
# Template file for 'zfs'
pkgname=zfs
version=2.1.1
revision=2
version=2.1.2
revision=1
build_style=gnu-configure
configure_args="--with-config=user --with-mounthelperdir=/usr/bin
--with-udevdir=/usr/lib/udev --with-udevruledir=/usr/lib/udev/rules.d
@ -15,7 +15,7 @@ maintainer="Toyam Cox <Vaelatern@voidlinux.org>"
license="CDDL-1.0"
homepage="https://openzfs.github.io/openzfs-docs/"
distfiles="https://github.com/openzfs/zfs/releases/download/zfs-${version}/zfs-${version}.tar.gz"
checksum=bd4f48d009f3b5e291390bde62b0131b8bf3fab09f4fc0fa3591b1f2e7074cff
checksum=258cf1d17a1f668a3b99b61eaf14be06c614df42503db0319bef1b9fc4c8b9e7
# dkms must be before initramfs-regenerate to build modules before images
triggers="dkms initramfs-regenerate"
dkms_modules="zfs ${version}"