OS (Linux): detect fedora variants

Fix #1830
This commit is contained in:
李通洲
2025-07-04 10:10:29 +08:00
parent 821462e152
commit 64910d0781
2 changed files with 23 additions and 10 deletions
+19 -2
View File
@@ -291,6 +291,21 @@ FF_MAYBE_UNUSED static bool detectDebianDerived(FFOSResult* result)
return false;
}
FF_MAYBE_UNUSED static bool detectFedoraVariant(FFOSResult* result)
{
if (ffStrbufEqualS(&result->variantID, "coreos")
|| ffStrbufEqualS(&result->variantID, "kinoite")
|| ffStrbufEqualS(&result->variantID, "sericea")
|| ffStrbufEqualS(&result->variantID, "silverblue"))
{
ffStrbufAppendC(&result->id, '-');
ffStrbufAppend(&result->id, &result->variantID);
ffStrbufSetStatic(&result->idLike, "fedora");
return true;
}
return false;
}
static void detectOS(FFOSResult* os)
{
#ifdef FF_CUSTOM_OS_RELEASE_PATH
@@ -341,13 +356,15 @@ void ffDetectOSImpl(FFOSResult* os)
detectOS(os);
#ifdef __linux__
if(ffStrbufIgnCaseEqualS(&os->id, "ubuntu"))
if(ffStrbufEqualS(&os->id, "ubuntu"))
getUbuntuFlavour(os);
else if(ffStrbufIgnCaseEqualS(&os->id, "debian"))
else if(ffStrbufEqualS(&os->id, "debian"))
{
if (!detectDebianDerived(os))
getDebianVersion(os);
}
else if(ffStrbufEqualS(&os->id, "fedora"))
detectFedoraVariant(os);
else if(ffStrbufEqualS(&os->id, "linuxmint"))
{
if (ffStrbufEqualS(&os->name, "LMDE"))