diff options
author | Leonid Borisenko <ive.found@gmail.com> | 2012-11-16 18:29:26 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-28 00:52:32 +0000 |
commit | 66055fbeddeb5f5b1fe84c24085f30daa6cfe003 (patch) | |
tree | bbe91c863fff2091d57c608c8e6f01e9ba28a65e /meta/classes | |
parent | be77f3138cc1c4131b74924b275acef692f46b26 (diff) | |
download | poky-66055fbeddeb5f5b1fe84c24085f30daa6cfe003.tar.gz |
package_{ipk, deb, rpm}.bbclass: support additional user-defined metadata
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.
(From OE-Core rev: 773d7352309241e15ef5acadcbe416bdd7d45c18)
Signed-off-by: Leonid Borisenko <ive.found@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/package_deb.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/package_ipk.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/package_rpm.bbclass | 7 |
3 files changed, 17 insertions, 0 deletions
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 82ff432f71..5d316aa8b2 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
@@ -318,6 +318,11 @@ python do_package_deb () { | |||
318 | raise bb.build.FuncFailed("Missing field for deb generation: %s" % value) | 318 | raise bb.build.FuncFailed("Missing field for deb generation: %s" % value) |
319 | # more fields | 319 | # more fields |
320 | 320 | ||
321 | custom_fields_chunk = get_package_additional_metadata("deb", localdata) | ||
322 | if custom_fields_chunk is not None: | ||
323 | ctrlfile.write(unicode(custom_fields_chunk)) | ||
324 | ctrlfile.write("\n") | ||
325 | |||
321 | mapping_rename_hook(localdata) | 326 | mapping_rename_hook(localdata) |
322 | 327 | ||
323 | def debian_cmp_remap(var): | 328 | def debian_cmp_remap(var): |
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index e7b275577a..2d8e459b31 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass | |||
@@ -331,6 +331,11 @@ python do_package_ipk () { | |||
331 | raise bb.build.FuncFailed("Missing field for ipk generation: %s" % value) | 331 | raise bb.build.FuncFailed("Missing field for ipk generation: %s" % value) |
332 | # more fields | 332 | # more fields |
333 | 333 | ||
334 | custom_fields_chunk = get_package_additional_metadata("ipk", localdata) | ||
335 | if custom_fields_chunk is not None: | ||
336 | ctrlfile.write(custom_fields_chunk) | ||
337 | ctrlfile.write("\n") | ||
338 | |||
334 | mapping_rename_hook(localdata) | 339 | mapping_rename_hook(localdata) |
335 | 340 | ||
336 | def debian_cmp_remap(var): | 341 | def debian_cmp_remap(var): |
diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index acbb18d686..2d193b7465 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass | |||
@@ -737,6 +737,7 @@ python write_specfile () { | |||
737 | srcmaintainer = d.getVar('MAINTAINER', True) | 737 | srcmaintainer = d.getVar('MAINTAINER', True) |
738 | srchomepage = d.getVar('HOMEPAGE', True) | 738 | srchomepage = d.getVar('HOMEPAGE', True) |
739 | srcdescription = d.getVar('DESCRIPTION', True) or "." | 739 | srcdescription = d.getVar('DESCRIPTION', True) or "." |
740 | srccustomtagschunk = get_package_additional_metadata("rpm", d) | ||
740 | 741 | ||
741 | srcdepends = strip_multilib_deps(d.getVar('DEPENDS', True), d) | 742 | srcdepends = strip_multilib_deps(d.getVar('DEPENDS', True), d) |
742 | srcrdepends = [] | 743 | srcrdepends = [] |
@@ -790,6 +791,7 @@ python write_specfile () { | |||
790 | splitlicense = (localdata.getVar('LICENSE', True) or "") | 791 | splitlicense = (localdata.getVar('LICENSE', True) or "") |
791 | splitsection = (localdata.getVar('SECTION', True) or "") | 792 | splitsection = (localdata.getVar('SECTION', True) or "") |
792 | splitdescription = (localdata.getVar('DESCRIPTION', True) or ".") | 793 | splitdescription = (localdata.getVar('DESCRIPTION', True) or ".") |
794 | splitcustomtagschunk = get_package_additional_metadata("rpm", localdata) | ||
793 | 795 | ||
794 | translate_vers('RDEPENDS', localdata) | 796 | translate_vers('RDEPENDS', localdata) |
795 | translate_vers('RRECOMMENDS', localdata) | 797 | translate_vers('RRECOMMENDS', localdata) |
@@ -863,6 +865,9 @@ python write_specfile () { | |||
863 | spec_preamble_bottom.append('License: %s' % splitlicense) | 865 | spec_preamble_bottom.append('License: %s' % splitlicense) |
864 | spec_preamble_bottom.append('Group: %s' % splitsection) | 866 | spec_preamble_bottom.append('Group: %s' % splitsection) |
865 | 867 | ||
868 | if srccustomtagschunk != splitcustomtagschunk: | ||
869 | spec_preamble_bottom.append(splitcustomtagschunk) | ||
870 | |||
866 | # Replaces == Obsoletes && Provides | 871 | # Replaces == Obsoletes && Provides |
867 | robsoletes = bb.utils.explode_dep_versions2(splitrobsoletes or "") | 872 | robsoletes = bb.utils.explode_dep_versions2(splitrobsoletes or "") |
868 | rprovides = bb.utils.explode_dep_versions2(splitrprovides or "") | 873 | rprovides = bb.utils.explode_dep_versions2(splitrprovides or "") |
@@ -965,6 +970,8 @@ python write_specfile () { | |||
965 | spec_preamble_top.append('Group: %s' % srcsection) | 970 | spec_preamble_top.append('Group: %s' % srcsection) |
966 | spec_preamble_top.append('Packager: %s' % srcmaintainer) | 971 | spec_preamble_top.append('Packager: %s' % srcmaintainer) |
967 | spec_preamble_top.append('URL: %s' % srchomepage) | 972 | spec_preamble_top.append('URL: %s' % srchomepage) |
973 | if srccustomtagschunk: | ||
974 | spec_preamble_top.append(srccustomtagschunk) | ||
968 | tail_source(d) | 975 | tail_source(d) |
969 | 976 | ||
970 | # Replaces == Obsoletes && Provides | 977 | # Replaces == Obsoletes && Provides |