use excludes for all alter commands, not just update

This commit is contained in:
Oliver Kurth 2020-11-11 16:22:23 -08:00
parent fe2f372804
commit ab8fe128ba
1 changed files with 26 additions and 34 deletions

View File

@ -323,12 +323,8 @@ TDNFGoal(
BAIL_ON_TDNF_ERROR(dwError);
}
if (nAlterType == ALTER_UPGRADEALL ||
nAlterType == ALTER_UPGRADE)
{
dwError = TDNFPkgsToExclude(pTdnf, &dwExcludeCount, &ppszExcludes);
BAIL_ON_TDNF_ERROR(dwError);
}
dwError = TDNFPkgsToExclude(pTdnf, &dwExcludeCount, &ppszExcludes);
BAIL_ON_TDNF_ERROR(dwError);
queue_init(&queueJobs);
if (nAlterType == ALTER_UPGRADEALL)
@ -364,19 +360,15 @@ TDNFGoal(
dwError = SolvAddFlagsToJobs(&queueJobs, nFlags);
BAIL_ON_TDNF_ERROR(dwError);
if (nAlterType == ALTER_UPGRADEALL ||
nAlterType == ALTER_UPGRADE)
if (dwExcludeCount != 0 && ppszExcludes)
{
if (dwExcludeCount != 0 && ppszExcludes)
if (!pTdnf->pSack || !pTdnf->pSack->pPool)
{
if (!pTdnf->pSack || !pTdnf->pSack->pPool)
{
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}
dwError = SolvAddExcludes(pTdnf->pSack->pPool, ppszExcludes);
dwError = ERROR_TDNF_INVALID_PARAMETER;
BAIL_ON_TDNF_ERROR(dwError);
}
dwError = SolvAddExcludes(pTdnf->pSack->pPool, ppszExcludes);
BAIL_ON_TDNF_ERROR(dwError);
}
pSolv = solver_create(pTdnf->pSack->pPool);
@ -483,29 +475,29 @@ TDNFAddGoal(
BAIL_ON_TDNF_ERROR(dwError);
}
if (nAlterType == ALTER_UPGRADE)
if (dwCount != 0 && ppszExcludes)
{
if (dwCount != 0 && ppszExcludes)
dwError = SolvGetPkgNameFromId(
pTdnf->pSack,
dwId,
&pszName);
BAIL_ON_TDNF_ERROR(dwError);
ppszPackagesTemp = ppszExcludes;
while(ppszPackagesTemp && *ppszPackagesTemp)
{
dwError = SolvGetPkgNameFromId(
pTdnf->pSack,
dwId,
&pszName);
BAIL_ON_TDNF_ERROR(dwError);
ppszPackagesTemp = ppszExcludes;
while(ppszPackagesTemp && *ppszPackagesTemp)
if (SolvIsGlob(*ppszPackagesTemp))
{
if (SolvIsGlob(*ppszPackagesTemp))
{
if (!fnmatch(*ppszPackagesTemp, pszName, 0))
goto cleanup;
}
else if (!strcmp(pszName, *ppszPackagesTemp))
{
goto cleanup;
}
++ppszPackagesTemp;
if (!fnmatch(*ppszPackagesTemp, pszName, 0))
{
goto cleanup;
}
}
else if (!strcmp(pszName, *ppszPackagesTemp))
{
goto cleanup;
}
++ppszPackagesTemp;
}
}