this is totally unrelated to multiple repos i'm sure Yes, I am too. But I want to find out which repo contains a dep circle. I repeated the test with one-one repos: the sortbydeps part took about <1 min for each repo. But with 3 repos I got the terrible result again. I looked into the source again... ... and I found a bug: for(l = alpm_pkg_get_provides(q); l; l = l->next) { const char *provname = l->data; if(!strcmp(depend->name, provname)) { if(!_alpm_pkg_find(provname, tmptargs)) { change = 1; tmptargs = alpm_list_add(tmptargs, q); } break; } } Look at _alpm_pkg_find(provname, tmptargs): this should be _alpm_pkg_find(qname, tmptargs) !!!
Bye, ngaba