From: Michael Vogt Date: Tue, 2 Jul 2013 06:32:34 +0000 (+0200) Subject: Merge remote-tracking branch 'donkult/debian/sid' into debian/sid X-Git-Tag: 0.9.9~4 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/8e4c3f0a42664b8c37cc2e0de285849fbf118e11?hp=-c Merge remote-tracking branch 'donkult/debian/sid' into debian/sid Conflicts: debian/changelog --- 8e4c3f0a42664b8c37cc2e0de285849fbf118e11 diff --combined apt-pkg/algorithms.cc index df38e6109,d19783983..85799a11b --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@@ -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(); @@@ -876,10 -874,8 +876,10 @@@ } } - 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 f9bfa1f67,5bed10d95..9f8422fec --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@@ -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())) { @@@ -1218,7 -1225,8 +1225,8 @@@ << Start.DepType() << " of pkg in APT::Never-MarkAuto-Sections)" << std::endl; MarkAuto(InstPkg, false); } - } + break; + } while(true); continue; } /* Negative dependencies have no or-group @@@ -1243,16 -1251,9 +1251,16 @@@ 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 70046aa65,bd25df1e2..4baa4d18d --- a/debian/changelog +++ b/debian/changelog @@@ -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 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 Sun, 09 Jun 2013 15:06:24 +0200 apt (0.9.8.2) unstable; urgency=low @@@ -25,12 -43,6 +47,11 @@@ * 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 Thu, 06 Jun 2013 19:15:14 +0200 apt (0.9.8.1) unstable; urgency=low