Hi Even if it does not cover all the use cases. Can we consider this patch?
Thanks! On Sat, Apr 25, 2020 at 11:29 PM Ricardo Ribalda Delgado <ricardo.riba...@gmail.com> wrote: > > Hi Christopher > > On Fri, Apr 24, 2020 at 5:56 PM Christopher Larson <kerg...@gmail.com> wrote: > > > > This will only work the way you expect if hte user's local.conf uses ?= or > > ??= for MACHINE, otherwise setting it in the environment will do nothing. > > > > Good catch, You are right :(, > > Any idea of how could I fix it. I think I would have to change > site.conf, or local.conf from wic, and I do not want to do that. > > Ignoring this bug we are still covering a big number of usecases: > > - bibake > - wic with user provided rootfs-dir > - wic without userprovided rootfs-dir and ?= or ??= > > At the end of the day this is just a RFC ;), so i am open to any > implementation. I would love to hear your thoughts > > Best regards > > > > > On Fri, Apr 24, 2020 at 6:30 AM Ricardo Ribalda <ricardo.riba...@gmail.com> > > wrote: > >> > >> If you want to make a disk image containing rootfs for different > >> machines, the only way to do it today is by calling wic and passing the > >> different rootfs-paths. > >> > >> Eg: > >> combined.wks > >> part /export --source rootfs --rootfs-dir=target-image > >> part / --source rootfs > >> > >> bitbake multiconfig:arm:target-image > >> wic create combined --rootfs-dir > >> target-image=/workdir/build/tmp/work/arm-poky-linux/target-image/1.0-r0/rootfs/ > >> -e main > >> > >> This has many drawbacks: > >> 1) You need to know the folder location for the target-image > >> 2) It is easy to forget updating the target (only running wic and not > >> bitbake) > >> 3) It is slow > >> 4) It does not scale when you have multiple machines > >> > >> Instead, wic can be given a hint of what machine to search for: > >> > >> combined.wks > >> part /export --source rootfs --rootfs-dir=arm:target-image > >> part / --source rootfs > >> > >> bitbake main > >> > >> If we ensoure the dependency of target-image from main via > >> do_image[mcdepends], all the dependencies are automatically > >> handled. > >> > >> This patch makes wic aware of the machine to use. > >> > >> Signed-off-by: Ricardo Ribalda Delgado <rica...@ribalda.com> > >> --- > >> scripts/lib/wic/misc.py | 16 +++++++++++++--- > >> 1 file changed, 13 insertions(+), 3 deletions(-) > >> > >> diff --git a/scripts/lib/wic/misc.py b/scripts/lib/wic/misc.py > >> index 91975ba151..51b43b49aa 100644 > >> --- a/scripts/lib/wic/misc.py > >> +++ b/scripts/lib/wic/misc.py > >> @@ -206,7 +206,12 @@ class BitbakeVars(defaultdict): > >> > >> if image not in self: > >> if image and self.vars_dir: > >> - fname = os.path.join(self.vars_dir, image + '.env') > >> + if image.find(":") != -1: > >> + [machine, img] = image.split(":") > >> + fname = os.path.join(self.vars_dir, "../../", > >> + machine, "imgdata", img + '.env') > >> + else: > >> + fname = os.path.join(self.vars_dir, image + '.env') > >> if os.path.isfile(fname): > >> # parse .env file > >> with open(fname) as varsfile: > >> @@ -220,11 +225,16 @@ class BitbakeVars(defaultdict): > >> # Get bitbake -e output > >> cmd = "bitbake -e" > >> if image: > >> - cmd += " %s" % image > >> + if image.find(":") != -1: > >> + [machine, img] = image.split(":") > >> + cmd = "MACHINE=%s %s" % (machine, cmd) > >> + else: > >> + img = image > >> + cmd += " %s" % img > >> > >> log_level = logger.getEffectiveLevel() > >> logger.setLevel(logging.INFO) > >> - ret, lines = _exec_cmd(cmd) > >> + ret, lines = _exec_cmd(cmd, as_shell=True) > >> logger.setLevel(log_level) > >> > >> if ret: > >> -- > >> 2.26.1 > >> > >> > > > > > > > > -- > > Christopher Larson > > kergoth at gmail dot com > > Founder - BitBake, OpenEmbedded, OpenZaurus > > Senior Software Engineer, Mentor Graphics > > > > -- > Ricardo Ribalda -- Ricardo Ribalda
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#138205): https://lists.openembedded.org/g/openembedded-core/message/138205 Mute This Topic: https://lists.openembedded.org/mt/73241116/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-