sys-fs/xfsprogs: Sync with Gentoo

It's from Gentoo commit e7593c10d81c23abb0e3ae05e60dc30d700658f2.

Signed-off-by: Flatcar Buildbot <buildbot@flatcar-linux.org>
This commit is contained in:
Flatcar Buildbot 2026-01-12 07:17:31 +00:00 committed by Krzesimir Nowak
parent 6e4d0b4890
commit 5ced8bfbda
5 changed files with 292 additions and 1 deletions

View File

@ -4,3 +4,4 @@ DIST xfsprogs-6.14.0.tar.xz 1543640 BLAKE2B 5ef446b2055356627cd91ebfe9bb07388f9b
DIST xfsprogs-6.15.0.tar.xz 1550568 BLAKE2B fe6806ac8235c0984055f7b969b11bc0c49ee8bb8f49f7a4c3bf03f1ebf839cccb86cdb6c4946723a1b8007422e057fb7b865cc60081037920e8208cfcab16e9 SHA512 975c9c7fe476b02da50da74eb599f804f2b27a638a74b807e1f69d93d0d150d19bf6d5036601b96febe557a6c51065d8cf22eef5fda92a6d7f084ac1d7647496
DIST xfsprogs-6.16.0.tar.xz 1557452 BLAKE2B ae4087c887b4c9d2fcc4b5341ca3c7d0333cf2132111179feee4b765ba9a1cc94143723b2bc4bcd8658bd7902871266af69293c77d715de1d0e878dc76b42e8e SHA512 333ef39f38d0fa46742b7fd28ebc6482e90abb32e58634b3a93aa24f0202c55f4dc32f1b00a9859c6e64efada4d844c3a995a913520cb00d5e1a4f1a83da848d
DIST xfsprogs-6.17.0.tar.xz 1563092 BLAKE2B e841526add6c17d036a709c1fafe879a50ba7d568008865eac8d166182be5514d8abc94b8facbe113aa6106ac394ea01049b6a555ebd280ee1cd5d64fff1b5da SHA512 bcdd5a632ac1eae4ad68ac1b18a0289820fcef997da2b3b132e97f035f21e951f20f19de9d09e0babd7d7feb8ad14c0782aa81c698b39c19e4349e603892287e
DIST xfsprogs-6.18.0.tar.xz 1563944 BLAKE2B 225cb49a39a2539e48513985d72602c0c067f73597e3fe1d9d4062989ed98c3a0b2c85bb9d465c60acefce3243a7e2320808727e6ce527fbc35216bde235144e SHA512 95fcbfdd91d9b02ec9adef50e23a39240056bf3bfed3d973e048a50dd0d0b040f80e8cf72537cca7e560718e4444ed1bbcf8b99ee4c82e044ca52d916536f7f5

View File

