summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/buildhistory.bbclass10
-rw-r--r--meta/lib/oe/buildhistory_analysis.py23
2 files changed, 27 insertions, 6 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 8efd41cd8e..3b6ce99413 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -12,6 +12,7 @@ BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
12BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" 12BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
13BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" 13BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}"
14BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}" 14BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}"
15BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
15BUILDHISTORY_COMMIT ?= "0" 16BUILDHISTORY_COMMIT ?= "0"
16BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" 17BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
17BUILDHISTORY_PUSH_REPO ?= "" 18BUILDHISTORY_PUSH_REPO ?= ""
@@ -396,6 +397,15 @@ buildhistory_get_imageinfo() {
396 397
397 buildhistory_list_files ${IMAGE_ROOTFS} ${BUILDHISTORY_DIR_IMAGE}/files-in-image.txt 398 buildhistory_list_files ${IMAGE_ROOTFS} ${BUILDHISTORY_DIR_IMAGE}/files-in-image.txt
398 399
400 # Collect files requested in BUILDHISTORY_IMAGE_FILES
401 rm -rf ${BUILDHISTORY_DIR_IMAGE}/image-files
402 for f in ${BUILDHISTORY_IMAGE_FILES}; do
403 if [ -f ${IMAGE_ROOTFS}/$f ] ; then
404 mkdir -p ${BUILDHISTORY_DIR_IMAGE}/image-files/`dirname $f`
405 cp ${IMAGE_ROOTFS}/$f ${BUILDHISTORY_DIR_IMAGE}/image-files/$f
406 fi
407 done
408
399 # Record some machine-readable meta-information about the image 409 # Record some machine-readable meta-information about the image
400 printf "" > ${BUILDHISTORY_DIR_IMAGE}/image-info.txt 410 printf "" > ${BUILDHISTORY_DIR_IMAGE}/image-info.txt
401 cat >> ${BUILDHISTORY_DIR_IMAGE}/image-info.txt <<END 411 cat >> ${BUILDHISTORY_DIR_IMAGE}/image-info.txt <<END
diff --git a/meta/lib/oe/buildhistory_analysis.py b/meta/lib/oe/buildhistory_analysis.py
index 2306bcb4bf..86b5a12347 100644
--- a/meta/lib/oe/buildhistory_analysis.py
+++ b/meta/lib/oe/buildhistory_analysis.py
@@ -52,7 +52,10 @@ class ChangeRecord:
52 52
53 def _str_internal(self, outer): 53 def _str_internal(self, outer):
54 if outer: 54 if outer:
55 prefix = '%s: ' % self.path 55 if '/image-files/' in self.path:
56 prefix = '%s: ' % self.path.split('/image-files/')[0]
57 else:
58 prefix = '%s: ' % self.path
56 else: 59 else:
57 prefix = '' 60 prefix = ''
58 61
@@ -107,16 +110,21 @@ class ChangeRecord:
107 diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='') 110 diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='')
108 out += '\n '.join(list(diff)[2:]) 111 out += '\n '.join(list(diff)[2:])
109 out += '\n --' 112 out += '\n --'
110 elif self.fieldname in img_monitor_files: 113 elif self.fieldname in img_monitor_files or '/image-files/' in self.path:
111 if outer: 114 fieldname = self.fieldname
112 prefix = 'Changes to %s ' % self.path 115 if '/image-files/' in self.path:
113 out = '(%s):\n ' % self.fieldname 116 fieldname = os.path.join('/' + self.path.split('/image-files/')[1], self.fieldname)
117 out = 'Changes to %s:\n ' % fieldname
118 else:
119 if outer:
120 prefix = 'Changes to %s ' % self.path
121 out = '(%s):\n ' % self.fieldname
114 if self.filechanges: 122 if self.filechanges:
115 out += '\n '.join(['%s' % i for i in self.filechanges]) 123 out += '\n '.join(['%s' % i for i in self.filechanges])
116 else: 124 else:
117 alines = self.oldvalue.splitlines() 125 alines = self.oldvalue.splitlines()
118 blines = self.newvalue.splitlines() 126 blines = self.newvalue.splitlines()
119 diff = difflib.unified_diff(alines, blines, self.fieldname, self.fieldname, lineterm='') 127 diff = difflib.unified_diff(alines, blines, fieldname, fieldname, lineterm='')
120 out += '\n '.join(list(diff)) 128 out += '\n '.join(list(diff))
121 out += '\n --' 129 out += '\n --'
122 else: 130 else:
@@ -393,6 +401,9 @@ def process_changes(repopath, revision1, revision2 = 'HEAD', report_all = False)
393 changes.append(chg) 401 changes.append(chg)
394 elif filename == 'image-info.txt': 402 elif filename == 'image-info.txt':
395 changes.extend(compare_dict_blobs(path, d.a_blob, d.b_blob, report_all)) 403 changes.extend(compare_dict_blobs(path, d.a_blob, d.b_blob, report_all))
404 elif '/image-files/' in path:
405 chg = ChangeRecord(path, filename, d.a_blob.data_stream.read(), d.b_blob.data_stream.read(), True)
406 changes.append(chg)
396 407
397 # Look for added preinst/postinst/prerm/postrm 408 # Look for added preinst/postinst/prerm/postrm
398 # (without reporting newly added recipes) 409 # (without reporting newly added recipes)