[OE-core] Cherry-pick to Sumo (was: [PATCHv2 1/2] oe-pkgdata-util: Make parse_pkgdatafile() support package suffixed vars)

Peter Kjellerstedt peter.kjellerstedt at axis.com
Sat Jun 2 19:48:00 UTC 2018


These two patches, in addition to "oe-pkgdata-util: lookup-recipe, 
package-info: Don't finish prematurely" (commit 32c2a2dd) that is already 
on master, need to be cherry-picked to the sumo branch as well. Without 
them, `oe-pkgdata-util package-info ...` is more or less broken.

//Peter

> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Peter Kjellerstedt
> Sent: den 2 juni 2018 21:31
> To: openembedded-core at lists.openembedded.org
> Subject: [OE-core] [PATCHv2 1/2] oe-pkgdata-util: Make
> parse_pkgdatafile() support package suffixed vars
> 
> Support for variables suffixed with package names, e.g., PKGV_foo, was
> removed in commit 3d2c87c4, which broke support for recipes that set
> other versions on their packages than what is in ${PV}.
> 
> Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt at axis.com>
> ---
>  scripts/oe-pkgdata-util | 46 ++++++++++++++++++-----------------------
> -----
>  1 file changed, 18 insertions(+), 28 deletions(-)
> 
> diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
> index aea8a57516..965f473725 100755
> --- a/scripts/oe-pkgdata-util
> +++ b/scripts/oe-pkgdata-util
> @@ -286,36 +286,26 @@ def lookup_recipe(args):
> 
>  def package_info(args):
>      def parse_pkgdatafile(pkgdatafile):
> +        vars = ['PKGV', 'PKGE', 'PKGR', 'PN', 'PV', 'PE', 'PR',
> 'PKGSIZE']
>          with open(pkgdatafile, 'r') as f:
> -            pkge = ''
> -            pkgr = ''
> -            pe = ''
> -            pr = ''
> +            vals = dict()
>              for line in f:
> -                if line.startswith('PKGV:'):
> -                    pkg_version = line.split(':', 1)[1].strip()
> -                elif line.startswith('PKGE:'):
> -                    pkge = line.split(':', 1)[1].strip()
> -                elif line.startswith('PKGR:'):
> -                    pkgr = line.split(':', 1)[1].strip()
> -                elif line.startswith('PN:'):
> -                    recipe = line.split(':', 1)[1].strip()
> -                elif line.startswith('PV:'):
> -                    recipe_version = line.split(':', 1)[1].strip()
> -                elif line.startswith('PE:'):
> -                    pe = line.split(':', 1)[1].strip()
> -                elif line.startswith('PR:'):
> -                    pr = line.split(':', 1)[1].strip()
> -                elif line.startswith('PKGSIZE'):
> -                    pkg_size = line.split(':', 1)[1].strip()
> -            if pkge:
> -                pkg_version = pkge + ":" + pkg_version
> -            if pkgr:
> -                pkg_version = pkg_version + "-" + pkgr
> -            if pe:
> -                recipe_version = pe + ":" + recipe_version
> -            if pr:
> -                recipe_version = recipe_version + "-" + pr
> +                for var in vars:
> +                    m = re.match(var + '(?:_\S+)?:\s*(.+?)\s*$', line)
> +                    if m:
> +                        vals[var] = m.group(1)
> +            pkg_version = vals['PKGV'] or ''
> +            recipe = vals['PN'] or ''
> +            recipe_version = vals['PV'] or ''
> +            pkg_size = vals['PKGSIZE'] or ''
> +            if 'PKGE' in vals:
> +                pkg_version = vals['PKGE'] + ":" + pkg_version
> +            if 'PKGR' in vals:
> +                pkg_version = pkg_version + "-" + vals['PKGR']
> +            if 'PE' in vals:
> +                recipe_version = vals['PE'] + ":" + recipe_version
> +            if 'PR' in vals:
> +                recipe_version = recipe_version + "-" + vals['PR']
>              print("%s %s %s %s %s" % (pkg, pkg_version, recipe,
> recipe_version, pkg_size))
> 
>      # Handle both multiple arguments and multiple values within an arg
> (old syntax)
> --
> 2.12.0
> 
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



More information about the Openembedded-core mailing list