summaryrefslogtreecommitdiff
path: root/meta
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@windriver.com>2010-09-29 10:11:24 -0500
committerRichard Purdie <rpurdie@linux.intel.com>2010-10-11 22:13:14 +0100
commitb2f2590e6c566d1ed4df87cf52279106497d584d (patch)
tree3e0b27e130a0f878f87b8843e9486411925e5a96 /meta
parent5783e717ee9f503d8e03992306a6b9ddfda6f73e (diff)
downloadopenembedded-core-b2f2590e6c566d1ed4df87cf52279106497d584d.tar.gz
openembedded-core-b2f2590e6c566d1ed4df87cf52279106497d584d.tar.bz2
openembedded-core-b2f2590e6c566d1ed4df87cf52279106497d584d.zip
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>
Diffstat (limited to 'meta')
-rw-r--r--meta/classes/package_deb.bbclass14
-rw-r--r--meta/classes/package_ipk.bbclass11
-rw-r--r--meta/classes/package_rpm.bbclass16
3 files changed, 33 insertions, 8 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index eb4df5e704..8a9cdc071d 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -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()
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 1758283f61..cac0453685 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -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()
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 49468bbd5a..b31830f945 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -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('')