]> code.ossystems Code Review - openembedded-core.git/commitdiff
classes/rootfs_rpm: handle recommends in query functions
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Thu, 22 Dec 2011 16:55:57 +0000 (16:55 +0000)
committerSaul Wold <sgw@linux.intel.com>
Tue, 3 Jan 2012 04:26:05 +0000 (20:26 -0800)
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 <paul.eggleton@linux.intel.com>
meta/classes/rootfs_rpm.bbclass

index 5fd45d758c57157c2c1a356be83cc83cc315f2de..966b074181cf790ff4e64176a8dc8098e56277cd 100644 (file)
@@ -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() {