diff options
| author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-05-18 12:04:55 +0100 | 
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-01 21:30:55 +0000 | 
| commit | 0f81b83fc5fd908efa7f6b837137830ca65f6ed6 (patch) | |
| tree | f1f1de051c6500553080505d0d47c21509d3f623 /scripts/lib | |
| parent | a90ffea30c4578fd6acda2c5945b816ad33b13f5 (diff) | |
| download | openembedded-core-0f81b83fc5fd908efa7f6b837137830ca65f6ed6.tar.gz openembedded-core-0f81b83fc5fd908efa7f6b837137830ca65f6ed6.tar.bz2 openembedded-core-0f81b83fc5fd908efa7f6b837137830ca65f6ed6.zip | |
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])
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/lib')
| -rw-r--r-- | scripts/lib/devtool/upgrade.py | 30 | 
1 files changed, 4 insertions, 26 deletions
| diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py index fbffae06fe..e2be38e7af 100644 --- a/scripts/lib/devtool/upgrade.py +++ b/scripts/lib/devtool/upgrade.py @@ -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): | 
