wic: add wic-tools recipe

This meta recipe is for building tools used by wic.
It allows wic to find tools in recipe specific sysroot as
all tools will be present in wic-tools sysroot.

NOTE: task do_build_sysroot is created to ensure that
sysroot is re-populated when package is built. Otherwise it will
be taken from sstate and sysroot will not be populated.

Generated wic-tools.env file for wic to be able to get values of
wic-tools variables when wic run from bitbake.

Also add dependency to grub-efi

Without grub-efi test_iso_image test case fails with this error:

AssertionError: Command 'wic create mkhybridiso --image-name
core-image-minimal' returned non-zero exit status 1:
Error: Please build grub-efi first

Fixed by adding dependency wic-tools -> grub-efi.

[RP: Added syslinux exclusion for non-IA arches]
(From OE-Core rev: 71066ce21514725428860ca926cc29161f710af6)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh 2017-01-18 18:53:48 +02:00 committed by Richard Purdie
parent 8ba68cc1f7
commit c13943dbf9
1 changed files with 24 additions and 0 deletions

View File

@ -0,0 +1,24 @@
SUMMARY = "A meta recipe to build native tools used by wic."
LICENSE = "MIT"
DEPENDS = "parted-native syslinux-native gptfdisk-native dosfstools-native mtools-native bmap-tools-native grub-efi-native cdrtools-native"
DEPENDS_append_x86 = " syslinux grub-efi"
DEPENDS_append_x86-64 = " syslinux grub-efi"
INHIBIT_DEFAULT_DEPS = "1"
inherit nopackages
python do_build_sysroot () {
bb.build.exec_func("extend_recipe_sysroot", d)
# Write environment variables used by wic
# to tmp/sysroots/<machine>/imgdata/wictools.env
outdir = os.path.join(d.getVar('STAGING_DIR'), 'imgdata')
bb.utils.mkdirhier(outdir)
with open(os.path.join(outdir, "wic-tools.env"), 'w') as envf:
for var in ('RECIPE_SYSROOT_NATIVE', 'STAGING_DATADIR', 'STAGING_LIBDIR'):
envf.write('%s="%s"\n' % (var, d.getVar(var).strip()))
}
addtask do_build_sysroot after do_prepare_recipe_sysroot before do_build