From patchwork Wed Mar 27 19:54:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Simone_Wei=C3=9F?= X-Patchwork-Id: 41576 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4CBA0C54E67 for ; Wed, 27 Mar 2024 19:55:09 +0000 (UTC) Received: from mout01.posteo.de (mout01.posteo.de [185.67.36.65]) by mx.groups.io with SMTP id smtpd.web10.3363.1711569306068279560 for ; Wed, 27 Mar 2024 12:55:06 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="dkim: body hash did not verify" header.i=@posteo.com header.s=2017 header.b=PFjwX4Yf; spf=pass (domain: posteo.com, ip: 185.67.36.65, mailfrom: simone.p.weiss@posteo.com) Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 048BE240027 for ; Wed, 27 Mar 2024 20:55:03 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.com; s=2017; t=1711569304; bh=07h3Hz1IWmj2EV8yzkuucDJFg74SK3rTTkB9UwZETLY=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type: Content-Transfer-Encoding:From; b=PFjwX4YfOwNYuw+MKkI14g/C7cR8iXigHMWnNMhltlPVbAonkEYWi5Un6kbqJ6PCf llSXHamps0YFIB4AeiTiSQEWsVVhLFhUBUskSYpJN2fL1SMCSySH/Tf06eSs/IBhsc QuyiEtUj1NXGFjfAkn1B1HC1AXMvl/p4TnLoTZdyP3OfTtxvQIpP+weFqhtmF49+rr t7QqlBY/rdkzeyurEws1ZTDhMc4EmQHMPYaLFMQqPQ6ifxsnXHiRkISfDRvuG4Cgqh fk/QJwlVemBCEiegqkWrCkKdUaikNy7Y+kZCUW98N9nuWotS5L2St721MH4ALyN7Qb 6BF+cgO0zPVuA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4V4cpG5RbPz6tmv; Wed, 27 Mar 2024 20:55:02 +0100 (CET) From: simone.p.weiss@posteo.com To: bitbake-devel@lists.openembedded.org Cc: =?utf-8?q?Simone_Wei=C3=9F?= Subject: [PATCH v2] bitbake-layers: add/remove option to not use tinfoil Date: Wed, 27 Mar 2024 19:54:10 +0000 Message-Id: <20240327195409.8095-1-simone.p.weiss@posteo.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Wed, 27 Mar 2024 19:55:09 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/16017 From: Simone Weiß Fixes [YOCTO #15417] When a layer adds a new dependency after it was added to a conf, it can not be removed w/o this dependency in the setup. Even the dependent layer can not be added, as the tinfoil setup will fail. Add an option to not perform the tinfoil at all, the use will be at own risk, i.e. the added layers might not parse properly afterwards. Signed-off-by: Simone Weiß --- v2: Rename option to be more meaningful. bin/bitbake-layers | 14 ++++++++++---- lib/bblayers/action.py | 6 ++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/bin/bitbake-layers b/bin/bitbake-layers index d4b1d1aa..f7ed5ce0 100755 --- a/bin/bitbake-layers +++ b/bin/bitbake-layers @@ -34,6 +34,7 @@ def main(): parser.add_argument('-d', '--debug', help='Enable debug output', action='store_true') parser.add_argument('-q', '--quiet', help='Print only errors', action='store_true') parser.add_argument('-F', '--force', help='Force add without recipe parse verification', action='store_true') + parser.add_argument('-S', '--skip_parse_tests', help='Force run without parsing the layers, this might cause later failures.', action='store_true') parser.add_argument('--color', choices=['auto', 'always', 'never'], default='auto', help='Colorize output (where %(metavar)s is %(choices)s)', metavar='COLOR') global_args, unparsed_args = parser.parse_known_args() @@ -59,16 +60,21 @@ def main(): plugins = [] tinfoil = bb.tinfoil.Tinfoil(tracking=True) tinfoil.logger.setLevel(logger.getEffectiveLevel()) - try: + if global_args.skip_parse_tests: + bbpath_string = [] + else: tinfoil.prepare(True) - for path in ([topdir] + - tinfoil.config_data.getVar('BBPATH').split(':')): + bbpath_string = tinfoil.config_data.getVar('BBPATH').split(':') + print(bbpath_string) + + try: + for path in ([topdir] + bbpath_string): pluginpath = os.path.join(path, 'lib', 'bblayers') bb.utils.load_plugins(logger, plugins, pluginpath) registered = False for plugin in plugins: - if hasattr(plugin, 'tinfoil_init'): + if hasattr(plugin, 'tinfoil_init') and not global_args.skip_parse_tests: plugin.tinfoil_init(tinfoil) if hasattr(plugin, 'register_commands'): registered = True diff --git a/lib/bblayers/action.py b/lib/bblayers/action.py index a8f26993..5aecc452 100644 --- a/lib/bblayers/action.py +++ b/lib/bblayers/action.py @@ -50,8 +50,8 @@ class ActionPlugin(LayerPlugin): try: notadded, _ = bb.utils.edit_bblayers_conf(bblayers_conf, layerdirs, None) - self.tinfoil.modified_files() - if not (args.force or notadded): + if not (args.force or notadded or args.skip_parse_tests): + self.tinfoil.modified_files() try: self.tinfoil.run_command('parseConfiguration') except (bb.tinfoil.TinfoilUIException, bb.BBHandledException): @@ -83,6 +83,8 @@ class ActionPlugin(LayerPlugin): layerdir = os.path.abspath(item) layerdirs.append(layerdir) (_, notremoved) = bb.utils.edit_bblayers_conf(bblayers_conf, None, layerdirs) + if args.skip_parse_tests: + return 0 self.tinfoil.modified_files() if notremoved: for item in notremoved: