Skip to contentSkip to conversation

Do not use command in profile

PATCH In review Peter Kjellerstedt 2 participants 5 messages Apr 13, 2017 – Sep 15, 2017

lore
Share & tools
lore
#0 lore raw

v2 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.

PATCHv2: Correct a typo in the commit message

//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
#1 lore raw

PATCH v2 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 moot. 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
index ceaf15f799..e05c8840db 100644
@@ -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
#2 lore raw

Re: [PATCHv2 1/1] base-files: profile: Avoid using "command" to determine if programs exist

*ping*

//Peter

Quoted 57 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Peter Kjellerstedt
Sent: den 13 april 2017 14:30
To: [email protected]
Subject: [OE-core] [PATCHv2 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 moot. 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 +0 -2
index ceaf15f799..e05c8840db 100644
@@ -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

meta/recipes-core/base-files/base-files/profile +0 -1
-	# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse

launcher which

meta/recipes-core/base-files/base-files/profile +1 -5
-	# 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

meta/recipes-core/base-files/base-files/profile +4 -1
+# 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
 
--

2.12.0

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#3 lore raw

Re: [PATCHv2 1/1] base-files: profile: Avoid using "command" to determine if programs exist

*ping*

//Peter

Quoted 64 lines

-----Original Message-----
From: Peter Kjellerstedt
Sent: den 19 juni 2017 16:53
To: Peter Kjellerstedt <[email protected]>; openembedded- [email protected]
Subject: RE: [OE-core] [PATCHv2 1/1] base-files: profile: Avoid using "command" to determine if programs exist

*ping*

//Peter

Quoted 52 lines

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Peter Kjellerstedt
Sent: den 13 april 2017 14:30
To: [email protected]
Subject: [OE-core] [PATCHv2 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 moot. 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 -9
index ceaf15f799..e05c8840db 100644
@@ -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
 
--

2.12.0

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#4 lore raw
In reply to Peter Kjellerstedt

Will this patch get merge?
Or do we have to include 'command' from now on? As this commit "busybox: In defconfig enable ASH_CMDCMD for built-in 'command'" suggests?

Thanks,
Hannes

2017-04-13 14:30 GMT+02:00 Peter Kjellerstedt <[email protected]>:

Quoted 39 lines

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.

PATCHv2: Correct a typo in the commit message

//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(-)

--
2.12.0

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core