mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
classes/buildhistory: handle packaged files with names containing spaces
The FILELIST field of the package info file in the buildhistory repository is a space-separated list of all of the files in the package. If a name of a file packaged by a recipe contains a space character then of course the result was that we didn't handle its name properly. To fix that, use quotes around any filename containing spaces and at the other end use these quotes to extract the proper entries. Fixes [YOCTO #12742]. (From OE-Core rev: 801b705957dc683030d11393f43407d0b3506b6a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
0bbb80d381
commit
2e8787593f
|
@ -77,6 +77,7 @@ python buildhistory_emit_pkghistory() {
|
|||
|
||||
import re
|
||||
import json
|
||||
import shlex
|
||||
import errno
|
||||
|
||||
pkghistdir = d.getVar('BUILDHISTORY_DIR_PACKAGE')
|
||||
|
@ -287,7 +288,7 @@ python buildhistory_emit_pkghistory() {
|
|||
dictval = json.loads(val)
|
||||
filelist = list(dictval.keys())
|
||||
filelist.sort()
|
||||
pkginfo.filelist = " ".join(filelist)
|
||||
pkginfo.filelist = " ".join([shlex.quote(x) for x in filelist])
|
||||
|
||||
pkginfo.size = int(pkgdata['PKGSIZE'])
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ import os.path
|
|||
import difflib
|
||||
import git
|
||||
import re
|
||||
import shlex
|
||||
import hashlib
|
||||
import collections
|
||||
import bb.utils
|
||||
|
@ -115,10 +116,13 @@ class ChangeRecord:
|
|||
aitems = pkglist_combine(depvera)
|
||||
bitems = pkglist_combine(depverb)
|
||||
else:
|
||||
aitems = self.oldvalue.split()
|
||||
bitems = self.newvalue.split()
|
||||
if self.fieldname == 'FILELIST':
|
||||
aitems = shlex.split(self.oldvalue)
|
||||
bitems = shlex.split(self.newvalue)
|
||||
renamed_dirs, aitems, bitems = detect_renamed_dirs(aitems, bitems)
|
||||
else:
|
||||
aitems = self.oldvalue.split()
|
||||
bitems = self.newvalue.split()
|
||||
|
||||
removed = list(set(aitems) - set(bitems))
|
||||
added = list(set(bitems) - set(aitems))
|
||||
|
@ -409,9 +413,13 @@ def compare_dict_blobs(path, ablob, bblob, report_all, report_ver):
|
|||
(depvera, depverb) = compare_pkg_lists(astr, bstr)
|
||||
if depvera == depverb:
|
||||
continue
|
||||
alist = astr.split()
|
||||
if key == 'FILELIST':
|
||||
alist = shlex.split(astr)
|
||||
blist = shlex.split(bstr)
|
||||
else:
|
||||
alist = astr.split()
|
||||
blist = bstr.split()
|
||||
alist.sort()
|
||||
blist = bstr.split()
|
||||
blist.sort()
|
||||
# We don't care about the removal of self-dependencies
|
||||
if pkgname in alist and not pkgname in blist:
|
||||
|
|
Loading…
Reference in New Issue
Block a user