summaryrefslogtreecommitdiff
path: root/apt-pkg/packagemanager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/packagemanager.cc')
-rw-r--r--apt-pkg/packagemanager.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
index ac11b5d51..7fcaa8d41 100644
--- a/apt-pkg/packagemanager.cc
+++ b/apt-pkg/packagemanager.cc
@@ -476,6 +476,13 @@ bool pkgPackageManager::DepAdd(pkgOrderList &OList,PkgIterator Pkg,int Depth)
continue;
}
+ // Check if this package is being re-installed
+ if ((Cache[Pkg].iFlags & pkgDepCache::ReInstall) == pkgDepCache::ReInstall && Cache[Pkg].InstallVer != *I &&
+ List->IsNow(Pkg) == true && Pkg.State() == PkgIterator::NeedsNothing) {
+ Bad = false;
+ continue;
+ }
+
// Not the install version
if (Cache[Pkg].InstallVer != *I ||
(Cache[Pkg].Keep() == true && Pkg.State() == PkgIterator::NeedsNothing))
@@ -844,4 +851,4 @@ pkgPackageManager::OrderResult pkgPackageManager::DoInstall(int statusFd)
return DoInstallPostFork(statusFd);
}
- /*}}}*/
+ /*}}}*/