RPM does not name it's packages with the Multilib prefix,
but the rootfs_rpm class keeps track of the Multilib prefixs
in a list. Use that list to re-attach the prefix for use with
the license bbclass, buildhistory bbclass will also use this
and make it more accurate between multilib and non-multilib.
Use the embedded "Platform" information to ensure we get all
the correct matching.

Signed-off-by: Saul Wold <s...@linux.intel.com>
---
 meta/classes/rootfs_rpm.bbclass |   19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index c0207d8..d95ccfa 100644
--- a/meta/classes/rootfs_rpm.bbclass
+++ b/meta/classes/rootfs_rpm.bbclass
@@ -141,12 +141,21 @@ RPM_QUERY_CMD = '${RPM} --root $INSTALL_ROOTFS_RPM -D 
"_dbpath ${rpmlibdir}" \
                -D "__dbi_txn create nofsync private"'
 
 list_installed_packages() {
+       GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN} 
%{Platform}\n]")
+
+       # Use awk to find the multilib prefix and compare it
+       # with the platform RPM thinks it is part of
+       for prefix in `echo ${MULTILIB_PREFIX_LIST}`; do
+               GET_LIST=$(echo "$GET_LIST" | awk -v prefix="$prefix" '$0 ~ 
prefix {printf("%s-%s\n", prefix, $0); } $0 !~ prefix {print $0}')
+       done
+
+       # print the info, need to different return counts
        if [ "$1" = "arch" ] ; then
-               ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]"
-       elif [ "$1" = "file" ] ; then
-               ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{PACKAGEORIGIN}\n]"
-       else
-               ${RPM_QUERY_CMD} -qa --qf "[%{NAME}\n]"
+               echo "$GET_LIST" | awk '{print $1, $2}'
+        elif [ "$1" = "file" ] ; then
+               echo "$GET_LIST" | awk '{print $1, $3}'
+        else
+               echo "$GET_LIST" | awk '{print $1}' 
        fi
 }
 
-- 
1.7.9.5


_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to