~ubuntu-core-dev/apt/ubuntu

« back to all changes in this revision

Viewing changes to apt-pkg/orderlist.cc

* merged the apt-breaks-iwj branch
* pulled in the other remaining ubuntu changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
491
491
         continue;
492
492
      
493
493
      if (D->Type != pkgCache::Dep::Conflicts &&
 
494
          D->Type != pkgCache::Dep::DpkgBreaks &&
494
495
          D->Type != pkgCache::Dep::Obsoletes &&
495
496
          Cache[Pkg].InstallVer != *I)
496
497
         continue;
497
498
      
498
499
      if ((D->Type == pkgCache::Dep::Conflicts ||
 
500
           D->Type == pkgCache::Dep::DpkgBreaks ||
499
501
           D->Type == pkgCache::Dep::Obsoletes) &&
500
502
          (Version *)Pkg.CurrentVer() != *I)
501
503
         continue;
630
632
         /* Forward critical dependencies MUST be correct before the 
631
633
            package can be unpacked. */
632
634
         if (D->Type != pkgCache::Dep::Conflicts &&
 
635
             D->Type != pkgCache::Dep::DpkgBreaks &&
633
636
             D->Type != pkgCache::Dep::Obsoletes &&
634
637
             D->Type != pkgCache::Dep::PreDepends)
635
638
            continue;
668
671
   }   
669
672
   return true;
670
673
}
671
 
                                                                        /*}}}*/
 
674
 
672
675
// OrderList::DepUnPackPreD - Critical UnPacking ordering with depends  /*{{{*/
673
676
// ---------------------------------------------------------------------
674
677
/* Critical PreDepends (also configure immediate and essential) strives to
803
806
               return false;
804
807
         }
805
808
         else
 
809
         {
806
810
            if (D->Type == pkgCache::Dep::Depends)
807
811
               if (VisitProvides(D,false) == false)
808
812
                  return false;
 
813
 
 
814
            if (D->Type == pkgCache::Dep::DpkgBreaks)
 
815
            {
 
816
               if (CheckDep(D) == true)
 
817
                 continue;
 
818
 
 
819
               if (VisitNode(D.TargetPkg()) == false)
 
820
                 return false;
 
821
            }
 
822
         }
809
823
      }
810
824
   return true;
811
825
}
953
967
      /* Conflicts requires that all versions are not present, depends
954
968
         just needs one */
955
969
      if (D->Type != pkgCache::Dep::Conflicts && 
 
970
          D->Type != pkgCache::Dep::DpkgBreaks && 
956
971
          D->Type != pkgCache::Dep::Obsoletes)
957
972
      {
958
973
         /* Try to find something that does not have the after flag set