[prev in list] [next in list] [prev in thread] [next in thread]
List: openembedded-core
Subject: [OE-core] [PATCH 5/8] recipeutils: bbappend_recipe: allow to patch the recipe itself
From: "Julien Stephan" <jstephan () baylibre ! com>
Date: 2023-11-30 22:01:53
Message-ID: 20231130220156.726263-6-jstephan () baylibre ! com
[Download RAW message or body]
Content-Transfer-Encoding: 8bit
Add a new parameter update_original_recipe to allow to patch a recipe
instead of creating/updating a bbappend
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
meta/lib/oe/recipeutils.py | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py
index 9784ae3b031..c768c5a4582 100644
--- a/meta/lib/oe/recipeutils.py
+++ b/meta/lib/oe/recipeutils.py
@@ -664,7 +664,7 @@ def get_bbappend_path(d, destlayerdir, wildcardver=False):
return (appendpath, pathok)
-def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, \
machine=None, extralines=None, removevalues=None, redirect_output=None, params=None): \
+def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, wildcardver=False, \
machine=None, extralines=None, removevalues=None, redirect_output=None, params=None, \
update_original_recipe=False): """
Writes a bbappend file for a recipe
Parameters:
@@ -698,19 +698,29 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, \
wildcardver=False, params:
Parameters to use when adding entries to SRC_URI. If specified,
should be a list of dicts with the same length as srcfiles.
+ update_original_recipe:
+ Force to update the original recipe instead of creating/updating
+ a bbapend. destlayerdir must contain the original recipe
"""
if not removevalues:
removevalues = {}
recipefile = rd.getVar('FILE')
- # Determine how the bbappend should be named
- appendpath, pathok = get_bbappend_path(rd, destlayerdir, wildcardver)
- if not appendpath:
- bb.error('Unable to determine layer directory containing %s' % recipefile)
- return (None, None)
- if not pathok:
- bb.warn('Unable to determine correct subdirectory path for bbappend file - \
check that what %s adds to BBFILES also matches .bbappend files. Using %s for now, \
but until you fix this the bbappend will not be applied.' % \
(os.path.join(destlayerdir, 'conf', 'layer.conf'), os.path.dirname(appendpath))) + \
if update_original_recipe: + if destlayerdir not in recipefile:
+ bb.error("destlayerdir %s doesn't contain the original recipe (%s), \
cannot update it" % (destlayerdir, recipefile)) + return (None, None)
+
+ appendpath = recipefile
+ else:
+ # Determine how the bbappend should be named
+ appendpath, pathok = get_bbappend_path(rd, destlayerdir, wildcardver)
+ if not appendpath:
+ bb.error('Unable to determine layer directory containing %s' % \
recipefile) + return (None, None)
+ if not pathok:
+ bb.warn('Unable to determine correct subdirectory path for bbappend file \
- check that what %s adds to BBFILES also matches .bbappend files. Using %s for now, \
but until you fix this the bbappend will not be applied.' % \
(os.path.join(destlayerdir, 'conf', 'layer.conf'), os.path.dirname(appendpath)))
appenddir = os.path.dirname(appendpath)
if not redirect_output:
@@ -755,7 +765,7 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, \
wildcardver=False, bbappendlines.append((varname, op, value))
destsubdir = rd.getVar('PN')
- if srcfiles:
+ if not update_original_recipe and srcfiles:
bbappendlines.append(('FILESEXTRAPATHS:prepend', ':=', '${THISDIR}/${PN}:'))
appendoverride = ''
@@ -803,6 +813,8 @@ def bbappend_recipe(rd, destlayerdir, srcfiles, install=None, \
wildcardver=False, # multiple times per operation when we're handling overrides)
if os.path.exists(appendpath) and not os.path.exists(outfile):
shutil.copy2(appendpath, outfile)
+ elif update_original_recipe:
+ outfile = recipefile
else:
bb.note('Writing append file %s' % appendpath)
outfile = appendpath
--
2.42.0
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#191549): https://lists.openembedded.org/g/openembedded-core/message/191549
Mute This Topic: https://lists.openembedded.org/mt/102903936/4454766
Group Owner: openembedded-core+owner@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [openembedded-core@marc.info]
-=-=-=-=-=-=-=-=-=-=-=-
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic