* apt-pkg/depcache.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 3 Apr 2010 15:07:30 +0000 (17:07 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 3 Apr 2010 15:07:30 +0000 (17:07 +0200)
  - "reinstall" the correct version for a killed pseudo package

apt-pkg/depcache.cc
debian/changelog

index 75f69ee..0f07de2 100644 (file)
@@ -855,13 +855,16 @@ void pkgDepCache::Update(OpProgress *Prog)
               if (P.end() == true) continue;
               for (VerIterator V = P.VersionList(); V.end() != true; ++V)
               {
-                 // FIXME: String comparison isn't a save indicator!
-                 if (strcmp(allV.VerStr(),V.VerStr()) != 0)
+                 if (allV->Hash != V->Hash ||
+                     strcmp(allV.VerStr(),V.VerStr()) != 0)
                     continue;
                  unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy);
                  if ((CurDepState & DepInstMin) != DepInstMin)
                     break; // we found the correct version, but it is broken. Better try another arch or later again
+                 RemoveSizes(P);
+                 RemoveStates(P);
                  P->CurrentVer = V.Index();
+                 PkgState[P->ID].InstallVer = V;
                  AddStates(P);
                  Update(P);
                  AddSizes(P);
index edc82e1..16800a9 100644 (file)
@@ -1,3 +1,10 @@
+apt (0.7.26~exp4) experimental; urgency=low
+
+  * apt-pkg/depcache.cc:
+    - "reinstall" the correct version for a killed pseudo package
+
+ -- David Kalnischkies <kalnischkies@gmail.com>  Sat, 03 Apr 2010 14:58:39 +0200
+
 apt (0.7.26~exp3) experimental; urgency=low
 
   [ Christian Perrier ]