On Mon, Sep 17, 2007 at 01:26:55PM +0200, Nagy Gabor wrote:
OMG, I noticed that current pacman won't resolve target<->target conflict (it stops with unresolveable conflict error <- so that ~150 line conflict-resolution monster is not so efficient in sync.c ;-). However pacman may still remove packages from the target list: sync.c: /* pacman -S blackbox xfree86 ... */.
Actually, I think that's the only reason why your patch breaks a few pactest. In case of target <-> target conflicts, pacman used to fail. But after your patch, it tries to automatically resolve it by selecting one of the target. You said that yourself :) So you broke the pactests that had a target <-> target conflict, and expected pacman to fail. I am still not sure what's the best default behavior (for example, the behavior using --noconfirm, which is how pactest are run). But in any cases, it's probably better to ask the user (you already said that as well).
I don't understand that part at all: resolvedeps first search for (blackbox's) dependency satisfiers in the target list. So it will find xfree86, if that dep is OK [in this case we don't need to remove anything]; if xfree86 dep is not OK, resolvedeps must find and pull a real satisfier (xorg), [in this case we cannot remove xorg, because we will get a broken dep]. Any idea?
See : http://www.archlinux.org/pipermail/pacman-dev/2007-July/009041.html http://www.archlinux.org/pipermail/pacman-dev/2007-August/009155.html