oe-pkgdata-util: Make parse_pkgdatafile() support package suffixed vars
PATCH v2 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}.
--- scripts/oe-pkgdata-util | 46 ++++++++++++++++++---------------------------- 1 file changed, 18 insertions(+), 28 deletions(-)
scripts/oe-pkgdata-util +18 -28
@@ -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)
Signature · 1 line
2.12.0
PATCH v2 2/2 oe-pkgdata-util: package-info: Re-add support for the --extra option
Commit 64d3ce83 broke the --extra option.
--- scripts/oe-pkgdata-util | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
scripts/oe-pkgdata-util +9 -1
@@ -287,8 +287,11 @@ def lookup_recipe(args): def package_info(args): def parse_pkgdatafile(pkgdatafile): vars = ['PKGV', 'PKGE', 'PKGR', 'PN', 'PV', 'PE', 'PR', 'PKGSIZE'] + if args.extra: + vars += args.extra with open(pkgdatafile, 'r') as f: vals = dict() + extra = '' for line in f: for var in vars: m = re.match(var + '(?:_\S+)?:\s*(.+?)\s*$', line)
@@ -306,7 +309,12 @@ def package_info(args): 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)) + if args.extra: + for var in args.extra: + if var in vals: + val = re.sub(r'\s+', ' ', vals[var]) + extra += ' "%s"' % val + print("%s %s %s %s %s%s" % (pkg, pkg_version, recipe, recipe_version, pkg_size, extra)) # Handle both multiple arguments and multiple values within an arg (old syntax) packages = []
Signature · 1 line
2.12.0
Quoted 4 lines · Peter Kjellerstedt
Support for variables suffixed with package names, e.g.,
PKGV_foo, was
removed in commit3d2c87c4, which broke support for recipes that set other versions on their packages than what is in ${PV}.
Would it be possible to write some simple tests for oe-pkgdata-util to make sure we don't break it again?
Cheers,
Richard
Quoted 10 lines
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Richard Purdie
Sent: den 3 juni 2018 18:14
To: Peter Kjellerstedt <[email protected]>; openembedded- [email protected]
Subject: Re: [OE-core] [PATCHv2 1/2] oe-pkgdata-util: Makeparse_pkgdatafile()support package suffixed vars
Quoted 7 lines
Quoted 3 lines · Peter Kjellerstedt
Support for variables suffixed with package names, e.g.,
PKGV_foo, was removed in commit3d2c87c4, which broke support for recipes that set other versions on their packages than what is in ${PV}.Would it be possible to write some simple tests for oe-pkgdata-util to make sure we don't break it again?
It probably would. However, I am not the one to do the first ones (I generally suck at anything related to unit tests). But I can probably help add some to cover our use cases once there is a precedence for how to do it.
Quoted 3 lines
Cheers,
Richard
//Peter