[bitbake-devel] [PATCH] fetch: fix unpacking .deb and .ipk with python3
Martin Jansa
martin.jansa at gmail.com
Tue Jun 14 14:02:20 UTC 2016
* otherwise e.g. libjs-jquery-1.7.2-r0 do_unpack fails like this:
http://errors.yoctoproject.org/Errors/Details/69433/
DEBUG: Executing python function do_unpack
DEBUG: Executing python function base_do_unpack
ERROR: Error executing a python function in exec_python_func() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:base_do_unpack(d)
0003:
File: ' /openembedded-core/meta/classes/base.bbclass', lineno: 155, function: base_do_unpack
0151: bb.utils.remove(p_dir, True)
0152:
0153: try:
0154: fetcher = bb.fetch2.Fetch(src_uri, d)
*** 0155: fetcher.unpack(rootdir)
0156: except bb.fetch2.BBFetchException as e:
0157: raise bb.build.FuncFailed(e)
0158:}
0159:
File: ' /bitbake/lib/bb/fetch2/__init__.py', lineno: 1681, function: unpack
1677:
1678: if ud.lockfile:
1679: lf = bb.utils.lockfile(ud.lockfile)
1680:
*** 1681: ud.method.unpack(ud, root, self.d)
1682:
1683: if ud.lockfile:
1684: bb.utils.unlockfile(lf)
1685:
File: ' /bitbake/lib/bb/fetch2/__init__.py', lineno: 1399, function: unpack
1395: output = subprocess.check_output('ar -t %s' % file, preexec_fn=subprocess_setup, shell=True)
1396: datafile = None
1397: if output:
1398: for line in output.splitlines():
*** 1399: if line.startswith('data.tar.'):
1400: datafile = line
1401: break
1402: else:
1403: raise UnpackError("Unable to unpack deb/ipk package - does not contain data.tar.* file", urldata.url)
Exception: TypeError: startswith first arg must be bytes or a tuple of bytes, not str
DEBUG: Python function base_do_unpack finished
DEBUG: Python function do_unpack finished
ERROR: Function failed: base_do_unpack
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
---
lib/bb/fetch2/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index f612318..325a66c 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -1392,7 +1392,7 @@ class FetchMethod(object):
else:
cmd = 'rpm2cpio.sh %s | cpio -id' % (file)
elif file.endswith('.deb') or file.endswith('.ipk'):
- output = subprocess.check_output('ar -t %s' % file, preexec_fn=subprocess_setup, shell=True)
+ output = subprocess.check_output('ar -t %s' % file, preexec_fn=subprocess_setup, shell=True).decode("utf-8")
datafile = None
if output:
for line in output.splitlines():
--
2.9.0
More information about the bitbake-devel
mailing list