Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 00/17] Build wic images with bitbake
@ 2015-08-20 11:56 Ed Bartosh
  2015-08-20 11:56 ` [PATCH 01/17] image.py: write bitbake variables to .env file Ed Bartosh
                   ` (16 more replies)
  0 siblings, 17 replies; 22+ messages in thread
From: Ed Bartosh @ 2015-08-20 11:56 UTC (permalink / raw)
  To: openembedded-core

Hi Reviewers,

This patchset adds new image type 'wic' to the list of image types
supported by bitbake. This should allow to build partitioned image
the same way as any other images.

New image type can be used in image recipes almost the same way as other
image types. There is just one difference - <image>[.<machine>].wks file
should be put to the same location as image recipe.

To enable this functionality I've implemented generating .env files with
bitbake variables and reading them by wic. This seems to be the only way
to get bitbake variables in wic when it's run by bitbake as running
'bitbake -e' is not possible as bitbake is locked.

Test cases for new functionality and small improvements are also included
into this patchset.

The following changes since commit 6b8bb442880ef18097e47761f4f3b6f555f2877c:

  genericx86*: Update BSPs to use 4.1 Kernel (2015-08-19 18:05:56 +0100)

are available in the git repository at:

  git://git.yoctoproject.org/poky-contrib ed/wic/wic-image-type
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/wic/wic-image-type

Ed Bartosh (17):
  image.py: write bitbake variables to .env file
  oe-selftest: test generation of <image>.env
  wic: remove undescore from function name
  wic: add BitbakeVars class
  wic: create new method _parse_line
  wic: add default_image attribute to BitbakeVars
  wic: set default image
  wic: implement getting variables from .env files
  wic: implement --vars option
  wic: rename variable
  wic: deferred call of hlp.get_wic_plugins_help()
  image_types.bbclass: add wic image type
  wic-image-minimal: add wic image recipe and .wks
  oe-selftest: test building wic image by bitbake
  image.py: set bitbake variable ROOTFS_SIZE
  wic: use bitbake variable ROOTFS_SIZE
  image.py: add script output to the rootfs log

 meta/classes/image_types.bbclass                   |  12 ++
 meta/lib/oe/image.py                               |  32 +++++-
 meta/lib/oeqa/selftest/wic.py                      |  34 ++++++
 meta/recipes-extended/images/wic-image-minimal.bb  |  14 +++
 meta/recipes-extended/images/wic-image-minimal.wks |  10 ++
 scripts/lib/image/help.py                          |   6 +-
 scripts/lib/wic/imager/direct.py                   |  14 +++
 scripts/lib/wic/utils/oe/misc.py                   | 125 ++++++++++++++-------
 scripts/wic                                        |  14 ++-
 9 files changed, 213 insertions(+), 48 deletions(-)
 create mode 100644 meta/recipes-extended/images/wic-image-minimal.bb
 create mode 100644 meta/recipes-extended/images/wic-image-minimal.wks

--
Ed



^ permalink raw reply	[flat|nested] 22+ messages in thread
* [PATCH 01/17] image.py: write bitbake variables to .env file
  2015-08-25  9:04 ` [PATCH v2 00/17] Build wic images with bitbake Ed Bartosh
@ 2015-08-25  9:04 Ed Bartosh
  2015-08-25  9:04 ` [PATCH v2 00/17] Build wic images with bitbake Ed Bartosh
  0 siblings, 1 reply; 22+ messages in thread
From: Ed Bartosh @ 2015-08-25  9:04 UTC (permalink / raw)
  To: openembedded-core

Write set of bitbake variables associated with the image into
build/tmp/sysroots/<machine>/imagedata/<image>.env

This is needed for wic to be able to get bitbake variables without
running 'bitbake -e'.

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
---
 meta/lib/oe/image.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/meta/lib/oe/image.py b/meta/lib/oe/image.py
index 699c30f..a7fdefa 100644
--- a/meta/lib/oe/image.py
+++ b/meta/lib/oe/image.py
@@ -321,6 +321,27 @@ class Image(ImageDepGraph):
 
         return image_cmd_groups
 
