On Wed, Jun 12, 2024 at 4:13 AM Andrew Dunstan <andrew@dunslane.net> wrote:
> Way back in 2004 there was discussion of how we wanted to differentiate
> buildfarm animals. We were flying blind to a large extent, as we didn't
> have many similar things to compare to. We settled on {OS-name,
> OS-version, Compiler-name, Compiler-version}. The idea was that the
> names would be invariant but we would allow for OS and compiler upgrades.
>
> There are two problems with this system, and have been since the get-go.
> First, owners forget to run the upgrade-personalty.pl script when the
> upgrade the OS and./or compiler. Second, there is no standardization of
> the names. Complaints about these surfaced (again) at the Vancouver
> unconference session about the buildfarm's future.
I was sorry to miss that one! Basically every unconference was
unmissable, but you had to miss 3/4 of them due to physics...
> I don't have information about other OSs or compilers.
I wonder if most non-Linux, Unixoid systems would give a useful enough
answer with something like "uname -rs". It's a standard[1] after all.
The reason it's a bit useless on Linux is that Linux is [clears
throat, channels Richard Stallman] only a kernel. The interesting
information for Linux is the distro, but that doesn't apply for stuff
like FreeBSD, AIX, yada yada. Some results from systems near me right
now:
Darwin 23.5.0
FreeBSD 14.1-RELEASE
The Mac is a bit annoying because that's a kernel or Darwin version
(?), so you'd have to do some work to map it back to a macOS version
like 14.5... For eg FreeBSD you can also have the kernel out of sync
with the user space but normally you wouldn't so I think that's good
enough. Macs do have a way to get the OS version people are more
familiar with:
% sw_vers
ProductName: macOS
ProductVersion: 14.5
BuildVersion: 23F79
Maybe a uname-based default would be good enough for *BSD, Solaris
etc, and then we just have a small list of specialisations where we
know how to do better?
[1] https://pubs.opengroup.org/onlinepubs/009695299/utilities/uname.html