From: David Kalnischkies Date: Fri, 28 May 2010 17:30:19 +0000 (+0200) Subject: try harder to find the other pseudo versions for autoremove multiarch X-Git-Tag: 0.8.0~9^2~39^2~35 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/392a882ad8a299d55889e9c0fa581a266d6dd2c9?ds=sidebyside try harder to find the other pseudo versions for autoremove multiarch --- diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index c29114a65..afec7ba83 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -1719,10 +1719,6 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg, // If the version belongs to a Multi-Arch all package // we will mark all others in this Group with this version also - // Beware: We compare versions here the lazy way: string comparision - // this is bad if multiple repositories provide different versions - // of the package with an identical version number - but even in this - // case the dependencies are likely the same. if (ver->MultiArch == pkgCache::Version::All && strcmp(ver.Arch(true), "all") == 0) { @@ -1734,7 +1730,8 @@ void pkgDepCache::MarkPackage(const pkgCache::PkgIterator &pkg, for (VerIterator V = P.VersionList(); V.end() != true; ++V) { - if (strcmp(VerStr, V.VerStr()) != 0) + if (ver->Hash != V->Hash || + strcmp(VerStr, V.VerStr()) != 0) continue; MarkPackage(P, V, follow_recommends, follow_suggests); break; diff --git a/debian/changelog b/debian/changelog index ce7ff48b7..c1ee360f0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ apt (0.7.26~exp6) UNRELEASED; urgency=low * apt-pkg/depcache.cc: - do the autoremove mark process also for required packages to handle these illegally depending on lower priority packages (Closes: #583517) + - try harder to find the other pseudo versions for autoremove multiarch -- David Kalnischkies Fri, 28 May 2010 19:03:30 +0200