]> git.saurik.com Git - apt.git/commitdiff
try harder to find the other pseudo versions for autoremove multiarch
authorDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 28 May 2010 17:30:19 +0000 (19:30 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 28 May 2010 17:30:19 +0000 (19:30 +0200)
apt-pkg/depcache.cc
debian/changelog

index c29114a6517d5d36a1591af4c7329aa94438d73f..afec7ba836d4e7cd41f21219e834aff0de37d9e4 100644 (file)
@@ -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;
index ce7ff48b7109d1f4b6a8b5a0a905067734f54b9c..c1ee360f0fd17b41d4bf20d7d48b0e8233edb08c 100644 (file)
@@ -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 <kalnischkies@gmail.com>  Fri, 28 May 2010 19:03:30 +0200