Should there be a test for this functionality? Somewhere in oe-selftest
perhaps where various package manager features are tested?

Alex

On Fri, 22 May 2020 at 17:13, Paulo Neve <ptsne...@gmail.com> wrote:

> Up to now the user defined metadata was set recipe wide,
> meaning all the packages generated in a recipe where the
> variable was set would get the same metadata. That is not
> always ideal and is counter to the per package control that
> is usually available.
>
> Keep support for package agnostic metadata but also add option
> to add it to a specific option like:
> PACKAGE_ADD_METADATA_${PN}_IPK = "mymeta: myvalue"
>
> Signed-off-by: Paulo Neves <ptsne...@gmail.com>
> ---
>  meta/classes/package.bbclass     | 4 ++--
>  meta/classes/package_deb.bbclass | 2 +-
>  meta/classes/package_ipk.bbclass | 2 +-
>  meta/classes/package_rpm.bbclass | 5 +++--
>  4 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 0b5cf47749..1678e0d794 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -637,9 +637,9 @@ def get_package_mapping (pkg, basepkg, d,
> depversions=None):
>
>      return pkg
>
> -def get_package_additional_metadata (pkg_type, d):
> +def get_package_additional_metadata (pkg_type, pkg_name, d):
>      base_key = "PACKAGE_ADD_METADATA"
> -    for key in ("%s_%s" % (base_key, pkg_type.upper()), base_key):
> +    for key in ("%s_%s" % (base_key, pkg_type.upper()), "%s_%s_%s" %
> (base_key, pkg_name, pkg_type.upper()), base_key):
>          if d.getVar(key, False) is None:
>              continue
>          d.setVarFlag(key, "type", "list")
> diff --git a/meta/classes/package_deb.bbclass
> b/meta/classes/package_deb.bbclass
> index 790b26aef2..6ef9c8cb3a 100644
> --- a/meta/classes/package_deb.bbclass
> +++ b/meta/classes/package_deb.bbclass
> @@ -167,7 +167,7 @@ def deb_write_pkg(pkg, d):
>
>          # more fields
>
> -        custom_fields_chunk = get_package_additional_metadata("deb",
> localdata)
> +        custom_fields_chunk = get_package_additional_metadata("deb",
> pkgname, localdata)
>          if custom_fields_chunk:
>              ctrlfile.write(custom_fields_chunk)
>              ctrlfile.write("\n")
> diff --git a/meta/classes/package_ipk.bbclass
> b/meta/classes/package_ipk.bbclass
> index c008559e4a..f78cec7a70 100644
> --- a/meta/classes/package_ipk.bbclass
> +++ b/meta/classes/package_ipk.bbclass
> @@ -155,7 +155,7 @@ def ipk_write_pkg(pkg, d):
>              else:
>                  ctrlfile.write(c % tuple(pullData(fs, localdata)))
>
> -        custom_fields_chunk = get_package_additional_metadata("ipk",
> localdata)
> +        custom_fields_chunk = get_package_additional_metadata("ipk",
> pkgname, localdata)
>          if custom_fields_chunk is not None:
>              ctrlfile.write(custom_fields_chunk)
>              ctrlfile.write("\n")
> diff --git a/meta/classes/package_rpm.bbclass
> b/meta/classes/package_rpm.bbclass
> index 9145717f98..ab019192da 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -295,7 +295,6 @@ python write_specfile () {
>      srcmaintainer  = d.getVar('MAINTAINER')
>      srchomepage    = d.getVar('HOMEPAGE')
>      srcdescription = d.getVar('DESCRIPTION') or "."
> -    srccustomtagschunk = get_package_additional_metadata("rpm", d)
>
>      srcdepends     = d.getVar('DEPENDS')
>      srcrdepends    = []
> @@ -333,6 +332,8 @@ python write_specfile () {
>          pkgname = localdata.getVar('PKG_%s' % pkg)
>          if not pkgname:
>              pkgname = pkg
> +
> +        srccustomtagschunk = get_package_additional_metadata("rpm",
> pkgname, d)
>          localdata.setVar('PKG', pkgname)
>
>          localdata.setVar('OVERRIDES', d.getVar("OVERRIDES", False) + ":"
> + pkg)
> @@ -351,7 +352,7 @@ python write_specfile () {
>          splitlicense = (localdata.getVar('LICENSE') or "")
>          splitsection = (localdata.getVar('SECTION') or "")
>          splitdescription = (localdata.getVar('DESCRIPTION') or ".")
> -        splitcustomtagschunk = get_package_additional_metadata("rpm",
> localdata)
> +        splitcustomtagschunk = get_package_additional_metadata("rpm",
> pkgname, localdata)
>
>          translate_vers('RDEPENDS', localdata)
>          translate_vers('RRECOMMENDS', localdata)
> --
> 2.20.1
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#138600): 
https://lists.openembedded.org/g/openembedded-core/message/138600
Mute This Topic: https://lists.openembedded.org/mt/74401146/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to