All of lore.kernel.org
 help / color / mirror / Atom feed
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


  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.