mirror of
https://git.yoctoproject.org/poky
synced 2026-02-20 08:29:42 +01:00
lib/oe/recipeutils: refactor patch_recipe_file() to use edit_metadata()
Use bb.utils.edit_metadata() to replace some of the logic in this
function; this avoids us effectively having two implementations of the
same thing. In the process fix the following issues:
* Insert values before any leading comments for the next variable
instead of after them
* Insert overridden variables (e.g. RDEPENDS_${PN}) in the correct place
* Properly handle replacing varflag settings (e.g. SRC_URI[md5sum])
(From OE-Core rev: 0f81b83fc5fd908efa7f6b837137830ca65f6ed6)
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>
This commit is contained in:
committed by
Richard Purdie
parent
0b850cb231
commit
1fbd76093d
@@ -62,26 +62,6 @@ def _get_checksums(rf):
|
||||
checksums[cs] = m.group(1)
|
||||
return checksums
|
||||
|
||||
def _replace_checksums(rf, md5, sha256):
|
||||
if not md5 and not sha256:
|
||||
return
|
||||
checksums = {'md5sum':md5, 'sha256sum':sha256}
|
||||
with open(rf + ".tmp", "w+") as tmprf:
|
||||
with open(rf) as f:
|
||||
for line in f:
|
||||
m = None
|
||||
for cs in checksums.keys():
|
||||
m = re.match("^SRC_URI\[%s\].*=.*\"(.*)\"" % cs, line)
|
||||
if m:
|
||||
if checksums[cs]:
|
||||
oldcheck = m.group(1)
|
||||
newcheck = checksums[cs]
|
||||
line = line.replace(oldcheck, newcheck)
|
||||
break
|
||||
tmprf.write(line)
|
||||
os.rename(rf + ".tmp", rf)
|
||||
|
||||
|
||||
def _remove_patch_dirs(recipefolder):
|
||||
for root, dirs, files in os.walk(recipefolder):
|
||||
for d in dirs:
|
||||
@@ -297,16 +277,14 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, workspace, tinfoil
|
||||
if changed:
|
||||
newvalues['SRC_URI'] = ' '.join(new_src_uri)
|
||||
|
||||
if md5 and sha256:
|
||||
newvalues['SRC_URI[md5sum]'] = md5
|
||||
newvalues['SRC_URI[sha256sum]'] = sha256
|
||||
|
||||
if newvalues:
|
||||
rd = oe.recipeutils.parse_recipe(fullpath, None, tinfoil.config_data)
|
||||
oe.recipeutils.patch_recipe(rd, fullpath, newvalues)
|
||||
|
||||
if md5 and sha256:
|
||||
# Unfortunately, oe.recipeutils.patch_recipe cannot update flags.
|
||||
# once the latter feature is implemented, we should call patch_recipe
|
||||
# instead of the following function
|
||||
_replace_checksums(fullpath, md5, sha256)
|
||||
|
||||
return fullpath
|
||||
|
||||
def upgrade(args, config, basepath, workspace):
|
||||
|
||||
Reference in New Issue
Block a user