[pacman-dev] [patch] resolvedeps cleanup + pactest

Xavier shiningxc at gmail.com
Wed Jul 11 18:08:45 EDT 2007


On Tue, Jul 10, 2007 at 08:56:05PM +0200, ngaba at petra.hos.u-szeged.hu wrote:
> Hi!
>
> I attached a cleanup patch for resolvedeps + a pathologic pactest file to 
> demonstrate, that the old version was negligent. See my notes about 
> alpm_depcmp's speed here: 
> http://www.archlinux.org/pipermail/pacman-dev/2007-June/008539.html
>

I started looking at the current resolvedeps, and there was a part I didn't
understand, it only looked at provides and not at the name of the package
itself (there was the same mistake in other parts of the code), so I just
used alpm_depcmp as you always recommend and that one line change fix your
pactest :)

diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index 591e5a8..3137f8b 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -613,7 +613,7 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *syncpkg,
    /* check if one of the packages in *list already provides this dependency */
    for(j = list; j && !found; j = j->next) {
      pmpkg_t *sp = j->data;
-     if(alpm_list_find_str(alpm_pkg_get_provides(sp), miss->depend.name)) {
+     if(alpm_depcmp(sp, &miss->depend)) {
        _alpm_log(PM_LOG_DEBUG, "%s provides dependency %s -- skipping",
                  alpm_pkg_get_name(sp), miss->depend.name);
        found = 1;

Of course that change is already in your patch ;)
The other changes look nice too at first sight, but I need to have a closer
look at them, hopefully tomorrow.




More information about the pacman-dev mailing list