]> code.ossystems Code Review - openembedded-core.git/commitdiff
rootfs_ipkg: fix BAD_RECOMMENDATIONS handling
authorRoss Burton <ross.burton@intel.com>
Tue, 19 Feb 2013 21:31:52 +0000 (21:31 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 19 Feb 2013 22:37:44 +0000 (14:37 -0800)
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 <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/rootfs_ipk.bbclass

index 135bb6026befbf1859881f1b5bf6aed222560d47..a609944e737932c50eb92b21b597e00e43326139 100644 (file)
@@ -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