package_deb.bbclass: make DESCRIPTION support newline

The recipe's DESCRIPTION is wrapped automatically by textwrap, make it
support newline ("\n") to let the user can wrap it manually, e.g.:

DESCRIPTION = "Foo1\nFoo2"

In the past, it would be:
Foo1\nFoo2

Now:
Foo1
Foo2

[YOCTO #4348]

(From OE-Core rev: 568e303ef4447a9ddb7fb6370166d012a4375dab)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Robert Yang 2013-06-19 01:25:38 -04:00 committed by Richard Purdie
parent 33cd81e18b
commit 258b8a2cb4
1 changed files with 12 additions and 2 deletions

View File

@ -279,10 +279,20 @@ python do_package_deb () {
# Special behavior for description...
if 'DESCRIPTION' in fs:
summary = localdata.getVar('SUMMARY', True) or localdata.getVar('DESCRIPTION', True) or "."
ctrlfile.write('Description: %s\n' % unicode(summary))
description = localdata.getVar('DESCRIPTION', True) or "."
description = textwrap.dedent(description).strip()
ctrlfile.write('Description: %s\n' % unicode(summary))
ctrlfile.write('%s\n' % unicode(textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' ')))
if '\\n' in description:
# Manually indent
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
ctrlfile.write('%s\n' % unicode(textwrap.fill(t, width=100000, initial_indent=' ', subsequent_indent=' ')))
else:
# Auto indent
ctrlfile.write('%s\n' % unicode(textwrap.fill(description.strip(), width=74, initial_indent=' ', subsequent_indent=' ')))
else:
ctrlfile.write(unicode(c % tuple(pullData(fs, localdata))))
except KeyError: