diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2020-09-16 14:54:45 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-09-17 09:47:45 +0100 |
commit | 43f1cf2d3d4b35b0bcd4bc9a4f464341af5f97dd (patch) | |
tree | 63799027a42a76eee032dd9f4c88f2df03757749 /meta/classes | |
parent | 565d243a1d2dad582ba19573d7a9cc3b15fd62af (diff) | |
download | poky-43f1cf2d3d4b35b0bcd4bc9a4f464341af5f97dd.tar.gz |
image-artifact-names: introduce new bbclass and move some variables into it
* similar to kernel-artifact-names for other recipes/bbclasses which
need to use some deployed artifacts
* bitbake.conf: move IMAGE_BASENAME, IMAGE_VERSION_SUFFIX, IMAGE_NAME,
IMAGE_LINK_NAME variables
* image_types.bbclass: move IMAGE_NAME_SUFFIX variable
* currently IMAGE_NAME_SUFFIX is used only by image.bbclass,
image_types.bbclass and meta/recipes-core/images/build-appliance-image_15.0.0.bb
but if it's needed by some recipe which isn't itself an image, then
it's useful in bitbake.conf, e.g. we have a recipe for creating
VirtualBox appliances which combines .wic.vmdk with .ovf file to
create .zip with appliance, but for that we need the filename of
.wic.vmdk which now contains IMAGE_NAME_SUFFIX
https://github.com/webOS-ports/meta-webos-ports/blob/4980ce52a43ac6897657602810313af359f0b839/meta-luneos/recipes-core/images/luneos-emulator-appliance.inc#L24
* we were hardcoding .rootfs suffix where needed, but for quite long
time it's configurable with IMAGE_NAME_SUFFIX since:
commit 380ee36811939d947024bf78de907e3c071b834f
Author: Patrick Ohly <patrick.ohly@intel.com>
Date: Mon Mar 7 18:07:52 2016 +0100
image creation: allow overriding .rootfs suffix
and might not match with hardcoded .rootfs, so make it easier to
use IMAGE_NAME_SUFFIX where needed even without inheritting whole
image_types.bbclass
[YOCTO #12937]
(From OE-Core rev: 456b700d51a5052a285a8477304f902c335223be)
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/buildhistory.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/image-artifact-names.bbclass | 15 | ||||
-rw-r--r-- | meta/classes/image-live.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/image_types.bbclass | 9 | ||||
-rw-r--r-- | meta/classes/kernel-artifact-names.bbclass | 8 | ||||
-rw-r--r-- | meta/classes/qemuboot.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/rootfs-postcommands.bbclass | 2 | ||||
-rw-r--r-- | meta/classes/testimage.bbclass | 2 |
8 files changed, 34 insertions, 8 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index fbdb1d3161..0f26c3c07b 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass | |||
@@ -7,6 +7,8 @@ | |||
7 | # Copyright (C) 2007-2011 Koen Kooi <koen@openembedded.org> | 7 | # Copyright (C) 2007-2011 Koen Kooi <koen@openembedded.org> |
8 | # | 8 | # |
9 | 9 | ||
10 | inherit image-artifact-names | ||
11 | |||
10 | BUILDHISTORY_FEATURES ?= "image package sdk" | 12 | BUILDHISTORY_FEATURES ?= "image package sdk" |
11 | BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" | 13 | BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" |
12 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" | 14 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" |
diff --git a/meta/classes/image-artifact-names.bbclass b/meta/classes/image-artifact-names.bbclass new file mode 100644 index 0000000000..5ab8f1b7aa --- /dev/null +++ b/meta/classes/image-artifact-names.bbclass | |||
@@ -0,0 +1,15 @@ | |||
1 | ################################################################## | ||
2 | # Specific image creation and rootfs population info. | ||
3 | ################################################################## | ||
4 | |||
5 | IMAGE_BASENAME = "${PN}" | ||
6 | IMAGE_VERSION_SUFFIX = "-${DATETIME}" | ||
7 | IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME" | ||
8 | IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}" | ||
9 | IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}" | ||
10 | |||
11 | # IMAGE_NAME is the base name for everything produced when building images. | ||
12 | # The actual image that contains the rootfs has an additional suffix (.rootfs | ||
13 | # by default) followed by additional suffices which describe the format (.ext4, | ||
14 | # .ext4.xz, etc.). | ||
15 | IMAGE_NAME_SUFFIX ??= ".rootfs" | ||
diff --git a/meta/classes/image-live.bbclass b/meta/classes/image-live.bbclass index 54058b350d..9ea5ddc312 100644 --- a/meta/classes/image-live.bbclass +++ b/meta/classes/image-live.bbclass | |||
@@ -22,7 +22,7 @@ | |||
22 | # ${HDDIMG_ID} - FAT image volume-id | 22 | # ${HDDIMG_ID} - FAT image volume-id |
23 | # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) | 23 | # ${ROOTFS} - indicates a filesystem image to include as the root filesystem (optional) |
24 | 24 | ||
25 | inherit live-vm-common | 25 | inherit live-vm-common image-artifact-names |
26 | 26 | ||
27 | do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ | 27 | do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ |
28 | mtools-native:do_populate_sysroot \ | 28 | mtools-native:do_populate_sysroot \ |
diff --git a/meta/classes/image_types.bbclass b/meta/classes/image_types.bbclass index ab05cc90ff..66884af8e0 100644 --- a/meta/classes/image_types.bbclass +++ b/meta/classes/image_types.bbclass | |||
@@ -1,9 +1,3 @@ | |||
1 | # IMAGE_NAME is the base name for everything produced when building images. | ||
2 | # The actual image that contains the rootfs has an additional suffix (.rootfs | ||
3 | # by default) followed by additional suffices which describe the format (.ext4, | ||
4 | # .ext4.xz, etc.). | ||
5 | IMAGE_NAME_SUFFIX ??= ".rootfs" | ||
6 | |||
7 | # The default aligment of the size of the rootfs is set to 1KiB. In case | 1 | # The default aligment of the size of the rootfs is set to 1KiB. In case |
8 | # you're using the SD card emulation of a QEMU system simulator you may | 2 | # you're using the SD card emulation of a QEMU system simulator you may |
9 | # set this value to 2048 (2MiB alignment). | 3 | # set this value to 2048 (2MiB alignment). |
@@ -231,7 +225,8 @@ IMAGE_CMD_f2fs () { | |||
231 | 225 | ||
232 | EXTRA_IMAGECMD = "" | 226 | EXTRA_IMAGECMD = "" |
233 | 227 | ||
234 | inherit siteinfo kernel-arch | 228 | inherit siteinfo kernel-arch image-artifact-names |
229 | |||
235 | JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}" | 230 | JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}" |
236 | JFFS2_ERASEBLOCK ?= "0x40000" | 231 | JFFS2_ERASEBLOCK ?= "0x40000" |
237 | EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers" | 232 | EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers" |
diff --git a/meta/classes/kernel-artifact-names.bbclass b/meta/classes/kernel-artifact-names.bbclass index bbeecba7bd..a65cdddb3e 100644 --- a/meta/classes/kernel-artifact-names.bbclass +++ b/meta/classes/kernel-artifact-names.bbclass | |||
@@ -1,3 +1,11 @@ | |||
1 | ################################################################## | ||
2 | # Specific kernel creation info | ||
3 | # for recipes/bbclasses which need to reuse some of the kernel | ||
4 | # artifacts, but aren't kernel recipes themselves | ||
5 | ################################################################## | ||
6 | |||
7 | inherit image-artifact-names | ||
8 | |||
1 | KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" | 9 | KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" |
2 | KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" | 10 | KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" |
3 | 11 | ||
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass index 4162c4e790..d8f62ef6ea 100644 --- a/meta/classes/qemuboot.bbclass +++ b/meta/classes/qemuboot.bbclass | |||
@@ -86,6 +86,8 @@ QB_ROOTFS_EXTRA_OPT ?= "" | |||
86 | # This should be kept align with ROOT_VM | 86 | # This should be kept align with ROOT_VM |
87 | QB_DRIVE_TYPE ?= "/dev/sd" | 87 | QB_DRIVE_TYPE ?= "/dev/sd" |
88 | 88 | ||
89 | inherit image-artifact-names | ||
90 | |||
89 | # Create qemuboot.conf | 91 | # Create qemuboot.conf |
90 | addtask do_write_qemuboot_conf after do_rootfs before do_image | 92 | addtask do_write_qemuboot_conf after do_rootfs before do_image |
91 | 93 | ||
diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass index 984730ebe8..1f27a3d07a 100644 --- a/meta/classes/rootfs-postcommands.bbclass +++ b/meta/classes/rootfs-postcommands.bbclass | |||
@@ -39,6 +39,8 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("DISTRO_FEATURES", "systemd" | |||
39 | 39 | ||
40 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' | 40 | ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' |
41 | 41 | ||
42 | inherit image-artifact-names | ||
43 | |||
42 | # Sort the user and group entries in /etc by ID in order to make the content | 44 | # Sort the user and group entries in /etc by ID in order to make the content |
43 | # deterministic. Package installs are not deterministic, causing the ordering | 45 | # deterministic. Package installs are not deterministic, causing the ordering |
44 | # of entries to change between builds. In case that this isn't desired, | 46 | # of entries to change between builds. In case that this isn't desired, |
diff --git a/meta/classes/testimage.bbclass b/meta/classes/testimage.bbclass index 00f0c29836..6c8bedcd65 100644 --- a/meta/classes/testimage.bbclass +++ b/meta/classes/testimage.bbclass | |||
@@ -3,6 +3,8 @@ | |||
3 | # Released under the MIT license (see COPYING.MIT) | 3 | # Released under the MIT license (see COPYING.MIT) |
4 | 4 | ||
5 | inherit metadata_scm | 5 | inherit metadata_scm |
6 | inherit image-artifact-names | ||
7 | |||
6 | # testimage.bbclass enables testing of qemu images using python unittests. | 8 | # testimage.bbclass enables testing of qemu images using python unittests. |
7 | # Most of the tests are commands run on target image over ssh. | 9 | # Most of the tests are commands run on target image over ssh. |
8 | # To use it add testimage to global inherit and call your target image with -c testimage | 10 | # To use it add testimage to global inherit and call your target image with -c testimage |