summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorSaul Wold <sgw@linux.intel.com>2012-09-19 09:47:06 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-09-19 18:16:16 +0100
commit1c0f73b0712e68934fb9efb317860fe7e72145c9 (patch)
treef18714d20c907b73437cb436d99b46ca40783cac /meta
parent7cab823d21a907565a7f1e71eb824895071c201b (diff)
downloadpoky-1c0f73b0712e68934fb9efb317860fe7e72145c9.tar.gz
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 <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/rootfs_rpm.bbclass19
1 files changed, 14 insertions, 5 deletions
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass
index c0207d8629..d95ccfad2b 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}" \
141 -D "__dbi_txn create nofsync private"' 141 -D "__dbi_txn create nofsync private"'
142 142
143list_installed_packages() { 143list_installed_packages() {
144 GET_LIST=$(${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH} %{PACKAGEORIGIN} %{Platform}\n]")
145
146 # Use awk to find the multilib prefix and compare it
147 # with the platform RPM thinks it is part of
148 for prefix in `echo ${MULTILIB_PREFIX_LIST}`; do
149 GET_LIST=$(echo "$GET_LIST" | awk -v prefix="$prefix" '$0 ~ prefix {printf("%s-%s\n", prefix, $0); } $0 !~ prefix {print $0}')
150 done
151
152 # print the info, need to different return counts
144 if [ "$1" = "arch" ] ; then 153 if [ "$1" = "arch" ] ; then
145 ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{ARCH}\n]" 154 echo "$GET_LIST" | awk '{print $1, $2}'
146 elif [ "$1" = "file" ] ; then 155 elif [ "$1" = "file" ] ; then
147 ${RPM_QUERY_CMD} -qa --qf "[%{NAME} %{PACKAGEORIGIN}\n]" 156 echo "$GET_LIST" | awk '{print $1, $3}'
148 else 157 else
149 ${RPM_QUERY_CMD} -qa --qf "[%{NAME}\n]" 158 echo "$GET_LIST" | awk '{print $1}'
150 fi 159 fi
151} 160}
152 161