From 8b70cc5f8e25841ae725e74bff5966cfd43cf8bc Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 22 Jun 2021 00:02:28 +0200 Subject: [PATCH] Clear added/removed provides from previous builds --- librepomgr/buildactions/buildaction.h | 1 + librepomgr/buildactions/conductbuild.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/librepomgr/buildactions/buildaction.h b/librepomgr/buildactions/buildaction.h index e59d551..a1f2186 100644 --- a/librepomgr/buildactions/buildaction.h +++ b/librepomgr/buildactions/buildaction.h @@ -112,6 +112,7 @@ struct LIBREPOMGR_EXPORT RebuildInfo : public ReflectiveRapidJSON::JsonSerializa std::vector provides; std::vector libprovides; + void replace(const LibPkg::DependencySet &deps, const std::unordered_set &libs); void add(const LibPkg::DependencySet &deps, const std::unordered_set &libs); }; diff --git a/librepomgr/buildactions/conductbuild.cpp b/librepomgr/buildactions/conductbuild.cpp index be35183..0ccc629 100644 --- a/librepomgr/buildactions/conductbuild.cpp +++ b/librepomgr/buildactions/conductbuild.cpp @@ -38,6 +38,13 @@ using namespace CppUtilities::EscapeCodes; namespace LibRepoMgr { +void RebuildInfo::replace(const LibPkg::DependencySet &deps, const std::unordered_set &libs) +{ + provides.clear(); + libprovides.clear(); + add(deps, libs); +} + void RebuildInfo::add(const LibPkg::DependencySet &deps, const std::unordered_set &libs) { for (const auto &dep : deps) { @@ -1477,8 +1484,8 @@ PackageStagingNeeded ConductBuild::checkWhetherStagingIsNeededAndPopulateRebuild // populate m_buildProgress.producedProvides and m_buildProgress.removedProvides (which only serve informal purposes) std::lock_guard rebuildListLock(m_rebuildListMutex); - m_buildProgress.producedProvides[packageName].add(addedProvides, addedLibProvides); - m_buildProgress.removedProvides[packageName].add(removedProvides, removedLibProvides); + m_buildProgress.producedProvides[packageName].replace(addedProvides, addedLibProvides); + m_buildProgress.removedProvides[packageName].replace(removedProvides, removedLibProvides); // skip any further checks if nothing will be removed anyways if (removedProvides.empty() && removedLibProvides.empty()) {