From af48ddb139edded01530a76dd3a6c4bd2ae84775 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 12 Aug 2023 15:06:26 +0200 Subject: [PATCH] package/xfsprogs: bump version to 6.4.0 Patch 0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch is upstreamed. See here for changes to the previous version: https://fossies.org/linux/xfsprogs/doc/CHANGES Signed-off-by: Waldemar Brodkorb Signed-off-by: Thomas Petazzoni --- .checkpackageignore | 1 - ...riding-MAP_SYNC-in-publicly-exported.patch | 187 ------------------ package/xfsprogs/xfsprogs.hash | 2 +- package/xfsprogs/xfsprogs.mk | 2 +- 4 files changed, 2 insertions(+), 190 deletions(-) delete mode 100644 package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch diff --git a/.checkpackageignore b/.checkpackageignore index 3b3be0b18f..59191eb0cf 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -1590,7 +1590,6 @@ package/xenomai/3.0.10/0002-Add-disable-demo-testsuite-options.patch Upstream package/xenomai/3.0.10/0003-lib-cobalt-copperplate-Use-valid-addresses-for-pthread_setspecific.patch Upstream package/xfsprogs/0001-mdrestore-do-not-do-dynamic-linking-of-libtool-libra.patch Upstream package/xfsprogs/0002-libxfs-do-not-try-to-run-the-crc32selftest.patch Upstream -package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch Upstream package/xinetd/0001-ar.patch Upstream package/xinetd/0002-destdir.patch Upstream package/xinetd/0003-rpc-fix.patch Upstream diff --git a/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch b/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch deleted file mode 100644 index 510ed5b642..0000000000 --- a/package/xfsprogs/0003-libxfs-stop-overriding-MAP_SYNC-in-publicly-exported.patch +++ /dev/null @@ -1,187 +0,0 @@ -From b82bd75c80aadcc2890b23f63eec9ba2c560b2e5 Mon Sep 17 00:00:00 2001 -From: "Darrick J. Wong" -Date: Thu, 4 Aug 2022 21:26:43 -0500 -Subject: [PATCH] libxfs: stop overriding MAP_SYNC in publicly exported header - files - -Florian Fainelli most recently reported that xfsprogs doesn't build with -musl on mips: - -"MIPS platforms building with recent kernel headers and the musl-libc -toolchain will expose the following build failure: - -mmap.c: In function 'mmap_f': -mmap.c:196:12: error: 'MAP_SYNC' undeclared (first use in this function); did you mean 'MS_SYNC'? - 196 | flags = MAP_SYNC | MAP_SHARED_VALIDATE; - | ^~~~~~~~ - | MS_SYNC -mmap.c:196:12: note: each undeclared identifier is reported only once for each function it appears in -make[4]: *** [../include/buildrules:81: mmap.o] Error 1" - -At first glance, the build failure here is caused by the fact that: - -1. The configure script doesn't detect MAP_SYNC support -2. The build system doesn't set HAVE_MAP_SYNC -2. io/mmap.c includes input.h -> projects.h -> xfs.h and later sys/mman.h -3. include/linux.h #define's MAP_SYNC to 0 if HAVE_MAP_SYNC is not set -4. musl's sys/mman.h #undef MAP_SYNC on platforms that don't support it -5. io/mmap.c tries to use MAP_SYNC, not realizing that libc undefined it - -Normally, xfs_io only exports functionality that is defined by the libc -and/or kernel headers on the build system. We often make exceptions for -new functionality so that we have a way to test them before the header -file packages catch up, hence this '#ifndef HAVE_FOO #define FOO' -paradigm. - -MAP_SYNC is a gross and horribly broken example of this. These support -crutches are supposed to be *private* to xfsprogs for benefit of early -testing, but they were instead added to include/linux.h, which we -provide to user programs in the xfslibs-dev package. IOWs, we've been - -Worst yet, gcc 11.3 doesn't even warn about overriding a #define to 0: - -int main(int argc, char *argv[]) { - printf("MAP_SYNC 0x%x\n", MAP_SYNC); -} - -$ gcc -o a a.c -Wall -$ ./a -MAP_SYNC 0x80000 -$ gcc -DSTUPID -o a a.c -Wall -$ ./a -MAP_SYNC 0x0 - -Four years have gone by since the introduction of MAP_SYNC, so let's get -rid of the override code entirely -- any platform that supports MAP_SYNC -has had plenty of chances to ensure their header files have the right -bits. While we're at it, fix AC_HAVE_MAP_SYNC to look for MAP_SYNC in -the same header file that the one user (io/mmap.c) uses -- sys/mman.h. - -Annoyingly, I had to test this by hand because the sole fstest that -exercises MAP_SYNC (generic/470) requires dm-logwrites and dm-thinp, -neither of which support fsdax on current kernels. - -Reported-by: info@mobile-stream.com -Reported-by: Fabrice Fontaine -Reported-by: Florian Fainelli -Signed-off-by: Darrick J. Wong -Tested-by: Florian Fainelli -Reviewed-by: Carlos Maiolino -Signed-off-by: Eric Sandeen ---- - include/linux.h | 8 -------- - io/io.h | 2 +- - io/mmap.c | 25 +++++++++++++------------ - m4/package_libcdev.m4 | 3 +-- - 4 files changed, 15 insertions(+), 23 deletions(-) - -diff --git a/include/linux.h b/include/linux.h -index de8a71221146..052facc15db5 100644 ---- a/include/linux.h -+++ b/include/linux.h -@@ -356,14 +356,6 @@ fsmap_advance( - #define HAVE_GETFSMAP - #endif /* HAVE_GETFSMAP */ - --#ifndef HAVE_MAP_SYNC --#define MAP_SYNC 0 --#define MAP_SHARED_VALIDATE 0 --#else --#include --#include --#endif /* HAVE_MAP_SYNC */ -- - /* - * Reminder: anything added to this file will be compiled into downstream - * userspace projects! -diff --git a/io/io.h b/io/io.h -index 49db902fc44f..64b7a663a8cf 100644 ---- a/io/io.h -+++ b/io/io.h -@@ -55,7 +55,7 @@ typedef struct mmap_region { - size_t length; /* length of mapping */ - off64_t offset; /* start offset into backing file */ - int prot; /* protection mode of the mapping */ -- bool map_sync; /* is this a MAP_SYNC mapping? */ -+ int flags; /* MAP_* flags passed to mmap() */ - char *name; /* name of backing file */ - } mmap_region_t; - -diff --git a/io/mmap.c b/io/mmap.c -index 8c048a0ab6d0..425957d4b487 100644 ---- a/io/mmap.c -+++ b/io/mmap.c -@@ -46,8 +46,11 @@ print_mapping( - for (i = 0, p = pflags; p->prot != PROT_NONE; i++, p++) - buffer[i] = (map->prot & p->prot) ? p->mode : '-'; - -- if (map->map_sync) -+#ifdef HAVE_MAP_SYNC -+ if ((map->flags & (MAP_SYNC | MAP_SHARED_VALIDATE)) == -+ (MAP_SYNC | MAP_SHARED_VALIDATE)) - sprintf(&buffer[i], " S"); -+#endif - - printf("%c%03d%c 0x%lx - 0x%lx %s %14s (%lld : %ld)\n", - braces? '[' : ' ', index, braces? ']' : ' ', -@@ -139,7 +142,9 @@ mmap_help(void) - " -r -- map with PROT_READ protection\n" - " -w -- map with PROT_WRITE protection\n" - " -x -- map with PROT_EXEC protection\n" -+#ifdef HAVE_MAP_SYNC - " -S -- map with MAP_SYNC and MAP_SHARED_VALIDATE flags\n" -+#endif - " -s -- first do mmap(size)/munmap(size), try to reserve some free space\n" - " If no protection mode is specified, all are used by default.\n" - "\n")); -@@ -193,18 +198,14 @@ mmap_f( - prot |= PROT_EXEC; - break; - case 'S': -+#ifdef HAVE_MAP_SYNC - flags = MAP_SYNC | MAP_SHARED_VALIDATE; -- -- /* -- * If MAP_SYNC and MAP_SHARED_VALIDATE aren't defined -- * in the system headers we will have defined them -- * both as 0. -- */ -- if (!flags) { -- printf("MAP_SYNC not supported\n"); -- return 0; -- } - break; -+#else -+ printf("MAP_SYNC not supported\n"); -+ exitcode = 1; -+ return command_usage(&mmap_cmd); -+#endif - case 's': - length2 = cvtnum(blocksize, sectsize, optarg); - break; -@@ -281,7 +282,7 @@ mmap_f( - mapping->offset = offset; - mapping->name = filename; - mapping->prot = prot; -- mapping->map_sync = (flags == (MAP_SYNC | MAP_SHARED_VALIDATE)); -+ mapping->flags = flags; - return 0; - } - -diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4 -index adab9bb9773a..3a0c23453176 100644 ---- a/m4/package_libcdev.m4 -+++ b/m4/package_libcdev.m4 -@@ -339,8 +339,7 @@ AC_DEFUN([AC_HAVE_STATFS_FLAGS], - AC_DEFUN([AC_HAVE_MAP_SYNC], - [ AC_MSG_CHECKING([for MAP_SYNC]) - AC_TRY_COMPILE([ --#include --#include -+#include - ], [ - int flags = MAP_SYNC | MAP_SHARED_VALIDATE; - ], have_map_sync=yes --- -2.25.1 - diff --git a/package/xfsprogs/xfsprogs.hash b/package/xfsprogs/xfsprogs.hash index bb546601dc..8c73e14905 100644 --- a/package/xfsprogs/xfsprogs.hash +++ b/package/xfsprogs/xfsprogs.hash @@ -1,5 +1,5 @@ # From https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/sha256sums.asc -sha256 01ccd3ef9df2837753a5d876b8da84ea957d13d7a461b8c46e8afa4eb09aabc8 xfsprogs-5.14.2.tar.xz +sha256 c31868418bfbf49a3a9c47fc70cdffde9d96f4ff0051bd04a0881e6654648104 xfsprogs-6.4.0.tar.xz # Hash for license files sha256 f6b78c087c3ebdf0f3c13415070dd480a3f35d8fc76f3d02180a407c1c812f79 LICENSES/GPL-2.0 diff --git a/package/xfsprogs/xfsprogs.mk b/package/xfsprogs/xfsprogs.mk index 695471bddc..e174ac5397 100644 --- a/package/xfsprogs/xfsprogs.mk +++ b/package/xfsprogs/xfsprogs.mk @@ -4,7 +4,7 @@ # ################################################################################ -XFSPROGS_VERSION = 5.14.2 +XFSPROGS_VERSION = 6.4.0 XFSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/fs/xfs/xfsprogs XFSPROGS_SOURCE = xfsprogs-$(XFSPROGS_VERSION).tar.xz XFSPROGS_LICENSE = GPL-2.0, GPL-2.0+, LGPL-2.1 (libhandle, few headers)