summaryrefslogtreecommitdiffstats
path: root/scripts/oe-pkgdata-util
diff options
context:
space:
mode:
authorPeter Kjellerstedt <peter.kjellerstedt@axis.com>2018-06-02 21:30:32 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-04 15:14:43 +0100
commit38f8284212370999e1e7b0f6559f7cd786e80d1a (patch)
treed8d3a5a646a0e715802c890851eb5a471c62fe95 /scripts/oe-pkgdata-util
parent4990f87b2f6a8b30c8d1c767636e7f5527f595ba (diff)
downloadopenembedded-core-contrib-38f8284212370999e1e7b0f6559f7cd786e80d1a.tar.gz
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@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/oe-pkgdata-util')
-rwxr-xr-xscripts/oe-pkgdata-util46
1 files changed, 18 insertions, 28 deletions
diff --git a/scripts/oe-pkgdata-util b/scripts/oe-pkgdata-util
index 5dd9588224..a4e84138d7 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)