diff mbox series

[langdale,15/28] bblayers/setupwriters/oe-setup-layers: create dir if not exists

Message ID bd8920b3a93167ad80f41572b84d120538da22e4.1677430770.git.steve@sakoman.com
State New
Headers show
Series [langdale,01/28] less: backport the fix for CVE-2022-46663 | expand

Commit Message

Steve Sakoman Feb. 26, 2023, 5:02 p.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

Without this patch:

$ bitbake-layers create-layers-setup /home/adrian/temp/poky-clone
NOTE: Starting bitbake server...
Traceback (most recent call last):
  File "/home/adrian/projects/poky/bitbake/lib/bb/process.py", line 169, in run
    pipe = Popen(cmd, **options)
  File "/home/adrian/projects/poky/bitbake/lib/bb/process.py", line 73, in __init__
    subprocess.Popen.__init__(self, *args, **options)
  File "/usr/lib64/python3.10/subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/usr/lib64/python3.10/subprocess.py", line 1847, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/home/adrian/temp/poky-clone'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/adrian/projects/poky/bitbake/bin/bitbake-layers", line 95, in <module>
    ret = main()
  File "/home/adrian/projects/poky/bitbake/bin/bitbake-layers", line 88, in main
    return args.func(args)
  File "/home/adrian/projects/poky/meta/lib/bblayers/makesetup.py", line 90, in do_make_setup
    p.do_write(self, args)
  File "/home/adrian/projects/poky/meta/lib/bblayers/setupwriters/oe-setup-layers.py", line 36, in do_write
    repos = parent.make_repo_config(args.destdir, args.include_layer_repo)
  File "/home/adrian/projects/poky/meta/lib/bblayers/makesetup.py", line 55, in make_repo_config
    destdir_repo = self._get_repo_path(destdir)
  File "/home/adrian/projects/poky/meta/lib/bblayers/makesetup.py", line 30, in _get_repo_path
    repo_path, _ = bb.process.run('git rev-parse --show-toplevel', cwd=layer_path)
  File "/home/adrian/projects/poky/bitbake/lib/bb/process.py", line 172, in run
    raise NotFoundError(cmd)
bb.process.NotFoundError: Execution of 'git rev-parse --show-toplevel' failed: command not found

with this patch:

$ bitbake-layers create-layers-setup /home/adrian/temp/poky-clone
NOTE: Starting bitbake server...
NOTE: Created /home/adrian/temp/poky-clone/setup-layers.json
NOTE: Created /home/adrian/temp/poky-clone/setup-layers

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2da12ccada46443d58dd8fab463156fa763b84cc)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 meta/lib/bblayers/setupwriters/oe-setup-layers.py | 2 ++
 1 file changed, 2 insertions(+)
diff mbox series

Patch

diff --git a/meta/lib/bblayers/setupwriters/oe-setup-layers.py b/meta/lib/bblayers/setupwriters/oe-setup-layers.py
index f6a484b766..d5bc19a8cb 100644
--- a/meta/lib/bblayers/setupwriters/oe-setup-layers.py
+++ b/meta/lib/bblayers/setupwriters/oe-setup-layers.py
@@ -33,6 +33,8 @@  class OeSetupLayersWriter():
 
     def do_write(self, parent, args):
         """ Writes out a python script and a json config that replicate the directory structure and revisions of the layers in a current build. """
+        if not os.path.exists(args.destdir):
+            os.makedirs(args.destdir)
         repos = parent.make_repo_config(args.destdir)
         json = {"version":"1.0","sources":repos}
         if not repos: