summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/standard.py
diff options
context:
space:
mode:
authorJulien Stephan <jstephan@baylibre.com>2023-11-22 12:08:14 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-12-01 11:48:25 +0000
commit1ae4cc7a1158d704c7f41bdae4fe194a9c57df05 (patch)
tree8af4dac014503de714d3283a3a86cdcb5a9a2146 /scripts/lib/devtool/standard.py
parentd069eb3af4f8a20ca4bad84b5e529e92d152ccef (diff)
downloadpoky-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/lib/devtool/standard.py')
-rw-r--r--scripts/lib/devtool/standard.py6
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)))