Re: [PATCH 09/20] Add os-release file

Alyssa Ross
2025-09-08T09:12:41Z

[-- Attachment #1: Type: text/plain, Size: 2852 bytes --]

Demi Marie Obenour <demiobenour@gmail.com> writes:

> systemd-sysupdate expects one to exist and it's a good idea to have one
> anyway. Some third-party dependencies might check for it.
>
> Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
> ---
> host/rootfs/Makefile | 1 +
> host/rootfs/etc/os-release | 12 ++++++++++++
> host/rootfs/etc/os-release.license | 2 ++
> img/app/Makefile | 1 +
> img/app/etc/os-release | 12 ++++++++++++
> img/app/etc/os-release.license | 2 ++
> vm/sys/net/Makefile | 1 +
> vm/sys/net/etc/os-release | 12 ++++++++++++
> vm/sys/net/etc/os-release.license | 2 ++
> 9 files changed, 45 insertions(+)
>

In general, I wouldn't want most software to be making decisions on
/etc/os-release. (systemd-sysupdate is a special case here in having a
good reason to do it.) Maybe in img/app we need it for compatibility
with arbitrary stuff, but if anything in vm/sys/net is looking at
os-release I'd rather it crash and I find out about it so I could fix
it.

If we do have an /etc/os-release file on the host though, would be great
if we could re-use it when building the UKI in release/live.
(dump.erofs is probably useful here.)

> diff --git a/host/rootfs/Makefile b/host/rootfs/Makefile
> index 6cdbac201257faedb70344bcfd5cf9d4fd25b507..4faaccab8cb01d57ef7c48c01eb6fb1326cea4a0 100644
> --- a/host/rootfs/Makefile
> +++ b/host/rootfs/Makefile
> @@ -17,6 +17,7 @@ FILES = \
> etc/mdev/listen \
> etc/mdev/net/add \
> etc/mdev/wait \
> + etc/os-release \
> etc/parse-devname \
> etc/passwd \
> etc/s6-linux-init/env/WAYLAND_DISPLAY \
> diff --git a/host/rootfs/etc/os-release b/host/rootfs/etc/os-release
> new file mode 100644
> index 0000000000000000000000000000000000000000..536183411aa94b727f045c4623c29d66503738be
> --- /dev/null
> +++ b/host/rootfs/etc/os-release
> @@ -0,0 +1,12 @@
> +NAME="Spectrum OS"

NAME="Spectrum". There's no "OS" is the name.

> +ID="spectrum"
> +PRETTY_NAME="Spectrum OS 0.0.0-alpha0"
> +VERSION="0.0.0-alpha0"
> +VERSION_ID="0"
> +IMAGE_ID="Spectrum-OS-Host"

The documentation for this field says "A lower-case string".

> +IMAGE_VERSION="0"

Given we don't have a versioning scheme, why fill in these optional
fields?

> +RELEASE_TYPE="development"

Surely stable (the default) would be more accurate, given the examples
for that include OpenSUSE Tumbleweed and Arch Linux, which have a
similar rolling release model to what Spectrum will have? We don't have
a distinction between development and release builds, and I don't expect
us to.

> +HOME_URL="https://www.spectrum-os.org/"
> +VENDOR_URL="https://www.spectrum-os.org/"

"The VENDOR_NAME= field should be set if this one is"

> +ANSI_COLOR="1;34"
> +DEFAULT_HOSTNAME="spectrum-host"

What do we expect this to do?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 227 bytes --]