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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to