All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] bitbake-layers: add/remove option to not use tinfoil
@ 2024-03-27 19:54 simone.p.weiss
  2024-03-28 14:01 ` [bitbake-devel] " Peter Kjellerstedt
  0 siblings, 1 reply; 2+ messages in thread
From: simone.p.weiss @ 2024-03-27 19:54 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Simone Weiß

From: Simone Weiß <simone.p.weiss@posteo.com>

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ß <simone.p.weiss@posteo.com>
---
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:
-- 
2.39.2



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-28 14:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-27 19:54 [PATCH v2] bitbake-layers: add/remove option to not use tinfoil simone.p.weiss
2024-03-28 14:01 ` [bitbake-devel] " Peter Kjellerstedt

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.