xref: /openbmc/openbmc/poky/meta/classes-recipe/image-artifact-names.bbclass (revision fc113eade321128fc43b0b299e81ad07fc1edf3d)
192b42cb3SPatrick Williams#
292b42cb3SPatrick Williams# Copyright OpenEmbedded Contributors
392b42cb3SPatrick Williams#
492b42cb3SPatrick Williams# SPDX-License-Identifier: MIT
592b42cb3SPatrick Williams#
692b42cb3SPatrick Williams
792b42cb3SPatrick Williams##################################################################
892b42cb3SPatrick Williams# Specific image creation and rootfs population info.
992b42cb3SPatrick Williams##################################################################
1092b42cb3SPatrick Williams
1192b42cb3SPatrick WilliamsIMAGE_BASENAME ?= "${PN}"
1292b42cb3SPatrick WilliamsIMAGE_VERSION_SUFFIX ?= "-${DATETIME}"
1392b42cb3SPatrick WilliamsIMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME SOURCE_DATE_EPOCH"
14*fc113eadSAndrew GeisslerIMAGE_NAME ?= "${IMAGE_LINK_NAME}${IMAGE_VERSION_SUFFIX}"
15*fc113eadSAndrew GeisslerIMAGE_LINK_NAME ?= "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}"
16*fc113eadSAndrew Geissler
17*fc113eadSAndrew Geissler# This needs to stay in sync with IMAGE_LINK_NAME, but with INITRAMFS_IMAGE instead of IMAGE_BASENAME
18*fc113eadSAndrew GeisslerINITRAMFS_IMAGE_NAME ?= "${@['${INITRAMFS_IMAGE}${IMAGE_MACHINE_SUFFIX}', ''][d.getVar('INITRAMFS_IMAGE') == '']}"
19*fc113eadSAndrew Geissler
20*fc113eadSAndrew Geissler# The default DEPLOY_DIR_IMAGE is ${MACHINE} directory:
21*fc113eadSAndrew Geissler# meta/conf/bitbake.conf:DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
22*fc113eadSAndrew Geissler# so many people find it unnecessary to include this suffix to every image
23*fc113eadSAndrew Geissler# stored there, but other people often fetch various images for different
24*fc113eadSAndrew Geissler# MACHINEs to the same downloads directory and then the suffix is very helpful
25*fc113eadSAndrew Geissler# add separate variable for projects to decide which scheme works best for them
26*fc113eadSAndrew Geissler# without understanding the IMAGE_NAME/IMAGE_LINK_NAME structure.
27*fc113eadSAndrew GeisslerIMAGE_MACHINE_SUFFIX ??= "-${MACHINE}"
2892b42cb3SPatrick Williams
2992b42cb3SPatrick Williams# IMAGE_NAME is the base name for everything produced when building images.
3092b42cb3SPatrick Williams# The actual image that contains the rootfs has an additional suffix (.rootfs
3192b42cb3SPatrick Williams# by default) followed by additional suffices which describe the format (.ext4,
3292b42cb3SPatrick Williams# .ext4.xz, etc.).
3392b42cb3SPatrick WilliamsIMAGE_NAME_SUFFIX ??= ".rootfs"
3492b42cb3SPatrick Williams
3592b42cb3SPatrick Williamspython () {
3692b42cb3SPatrick Williams    if bb.data.inherits_class('deploy', d) and d.getVar("IMAGE_VERSION_SUFFIX") == "-${DATETIME}":
3792b42cb3SPatrick Williams        import datetime
3892b42cb3SPatrick Williams        d.setVar("IMAGE_VERSION_SUFFIX", "-" + datetime.datetime.fromtimestamp(int(d.getVar("SOURCE_DATE_EPOCH")), datetime.timezone.utc).strftime('%Y%m%d%H%M%S'))
3992b42cb3SPatrick Williams        d.setVarFlag("IMAGE_VERSION_SUFFIX", "vardepvalue", "")
4092b42cb3SPatrick Williams}
41