]> git.saurik.com Git - apt.git/commitdiff
Merge remote-tracking branch 'donkult/debian/sid' into debian/sid
authorMichael Vogt <mvo@debian.org>
Tue, 2 Jul 2013 06:32:34 +0000 (08:32 +0200)
committerMichael Vogt <mvo@debian.org>
Tue, 2 Jul 2013 06:32:34 +0000 (08:32 +0200)
Conflicts:
debian/changelog

1  2 
apt-pkg/algorithms.cc
apt-pkg/depcache.cc
debian/changelog

diff --combined apt-pkg/algorithms.cc
index df38e6109e0e34c32cbfca1aa82608b9c15e42cf,d19783983c04dcbbe4dedc41a9a7d7a0ac402518..85799a11b9cbc17f955c22df05d929f03c716dce
@@@ -845,10 -845,8 +845,10 @@@ bool pkgProblemResolver::ResolveInterna
     }
     while (Again == true);
  
 -   if (Debug == true)
 -      clog << "Starting" << endl;
 +   if (Debug == true) {
 +      clog << "Starting pkgProblemResolver with broken count: " 
 +           << Cache.BrokenCount() << endl;
 +   }
     
     MakeScores();
  
           }
     }
  
 -   if (Debug == true)
 -      clog << "Starting 2" << endl;
 +   if (Debug == true) {
 +      clog << "Starting 2 pkgProblemResolver with broken count: " 
 +           << Cache.BrokenCount() << endl;
 +   }
  
     /* Now consider all broken packages. For each broken package we either
        remove the package or fix it's problem. We do this once, it should
@@@ -1444,9 -1440,11 +1444,11 @@@ bool pkgProblemResolver::ResolveByKeepI
     return true;
  }
                                                                        /*}}}*/
- // ProblemResolver::InstallProtect - Install all protected packages   /*{{{*/
+ // ProblemResolver::InstallProtect - deprecated cpu-eating no-op      /*{{{*/
  // ---------------------------------------------------------------------
- /* This is used to make sure protected packages are installed */
+ /* Actions issued with FromUser bit set are protected from further
+    modification (expect by other calls with FromUser set) nowadays , so we
+    don't need to reissue actions here, they are already set in stone. */
  void pkgProblemResolver::InstallProtect()
  {
     pkgDepCache::ActionGroup group(Cache);
diff --combined apt-pkg/depcache.cc
index f9bfa1f67b30706b881425b88d4ce45e31731396,5bed10d952a04803ff3360fd7cb61a161f02f27a..9f8422fecafb0bd750624e564cf951b9a233e314
@@@ -1004,7 -1004,7 +1004,7 @@@ struct CompareProviders 
        }
        // higher priority seems like a good idea
        if (AV->Priority != BV->Priority)
