mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
classes/buildhistory: track contents of selected files in images
Add a BUILDHISTORY_IMAGE_FILES variable specifying a space-separated list of files within an image to copy into buildhistory, so that changes to them can be tracked. Typically this would be used for configuration files, and by default this includes /etc/passwd and /etc/group, but the user is free to extend this list by setting the variable in local.conf. Implements [YOCTO #4154]. (From OE-Core rev: ed6bb6e3db518082d3a9c45d548bc1339be2c5ca) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
68f441e303
commit
e42f0acf46
@@ -52,7 +52,10 @@ class ChangeRecord:
|
||||
|
||||
def _str_internal(self, outer):
|
||||
if outer:
|
||||
prefix = '%s: ' % self.path
|
||||
if '/image-files/' in self.path:
|
||||
prefix = '%s: ' % self.path.split('/image-files/')[0]
|
||||
else:
|
||||
prefix = '%s: ' % self.path
|
||||
else:
|
||||
prefix = ''
|
||||
|
||||
@@ -107,16 +110,21 @@ class ChangeRecord:
|
||||
diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='')
|
||||
out += '\n '.join(list(diff)[2:])
|
||||
out += '\n --'
|
||||
elif self.fieldname in img_monitor_files:
|
||||
if outer:
|
||||
prefix = 'Changes to %s ' % self.path
|
||||
out = '(%s):\n ' % self.fieldname
|
||||
elif self.fieldname in img_monitor_files or '/image-files/' in self.path:
|
||||
fieldname = self.fieldname
|
||||
if '/image-files/' in self.path:
|
||||
fieldname = os.path.join('/' + self.path.split('/image-files/')[1], self.fieldname)
|
||||
out = 'Changes to %s:\n ' % fieldname
|
||||
else:
|
||||
if outer:
|
||||
prefix = 'Changes to %s ' % self.path
|
||||
out = '(%s):\n ' % self.fieldname
|
||||
if self.filechanges:
|
||||
out += '\n '.join(['%s' % i for i in self.filechanges])
|
||||
else:
|
||||
alines = self.oldvalue.splitlines()
|
||||
blines = self.newvalue.splitlines()
|
||||
diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='')
|
||||
diff = difflib.unified_diff(alines, blines, fieldname, fieldname, lineterm='')
|
||||
out += '\n '.join(list(diff))
|
||||
out += '\n --'
|
||||
else:
|
||||
@@ -393,6 +401,9 @@ def process_changes(repopath, revision1, revision2 = 'HEAD', report_all = False)
|
||||
changes.append(chg)
|
||||
elif filename == 'image-info.txt':
|
||||
changes.extend(compare_dict_blobs(path, d.a_blob, d.b_blob, report_all))
|
||||
elif '/image-files/' in path:
|
||||
chg = ChangeRecord(path, filename, d.a_blob.data_stream.read(), d.b_blob.data_stream.read(), True)
|
||||
changes.append(chg)
|
||||
|
||||
# Look for added preinst/postinst/prerm/postrm
|
||||
# (without reporting newly added recipes)
|
||||
|
||||
Reference in New Issue
Block a user