From patchwork Tue Jan 3 06:18:49 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [CONSOLIDATED, PULL, 003/113] classes/rootfs_rpm: handle recommends in query functions Date: Tue, 03 Jan 2012 06:18:49 -0000 From: Saul Wold X-Patchwork-Id: 18005 Message-Id: To: openembedded-core@lists.openembedded.org From: Paul Eggleton Implement list_package_recommends() for rpm, and filter out the "suggests" (RPM's equivalent of recommends) in list_package_depends(). Respectively, these changes fix buildhistory handling of recommends for RPM (so that they are included in the image graphs) and also prevents failures during do_rootfs with buildhistory enabled if a recommend is unsatisfied. Signed-off-by: Paul Eggleton --- meta/classes/rootfs_rpm.bbclass | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index 5fd45d7..966b074 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -174,7 +174,9 @@ get_package_filename() { list_package_depends() { pkglist=`list_installed_packages` - for req in `${RPM_QUERY_CMD} -q --qf "[%{REQUIRES}\n]" $1`; do + # REQUIRE* lists "soft" requirements (which we know as recommends and RPM refers to + # as "suggests") so filter these out with the help of awk + for req in `${RPM_QUERY_CMD} -q --qf "[%{REQUIRENAME} %{REQUIREFLAGS}\n]" $1 | awk '{ if( and($2, 0x80000) == 0) print $1 }'`; do if echo "$req" | grep -q "^rpmlib" ; then continue ; fi realpkg="" @@ -193,7 +195,7 @@ list_package_depends() { } list_package_recommends() { - : + ${RPM_QUERY_CMD} -q --suggests $1 } install_all_locales() {