Преглед на файлове

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 години
родител
ревизия
bb9c597252
променени са 1 файла, в които са добавени 2 реда и са изтрити 1 реда
  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)
 	 if (I.Op == Item::Install && alreadyConfigured.insert(I.Pkg->ID).second == true)
 	    AppendList.emplace_back(Item::Configure, I.Pkg);
 	    AppendList.emplace_back(Item::Configure, I.Pkg);
       for (auto Pkg = Cache.PkgBegin(); Pkg.end() == false; ++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);
 	    AppendList.emplace_back(Item::Configure, Pkg);
       std::move(AppendList.begin(), AppendList.end(), std::back_inserter(List));
       std::move(AppendList.begin(), AppendList.end(), std::back_inserter(List));
    }
    }