No. pkg->depends or alpm_pkg_get_depends(pkg) is used to get the
dependency list of pkg. In the old code it was easy to determine if a
dependency is broken. If we couldn't find a satisfier package in the
target list or in the local database (which won't be upgraded), we
simply detected that this dependency is unresolvable. (However, our
error message was often uninformative, user may got an error message
like this: "Cannot resolve foo dependency of pulledpkg". User asked:
Pulledpkg? What? I just did "pacman -S bar". [1])
However, your patch makes things more complicated. We start to resolve
foo dependency of bar, which may be satisfied. But *later* it may turn
out, that we cannot resolve completely the _pulled_ foo satisfier, so
we simply remove it from the list. Now it would be elegant if we
could say: We could not resolve foo dependency of bar. (At this point
we can clearly see, that the old method doesn't work, because
*locally* foo is a resolvable dependency.) But it is not so easy to
detect, probably we need a more sophisticated info (graph?) structure,
and imho we can catch this broken dependency when we "label" the
package as unresolvable.
If we solve this problem, problem [1] will also disappear, which is an
extra benefit.
Bye
Oh, I see that I totally misinterpreted something here. If we allow
pacman to remove targets from the list, we cannot get any unresolved
dependencies, right? So just forget what I said earlier. (But problem
[1] is still interesting.) But your method for collecting unresolvable
dependencies is still not good. Just put the dependency into data list
when it turns out that the dependency (locally) not resolvable. (When
resolvedep returns with NULL.) This should be identical to the old
behavior, if user doesn't let pacman remove targets. If user resolve
this problem by removing some targets, you can free this list.
Bye
------------------------------------------------------
SZTE Egyetemi Konyvtar - http://www.bibl.u-szeged.hu
This message was sent using IMP: http://horde.org/imp/
_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev