Several of our newer meters have merged coding concerns in terms
of extracting values and displaying those values. This commit
rectifies that for the SysArch and Hostname meters, allowing use
of this code with alternative front/back ends. The SysArch code
is also refined to detect whether the platform has an os-release
file at all and/or the sys/utsname.h header via configure.ac.
os-release is available on FreeBSD by default.
Also avoid executing a third-party program.
Examples:
Linux 5.10.0-3-amd64 [x86_64] @ Debian GNU/Linux bullseye/sid
FreeBSD 12.2-RELEASE-p3 [amd64]
Closes: #516
Unavailable values are returned as "n/a" from lsb_release, skip these.
$ lsb_release -a
LSB Version: 1.4
Distributor ID: Arch
Description: Arch Linux
Release: rolling
Codename: n/a
At start, SysArchMeter calls the uname function to obtain the kernel
version and architecture. If available, the distro version is obtained
by calling lsb_release. The obtained values are stored in static
variables and used when updating the meter.