#!/usr/bin/env bash # Write the os-release that the Himmelblau daemons see (10-os-release.conf): # the image's /usr/lib/os-release with VERSION_ID set to the full image version # (OSTREE_VERSION, e.g. 44.20261019.0), so Intune shows the build and not just # "44". Himmelblau reports VERSION_ID as the device's OS version and has no # setting for it. The rest of the system keeps the stock VERSION_ID, which # toolbox, flatpak and dnf expect to be the plain release. set -euo pipefail SRC=/usr/lib/os-release DEST=/run/himmelblau-os-release version="$(. "${SRC}" && echo "${OSTREE_VERSION:-${IMAGE_VERSION:-}}")" tmp="$(mktemp "${DEST}.XXXXXX")" if [[ -n "${version}" ]]; then sed "s/^VERSION_ID=.*/VERSION_ID=${version}/" "${SRC}" > "${tmp}" else # No image version (not an ostree/bootc deployment): pass it through as-is. cat "${SRC}" > "${tmp}" fi chmod 0644 "${tmp}" mv -f "${tmp}" "${DEST}"