[OE-core] [PATCH] package_manager: Fix BAD_RECOMMENDATIONS for opkg

Paul Barker paul at paulbarker.me.uk
Sun Oct 26 19:37:19 UTC 2014


On 26 October 2014 19:36, Paul Barker <paul at paulbarker.me.uk> wrote:
> 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>
> ---
>  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 ffb83b2..85d7fd4 100644
> --- a/meta/lib/oe/package_manager.py
> +++ b/meta/lib/oe/package_manager.py
> @@ -1408,6 +1408,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.
>      '''
> --
> 2.1.2
>

Chris, could you give this a test and let us know if it fixes the issue.

Thanks,

-- 
Paul Barker

Email: paul at paulbarker.me.uk
http://www.paulbarker.me.uk



More information about the Openembedded-core mailing list