#!/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. # # PRETTY_NAME becomes just NAME: libhimmelblau reports "PRETTY_NAME VERSION_ID" # as the OS version string, and Fedora's PRETTY_NAME already contains the # version ("Fedora Linux 44.20261020.0 (Forty Four) 44.20261020.0"). Nothing # else in Himmelblau reads PRETTY_NAME. set -euo pipefail SRC=/usr/lib/os-release DEST=/run/himmelblau-os-release version="$(. "${SRC}" && echo "${OSTREE_VERSION:-${IMAGE_VERSION:-}}")" name="$(. "${SRC}" && echo "${NAME:-Linux}")" tmp="$(mktemp "${DEST}.XXXXXX")" if [[ -n "${version}" ]]; then sed -e "s/^VERSION_ID=.*/VERSION_ID=${version}/" \ -e "s/^PRETTY_NAME=.*/PRETTY_NAME=\"${name}\"/" "${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}"