From b4bb30f0ef510c006af1c7d73ca28140cd78cdb0 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 3 Jul 2023 07:18:29 +0000 Subject: [PATCH] sys-apps/util-linux: Sync with Gentoo It's from Gentoo commit efd6ba4f2700a0d421ac88465d1f4a32e3505e84. --- .../sys-apps/util-linux/Manifest | 4 +- ...l-linux-2.39-check-for-mount_setattr.patch | 98 ------------------- ...til-linux-2.39-mount-dont-call-hooks.patch | 79 --------------- ...-linux-2.39-mount-parse-options-user.patch | 46 --------- ...l-linux-2.39-tests-for-mount_setattr.patch | 13 --- ....39-r4.ebuild => util-linux-2.39.1.ebuild} | 11 +-- 6 files changed, 6 insertions(+), 245 deletions(-) delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch delete mode 100644 sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch rename sdk_container/src/third_party/portage-stable/sys-apps/util-linux/{util-linux-2.39-r4.ebuild => util-linux-2.39.1.ebuild} (98%) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest index b73c496ece..42cecce954 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/Manifest @@ -1,4 +1,4 @@ DIST util-linux-2.38.1.tar.sign 833 BLAKE2B 2468c6b8c881d7a17666aac954edfd421085111937f5d0daada37a679e9bbfe61fc98bb57cca9bf7bea20be483f38e2a758039f9baf5b1a901852e2b5dd014d8 SHA512 d8b3e936065ae1dc105b8ce773c874bb037ebf84ee571676509543f79c39950180e7f252c6b0d4500119568ed4ac3aa7117793de839f983e9287f26649e91dad DIST util-linux-2.38.1.tar.xz 7495904 BLAKE2B a0e86ca62f82adaccc01ad6ec5a058dac429b81c310989cbad136f96c2770c60bbd4287067817520e8e0653146a10f13128e0af32122402bab416e1c2d6680b8 SHA512 07f11147f67dfc6c8bc766dfc83266054e6ede776feada0566b447d13276b6882ee85c6fe53e8d94a17c03332106fc0549deca3cf5f2e92dda554e9bc0551957 -DIST util-linux-2.39.tar.sign 833 BLAKE2B f4b35d35f1d20094169c8651d127c6d1f37b0946bc72c40f4824d77f8c117a23ae2633ac2449e91ba316d4cac6e4f3c2afb9fd410302683384988dc794062d9e SHA512 f5df4f7e5c39995ad3c7b52f06bfc7759e53d4df82b2b42f09d4570faeff5c156e83e42be053b00b0bfb4a71e27bfa580fb996a92225eb8a0df46d9f296ef4ef -DIST util-linux-2.39.tar.xz 8103428 BLAKE2B 39d415b6e303c21d2e5566bd29dd1803c67fbaed079fab85fab620db727a69c96f9c705a3671a639185c78ea1e70f374e21ef8694115ce42fa30c86b546023d1 SHA512 3d59a0f114c06be19ef7f86fca37ba5b9073823d011b3fc37997ddb00124b4505ea32903b78798a64dffbccf0ba645a692678ee845cc65a5b321824448a82a94 +DIST util-linux-2.39.1.tar.sign 833 BLAKE2B 8c1e7089bcec1f47f5c7b4ba60ca1c35955bdad99683f0682f6ba08171d3102079e7584989ea764e60096e0d64e5f9ffc8757c7feba23f79dafdb7942396a96a SHA512 6d6cabd24ebe3ce7437d98d08793b0b27d6240f2a28e08e216b4b1d358c9024fa1cec6d17df6cf7f024f97647cd31990db94716a575b08ad15f3a0b75797912b +DIST util-linux-2.39.1.tar.xz 8351164 BLAKE2B 1c2f3a77414dc9e99d17c426ca710524f898b6fd13bee120c08ceb375e475044ff6f2668f58bd799d0e3befe36de6cc1e161a1be7102e4590a8e372b6547ec1c SHA512 8fe2c9014f6161330610f7470b870855cecbd3fab9c187b75d8f22e16573c82516050479be39cfb9f7dd6d7ef1cc298d31d839b194dda5ec4daf0d1197ac71e9 diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch deleted file mode 100644 index c1eb3748f7..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-check-for-mount_setattr.patch +++ /dev/null @@ -1,98 +0,0 @@ -https://bugs.gentoo.org/906797 -https://github.com/util-linux/util-linux/pull/2248 - -From 1bd85b64632280d6bf0e86b4ff29da8b19321c5f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= -Date: Sat, 20 May 2023 06:38:20 +0200 -Subject: [PATCH] libmount: check for availability of mount_setattr -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If mount_setattr is not available but needed fall back to the legacy -mount API. - -Fixes #2247 - -Signed-off-by: Thomas Weißschuh ---- a/libmount/src/hook_mount.c -+++ b/libmount/src/hook_mount.c -@@ -510,6 +510,15 @@ static inline int fsopen_is_supported(void) - return rc; - } - -+static inline int mount_setattr_is_supported(void) -+{ -+ int rc; -+ -+ errno = 0; -+ rc = mount_setattr(-1, NULL, 0, NULL, 0); -+ return !(rc == -1 && errno == ENOSYS); -+} -+ - /* - * open_tree() and fsopen() - */ -@@ -675,9 +684,14 @@ static int hook_prepare(struct libmnt_context *cxt, - /* call mount_setattr() */ - if (!rc - && cxt->helper == NULL -- && (set != 0 || clr != 0 || (flags & MS_REMOUNT))) -+ && (set != 0 || clr != 0 || (flags & MS_REMOUNT))) { -+ if (!mount_setattr_is_supported()) { -+ hookset_deinit(cxt, hs); -+ return 1; -+ } - rc = mnt_context_append_hook(cxt, hs, MNT_STAGE_MOUNT, NULL, - hook_set_vfsflags); -+ } - - /* call move_mount() to attach target */ - if (!rc -@@ -688,9 +702,14 @@ static int hook_prepare(struct libmnt_context *cxt, - hook_attach_target); - - /* set propagation (has to be attached to VFS) */ -- if (!rc && mnt_optlist_get_propagation(ol)) -+ if (!rc && mnt_optlist_get_propagation(ol)) { -+ if (!mount_setattr_is_supported()) { -+ hookset_deinit(cxt, hs); -+ return 1; -+ } - rc = mnt_context_append_hook(cxt, hs, MNT_STAGE_MOUNT_POST, NULL, - hook_set_propagation); -+ } - - DBG(HOOK, ul_debugobj(hs, "prepare mount done [rc=%d]", rc)); - return rc; -diff --git a/tests/expected/mount/fallback-mount_setattr b/tests/expected/mount/fallback-mount_setattr -new file mode 100644 -index 0000000000..3e18ebf09e ---- /dev/null -+++ b/tests/expected/mount/fallback-mount_setattr -@@ -0,0 +1 @@ -+private ---- a/tests/ts/mount/fallback -+++ b/tests/ts/mount/fallback -@@ -68,5 +68,21 @@ $TS_CMD_UMOUNT $MOUNTPOINT - ts_finalize_subtest - - -+ts_init_subtest "mount_setattr" -+"$TS_CMD_MOUNT" "$DEVICE" "$MOUNTPOINT" >> $TS_OUTPUT 2>> $TS_ERRLOG -+ts_is_mounted $DEVICE || ts_log "Cannot find $DEVICE in /proc/mounts" -+$TS_HELPER_ENOSYS -s mount_setattr -- \ -+ "$TS_CMD_MOUNT" -o remount,ro "$MOUNTPOINT" \ -+ >> $TS_OUTPUT 2>> $TS_ERRLOG -+$TS_CMD_FINDMNT --kernel --mountpoint "$MOUNTPOINT" --options "ro" &> /dev/null -+[ "$?" == "0" ] || ts_die "Cannot find read-only in $MOUNTPOINT in /proc/self/mountinfo" -+$TS_HELPER_ENOSYS -s mount_setattr -- \ -+ "$TS_CMD_MOUNT" --make-slave "$MOUNTPOINT" \ -+ >> $TS_OUTPUT 2>> $TS_ERRLOG -+$TS_CMD_FINDMNT -n --kernel --mountpoint "$MOUNTPOINT" -o PROPAGATION >> $TS_OUTPUT -+$TS_CMD_UMOUNT $MOUNTPOINT -+ts_finalize_subtest -+ -+ - ts_finalize - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch deleted file mode 100644 index 96dfb1f2c2..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-dont-call-hooks.patch +++ /dev/null @@ -1,79 +0,0 @@ -https://github.com/util-linux/util-linux/issues/2267 -https://github.com/storaged-project/libblockdev/pull/889 -https://bugzilla.redhat.com/show_bug.cgi?id=2189241 -https://github.com/util-linux/util-linux/commit/f94a7760ed7ce81389a6059f020238981627a70d - -From f94a7760ed7ce81389a6059f020238981627a70d Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Thu, 25 May 2023 11:48:24 +0200 -Subject: [PATCH] libmount: don't call hooks after mount. helper - -In case more filesystems are specified (or when libmount follows -/{etc,proc}/filesystems) then the library may try to use and -initialize the new API because for some filesystems, we need -exec(/sbin/mount.) and for another fsopen(). - -The hooks that use the API have to smart and detect that the mount -operation was done in external /sbin/mount. helper. And in this -case, the new API file descriptors must be ignored. - -The exception is propagation flags, mount(8) can set the flags after -exec(/sbin/mount.), for example, "mount -t ntfs --make-private". - -Fixes: https://github.com/util-linux/util-linux/issues/2267 -Signed-off-by: Karel Zak ---- a/libmount/src/context_mount.c -+++ b/libmount/src/context_mount.c -@@ -508,6 +508,8 @@ static int do_mount(struct libmnt_context *cxt, const char *try_type) - assert(cxt->fs); - assert((cxt->flags & MNT_FL_MOUNTFLAGS_MERGED)); - -+ mnt_context_reset_status(cxt); -+ - if (try_type) { - rc = mnt_context_prepare_helper(cxt, "mount", try_type); - if (rc) ---- a/libmount/src/hook_mount.c -+++ b/libmount/src/hook_mount.c -@@ -239,6 +239,10 @@ static int hook_create_mount(struct libmnt_context *cxt, - int rc = 0; - - assert(cxt); -+ -+ if (mnt_context_helper_executed(cxt)) -+ return 0; -+ - assert(cxt->fs); - - api = get_sysapi(cxt); -@@ -309,6 +313,9 @@ static int hook_reconfigure_mount(struct libmnt_context *cxt, - - assert(cxt); - -+ if (mnt_context_helper_executed(cxt)) -+ return 0; -+ - api = get_sysapi(cxt); - assert(api); - assert(api->fd_tree >= 0); -@@ -379,6 +386,9 @@ static int hook_set_vfsflags(struct libmnt_context *cxt, - uint64_t set = 0, clr = 0; - int rc = 0; - -+ if (mnt_context_helper_executed(cxt)) -+ return 0; -+ - DBG(HOOK, ul_debugobj(hs, "setting VFS flags")); - - ol = mnt_context_get_optlist(cxt); -@@ -471,6 +481,9 @@ static int hook_attach_target(struct libmnt_context *cxt, - const char *target; - int rc = 0; - -+ if (mnt_context_helper_executed(cxt)) -+ return 0; -+ - target = mnt_fs_get_target(cxt->fs); - if (!target) - return -EINVAL; - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch deleted file mode 100644 index e02d02c7f5..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-mount-parse-options-user.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugs.gentoo.org/906797#c4 -https://bugs.gentoo.org/906859 -https://github.com/util-linux/util-linux/issues/2238 -https://github.com/util-linux/util-linux/commit/c0267687fd7b41b00d523d1985182d7eb574effd - -From c0267687fd7b41b00d523d1985182d7eb574effd Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Mon, 22 May 2023 15:00:25 +0200 -Subject: [PATCH] libmount: fix options prepend/insert and merging - - * the order of the new options should not be changed - (for example prepend "a,b,c" to list with "d" has to generate "a,b,c,d", not "c,b,a,d") - - * make sure that options map is defined when merging options - -Fixes: https://github.com/util-linux/util-linux/issues/2238 -Signed-off-by: Karel Zak ---- a/libmount/src/optlist.c -+++ b/libmount/src/optlist.c -@@ -338,6 +338,7 @@ int mnt_optlist_merge_opts(struct libmnt_optlist *ls) - - /* remove inverted option */ - else if (opt->ent && x->ent -+ && opt->map == x->map - && opt->ent->id == x->ent->id - && (opt->ent->mask & MNT_INVERT - || x->ent->mask & MNT_INVERT)) -@@ -520,6 +521,8 @@ static int optlist_add_optstr(struct libmnt_optlist *ls, const char *optstr, - if (!opt) - return -ENOMEM; - opt->src = MNT_OPTSRC_STRING; -+ if (where) -+ where = &opt->opts; - } - - optlist_cleanup_cache(ls); -@@ -622,6 +625,8 @@ static int optlist_add_flags(struct libmnt_optlist *ls, unsigned long flags, - if (!opt) - return -ENOMEM; - opt->src = MNT_OPTSRC_FLAG; -+ if (where) -+ where = &opt->opts; - } - - optlist_cleanup_cache(ls); - diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch deleted file mode 100644 index 0b0ade4e18..0000000000 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/files/util-linux-2.39-tests-for-mount_setattr.patch +++ /dev/null @@ -1,13 +0,0 @@ -https://github.com/util-linux/util-linux/pull/2248 -https://bugs.gentoo.org/906797 - ---- a/tests/helpers/test_enosys.c -+++ b/tests/helpers/test_enosys.c -@@ -68,6 +68,7 @@ const struct syscall syscalls[] = { - { "move_mount", __NR_move_mount }, - { "open_tree", __NR_open_tree }, - { "fsopen", __NR_fsopen }, -+ { "mount_setattr", __NR_mount_setattr }, - }; - - int main(int argc, char **argv) diff --git a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39-r4.ebuild b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39.1.ebuild similarity index 98% rename from sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39-r4.ebuild rename to sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39.1.ebuild index ee28e8b217..52d3712ca2 100644 --- a/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39-r4.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-apps/util-linux/util-linux-2.39.1.ebuild @@ -94,13 +94,6 @@ fi REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} ) su? ( pam )" RESTRICT="!test? ( test )" -PATCHES=( - "${FILESDIR}/${P}-check-for-mount_setattr.patch" - "${FILESDIR}/${P}-tests-for-mount_setattr.patch" - "${FILESDIR}/${P}-mount-parse-options-user.patch" - "${FILESDIR}/${P}-mount-dont-call-hooks.patch" -) - pkg_pretend() { if use su && ! use suid ; then elog "su will be installed as suid despite USE=-suid (bug #832092)" @@ -212,6 +205,10 @@ multilib_src_configure() { --localstatedir="${EPREFIX}/var" --runstatedir="${EPREFIX}/run" --enable-fs-paths-extra="${EPREFIX}/usr/sbin:${EPREFIX}/bin:${EPREFIX}/usr/bin" + + # Temporary workaround until ~2.39.2. 2.39.x introduced a big rewrite. + # https://github.com/util-linux/util-linux/issues/2287#issuecomment-1576640373 + --disable-libmount-mountfd-support ) local myeconfargs=(