@ -0,0 +1,66 @@
https://lore.kernel.org/linux-xfs/20251205143154.366055-2-aalbersh@kernel.org/
https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/commit/?h=for-next&id=3147d1d643c8278f1b75dedf3a64037bece7da53
From 3147d1d643c8278f1b75dedf3a64037bece7da53 Mon Sep 17 00:00:00 2001
From: Arkadiusz Miśkiewicz <arekm@maven.pl>
Date: Fri, 5 Dec 2025 15:31:48 +0100
Subject: libfrog: fix incorrect FS_IOC_FSSETXATTR argument to ioctl()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
xfsprogs 6.17.0 has broken project quota due to incorrect argument
passed to FS_IOC_FSSETXATTR ioctl(). Instead of passing struct fsxattr,
struct file_attr was passed.
# LC_ALL=C /usr/sbin/xfs_quota -x -c "project -s -p /home/xxx 389701" /home
Setting up project 389701 (path /home/xxx)...
xfs_quota: cannot set project on /home/xxx: Invalid argument
Processed 1 (/etc/projects and cmdline) paths for project 389701 with
recursion depth infinite (-1).
ioctl(5, FS_IOC_FSSETXATTR, {fsx_xflags=FS_XFLAG_PROJINHERIT|FS_XFLAG_HASATTR, fsx_extsize=0, fsx_projid=0, fsx_cowextsize=389701}) = -1 EINVAL (Invalid argument)
There seems to be a double mistake which hides the original ioctl()
argument bug on old kernel with xfsprogs built against it. The size of
fa_xflags was also wrong in xfsprogs's linux.h header. This way when
xfsprogs is compiled on newer kernel but used with older kernel this bug
uncovers.
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Arkadiusz Miśkiewicz <arekm@maven.pl>
Signed-off-by: Andrey Albershteyn <aalbersh@kernel.org>
---
include/linux.h | 2 +-
libfrog/file_attr.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux.h b/include/linux.h
index cea468d2b9..3ea9016272 100644
--- a/include/linux.h
+++ b/include/linux.h
@@ -214,7 +214,7 @@ struct fsxattr {
* fsxattr
*/
struct file_attr {
- __u32 fa_xflags;
+ __u64 fa_xflags;
__u32 fa_extsize;
__u32 fa_nextents;
__u32 fa_projid;
diff --git a/libfrog/file_attr.c b/libfrog/file_attr.c
index c2cbcb4e14..6801c54588 100644
--- a/libfrog/file_attr.c
+++ b/libfrog/file_attr.c
@@ -114,7 +114,7 @@ xfrog_file_setattr(
file_attr_to_fsxattr(fa, &fsxa);
- error = ioctl(fd, FS_IOC_FSSETXATTR, fa);
+ error = ioctl(fd, FS_IOC_FSSETXATTR, &fsxa);
close(fd);
return error;
--
cgit 1.2.3-korg

View File

@ -0,0 +1,114 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic systemd udev
DESCRIPTION="XFS filesystem utilities"
HOMEPAGE="https://xfs.wiki.kernel.org/ https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/"
SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="icu libedit nls selinux static-libs"
RDEPEND="
dev-libs/inih
dev-libs/userspace-rcu:=
>=sys-apps/util-linux-2.17.2
icu? ( dev-libs/icu:= )
libedit? ( dev-libs/libedit )
"
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-6.11
"
BDEPEND="nls? ( sys-devel/gettext )"
RDEPEND+=" selinux? ( sec-policy/selinux-xfs )"
PATCHES=(
"${FILESDIR}"/${PN}-6.17.0-ioctl.patch
)
src_prepare() {
default
# Fix doc dir
sed -i \
-e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
include/builddefs.in || die
# Don't install compressed docs
sed 's@\(CHANGES\)\.gz[[:space:]]@\1 @' -i doc/Makefile || die
}
src_configure() {
# include/builddefs.in will add FCFLAGS to CFLAGS which will
# unnecessarily clutter CFLAGS (and fortran isn't used)
unset FCFLAGS
# If set in user env, this breaks configure
unset PLATFORM
export DEBUG=-DNDEBUG
# Package is honoring CFLAGS; No need to use OPTIMIZER anymore.
# However, we have to provide an empty value to avoid default
# flags.
export OPTIMIZER=" "
# Avoid automagic on libdevmapper (bug #709694)
export ac_cv_search_dm_task_create=no
# bug 903611
use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
# Upstream does NOT support --disable-static anymore,
# https://www.spinics.net/lists/linux-xfs/msg30185.html
# https://www.spinics.net/lists/linux-xfs/msg30272.html
local myconf=(
--enable-static
# Doesn't do anything beyond adding -flto (bug #930947).
--disable-lto
# The default value causes double 'lib'
--localstatedir="${EPREFIX}/var"
--with-crond-dir="${EPREFIX}/etc/cron.d"
--with-systemd-unit-dir="$(systemd_get_systemunitdir)"
--with-udev-rule-dir="$(get_udevdir)/rules.d"
$(use_enable icu libicu)
$(use_enable nls gettext)
$(use_enable libedit editline)
)
econf "${myconf[@]}"
}
src_compile() {
emake V=1
}
src_install() {
# XXX: There's a missing dep in the install-dev target, so split it
emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install
emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev
# Not actually used but --localstatedir causes this empty dir
# to be installed.
rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die
if ! use static-libs; then
rm "${ED}/usr/$(get_libdir)/libhandle.a" || die
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postrm() {
udev_reload
}
pkg_postinst() {
udev_reload
}

View File

@ -11,7 +11,7 @@ SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
IUSE="icu libedit nls selinux static-libs"
RDEPEND="

View File

@ -0,0 +1,110 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic systemd udev
DESCRIPTION="XFS filesystem utilities"
HOMEPAGE="https://xfs.wiki.kernel.org/ https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/"
SRC_URI="https://www.kernel.org/pub/linux/utils/fs/xfs/${PN}/${P}.tar.xz"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="icu libedit nls selinux static-libs"
RDEPEND="
dev-libs/inih
dev-libs/userspace-rcu:=
>=sys-apps/util-linux-2.17.2
icu? ( dev-libs/icu:= )
libedit? ( dev-libs/libedit )
"
DEPEND="
${RDEPEND}
>=sys-kernel/linux-headers-6.11
"
BDEPEND="nls? ( sys-devel/gettext )"
RDEPEND+=" selinux? ( sec-policy/selinux-xfs )"
src_prepare() {
default
# Fix doc dir
sed -i \
-e "/^PKG_DOC_DIR/s:@pkg_name@:${PF}:" \
include/builddefs.in || die
# Don't install compressed docs
sed 's@\(CHANGES\)\.gz[[:space:]]@\1 @' -i doc/Makefile || die
}
src_configure() {
# include/builddefs.in will add FCFLAGS to CFLAGS which will
# unnecessarily clutter CFLAGS (and fortran isn't used)
unset FCFLAGS
# If set in user env, this breaks configure
unset PLATFORM
export DEBUG=-DNDEBUG
# Package is honoring CFLAGS; No need to use OPTIMIZER anymore.
# However, we have to provide an empty value to avoid default
# flags.
export OPTIMIZER=" "
# Avoid automagic on libdevmapper (bug #709694)
export ac_cv_search_dm_task_create=no
# bug 903611
use elibc_musl && append-flags -D_LARGEFILE64_SOURCE
# Upstream does NOT support --disable-static anymore,
# https://www.spinics.net/lists/linux-xfs/msg30185.html
# https://www.spinics.net/lists/linux-xfs/msg30272.html
local myconf=(
--enable-static
# Doesn't do anything beyond adding -flto (bug #930947).
--disable-lto
# The default value causes double 'lib'
--localstatedir="${EPREFIX}/var"
--with-crond-dir="${EPREFIX}/etc/cron.d"
--with-systemd-unit-dir="$(systemd_get_systemunitdir)"
--with-udev-rule-dir="$(get_udevdir)/rules.d"
$(use_enable icu libicu)
$(use_enable nls gettext)
$(use_enable libedit editline)
)
econf "${myconf[@]}"
}
src_compile() {
emake V=1
}
src_install() {
# XXX: There's a missing dep in the install-dev target, so split it
emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install
emake DIST_ROOT="${ED}" HAVE_ZIPPED_MANPAGES=false install-dev
# Not actually used but --localstatedir causes this empty dir
# to be installed.
rmdir "${ED}"/var/lib/xfsprogs "${ED}"/var/lib || die
if ! use static-libs; then
rm "${ED}/usr/$(get_libdir)/libhandle.a" || die
fi
find "${ED}" -name '*.la' -delete || die
}
pkg_postrm() {
udev_reload
}
pkg_postinst() {
udev_reload
}