Do not use command in profile
cover Do not use command in profile
Since we apparently cannot rely on the command utility to always exist, it is better to avoid using it in the profile script. Rather than using command to detect if tty and resize exist (which obviously will not work if command itself does not exist), just call them directly while piping any output for stderr to /dev/null. This should actually be a little bit more efficient in the case that they do exist, and the same in the case that they do not exist.
I leave to you to decide whether you want to revert commit e41c90b852 that enabled the command utility in busybox or not.
//Peter
The following changes since commit fe47bff64b17562593c620d2daf748735bb5c3d6:
linux-yocto: Update genericx86* SRCREVs for linux-yocto 4.10 (2017-04-13 10:54:37 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib pkj/profile_without_command
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=pkj/profile_without_command
Peter Kjellerstedt (1):
base-files: profile: Avoid using "command" to determine if programs
exist
meta/recipes-core/base-files/base-files/profile | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
Signature · 1 line
2.12.0
PATCH 1/1 base-files: profile: Avoid using "command" to determine if programs exist
Since the existence of "command" in itself is not guaranteed, using it to determine if other executables exist is mote. Instead just run the executables and let the shell determine if they exist. By piping stderr to /dev/null we avoid unnecessary warnings in case they do not exist.
--- meta/recipes-core/base-files/base-files/profile | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
meta/recipes-core/base-files/base-files/profile +6 -8
@@ -22,14 +22,12 @@ if [ -d /etc/profile.d ]; then unset i fi -if command -v resize >/dev/null && command -v tty >/dev/null; then - # Make sure we are on a serial console (i.e. the device used starts with - # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which - # tries do use ssh - case $(tty) in - /dev/tty[A-z]*) resize >/dev/null;; - esac -fi +# Make sure we are on a serial console (i.e. the device used starts with +# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do +# use ssh +case $(tty 2>/dev/null) in + /dev/tty[A-z]*) resize >/dev/null 2>&1;; +esac export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
Signature · 1 line
2.12.0