Skip to contentSkip to conversation

oe-buildenv-internal: Preserve/Unset and Restore TERM

PATCH In review Saul Wold 3 participants 4 messages Jun 14, 2013 – Jun 16, 2013

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

PATCH 1/1 oe-buildenv-internal: Preserve/Unset and Restore TERM

Having a value in TERM that is not recognized by the nativesdk can cause potential escape sequences appearing in the output stream, the can be seen on Ubuntu with TERM=xterm-256color. Unsetting TERM allows for consistent results in the python output.

Also, don't exit, use return, otherwise the shell exits and get no error information.

[YOCTO #4732]

---
 scripts/oe-buildenv-internal | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
scripts/oe-buildenv-internal +6 -2
index 40d95b7..9be034b 100755
@@ -29,6 +29,8 @@ if [ ! -z "$OECORE_SDK_VERSION" ]; then
     return 1
 fi
 
+TERM_save=$TERM
+unset TERM
 # Make sure we're not using python v3.x. This check can't go into
 # sanity.bbclass because bitbake's source code doesn't even pass
 # parsing stage when used with python v3, so we catch it here so we
@@ -37,7 +39,7 @@ py_v3_check=`/usr/bin/env python --version 2>&1 | grep "Python 3"`
 if [ "$py_v3_check" != "" ]; then
 	echo "Bitbake is not compatible with python v3"
 	echo "Please set up python v2 as your default python interpreter"
-	exit 1
+	return 1
 fi
 
 # Similarly, we now have code that doesn't parse correctly with older
@@ -46,7 +48,7 @@ fi
 py_v26_check=`python -c 'import sys; print sys.version_info >= (2,7,3)'`
 if [ "$py_v26_check" != "True" ]; then
 	echo "BitBake requires Python 2.7.3 or later"
-	exit 1
+	return 1
 fi
 
 if [ "x$BDIR" = "x" ]; then
@@ -107,3 +109,5 @@ HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \
 all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \
 SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
 SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR"
+
+export TERM=$TERM_save
Signature · 1 line
1.8.1.4
#1 lore raw
Quoted 46 lines · Saul Wold

Having a value in TERM that is not recognized by the nativesdk can cause potential escape sequences appearing in the output stream, the can be seen on Ubuntu with TERM=xterm-256color. Unsetting TERM allows for consistent results in the python output.

Also, don't exit, use return, otherwise the shell exits and get no error information.

[YOCTO #4732]

---
 scripts/oe-buildenv-internal | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
scripts/oe-buildenv-internal +4 -2
index 40d95b7..9be034b 100755
@@ -29,6 +29,8 @@ if [ ! -z "$OECORE_SDK_VERSION" ]; then
     return 1
 fi
 
+TERM_save=$TERM
+unset TERM
 # Make sure we're not using python v3.x. This check can't go into
 # sanity.bbclass because bitbake's source code doesn't even pass
 # parsing stage when used with python v3, so we catch it here so we
@@ -37,7 +39,7 @@ py_v3_check=`/usr/bin/env python --version 2>&1 | grep "Python 3"`
 if [ "$py_v3_check" != "" ]; then
 	echo "Bitbake is not compatible with python v3"
 	echo "Please set up python v2 as your default python interpreter"
-	exit 1
+	return 1
 fi
 
 # Similarly, we now have code that doesn't parse correctly with older
@@ -46,7 +48,7 @@ fi
 py_v26_check=`python -c 'import sys; print sys.version_info >= (2,7,3)'`
 if [ "$py_v26_check" != "True" ]; then
 	echo "BitBake requires Python 2.7.3 or later"
-	exit 1
+	return 1
 fi
 
 if [ "x$BDIR" = "x" ]; then

scripts/oe-buildenv-internal HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \ · line 113

Quoted 5 lines
scripts/oe-buildenv-internal +2 -0
@@ -107,3 +109,5 @@ HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \
 all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \
 SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
 SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR"
+
+export TERM=$TERM_save

No. This is just wrong in so many ways. I commented on the bug.

This also means any command you run after sourcing the script gets a broken TERM value.

Cheers,

Richard

author
#2 lore raw
Quoted 55 lines · Richard Purdie
Quoted 46 lines · Saul Wold

Having a value in TERM that is not recognized by the nativesdk can cause potential escape sequences appearing in the output stream, the can be seen on Ubuntu with TERM=xterm-256color. Unsetting TERM allows for consistent results in the python output.

Also, don't exit, use return, otherwise the shell exits and get no error information.

[YOCTO #4732]

---
  scripts/oe-buildenv-internal | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)
scripts/oe-buildenv-internal +4 -2
index 40d95b7..9be034b 100755
@@ -29,6 +29,8 @@ if [ ! -z "$OECORE_SDK_VERSION" ]; then
      return 1
  fi
 
+TERM_save=$TERM
+unset TERM
  # Make sure we're not using python v3.x. This check can't go into
  # sanity.bbclass because bitbake's source code doesn't even pass
  # parsing stage when used with python v3, so we catch it here so we
@@ -37,7 +39,7 @@ py_v3_check=`/usr/bin/env python --version 2>&1 | grep "Python 3"`
  if [ "$py_v3_check" != "" ]; then
  	echo "Bitbake is not compatible with python v3"
  	echo "Please set up python v2 as your default python interpreter"
-	exit 1
+	return 1
  fi
 
  # Similarly, we now have code that doesn't parse correctly with older
@@ -46,7 +48,7 @@ fi
  py_v26_check=`python -c 'import sys; print sys.version_info >= (2,7,3)'`
  if [ "$py_v26_check" != "True" ]; then
  	echo "BitBake requires Python 2.7.3 or later"
-	exit 1
+	return 1
  fi
 
  if [ "x$BDIR" = "x" ]; then

scripts/oe-buildenv-internal HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \ · line 113

Quoted 5 lines
scripts/oe-buildenv-internal +2 -0
@@ -107,3 +109,5 @@ HTTPS_PROXY https_proxy FTP_PROXY ftp_proxy FTPS_PROXY ftps_proxy ALL_PROXY \
  all_proxy NO_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY \
  SDKMACHINE BB_NUMBER_THREADS BB_NO_NETWORK PARALLEL_MAKE GIT_PROXY_COMMAND \
  SOCKS5_PASSWD SOCKS5_USER SCREENDIR STAMPS_DIR"
+
+export TERM=$TERM_save

No. This is just wrong in so many ways. I commented on the bug.

Quoted 3 lines

This also means any command you run after sourcing the script gets a broken TERM value.

It's not a broken TERM value from the Distro's standpoint, only from our nativesdk python's standpoint, the value is correct for the distro, devshell and visual tools all work correctly.

We need to at least fix the exit vs return.

Sau!

Quoted 6 lines

Cheers,

Richard

#3 lore raw
In reply to Saul Wold
Quoted 5 lines · Saul Wold

Having a value in TERM that is not recognized by the nativesdk can cause potential escape sequences appearing in the output stream, the can be seen on Ubuntu with TERM=xterm-256color. Unsetting TERM allows for consistent results in the python output.

Quoted 7 lines

Also, don't exit, use return, otherwise the shell exits and get no error information.

[YOCTO #4732]

Please split the fix and get the exit/return fix applied. While on that, ensure the errors are send to >&2 as done in other error messages.

Signature · 3 lines
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750