summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/orderlist.cc3
-rw-r--r--apt-pkg/packagemanager.cc3
-rw-r--r--debian/changelog4
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