+    def _write_env(self):
+        """
+        Write environment variables
+        to tmp/sysroots/<machine>/imgdata/<image>.env
+        """
+        stdir = self.d.getVar('STAGING_DIR_TARGET', True)
+        outdir = os.path.join(stdir, 'imgdata')
+        if not os.path.exists(outdir):
+            os.makedirs(outdir)
+        basename = self.d.getVar('IMAGE_BASENAME', True)
+        with open(os.path.join(outdir, basename) + '.env', 'w') as envf:
+            for var in sorted(self.d.keys()):
+                # filter out as much as we can to reduce file size
+                if var.startswith('_') or var.startswith('BB_') \
+                   or not var.isupper() or self.d.getVarFlag(var, "func") \
+                   or var in ('BBINCLUDED', 'SRCPV', 'MIRRORS'):
+                    continue
+                value = self.d.getVar(var, True)
+                if value:
+                    envf.write('%s="%s"\n' % (var, value.strip()))
+
     def create(self):
         bb.note("###### Generate images #######")
         pre_process_cmds = self.d.getVar("IMAGE_PREPROCESS_COMMAND", True)
@@ -332,6 +353,8 @@ class Image(ImageDepGraph):
 
         image_cmd_groups = self._get_imagecmds()
 
+        self._write_env()
+
         for image_cmds in image_cmd_groups:
             # create the images in parallel
             nproc = multiprocessing.cpu_count()
-- 
2.1.4



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

end of thread, other threads:[~2015-08-30 13:17 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-20 11:56 [PATCH 00/17] Build wic images with bitbake Ed Bartosh
2015-08-20 11:56 ` [PATCH 01/17] image.py: write bitbake variables to .env file Ed Bartosh
2015-08-30 11:24   ` Richard Purdie
2015-08-30 13:17     ` Ed Bartosh
2015-08-20 11:56 ` [PATCH 02/17] oe-selftest: test generation of <image>.env Ed Bartosh
2015-08-20 11:56 ` [PATCH 03/17] wic: remove undescore from function name Ed Bartosh
2015-08-20 11:56 ` [PATCH 04/17] wic: add BitbakeVars class Ed Bartosh
2015-08-20 11:56 ` [PATCH 05/17] wic: create new method _parse_line Ed Bartosh
2015-08-20 11:56 ` [PATCH 06/17] wic: add default_image attribute to BitbakeVars Ed Bartosh
2015-08-20 11:56 ` [PATCH 07/17] wic: set default image Ed Bartosh
2015-08-20 11:56 ` [PATCH 08/17] wic: implement getting variables from .env files Ed Bartosh
2015-08-20 11:56 ` [PATCH 09/17] wic: implement --vars option Ed Bartosh
2015-08-20 11:56 ` [PATCH 10/17] wic: rename variable Ed Bartosh
2015-08-20 11:56 ` [PATCH 11/17] wic: deferred call of hlp.get_wic_plugins_help() Ed Bartosh
2015-08-20 11:56 ` [PATCH 12/17] image_types.bbclass: add wic image type Ed Bartosh
2015-08-20 11:56 ` [PATCH 13/17] wic-image-minimal: add wic image recipe and .wks Ed Bartosh
2015-08-20 11:56 ` [PATCH 14/17] oe-selftest: test building wic image by bitbake Ed Bartosh
2015-08-20 12:55   ` Mario Domenech Goulart
2015-08-20 11:56 ` [PATCH 15/17] image.py: set bitbake variable ROOTFS_SIZE Ed Bartosh
2015-08-20 11:56 ` [PATCH 16/17] wic: use " Ed Bartosh
2015-08-20 11:56 ` [PATCH 17/17] image.py: add script output to the rootfs log Ed Bartosh
  -- strict thread matches above, loose matches on Subject: below --
2015-08-25  9:04 [PATCH 01/17] image.py: write bitbake variables to .env file Ed Bartosh
2015-08-25  9:04 ` [PATCH v2 00/17] Build wic images with bitbake Ed Bartosh
2015-08-25  9:04   ` [PATCH 14/17] oe-selftest: test building wic image by bitbake Ed Bartosh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox