* [PATCH 0/2] allow to define additional packaging metadata
@ 2014-01-18 14:01 Martin Jansa
2014-01-18 14:01 ` [PATCH 1/2] package.bbclass: add getter of additional metadata Martin Jansa
2014-01-18 14:01 ` [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Martin Jansa
0 siblings, 2 replies; 3+ messages in thread
From: Martin Jansa @ 2014-01-18 14:01 UTC (permalink / raw)
To: openembedded-core
There is older patchset from Leonid which didn't get any response
on list, but is useful and still working.
It's good for extra packaging metadata like flag that device should
be restarted after package upgrade and it's packagemanager job to respect
them or not.
The following changes since commit 8163854adf87ac42a8f08ee25685d0ce1efb4724:
oe-selftest: separated the SStateBase and SStateTests in different modules (2014-01-16 12:18:44 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib jansa/package-additional
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=jansa/package-additional
Leonid Borisenko (2):
package.bbclass: add getter of additional metadata
package_{ipk, deb, rpm}.bbclass: support additional user-defined
metadata
meta/classes/package.bbclass | 11 +++++++++++
meta/classes/package_deb.bbclass | 5 +++++
meta/classes/package_ipk.bbclass | 5 +++++
meta/classes/package_rpm.bbclass | 7 +++++++
4 files changed, 28 insertions(+)
--
1.8.5.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] package.bbclass: add getter of additional metadata
2014-01-18 14:01 [PATCH 0/2] allow to define additional packaging metadata Martin Jansa
@ 2014-01-18 14:01 ` Martin Jansa
2014-01-18 14:01 ` [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Martin Jansa
1 sibling, 0 replies; 3+ messages in thread
From: Martin Jansa @ 2014-01-18 14:01 UTC (permalink / raw)
To: openembedded-core
From: Leonid Borisenko <ive.found@gmail.com>
Two variables are searched for value of additional package metadata:
* PACKAGE_ADD_METADATA_<PKGTYPE>
* PACKAGE_ADD_METADATA
First found variable with defined value wins.
<PKGTYPE> is a parameter of getter and expected to be a distinct name
of specific package type. For example: 'DEB' or 'RPM'.
Variable can contain multiple [one-line] metadata fields, separated by
literal sequence '\n'. Separator can be redefined through variable flag
'separator'. Getter returns found value with separator replaced with
newline character.
As side-effect, searched variables acquired flags 'type' (equals to
'list') and 'separator'.
Signed-off-by: Leonid Borisenko <ive.found@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
meta/classes/package.bbclass | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 768047c..561800a 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -363,6 +363,17 @@ def get_package_mapping (pkg, basepkg, d):
return pkg
+def get_package_additional_metadata (pkg_type, d):
+ base_key = "PACKAGE_ADD_METADATA"
+ for key in ("%s_%s" % (base_key, pkg_type.upper()), base_key):
+ if d.getVar(key) is None:
+ continue
+ d.setVarFlag(key, "type", "list")
+ if d.getVarFlag(key, "separator") is None:
+ d.setVarFlag(key, "separator", "\\n")
+ metadata_fields = [field.strip() for field in oe.data.typed_value(key, d)]
+ return "\n".join(metadata_fields).strip()
+
def runtime_mapping_rename (varname, pkg, d):
#bb.note("%s before: %s" % (varname, d.getVar(varname, True)))
--
1.8.5.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata
2014-01-18 14:01 [PATCH 0/2] allow to define additional packaging metadata Martin Jansa
2014-01-18 14:01 ` [PATCH 1/2] package.bbclass: add getter of additional metadata Martin Jansa
@ 2014-01-18 14:01 ` Martin Jansa
1 sibling, 0 replies; 3+ messages in thread
From: Martin Jansa @ 2014-01-18 14:01 UTC (permalink / raw)
To: openembedded-core
From: Leonid Borisenko <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>
Signed-off-by: Martin Jansa <Martin.Jansa@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 82ff432..5d316aa 100644
--- a/meta/classes/package_deb.bbclass
+++ b/meta/classes/package_deb.bbclass
@@ -318,6 +318,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 e7b2755..2d8e459 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -331,6 +331,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 acbb18d..2d193b7 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -737,6 +737,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 = []
@@ -790,6 +791,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)
@@ -863,6 +865,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 "")
@@ -965,6 +970,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.8.5.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-01-18 14:01 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-18 14:01 [PATCH 0/2] allow to define additional packaging metadata Martin Jansa
2014-01-18 14:01 ` [PATCH 1/2] package.bbclass: add getter of additional metadata Martin Jansa
2014-01-18 14:01 ` [PATCH 2/2] package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata Martin Jansa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox