From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Hieu Van Nguyen <hieu2.nguyen@lge.com>
Cc: bitbake-devel@lists.openembedded.org,
richard.purdie@linuxfoundation.org, pkj@axis.com,
nvhieudt11@gmail.com
Subject: Re: [bitbake-devel] [PATCH v3] bitbake-layers: Support add-layer to prepend
Date: Sat, 1 Jun 2024 07:45:35 +0200 [thread overview]
Message-ID: <202406010545352491ca1a@mail.local> (raw)
In-Reply-To: <20240509110400.1093934-1-hieu2.nguyen@lge.com>
This fails on the autbuilders:
2024-06-01 04:08:35,036 - oe-selftest - INFO - ======================================================================
2024-06-01 04:08:35,195 - oe-selftest - INFO - FAIL: sstatetests.SStateBundles.test_minimal_bundle (subunit.RemotedTestCase)
2024-06-01 04:08:35,195 - oe-selftest - INFO - ----------------------------------------------------------------------
2024-06-01 04:08:35,195 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/selftest/cases/sstatetests.py", line 1016, in test_minimal_bundle
runCmd("oe-replicate-build --targets {}".format(targets))
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/utils/commands.py", line 212, in runCmd
raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command 'oe-replicate-build --targets core-image-minimal' returned non-zero exit status 1:
Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/bitbake/bin/bitbake-layers", line 101, in <module>
ret = main()
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/bitbake/bin/bitbake-layers", line 94, in main
return args.func(args)
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/bblayers/create.py", line 76, in do_create_layer
ActionPlugin.do_add_layer(self, args)
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/bitbake/lib/bblayers/action.py", line 52, in do_add_layer
notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None, None, args.prepend)
AttributeError: 'Namespace' object has no attribute 'prepend'
Making a self-extracting bundle archive in build-bundle.sh ...
Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/scripts/oe-replicate-build", line 74, in <module>
_do_bundle(args)
File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/scripts/oe-replicate-build", line 29, in _do_bundle
subprocess.check_output("bitbake-layers create-layer --add-layer {}".format(layerdir), shell=True, cwd=bundledir)
File "/usr/lib64/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib64/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'bitbake-layers create-layer --add-layer meta-build-config' returned non-zero exit status 1.
On 09/05/2024 20:04:00+0900, Hieu Van Nguyen wrote:
> From: Hieu Van Nguyen <hieu2.nguyen@lge.com>
>
> As you know, layer order in BBLAYERS can affect in parsing recipes process,
> in some cases, users want to add a layer on the top of BBLAYERS variable
>
> So, add "--prepend" option for bitbake-layers to support add-layer to prepend
>
> Signed-off-by: Hieu Van Nguyen <hieu2.nguyen@lge.com>
> ---
> v3: fix From:
> lib/bb/utils.py | 8 ++++++--
> lib/bblayers/action.py | 3 ++-
> 2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/lib/bb/utils.py b/lib/bb/utils.py
> index ebee65d3d..f1634da0a 100644
> --- a/lib/bb/utils.py
> +++ b/lib/bb/utils.py
> @@ -1414,7 +1414,7 @@ def edit_metadata_file(meta_file, variables, varfunc):
> return updated
>
>
> -def edit_bblayers_conf(bblayers_conf, add, remove, edit_cb=None):
> +def edit_bblayers_conf(bblayers_conf, add, remove, edit_cb=None, prepend=None):
> """Edit bblayers.conf, adding and/or removing layers
> Parameters:
> bblayers_conf: path to bblayers.conf file to edit
> @@ -1424,6 +1424,7 @@ def edit_bblayers_conf(bblayers_conf, add, remove, edit_cb=None):
> empty list to remove nothing
> edit_cb: optional callback function that will be called after
> processing adds/removes once per existing entry.
> + prepend: optional support add-layer to prepend
> Returns a tuple:
> notadded: list of layers specified to be added but weren't
> (because they were already in the list)
> @@ -1484,7 +1485,10 @@ def edit_bblayers_conf(bblayers_conf, add, remove, edit_cb=None):
> for addlayer in addlayers:
> if addlayer not in bblayers:
> updated = True
> - bblayers.append(addlayer)
> + if prepend:
> + bblayers.insert(0,addlayer)
> + else:
> + bblayers.append(addlayer)
> del addlayers[:]
>
> if edit_cb:
> diff --git a/lib/bblayers/action.py b/lib/bblayers/action.py
> index a14f19948..8ef89fc09 100644
> --- a/lib/bblayers/action.py
> +++ b/lib/bblayers/action.py
> @@ -49,7 +49,7 @@ class ActionPlugin(LayerPlugin):
> shutil.copy2(bblayers_conf, backup)
>
> try:
> - notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None)
> + notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None, None, args.prepend)
> if not (args.force or notadded):
> self.tinfoil.modified_files()
> try:
> @@ -269,6 +269,7 @@ build results (as the layer priority order has effectively changed).
> def register_commands(self, sp):
> parser_add_layer = self.add_command(sp, 'add-layer', self.do_add_layer, parserecipes=False)
> parser_add_layer.add_argument('layerdir', nargs='+', help='Layer directory/directories to add')
> + parser_add_layer.add_argument('--prepend', action='store_true', help='Prepend layer directory/directories')
>
> parser_remove_layer = self.add_command(sp, 'remove-layer', self.do_remove_layer, parserecipes=False)
> parser_remove_layer.add_argument('layerdir', nargs='+', help='Layer directory/directories to remove (wildcards allowed, enclose in quotes to avoid shell expansion)')
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#16196): https://lists.openembedded.org/g/bitbake-devel/message/16196
> Mute This Topic: https://lists.openembedded.org/mt/105998764/3617179
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2024-06-01 5:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <16194>
2024-05-09 11:04 ` [PATCH v3] bitbake-layers: Support add-layer to prepend hieu2.nguyen
2024-06-01 5:45 ` Alexandre Belloni [this message]
2024-06-01 10:01 ` nvhieudt11
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202406010545352491ca1a@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=bitbake-devel@lists.openembedded.org \
--cc=hieu2.nguyen@lge.com \
--cc=nvhieudt11@gmail.com \
--cc=pkj@axis.com \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.