python3-lxml: check the return value

Check the return value in subprocess to guarantee the subprocess
execute successfully or not as after [1] introduced to limit the
netowork, there some difference during do_compile phase as below.
Before the change
 # python
 Python 3.8.10 (default, Nov 26 2021, 20:14:08)
 [GCC 9.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import subprocess
 >>> cmd = "pkg-config --modversion libxml-2.0"
 >>> p = subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 >>> stdout_data, errors = p.communicate()
 >>> print(stdout_data)
 b'2.9.12\n'
 >>> print(errors)
 b''
 >>>

After the change
 # python
 Python 3.8.10 (default, Nov 26 2021, 20:14:08)
 [GCC 9.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import subprocess
 >>> cmd = "pkg-config --modversion libxml-2.0"
 >>> p = subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
 >>> stdout_data, errors = p.communicate()
 >>> print(stdout_data)
 b'2.9.12\n'
 >>> print(errors)
 b'do_ypcall: clnt_call: RPC: Unable to send; errno = Network is unreachable\n'
 >>>

[1] https://git.openembedded.org/bitbake/commit/?id=0746b6a2a32fec4c18bf1a52b1454ca4c04bf543

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
This commit is contained in:
Mingli Yu
2022-01-20 15:47:02 +08:00
committed by Khem Raj
parent 20cf58d25e
commit 334932fffc
2 changed files with 49 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
From 057872fa40e061100d61117cee5c3413ef2e40fc Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
Date: Thu, 20 Jan 2022 15:18:20 +0800
Subject: [PATCH] setupinfo.py: check the return value
Use the return value altogether to check the subprocess execute
successfully or not as in some case it will print some noise
message though run successfully as below.
# python
Python 3.8.10 (default, Nov 26 2021, 20:14:08)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> cmd = "pkg-config --modversion libxml-2.0"
>>> p = subprocess.Popen(cmd, shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE)
>>> stdout_data, errors = p.communicate()
>>> print(stdout_data)
b'2.9.12\n'
>>> print(errors)
b'do_ypcall: clnt_call: RPC: Unable to send; errno = Network is unreachable\n'
>>>
Upstream-Status: Submitted [https://github.com/lxml/lxml/pull/336]
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
setupinfo.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setupinfo.py b/setupinfo.py
index 8c2a36fb..c1247c6d 100644
--- a/setupinfo.py
+++ b/setupinfo.py
@@ -365,7 +365,7 @@ def run_command(cmd, *args):
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout_data, errors = p.communicate()
- if errors:
+ if p.returncode != 0 and errors:
return ''
return decode_input(stdout_data).strip()
--
2.17.1