Skip to contentSkip to conversation

rootfs_rpm: Add Multilib prefix to installed_packages list

PATCH New Saul Wold 1 participant 1 message Sep 19, 2012

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

PATCH v2 1/1 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.

---
 meta/classes/rootfs_rpm.bbclass |   19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)
meta/classes/rootfs_rpm.bbclass +14 -5
index c0207d8..d95ccfa 100644
@@ -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
 }
 
Signature · 1 line
1.7.9.5