]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/depcache.cc
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid
[apt.git] / apt-pkg / depcache.cc
index a3bb4fd3da4b9ebae86ebc1d14c455610ee1113b..c39e8c628a7b8fbb012fa61d02872ce63b6534cf 100644 (file)
@@ -1134,8 +1134,13 @@ bool pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst,
            std::clog << OutputInDepth(Depth) << Start << " can't be satisfied!" << std::endl;
         if (Start.IsCritical() == false)
            continue;
-        // if the dependency was critical, we can't install it, so remove it again
-        MarkDelete(Pkg,false,Depth + 1, false);
+        // if the dependency was critical, we have absolutely no chance to install it,
+        // so if it wasn't installed remove it again. If it was, discard the candidate
+        // as the problemresolver will trip over it otherwise trying to install it (#735967)
+        if (Pkg->CurrentVer == 0)
+           MarkDelete(Pkg,false,Depth + 1, false);
+        else
+           SetCandidateVersion(Pkg.CurrentVer());
         return false;
       }