From patchwork Tue Sep 18 19:19:13 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: rootfs_rpm: Add Multilib prefix to installed_packages list Date: Tue, 18 Sep 2012 19:19:13 -0000 From: Saul Wold X-Patchwork-Id: 36843 Message-Id: <1347995954-1200-1-git-send-email-sgw@linux.intel.com> To: openembedded-core@lists.openembedded.org 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 --- meta/classes/rootfs_rpm.bbclass | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index c0207d8..a93b3ec 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -142,12 +142,27 @@ RPM_QUERY_CMD = '${RPM} --root $INSTALL_ROOTFS_RPM -D "_dbpath ${rpmlibdir}" \ list_installed_packages() { if [ "$1" = "arch" ] ; then - ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" - elif [ "$1" = "file" ] ; then - ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{PACKAGEORIGIN}\n]" + GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{Platform}\n]") + elif [ "$1" = "file" ] ; then + GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{PACKAGEORIGIN} %{Platform}\n]") + else + GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{Platform}\n]") + fi + if [ "x${MULTILIB_PREFIX_LIST}" = "x" ] ; then + echo "$GET_LIST" else - ${RPM_QUERY_CMD} -qa --qf "[%{NAME}\n]" + for prefix in `echo ${MULTILIB_PREFIX_LIST}`; do + # Use awk to find the multilib prefix and then + # print the info, need to different return counts + if [ "x$1" = "x" ] ; then + echo "$GET_LIST" | awk -v prefix="$prefix" '$0 ~ prefix {printf("%s-%s\n", prefix, $1); } $0 !~ prefix {print $1}' + else + echo "$GET_LIST" | awk -v prefix="$prefix" '$0 ~ prefix {printf("%s-%s %s\n", prefix, $1, $2); } $0 !~ prefix {print $1, $2}' + fi + done fi + + } rootfs_list_installed_depends() {