diff options
-rw-r--r-- | meta/classes/buildhistory.bbclass | 10 | ||||
-rw-r--r-- | meta/lib/oe/buildhistory_analysis.py | 23 |
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" | |||
12 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" | 12 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" |
13 | BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" | 13 | BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" |
14 | BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}" | 14 | BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}" |
15 | BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" | ||
15 | BUILDHISTORY_COMMIT ?= "0" | 16 | BUILDHISTORY_COMMIT ?= "0" |
16 | BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" | 17 | BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" |
17 | BUILDHISTORY_PUSH_REPO ?= "" | 18 | BUILDHISTORY_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) |