Re: [OE-core] [PATCHv2 1/2] oe-pkgdata-util: Make parse_pkgdatafile() support package suffixed vars

2018-06-04 Thread Peter Kjellerstedt
> -Original Message-
> From: openembedded-core-boun...@lists.openembedded.org
> [mailto:openembedded-core-boun...@lists.openembedded.org] On Behalf Of
> Richard Purdie
> Sent: den 3 juni 2018 18:14
> To: Peter Kjellerstedt ; openembedded-
> c...@lists.openembedded.org
> Subject: Re: [OE-core] [PATCHv2 1/2] oe-pkgdata-util: Make
> parse_pkgdatafile() support package suffixed vars
> 
> On Sat, 2018-06-02 at 21:30 +0200, Peter Kjellerstedt wrote:
> > 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}.
> 
> 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.

> Cheers,
> 
> Richard

//Peter

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCHv2 1/2] oe-pkgdata-util: Make parse_pkgdatafile() support package suffixed vars

2018-06-03 Thread Richard Purdie
On Sat, 2018-06-02 at 21:30 +0200, Peter Kjellerstedt wrote:
> 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}.

Would it be possible to write some simple tests for oe-pkgdata-util to
make sure we don't break it again?

Cheers,

Richard
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2018-06-02 Thread Peter Kjellerstedt
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 
---
 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@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core