From: Leonid Borisenko <ive.found@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata
Date: Sun, 13 May 2012 16:28:42 +0300 [thread overview]
Message-ID: <1336915722-8155-3-git-send-email-ive.found@gmail.com> (raw)
In-Reply-To: <1336915722-8155-1-git-send-email-ive.found@gmail.com>
Additional metadata from user-defined variable is written into
control/spec file of binary package.
Three variables are searched for adiitional package metadata:
* PACKAGE_ADD_METADATA_<PKGTYPE>_<PN>
* PACKAGE_ADD_METADATA_<PKGTYPE>
* PACKAGE_ADD_METADATA
First found variable with defined value wins.
<PN> is a package name. <PKGTYPE> is a distinct name of specific
package type:
* IPK for .ipk packages
* DEB for .deb packages
* RPM for .rpm packages
Variable can contain multiple [one-line] metadata fields separated by
literal sequence '\n'. Separator can be redefined through variable flag
'separator'. In package control/spec file separator is replaced by
newline character.
Signed-off-by: Leonid Borisenko <ive.found@gmail.com>
---
meta/classes/package_deb.bbclass | 5 +++++
meta/classes/package_ipk.bbclass | 5 +++++
meta/classes/package_rpm.bbclass | 7 +++++++
3 files changed, 17 insertions(+)
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
index 4096fa2..7a45cec 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -330,6 +330,11 @@ python do_package_deb () {
raise bb.build.FuncFailed("Missing field for deb generation: %s" % value)
# more fields
+ custom_fields_chunk = get_package_additional_metadata("deb", localdata)
+ if custom_fields_chunk is not None:
+ ctrlfile.write(unicode(custom_fields_chunk))
+ ctrlfile.write("\n")
+
mapping_rename_hook(localdata)
rdepends = bb.utils.explode_dep_versions(localdata.getVar("RDEPENDS", True) or "")
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 73ec0ee..e3a8262 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -367,6 +367,11 @@ python do_package_ipk () {
raise bb.build.FuncFailed("Missing field for ipk generation: %s" % value)
# more fields
+ custom_fields_chunk = get_package_additional_metadata("ipk", localdata)
+ if custom_fields_chunk is not None:
+ ctrlfile.write(custom_fields_chunk)
+ ctrlfile.write("\n")
+
mapping_rename_hook(localdata)
rdepends = bb.utils.explode_dep_versions(localdata.getVar("RDEPENDS", True) or "")
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 2da7a8b..799e5aa 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -638,6 +638,7 @@ python write_specfile () {
srcmaintainer = d.getVar('MAINTAINER', True)
srchomepage = d.getVar('HOMEPAGE', True)
srcdescription = d.getVar('DESCRIPTION', True) or "."
+ srccustomtagschunk = get_package_additional_metadata("rpm", d)
srcdepends = strip_multilib(d.getVar('DEPENDS', True), d)
srcrdepends = []
@@ -691,6 +692,7 @@ python write_specfile () {
splitlicense = (localdata.getVar('LICENSE', True) or "")
splitsection = (localdata.getVar('SECTION', True) or "")
splitdescription = (localdata.getVar('DESCRIPTION', True) or ".")
+ splitcustomtagschunk = get_package_additional_metadata("rpm", localdata)
translate_vers('RDEPENDS', localdata)
translate_vers('RRECOMMENDS', localdata)
@@ -759,6 +761,9 @@ python write_specfile () {
spec_preamble_bottom.append('License: %s' % splitlicense)
spec_preamble_bottom.append('Group: %s' % splitsection)
+ if srccustomtagschunk != splitcustomtagschunk:
+ spec_preamble_bottom.append(splitcustomtagschunk)
+
# Replaces == Obsoletes && Provides
if splitrreplaces and splitrreplaces.strip() != "":
for dep in splitrreplaces.split(','):
@@ -849,6 +854,8 @@ python write_specfile () {
spec_preamble_top.append('Group: %s' % srcsection)
spec_preamble_top.append('Packager: %s' % srcmaintainer)
spec_preamble_top.append('URL: %s' % srchomepage)
+ if srccustomtagschunk:
+ spec_preamble_top.append(srccustomtagschunk)
source_list = get_tarballs(d)
tail_source(d,source_list,None)
--
1.7.10
next prev parent reply other threads:[~2012-05-13 13:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-13 13:28 [PATCH 0/3] Support additional user-defined package metadata Leonid Borisenko
2012-05-13 13:28 ` [PATCH 1/2] package.bbclass: add getter of additional metadata Leonid Borisenko
2012-05-13 13:28 ` Leonid Borisenko [this message]
2012-05-18 18:34 ` [PATCH 0/3] Support additional user-defined package metadata Ive Found
2012-05-28 6:40 ` [PING v2] [PATCH 0/2] " Ive Found
2012-05-28 9:44 ` [PATCH 0/3] " Phil Blundell
2012-05-28 18:46 ` Ive Found
2012-06-06 7:28 ` [PING v3] [PATCH 0/2] " Ive Found
2012-11-03 23:01 ` Sebastian Krzyszkowiak
2012-11-06 23:58 ` Otavio Salvador
2012-11-16 18:29 ` [PATCH v2 0/2] Support additional user-defined metadata Leonid Borisenko
2012-11-16 18:29 ` [PATCH v2 1/2] package.bbclass: add getter of additional metadata Leonid Borisenko
2012-11-16 18:29 ` [PATCH v2 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Leonid Borisenko
2012-12-07 17:28 ` [PING] [PATCH v2] Support " Leonid Borisenko
-- strict thread matches above, loose matches on Subject: below --
2014-01-18 14:01 [PATCH 0/2] allow to define additional packaging metadata Martin Jansa
2014-01-18 14:01 ` [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Martin Jansa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336915722-8155-3-git-send-email-ive.found@gmail.com \
--to=ive.found@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox