Changing the os-release BUILD_ID back to its default value of DATETIME

Adriana Kobylak anoo at linux.ibm.com
Tue Oct 12 08:59:59 AEDT 2021


Hi,

There has been some discussion in Discord on how to work around the "Same version" limitation during fw updates, and having a timestamp field that could be used to generate a different version id (commit id plus timestamp field) for every build seemed had positive support in the discussion.
Also at IBM we were looking for a field that could display the date of a build, such as the release or general availability date.

Looking at the BUILD_ID description[1]:

BUILD_ID=
A string uniquely identifying the system image originally used as the installation base. In most cases, VERSION_ID or IMAGE_ID+IMAGE_VERSION are updated when the entire system image is replaced during an update. BUILD_ID may be used in distributions where the original installation image version is important: VERSION_ID would change during incremental system updates, but BUILD_ID would not. This field is optional.
Examples: "BUILD_ID="2013-03-20.3"", "BUILD_ID=201303203".

The yocto recipe for os-release sets BUILD_ID to DATETIME by default[2].

At the beginning of time, the BUILD_ID in openbmc was set to have the contents of git describe[3]. Its contents now are the same as VERSION so we have duplicate information:
VERSION="2.11.0-dev"
VERSION_ID=2.11.0-dev-566-g263df7f852
PRETTY_NAME="Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro) 2.11.0-dev"
BUILD_ID="2.11.0-dev"

If we let the default DATETIME value be built, it'd show in this format:
BUILD_ID="20211007135305"

To re-generate the same image, BUILD_ID can be determined from the image file names, such as:
obmc-phosphor-image-p10bmc-20211007135305.ext4.mmc.tar

Then BUILD_ID can be set in the conf file, and the image for that timestamp can be built.

Also individual meta layers can choose to set BUILD_ID to any date that they seem relevant for their releases.

Any opinions on changing BUILD_ID to its yocto default of being a timestamp?


1. https://www.freedesktop.org/software/systemd/man/os-release.html#BUILD_ID=
2. https://github.com/openbmc/openbmc/blob/3fc98fdca6aa7512a4656bec7422f557c8e17555/poky/meta/recipes-core/os-release/os-release.bb#L23
3. https://github.com/openbmc/openbmc/pull/78


More information about the openbmc mailing list