[oe-commits] Paul Barker : package_manager: Fix BAD_RECOMMENDATIONS for opkg

git at git.openembedded.org git at git.openembedded.org
Tue Nov 4 12:01:01 UTC 2014


Module: openembedded-core.git
Branch: master-next
Commit: 3fa24eee41c26fecd5e4f680082288ec772d2de9
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=3fa24eee41c26fecd5e4f680082288ec772d2de9

Author: Paul Barker <paul at paulbarker.me.uk>
Date:   Sun Oct 26 19:36:22 2014 +0000

package_manager: Fix BAD_RECOMMENDATIONS for opkg

In package_manager.py, when using opkg as the packager, the command 'opkg <args>
info <pkg>' is called to get information about each pkg in BAD_RECOMMENDATIONS
in a format that can be written to the status file. The 'Status: ...' line is
modified and all other lines are passed through. Changing the verbosity level
argument for this command will change what it written into the status file.
Crucially, with the default verbosity level, no blank lines are being printed by
the opkg command and so no blank lines are being written to the status file to
separate each package entry.

The package parsing code in opkg expects package entries in the status file to
be separated by at least one blank line. If no blank line is seen, the next
package entry is interpreted as a continuation of the last package entry, but
the new values overwrite the old values.

So with the default verbosity level, a blank line follows some package entries
and these are parsed. The others are dropped due to the lack of blank lines. As
the verbosity increases, more debugging messages add blank lines and more
packages are parsed.

The solution to ensure that this works correctly regardless of the verbosity
level is simply add a blank line after the output of 'opkg info' is written to
the status file, ensuring that the next package is separated from the current
package.

[YOCTO #6816]

Signed-off-by: Paul Barker <paul at paulbarker.me.uk>
Cc: Chris Carr <chris.carr at ge.com>
Signed-off-by: Ross Burton <ross.burton at intel.com>

---

 meta/lib/oe/package_manager.py | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index e1ec75e..1af5c86 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -1411,6 +1411,10 @@ class OpkgPM(PackageManager):
                     else:
                         status.write(line + "\n")
 
+                # Append a blank line after each package entry to ensure that it
+                # is separated from the following entry
+                status.write("\n")
+
     '''
     The following function dummy installs pkgs and returns the log of output.
     '''



More information about the Openembedded-commits mailing list