diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-10-03 16:36:19 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-11 12:14:27 +0000 |
commit | b5c72fe5844eb334a86ab53bd7238c7da9781562 (patch) | |
tree | 3702401248985a33bf0cb13f22b3a1c75a525b4b /meta/lib | |
parent | ff1efda2af1027421cb27a398484b4b4e4798646 (diff) | |
download | poky-b5c72fe5844eb334a86ab53bd7238c7da9781562.tar.gz |
devtool: upgrade: handle recipes that use named SRC_URI checksums
devtool upgrade did not properly handle setting SRC_URI checksums for
recipes that use named SRC_URI entries and also use those names in the
SRC_URI checksums. A further complication was where the name contained
an expression that changed with the version e.g. ${PV} (probably quite
rare, but the dnsmasq recipe in meta-networking is currently one such
recipe.) All of these are now handled properly.
Additionally, drop the _get_checksums() function that wasn't being
called from anywhere in the code.
Note that this now turns nowrap_vars in recipeutils.py to be a list of
regexes, hence things such as [ and ] need to be appropriately escaped.
(From OE-Core rev: c914a5e1ad6d96e316746222e5d42f2ba9110060)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oe/recipeutils.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index cab8e40152..cab94b1350 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py | |||
@@ -22,7 +22,7 @@ from collections import OrderedDict, defaultdict | |||
22 | # Help us to find places to insert values | 22 | # Help us to find places to insert values |
23 | recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()'] | 23 | recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()'] |
24 | # Variables that sometimes are a bit long but shouldn't be wrapped | 24 | # Variables that sometimes are a bit long but shouldn't be wrapped |
25 | nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', 'SRC_URI[md5sum]', 'SRC_URI[sha256sum]'] | 25 | nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', 'SRC_URI\[(.+\.)?md5sum\]', 'SRC_URI\[(.+\.)?sha256sum\]'] |
26 | list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM'] | 26 | list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM'] |
27 | meta_vars = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION'] | 27 | meta_vars = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION'] |
28 | 28 | ||
@@ -142,6 +142,10 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True): | |||
142 | else: | 142 | else: |
143 | newline = '' | 143 | newline = '' |
144 | 144 | ||
145 | nowrap_vars_res = [] | ||
146 | for item in nowrap_vars: | ||
147 | nowrap_vars_res.append(re.compile('^%s$' % item)) | ||
148 | |||
145 | recipe_progression_res = [] | 149 | recipe_progression_res = [] |
146 | recipe_progression_restrs = [] | 150 | recipe_progression_restrs = [] |
147 | for item in recipe_progression: | 151 | for item in recipe_progression: |
@@ -174,7 +178,12 @@ def patch_recipe_lines(fromlines, values, trailing_newline=True): | |||
174 | return | 178 | return |
175 | rawtext = '%s = "%s"%s' % (name, values[name], newline) | 179 | rawtext = '%s = "%s"%s' % (name, values[name], newline) |
176 | addlines = [] | 180 | addlines = [] |
177 | if name in nowrap_vars: | 181 | nowrap = False |
182 | for nowrap_re in nowrap_vars_res: | ||
183 | if nowrap_re.match(name): | ||
184 | nowrap = True | ||
185 | break | ||
186 | if nowrap: | ||
178 | addlines.append(rawtext) | 187 | addlines.append(rawtext) |
179 | elif name in list_vars: | 188 | elif name in list_vars: |
180 | splitvalue = split_var_value(values[name], assignment=False) | 189 | splitvalue = split_var_value(values[name], assignment=False) |