diff options
Diffstat (limited to 'apt-pkg/packagemanager.cc')
-rw-r--r-- | apt-pkg/packagemanager.cc | 9 |
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); } - /*}}}*/ + /*}}}*/ |