mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-06-03 14:19:52 +00:00
pv: Show progress bar even if no terminal is set as in 1.6.6
The currently used version 1.6.20 of pv does not show the progress bar if no controlling terminal is set. Added a patch which restores previous behavior of pv as in version 1.6.6. Tested with pv in the busybox initscript of GyroidOS which is running on /dev/console (which has no controlling tty). With this fix, we get the progress bar back on /dev/console as before. This was also submitted upstream but dangling since several Months: https://github.com/a-j-wood/pv/pull/64 Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de> Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
+38
@@ -0,0 +1,38 @@
|
|||||||
|
From c5cd932fb08e7ce90cdbf9ae6c5cc7e65ac0738e Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Michael=20Wei=C3=9F?= <michael.weiss@aisec.fraunhofer.de>
|
||||||
|
Date: Tue, 9 May 2023 20:00:26 +0200
|
||||||
|
Subject: [PATCH] pv/display: handle error of tcgetpgrp() in pv_in_foreground()
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Show pv progress bar even if no terminal is set, e.g., in a busybox
|
||||||
|
init script. The description of pv_in_forground() states it will
|
||||||
|
return true "if we aren't outputting to a terminal". However, this
|
||||||
|
is not the case since tcgetpgrg() will return an error and set ERRNO
|
||||||
|
to ENOTTY if the output fd is not an tty. We now handle this error
|
||||||
|
correctly and pv_in_foreground() returns also true in that case.
|
||||||
|
|
||||||
|
Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de>
|
||||||
|
---
|
||||||
|
src/pv/display.c | 4 ++++
|
||||||
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/pv/display.c b/src/pv/display.c
|
||||||
|
index aff643b..8d1f4c9 100644
|
||||||
|
--- a/src/pv/display.c
|
||||||
|
+++ b/src/pv/display.c
|
||||||
|
@@ -48,6 +48,10 @@ bool pv_in_foreground(void)
|
||||||
|
|
||||||
|
our_process_group = getpgrp();
|
||||||
|
tty_process_group = tcgetpgrp(STDERR_FILENO);
|
||||||
|
+
|
||||||
|
+ if (tty_process_group == -1 && errno == ENOTTY)
|
||||||
|
+ return true;
|
||||||
|
+
|
||||||
|
if (our_process_group == tty_process_group)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
@@ -5,6 +5,7 @@ LICENSE = "Artistic-2.0"
|
|||||||
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
|
LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
|
||||||
|
|
||||||
SRC_URI = "https://www.ivarch.com/programs/sources/${BP}.tar.bz2 \
|
SRC_URI = "https://www.ivarch.com/programs/sources/${BP}.tar.bz2 \
|
||||||
|
file://0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch \
|
||||||
file://run-ptest \
|
file://run-ptest \
|
||||||
"
|
"
|
||||||
SRC_URI[sha256sum] = "e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603"
|
SRC_URI[sha256sum] = "e831951eff0718fba9b1ef286128773b9d0e723e1fbfae88d5a3188814fdc603"
|
||||||
|
|||||||
Reference in New Issue
Block a user