[OE-core] [PATCH] package_ipk: handle exception for subprocess command

Andrey Zhizhikin andrey.z at gmail.com
Thu Mar 28 09:46:52 UTC 2019


When opkg-build command fails to execute, subprocess is returned with
exception instead of printing to stderr. This causes the error logging
not to be printed out, as the "finally" statement does not contain any
bitbake error output.

One example of this behavior is when the package name contains uppercase
character, which are rejected by opkg-build, subprocess.check_output
would except and no error log would be produced.

This commit catches the exception subprocess.CalledProcessError and
produces bb.error output visible to the user.

Signed-off-by: Andrey Zhizhikin <andrey.z at gmail.com>
---
 meta/classes/package_ipk.bbclass | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index d1b317b42b..f181f5b4fd 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -234,6 +234,8 @@ def ipk_write_pkg(pkg, d):
             ipk_to_sign = "%s/%s_%s_%s.ipk" % (pkgoutdir, pkgname, ipkver, d.getVar('PACKAGE_ARCH'))
             sign_ipk(d, ipk_to_sign)
 
+    except subprocess.CalledProcessError as exc:
+        bb.error("OPKG Build failed: %s" % exc.output)
     finally:
         cleanupcontrol(root)
         bb.utils.unlockfile(lf)
-- 
2.17.1



More information about the Openembedded-core mailing list