diff mbox series

toolchain-shar-relocate.sh: Add check for missing command 'file'

Message ID 20240316173558.468284-1-tom.hochstein@nxp.com
State Accepted, archived
Commit 1aa19b9e34ebe6f39a25364073fed4c069f650e8
Headers show
Series toolchain-shar-relocate.sh: Add check for missing command 'file' | expand

Commit Message

Tom Hochstein March 16, 2024, 5:35 p.m. UTC
On a machine without the file command, the SDK install fails with a
cryptic error message.

```
xargs: file: No such file or directory
sed: no input files
Failed to replace perl. Relocate script failed. Abort!
```

Add a test for 'file' to print a clear error message.

```
The command 'file' is required by the relocation script, please install it first. Abort!
```

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
---
 meta/files/toolchain-shar-relocate.sh | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

Comments

Alexandre Belloni March 21, 2024, 3:19 p.m. UTC | #1
Hello Tom,

On 16/03/2024 12:35:58-0500, Tom Hochstein wrote:
> On a machine without the file command, the SDK install fails with a
> cryptic error message.
> 
> ```
> xargs: file: No such file or directory
> sed: no input files
> Failed to replace perl. Relocate script failed. Abort!
> ```
> 
> Add a test for 'file' to print a clear error message.
> 
> ```
> The command 'file' is required by the relocation script, please install it first. Abort!
> ```
> 
> Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
> ---
>  meta/files/toolchain-shar-relocate.sh | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/files/toolchain-shar-relocate.sh b/meta/files/toolchain-shar-relocate.sh
> index e8ab357717..3d55e38102 100644
> --- a/meta/files/toolchain-shar-relocate.sh
> +++ b/meta/files/toolchain-shar-relocate.sh
> @@ -1,7 +1,9 @@
> -if ! xargs --version > /dev/null 2>&1; then
> -	echo "xargs is required by the relocation script, please install it first. Abort!"
> -	exit 1
> -fi
> +for cmd in xargs file; do
> +	if ! command -v $cmd &> /dev/null; then

This fails on some of our builders:
https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/9148/steps/12/logs/stdio

> +		echo "The command '$cmd' is required by the relocation script, please install it first. Abort!"
> +		exit 1
> +	fi
> +done
>  
>  # fix dynamic loader paths in all ELF SDK binaries
>  # allow symlinks to be accessed via the find command too
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#197256): https://lists.openembedded.org/g/openembedded-core/message/197256
> Mute This Topic: https://lists.openembedded.org/mt/104970783/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Tom Hochstein March 21, 2024, 5:30 p.m. UTC | #2
Thanks Alexandre,

On 3/21/2024 10:19 AM, Alexandre Belloni wrote:
> Hello Tom,
>
> On 16/03/2024 12:35:58-0500, Tom Hochstein wrote:
>> On a machine without the file command, the SDK install fails with a
>> cryptic error message.
>>
>> ```
>> xargs: file: No such file or directory
>> sed: no input files
>> Failed to replace perl. Relocate script failed. Abort!
>> ```
>>
>> Add a test for 'file' to print a clear error message.
>>
>> ```
>> The command 'file' is required by the relocation script, please install it first. Abort!
>> ```
>>
>> Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
>> ---
>>   meta/files/toolchain-shar-relocate.sh | 10 ++++++----
>>   1 file changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/files/toolchain-shar-relocate.sh b/meta/files/toolchain-shar-relocate.sh
>> index e8ab357717..3d55e38102 100644
>> --- a/meta/files/toolchain-shar-relocate.sh
>> +++ b/meta/files/toolchain-shar-relocate.sh
>> @@ -1,7 +1,9 @@
>> -if ! xargs --version > /dev/null 2>&1; then
>> -	echo "xargs is required by the relocation script, please install it first. Abort!"
>> -	exit 1
>> -fi
>> +for cmd in xargs file; do
>> +	if ! command -v $cmd &> /dev/null; then
> This fails on some of our builders:
> https://autobuilder.yoctoproject.org/typhoon/#/builders/20/builds/9148/steps/12/logs/stdio

Aha, looks like &> is a bashism. V2 coming.

>
>> +		echo "The command '$cmd' is required by the relocation script, please install it first. Abort!"
>> +		exit 1
>> +	fi
>> +done
>>   
>>   # fix dynamic loader paths in all ELF SDK binaries
>>   # allow symlinks to be accessed via the find command too
>> -- 
>> 2.25.1
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#197256): https://lists.openembedded.org/g/openembedded-core/message/197256
>> Mute This Topic: https://lists.openembedded.org/mt/104970783/3617179
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>
diff mbox series

Patch

diff --git a/meta/files/toolchain-shar-relocate.sh b/meta/files/toolchain-shar-relocate.sh
index e8ab357717..3d55e38102 100644
--- a/meta/files/toolchain-shar-relocate.sh
+++ b/meta/files/toolchain-shar-relocate.sh
@@ -1,7 +1,9 @@ 
-if ! xargs --version > /dev/null 2>&1; then
-	echo "xargs is required by the relocation script, please install it first. Abort!"
-	exit 1
-fi
+for cmd in xargs file; do
+	if ! command -v $cmd &> /dev/null; then
+		echo "The command '$cmd' is required by the relocation script, please install it first. Abort!"
+		exit 1
+	fi
+done
 
 # fix dynamic loader paths in all ELF SDK binaries
 # allow symlinks to be accessed via the find command too