mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00
devtool upgrade: rebase override-only patches as well
There's a number of recipes (such as nettle or glib) which were upgraded incorrectly due to rebasing only the default set of patches in main SRC_URI. Native-only or musl-only patches were not handled, causing do_patch fails and overall misery. Unfortunately, this also necessitates aborting any incomplete rebases as devtool needs to be able to return to the original branch to complete the upgrade command. Also, do not add devtool-patched-%version tags, as they are not used anywhere, and it's unclear how to extend them to cover multiple override branches. (From OE-Core rev: 00131cbc969f6a73caffe068fcb983287cbe577f) (From OE-Core rev: 588d04748dd89b5371ca9144666e97ec82dd6204) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2834c2f853
commit
c341eea9e9
|
@ -261,21 +261,20 @@ def _extract_new_source(newpv, srctree, no_patch, srcrev, srcbranch, branch, kee
|
||||||
logger.warning('By user choice, the following patches will NOT be applied to the new source tree:\n %s' % '\n '.join([os.path.basename(patch) for patch in patches]))
|
logger.warning('By user choice, the following patches will NOT be applied to the new source tree:\n %s' % '\n '.join([os.path.basename(patch) for patch in patches]))
|
||||||
else:
|
else:
|
||||||
__run('git checkout devtool-patched -b %s' % branch)
|
__run('git checkout devtool-patched -b %s' % branch)
|
||||||
skiptag = False
|
(stdout, _) = __run('git branch --list devtool-override-*')
|
||||||
|
branches_to_rebase = [branch] + stdout.split()
|
||||||
|
for b in branches_to_rebase:
|
||||||
|
logger.info("Rebasing {} onto {}".format(b, rev))
|
||||||
|
__run('git checkout %s' % b)
|
||||||
try:
|
try:
|
||||||
__run('git rebase %s' % rev)
|
__run('git rebase %s' % rev)
|
||||||
except bb.process.ExecutionError as e:
|
except bb.process.ExecutionError as e:
|
||||||
skiptag = True
|
|
||||||
if 'conflict' in e.stdout:
|
if 'conflict' in e.stdout:
|
||||||
logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
|
logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
|
||||||
|
__run('git rebase --abort')
|
||||||
else:
|
else:
|
||||||
logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
|
logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
|
||||||
if not skiptag:
|
__run('git checkout %s' % branch)
|
||||||
if uri.startswith('git://') or uri.startswith('gitsm://'):
|
|
||||||
suffix = 'new'
|
|
||||||
else:
|
|
||||||
suffix = newpv
|
|
||||||
__run('git tag -f devtool-patched-%s' % suffix)
|
|
||||||
|
|
||||||
if tmpsrctree:
|
if tmpsrctree:
|
||||||
if keep_temp:
|
if keep_temp:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user