classes/buildhistory: fix expansion of escape sequences
PATCH 1/1 classes/buildhistory: fix expansion of escape sequences
OE-Core commit 259b8718a31b886f8a158aeb5de164840c9a28b2 fixed UTF-8 errors but broke decoding of escape sequences in strings (e.g. pkg_postinst scripts had \n \t in them instead of newlines and tabs.) We need a second call to decode() here as specifying 'string_escape' as the second parameter won't do anything.
--- meta/classes/buildhistory.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/buildhistory.bbclass +1 -1
@@ -190,7 +190,7 @@ python buildhistory_emit_pkghistory() { key = item[0] if key.endswith('_' + pkg): key = key[:-len(pkg)-1] - pkgdata[key] = item[1].decode('utf-8', 'string_escape') + pkgdata[key] = item[1].decode('utf-8').decode('string_escape') pkge = pkgdata.get('PKGE', '0') pkgv = pkgdata['PKGV']
Signature · 1 line
1.8.5.3
Thanks for fixing it. Looks correct to me
Quoted 31 lines · Paul Eggleton
OE-Core commit
259b8718a31b886f8a158aeb5de164840c9a28b2fixed UTF-8 errors but broke decoding of escape sequences in strings (e.g.pkg_postinstscripts had \n \t in them instead of newlines and tabs.) We need a second call todecode()here as specifying 'string_escape' as the second parameter won't do anything.Signed-off-by Paul Eggleton <[email protected]>--- meta/classes/buildhistory.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/classes/buildhistory.bbclass +1
-2@@ -190,7 +190,7 @@ python buildhistory_emit_pkghistory() { key = item[0] if key.endswith('_' + pkg): key = key[:-len(pkg)-1] - pkgdata[key] = item[1].decode('utf-8', 'string_escape') + pkgdata[key] = item[1].decode('utf-8').decode('string_escape') pkge = pkgdata.get('PKGE', '0') pkgv = pkgdata['PKGV'] --1.8.5.3
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 2 lines · Khem Raj
Thanks for fixing it. Looks correct to me
There still might be an issue:
Quoted 20 lines
ERROR: Error executing a python function in
/srv/hdd/poky/meta/recipes-support/ca-certificates/ca-certificates_20130610.bb:The stack trace of python calls that resulted in this exception/failure was:
File: 'buildhistory_emit_pkghistory', lineno: 220, function: <module>0216: 0217: write_pkghistory(pkginfo, d) 0218: 0219: *** 0220:buildhistory_emit_pkghistory(d) 0221: File: 'buildhistory_emit_pkghistory', lineno: 217, function: buildhistory_emit_pkghistory 0213: pkginfo.filelist = " ".join(filelist) 0214: 0215: pkginfo.size = int(pkgdata['PKGSIZE']) 0216: *** 0217: write_pkghistory(pkginfo, d) 0218: 0219: 0220:buildhistory_emit_pkghistory(d) 0221:
Quoted 12 lines
File: 'buildhistory.bbclass', lineno: 38, function:
write_pkghistory
0034: if pkginfo.rconflicts:
0035:f.write("RCONFLICTS = %s\n" % pkginfo.rconflicts)
0036:f.write("PKGSIZE = %d\n" % pkginfo.size)
0037:f.write("FILES = %s\n" % pkginfo.files)
*** 0038:f.write("FILELIST = %s\n" % pkginfo.filelist)
0039:
0040: for filevar in pkginfo.filevars:
0041: filevarpath =os.path.join(pkgpath, "latest.%s" % filevar)
0042: val = pkginfo.filevars[filevar]
Exception: UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 337: ordinal not in range(128)
I tried to delete the buildhistory for ca-certs and rebuild without any sstate, but it still failed to build. correctly.
Sau!
Quoted 44 lines
ERROR: Function failed:
buildhistory_emit_pkghistory
ERROR: Logfile of failure stored in:/srv/hdd/builds/world/tmp/work/all-poky-linux/ca-certificates/20130610-r0/temp/log.do_packagedata.14089
ERROR: Task 9 (/srv/hdd/poky/meta/recipes-support/ca-certificates/ca-certificates_20130610.bb,do_packagedata) failed with exit code '1'Acked-by Khem Raj <[email protected]>Quoted 27 lines · Paul Eggleton
OE-Core commit
259b8718a31b886f8a158aeb5de164840c9a28b2fixed UTF-8 errors but broke decoding of escape sequences in strings (e.g.pkg_postinstscripts had \n \t in them instead of newlines and tabs.) We need a second call todecode()here as specifying 'string_escape' as the second parameter won't do anything.Signed-off-by Paul Eggleton <[email protected]>--- meta/classes/buildhistory.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)meta/classes/buildhistory.bbclass +1
-2@@ -190,7 +190,7 @@ python buildhistory_emit_pkghistory() { key = item[0] if key.endswith('_' + pkg): key = key[:-len(pkg)-1] - pkgdata[key] = item[1].decode('utf-8', 'string_escape') + pkgdata[key] = item[1].decode('utf-8').decode('string_escape') pkge = pkgdata.get('PKGE', '0') pkgv = pkgdata['PKGV'] --1.8.5.3
Quoted 4 lines
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Quoted 45 lines · On Wednesday 05 February 2014 11:26:56 Saul Wold wrote:
There still might be an issue:
Quoted 44 lines
ERROR: Error executing a python function in
/srv/hdd/poky/meta/recipes-support/ca-certificates/ca-certificates_20130610.bb:The stack trace of python calls that resulted in this exception/failure
was: File: 'buildhistory_emit_pkghistory', lineno: 220, function:
<module>>0216: 0217: write_pkghistory(pkginfo, d) 0218: 0219:*** 0220:buildhistory_emit_pkghistory(d)
0221: File: 'buildhistory_emit_pkghistory', lineno: 217, function: buildhistory_emit_pkghistory> 0213: pkginfo.filelist = " ".join(filelist) 0214: 0215: pkginfo.size = int(pkgdata['PKGSIZE']) 0216:*** 0217:
write_pkghistory(pkginfo, d)0218: 0219: 0220:buildhistory_emit_pkghistory(d) 0221:File: 'buildhistory.bbclass', lineno: 38, function:
write_pkghistory0034: if pkginfo.rconflicts:
0035:f.write("RCONFLICTS = %s\n" % pkginfo.rconflicts)
0036:f.write("PKGSIZE = %d\n" % pkginfo.size)
0037:f.write("FILES = %s\n" % pkginfo.files)*** 0038:
f.write("FILELIST = %s\n" % pkginfo.filelist)0039:
0040: for filevar in pkginfo.filevars:
0041: filevarpath = os.path.join(pkgpath, "latest.%s" %
filevar)
0042: val = pkginfo.filevars[filevar]
Quoted 5 lines
Quoted 2 lines
Exception: UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 337: ordinal not in range(128)
I tried to delete the buildhistory for ca-certs and rebuild without any sstate, but it still failed to build. correctly.
I've now reproduced this, working on a fix.
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre