diff options
Diffstat (limited to '')
30 files changed, 145 insertions, 1442 deletions
diff --git a/debian/changelog b/debian/changelog index f03fb74..487660b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +util-linux (2.40.1-1) unstable; urgency=medium + + * New upstream release. + * Update Homepage: field. + * Drop upstream-applied patches. + * Apply new patches from upstream. (Closes: #1062208) + + -- Chris Hofstaedtler <zeha@debian.org> Tue, 14 May 2024 12:53:27 +0200 + util-linux (2.40-8) unstable; urgency=medium [ Helmut Grohne ] @@ -238,7 +247,8 @@ util-linux (2.39.3-2) unstable; urgency=medium [ Gioele Barabucci ] * Install manpages via dh_installman instead of dh_install - * d/util-linux-locales.install: Do not install manpages when building with <nodoc> + * d/util-linux-locales.install: Do not install manpages when building with + <nodoc> * d/control: Support <nodoc> build profile -- Chris Hofstaedtler <zeha@debian.org> Tue, 05 Dec 2023 04:22:29 +0100 @@ -395,8 +405,8 @@ util-linux (2.38.1-3) unstable; urgency=medium * Apply "rfkill: (man) List options for supported device types" (Closes: #1019007) - * Apply "lib/pty: Put master PTY into non-blocking mode and buffer its output to avoid deadlock" - (Closes: #1003095) + * Apply "lib/pty: Put master PTY into non-blocking mode and buffer its output + to avoid deadlock" (Closes: #1003095) * Gift /var/lib/libuuid to uuid-runtime. uuidd should be its only user, and this should avoid piuparts errors. * Remove pre-stable NEWS entries diff --git a/debian/control b/debian/control index b760554..6b7f45d 100644 --- a/debian/control +++ b/debian/control @@ -38,7 +38,7 @@ Standards-Version: 4.6.0 Rules-Requires-Root: no Vcs-Browser: https://salsa.debian.org/debian/util-linux Vcs-Git: https://salsa.debian.org/debian/util-linux.git -Homepage: https://www.kernel.org/pub/linux/utils/util-linux/ +Homepage: https://github.com/util-linux/util-linux Package: util-linux Architecture: any diff --git a/debian/patches/debian/lsfd-usrbin.patch b/debian/patches/debian/lsfd-usrbin.patch index af8fa8b..8cd3f98 100644 --- a/debian/patches/debian/lsfd-usrbin.patch +++ b/debian/patches/debian/lsfd-usrbin.patch @@ -7,7 +7,7 @@ Subject: Install lsfd into /usr/bin 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am -index 0720dda..562d114 100644 +index 6104c64..d48c5fb 100644 --- a/misc-utils/Makemodule.am +++ b/misc-utils/Makemodule.am @@ -274,7 +274,7 @@ hardlink_CFLAGS = $(AM_CFLAGS) diff --git a/debian/patches/debian/man-getopt-examples.patch b/debian/patches/debian/man-getopt-examples.patch index e335f69..e228353 100644 --- a/debian/patches/debian/man-getopt-examples.patch +++ b/debian/patches/debian/man-getopt-examples.patch @@ -9,7 +9,7 @@ Debian BTS #913049 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/misc-utils/getopt.1 b/misc-utils/getopt.1 -index fe9003e..571fe83 100644 +index a9fc54c..1a64a1a 100644 --- a/misc-utils/getopt.1 +++ b/misc-utils/getopt.1 @@ -155,7 +155,7 @@ In compatibility mode, leading \*(Aq\fB\-\fP\*(Aq and \*(Aq\fB+\fP\*(Aq characte diff --git a/debian/patches/debian/sensible-pager.patch b/debian/patches/debian/sensible-pager.patch index 56641f4..40b6bbf 100644 --- a/debian/patches/debian/sensible-pager.patch +++ b/debian/patches/debian/sensible-pager.patch @@ -8,10 +8,10 @@ Closes: #1014368 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pager.c b/lib/pager.c -index 98814b5..5f62a78 100644 +index db7a989..47f1233 100644 --- a/lib/pager.c +++ b/lib/pager.c -@@ -231,7 +231,7 @@ static void __setup_pager(void) +@@ -229,7 +229,7 @@ static void __setup_pager(void) return; if (!pager) diff --git a/debian/patches/series b/debian/patches/series index 3b2e3d2..333acab 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -4,26 +4,8 @@ debian/hardlink-tests-known-failed.patch debian/lsfd-usrbin.patch debian/sensible-pager.patch debian/tests-mark-lsfd-tests-failing-in-sbuild.patch -upstream/lsfd-add-LSFD_DEBUG-env-var-for-debugging.patch -upstream/tests-test_mkfds-sockdiag-verify-the-recived-message.patch debian/tests-mark-fadvise-drop-as-known-failing-on-buildds.patch -upstream/tests-lsfd-mkfds-multiplexing-skip-if-proc-pid-syscall-is.patch upstream/audit-arch.h-add-defines-for-m68k-sh.patch -upstream/Revert-lib-pager-Apply-pager-specific-fixes-only-when-nee.patch -upstream/libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch -upstream/pam_lastlog2-link-against-liblastlog.patch -upstream/libblkid-topology-ioctl-correctly-handle-kernel-types.patch -upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch -upstream/findmnt-revise-the-code-for-I-and-D-option.patch -upstream/Fix-misplaced-else-in-mnt_update_already_done.patch -upstream/lsns-report-with-warnx-if-a-namespace-related-ioctl-fails.patch -upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch -upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch -upstream/lslocks-remove-a-unused-local-variable.patch -upstream/libsmartcols-reset-wrap-after-calculation.patch -upstream/agetty-Don-t-override-TERM-passed-by-the-user.patch -upstream/findmnt-always-zero-terminate-SOURCES-data.patch -upstream/lsblk-simplify-SOURCES-code.patch -upstream/libmount-Fix-access-check-for-utab-in-context.patch -upstream/libmount-fix-comment-typo-for-mnt_fs_get_comment.patch -upstream/lsns-fix-netns-use.patch +upstream/Fix-ul_path_read_buffer.patch +upstream/libmount-utils-add-pidfs-to-pseudo-fs-list.patch +upstream/fsck-warn-if-fsck.-type-not-found-and-device-is-specified.patch diff --git a/debian/patches/upstream/Fix-misplaced-else-in-mnt_update_already_done.patch b/debian/patches/upstream/Fix-misplaced-else-in-mnt_update_already_done.patch deleted file mode 100644 index eca8867..0000000 --- a/debian/patches/upstream/Fix-misplaced-else-in-mnt_update_already_done.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Gavin Lloyd <gavinhungry@gmail.com> -Date: Tue, 9 Apr 2024 17:38:02 -0700 -Subject: Fix misplaced else in mnt_update_already_done - -See 477401f0de - -(cherry picked from commit 6b316e0c9f1feb61bef3bb14b1356be8fbefcc17) ---- - libmount/src/tab_update.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/libmount/src/tab_update.c b/libmount/src/tab_update.c -index 87512af..d44d190 100644 ---- a/libmount/src/tab_update.c -+++ b/libmount/src/tab_update.c -@@ -982,9 +982,9 @@ int mnt_update_already_done(struct libmnt_update *upd) - if (mnt_optstr_get_missing(fs->user_optstr, upd->fs->user_optstr, NULL) == 0) { - upd->missing_options = 1; - DBG(UPDATE, ul_debugobj(upd, " missing options detected")); -- } -- } else -- rc = 1; -+ } else -+ rc = 1; -+ } - - } else if (upd->target) { - /* umount */ diff --git a/debian/patches/upstream/Fix-ul_path_read_buffer.patch b/debian/patches/upstream/Fix-ul_path_read_buffer.patch new file mode 100644 index 0000000..c28b4db --- /dev/null +++ b/debian/patches/upstream/Fix-ul_path_read_buffer.patch @@ -0,0 +1,25 @@ +From: Daan De Meyer <daan.j.demeyer@gmail.com> +Date: Thu, 9 May 2024 12:32:31 +0200 +Subject: Fix ul_path_read_buffer() + +The current implementation cuts off the last character of the buffer +if there is no trailing newline. + +(cherry picked from commit 6273c12257973cbd3c59a710049ee8a8027bbbb1) +--- + lib/path.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/path.c b/lib/path.c +index 202f19a..f897599 100644 +--- a/lib/path.c ++++ b/lib/path.c +@@ -682,7 +682,7 @@ int ul_path_read_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char + if (*(buf + rc - 1) == '\n') + buf[--rc] = '\0'; + else +- buf[rc - 1] = '\0'; ++ buf[rc] = '\0'; + } + + return rc; diff --git a/debian/patches/upstream/Revert-lib-pager-Apply-pager-specific-fixes-only-when-nee.patch b/debian/patches/upstream/Revert-lib-pager-Apply-pager-specific-fixes-only-when-nee.patch deleted file mode 100644 index 6bd7244..0000000 --- a/debian/patches/upstream/Revert-lib-pager-Apply-pager-specific-fixes-only-when-nee.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Sat, 13 Apr 2024 09:42:39 +0200 -Subject: Revert "lib/pager: Apply pager-specific fixes only when needed" -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -Less is not always detectable, as it can be hidden behind symlinks or -wrapper as for example in a default Debian installation. -Also testing for the literal string "less" does not match full path -specifications like "/usr/bin/less". - -Instead always apply the fixes. - -This reverts commit c10ad975895372122f72c8d9da089b6ea69f778b. -Closes #2951 -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -Debian-Bug: 1068831 ---- - lib/pager.c | 12 +++--------- - 1 file changed, 3 insertions(+), 9 deletions(-) - -diff --git a/lib/pager.c b/lib/pager.c -index 5f62a78..47f1233 100644 ---- a/lib/pager.c -+++ b/lib/pager.c -@@ -85,9 +85,7 @@ static int start_command(struct child_process *cmd) - close(cmd->in); - } - -- if (cmd->preexec_cb) -- cmd->preexec_cb(); -- -+ cmd->preexec_cb(); - execvp(cmd->argv[0], (char *const*) cmd->argv); - errexec(cmd->argv[0]); - } -@@ -142,7 +140,7 @@ static int finish_command(struct child_process *cmd) - return wait_or_whine(cmd->pid); - } - --static void pager_preexec_less(void) -+static void pager_preexec(void) - { - /* - * Work around bug in "less" by not starting it until we -@@ -242,11 +240,7 @@ static void __setup_pager(void) - pager_argv[2] = pager; - pager_process.argv = pager_argv; - pager_process.in = -1; -- -- if (!strncmp(pager, "less", 4)) -- pager_process.preexec_cb = pager_preexec_less; -- else -- pager_process.preexec_cb = NULL; -+ pager_process.preexec_cb = pager_preexec; - - if (start_command(&pager_process)) - return; diff --git a/debian/patches/upstream/agetty-Don-t-override-TERM-passed-by-the-user.patch b/debian/patches/upstream/agetty-Don-t-override-TERM-passed-by-the-user.patch deleted file mode 100644 index 11df871..0000000 --- a/debian/patches/upstream/agetty-Don-t-override-TERM-passed-by-the-user.patch +++ /dev/null @@ -1,31 +0,0 @@ -From: Daan De Meyer <daan.j.demeyer@gmail.com> -Date: Fri, 19 Apr 2024 20:07:47 +0200 -Subject: agetty: Don't override TERM passed by the user - -Before 4869b259d68f65ea88df625ce8df9c0177d55a01, any TERM passed -on the agetty command line would be used instead of the default TERM. -After 4869b259d68f65ea88df625ce8df9c0177d55a01, the default TERM is -used unconditionally. - -Fix the regression by checking if the user passed a custom TERM. - -Fixes: 4869b259d68f65ea88df625ce8df9c0177d55a01 -(cherry picked from commit af354e92111769d57e43eb4f1825c0d99c894ddb) ---- - term-utils/agetty.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/term-utils/agetty.c b/term-utils/agetty.c -index 0fc6f15..0b9eb8b 100644 ---- a/term-utils/agetty.c -+++ b/term-utils/agetty.c -@@ -1196,7 +1196,8 @@ static void open_tty(const char *tty, struct termios *tp, struct options *op) - #endif - } - -- op->term = get_terminal_default_type(op->tty, !(op->flags & F_VCONSOLE)); -+ if (!op->term) -+ op->term = get_terminal_default_type(op->tty, !(op->flags & F_VCONSOLE)); - if (!op->term) - log_err(_("failed to allocate memory: %m")); - diff --git a/debian/patches/upstream/findmnt-always-zero-terminate-SOURCES-data.patch b/debian/patches/upstream/findmnt-always-zero-terminate-SOURCES-data.patch deleted file mode 100644 index b173277..0000000 --- a/debian/patches/upstream/findmnt-always-zero-terminate-SOURCES-data.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Sun, 21 Apr 2024 20:00:31 +0200 -Subject: findmnt: always zero-terminate SOURCES data -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -libsmartcols expects it's data fields to be zero terminated. -See the call to strlen() in scols_column_greatest_wrap(). -ul_buffer however does not guarantee that termination, -ul_buffer_append_strings() discard the zero-termination. - -Always zero-terminate in get_data_col_sources() and drop the now -unnecessary variable "i". - -Closes: https://github.com/util-linux/util-linux/issues/2980 -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -(cherry picked from commit 6594679e9af805075c282da35b1b2a8d767e403b) ---- - misc-utils/findmnt.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c -index 2e4d59e..f40b137 100644 ---- a/misc-utils/findmnt.c -+++ b/misc-utils/findmnt.c -@@ -552,7 +552,6 @@ static char *get_vfs_attr(struct libmnt_fs *fs, int sizetype) - static char *get_data_col_sources(struct libmnt_fs *fs, int evaluate, size_t *datasiz) - { - const char *tag = NULL, *p = NULL; -- int i = 0; - const char *device = NULL; - char *val = NULL; - blkid_dev_iterate iter; -@@ -602,10 +601,8 @@ static char *get_data_col_sources(struct libmnt_fs *fs, int evaluate, size_t *da - dev = blkid_verify(blk_cache, dev); - if (!dev) - continue; -- if (i != 0) -- ul_buffer_append_data(&buf, "\0", 1); - ul_buffer_append_string(&buf, blkid_dev_devname(dev)); -- i++; -+ ul_buffer_append_data(&buf, "\0", 1); - } - blkid_dev_iterate_end(iter); - free(val); diff --git a/debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch b/debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch deleted file mode 100644 index 7ec4aaf..0000000 --- a/debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch +++ /dev/null @@ -1,160 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Fri, 5 Apr 2024 22:40:36 +0900 -Subject: findmnt: revise the code for -I and -D option - -Fixes #2913. - -3dd79293b5b655da9d913dedd8facb08959a7826 added -I option. -However, the code used bit flags (FL_DF and FL_DF_INODES) wrongly; -the code broke the output of -D option. - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> -(cherry picked from commit aa0c45e8686df509c169121473d2cfb4fe18c3ea) ---- - misc-utils/findmnt.c | 28 ++++++++---------- - misc-utils/findmnt.h | 2 +- - tests/expected/findmnt/df-options | 4 +++ - tests/ts/findmnt/df-options | 62 +++++++++++++++++++++++++++++++++++++++ - 4 files changed, 80 insertions(+), 16 deletions(-) - create mode 100644 tests/expected/findmnt/df-options - create mode 100755 tests/ts/findmnt/df-options - -diff --git a/misc-utils/findmnt.c b/misc-utils/findmnt.c -index cc397da..2e4d59e 100644 ---- a/misc-utils/findmnt.c -+++ b/misc-utils/findmnt.c -@@ -1636,7 +1636,7 @@ int main(int argc, char *argv[]) - break; - case 'I': - flags &= ~FL_TREE; -- flags |= FL_DF_INODES; -+ flags |= (FL_DF_INODES | FL_DF); - break; - case 'i': - flags |= FL_INVERT; -@@ -1775,22 +1775,20 @@ int main(int argc, char *argv[]) - if (collist) - list_colunms(); /* print end exit */ - -- if (!ncolumns && (flags & FL_DF_INODES)) { -+ if (!ncolumns && (flags & FL_DF)) { - add_column(columns, ncolumns++, COL_SOURCE); - add_column(columns, ncolumns++, COL_FSTYPE); -- add_column(columns, ncolumns++, COL_INO_TOTAL); -- add_column(columns, ncolumns++, COL_INO_USED); -- add_column(columns, ncolumns++, COL_INO_AVAIL); -- add_column(columns, ncolumns++, COL_INO_USEPERC); -- add_column(columns, ncolumns++, COL_TARGET); -- } -- else if (!ncolumns && (flags & FL_DF)) { -- add_column(columns, ncolumns++, COL_SOURCE); -- add_column(columns, ncolumns++, COL_FSTYPE); -- add_column(columns, ncolumns++, COL_SIZE); -- add_column(columns, ncolumns++, COL_USED); -- add_column(columns, ncolumns++, COL_AVAIL); -- add_column(columns, ncolumns++, COL_USEPERC); -+ if (flags & FL_DF_INODES) { -+ add_column(columns, ncolumns++, COL_INO_TOTAL); -+ add_column(columns, ncolumns++, COL_INO_USED); -+ add_column(columns, ncolumns++, COL_INO_AVAIL); -+ add_column(columns, ncolumns++, COL_INO_USEPERC); -+ } else { -+ add_column(columns, ncolumns++, COL_SIZE); -+ add_column(columns, ncolumns++, COL_USED); -+ add_column(columns, ncolumns++, COL_AVAIL); -+ add_column(columns, ncolumns++, COL_USEPERC); -+ } - add_column(columns, ncolumns++, COL_TARGET); - } - -diff --git a/misc-utils/findmnt.h b/misc-utils/findmnt.h -index 5c69450..85ab68d 100644 ---- a/misc-utils/findmnt.h -+++ b/misc-utils/findmnt.h -@@ -24,7 +24,7 @@ enum { - FL_SHADOWED = (1 << 20), - FL_DELETED = (1 << 21), - FL_SHELLVAR = (1 << 22), -- FL_DF_INODES = (1 << 23) | FL_DF, -+ FL_DF_INODES = (1 << 23), - - /* basic table settings */ - FL_ASCII = (1 << 25), -diff --git a/tests/expected/findmnt/df-options b/tests/expected/findmnt/df-options -new file mode 100644 -index 0000000..3f0f509 ---- /dev/null -+++ b/tests/expected/findmnt/df-options -@@ -0,0 +1,4 @@ -+-D: OK -+-I: OK -+--df: OK -+--dfi: OK -diff --git a/tests/ts/findmnt/df-options b/tests/ts/findmnt/df-options -new file mode 100755 -index 0000000..58208b9 ---- /dev/null -+++ b/tests/ts/findmnt/df-options -@@ -0,0 +1,62 @@ -+#!/bin/bash -+ -+# This file is part of util-linux. -+# -+# This file is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 2 of the License, or -+# (at your option) any later version. -+# -+# This file is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+ -+TS_TOPDIR="${0%/*}/../.." -+TS_DESC="the columns enabled with -D and -I options" -+ -+. "$TS_TOPDIR"/functions.sh -+ts_init "$*" -+ -+ts_check_test_command "$TS_CMD_FINDMNT" -+ts_check_prog "head" -+ -+ts_cd "$TS_OUTDIR" -+ -+D_expectation="SOURCE FSTYPE SIZE USED AVAIL USE% TARGET" -+I_expectation="SOURCE FSTYPE INO.TOTAL INO.USED INO.AVAIL INO.USE% TARGET" -+{ -+ if [[ $($TS_CMD_FINDMNT --raw -D | head -1) == "$D_expectation" ]]; then -+ echo "-D: OK" -+ else -+ echo "-D: ERROR" -+ $TS_CMD_FINDMNT --raw -D -+ echo $? -+ fi -+ -+ if [[ $($TS_CMD_FINDMNT --raw -I | head -1) == "$I_expectation" ]]; then -+ echo "-I: OK" -+ else -+ echo "-I: ERROR" -+ $TS_CMD_FINDMNT --raw -I -+ echo $? -+ fi -+ -+ if [[ $($TS_CMD_FINDMNT --raw --df | head -1) == "$D_expectation" ]]; then -+ echo "--df: OK" -+ else -+ echo "--df: ERROR" -+ $TS_CMD_FINDMNT --raw --df -+ echo $? -+ fi -+ -+ if [[ $($TS_CMD_FINDMNT --raw --dfi | head -1) == "$I_expectation" ]]; then -+ echo "--dfi: OK" -+ else -+ echo "--dfi: ERROR" -+ $TS_CMD_FINDMNT --raw --dfi -+ echo $? -+ fi -+} >> "$TS_OUTPUT" 2>> "$TS_ERRLOG" -+ -+ts_finalize diff --git a/debian/patches/upstream/fsck-warn-if-fsck.-type-not-found-and-device-is-specified.patch b/debian/patches/upstream/fsck-warn-if-fsck.-type-not-found-and-device-is-specified.patch new file mode 100644 index 0000000..2abdfae --- /dev/null +++ b/debian/patches/upstream/fsck-warn-if-fsck.-type-not-found-and-device-is-specified.patch @@ -0,0 +1,78 @@ +From: Karel Zak <kzak@redhat.com> +Date: Thu, 8 Feb 2024 12:42:51 +0100 +Subject: fsck: warn if fsck.<type> not found and device is specified +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +The fsck(8) command prints an error for certain 'required' +filesystems, such as extN, if the corresponding fsck.<type> helper is +not found. However, for other filesystems, it silently ignores the +device. While this behavior is acceptable for the -A option, if a user +explicitly specifies the device on the command line, it is probably a +good idea to be more verbose and issue a warning that the device will +be ignored. The warning is enabled only for interactive mode (only one +device specified or -s). + +Note that some filesystems do not have an fsck utility, so caution is +needed when issuing such warnings to prevent the generation of a large +number of unwanted entries in system logs, etc." + +Reported-by: наб <nabijaczleweli@nabijaczleweli.xyz> +Signed-off-by: Karel Zak <kzak@redhat.com> + +Closes: #1062208 +--- + disk-utils/fsck.c | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/disk-utils/fsck.c b/disk-utils/fsck.c +index c63ce1c..7dc12e6 100644 +--- a/disk-utils/fsck.c ++++ b/disk-utils/fsck.c +@@ -902,7 +902,7 @@ static int wait_many(int flags) + * If the type isn't specified by the user, then use either the type + * specified in /etc/fstab, or DEFAULT_FSTYPE. + */ +-static int fsck_device(struct libmnt_fs *fs, int interactive) ++static int fsck_device(struct libmnt_fs *fs, int interactive, int warn_notfound) + { + char *progname, *progpath; + const char *type; +@@ -929,6 +929,9 @@ static int fsck_device(struct libmnt_fs *fs, int interactive) + retval = ENOENT; + goto err; + } ++ if (warn_notfound) ++ warnx(_("fsck.%s not found; ignore %s"), type, ++ fs_get_device(fs)); + return 0; + } + +@@ -1287,7 +1290,7 @@ static int check_all(void) + if (!skip_root && + !fs_is_done(fs) && + !(ignore_mounted && is_mounted(fs))) { +- status |= fsck_device(fs, 1); ++ status |= fsck_device(fs, 1, 0); + status |= wait_many(FLAG_WAIT_ALL); + if (status > FSCK_EX_NONDESTRUCT) { + mnt_free_iter(itr); +@@ -1350,7 +1353,7 @@ static int check_all(void) + /* + * Spawn off the fsck process + */ +- status |= fsck_device(fs, serialize); ++ status |= fsck_device(fs, serialize, 0); + fs_set_done(fs); + + /* +@@ -1688,7 +1691,7 @@ int main(int argc, char *argv[]) + continue; + if (ignore_mounted && is_mounted(fs)) + continue; +- status |= fsck_device(fs, interactive); ++ status |= fsck_device(fs, interactive, interactive); + if (serialize || + (max_running && (num_running >= max_running))) { + struct fsck_instance *inst; diff --git a/debian/patches/upstream/libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch b/debian/patches/upstream/libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch deleted file mode 100644 index 0e6490c..0000000 --- a/debian/patches/upstream/libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Karel Zak <kzak@redhat.com> -Date: Mon, 1 Apr 2024 12:14:50 +0200 -Subject: libblkid: Fix segfault when blkid.conf doesn't exist - -* Move 'line' and 'uevent' to the beginning of the LIBECONF code. -* Remove unwanted space between function name and arguments. -* Check for 'line' pointer before dereferencing. - -References: https://github.com/util-linux/util-linux/pull/2883 -Signed-off-by: Karel Zak <kzak@redhat.com> -(cherry picked from commit 7e357241b413a01c37b0b4d064bc0a47e3259361) ---- - libblkid/src/config.c | 14 +++++++------- - 1 file changed, 7 insertions(+), 7 deletions(-) - -diff --git a/libblkid/src/config.c b/libblkid/src/config.c -index 7b8b04f..66c1864 100644 ---- a/libblkid/src/config.c -+++ b/libblkid/src/config.c -@@ -153,6 +153,8 @@ struct blkid_config *blkid_read_config(const char *filename) - #else /* !HAVE_LIBECONF */ - - static econf_file *file = NULL; -+ char *line = NULL; -+ bool uevent = false; - econf_err error; - - if (filename) { -@@ -187,7 +189,6 @@ struct blkid_config *blkid_read_config(const char *filename) - } - } - -- bool uevent = false; - if ((error = econf_getBoolValue(file, NULL, "SEND_UEVENT", &uevent))) { - if (error != ECONF_NOKEY) { - DBG(CONFIG, ul_debug("couldn't fetch SEND_UEVENT corrently: %s", econf_errString(error))); -@@ -209,7 +210,6 @@ struct blkid_config *blkid_read_config(const char *filename) - } - } - -- char *line = NULL; - if ((error = econf_getStringValue(file, NULL, "EVALUATE", &line))) { - conf->nevals = 0; - if (error != ECONF_NOKEY) { -@@ -219,7 +219,7 @@ struct blkid_config *blkid_read_config(const char *filename) - DBG(CONFIG, ul_debug("key CACHE_FILE not found, using built-in default ")); - } - } else { -- if (*line && parse_evaluate(conf, line) == -1) -+ if (line && *line && parse_evaluate(conf, line) == -1) - goto err; - } - -@@ -238,8 +238,8 @@ dflt: - if (f) - fclose(f); - #else -- econf_free (file); -- free (line); -+ econf_free(file); -+ free(line); - #endif - return conf; - err: -@@ -248,8 +248,8 @@ err: - #ifndef HAVE_LIBECONF - fclose(f); - #else -- econf_free (file); -- free (line); -+ econf_free(file); -+ free(line); - #endif - return NULL; - } diff --git a/debian/patches/upstream/libblkid-topology-ioctl-correctly-handle-kernel-types.patch b/debian/patches/upstream/libblkid-topology-ioctl-correctly-handle-kernel-types.patch deleted file mode 100644 index 8f28f7f..0000000 --- a/debian/patches/upstream/libblkid-topology-ioctl-correctly-handle-kernel-types.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Tue, 2 Apr 2024 18:55:29 +0200 -Subject: libblkid: topology/ioctl: correctly handle kernel types -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -Commit 5d71d711d07a ("libblkid: topolicy/ioctl: use union for multiple data types") -incorrectly assumed that set_ulong and set_int refer to the type -returned by the kernel. Instead the different function pointer names -refer to the types of the function pointers. -However all ioctls, except for the later added BLKGETDISKSEQ, return -32bit integers. -This made libblkid also interpret the upper 32bits too, leading to -garbage values. - -Introduce a new member 'kernel_size' to also handle the 64bit -BLKGETDISKSEQ. - -Drop data.ul as it is no actually used. - -Closes #2904 -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -(cherry picked from commit a10081a52c48a5232db30d8e0a7a7570cc8163ae) ---- - libblkid/src/topology/ioctl.c | 29 +++++++++++++++++++---------- - 1 file changed, 19 insertions(+), 10 deletions(-) - -diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c -index 3560a2f..4be20e8 100644 ---- a/libblkid/src/topology/ioctl.c -+++ b/libblkid/src/topology/ioctl.c -@@ -24,6 +24,7 @@ - static const struct topology_val { - - long ioc; -+ size_t kernel_size; - - /* functions to set probing result */ - int (*set_ulong)(blkid_probe, unsigned long); -@@ -31,11 +32,16 @@ static const struct topology_val { - int (*set_u64)(blkid_probe, uint64_t); - - } topology_vals[] = { -- { BLKALIGNOFF, NULL, blkid_topology_set_alignment_offset }, -- { BLKIOMIN, blkid_topology_set_minimum_io_size }, -- { BLKIOOPT, blkid_topology_set_optimal_io_size }, -- { BLKPBSZGET, blkid_topology_set_physical_sector_size }, -- { BLKGETDISKSEQ, .set_u64 = blkid_topology_set_diskseq }, -+ { BLKALIGNOFF, sizeof(int), -+ .set_int = blkid_topology_set_alignment_offset }, -+ { BLKIOMIN, sizeof(int), -+ .set_ulong = blkid_topology_set_minimum_io_size }, -+ { BLKIOOPT, sizeof(int), -+ .set_ulong = blkid_topology_set_optimal_io_size }, -+ { BLKPBSZGET, sizeof(int), -+ .set_ulong = blkid_topology_set_physical_sector_size }, -+ { BLKGETDISKSEQ, sizeof(uint64_t), -+ .set_u64 = blkid_topology_set_diskseq }, - /* we read BLKSSZGET in topology.c */ - }; - -@@ -48,18 +54,21 @@ static int probe_ioctl_tp(blkid_probe pr, - const struct topology_val *val = &topology_vals[i]; - int rc = 1; - union { -- unsigned long ul; -- int i; -+ int s32; - uint64_t u64; -- } data; -+ } data = { 0 }; - - if (ioctl(pr->fd, val->ioc, &data) == -1) - goto nothing; - -+ /* Convert from kernel to libblkid type */ -+ if (val->kernel_size == 4) -+ data.u64 = data.s32; -+ - if (val->set_int) -- rc = val->set_int(pr, data.i); -+ rc = val->set_int(pr, data.u64); - else if (val->set_ulong) -- rc = val->set_ulong(pr, data.ul); -+ rc = val->set_ulong(pr, data.u64); - else - rc = val->set_u64(pr, data.u64); - diff --git a/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch b/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch deleted file mode 100644 index 7dac8b2..0000000 --- a/debian/patches/upstream/libblkid-topology-ioctl-simplify-ioctl-handling.patch +++ /dev/null @@ -1,117 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Thu, 4 Apr 2024 07:24:58 +0200 -Subject: libblkid: topology/ioctl: simplify ioctl handling -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -Coverity complains about the data copy within the union. -Instead unroll the loop which is less code and easier to follow. - -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -(cherry picked from commit 2ab95860db0b7423906911b8b9e9f231332c2c11) ---- - libblkid/src/topology/ioctl.c | 85 ++++++++++++++----------------------------- - 1 file changed, 27 insertions(+), 58 deletions(-) - -diff --git a/libblkid/src/topology/ioctl.c b/libblkid/src/topology/ioctl.c -index 4be20e8..7b15c9e 100644 ---- a/libblkid/src/topology/ioctl.c -+++ b/libblkid/src/topology/ioctl.c -@@ -18,69 +18,38 @@ - - #include "topology.h" - --/* -- * ioctl topology values -- */ --static const struct topology_val { -- -- long ioc; -- size_t kernel_size; -- -- /* functions to set probing result */ -- int (*set_ulong)(blkid_probe, unsigned long); -- int (*set_int)(blkid_probe, int); -- int (*set_u64)(blkid_probe, uint64_t); -- --} topology_vals[] = { -- { BLKALIGNOFF, sizeof(int), -- .set_int = blkid_topology_set_alignment_offset }, -- { BLKIOMIN, sizeof(int), -- .set_ulong = blkid_topology_set_minimum_io_size }, -- { BLKIOOPT, sizeof(int), -- .set_ulong = blkid_topology_set_optimal_io_size }, -- { BLKPBSZGET, sizeof(int), -- .set_ulong = blkid_topology_set_physical_sector_size }, -- { BLKGETDISKSEQ, sizeof(uint64_t), -- .set_u64 = blkid_topology_set_diskseq }, -- /* we read BLKSSZGET in topology.c */ --}; -- - static int probe_ioctl_tp(blkid_probe pr, - const struct blkid_idmag *mag __attribute__((__unused__))) - { -- size_t i; -- -- for (i = 0; i < ARRAY_SIZE(topology_vals); i++) { -- const struct topology_val *val = &topology_vals[i]; -- int rc = 1; -- union { -- int s32; -- uint64_t u64; -- } data = { 0 }; -- -- if (ioctl(pr->fd, val->ioc, &data) == -1) -- goto nothing; -- -- /* Convert from kernel to libblkid type */ -- if (val->kernel_size == 4) -- data.u64 = data.s32; -- -- if (val->set_int) -- rc = val->set_int(pr, data.u64); -- else if (val->set_ulong) -- rc = val->set_ulong(pr, data.u64); -- else -- rc = val->set_u64(pr, data.u64); -- -- if (rc) -- goto err; -- } -+ uint64_t u64; -+ int s32; -+ -+ if (ioctl(pr->fd, BLKALIGNOFF, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_alignment_offset(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKIOMIN, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_minimum_io_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKIOOPT, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_optimal_io_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKPBSZGET, &s32) == -1) -+ return 1; -+ if (blkid_topology_set_physical_sector_size(pr, s32)) -+ return -1; -+ -+ if (ioctl(pr->fd, BLKGETDISKSEQ, &u64) == -1) -+ return 1; -+ if (blkid_topology_set_physical_sector_size(pr, u64)) -+ return -1; - - return 0; --nothing: -- return 1; --err: -- return -1; - } - - const struct blkid_idinfo ioctl_tp_idinfo = diff --git a/debian/patches/upstream/libmount-Fix-access-check-for-utab-in-context.patch b/debian/patches/upstream/libmount-Fix-access-check-for-utab-in-context.patch deleted file mode 100644 index a305ec8..0000000 --- a/debian/patches/upstream/libmount-Fix-access-check-for-utab-in-context.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Karel Zak <kzak@redhat.com> -Date: Mon, 22 Apr 2024 13:09:04 +0200 -Subject: libmount: Fix access check for utab in context - -The function mnt_has_regular_utab() properly detects that the utab is -not writable, but this is ignored by the high-level context API. As a -result, the library later attempts to update the file and ends up with -a warning in mount(8): - - $ mkdir sys - $ unshare --map-root-user --mount - $ mount --rbind /sys sys - $ umount --lazy sys; echo $? - umount: /home/user/sys: filesystem was unmounted, but failed to update userspace mount table. - 16 - -In this case, the utab should be ignored. - -Fixes: https://github.com/util-linux/util-linux/issues/2981 -Signed-off-by: Karel Zak <kzak@redhat.com> -(cherry picked from commit 97f7bfc0fdf74b6a6e220ba9d2f620386e660b29) ---- - libmount/src/context.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/libmount/src/context.c b/libmount/src/context.c -index 952287a..5206c1d 100644 ---- a/libmount/src/context.c -+++ b/libmount/src/context.c -@@ -367,8 +367,7 @@ const char *mnt_context_get_writable_tabpath(struct libmnt_context *cxt) - { - assert(cxt); - -- context_init_paths(cxt, 1); -- return cxt->utab_path; -+ return mnt_context_utab_writable(cxt) ? cxt->utab_path : NULL; - } - - diff --git a/debian/patches/upstream/libmount-fix-comment-typo-for-mnt_fs_get_comment.patch b/debian/patches/upstream/libmount-fix-comment-typo-for-mnt_fs_get_comment.patch deleted file mode 100644 index 27f8867..0000000 --- a/debian/patches/upstream/libmount-fix-comment-typo-for-mnt_fs_get_comment.patch +++ /dev/null @@ -1,23 +0,0 @@ -From: Tianjia Zhang <tianjia.zhang@linux.alibaba.com> -Date: Mon, 22 Apr 2024 14:01:25 +0800 -Subject: libmount: fix comment typo for mnt_fs_get_comment() - -Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com> -(cherry picked from commit c630dbc38f7cd1f838e65e2c43d8375bce1ec20f) ---- - libmount/src/fs.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libmount/src/fs.c b/libmount/src/fs.c -index 79e32a1..26f2c69 100644 ---- a/libmount/src/fs.c -+++ b/libmount/src/fs.c -@@ -1454,7 +1454,7 @@ int mnt_fs_get_attribute(struct libmnt_fs *fs, const char *name, - * mnt_fs_get_comment: - * @fs: fstab/mtab/mountinfo entry pointer - * -- * Returns: 0 on success, 1 when not found the @name or negative number in case of error. -+ * Returns: comment string - */ - const char *mnt_fs_get_comment(struct libmnt_fs *fs) - { diff --git a/debian/patches/upstream/libmount-utils-add-pidfs-to-pseudo-fs-list.patch b/debian/patches/upstream/libmount-utils-add-pidfs-to-pseudo-fs-list.patch new file mode 100644 index 0000000..9d0920a --- /dev/null +++ b/debian/patches/upstream/libmount-utils-add-pidfs-to-pseudo-fs-list.patch @@ -0,0 +1,21 @@ +From: Mike Yuan <me@yhndnzj.com> +Date: Sat, 11 May 2024 01:11:28 +0800 +Subject: libmount/utils: add pidfs to pseudo fs list + +(cherry picked from commit 62cf52f81d5baaba2cfe6dfe00aa4975ebd55d92) +--- + libmount/src/utils.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libmount/src/utils.c b/libmount/src/utils.c +index a2f8ea0..94a877c 100644 +--- a/libmount/src/utils.c ++++ b/libmount/src/utils.c +@@ -340,6 +340,7 @@ int mnt_fstype_is_pseudofs(const char *type) + "none", + "nsfs", + "overlay", ++ "pidfs", + "pipefs", + "proc", + "pstore", diff --git a/debian/patches/upstream/libsmartcols-reset-wrap-after-calculation.patch b/debian/patches/upstream/libsmartcols-reset-wrap-after-calculation.patch deleted file mode 100644 index 0f27560..0000000 --- a/debian/patches/upstream/libsmartcols-reset-wrap-after-calculation.patch +++ /dev/null @@ -1,88 +0,0 @@ -From: Karel Zak <kzak@redhat.com> -Date: Tue, 16 Apr 2024 10:49:31 +0200 -Subject: libsmartcols: reset wrap after calculation - -Fixes: https://github.com/util-linux/util-linux/issues/2956 -Signed-off-by: Karel Zak <kzak@redhat.com> -(cherry picked from commit 62f64717ec134b10c5a670403c2d8c43b608e671) ---- - libsmartcols/src/calculate.c | 7 +++++-- - libsmartcols/src/print.c | 20 +++++++++++++------- - 2 files changed, 18 insertions(+), 9 deletions(-) - -diff --git a/libsmartcols/src/calculate.c b/libsmartcols/src/calculate.c -index 84198da..deabb07 100644 ---- a/libsmartcols/src/calculate.c -+++ b/libsmartcols/src/calculate.c -@@ -413,10 +413,8 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) - size_t colsepsz; - int sorted = 0; - -- - DBG(TAB, ul_debugobj(tb, "-----calculate-(termwidth=%zu)-----", tb->termwidth)); - tb->is_dummy_print = 1; -- - colsepsz = scols_table_is_noencoding(tb) ? - mbs_width(colsep(tb)) : - mbs_safe_width(colsep(tb)); -@@ -430,6 +428,11 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) - while (scols_table_next_column(tb, &itr, &cl) == 0) { - int is_last; - -+ memset(&cl->wstat, 0, sizeof(cl->wstat)); -+ cl->width = 0; -+ cl->width_treeart = 0; -+ scols_column_reset_wrap(cl); -+ - if (scols_column_is_hidden(cl)) - continue; - -diff --git a/libsmartcols/src/print.c b/libsmartcols/src/print.c -index 88ab5a2..ab279e3 100644 ---- a/libsmartcols/src/print.c -+++ b/libsmartcols/src/print.c -@@ -764,11 +764,11 @@ notree: - } - } - -+done: - /* reset wrapping after greatest chunk calculation */ - if (cal && scols_column_is_wrap(cl)) - scols_column_reset_wrap(cl); - --done: - DBG(COL, ul_debugobj(cl, "__cursor_to_buffer rc=%d", rc)); - return rc; - } -@@ -802,8 +802,12 @@ static int print_line(struct libscols_table *tb, - rc = __cursor_to_buffer(tb, buf, 0); - if (!rc) - rc = print_data(tb, buf); -- if (!rc && scols_column_has_pending_wrap(cl)) -- pending = 1; -+ if (!rc) { -+ if (scols_column_has_pending_wrap(cl)) -+ pending = 1; -+ else -+ scols_column_reset_wrap(cl); -+ } - scols_table_reset_cursor(tb); - } - fputs_color_line_close(tb); -@@ -827,10 +831,12 @@ static int print_line(struct libscols_table *tb, - rc = __cursor_to_buffer(tb, buf, 0); - if (!rc) - rc = print_pending_data(tb, buf); -- if (!rc && scols_column_has_pending_wrap(cl)) -- pending = 1; -- if (!rc && !pending) -- scols_column_reset_wrap(cl); -+ if (!rc) { -+ if (scols_column_has_pending_wrap(cl)) -+ pending = 1; -+ else -+ scols_column_reset_wrap(cl); -+ } - } else - print_empty_cell(tb, cl, ln, NULL, ul_buffer_get_bufsiz(buf)); - scols_table_reset_cursor(tb); diff --git a/debian/patches/upstream/lsblk-simplify-SOURCES-code.patch b/debian/patches/upstream/lsblk-simplify-SOURCES-code.patch deleted file mode 100644 index e7cde87..0000000 --- a/debian/patches/upstream/lsblk-simplify-SOURCES-code.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Karel Zak <kzak@redhat.com> -Date: Mon, 22 Apr 2024 11:51:56 +0200 -Subject: lsblk: simplify SOURCES code - -This complicated implementation originated from an early version of -zero-separated items for libsmartcols. It is no longer necessary. - -References: https://github.com/util-linux/util-linux/pull/2983 -Signed-off-by: Karel Zak <kzak@redhat.com> -(cherry picked from commit af4c7dac191abadc33aae75916583c890cd2ebc3) ---- - libsmartcols/src/column.c | 2 +- - misc-utils/lsblk.c | 8 +++----- - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/libsmartcols/src/column.c b/libsmartcols/src/column.c -index 5700bac..586a485 100644 ---- a/libsmartcols/src/column.c -+++ b/libsmartcols/src/column.c -@@ -470,7 +470,7 @@ char *scols_wrapnl_nextchunk(const struct libscols_column *cl __attribute__((unu - * This is built-in function for scols_column_set_wrapfunc(). This function - * walk string separated by \0. - * -- * For example for data "AAA\0BBB\0CCC" the next chunk is "BBB". -+ * For example for data "AAA\0BBB\0CCC\0" the next chunk is "BBB". - * - * Returns: next chunk - * -diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c -index 30bd2ed..15d9b19 100644 ---- a/misc-utils/lsblk.c -+++ b/misc-utils/lsblk.c -@@ -935,8 +935,7 @@ static char *device_get_data( - ul_buffer_append_string(&buf, "[SWAP]"); - else - ul_buffer_append_string(&buf, mnt_fs_get_target(fs)); -- if (i + 1 < n) -- ul_buffer_append_data(&buf, "\0", 1); -+ ul_buffer_append_data(&buf, "\0", 1); - } - str = ul_buffer_get_data(&buf, datasiz, NULL); - break; -@@ -953,8 +952,7 @@ static char *device_get_data( - if (mnt_fs_is_swaparea(fs)) - continue; - ul_buffer_append_string(&buf, root ? root : "/"); -- if (i + 1 < n) -- ul_buffer_append_data(&buf, "\0", 1); -+ ul_buffer_append_data(&buf, "\0", 1); - } - str = ul_buffer_get_data(&buf, datasiz, NULL); - break; -@@ -1276,7 +1274,7 @@ static void device_fill_scols_cell(struct lsblk_device *dev, - ce = scols_line_get_cell(ln, colnum); - if (!ce) - return; -- rc = datasiz ? scols_cell_refer_memory(ce, data, datasiz + 1) -+ rc = datasiz ? scols_cell_refer_memory(ce, data, datasiz) - : scols_cell_refer_data(ce, data); - if (rc) - err(EXIT_FAILURE, _("failed to add output data")); diff --git a/debian/patches/upstream/lsfd-add-LSFD_DEBUG-env-var-for-debugging.patch b/debian/patches/upstream/lsfd-add-LSFD_DEBUG-env-var-for-debugging.patch deleted file mode 100644 index 32a1687..0000000 --- a/debian/patches/upstream/lsfd-add-LSFD_DEBUG-env-var-for-debugging.patch +++ /dev/null @@ -1,231 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Sat, 30 Mar 2024 18:47:03 +0900 -Subject: lsfd: add LSFD_DEBUG env var for debugging - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> ---- - misc-utils/lsfd-sock-xinfo.c | 51 ++++++++++++++++++++++++++++++++++++++------ - misc-utils/lsfd.c | 10 +++++++++ - misc-utils/lsfd.h | 15 +++++++++++++ - 3 files changed, 70 insertions(+), 6 deletions(-) - -diff --git a/misc-utils/lsfd-sock-xinfo.c b/misc-utils/lsfd-sock-xinfo.c -index a293806..71be41a 100644 ---- a/misc-utils/lsfd-sock-xinfo.c -+++ b/misc-utils/lsfd-sock-xinfo.c -@@ -179,9 +179,12 @@ static void load_sock_xinfo_no_nsswitch(struct netns *nsobj) - load_xinfo_from_proc_packet(netns); - - diagsd = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_SOCK_DIAG); -+ DBG(ENDPOINTS, ul_debug("made a diagnose socket [fd=%d; %s]", diagsd, -+ (diagsd >= 0)? "successful": strerror(errno))); - if (diagsd >= 0) { - load_xinfo_from_diag_unix(diagsd, netns); - close(diagsd); -+ DBG(ENDPOINTS, ul_debug("close the diagnose socket")); - } - - if (nsobj) -@@ -337,6 +340,7 @@ static void send_diag_request(int diagsd, void *req, size_t req_size, - bool (*cb)(ino_t, size_t, void *), - ino_t netns) - { -+ int r; - struct sockaddr_nl nladdr = { - .nl_family = AF_NETLINK, - }; -@@ -361,30 +365,45 @@ static void send_diag_request(int diagsd, void *req, size_t req_size, - - __attribute__((aligned(sizeof(void *)))) uint8_t buf[8192]; - -- if (sendmsg(diagsd, &mhd, 0) < 0) -+ r = sendmsg(diagsd, &mhd, 0); -+ DBG(ENDPOINTS, ul_debug("sendmsg [rc=%d; %s]", -+ r, (r >= 0)? "successful": strerror(errno))); -+ if (r < 0) - return; - - for (;;) { - const struct nlmsghdr *h; -- int r = recvfrom(diagsd, buf, sizeof(buf), 0, NULL, NULL); -+ r = recvfrom(diagsd, buf, sizeof(buf), 0, NULL, NULL); -+ DBG(ENDPOINTS, ul_debug("recvfrom [rc=%d; %s]", -+ r, (r >= 0)? "successful": strerror(errno))); - if (r < 0) - return; - - h = (void *) buf; -+ DBG(ENDPOINTS, ul_debug(" OK: %d", NLMSG_OK(h, (size_t)r))); - if (!NLMSG_OK(h, (size_t)r)) - return; - - for (; NLMSG_OK(h, (size_t)r); h = NLMSG_NEXT(h, r)) { -- if (h->nlmsg_type == NLMSG_DONE) -+ if (h->nlmsg_type == NLMSG_DONE) { -+ DBG(ENDPOINTS, ul_debug(" DONE")); - return; -- if (h->nlmsg_type == NLMSG_ERROR) -+ } -+ if (h->nlmsg_type == NLMSG_ERROR) { -+ struct nlmsgerr *e = (struct nlmsgerr *)NLMSG_DATA(h); -+ DBG(ENDPOINTS, ul_debug(" ERROR: %s", -+ strerror(- e->error))); - return; -+ } - - if (h->nlmsg_type == SOCK_DIAG_BY_FAMILY) { -+ DBG(ENDPOINTS, ul_debug(" FAMILY")); - if (!cb(netns, h->nlmsg_len, NLMSG_DATA(h))) - return; - } -+ DBG(ENDPOINTS, ul_debug(" NEXT")); - } -+ DBG(ENDPOINTS, ul_debug(" OK: 0")); - } - } - -@@ -639,6 +658,8 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) - FILE *unix_fp; - - unix_fp = fopen("/proc/net/unix", "r"); -+ DBG(ENDPOINTS, ul_debug("open /proc/net/unix [fp=%p; %s]", unix_fp, -+ unix_fp? "successful": strerror(errno))); - if (!unix_fp) - return; - -@@ -655,13 +676,18 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) - unsigned long inode; - struct unix_xinfo *ux; - char path[UNIX_LINE_LEN + 1] = { 0 }; -+ int r; - -+ DBG(ENDPOINTS, ul_debug(" line: %s", line)); - -- if (sscanf(line, "%*x: %*x %*x %" SCNx64 " %x %x %lu %" -+ r = sscanf(line, "%*x: %*x %*x %" SCNx64 " %x %x %lu %" - stringify_value(UNIX_LINE_LEN) "[^\n]", -- &flags, &type, &st, &inode, path) < 4) -+ &flags, &type, &st, &inode, path); -+ DBG(ENDPOINTS, ul_debug(" scanf: %d", r)); -+ if (r < 4) - continue; - -+ DBG(ENDPOINTS, ul_debug(" inode: %lu", inode)); - if (inode == 0) - continue; - -@@ -675,10 +701,12 @@ static void load_xinfo_from_proc_unix(ino_t netns_inode) - ux->st = st; - xstrncpy(ux->path, path, sizeof(ux->path)); - -+ DBG(ENDPOINTS, ul_debug(" path: %s", ux->path)); - add_sock_info(&ux->sock); - } - - out: -+ DBG(ENDPOINTS, ul_debug("close /proc/net/unix")); - fclose(unix_fp); - } - -@@ -712,6 +740,9 @@ static bool handle_diag_unix(ino_t netns __attribute__((__unused__)), - - if (diag->udiag_family != AF_UNIX) - return false; -+ DBG(ENDPOINTS, ul_debug(" UNIX")); -+ DBG(ENDPOINTS, ul_debug(" LEN: %zu (>= %zu)", nlmsg_len, -+ (size_t)(NLMSG_LENGTH(sizeof(*diag))))); - - if (nlmsg_len < NLMSG_LENGTH(sizeof(*diag))) - return false; -@@ -719,21 +750,29 @@ static bool handle_diag_unix(ino_t netns __attribute__((__unused__)), - inode = (ino_t)diag->udiag_ino; - xinfo = get_sock_xinfo(inode); - -+ DBG(ENDPOINTS, ul_debug(" inode: %llu", (unsigned long long)inode)); -+ DBG(ENDPOINTS, ul_debug(" xinfo: %p", xinfo)); -+ - if (xinfo == NULL) - /* The socket is found in the diag response - but not in the proc fs. */ - return true; - -+ DBG(ENDPOINTS, ul_debug(" xinfo->class == &unix_xinfo_class: %d", -+ xinfo->class == &unix_xinfo_class)); - if (xinfo->class != &unix_xinfo_class) - return true; - unix_xinfo = (struct unix_xinfo *)xinfo; - - rta_len = nlmsg_len - NLMSG_LENGTH(sizeof(*diag)); -+ DBG(ENDPOINTS, ul_debug(" rta_len: %zu", rta_len)); - for (struct rtattr *attr = (struct rtattr *)(diag + 1); - RTA_OK(attr, rta_len); - attr = RTA_NEXT(attr, rta_len)) { - size_t len = RTA_PAYLOAD(attr); - -+ DBG(ENDPOINTS, ul_debug(" len = %2zu, type: %d", -+ rta_len, attr->rta_type)); - switch (attr->rta_type) { - case UNIX_DIAG_NAME: - unix_refill_name(xinfo, RTA_DATA(attr), len); -diff --git a/misc-utils/lsfd.c b/misc-utils/lsfd.c -index 771daef..4786d1d 100644 ---- a/misc-utils/lsfd.c -+++ b/misc-utils/lsfd.c -@@ -84,6 +84,14 @@ static int kcmp(pid_t pid1 __attribute__((__unused__)), - - #include "lsfd.h" - -+UL_DEBUG_DEFINE_MASK(lsfd); -+UL_DEBUG_DEFINE_MASKNAMES(lsfd) = UL_DEBUG_EMPTY_MASKNAMES; -+ -+static void lsfd_init_debug(void) -+{ -+ __UL_INIT_DEBUG_FROM_ENV(lsfd, LSFD_DEBUG_, 0, LSFD_DEBUG); -+} -+ - /* - * /proc/$pid/mountinfo entries - */ -@@ -2271,6 +2279,8 @@ int main(int argc, char *argv[]) - { NULL, 0, NULL, 0 }, - }; - -+ lsfd_init_debug(); -+ - setlocale(LC_ALL, ""); - bindtextdomain(PACKAGE, LOCALEDIR); - textdomain(PACKAGE); -diff --git a/misc-utils/lsfd.h b/misc-utils/lsfd.h -index 1859dc7..e646758 100644 ---- a/misc-utils/lsfd.h -+++ b/misc-utils/lsfd.h -@@ -28,7 +28,11 @@ - #include <sys/stat.h> - #include <dirent.h> - #include <inttypes.h> -+#include <stdio.h> -+#include <string.h> -+#include <stdlib.h> - -+#include "debug.h" - #include "libsmartcols.h" - #include "list.h" - #include "nls.h" -@@ -36,6 +40,17 @@ - #include "strutils.h" - #include "xalloc.h" - -+/* -+ * debug -+ */ -+UL_DEBUG_DECLARE_MASK(lsfd); -+ -+#define LSFD_DEBUG_INIT (1 << 1) -+#define LSFD_DEBUG_ENDPOINTS (1 << 2) -+#define LSFD_DEBUG_ALL 0xFFFF -+ -+#define DBG(m, x) __UL_DBG(lsfd, LSFD_DEBUG_, m, x) -+ - /* - * column IDs - */ diff --git a/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch b/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch deleted file mode 100644 index 59abf34..0000000 --- a/debian/patches/upstream/lslocks-don-t-abort-gathering-per-process-information-eve.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Sat, 13 Apr 2024 03:59:39 +0900 -Subject: lslocks: don't abort gathering per-process information even if - opening a /proc/[0-9]* fails - -If a process ($pid) taking a lock is gone while running lslocks, -gathering per-process information for the process may fail in opening -/proc/$pid. Though lslocks should work with incomplete information, -the original code stopped gathering per-process information for the -other processes. - -As a result of the original behavior, tests/ts/lslocks/lslocks really -failed in an environment where multiple test cases ran simultaneously. - -Close #2624 again. -See also #2633. - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> -(cherry picked from commit 20df923cc3d2da12a5296223c3ff0de7484cc587) ---- - misc-utils/lslocks.c | 6 ++---- - tests/ts/lslocks/lslocks | 11 ----------- - 2 files changed, 2 insertions(+), 15 deletions(-) - -diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c -index 3d70b04..60f6595 100644 ---- a/misc-utils/lslocks.c -+++ b/misc-utils/lslocks.c -@@ -513,10 +513,8 @@ static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) - if (procfs_dirent_get_pid(d, &pid) != 0) - continue; - -- if (procfs_process_init_path(pc, pid) != 0) { -- rc = -1; -- break; -- } -+ if (procfs_process_init_path(pc, pid) != 0) -+ continue; - - if (procfs_process_get_cmdname(pc, buf, sizeof(buf)) <= 0) - continue; -diff --git a/tests/ts/lslocks/lslocks b/tests/ts/lslocks/lslocks -index 912fac8..a9ef69a 100755 ---- a/tests/ts/lslocks/lslocks -+++ b/tests/ts/lslocks/lslocks -@@ -53,14 +53,6 @@ OFD_METHODS=( - lease-w - ) - --SLEEP() --{ -- # It appears that there is a time lag between locking and its -- # visibility in /proc/locks. See the unstbale results of errors I -- # observed in https://github.com/util-linux/util-linux/pull/2629. -- sleep 1 --} -- - DFD=18 - COLS_WITH_HOLDERS=COMMAND,TYPE,SIZE,MODE,START,END,HOLDERS - run_lslocks() -@@ -71,8 +63,6 @@ run_lslocks() - rm -f "${FILE}" - coproc MKFDS { "$TS_HELPER_MKFDS" make-regular-file $FD file="$FILE" lock=$m; } - if read -r -u "${MKFDS[0]}" PID; then -- SLEEP -- - "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o "${COLS}" - echo "# $m + ${COLS} + ${OPTS}": $? - "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o PATH | sed -e 's#.*\('"$FILE0"'\)--[0-9]\+ *$#\1#' -@@ -91,7 +81,6 @@ run_lslocks_with_co_holders() - { - rm -f "${FILE}" - coproc MKFDS { "$TS_HELPER_MKFDS" make-regular-file $FD file="$FILE" lock=$m dupfd=$DFD; } -- SLEEP - if read -r -u "${MKFDS[0]}" PID; then - "$TS_CMD_LSLOCKS" ${OPTS} --pid "${PID}" -o "${COLS_WITH_HOLDERS}" | sed -e "s/${PID},/1,/g" - echo "# $m + ${COLS_WITH_HOLDERS} + ${OPTS}": ${PIPESTATUS[0]} diff --git a/debian/patches/upstream/lslocks-remove-a-unused-local-variable.patch b/debian/patches/upstream/lslocks-remove-a-unused-local-variable.patch deleted file mode 100644 index b1547cc..0000000 --- a/debian/patches/upstream/lslocks-remove-a-unused-local-variable.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Sat, 13 Apr 2024 04:13:03 +0900 -Subject: lslocks: remove a unused local variable - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> -(cherry picked from commit c8c85e8e54aa201766f2420e2a7c86ccfa8d5df0) ---- - misc-utils/lslocks.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c -index 60f6595..176173f 100644 ---- a/misc-utils/lslocks.c -+++ b/misc-utils/lslocks.c -@@ -490,12 +490,11 @@ static int get_pid_locks(void *locks, void (*add_lock)(void *, struct lock *), s - return rc; - } - --static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) -+static void get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) - { - DIR *dir; - struct dirent *d; - struct path_cxt *pc = NULL; -- int rc = 0; - - pc = ul_new_path(NULL); - if (!pc) -@@ -526,7 +525,7 @@ static int get_pids_locks(void *locks, void (*add_lock)(void *, struct lock *)) - closedir(dir); - ul_unref_path(pc); - -- return rc; -+ return; - } - - static int get_proc_locks(void *locks, void (*add_lock)(void *, struct lock *), void *fallback) diff --git a/debian/patches/upstream/lsns-fix-netns-use.patch b/debian/patches/upstream/lsns-fix-netns-use.patch deleted file mode 100644 index 1d1c8b6..0000000 --- a/debian/patches/upstream/lsns-fix-netns-use.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Karel Zak <kzak@redhat.com> -Date: Mon, 22 Apr 2024 14:28:52 +0200 -Subject: lsns: fix netns use - - # ip netns add vpn - # lsns -T -t net - Segmentation fault (core dumped) - -The function interpolate_missing_namespaces() reads data from /proc. -However, in the case of a persistent namespace, there is no procfs -entry for the namespace. Therefore, this function should ignore it. - -Fixes: https://github.com/util-linux/util-linux/issues/2982 -Signed-off-by: Karel Zak <kzak@redhat.com> -(cherry picked from commit 42880f54894c1d7fd113552ff8474566a2595a0d) ---- - sys-utils/lsns.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c -index 4ea01d2..6c87c47 100644 ---- a/sys-utils/lsns.c -+++ b/sys-utils/lsns.c -@@ -793,6 +793,9 @@ static void interpolate_missing_namespaces(struct lsns *ls, struct lsns_namespac - int fd_orphan, fd_missing; - struct stat st; - -+ if (!orphan->proc) -+ return; -+ - orphan->related_ns[rela] = get_namespace(ls, orphan->related_id[rela]); - if (orphan->related_ns[rela]) - return; diff --git a/debian/patches/upstream/lsns-report-with-warnx-if-a-namespace-related-ioctl-fails.patch b/debian/patches/upstream/lsns-report-with-warnx-if-a-namespace-related-ioctl-fails.patch deleted file mode 100644 index fd57faf..0000000 --- a/debian/patches/upstream/lsns-report-with-warnx-if-a-namespace-related-ioctl-fails.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Mon, 15 Apr 2024 01:44:38 +0900 -Subject: lsns: report with warnx if a namespace related ioctl fails with - ENOSYS - -Qemu userspace emulation reports ENOSYS if it doesn't support a given -ioctl command. - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> -(cherry picked from commit 0a7a8fbc7a82dfbd9e925d1b4d4936bf4e011bc1) ---- - sys-utils/lsns.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c -index e68bdbe..1f3574f 100644 ---- a/sys-utils/lsns.c -+++ b/sys-utils/lsns.c -@@ -68,7 +68,7 @@ UL_DEBUG_DEFINE_MASKNAMES(lsns) = UL_DEBUG_EMPTY_MASKNAMES; - - #define lsns_ioctl(fildes, request, ...) __extension__ ({ \ - int ret = ioctl(fildes, request, ##__VA_ARGS__); \ -- if (ret == -1 && errno == ENOTTY) \ -+ if (ret == -1 && (errno == ENOTTY || errno == ENOSYS)) \ - warnx("Unsupported ioctl %s", #request); \ - ret; }) - diff --git a/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch b/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch deleted file mode 100644 index ff17dc2..0000000 --- a/debian/patches/upstream/lsns-tolerate-lsns_ioctl-fd-NS_GET_-PARENT-USERNS-failing.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Sun, 14 Apr 2024 01:40:14 +0900 -Subject: lsns: tolerate lsns_ioctl(fd, - NS_GET_{PARENT,USERNS}) failing with ENOSYS - -With the original code, "lsns/filedesc" test case failed on -"build (qemu-user, s390x)" and "build (qemu-user, riscv64)". - -On the platforms, lsns_ioctl(fd, NS_GET_{PARENT,USERNS}) failed -with ENOSYS. The error stoped the iteration for gathering -information from /proc/[0-9]+. As a result, lsns printed -nothing. We don't expect this behavior. - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> -(cherry picked from commit f2a8b20d9c63f771d1fddd639ea1ec3fe034dc6d) ---- - sys-utils/lsns.c | 12 ++++++++++-- - 1 file changed, 10 insertions(+), 2 deletions(-) - -diff --git a/sys-utils/lsns.c b/sys-utils/lsns.c -index 1f3574f..4ea01d2 100644 ---- a/sys-utils/lsns.c -+++ b/sys-utils/lsns.c -@@ -308,7 +308,11 @@ static int get_ns_ino(int dir, const char *nsname, ino_t *ino, ino_t *pino, ino_ - return -errno; - if (strcmp(nsname, "pid") == 0 || strcmp(nsname, "user") == 0) { - if ((pfd = lsns_ioctl(fd, NS_GET_PARENT)) < 0) { -- if (errno == EPERM) -+ if (errno == EPERM -+ /* On the test platforms, "build (qemu-user, s390x)" and -+ * "build (qemu-user, riscv64)", the ioctl reported ENOSYS. -+ */ -+ || errno == ENOSYS) - goto user; - close(fd); - return -errno; -@@ -323,7 +327,11 @@ static int get_ns_ino(int dir, const char *nsname, ino_t *ino, ino_t *pino, ino_ - } - user: - if ((ofd = lsns_ioctl(fd, NS_GET_USERNS)) < 0) { -- if (errno == EPERM) -+ if (errno == EPERM -+ /* On the test platforms, "build (qemu-user, s390x)" and -+ * "build (qemu-user, riscv64)", the ioctl reported ENOSYS. -+ */ -+ || errno == ENOSYS) - goto out; - close(fd); - return -errno; diff --git a/debian/patches/upstream/pam_lastlog2-link-against-liblastlog.patch b/debian/patches/upstream/pam_lastlog2-link-against-liblastlog.patch deleted file mode 100644 index 6d299b2..0000000 --- a/debian/patches/upstream/pam_lastlog2-link-against-liblastlog.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= <thomas@t-8ch.de> -Date: Mon, 1 Apr 2024 22:53:32 +0200 -Subject: pam_lastlog2: link against liblastlog -MIME-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -While at it also drop the duplicated include path. - -Fixes #2897 -Signed-off-by: Thomas Weißschuh <thomas@t-8ch.de> -(cherry picked from commit 2722b40012740372daf3585b7c071fcbede13359) ---- - pam_lastlog2/src/Makemodule.am | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/pam_lastlog2/src/Makemodule.am b/pam_lastlog2/src/Makemodule.am -index 9884416..f9a9b6b 100644 ---- a/pam_lastlog2/src/Makemodule.am -+++ b/pam_lastlog2/src/Makemodule.am -@@ -10,8 +10,9 @@ EXTRA_pam_lastlog2_la_DEPENDENCIES = \ - pam_lastlog2_la_CFLAGS = \ - $(AM_CFLAGS) \ - $(SOLIB_CFLAGS) \ -- -I$(ul_liblastlog2_incdir) \ -- -Iliblastlog2/src -+ -I$(ul_liblastlog2_incdir) -+ -+pam_lastlog2_la_LIBADD = liblastlog2.la - - pam_lastlog2_la_LDFLAGS = $(SOLIB_LDFLAGS) -module -avoid-version -shared - if HAVE_VSCRIPT diff --git a/debian/patches/upstream/tests-lsfd-mkfds-multiplexing-skip-if-proc-pid-syscall-is.patch b/debian/patches/upstream/tests-lsfd-mkfds-multiplexing-skip-if-proc-pid-syscall-is.patch deleted file mode 100644 index cdd72f6..0000000 --- a/debian/patches/upstream/tests-lsfd-mkfds-multiplexing-skip-if-proc-pid-syscall-is.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Fri, 5 Apr 2024 04:00:45 +0900 -Subject: tests: (lsfd::mkfds-multiplexing) skip if /proc/$pid/syscall is - broken - -Close #2867 -Close #2887 - -We should skip the test case on the platforms where /proc/$pid/syscall -doesn't report correct system call number. On such platforms, - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> ---- - tests/ts/lsfd/mkfds-multiplexing | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/tests/ts/lsfd/mkfds-multiplexing b/tests/ts/lsfd/mkfds-multiplexing -index 8cc7f31..a53f6eb 100755 ---- a/tests/ts/lsfd/mkfds-multiplexing -+++ b/tests/ts/lsfd/mkfds-multiplexing -@@ -26,6 +26,8 @@ ts_check_test_command "$TS_HELPER_MKFDS" - # /proc/${PID}/syscall is rendered in the host side byteorder. - ts_skip_qemu_user - -+ts_check_prog "cat" -+ts_check_prog "cut" - ts_check_prog "grep" - - ts_cd "$TS_OUTDIR" -@@ -44,12 +46,24 @@ for multiplexer in pselect6 select poll ppoll; do - } > "$TS_OUTPUT" 2>&1 - - if read -r -u "${MKFDS[0]}" PID; then -- if ! cat /proc/"${PID}"/syscall > /dev/null 2>&1; then -+ syscall_line=$(cat /proc/"${PID}"/syscall 2>> "$TS_OUTPUT") -+ syscall_status=$? -+ if [[ "$syscall_status" != 0 ]]; then - kill -CONT "${PID}" - wait "${MKFDS_PID}" - ts_skip_subtest "cannot open /proc/${PID}/syscall" - continue - fi -+ syscall_n=$(cut -f1 -d' ' <<< "$syscall_line") -+ # We assume the syscall number for the $multiplexer is not zero -+ # on any platforms. -+ if [[ "$syscall_n" == 0 ]]; then -+ kill -CONT "${PID}" -+ wait "${MKFDS_PID}" -+ ts_skip_subtest "incorrect syscall number in /proc/${PID}/syscall" -+ continue -+ fi -+ - { - "${TS_CMD_LSFD}" -n -o ASSOC,XMODE -p "${PID}" -Q '(FD >= 10) && (FD <= 22)' - echo "[$multiplexer] ASSOC,XMODE: $?" diff --git a/debian/patches/upstream/tests-test_mkfds-sockdiag-verify-the-recived-message.patch b/debian/patches/upstream/tests-test_mkfds-sockdiag-verify-the-recived-message.patch deleted file mode 100644 index efd9063..0000000 --- a/debian/patches/upstream/tests-test_mkfds-sockdiag-verify-the-recived-message.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: Masatake YAMATO <yamato@redhat.com> -Date: Tue, 2 Apr 2024 06:34:40 +0900 -Subject: tests: (test_mkfds::sockdiag) verify the recived message - -Signed-off-by: Masatake YAMATO <yamato@redhat.com> ---- - tests/helpers/test_mkfds.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/tests/helpers/test_mkfds.c b/tests/helpers/test_mkfds.c -index 39427ba..4b138c2 100644 ---- a/tests/helpers/test_mkfds.c -+++ b/tests/helpers/test_mkfds.c -@@ -3200,6 +3200,25 @@ static int send_diag_request(int diagsd, void *req, size_t req_size) - return 0; - } - -+static int recv_diag_request(int diagsd) -+{ -+ __attribute__((aligned(sizeof(void *)))) uint8_t buf[8192]; -+ const struct nlmsghdr *h; -+ int r = recvfrom(diagsd, buf, sizeof(buf), 0, NULL, NULL);; -+ if (r < 0) -+ return errno; -+ -+ h = (void *)buf; -+ if (!NLMSG_OK(h, (size_t)r)) -+ return -1; -+ -+ if (h->nlmsg_type == NLMSG_ERROR) { -+ struct nlmsgerr *e = (struct nlmsgerr *)NLMSG_DATA(h); -+ return - e->error; -+ } -+ return 0; -+} -+ - static void *make_sockdiag(const struct factory *factory, struct fdesc fdescs[], - int argc, char ** argv) - { -@@ -3243,6 +3262,16 @@ static void *make_sockdiag(const struct factory *factory, struct fdesc fdescs[], - err(EXIT_FAILURE, "failed in sendmsg()"); - } - -+ e = recv_diag_request(diagsd); -+ if (e != 0) { -+ close (diagsd); -+ if (e == ENOENT) -+ err(EXIT_ENOENT, "failed in recvfrom()"); -+ if (e > 0) -+ err(EXIT_FAILURE, "failed in recvfrom()"); -+ if (e < 0) -+ errx(EXIT_FAILURE, "failed in recvfrom() => -1"); -+ } - - if (diagsd != fdescs[0].fd) { - if (dup2(diagsd, fdescs[0].fd) < 0) { |