From: Leonid Borisenko <ive.found@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v2 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata
Date: Fri, 16 Nov 2012 21:29:26 +0300 [thread overview]
Message-ID: <1353090566-16318-3-git-send-email-ive.found@gmail.com> (raw)
In-Reply-To: <1353090566-16318-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 d273cb0..d59a93d 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -332,6 +332,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)
def debian_cmp_remap(var):
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index 4bf1b10..47f5091 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -370,6 +370,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)
def debian_cmp_remap(var):
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 1ff92ce..6545701 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -720,6 +720,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_deps(d.getVar('DEPENDS', True), d)
srcrdepends = []
@@ -773,6 +774,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)
@@ -837,6 +839,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
robsoletes = bb.utils.explode_dep_versions2(splitrobsoletes or "")
rprovides = bb.utils.explode_dep_versions2(splitrprovides or "")
@@ -927,6 +932,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)
tail_source(d)
# Replaces == Obsoletes && Provides
--
1.7.10.4
next prev parent reply other threads:[~2012-11-16 18:44 UTC|newest]
Thread overview: 14+ 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 ` [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Leonid Borisenko
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 ` Leonid Borisenko [this message]
2012-12-07 17:28 ` [PING] [PATCH v2] Support additional user-defined metadata Leonid Borisenko
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=1353090566-16318-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.