diff options
Diffstat (limited to 'debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch')
-rw-r--r-- | debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch | 160 |
1 files changed, 160 insertions, 0 deletions
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 new file mode 100644 index 0000000..7ec4aaf --- /dev/null +++ b/debian/patches/upstream/findmnt-revise-the-code-for-I-and-D-option.patch @@ -0,0 +1,160 @@ +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 |