From: Ross Burton Date: Tue, 19 Feb 2013 21:31:52 +0000 (+0000) Subject: rootfs_ipkg: fix BAD_RECOMMENDATIONS handling X-Git-Tag: 2015-4~7492 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=a5362de60c0051f16b88a40bd9cb41915bee0b0f;p=openembedded-core.git 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. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- 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