diff options
author | Olof Johansson <olof.johansson@axis.com> | 2018-10-19 18:15:23 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-10-20 22:40:16 +0100 |
commit | 32914a1780f89e4f2f9a7d1280b5c9cdf31c57ef (patch) | |
tree | eed7a3ad137f7292d6926410d9e2948a6883f443 /meta/classes/devtool-source.bbclass | |
parent | 72a92f6e42861cbdbf91cf27e2fcdd589fcda2bf (diff) | |
download | poky-32914a1780f89e4f2f9a7d1280b5c9cdf31c57ef.tar.gz |
devtool-source.bbclass: Only create each patch branch once
For conditonally applied patches based on SRC_URI overrides, the
devtool-source class would try to create a new branch for each override
assignment as a postfunc to do_patch, but if the same override was used
multiple times, it would try to create the same branch multiple times,
causing errors like
> Exception: bb.process.ExecutionError: Execution of
\ 'git checkout f0f0f0f0f0ff0f0f0f0f0f0f0f0f0f0f0ff0f0f0 -b devtool-override-foo'
\ failed with exit code 128:
> fatal: A branch named 'devtool-override-foo' already exists.
This change makes sure that the devtool-source bbclass will only create
one branch per override.
(From OE-Core rev: 95a921959d340f74b5604df57737c1eeaad0023e)
Signed-off-by: Olof Johansson <olofjn@axis.com>
Reviewed-by: Peter Kjellerstedt <pkj@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/devtool-source.bbclass')
-rw-r--r-- | meta/classes/devtool-source.bbclass | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/meta/classes/devtool-source.bbclass b/meta/classes/devtool-source.bbclass index 67cd0bafb2..1372e32c9e 100644 --- a/meta/classes/devtool-source.bbclass +++ b/meta/classes/devtool-source.bbclass | |||
@@ -183,14 +183,14 @@ python devtool_post_patch() { | |||
183 | 183 | ||
184 | extra_overrides = d.getVar('DEVTOOL_EXTRA_OVERRIDES') | 184 | extra_overrides = d.getVar('DEVTOOL_EXTRA_OVERRIDES') |
185 | if extra_overrides: | 185 | if extra_overrides: |
186 | extra_override_list = extra_overrides.split(':') | 186 | extra_overrides = set(extra_overrides.split(':')) |
187 | devbranch = d.getVar('DEVTOOL_DEVBRANCH') | 187 | devbranch = d.getVar('DEVTOOL_DEVBRANCH') |
188 | default_overrides = d.getVar('OVERRIDES').split(':') | 188 | default_overrides = d.getVar('OVERRIDES').split(':') |
189 | no_overrides = [] | 189 | no_overrides = [] |
190 | # First, we may have some overrides that are referred to in the recipe set in | 190 | # First, we may have some overrides that are referred to in the recipe set in |
191 | # our configuration, so we need to make a branch that excludes those | 191 | # our configuration, so we need to make a branch that excludes those |
192 | for override in default_overrides: | 192 | for override in default_overrides: |
193 | if override not in extra_override_list: | 193 | if override not in extra_overrides: |
194 | no_overrides.append(override) | 194 | no_overrides.append(override) |
195 | if default_overrides != no_overrides: | 195 | if default_overrides != no_overrides: |
196 | # Some overrides are active in the current configuration, so | 196 | # Some overrides are active in the current configuration, so |
@@ -208,7 +208,7 @@ python devtool_post_patch() { | |||
208 | else: | 208 | else: |
209 | bb.process.run('git checkout %s -b devtool-no-overrides' % devbranch, cwd=srcsubdir) | 209 | bb.process.run('git checkout %s -b devtool-no-overrides' % devbranch, cwd=srcsubdir) |
210 | 210 | ||
211 | for override in extra_override_list: | 211 | for override in extra_overrides: |
212 | localdata = bb.data.createCopy(d) | 212 | localdata = bb.data.createCopy(d) |
213 | if override in default_overrides: | 213 | if override in default_overrides: |
214 | bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir) | 214 | bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir) |