Add Summary/Description support to packaging

[BUGID #281]

Add the ability for the deb, ipk and rpm classes to use the new summary
and description fields.  The Description is wrapped around 75 characters
to ensure a reasonably nice, presentable description.

(Summary defaults to the description if Summary is not defined.)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
This commit is contained in:
Mark Hatle 2010-09-29 10:11:24 -05:00 committed by Richard Purdie
parent 5783e717ee
commit b2f2590e6c
3 changed files with 33 additions and 8 deletions

View File

@ -69,6 +69,7 @@ python do_package_deb_install () {
python do_package_deb () {
import re, copy
import textwrap
workdir = bb.data.getVar('WORKDIR', d, True)
if not workdir:
@ -179,7 +180,18 @@ python do_package_deb () {
# check for required fields
try:
for (c, fs) in fields:
ctrlfile.write(unicode(c % tuple(pullData(fs, localdata))))
for f in fs:
if bb.data.getVar(f, localdata) is None:
raise KeyError(f)
# Special behavior for description...
if 'DESCRIPTION' in fs:
summary = bb.data.getVar('SUMMARY', localdata, True) or bb.data.getVar('DESCRIPTION', localdata, True) or "."
description = bb.data.getVar('DESCRIPTION', localdata, 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=' ')))
else:
ctrlfile.write(unicode(c % tuple(pullData(fs, localdata))))
except KeyError:
import sys
(type, value, traceback) = sys.exc_info()

View File

@ -135,6 +135,7 @@ package_generate_archlist () {
python do_package_ipk () {
import re, copy
import textwrap
workdir = bb.data.getVar('WORKDIR', d, True)
outdir = bb.data.getVar('PKGWRITEDIRIPK', d, True)
@ -227,7 +228,15 @@ python do_package_ipk () {
for f in fs:
if bb.data.getVar(f, localdata) is None:
raise KeyError(f)
ctrlfile.write(c % tuple(pullData(fs, localdata)))
# Special behavior for description...
if 'DESCRIPTION' in fs:
summary = bb.data.getVar('SUMMARY', localdata, True) or bb.data.getVar('DESCRIPTION', localdata, True) or "."
description = bb.data.getVar('DESCRIPTION', localdata, True) or "."
description = textwrap.dedent(description).strip()
ctrlfile.write('Description: %s\n' % summary)
ctrlfile.write('%s\n' % textwrap.fill(description, width=74, initial_indent=' ', subsequent_indent=' '))
else:
ctrlfile.write(c % tuple(pullData(fs, localdata)))
except KeyError:
import sys
(type, value, traceback) = sys.exc_info()

View File

@ -72,6 +72,8 @@ package_generate_rpm_conf () {
}
python write_specfile () {
import textwrap
# We need to change '-' in a version field to '+'
# This needs to be done BEFORE the mapping_rename_hook
def translate_vers(varname, d):
@ -136,7 +138,7 @@ python write_specfile () {
# Construct the SPEC file...
srcname = bb.data.getVar('PN', d, True)
srcsummary = (bb.data.getVar('SUMMARY', d, True) or ".")
srcsummary = (bb.data.getVar('SUMMARY', d, True) or bb.data.getVar('DESCRIPTION', d, True) or ".")
srcversion = bb.data.getVar('PV', d, True).replace('-', '+')
srcrelease = bb.data.getVar('PR', d, True)
srcepoch = (bb.data.getVar('PE', d, True) or "")
@ -144,7 +146,7 @@ python write_specfile () {
srcsection = bb.data.getVar('SECTION', d, True)
srcmaintainer = bb.data.getVar('MAINTAINER', d, True)
srchomepage = bb.data.getVar('HOMEPAGE', d, True)
srcdescription = bb.data.getVar('DESCRIPTION', d, True)
srcdescription = bb.data.getVar('DESCRIPTION', d, True) or "."
srcdepends = bb.data.getVar('DEPENDS', d, True)
srcrdepends = []
@ -191,13 +193,13 @@ python write_specfile () {
splitname = pkgname
splitsummary = (bb.data.getVar('SUMMARY', d, True) or ".")
splitsummary = (bb.data.getVar('SUMMARY', d, True) or bb.data.getVar('DESCRIPTION', d, True) or ".")
splitversion = (bb.data.getVar('PV', localdata, True) or "").replace('-', '+')
splitrelease = (bb.data.getVar('PR', localdata, True) or "")
splitepoch = (bb.data.getVar('PE', localdata, True) or "")
splitlicense = (bb.data.getVar('LICENSE', localdata, True) or "")
splitsection = (bb.data.getVar('SECTION', localdata, True) or "")
splitdescription = (bb.data.getVar('DESCRIPTION', localdata, True) or "")
splitdescription = (bb.data.getVar('DESCRIPTION', localdata, True) or ".")
translate_vers('RDEPENDS', localdata)
translate_vers('RRECOMMENDS', localdata)
@ -295,7 +297,8 @@ python write_specfile () {
spec_preamble_bottom.append('')
spec_preamble_bottom.append('%%description -n %s' % splitname)
spec_preamble_bottom.append('%s' % splitdescription)
dedent_text = textwrap.dedent(splitdescription).strip()
spec_preamble_bottom.append('%s' % textwrap.fill(dedent_text, width=75))
spec_preamble_bottom.append('')
@ -379,7 +382,8 @@ python write_specfile () {
spec_preamble_top.append('')
spec_preamble_top.append('%description')
spec_preamble_top.append('%s' % srcdescription)
dedent_text = textwrap.dedent(srcdescription).strip()
spec_preamble_top.append('%s' % textwrap.fill(dedent_text, width=75))
spec_preamble_top.append('')