From: Julien Stephan Date: Tue, 5 Dec 2023 14:56:31 +0000 (+0100) Subject: recipeutils: bbappend_recipe: remove old srcuri entry if parameters are different X-Git-Tag: yocto-5.2~4389 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a4628fffcfecb5cd95dc2558dfd39ebd71121eab;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git recipeutils: bbappend_recipe: remove old srcuri entry if parameters are different Currently we do not add a new src_ury entry if the entry already exists AND the parameters are the same. I believe that when an entry already exist with different parameters, we should remove it and add the new entry otherwise we end up with two entries with different parameters Signed-off-by: Julien Stephan Signed-off-by: Alexandre Belloni Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index 1d793693bfd..d86873056fe 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py @@ -776,14 +776,22 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, else: srcfile = os.path.basename(newfile) srcurientry = 'file://%s' % srcfile + oldentry = None + for uri in rd.getVar('SRC_URI').split(): + if srcurientry in uri: + oldentry = uri if params and params[i]: srcurientry = '%s;%s' % (srcurientry, ';'.join('%s=%s' % (k,v) for k,v in params[i].items())) # Double-check it's not there already # FIXME do we care if the entry is added by another bbappend that might go away? if not srcurientry in rd.getVar('SRC_URI').split(): if machine: + if oldentry: + appendline('SRC_URI:remove%s' % appendoverride, '=', ' ' + oldentry) appendline('SRC_URI:append%s' % appendoverride, '=', ' ' + srcurientry) else: + if oldentry: + appendline('SRC_URI:remove', '=', oldentry) appendline('SRC_URI', '+=', srcurientry) param['path'] = srcfile else: