Pārlūkot izejas kodu

do not configure unconfigured to be removed packages

We try to configure all packages at the end which need to be configured,
but that also applies to packages which weren't completely installed
(e.g. maintainerscript failed) we end up removing in this interaction
instead.

APT doesn't perform this explicit configure in the end as it is using
"dpkg --configure --pending", but it does confuse the progress report
and potentially also hook scripts.

Regression-Of: 9ffbac99e52c91182ed8ff8678a994626b194e69
David Kalnischkies 9 gadi atpakaļ
vecāks
revīzija
bb9c597252
1 mainītis faili ar 2 papildinājumiem un 1 dzēšanām
  1. 2 1
      apt-pkg/deb/dpkgpm.cc

+ 2 - 1
apt-pkg/deb/dpkgpm.cc

@@ -1424,7 +1424,8 @@ bool pkgDPkgPM::ExpandPendingCalls(std::vector<Item> &List, pkgDepCache &Cache)
 	 if (I.Op == Item::Install && alreadyConfigured.insert(I.Pkg->ID).second == true)
 	    AppendList.emplace_back(Item::Configure, I.Pkg);
       for (auto Pkg = Cache.PkgBegin(); Pkg.end() == false; ++Pkg)
-	 if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && alreadyConfigured.insert(Pkg->ID).second == true)
+	 if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure &&
+	       Cache[Pkg].Delete() == false && alreadyConfigured.insert(Pkg->ID).second == true)
 	    AppendList.emplace_back(Item::Configure, Pkg);
       std::move(AppendList.begin(), AppendList.end(), std::back_inserter(List));
    }