Re: [PATCH] package_manager/ipk: do not pipe stderr to stdout

Alexander Kanavin

This needs additional justification. What are the error messages, why are they harmless and why the solution is to suppress them instead of addressing the reasons they appear?


On Tue 28. Jun 2022 at 23.13, Shruthi Ravichandran <shruthi.ravichandran@...> wrote:
When parsing the output of a command, do not pipe stderr to stdout.
Opkg sometimes prints harmless error messages even when the opkg
command succeeds. When stderr is piped to stdout, these error
messages may clobber the stdout and cause unexpected results while
parsing the output.

Signed-off-by: Shruthi Ravichandran <shruthi.ravichandran@...>
 meta/lib/oe/package_manager/ipk/ | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/lib/oe/package_manager/ipk/ b/meta/lib/oe/package_manager/ipk/
index 4cd3963111..d7f3f31853 100644
--- a/meta/lib/oe/package_manager/ipk/
+++ b/meta/lib/oe/package_manager/ipk/
@@ -103,7 +103,7 @@ class OpkgDpkgPM(PackageManager):

-            output = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True).decode("utf-8")
+            output = subprocess.check_output(cmd, shell=True).decode("utf-8")
         except subprocess.CalledProcessError as e:
             bb.fatal("Unable to list available packages. Command '%s' "
                      "returned %d:\n%s" % (cmd, e.returncode, e.output.decode("utf-8")))

Join { to automatically receive all group messages.