summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2020-09-16 14:54:45 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-09-17 09:47:45 +0100
commit43f1cf2d3d4b35b0bcd4bc9a4f464341af5f97dd (patch)
tree63799027a42a76eee032dd9f4c88f2df03757749 /meta/classes
parent565d243a1d2dad582ba19573d7a9cc3b15fd62af (diff)
downloadpoky-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.bbclass2
-rw-r--r--meta/classes/image-artifact-names.bbclass15
-rw-r--r--meta/classes/image-live.bbclass2
-rw-r--r--meta/classes/image_types.bbclass9
-rw-r--r--meta/classes/kernel-artifact-names.bbclass8
-rw-r--r--meta/classes/qemuboot.bbclass2
-rw-r--r--meta/classes/rootfs-postcommands.bbclass2
-rw-r--r--meta/classes/testimage.bbclass2
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
10inherit image-artifact-names
11
10BUILDHISTORY_FEATURES ?= "image package sdk" 12BUILDHISTORY_FEATURES ?= "image package sdk"
11BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" 13BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
12BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" 14BUILDHISTORY_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
5IMAGE_BASENAME = "${PN}"
6IMAGE_VERSION_SUFFIX = "-${DATETIME}"
7IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
8IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
9IMAGE_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.).
15IMAGE_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
25inherit live-vm-common 25inherit live-vm-common image-artifact-names
26 26
27do_bootimg[depends] += "dosfstools-native:do_populate_sysroot \ 27do_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.).
5IMAGE_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
232EXTRA_IMAGECMD = "" 226EXTRA_IMAGECMD = ""
233 227
234inherit siteinfo kernel-arch 228inherit siteinfo kernel-arch image-artifact-names
229
235JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}" 230JFFS2_ENDIANNESS ?= "${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '-l', '-b', d)}"
236JFFS2_ERASEBLOCK ?= "0x40000" 231JFFS2_ERASEBLOCK ?= "0x40000"
237EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers" 232EXTRA_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
7inherit image-artifact-names
8
1KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" 9KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
2KERNEL_ARTIFACT_LINK_NAME ?= "${MACHINE}" 10KERNEL_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
87QB_DRIVE_TYPE ?= "/dev/sd" 87QB_DRIVE_TYPE ?= "/dev/sd"
88 88
89inherit image-artifact-names
90
89# Create qemuboot.conf 91# Create qemuboot.conf
90addtask do_write_qemuboot_conf after do_rootfs before do_image 92addtask 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
40ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;' 40ROOTFS_POSTPROCESS_COMMAND += 'empty_var_volatile;'
41 41
42inherit 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
5inherit metadata_scm 5inherit metadata_scm
6inherit 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