[prev in list] [next in list] [prev in thread] [next in thread]
List: openembedded-core
Subject: [OE-core] [PATCH 4/8] recipetool: appendsrcfile(s): use params instead of extraline
From: "Julien Stephan" <jstephan () baylibre ! com>
Date: 2023-11-30 22:01:52
Message-ID: 20231130220156.726263-5-jstephan () baylibre ! com
[Download RAW message or body]
Content-Transfer-Encoding: 8bit
appendsrc function relies on oe.recipeutils.bbappend_recipe to
copy files and add the corresponding entries in SRC_URI.
Currently, appendsrc function build itself the new SRC_URI entry to add the
correct subdir param, and gives it using the extralines parameter.
This has 2 drawbacks:
- oe.recipeutils.bbappend_recipe can already do this if we specify the
correct params, so we have duplicate code
- the duplicated code is not fully functional: for example, it doesn't
take into account the -m/--machine parameter
So fix this by not using extralines but give correctly formatted params.
Also remove the check for already existing entries as
oe.recipeutils.bbappend_recipe already implement it
The new bbappend file now have the SRC_URI entry after the
FILESEXTRAPATHS so fix the selftest.
And skip test_recipetool_appendsrcfile_existing_in_src_uri_diff_params
test because recipetool appendsrcfiles used to not add new src_uri entry
if the entry already exist even with different parameters while
oe.recipeutils.bbappend_recipe adds it if parameters are different. So
we need to figure out if we want to keep the old behaviour and if we need
to patch oe.recipeutils.bbappend_recipe, and update the test or remove
it.
Signed-off-by: Julien Stephan <jstephan@baylibre.com>
---
meta/lib/oeqa/selftest/cases/recipetool.py | 10 ++++++++--
scripts/lib/recipetool/append.py | 23 ++++++++--------------
2 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/meta/lib/oeqa/selftest/cases/recipetool.py \
b/meta/lib/oeqa/selftest/cases/recipetool.py index 55cbba9ca74..b445a40cb10 100644
--- a/meta/lib/oeqa/selftest/cases/recipetool.py
+++ b/meta/lib/oeqa/selftest/cases/recipetool.py
@@ -1083,12 +1083,13 @@ class RecipetoolAppendsrcBase(RecipetoolBase):
expectedlines = ['FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"\n',
'\n']
+
if has_src_uri:
uri = 'file://%s' % filename
if expected_subdir:
uri += ';subdir=%s' % expected_subdir
- expectedlines[0:0] = ['SRC_URI += "%s"\n' % uri,
- '\n']
+ expectedlines.extend(['SRC_URI += "%s"\n' % uri,
+ '\n'])
return self._try_recipetool_appendsrcfile(testrecipe, newfile, destpath, \
options, expectedlines, [filename])
@@ -1148,6 +1149,11 @@ class RecipetoolAppendsrcTests(RecipetoolAppendsrcBase):
self._test_appendsrcfile(testrecipe, filepath, has_src_uri=False)
def test_recipetool_appendsrcfile_existing_in_src_uri_diff_params(self):
+ # recipetool appensrcfiles now relies on oe.recipeutils.bbappend_recipe to \
add src_uri entries, + # but oe.recipeutils.bbappend_recipe adds the new entry \
if the file already exist but have different parameters + # while before \
recipetool appendsrcfiles was rejecting it. So we need to figure out, which one is \
the correct way + # and if necessary patch oe.recipeutils.bbappend_recipe
+ self.skipTest("Skipping this test for now, because recipetool appendsrcfile \
changed his behaviour. Need to decide weither we should keep the old behaviour or \
not") testrecipe = 'base-files'
subdir = 'tmp'
filepath = self._get_first_file_uri(testrecipe)
diff --git a/scripts/lib/recipetool/append.py b/scripts/lib/recipetool/append.py
index 09e314481f1..d7597ca5154 100644
--- a/scripts/lib/recipetool/append.py
+++ b/scripts/lib/recipetool/append.py
@@ -300,6 +300,8 @@ def appendfile(args):
if st.st_mode & stat.S_IXUSR:
perms = '0755'
install = {args.newfile: (args.targetpath, perms)}
+ if sourcepath:
+ sourcepath = os.path.basename(sourcepath)
oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: (None, \
sourcepath)}, install, wildcardver=args.wildcard_version, machine=args.machine) \
tinfoil.modified_files() return 0
@@ -329,6 +331,7 @@ def appendsrc(args, files, rd, extralines=None):
copyfiles = {}
extralines = extralines or []
+ params = []
for newfile, srcfile in files.items():
src_destdir = os.path.dirname(srcfile)
if not args.use_workdir:
@@ -339,22 +342,12 @@ def appendsrc(args, files, rd, extralines=None):
src_destdir = os.path.join(os.path.relpath(srcdir, workdir), \
src_destdir) src_destdir = os.path.normpath(src_destdir)
- source_uri = 'file://{0}'.format(os.path.basename(srcfile))
if src_destdir and src_destdir != '.':
- source_uri += ';subdir={0}'.format(src_destdir)
-
- simple = bb.fetch.URI(source_uri)
- simple.params = {}
- simple_str = str(simple)
- if simple_str in simplified:
- existing = simplified[simple_str]
- if source_uri != existing:
- logger.warning('{0!r} is already in SRC_URI, with different \
parameters: {1!r}, not adding'.format(source_uri, existing))
- else:
- logger.warning('{0!r} is already in SRC_URI, not \
adding'.format(source_uri)) + params.append({'subdir': src_destdir})
else:
- extralines.append('SRC_URI += {0}'.format(source_uri))
- copyfiles[newfile] = (None, srcfile)
+ params.append({})
+
+ copyfiles[newfile] = (None, os.path.basename(srcfile))
dry_run_output = None
dry_run_outdir = None
@@ -363,7 +356,7 @@ def appendsrc(args, files, rd, extralines=None):
dry_run_output = tempfile.TemporaryDirectory(prefix='devtool')
dry_run_outdir = dry_run_output.name
- appendfile, _ = oe.recipeutils.bbappend_recipe(rd, args.destlayer, copyfiles, \
None, wildcardver=args.wildcard_version, machine=args.machine, extralines=extralines, \
redirect_output=dry_run_outdir) + appendfile, _ = \
oe.recipeutils.bbappend_recipe(rd, args.destlayer, copyfiles, None, \
wildcardver=args.wildcard_version, machine=args.machine, extralines=extralines, \
params=params, redirect_output=dry_run_outdir) if args.dry_run:
output = ''
appendfilename = os.path.basename(appendfile)
--
2.42.0
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#191548): https://lists.openembedded.org/g/openembedded-core/message/191548
Mute This Topic: https://lists.openembedded.org/mt/102903935/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