Skip to contentSkip to conversation

base-files: fix handling of resize

PATCH In review Chen Qi 2 participants 6 messages Aug 1, 2018 – Aug 6, 2018

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover base-files: fix handling of resize

The following changes since commit 666e0783525a298217787e3d2f1460c57c2f59ca:

gcc-7.3: Backport fixes for std::pair high memory usage (2018-07-31 22:55:35 +0100)

are available in the git repository at:

git://git.pokylinux.org/poky-contrib ChenQi/base-files-resize
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=ChenQi/base-files-resize

Chen Qi (1):
base-files: fix handling of resize

 meta/recipes-core/base-files/base-files/profile   | 6 +-----
 meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
 2 files changed, 2 insertions(+), 5 deletions(-)
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 base-files: fix handling of resize

The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox.

What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient.

---
 meta/recipes-core/base-files/base-files/profile   | 6 +-----
 meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
 2 files changed, 2 insertions(+), 5 deletions(-)
meta/recipes-core/base-files/base-files/profile +1 -5
index e14cb2d..9e4283e 100644
@@ -24,11 +24,7 @@ fi
 # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
 # use ssh
 case $(tty 2>/dev/null) in
-	# The first invocation of resize verifies that it exists, the second
-	# does the actual resizing. This is due to that resize uses stderr to
-	# determine the size of the tty, which does not work if it is redirected
-	# to /dev/null.
-	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+	/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
 esac
 
 export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
meta/recipes-core/base-files/base-files_3.0.14.bb +1 -0
index 1c0863b..05c0562 100644
@@ -121,6 +121,7 @@ do_install () {
 	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
 	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
 	sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
+        sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
 	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
 	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
 	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
Signature · 1 line
1.9.1
author
#2 lore raw
Quoted 36 lines · Chen Qi

The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox.

What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient.

---
  meta/recipes-core/base-files/base-files/profile   | 6 +-----
  meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
  2 files changed, 2 insertions(+), 5 deletions(-)
meta/recipes-core/base-files/base-files/profile +1 -5
index e14cb2d..9e4283e 100644
@@ -24,11 +24,7 @@ fi
  # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
  # use ssh
  case $(tty 2>/dev/null) in
-	# The first invocation of resize verifies that it exists, the second
-	# does the actual resizing. This is due to that resize uses stderr to
-	# determine the size of the tty, which does not work if it is redirected
-	# to /dev/null.
-	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+	/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
  esac
 
  export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
meta/recipes-core/base-files/base-files_3.0.14.bb +0 -0
index 1c0863b..05c0562 100644

meta/recipes-core/base-files/base-files_3.0.14.bb do_install () { · line 124

Quoted 4 lines
meta/recipes-core/base-files/base-files_3.0.14.bb +1 -0
@@ -121,6 +121,7 @@ do_install () {
  	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
  	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
  	sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
+        sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile

Just noticed the indent here is not correct.
I've fixed this indentation problem and updated the remote branch. Sorry for the inconvenience.

Best Regards,
Chen Qi

Quoted 3 lines
meta/recipes-core/base-files/base-files_3.0.14.bb +0 -0
  	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
  	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
  	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
#3 lore raw
In reply to Chen Qi
Quoted 11 lines

-----Original Message-----
From: [email protected] <openembedded- [email protected]> On Behalf Of Chen Qi
Sent: den 1 augusti 2018 07:26
To: [email protected]
Subject: [OE-core] [PATCH 1/1] base-files: fix handling of resize

The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox.

Meh, I was pretty sure I had verified it with resize from busybox, but it seems you are correct. However, the current logic can be maintained by instead changing the first invocation of resize to call "resize --help 2>/dev/null".

Quoted 2 lines

What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient.

Well, the intent of the current code (and the code before it) was to be agnostic to where resize happens to be located. That is obviously no longer the case after your change. Whether that matters or not, I do not know...

Quoted 36 lines
---
 meta/recipes-core/base-files/base-files/profile   | 6 +-----
 meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
 2 files changed, 2 insertions(+), 5 deletions(-)
meta/recipes-core/base-files/base-files/profile +1 -5
index e14cb2d..9e4283e 100644
@@ -24,11 +24,7 @@ fi
 # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
 # use ssh
 case $(tty 2>/dev/null) in
-	# The first invocation of resize verifies that it exists, the second
-	# does the actual resizing. This is due to that resize uses stderr to
-	# determine the size of the tty, which does not work if it is redirected
-	# to /dev/null.
-	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+	/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
 esac
 
 export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
meta/recipes-core/base-files/base-files_3.0.14.bb +1 -1
index 1c0863b..05c0562 100644
@@ -121,6 +121,7 @@ do_install () {
 	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
 	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
 	sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
+        sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
 	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
 	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
 	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
--
Quoted 1 line

1.9.1

//Peter

author
#4 lore raw
Quoted 16 lines · Peter Kjellerstedt
Quoted 11 lines

-----Original Message-----
From: [email protected] <openembedded- [email protected]> On Behalf Of Chen Qi
Sent: den 1 augusti 2018 07:26
To: [email protected]
Subject: [OE-core] [PATCH 1/1] base-files: fix handling of resize

The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox.

Meh, I was pretty sure I had verified it with resize from busybox, but it seems you are correct. However, the current logic can be maintained by instead changing the first invocation of resize to call "resize --help 2>/dev/null".

Quoted 6 lines
Quoted 2 lines

What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient.

Well, the intent of the current code (and the code before it) was to be agnostic to where resize happens to be located. That is obviously no longer the case after your change. Whether that matters or not, I do not know...

Thanks for clarifying things.
As both busybox and xterm install resize in ${bindir}, I think we will not have any trouble. Besides, our update-alternatives mechanism does not allow different ALTERNATIVE_LINK_NAME for the same entry.

Best Regards,
Chen Qi

Quoted 40 lines
Quoted 36 lines
---
  meta/recipes-core/base-files/base-files/profile   | 6 +-----
  meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
  2 files changed, 2 insertions(+), 5 deletions(-)
meta/recipes-core/base-files/base-files/profile +1 -5
index e14cb2d..9e4283e 100644
@@ -24,11 +24,7 @@ fi
  # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
  # use ssh
  case $(tty 2>/dev/null) in
-	# The first invocation of resize verifies that it exists, the second
-	# does the actual resizing. This is due to that resize uses stderr to
-	# determine the size of the tty, which does not work if it is redirected
-	# to /dev/null.
-	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+	/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
  esac
 
  export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
meta/recipes-core/base-files/base-files_3.0.14.bb +1 -1
index 1c0863b..05c0562 100644
@@ -121,6 +121,7 @@ do_install () {
  	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
  	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
  	sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
+        sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
  	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
  	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
  	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc
--
Quoted 1 line

1.9.1

//Peter

author
#5 lore raw
In reply to Chen Qi

ping

Quoted 43 lines · Chen Qi

The current handling of resize is incorrect. Using `resize > /dev/null 2>&1 && resize > /dev/null' will cause the second resize command to not execute because 'resize > /dev/null 2>&1' will fail for resize utility from busybox.

What we really should do is just to check whether ${bindir}/resize is executable and execute it if so. Using '-x' is sufficient.

---
  meta/recipes-core/base-files/base-files/profile   | 6 +-----
  meta/recipes-core/base-files/base-files_3.0.14.bb | 1 +
  2 files changed, 2 insertions(+), 5 deletions(-)
meta/recipes-core/base-files/base-files/profile +1 -5
index e14cb2d..9e4283e 100644
@@ -24,11 +24,7 @@ fi
  # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do
  # use ssh
  case $(tty 2>/dev/null) in
-	# The first invocation of resize verifies that it exists, the second
-	# does the actual resizing. This is due to that resize uses stderr to
-	# determine the size of the tty, which does not work if it is redirected
-	# to /dev/null.
-	/dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;;
+	/dev/tty[A-z]*) [ -x @BINDIR@/resize ] && @BINDIR@/resize >/dev/null;;
  esac
 
  export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
meta/recipes-core/base-files/base-files_3.0.14.bb +1 -0
index 1c0863b..05c0562 100644
@@ -121,6 +121,7 @@ do_install () {
  	install -m 0644 ${WORKDIR}/usbd ${D}${sysconfdir}/default/usbd
  	install -m 0644 ${WORKDIR}/profile ${D}${sysconfdir}/profile
  	sed -i 's#ROOTHOME#${ROOT_HOME}#' ${D}${sysconfdir}/profile
+        sed -i 's#@BINDIR@#${bindir}#g' ${D}${sysconfdir}/profile
  	install -m 0644 ${WORKDIR}/shells ${D}${sysconfdir}/shells
  	install -m 0755 ${WORKDIR}/share/dot.profile ${D}${sysconfdir}/skel/.profile
  	install -m 0755 ${WORKDIR}/share/dot.bashrc ${D}${sysconfdir}/skel/.bashrc