]> git.saurik.com Git - apt.git/commitdiff
Merge remote-tracking branch 'mvo/bugfix/multiarch-upgrade' into debian/sid
authorMichael Vogt <mvo@debian.org>
Thu, 6 Feb 2014 06:10:38 +0000 (07:10 +0100)
committerMichael Vogt <mvo@debian.org>
Thu, 6 Feb 2014 06:10:38 +0000 (07:10 +0100)
1  2 
apt-pkg/depcache.cc

diff --combined apt-pkg/depcache.cc
index 7e75a6fe34b2d6d9252fdf8ed7d3104eda498c55,a3bb4fd3da4b9ebae86ebc1d14c455610ee1113b..c39e8c628a7b8fbb012fa61d02872ce63b6534cf
@@@ -1134,13 -1134,8 +1134,13 @@@ bool pkgDepCache::MarkInstall(PkgIterat
            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;
        }
  
            if (PkgState[Pkg->ID].InstallVer == 0)
               continue;
  
+             /* Ignore negative dependencies that we are not going to 
+                get installed */
+             if (PkgState[Pkg->ID].InstallVer != *I)
+                continue;
            if ((Start->Version != 0 || TrgPkg != Pkg) &&
                PkgState[Pkg->ID].CandidateVer != PkgState[Pkg->ID].InstallVer &&
                PkgState[Pkg->ID].CandidateVer != *I &&