diff options
author | Julien Stephan <jstephan@baylibre.com> | 2023-11-22 12:08:14 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-12-01 11:48:25 +0000 |
commit | 1ae4cc7a1158d704c7f41bdae4fe194a9c57df05 (patch) | |
tree | 8af4dac014503de714d3283a3a86cdcb5a9a2146 /scripts | |
parent | d069eb3af4f8a20ca4bad84b5e529e92d152ccef (diff) | |
download | poky-1ae4cc7a1158d704c7f41bdae4fe194a9c57df05.tar.gz |
devtool: finish/update-recipe: restrict mode srcrev to recipes fetched from SCM
When specifying --mode / -m srcrev with devtool finish/update-recipe on
recipes that are not fetched from a SCM repository we get the following
error:
Traceback (most recent call last):
[..]
File "<...>/poky/meta/lib/oe/patch.py", line 49, in runcmd
raise CmdError(cmd, exitstatus >> 8, "stdout: %s\nstderr: %s" % (stdout, stderr))
oe.patch.CmdError: Command Error: 'sh -c 'git format-patch --no-signature --no-numbered INVALID -o /tmp/oepatchbj7pfmzj -- .'' exited with 0 Output:
stdout:
stderr: fatal: bad revision 'INVALID'
Fix this by adding a check and abort with a proper error message.
(From OE-Core rev: 5b77f60e85d07921ae5e808daa1fd7d8c3dc40ea)
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/devtool/standard.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index cd79c7802c..55fa38ccfb 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py | |||
@@ -1530,6 +1530,11 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi | |||
1530 | recipedir = os.path.basename(recipefile) | 1530 | recipedir = os.path.basename(recipefile) |
1531 | logger.info('Updating SRCREV in recipe %s%s' % (recipedir, dry_run_suffix)) | 1531 | logger.info('Updating SRCREV in recipe %s%s' % (recipedir, dry_run_suffix)) |
1532 | 1532 | ||
1533 | # Get original SRCREV | ||
1534 | old_srcrev = rd.getVar('SRCREV') or '' | ||
1535 | if old_srcrev == "INVALID": | ||
1536 | raise DevtoolError('Update mode srcrev is only valid for recipe fetched from an SCM repository') | ||
1537 | |||
1533 | # Get HEAD revision | 1538 | # Get HEAD revision |
1534 | try: | 1539 | try: |
1535 | stdout, _ = bb.process.run('git rev-parse HEAD', cwd=srctree) | 1540 | stdout, _ = bb.process.run('git rev-parse HEAD', cwd=srctree) |
@@ -1556,7 +1561,6 @@ def _update_recipe_srcrev(recipename, workspace, srctree, rd, appendlayerdir, wi | |||
1556 | if not no_remove: | 1561 | if not no_remove: |
1557 | # Find list of existing patches in recipe file | 1562 | # Find list of existing patches in recipe file |
1558 | patches_dir = tempfile.mkdtemp(dir=tempdir) | 1563 | patches_dir = tempfile.mkdtemp(dir=tempdir) |
1559 | old_srcrev = rd.getVar('SRCREV') or '' | ||
1560 | upd_p, new_p, del_p = _export_patches(srctree, rd, old_srcrev, | 1564 | upd_p, new_p, del_p = _export_patches(srctree, rd, old_srcrev, |
1561 | patches_dir) | 1565 | patches_dir) |
1562 | logger.debug('Patches: update %s, new %s, delete %s' % (dict(upd_p), dict(new_p), dict(del_p))) | 1566 | logger.debug('Patches: update %s, new %s, delete %s' % (dict(upd_p), dict(new_p), dict(del_p))) |