Message ID | 20240528163150.410706-1-ojeda@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | kheaders: use `command -v` to test for existence of `cpio` | expand |
On Wed, May 29, 2024 at 1:32 AM Miguel Ojeda <ojeda@kernel.org> wrote: > > Commit 13e1df09284d ("kheaders: explicitly validate existence of cpio > command") added an explicit check for `cpio` using `type`. > > However, `type` in `dash` (which is used in some popular distributions > and base images as the shell script runner) prints the missing message > to standard output, and thus no error is printed: > > $ bash -c 'type missing >/dev/null' > bash: line 1: type: missing: not found > $ dash -c 'type missing >/dev/null' > $ > > For instance, this issue may be seen by loongarch builders, given its > defconfig enables CONFIG_IKHEADERS since commit 9cc1df421f00 ("LoongArch: > Update Loongson-3 default config file"). > > Therefore, use `command -v` instead to have consistent behavior, and > take the chance to provide a more explicit error. > > Signed-off-by: Miguel Ojeda <ojeda@kernel.org> > --- > kernel/gen_kheaders.sh | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh > index 6d443ea22bb7..4ba5fd3d73ae 100755 > --- a/kernel/gen_kheaders.sh > +++ b/kernel/gen_kheaders.sh > @@ -14,7 +14,12 @@ include/ > arch/$SRCARCH/include/ > " > > -type cpio > /dev/null > +if ! command -v cpio >/dev/null; then > + echo >&2 "***" > + echo >&2 "*** 'cpio' could not be found." > + echo >&2 "***" > + exit 1 > +fi > > # Support incremental builds by skipping archive generation > # if timestamps of files being archived are not changed. > > base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0 > -- > 2.45.1 > Ah, right. 'command -v' is more portable. Applied to linux-kbuild. Thanks!
diff --git a/kernel/gen_kheaders.sh b/kernel/gen_kheaders.sh index 6d443ea22bb7..4ba5fd3d73ae 100755 --- a/kernel/gen_kheaders.sh +++ b/kernel/gen_kheaders.sh @@ -14,7 +14,12 @@ include/ arch/$SRCARCH/include/ " -type cpio > /dev/null +if ! command -v cpio >/dev/null; then + echo >&2 "***" + echo >&2 "*** 'cpio' could not be found." + echo >&2 "***" + exit 1 +fi # Support incremental builds by skipping archive generation # if timestamps of files being archived are not changed.
Commit 13e1df09284d ("kheaders: explicitly validate existence of cpio command") added an explicit check for `cpio` using `type`. However, `type` in `dash` (which is used in some popular distributions and base images as the shell script runner) prints the missing message to standard output, and thus no error is printed: $ bash -c 'type missing >/dev/null' bash: line 1: type: missing: not found $ dash -c 'type missing >/dev/null' $ For instance, this issue may be seen by loongarch builders, given its defconfig enables CONFIG_IKHEADERS since commit 9cc1df421f00 ("LoongArch: Update Loongson-3 default config file"). Therefore, use `command -v` instead to have consistent behavior, and take the chance to provide a more explicit error. Signed-off-by: Miguel Ojeda <ojeda@kernel.org> --- kernel/gen_kheaders.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) base-commit: 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0