From 1f2fec390b714092c37d9c1f5b88d50ead8240b2 Mon Sep 17 00:00:00 2001 From: Kevin Wang Date: Wed, 19 Aug 2026 00:29:31 +0000 Subject: [PATCH] fix(os): identify guest images as dstack --- os/mkosi/mkosi.conf | 10 +++++++ os/mkosi/mkosi.finalize | 4 +++ os/mkosi/scripts/write-os-release.sh | 27 +++++++++++++++++++ os/mkosi/tests/acceptance.sh | 24 +++++++++++++++++ os/mkosi/versions.env | 1 + .../meta-dstack/conf/distro/dstack.conf | 2 +- 6 files changed, 67 insertions(+), 1 deletion(-) create mode 100755 os/mkosi/scripts/write-os-release.sh diff --git a/os/mkosi/mkosi.conf b/os/mkosi/mkosi.conf index f5faeca73..6728ceebe 100644 --- a/os/mkosi/mkosi.conf +++ b/os/mkosi/mkosi.conf @@ -54,6 +54,16 @@ Packages= dmsetup tpm2-tools curl + wget + iputils-ping + dnsutils + traceroute + netcat-openbsd + fdisk + dosfstools + pciutils + usbutils + cpio jq fuse3 pigz diff --git a/os/mkosi/mkosi.finalize b/os/mkosi/mkosi.finalize index e650edde0..10c7e50d0 100755 --- a/os/mkosi/mkosi.finalize +++ b/os/mkosi/mkosi.finalize @@ -9,8 +9,12 @@ FLAVOR=${DSTACK_BUILD_FLAVOR:?} WORK="$OUTPUTDIR/.dstack-$FLAVOR" KSTAGE="$WORK/kernel-stage" ARTIFACTS="$WORK/artifacts" +# shellcheck source=/dev/null +source "$SELF/versions.env" "$SELF/scripts/normalize-skeleton-modes.sh" "$TREE" "$FLAVOR" +"$SELF/scripts/write-os-release.sh" \ + "$TREE" "$DSTACK_VERSION" "$DSTACK_CODENAME" mkdir -p "$KSTAGE/usr/lib" "$OUTPUTDIR/.image-tools" cp -a "$TREE/usr/lib/modules" "$KSTAGE/usr/lib/" install -m0644 "$TREE/usr/lib/dstack/firmware/ovmf.fd" "$KSTAGE/ovmf.fd" diff --git a/os/mkosi/scripts/write-os-release.sh b/os/mkosi/scripts/write-os-release.sh new file mode 100755 index 000000000..57b5b2d5e --- /dev/null +++ b/os/mkosi/scripts/write-os-release.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +set -euo pipefail + +if [[ $# -ne 3 ]]; then + echo "Usage: $0 ROOT VERSION CODENAME" >&2 + exit 2 +fi + +root=$1 +version=$2 +codename=$3 +install -d -m0755 "$root/usr/lib" "$root/etc" +cat > "$root/usr/lib/os-release" <&2 + exit 1 + } +done # SplitArtifacts must stay empty: the kernel split is produced even with # Bootable=no and would drop a stray .vmlinuz beside the release artifacts. grep -q '^SplitArtifacts=$' "$D/mkosi.conf" diff --git a/os/mkosi/versions.env b/os/mkosi/versions.env index d31e2e7fa..3d729ab85 100644 --- a/os/mkosi/versions.env +++ b/os/mkosi/versions.env @@ -18,6 +18,7 @@ GO_TOOLCHAIN_VERSION=1.26.2 GO_TOOLCHAIN_SHA256=990e6b4bbba816dc3ee129eaeaf4b42f17c2800b88a2166c265ac1a200262282 NITRO_TPM_TOOLS_REVISION=d76d6eeebd4169b00a3c3af9858852d48f40e748 DSTACK_VERSION=0.6.0 +DSTACK_CODENAME=trixie OVMF_VARIANT=pre202505 # Must match SRCREV in meta-dstack's dstack-ovmf_git.bb: a generic OVMF # produces TDX measurement material dstack-mr cannot parse. diff --git a/os/yocto/layers/meta-dstack/conf/distro/dstack.conf b/os/yocto/layers/meta-dstack/conf/distro/dstack.conf index 137441eb7..db4eb3204 100644 --- a/os/yocto/layers/meta-dstack/conf/distro/dstack.conf +++ b/os/yocto/layers/meta-dstack/conf/distro/dstack.conf @@ -4,7 +4,7 @@ INIT_MANAGER = "systemd" require conf/distro/cvm.conf DISTRO = "dstack" -DISTRO_NAME = "DStack" +DISTRO_NAME = "dstack" DISTRO_FEATURES:append = " virtualization seccomp systemd usrmerge security dm-verity ipv6" DISTRO_VERSION = "0.6.0"