Fix staging check for split packages

* Consider all split packages when skipping an affected package
This commit is contained in:
Martchus 2021-09-30 22:23:54 +02:00
parent ace478be22
commit 672f3b4e97
1 changed files with 6 additions and 2 deletions

View File

@ -1504,6 +1504,10 @@ PackageStagingNeeded ConductBuild::checkWhetherStagingIsNeededAndPopulateRebuild
m_buildAction->log()(Phrases::SubMessage, m_buildAction->log()(Phrases::SubMessage,
"checking the following databases for affected packages: ", joinStrings(names<std::vector<std::string>>(relevantDbs), ", "), '\n'); "checking the following databases for affected packages: ", joinStrings(names<std::vector<std::string>>(relevantDbs), ", "), '\n');
auto listOfAffectedPackages = std::vector<std::string>(); auto listOfAffectedPackages = std::vector<std::string>();
const auto isPackageWeWantToUpdateItself = [&builtPackages](const LibPkg::Package &affectedPackage) {
return std::find_if(builtPackages.begin(), builtPackages.end(), [affectedPackage](const auto &p) { return p.name == affectedPackage.name; })
!= builtPackages.end();
};
for (const auto &db : relevantDbs) { for (const auto &db : relevantDbs) {
const auto isDestinationDb = db->name == m_buildPreparation.targetDb && db->arch == m_buildPreparation.targetArch; const auto isDestinationDb = db->name == m_buildPreparation.targetDb && db->arch == m_buildPreparation.targetArch;
const auto &requiredDeps = db->requiredDeps; const auto &requiredDeps = db->requiredDeps;
@ -1520,7 +1524,7 @@ PackageStagingNeeded ConductBuild::checkWhetherStagingIsNeededAndPopulateRebuild
} }
const auto &affectedPackages = affectedDependencies.first->second.relevantPackages; const auto &affectedPackages = affectedDependencies.first->second.relevantPackages;
for (const auto &affectedPackage : affectedPackages) { for (const auto &affectedPackage : affectedPackages) {
if (isDestinationDb && affectedPackage->name == packageName) { if (isDestinationDb && isPackageWeWantToUpdateItself(*affectedPackage)) {
continue; // skip if that's just the package we want to update itself continue; // skip if that's just the package we want to update itself
} }
needsStaging = true; needsStaging = true;
@ -1537,7 +1541,7 @@ PackageStagingNeeded ConductBuild::checkWhetherStagingIsNeededAndPopulateRebuild
continue; continue;
} }
for (const auto &affectedPackage : affectedPackages) { for (const auto &affectedPackage : affectedPackages) {
if (isDestinationDb && affectedPackage->name == packageName) { if (isDestinationDb && isPackageWeWantToUpdateItself(*affectedPackage)) {
continue; // skip if that's just the package we want to update itself continue; // skip if that's just the package we want to update itself
} }
if (!rebuildInfoForDb) { if (!rebuildInfoForDb) {