lib/inspect-osinfo.c: Generate new osinfo shortname for SLES >= 15

libosinfo changes the naming scheme it uses for SUSE starting with
major version 15.  Previously it used names like "sles12" (or
"sles12sp1"), "sled12" for Server and Desktop variants.  In 15+ it
uses "sle15" as there are no variants any longer (instead the
installer asks you what variant you want to install).  We're only
interested in the Server variant.  Change the name that we return to
"sle15" or "sle15sp1".

See: b0fa386699
Fixes: https://issues.redhat.com/browse/RHEL-95791
Thanks: Ming Xie, Victor Toso
Related: https://issues.redhat.com/browse/RHEL-95540
(cherry picked from commit db46bcb535)
This commit is contained in:
Richard W.M. Jones
2025-06-11 11:38:23 +01:00
parent 682765a63e
commit e73ac4912d

View File

@@ -62,10 +62,11 @@ guestfs_impl_inspect_get_osinfo (guestfs_h *g, const char *root)
else if (STREQ (distro, "fedora") || STREQ (distro, "mageia"))
return safe_asprintf (g, "%s%d", distro, major);
else if (STREQ (distro, "sles")) {
const char *base = major >= 15 ? "sle" : "sles";
if (minor == 0)
return safe_asprintf (g, "%s%d", distro, major);
return safe_asprintf (g, "%s%d", base, major);
else
return safe_asprintf (g, "%s%dsp%d", distro, major, minor);
return safe_asprintf (g, "%s%dsp%d", base, major, minor);
}
else if (STREQ (distro, "ubuntu"))
return safe_asprintf (g, "%s%d.%02d", distro, major, minor);