diff --git a/package/zfs/0001-config-user-check-for-aio.h.patch b/package/zfs/0001-config-user-check-for-aio.h.patch new file mode 100644 index 000000000000..55321ee2fca8 --- /dev/null +++ b/package/zfs/0001-config-user-check-for-aio.h.patch @@ -0,0 +1,94 @@ +From bc3f12bfac152a0c28951cec92340ba14f9ccee9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= +Date: Mon, 28 Mar 2022 19:24:22 +0200 +Subject: [PATCH] config: user: check for +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +And always zpool_read_label_slow() on non-conformant libcs + +Reviewed-by: Brian Behlendorf +Co-authored-by: José Luis Salvador Rufo +Signed-off-by: Ahelenia Ziemiańska +Closes #13207 +Closes #13254 +Upstream: https://github.com/openzfs/zfs/commit/bc3f12bfac152a0c28951cec92340ba14f9ccee9 +[yann.morin.1998@free.fr: backport from upstream] +Signed-off-by: Yann E. MORIN +--- + config/user-aio.h.m4 | 7 +++++++ + config/user-libaio.m4 | 2 +- + config/user.m4 | 1 + + lib/libzutil/zutil_import.c | 6 ++++++ + 4 files changed, 15 insertions(+), 1 deletion(-) + create mode 100644 config/user-aio.h.m4 + +diff --git a/config/user-aio.h.m4 b/config/user-aio.h.m4 +new file mode 100644 +index 00000000000..152c0946722 +--- /dev/null ++++ b/config/user-aio.h.m4 +@@ -0,0 +1,7 @@ ++dnl # ++dnl # POSIX specifies as part of realtime extensions, ++dnl # and is missing from at least uClibc – force fallbacks there ++dnl # ++AC_DEFUN([ZFS_AC_CONFIG_USER_AIO_H], [ ++ ZFS_AC_FIND_SYSTEM_LIBRARY(AIO_H, [], [aio.h], [], [rt], [lio_listio]) ++]) +diff --git a/config/user-libaio.m4 b/config/user-libaio.m4 +index 95c144d76b4..8009bd11b3e 100644 +--- a/config/user-libaio.m4 ++++ b/config/user-libaio.m4 +@@ -1,5 +1,5 @@ + dnl # +-dnl # Check for libaio - only used for libaiot test cases. ++dnl # Check for libaio - only used for mmap_libaio test cases. + dnl # + AC_DEFUN([ZFS_AC_CONFIG_USER_LIBAIO], [ + ZFS_AC_FIND_SYSTEM_LIBRARY(LIBAIO, [], [libaio.h], [], [aio], [], [user_libaio=yes], [user_libaio=no]) +diff --git a/config/user.m4 b/config/user.m4 +index 670820b3771..f450af47e04 100644 +--- a/config/user.m4 ++++ b/config/user.m4 +@@ -23,6 +23,7 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [ + ZFS_AC_CONFIG_USER_LIBAIO + ZFS_AC_CONFIG_USER_LIBATOMIC + ZFS_AC_CONFIG_USER_LIBFETCH ++ ZFS_AC_CONFIG_USER_AIO_H + ZFS_AC_CONFIG_USER_CLOCK_GETTIME + ZFS_AC_CONFIG_USER_PAM + ZFS_AC_CONFIG_USER_RUNSTATEDIR +diff --git a/lib/libzutil/zutil_import.c b/lib/libzutil/zutil_import.c +index d7547c4249e..3744a1c3474 100644 +--- a/lib/libzutil/zutil_import.c ++++ b/lib/libzutil/zutil_import.c +@@ -47,7 +47,9 @@ + * using our derived config, and record the results. + */ + ++#ifdef HAVE_AIO_H + #include ++#endif + #include + #include + #include +@@ -982,6 +984,9 @@ zpool_read_label_slow(int fd, nvlist_t **config, int *num_labels) + int + zpool_read_label(int fd, nvlist_t **config, int *num_labels) + { ++#ifndef HAVE_AIO_H ++ return (zpool_read_label_slow(fd, config, num_labels)); ++#else + struct stat64 statbuf; + struct aiocb aiocbs[VDEV_LABELS]; + struct aiocb *aiocbps[VDEV_LABELS]; +@@ -1104,6 +1109,7 @@ zpool_read_label(int fd, nvlist_t **config, int *num_labels) + *config = expected_config; + + return (0); ++#endif + } + + /* diff --git a/package/zfs/zfs.hash b/package/zfs/zfs.hash index 3a73e5e94f11..f0327ce8ccc3 100644 --- a/package/zfs/zfs.hash +++ b/package/zfs/zfs.hash @@ -1,6 +1,5 @@ # From https://github.com/openzfs/zfs/releases/download/zfs-2.1.12/zfs-2.1.12.sha256.asc sha256 64daa26aed3e12c931f6f4413d7527c4ebdb8da35416b356152b5f9fdd4c6e6d zfs-2.1.12.tar.gz -sha256 96a27353fe717ff2c8b95deb8b009c4eb750303c6400e2d8a2582ab1ec12b25a bc3f12bfac152a0c28951cec92340ba14f9ccee9.patch # Hash for license files: sha256 1ffb70c33c4f79f04e947facc5c7851f289609256aacb47fc115f700427d9520 LICENSE diff --git a/package/zfs/zfs.mk b/package/zfs/zfs.mk index b852d8d4e213..43a10a0de93d 100644 --- a/package/zfs/zfs.mk +++ b/package/zfs/zfs.mk @@ -6,13 +6,12 @@ ZFS_VERSION = 2.1.12 ZFS_SITE = https://github.com/openzfs/zfs/releases/download/zfs-$(ZFS_VERSION) -ZFS_PATCH = https://github.com/openzfs/zfs/commit/bc3f12bfac152a0c28951cec92340ba14f9ccee9.patch ZFS_LICENSE = CDDL ZFS_LICENSE_FILES = LICENSE COPYRIGHT ZFS_CPE_ID_VENDOR = openzfs ZFS_CPE_ID_PRODUCT = openzfs -# 0001-removal-of-LegacyVersion-broke-ax_python_dev.m4.patch +# 0001-config-user-check-for-aio.h.patch ZFS_AUTORECONF = YES ZFS_DEPENDENCIES = libaio openssl udev util-linux zlib libcurl linux