diff options
-rw-r--r-- | apt-pkg/orderlist.cc | 3 | ||||
-rw-r--r-- | apt-pkg/packagemanager.cc | 3 | ||||
-rw-r--r-- | debian/changelog | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index 7c950292a..55f9cb9cc 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -117,7 +117,8 @@ bool pkgOrderList::IsMissing(PkgIterator Pkg) return false; // Skip Packages that need configure only. - if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && + if ((Pkg.State() == pkgCache::PkgIterator::NeedsConfigure || + Pkg.State() == pkgCache::PkgIterator::NeedsNothing) && Cache[Pkg].Keep() == true) return false; diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index eef79cccd..49776aac7 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -602,7 +602,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg) // configured we don't need to unpack it again… PkgIterator const P = Pkg.Group().FindPkg("all"); if (List->IsFlag(P,pkgOrderList::UnPacked) != true && - List->IsFlag(P,pkgOrderList::Configured) != true) { + List->IsFlag(P,pkgOrderList::Configured) != true && + P.State() != pkgCache::PkgIterator::NeedsNothing) { if (SmartUnPack(P) == false) return false; } diff --git a/debian/changelog b/debian/changelog index 8470a0d85..edea3400a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,10 @@ apt (0.7.26~exp7) UNRELEASED; urgency=low * apt-pkg/cacheset.cc: - get the candidate either from an already built depcache or use the policy which is a bit faster than depcache generation + * apt-pkg/orderlist.cc: + - untouched packages are never missing + * apt-pkg/packagemanager.cc: + - packages that are not touched doesn't need to be unpacked -- David Kalnischkies <kalnischkies@gmail.com> Thu, 10 Jun 2010 13:04:47 +0200 |