File rpm-4.4.2.3-no-order-rescan-limit.patch of Package rpm

--- lib/depends.c.orig	2009-11-05 08:48:22.282436000 +0100
+++ lib/depends.c	2009-11-05 08:51:09.968656000 +0100
@@ -1227,7 +1227,7 @@
     int numOrderList;
     int npeer = 128;	/* XXX more than deep enough for now. */
     int * peer = memset(alloca(npeer*sizeof(*peer)), 0, (npeer*sizeof(*peer)));
-    int nrescans = 10;
+    int nrescans = 0;
     int _printed = 0;
     char deptypechar;
     size_t tsbytes;
@@ -1561,8 +1561,10 @@
 
 	/* If a relation was eliminated, then continue sorting. */
 	/* XXX TODO: add control bit. */
-	if (nzaps && nrescans-- > 0) {
-	    rpmMessage(RPMMESS_DEBUG, _("========== continuing tsort ...\n"));
+	if (nzaps > 0) {
+	    rpmMessage(RPMMESS_DEBUG, 
+                 _("========== continuing tsort ...(rescan %d)\n"),
+                 ++nrescans);
 	    goto rescan;
 	}