1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-26 07:07:08 +00:00

classes/buildhistory: add new output history collection class

Create a new build output history reporting class, using testlab.bbclass
from meta-oe and packagehistory.bbclass as a base. This records information
from packages and images output from the build process in text files
structured suitably for tracking within a git repository, thus enabling
monitoring of changes over time.

Build history collection can be enabled simply by adding the following
to your local.conf:

INHERIT += "buildhistory"

The output after a build can then be found in BUILDHISTORY_DIR (defaults to
TMPDIR/buildhistory). If you set up this directory as a git repository and
set BUILDHISTORY_COMMIT to "1" in local.conf, the build history data will
be committed on every build.

(From OE-Core rev: 508ff624fea705eb93cf2cc1e0c9c42cb817acf8)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2011-11-30 16:48:47 +00:00
committed by Richard Purdie
parent 8e2c578767
commit 1dcb2d8eeb
3 changed files with 412 additions and 6 deletions
+36 -5
View File
@@ -160,16 +160,47 @@ remove_packaging_data_files() {
rm -rf ${IMAGE_ROOTFS}${opkglibdir}
}
RPM_QUERY_CMD = '${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \
-D "__dbi_txn create nofsync private"'
list_installed_packages() {
${RPM_QUERY_CMD} -qa --qf "[%{NAME}\n]"
}
get_package_filename() {
resolve_package_rpm ${RPMCONF_TARGET_BASE}-base_archs.conf $1
}
list_package_depends() {
pkglist=`list_installed_packages`
for req in `${RPM_QUERY_CMD} -q --qf "[%{REQUIRES}\n]" $1`; do
if echo "$req" | grep -q "^rpmlib" ; then continue ; fi
realpkg=""
for dep in $pkglist; do
if [ "$dep" = "$req" ] ; then
realpkg="1"
echo $req
break
fi
done
if [ "$realdep" = "" ] ; then
${RPM_QUERY_CMD} -q --whatprovides $req --qf "%{NAME}\n"
fi
done
}
list_package_recommends() {
:
}
install_all_locales() {
PACKAGES_TO_INSTALL=""
# Generate list of installed packages...
INSTALLED_PACKAGES=$( \
${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \
-D "__dbi_txn create nofsync private" \
-qa --qf "[%{NAME}\n]" | egrep -v -- "(-locale-|-dev$|-doc$|^kernel|^glibc|^ttf|^task|^perl|^python)" \
)
INSTALLED_PACKAGES=`list_installed_packages | egrep -v -- "(-locale-|-dev$|-doc$|^kernel|^glibc|^ttf|^task|^perl|^python)"`
# This would likely be faster if we did it in one transaction
# but this should be good enough for the few users of this function...