diff -up rpm-4.4.2.3-rc1/lib/depends.c.no-limit rpm-4.4.2.3-rc1/lib/depends.c
--- rpm-4.4.2.3-rc1/lib/depends.c.no-limit 2008-03-12 08:40:08.000000000 +0200
+++ rpm-4.4.2.3-rc1/lib/depends.c 2008-03-12 08:58:15.000000000 +0200
@@ -1229,7 +1229,7 @@ int rpmtsOrder(rpmts ts)
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;
@@ -1563,8 +1563,10 @@ rescan:
/* 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;
}