Subject: [bug#34154] please re-consider adding an os-release file

From: bill-auger <[email-masked]>
Date: Thu, 29 Jun 2023 23:05:49 -0400

please consider adding this file - aside from the specific use-cases which were
argued against on this thread; it is generally useful for any application that
has a valid reason to know which OS it is running on, without resorting to a
difficult-to-maintain stack of brittle white-box knowledge and system calls
like os-prober does - that identification can be used to infer the system's
properties which tend to differ across the *nix zoo, such as it's level of FHS
conformance, the name of the package manager executable, the bug reporting
URL, and so on

i am asking for the specific purpose of h-client, which has OS identification as
among it's primary purposes - guix is the only distro supported by h-node which
does not have an os-release file - nearly every distro in existence has adopted
this as the standard identifier, in favor of distro-specific files and clumsy
mechanisms such as lsb_release

the proposed patch was not quite compliant though - the standard is for the
actual file to be /usr/lib/os-release, with /etc/os-release being optional -
but if /etc/os-release exists, it should be a relative symlink to
../usr/lib/os-release - the reason is that applications should first check
/etc/os-release, in case it has been over-ridden by the local admin, then
fallback to checking the vendor-provided /usr/lib/os-release if /etc/os-release
is missing

with guix being as let's say "unconventional" as it is WRT the filesystem,
perhaps that was an important implementation detail; but please put at
least one, in one of those deterministic locations - even if no application
that guix distributes is known to make use of it, it is a completely harmless,
stable, and tiny file - rolling distros only need to add it once, and it will
never need an iota of maintenance