[OE-core] [PATCH v3] package_ipk: correct ipk multiline descriptions

Andreas Oberritter obi at opendreambox.org
Mon May 29 21:41:58 UTC 2017


On Mon, 29 May 2017 10:36:47 -0700
leonardo.sandoval.gonzalez at linux.intel.com wrote:

> From: Leonardo Sandoval <leonardo.sandoval.gonzalez at linux.intel.com>
> 
> Empty descriptions lines are set with a space following by a dot and
> the multiline ones require a leading space. Also, for non-empty lines,
> there is no need for formating with textwrap, so remove the logic for
> the latter. The documentation for multiline description was taken from [1].
> 
> [1] https://web.archive.org/web/20100727133051/http://handhelds.org:80/moin/moin.cgi/BuildingIpkgs
> 
> [YOCTO #10677]
> 
> Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez at linux.intel.com>
> ---
>  meta/classes/package_ipk.bbclass | 11 ++---------
>  1 file changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
> index 5cc7e0a7b24..d2ce3b3e17a 100644
> --- a/meta/classes/package_ipk.bbclass
> +++ b/meta/classes/package_ipk.bbclass
> @@ -148,16 +148,9 @@ def ipk_write_pkg(pkg, d):
>                  description = localdata.getVar('DESCRIPTION') or "."
>                  description = textwrap.dedent(description).strip()
>                  if '\\n' in description:
> -                    # Manually indent
> +                    # Manually indent: multiline description includes a leading space
>                      for t in description.split('\\n'):
> -                        # We don't limit the width when manually indent, but we do
> -                        # need the textwrap.fill() to set the initial_indent and
> -                        # subsequent_indent, so set a large width
> -                        line = textwrap.fill(t.strip(),
> -                                             width=100000,
> -                                             initial_indent=' ',
> -                                             subsequent_indent=' ') or '.'
> -                        ctrlfile.write('%s\n' % line)
> +                        ctrlfile.write(' %s\n' % (t.strip() or ' .'))

Why not fix opkg instead, if it handles the format incorrectly? After all,
opkg claims to use the dpkg package format, AFAIR. It might be worth looking
how OpenWrt handles multi-line descriptions. Maybe they fixed it already in
their version.

Regards,
Andreas


>                  else:
>                      # Auto indent
>                      ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' '))




More information about the Openembedded-core mailing list