-        return AV->Priority < BV->Priority;
+        return AV->Priority > BV->Priority;
        // prefer native architecture
        if (strcmp(A.Arch(), B.Arch()) != 0)
        {
@@@ -1200,16 -1200,23 +1200,23 @@@ bool pkgDepCache::MarkInstall(PkgIterat
            verlist.insert(Cand);
         }
         CompareProviders comp(Start);
-        APT::VersionList::iterator InstVer = std::max_element(verlist.begin(), verlist.end(), comp);
  
-        if (InstVer != verlist.end())
-        {
+        do {
+           APT::VersionList::iterator InstVer = std::max_element(verlist.begin(), verlist.end(), comp);
+           if (InstVer == verlist.end())
+              break;
            pkgCache::PkgIterator InstPkg = InstVer.ParentPkg();
            if(DebugAutoInstall == true)
               std::clog << OutputInDepth(Depth) << "Installing " << InstPkg.Name()
                         << " as " << Start.DepType() << " of " << Pkg.Name()
                         << std::endl;
-           MarkInstall(InstPkg, true, Depth + 1, false, ForceImportantDeps);
+           if (MarkInstall(InstPkg, true, Depth + 1, false, ForceImportantDeps) == false)
+           {
+              verlist.erase(InstVer);
+              continue;
+           }
            // now check if we should consider it a automatic dependency or not
            if(InstPkg->CurrentVer == 0 && Pkg->Section != 0 && ConfigValueInSubTree("APT::Never-MarkAuto-Sections", Pkg.Section()))
            {
                              << Start.DepType() << " of pkg in APT::Never-MarkAuto-Sections)" << std::endl;
               MarkAuto(InstPkg, false);
            }
-        }
+           break;
+        } while(true);
         continue;
        }
        /* Negative dependencies have no or-group
                PkgState[Pkg->ID].CandidateVer != *I &&
                MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps) == true)
               continue;
 -          else if ((Start->Type == pkgCache::Dep::Conflicts || Start->Type == pkgCache::Dep::DpkgBreaks) &&
 -                   MarkDelete(Pkg,false,Depth + 1, false) == false)
 -             break;
 +          else if (Start->Type == pkgCache::Dep::Conflicts || 
 +                     Start->Type == pkgCache::Dep::DpkgBreaks) 
 +            {
 +               if(DebugAutoInstall == true)
 +                  std::clog << OutputInDepth(Depth) 
 +                            << " Removing: " << Pkg.Name()
 +                            << std::endl;
 +               if (MarkDelete(Pkg,false,Depth + 1, false) == false)
 +                  break;
 +            }
         }
         continue;
        }
diff --combined debian/changelog
index 70046aa657c1ac1d842aedea71beb73cabaaec96,bd25df1e26f6e4a68ee3f2a2f67fd8922cd2e0ff..4baa4d18d780aa63b7292a1feae35d1c0d7e14b2
@@@ -1,10 -1,28 +1,32 @@@
 -apt (0.9.8.3) UNRELEASED; urgency=low
 +apt (0.9.9) unstable; urgency=low
 +
 +  [ Michael Vogt ]
 +  * improve debug output for the Debug::pkgProblemResolver and
 +    Debug::pkgDepCache::AutoInstall
  
-  -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 02 Jul 2013 08:26:17 +0200
+   [ David Kalnischkies ]
+   * build the en manpages in subdirectory doc/en
+   * remove -ldl from cdrom and -lutil from apt-get linkage
+   * rewrite pkgOrderList::DepRemove to stop incorrect immediate setting
+     (Closes: 645713)
+   * prefer Essentials over Removals in ordering score
+   * fix priority sorting by prefering higher in MarkInstall
+   * try all providers in order if uninstallable in MarkInstall
+   * do unpacks before configures in SmartConfigure (Closes: #707578)
+   * fix support for multiple patterns in apt-cache search (Closes: #691453)
+   * set Fail flag in FileFd on all errors consistently
+   * don't explicitly init ExtractTar InFd with invalid fd
+   * OpenDescriptor should autoclose fd always on error (Closes: #704608)
+   * fail in CopyFile if the FileFds have error flag set
+   * ensure state-dir exists before coyping cdrom files
+   * fix file location for configure-index.gz in apt.conf(5) (Closes: #711921)
+   * handle missing "Description" in apt-cache show (Closes: #712435)
+   * try defaults if auto-detection failed in apt-cdrom (Closes: #712433)
+   * support \n and \r\n line endings in ReadMessages
+   * do not redownload unchanged InRelease files
+   * trigger NODATA error for invalid InRelease files (Closes: #712486)
+  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 09 Jun 2013 15:06:24 +0200
  
  apt (0.9.8.2) unstable; urgency=low
  
    * Fix crash when the "mirror" method does not find any entry
      (closes: #699303)
  
 +  [ Johan Kiviniemi ]
 +  * cmdline/apt-key:
 +    - Create new keyrings with mode 0644 instead of 0600.
 +    - Accept a nonexistent --keyring file with the adv subcommand as well.
 +
   -- Michael Vogt <mvo@debian.org>  Thu, 06 Jun 2013 19:15:14 +0200
  
  apt (0.9.8.1) unstable; urgency=low