diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-03-22 19:53:52 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-23 11:41:13 +0000 |
| commit | 59e48153877269d5eea393ad2f6d1827f74720ac (patch) | |
| tree | 1fc56600125082af451cf86c0c1347804bad36e7 /meta/classes/package_deb.bbclass | |
| parent | 9e366e153234114ab3c51e4bb8e3452593f64070 (diff) | |
| download | poky-59e48153877269d5eea393ad2f6d1827f74720ac.tar.gz | |
classes/buildhistory: implement history collection for SDKs
SDKs are constructed in a similar manner to images, and the contents can
be influenced by a number of different factors, thus tracking the
contents of produced SDKs when buildhistory is enabled can help detect
the same kinds of issues as with images.
This required adding POPULATE_SDK_POST_HOST_COMMAND and
SDK_POSTPROCESS_COMMAND variables so that data collection functions can
be injected at the appropriate points in the SDK construction process,
as well as moving the list_installed_packages and
rootfs_list_installed_depends functions from the rootfs_{rpm,ipk,deb} to
the package_{rpm,ipk,deb} classes so they can also be called during
do_populate_sdk as well as do_rootfs.
Implements [YOCTO #3964].
(From OE-Core rev: c3736064483d4840e38cb1b8c13d2dd3a26b36aa)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/package_deb.bbclass')
| -rw-r--r-- | meta/classes/package_deb.bbclass | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 455919913b..a937b85a61 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
| @@ -423,3 +423,31 @@ addtask package_write_deb before do_package_write after do_packagedata do_packag | |||
| 423 | PACKAGEINDEXES += "[ ! -e ${DEPLOY_DIR_DEB} ] || package_update_index_deb;" | 423 | PACKAGEINDEXES += "[ ! -e ${DEPLOY_DIR_DEB} ] || package_update_index_deb;" |
| 424 | PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot" | 424 | PACKAGEINDEXDEPS += "dpkg-native:do_populate_sysroot" |
| 425 | PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot" | 425 | PACKAGEINDEXDEPS += "apt-native:do_populate_sysroot" |
| 426 | |||
| 427 | |||
| 428 | # This will of course only work after rootfs_deb_do_rootfs or populate_sdk_deb has been called | ||
| 429 | DPKG_QUERY_COMMAND = "${STAGING_BINDIR_NATIVE}/dpkg-query --admindir=$INSTALL_ROOTFS_DEB/var/lib/dpkg" | ||
| 430 | |||
| 431 | list_installed_packages() { | ||
| 432 | if [ "$1" = "arch" ] ; then | ||
| 433 | # Here we want the PACKAGE_ARCH not the deb architecture | ||
| 434 | ${DPKG_QUERY_COMMAND} -W -f='${Package} ${PackageArch}\n' | ||
| 435 | elif [ "$1" = "file" ] ; then | ||
| 436 | ${DPKG_QUERY_COMMAND} -W -f='${Package} ${Package}_${Version}_${Architecture}.deb\n' | while read pkg pkgfile | ||
| 437 | do | ||
| 438 | fullpath=`find ${DEPLOY_DIR_DEB} -name "$pkgfile" || true` | ||
| 439 | if [ "$fullpath" = "" ] ; then | ||
| 440 | echo "$pkg $pkgfile" | ||
| 441 | else | ||
| 442 | echo "$pkg $fullpath" | ||
| 443 | fi | ||
| 444 | done | ||
| 445 | else | ||
| 446 | ${DPKG_QUERY_COMMAND} -W -f='${Package}\n' | ||
| 447 | fi | ||
| 448 | } | ||
| 449 | |||
| 450 | rootfs_list_installed_depends() { | ||
| 451 | # Cheat here a little bit by using the opkg query helper util | ||
| 452 | ${DPKG_QUERY_COMMAND} -W -f='Package: ${Package}\nDepends: ${Depends}\nRecommends: ${Recommends}\n\n' | opkg-query-helper.py | ||
| 453 | } | ||
