From: Saul Wold Date: Wed, 19 Sep 2012 16:47:06 +0000 (-0700) Subject: rootfs_rpm: Add Multilib prefix to installed_packages list X-Git-Tag: rev_ivi_2015_02_04~15482 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=089afc325af468b0b9de27f8013608304d3814d0;p=scm%2Fbb%2Ftizen-distro.git rootfs_rpm: Add Multilib prefix to installed_packages list 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. (From OE-Core rev: f72abd80b0cc9d27aad2e31ecb548b4ab0fd8f67) Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- 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 }