From 6bf55c6e67b371c0467ae1be4d7f713d6a3dcf3b Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 19 Feb 2013 21:31:52 +0000 Subject: rootfs_ipkg: fix BAD_RECOMMENDATIONS handling If multiple versions of the same package are in the package feed then the generate status file would only contains a "deinstall" status for the last one, which meant that BAD_RECOMMENDATIONS wouldn't actually work. Use awk instead of grep and stop reading when we reach a newline, so we only ever output a single stanza. (From OE-Core rev: a5362de60c0051f16b88a40bd9cb41915bee0b0f) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/classes/rootfs_ipk.bbclass | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index 135bb6026b..a609944e73 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass @@ -46,9 +46,13 @@ fakeroot rootfs_ipk_do_rootfs () { for i in ${BAD_RECOMMENDATIONS}; do pkginfo="`opkg-cl ${OPKG_ARGS} info $i`" if [ ! -z "$pkginfo" ]; then - echo "$pkginfo" | grep -e '^Package:' -e '^Architecture:' -e '^Version:' >> $STATUS - echo "Status: deinstall hold not-installed" >> $STATUS - echo >> $STATUS + # Take just the first package stanza as otherwise only + # the last one will have the right Status line. + echo "$pkginfo" | awk "/^Package:/ { print } \ + /^Architecture:/ { print } \ + /^Version:/ { print } \ + /^$/ { exit } \ + END { print \"Status: deinstall hold not-installed\n\" }" - >> $STATUS else echo "Requested ignored recommendation $i is not a package" fi -- cgit v1.2.3-54-g00ecf